diff --git a/acrylia/Trondol_Shir.lua b/acrylia/Trondol_Shir.lua new file mode 100644 index 0000000..181cc70 --- /dev/null +++ b/acrylia/Trondol_Shir.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks around frantically, 'What are you doing here? You'll be killed! Do not waste your time trying to help me. Save yourself and leave at once!'"); + elseif(e.message:findi("help you")) then + e.self:Emote("shakes his head in frustration, 'I am beyond help. The key to my shackles is held by the grunts' high priest, curse him. I feel his dark magic pulling at my soul. I am doomed to join the legion of our fallen people that serve their twisted master here."); + elseif(e.message:findi("key")) then + e.self:Emote("opens his mouth as if to speak, but lacks the strength to form words"); + elseif(e.message:findi("high priest")) then + e.self:Emote("speaks slowly between shallow, labored breaths, 'Through some kind of dark magic, the grunts steal away the spirit energy from their victims. I know not what they do with this energy once they procure it. When the victim is all but drained of life, the high priest forces them to walk to the end of the platform over there. He then performs some sacrificial ritual that hurls the prisoner into the pit. Shortly thereafter, the bones of the fallen are collected and reanimated, destined to serve the grunts forever. I have seen this a dozen times now, and now my time is near.'"); + end +end \ No newline at end of file diff --git a/acrylia/a_grimling_warder.lua b/acrylia/a_grimling_warder.lua new file mode 100644 index 0000000..73d11b8 --- /dev/null +++ b/acrylia/a_grimling_warder.lua @@ -0,0 +1,14 @@ +function event_combat(e) + if(e.joined) then + e.self:Say("A fine sacrifice you make! Say hello to the master!"); + + if ( e.other:IsClient() ) then + -- teleport to statue pit + e.self:CastSpell(2857, e.other:GetID()); -- BetaAcrylia + else + -- for charm pets that aggro + e.self:CastSpell(1792, e.other:GetID()); -- Abolish Enchantment + end + e.self:WipeHateList(); + end +end diff --git a/acrylia/encounters/Archmage.lua b/acrylia/encounters/Archmage.lua new file mode 100644 index 0000000..5af5470 --- /dev/null +++ b/acrylia/encounters/Archmage.lua @@ -0,0 +1,314 @@ +local TRASH_TYPES = { + 154047, -- a_grimling_skullsplinterer + 154044, -- a_grimling_cleanser + 154046, -- a_grimling_deathdealer + 154042, -- a_grimling_alchemist + 154043, -- a_grimling_battlepriest + 154045, -- a_grimling_corpsemaster + 154362, -- a_grimling_possessor +}; +local TRASH_COORDS = { + { y = 3, x = 232, z = -7, h = 0 }, + { y = 3, x = 238, z = -7, h = 0 }, + { y = 3, x = 244, z = -7, h = 0 }, + { y = -16, x = 238, z = -7, h = 128 }, + { y = -16, x = 244, z = -7, h = 128 }, + { y = -16, x = 232, z = -7, h = 128 }, + { y = -6, x = 228, z = -7, h = 192 }, +}; + +local TRIGGER_NPC_TYPE = 154349; -- AMTrigger (invis man on platform) +local ELITE_GUARD_TYPE = 154099; -- a_grimling_elite_guard +local WARDER_TYPE = 154111; -- a_grimling_warder +local ARCHMAGE_TYPE = 154103; -- #the_grimling_archmage +local ARCHMAGE_SPAWN_ID = 324843; +local GORRAFERG_TYPE = 154040; -- Archmage_Gorraferg +local PROXIMITY_TIMER = 2000; +local ARCHMAGE_TEXT = { + 'Master! The intruders have interrupted my sacred work! I beg, send minions to my aid!', + 'By the power of the master, I summon forth the his minions to cleanse the realm of intruders...', + 'You tresspassers are still here? You will not interrupt my work! I will summon a legion of our kind if needed!', + 'Master! More of our people are needed to cleanse the sacred palace. I beg, make the intruders pay with their lives!', + 'You fools! You do not understand! Your efforts here are fruitless. You will die and your remains will live again to serve us!', + 'Master! The intruders persist! I beg, teach them humility through defeat!', + 'Your petty resistance will only make it worse for you in the end. Leave, or die!!', + 'Master, they are weakening! I beg, finish them!', + 'Master, the intruders persist! I beg, give me the power to overcome them. May their flesh burn on your sacred altar!' +}; +local ARCHMAGE_TEXT_TIMES = { + [1] = 47000, + [2] = 160000, + [3] = 47000, + [4] = 114000, + [5] = 47000, + [6] = 113000, + [7] = 48000, + [8] = 594000, + [9] = 999000, +}; +local WAVE_TIMES = { + [1] = 161000, + [2] = 160000, + [3] = 158000, + [4] = 112000, + [5] = 107000, + [6] = 112000, + [7] = 107000, + [8] = 111000, + [9] = 46000, + [10] = 720000, -- Gnostica said Archmage poofs in 10 to 15 minutes, so this is probably wrong, but within the range +}; + +local eventActive = false; +local scriptFailCooldown = false; +local clientsInProximity = 0; +local wave = 0; +local text = 0; +local warder; +local proxTimer; + +function TriggerNPCSpawnEvent(event) + eq.set_proximity(216, 264, -30, 16, -10, 50); + eventActive = false; +end + +function TriggerNPCEnterEvent(e) + + if ( e.other:GetGM() ) then + return + end + + TryStartEvent(); +end + +function TryStartEvent() + if ( not eventActive and not scriptFailCooldown and eq.get_entity_list():IsMobSpawnedByNpcTypeID(ARCHMAGE_TYPE) ) then + + eventActive = true; + proxTimer = false; + wave = 0; + text = 0; + clientsInProximity = 1; + + eq.set_timer("wave", 100000); + eq.set_timer("text", 3000); + eq.set_timer("proximity", PROXIMITY_TIMER); + end +end + +function EndEvent(victory) + if ( not victory ) then + eq.depop_all(GORRAFERG_TYPE); + eq.debug("Archmage event ended. (failure)"); + else + eq.debug("Archmage event ended. (victory)"); + end + warder:Depop(); + wave = 0; + text = 0; + proxTimer = false; + eventActive = false; + + if ( scriptFailCooldown ) then + eq.signal(TRIGGER_NPC_TYPE, 2); + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(ARCHMAGE_TYPE) ) then + eq.spawn_from_spawn2(ARCHMAGE_SPAWN_ID); + end + end +end + +function CountClientsInRing() + local clientList = eq.get_entity_list():GetClientList(); + local clients = 0; + + if ( clientList ) then + for client in clientList.entries do + + if ( not client:GetGM() and not client:GetFeigned() + and client:GetY() > -31 and client:GetY() < 17 + and client:GetX() > 215 and client:GetX() < 265 + and client:GetZ() > -11 and client:GetZ() < 51 + ) then + + clients = clients + 1; + end + end + end + + return clients; +end + +function TriggerNPCTimerEvent(e) + + if ( e.timer == "fail" ) then + scriptFailCooldown = false; + eq.stop_timer("fail"); + return; + end + + if ( not eventActive ) then + eq.stop_timer("wave"); + eq.stop_timer("text"); + eq.stop_timer("proximity"); + eq.stop_timer("end"); + eq.stop_timer("pit"); + return; + end + + if ( e.timer == "wave" ) then + + wave = wave + 1; + + if ( WAVE_TIMES[wave] ) then + eq.set_timer("wave", WAVE_TIMES[wave]); + end + + SpawnWave(); + + elseif ( e.timer == "text" ) then + + if ( text == 0 ) then + warder = eq.spawn2(WARDER_TYPE, 0, 0, 207, -69, -5, 0); -- a_grimling_warder + end + + text = text + 1; + + if ( ARCHMAGE_TEXT[text] ) then + + eq.set_timer("text", ARCHMAGE_TEXT_TIMES[text]); + + if ( text == 1 or text == #ARCHMAGE_TEXT ) then + eq.get_entity_list():GetNPCByNPCTypeID(ARCHMAGE_TYPE):Shout(ARCHMAGE_TEXT[text]); + else + eq.get_entity_list():GetNPCByNPCTypeID(ARCHMAGE_TYPE):Say(ARCHMAGE_TEXT[text]); + end + end + + elseif ( e.timer == "proximity" ) then + + if ( CountClientsInRing() == 0 ) then + + if ( proxTimer == false ) then + eq.set_timer("end", 180000); + proxTimer = true; + end + else + eq.stop_timer("end"); + proxTimer = false; + end + + elseif ( e.timer == "pit" ) then + + local gorraferg = eq.get_entity_list():GetNPCByNPCTypeID(GORRAFERG_TYPE); + + if ( gorraferg and gorraferg:GetX() > 345 ) then + scriptFailCooldown = true; + EndEvent(); -- gorraferg in pit + end + + elseif ( e.timer == "end" ) then + + if ( wave < #WAVE_TIMES ) then + if ( CountClientsInRing() == 0 ) then + scriptFailCooldown = true; + EndEvent(); -- no clients near middle of room for 3 mins + end + end + end +end + +function SpawnWave() + + local roll, mobType; + + if ( wave < #WAVE_TIMES ) then + for spawn = 1, 7 do + roll = math.random(100); + + if ( roll < 21 ) then + mobType = TRASH_TYPES[1]; + elseif ( roll < 41 ) then + mobType = TRASH_TYPES[2]; + elseif ( roll < 61 ) then + mobType = TRASH_TYPES[3]; + elseif ( roll < 78 ) then + mobType = TRASH_TYPES[4]; + elseif ( roll < 87 ) then + mobType = TRASH_TYPES[5]; + elseif ( roll < 96 ) then + mobType = TRASH_TYPES[6]; + else + mobType = TRASH_TYPES[7]; + end + + eq.spawn2(mobType, 0, 0, TRASH_COORDS[spawn].x, TRASH_COORDS[spawn].y, TRASH_COORDS[spawn].z, TRASH_COORDS[spawn].h); + end + elseif ( wave == #WAVE_TIMES ) then + eq.spawn2(GORRAFERG_TYPE, 0, 0, 239, -7, 0, 192); + eq.depop_with_timer(ARCHMAGE_TYPE); + eq.set_timer("pit", 5000); + else + scriptFailCooldown = true; + EndEvent(); -- took too long to kill boss + end +end + +function TrashEventSpawn(e) + eq.set_timer("depop", 600000); +end + +function TrashEventCombat(e) + if ( e.joined ) then + if ( not eq.is_paused_timer("depop") ) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function TrashEventTimer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function TriggerNPCSignalEvent(e) + if ( e.signal == 1 ) then + TryStartEvent(); + elseif ( e.signal == 2 ) then + eq.set_timer("fail", 2700000); + end +end + +function EliteGuardCombatEvent(e) + if ( e.joined ) then + eq.signal(TRIGGER_NPC_TYPE, 1); + end +end + +function event_encounter_load(e) + + -- AMTrigger + eq.register_npc_event("Archmage", Event.spawn, TRIGGER_NPC_TYPE, TriggerNPCSpawnEvent); + eq.register_npc_event("Archmage", Event.enter, TRIGGER_NPC_TYPE, TriggerNPCEnterEvent); + eq.register_npc_event("Archmage", Event.timer, TRIGGER_NPC_TYPE, TriggerNPCTimerEvent); + eq.register_npc_event("Archmage", Event.signal, TRIGGER_NPC_TYPE, TriggerNPCSignalEvent); + + -- depop timers + for _, id in ipairs(TRASH_TYPES) do + eq.register_npc_event("Archmage", Event.combat, id, TrashEventCombat); + eq.register_npc_event("Archmage", Event.timer, id, TrashEventTimer); + eq.register_npc_event("Archmage", Event.spawn, id, TrashEventSpawn); + end + + -- ensure TriggerNPCSpawnEvent() executes + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(TRIGGER_NPC_TYPE) ) then + eq.depop_with_timer(TRIGGER_NPC_TYPE); + end + + eq.register_npc_event("Archmage", Event.combat, ELITE_GUARD_TYPE, EliteGuardCombatEvent); + + eq.register_npc_event("Archmage", Event.death_complete, GORRAFERG_TYPE, function() EndEvent(true); end); +end diff --git a/acrylia/encounters/Burrower.lua b/acrylia/encounters/Burrower.lua new file mode 100644 index 0000000..75efde3 --- /dev/null +++ b/acrylia/encounters/Burrower.lua @@ -0,0 +1,163 @@ +local Phase = 0; + +function HatchlingSpawn(e) + eq.set_timer("Cycle",43200000); + eq.set_timer("Burrow",1000); +end + +function HatchlingTimer(e) + local qglobals = eq.get_qglobals(); + + if(e.timer == "Cycle") then + Phase = Phase + 1; + if(Phase == 1) then + eq.unique_spawn(154011,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Larva + eq.delete_global("Burrower"); + eq.set_global("Burrower","1",7,"F"); + elseif(Phase == 2) then + eq.unique_spawn(154012,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Pupa + eq.delete_global("Burrower"); + eq.set_global("Burrower","2",7,"F"); + elseif(Phase == 3) then + eq.unique_spawn(154013,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Worm + eq.delete_global("Burrower"); + eq.set_global("Burrower","3",7,"F"); + elseif(Phase == 4) then + eq.unique_spawn(154014,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Crawler + eq.delete_global("Burrower"); + eq.set_global("Burrower","4",7,"F"); + elseif(Phase == 5) then + eq.unique_spawn(154015,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Burrower + eq.delete_global("Burrower"); + eq.set_global("Burrower","5",7,"F"); + elseif(Phase == 6) then + eq.unique_spawn(154016,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Restless + eq.delete_global("Burrower"); + eq.set_global("Burrower","6",7,"F"); + eq.set_timer("Cycle",345600000); + elseif(Phase == 7) then + eq.unique_spawn(154017,0,0,-796,-161,-9,111); -- Escaped + eq.delete_global("Burrower"); + eq.set_global("Burrower","7",7,"F"); + eq.stop_timer("Cycle"); + end + elseif(e.timer == "Burrow") then + if ( qglobals["Burrower"] and qglobals["Burrower"] ~= nil ) then + if( qglobals["Burrower"] == "1" ) then + eq.unique_spawn(154011,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Larva + Phase = 1; + elseif( qglobals["Burrower"] == "2" ) then + eq.unique_spawn(154011,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Larva + eq.unique_spawn(154012,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Pupa + Phase = 2; + elseif( qglobals["Burrower"] == "3" ) then + eq.unique_spawn(154011,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Larva + eq.unique_spawn(154012,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Pupa + eq.unique_spawn(154013,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Worm + Phase = 3; + elseif( qglobals["Burrower"] == "4" ) then + eq.unique_spawn(154011,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Larva + eq.unique_spawn(154012,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Pupa + eq.unique_spawn(154013,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Worm + eq.unique_spawn(154014,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Crawler + Phase = 4; + elseif( qglobals["Burrower"] == "5" ) then + eq.unique_spawn(154011,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Larva + eq.unique_spawn(154012,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Pupa + eq.unique_spawn(154013,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Worm + eq.unique_spawn(154014,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Crawler + eq.unique_spawn(154015,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Burrower + Phase = 5; + elseif( qglobals["Burrower"] == "6" ) then + eq.set_timer("Cycle",345600000); + eq.unique_spawn(154011,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Larva + eq.unique_spawn(154012,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Pupa + eq.unique_spawn(154013,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Worm + eq.unique_spawn(154014,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Crawler + eq.unique_spawn(154015,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Burrower + eq.unique_spawn(154016,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Restless + Phase = 6; + elseif( qglobals["Burrower"] == "7" ) then + eq.stop_timer("Cycle"); + eq.unique_spawn(154011,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Larva + eq.unique_spawn(154012,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Pupa + eq.unique_spawn(154013,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Worm + eq.unique_spawn(154014,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Crawler + eq.unique_spawn(154015,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Burrower + eq.unique_spawn(154016,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Restless + eq.unique_spawn(154017,0,0,-796,-161,-9,111); -- Escaped + end + end + eq.stop_timer("Burrow"); + elseif(e.timer == "EscapedSpawn") then + eq.stop_timer("EscapedSpawn"); + eq.unique_spawn(154017,0,0,-796,-161,-9,111); -- Escaped + end +end + +function HatchlingSignal(e) + if(e.signal == 1) then + eq.set_timer("EscapedSpawn",math.random(79200000,93600000)); + elseif(e.signal == 2) then + eq.stop_timer("Cycle"); + eq.stop_timer("EscapedSpawn"); + end +end + +function BurrowerDeath(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(154016) == false) then -- check to see if restless is not spawned + RestartCycle(e) + end +end + +function RestlessDeath(e) + RestartCycle(e) +end + +function EscapedCombat(e) + if(e.joined) then + eq.set_timer("depop",5000); + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function Escapedtimer(e) + if(e.timer == "depop") then + eq.signal(154097,1); + eq.depop(); + end +end + +function Escapeddeath(e) + eq.signal(154097,1); +end + +function RestartCycle(e) + Phase = 0; + eq.signal(154097,2); + eq.depop(154017); + eq.depop(154014); + eq.depop(154013); + eq.depop(154012); + eq.depop(154011); + eq.depop_with_timer(154097); + eq.delete_global("Burrower"); +end + +function event_encounter_load(e) + if(eq.get_rule("World:AdjustRespawnTimes") == "true") then + eq.delete_global("Burrower"); + end + eq.register_npc_event("Burrower", Event.spawn, 154097, HatchlingSpawn); + eq.register_npc_event("Burrower", Event.timer, 154097, HatchlingTimer); + eq.register_npc_event("Burrower", Event.signal, 154097, HatchlingSignal); + eq.register_npc_event("Burrower", Event.death, 154015, BurrowerDeath); + eq.register_npc_event("Burrower", Event.death, 154016, RestlessDeath); + eq.register_npc_event("Burrower", Event.combat, 154017, EscapedCombat); + eq.register_npc_event("Burrower", Event.death, 154017, Escapeddeath); + eq.register_npc_event("Burrower", Event.timer, 154017, Escapedtimer); +end diff --git a/acrylia/encounters/Foreman.lua b/acrylia/encounters/Foreman.lua new file mode 100644 index 0000000..40d8af3 --- /dev/null +++ b/acrylia/encounters/Foreman.lua @@ -0,0 +1,75 @@ +local GRIMLING_DEATHGUARD_TYPE = 154170; +local SKELETAL_DEATHGUARD_TYPE = 154048; +local NON_TARGET_FOREMAN_TYPE = 154118; +local FOREMAN_TYPE = 154366; +local BONES_TYPE = 154337; + +function GrimDeathguardDeathEvent(e) + eq.signal(NON_TARGET_FOREMAN_TYPE, 1); +end + +function SpawnEvent(e) + eq.set_timer("depop", 7200000); +end + +function DepopTimerEvent(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function FakeForemanTimerEvent(e) + + if ( e.timer == "check" ) then + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(GRIMLING_DEATHGUARD_TYPE) + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(NON_TARGET_FOREMAN_TYPE) + ) then + + local fake = eq.get_entity_list():GetNPCByNPCTypeID(NON_TARGET_FOREMAN_TYPE); + eq.spawn2(FOREMAN_TYPE, 0, 0, fake:GetX(), fake:GetY(), fake:GetZ(), fake:GetHeading()); + eq.depop_with_timer(NON_TARGET_FOREMAN_TYPE); + + local npcList = eq.get_entity_list():GetNPCList(); + + for npc in npcList.entries do + + -- exclude the bones in the Trondol room + if ( npc.valid and npc:GetNPCTypeID() == BONES_TYPE and npc:GetX() > 300 and npc:GetY() < -200 ) then + + eq.spawn2(SKELETAL_DEATHGUARD_TYPE, 0, 0, npc:GetX(), npc:GetY(), npc:GetZ(), npc:GetHeading()); + end + end + eq.signal(BONES_TYPE, 1); + end + + eq.stop_timer("check"); + end +end + +function FakeForemanSignalEvent(e) + if ( e.signal == 1 ) then + eq.set_timer("check", 1000); + end +end + +function BonesSignalEvent(e) + if ( e.signal == 1 and e.self:GetX() > 300 and e.self:GetY() < -200 ) then + eq.depop_with_timer(); + end +end + +function event_encounter_load(e) + + eq.register_npc_event("Foreman", Event.death, GRIMLING_DEATHGUARD_TYPE, GrimDeathguardDeathEvent); + + eq.register_npc_event("Foreman", Event.spawn, FOREMAN_TYPE, SpawnEvent); + eq.register_npc_event("Foreman", Event.timer, FOREMAN_TYPE, DepopTimerEvent); + + eq.register_npc_event("Foreman", Event.spawn, SKELETAL_DEATHGUARD_TYPE, SpawnEvent); + eq.register_npc_event("Foreman", Event.timer, SKELETAL_DEATHGUARD_TYPE, DepopTimerEvent); + + eq.register_npc_event("Foreman", Event.timer, NON_TARGET_FOREMAN_TYPE, FakeForemanTimerEvent); + eq.register_npc_event("Foreman", Event.signal, NON_TARGET_FOREMAN_TYPE, FakeForemanSignalEvent); + eq.register_npc_event("Foreman", Event.signal, BONES_TYPE, BonesSignalEvent); +end diff --git a/acrylia/encounters/HighPriest.lua b/acrylia/encounters/HighPriest.lua new file mode 100644 index 0000000..20f8877 --- /dev/null +++ b/acrylia/encounters/HighPriest.lua @@ -0,0 +1,162 @@ +local client_target = 0; +local client_number = 0; +local wave = 0; + +function ShackleSpawn(e) + client_number = 0; + eq.set_proximity(e.self:GetX()-5,e.self:GetX()+5,e.self:GetY()-5,e.self:GetY()+5,e.self:GetZ()-5,e.self:GetZ()+10); +end + +function ShackleEnter(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(154107) and client_number < 1) then + client_number = client_number + 1; + client_target = e.other:GetID(); + eq.debug("Number of client here is ".. client_number .."",1); + e.self:CastSpell(2860, e.self:GetID()); -- cast shackles + eq.set_timer("root",12000); + eq.set_timer("waves",45000); + end +end + +function ShackleTimer(e) + if(client_number > 0) then + if(e.timer == "root") then + e.self:CastSpell(2860, e.self:GetID()); + elseif(e.timer == "waves") then + wave = wave + 1; + if(wave < 16) then + if(wave == 1) then + eq.get_entity_list():GetMobByNpcTypeID(154107):Shout("Master, intruders have wandered into our sacred altar! I beg, grant me power to make them a worthy sacrifice!"); + end + rand = math.random(1,2); + if(rand == 2) then + eq.spawn2(154019,9,0,150,-690,2,0); + eq.spawn2(154019,9,0,153,-695,2,0); + else + eq.spawn2(154019,9,0,150,-690,2,0); + end + elseif(wave < 31) then + if(wave == 16) then + eq.get_entity_list():GetMobByNpcTypeID(154107):Shout("Master, the intruders are powerful. I beg, send stronger minions!"); + end + rand = math.random(1,2); + if(rand == 2) then + eq.spawn2(154020,9,0,150,-690,2,0); + eq.spawn2(154020,9,0,153,-695,2,0); + else + eq.spawn2(154020,9,0,150,-690,2,0); + end + elseif(wave < 46) then + if(wave == 31) then + eq.get_entity_list():GetMobByNpcTypeID(154107):Shout("Master, the tresspassers persist. I beg, make them pay for their foolishness!"); + end + if(rand == 2) then + eq.spawn2(154021,9,0,150,-690,2,0); + eq.spawn2(154021,9,0,153,-695,2,0); + else + eq.spawn2(154021,9,0,150,-690,2,0); + end + elseif(wave == 46) then + eq.get_entity_list():GetMobByNpcTypeID(154107):Shout("Master! The minions have failed. I beg, empower me to rid the realm of the vile unbelievers!"); + eq.get_entity_list():GetClientByID(client_target):MovePC(154,142,-690,3,0); + eq.depop_with_timer(154107); + if(math.random(100) > 20) then + eq.unique_spawn(154022,0,0,142,-690,3,66); -- a_grimling_high_priest (targetable) + else + eq.unique_spawn(154023,0,0,142,-690,3,66); -- High_Priest_Gakkernog + end + end + end + end +end + +function ShackleExit(e) + client_number = client_number - 1; + eq.debug("Number of client here is ".. client_number .."",1); + if(client_number < 1) then + client_number = 0; + client_target = 0; + wave = 0; + eq.stop_timer("root"); + eq.stop_timer("waves"); + end +end + +function Possess1waypoint(e) + if(e.wp == 3 and client_target > 0) then + e.self:CastSpell(2858, client_target); -- cast acryliaKB + elseif(e.wp == 5) then + client_number = client_number - 1; + if(client_number < 1) then + client_number = 0; + client_target = 0; + wave = 0; + eq.stop_timer("root"); + eq.stop_timer("waves"); + end + end +end + +function Possess2waypoint(e) + if(e.wp == 3 and client_target > 0) then + e.self:CastSpell(2858, client_target); -- cast acryliaKB + elseif(e.wp == 5) then + client_number = client_number - 1; + if(client_number < 1) then + client_number = 0; + client_target = 0; + wave = 0; + eq.stop_timer("root"); + eq.stop_timer("waves"); + end + end +end + +function Possess3waypoint(e) + if(e.wp == 3 and client_target > 0) then + e.self:CastSpell(2858, client_target); -- cast acryliaKB + elseif(e.wp == 5) then + client_number = client_number - 1; + if(client_number < 1) then + client_number = 0; + client_target = 0; + wave = 0; + eq.stop_timer("root"); + eq.stop_timer("waves"); + end + end +end + +function HighPriestSpawn(e) + eq.set_timer("depop",1200000); +end + +function HighPriestTimer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function GakkernogSpawn(e) + eq.set_timer("depop",1200000); +end + +function GakkernogTimer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_encounter_load(e) + eq.register_npc_event("HighPriest", Event.spawn, 154108, ShackleSpawn); + eq.register_npc_event("HighPriest", Event.enter, 154108, ShackleEnter); + eq.register_npc_event("HighPriest", Event.exit, 154108, ShackleExit); + eq.register_npc_event("HighPriest", Event.timer, 154108, ShackleTimer); + eq.register_npc_event("HighPriest", Event.waypoint_arrive, 154019, Possess1waypoint); + eq.register_npc_event("HighPriest", Event.waypoint_arrive, 154020, Possess2waypoint); + eq.register_npc_event("HighPriest", Event.waypoint_arrive, 154021, Possess3waypoint); + eq.register_npc_event("HighPriest", Event.spawn, 154022, HighPriestSpawn); + eq.register_npc_event("HighPriest", Event.timer, 154022, HighPriestTimer); + eq.register_npc_event("HighPriest", Event.spawn, 154023, GakkernogSpawn); + eq.register_npc_event("HighPriest", Event.timer, 154023, GakkernogTimer); +end diff --git a/acrylia/encounters/RingOfFire.lua b/acrylia/encounters/RingOfFire.lua new file mode 100644 index 0000000..6498fd9 --- /dev/null +++ b/acrylia/encounters/RingOfFire.lua @@ -0,0 +1,213 @@ +local TRASH_TYPES = { + 154353, -- a_possessed_corpse (SK) + 154354, -- a_possessed_corpse (Wizard) + 154355, -- a_possessed_priest +}; +local MINIBOSS_TYPES = { + 154356, -- A_Possessed_Battlelord + 154357, -- A_Possessed_Battlemaster +}; +local BOSS_TYPES = { + 154358, -- A_Possessed_Warmonger + 154359, -- A_Possessed_Warlord + 154360, -- A_Possessed_Warmaster + 154361, -- A_Possessed_Underking +}; +local TRIGGER_NPC_TYPE = 154091; -- #As +local WARDER_TYPE = 154111; +local UNTARGETABLE_GRIMLING_TYPE = 154351; +local RING_CLIENT_CHECK_TIMER = 2000; + +local ringActive = false; +local clientsInRing = 0; +local wave = 0; +local warder; +local chantingGrimlings = {}; +local waveToggle = false; + +function TriggerNPCSpawnEvent(event) + eq.set_proximity(-126, -108, 74, 91, -40, 100); + ringActive = false; +end + +function TriggerNPCEnterEvent(e) + + if ( e.other:GetGM() ) then + return + end + + if ( not ringActive ) then + + ringActive = true; + clientsInRing = 1; + + e.self:Emote("you step into the grimling's ring of fire, a hot breeze blows into the cavern and begins swirling about you. The grimling's constant chanting seems to grow louder..."); + + warder = eq.spawn2(WARDER_TYPE, 0, 0, -98, -20, -25, 0); -- a_grimling_warder + + chantingGrimlings[1] = eq.spawn2(UNTARGETABLE_GRIMLING_TYPE, 0, 0, -78, 93, -26, 182); -- confirmed + chantingGrimlings[2] = eq.spawn2(UNTARGETABLE_GRIMLING_TYPE, 0, 0, -82, 56, -29, 210); -- confirmed + chantingGrimlings[3] = eq.spawn2(UNTARGETABLE_GRIMLING_TYPE, 0, 0, -124, 120, -29, 121); -- guess + chantingGrimlings[4] = eq.spawn2(UNTARGETABLE_GRIMLING_TYPE, 0, 0, -149, 80, -27, 61); -- guess + chantingGrimlings[5] = eq.spawn2(UNTARGETABLE_GRIMLING_TYPE, 0, 0, -133, 53, -29, 23); -- confirmed + + eq.set_timer("wave", 70000 + math.random(10000)); + eq.set_timer("proximity", RING_CLIENT_CHECK_TIMER); + eq.set_timer("spam", 1200000 + math.random(600000)); + end +end + +function EndRingEvent() + + for _, id in ipairs(BOSS_TYPES) do + eq.depop_all(id); + end + + local spawn; + + for _, mob in ipairs(chantingGrimlings) do + mob:Depop(); + end + + warder:Shout("Master! The sacred ring of fire has been cleansed of trespassers."); + warder:Depop(); + + wave = 0; + ringActive = false; +end + +function CountClientsInRing() + local clientList = eq.get_entity_list():GetClientList(); + local clients = 0; + + if ( clientList ) then + for client in clientList.entries do + + if ( not client:GetGM() and not client:GetFeigned() + and client:GetY() > 74 and client:GetY() < 91 + and client:GetX() > -126 and client:GetX() < -108 + and client:GetZ() > -40 and client:GetZ() < 100 + ) then + + clients = clients + 1; + end + end + end + + return clients; +end + +function TriggerNPCTimerEvent(e) + + if ( not ringActive ) then + eq.stop_timer("wave"); + eq.stop_timer("spam"); + eq.stop_timer("proximity"); + return; + end + + if ( e.timer == "wave" ) then + + wave = wave + 1; + + if ( waveToggle ) then + waveToggle = false; + eq.set_timer("wave", 90000 + math.random(10000)); + else + waveToggle = true; + eq.set_timer("wave", 70000 + math.random(10000)); + end + + SpawnWave(); + + elseif ( e.timer == "proximity" ) then + + if ( CountClientsInRing() == 0 ) then + EndRingEvent(); + end + + elseif ( e.timer == "spam" and warder ) then + + warder:Say("Approach me tresspassers! By the power of the master, I will bathe you in the boiling rock!"); + eq.set_timer("spam", 1200000 + math.random(600000)); + end +end + +function SpawnWave() + + local roll = math.random(100); + + -- big boss every 15 waves starting at wave 30 + if ( wave > 29 and wave % 15 == 0 ) then + + local boss = 1; -- warmonger + + if ( roll <= 10 ) then + boss = 4; -- underking + elseif ( roll <= 20 ) then + boss = 3; -- warmaster + elseif ( roll <= 35 ) then + boss = 2; -- warlord + end + + eq.spawn2(BOSS_TYPES[boss], 12, 0, -89, 5, -25, 250); + else + if ( roll <= 7 ) then + -- battlemaster + eq.spawn2(MINIBOSS_TYPES[2], 0, 0, -116, 81, -25, math.random(255)); + elseif ( roll <= 15 ) then + -- battlelord + eq.spawn2(MINIBOSS_TYPES[1], 0, 0, -116, 81, -25, math.random(255)); + else + eq.spawn2(TRASH_TYPES[math.random(3)], 0, 0, math.random(-126, -108), math.random(74, 91), -25, math.random(255)); + end + + eq.spawn2(TRASH_TYPES[1], 0, 0, math.random(-126, -108), math.random(74, 91), -25, math.random(255)); -- SK possessed + eq.spawn2(TRASH_TYPES[math.random(3)], 0, 0, math.random(-126, -108), math.random(74, 91), -25, math.random(255)); + end +end + +function TrashEventSpawn(e) + eq.set_timer("depop", 60000); +end + +function TrashEventCombat(e) + if ( e.joined ) then + if ( not eq.is_paused_timer("depop") ) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function TrashEventTimer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_encounter_load(e) + + -- #As + eq.register_npc_event("RingOfFire", Event.spawn, TRIGGER_NPC_TYPE, TriggerNPCSpawnEvent); + eq.register_npc_event("RingOfFire", Event.enter, TRIGGER_NPC_TYPE, TriggerNPCEnterEvent); + eq.register_npc_event("RingOfFire", Event.timer, TRIGGER_NPC_TYPE, TriggerNPCTimerEvent); + + -- depop timers + for _, id in ipairs(TRASH_TYPES) do + eq.register_npc_event("RingOfFire", Event.combat, id, TrashEventCombat); + eq.register_npc_event("RingOfFire", Event.timer, id, TrashEventTimer); + eq.register_npc_event("RingOfFire", Event.spawn, id, TrashEventSpawn); + end + for _, id in ipairs(MINIBOSS_TYPES) do + eq.register_npc_event("RingOfFire", Event.combat, id, TrashEventCombat); + eq.register_npc_event("RingOfFire", Event.timer, id, TrashEventTimer); + eq.register_npc_event("RingOfFire", Event.spawn, id, TrashEventSpawn); + end + + -- ensure TriggerNPCSpawnEvent() executes + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(TRIGGER_NPC_TYPE) ) then + eq.depop_with_timer(TRIGGER_NPC_TYPE); + end +end diff --git a/acrylia/encounters/Trondol.lua b/acrylia/encounters/Trondol.lua new file mode 100644 index 0000000..a8e407f --- /dev/null +++ b/acrylia/encounters/Trondol.lua @@ -0,0 +1,135 @@ +local soulstealer = nil; +local grimling1 = nil; +local grimling2 = nil; +local grimling3 = nil; +local grimling4 = nil; +local grimling5 = nil; +local grimling6 = nil; +local grimling7 = nil; +local grimling8 = nil; +local march = 0; +local chant = 0; + +function TrondolTrade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6554}, 0)) then -- Grimling Shackle Key + e.self:Say("I am too weak to make an escape, I warned you not to bother with me. I'll do my best, but I fear it is all in vain..."); + eq.spawn2(154346,0,0,-191,-703,2,99); + eq.spawn2(154346,0,0,-219,-709,2,68); + eq.spawn2(154346,0,0,-186,-730,2,231); + eq.spawn2(154031,10,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function TrondolWaypoint(e) + if(e.wp == 4) then + eq.signal(154039,1); + e.self:SetAppearance(3); + end +end + +function Trondol2Trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6711}, 0)) then -- Grimling Soulgem + e.self:Say("I ... I don't know what to say. I owe you my life. I will tell the king, and all who will listen, what you have done for me. Take these shackles that they may know it was truly you who have plucked me from an eternity of slavery."); + e.other:QuestReward(e.self,0,0,0,0,6513,5000); -- Shackles of a Vah Shir Captive + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function TronSignal(e) + if(e.signal == 1) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(154031)) then + eq.get_entity_list():GetMobByNpcTypeID(154031):Say("I cannot take another step, my spirit is fading... Save yourselves. You will have my eternal gratitude for your noble efforts."); + end + eq.set_timer("march",5000); + eq.set_timer("chant",45000); + end +end + +function TronTimer(e) + if(e.timer == "march") then + march = march + 1; + if(march == 1) then + soulstealer = eq.spawn2(154036,0,0,-38,-271,-29,128); + elseif(march == 2) then + soulstealer:CastToNPC():MoveTo(-40,-330,-31,128,true); + grimling4 = eq.spawn2(154033,0,0,-13,-243,-31,131); + elseif(march == 3) then + grimling4:CastToNPC():MoveTo(-30,-330,-31,128,true); + grimling7 = eq.spawn2(154034,0,0,-136,-385,-31,62); + elseif(march == 4) then + grimling7:CastToNPC():MoveTo(-90,-375,-31,64,true); + grimling2 = eq.spawn2(154034,0,0,20,-260,-31,133); + elseif(march == 5) then + grimling2:CastToNPC():MoveTo(8,-375,-31,194,true); + grimling5 = eq.spawn2(154038,0,0,-130,-259,-31,91); + elseif(march == 6) then + grimling5:CastToNPC():MoveTo(-50,-330,-31,128,true); + grimling8 = eq.spawn2(154035,0,0,-183,-384,-31,66); + elseif(march == 7) then + grimling8:CastToNPC():MoveTo(-90,-385,-31,64,true); + grimling1 = eq.spawn2(154032,0,0,77,-332,-31,175); + elseif(march == 8) then + grimling1:CastToNPC():MoveTo(8,-385,-31,194,true); + grimling6 = eq.spawn2(154037,0,0,-134,-326,-31,70); + elseif(march == 9) then + grimling6:CastToNPC():MoveTo(-90,-365,-31,64,true); + grimling3 = eq.spawn2(154035,0,0,1,-199,-31,127); + elseif(march == 10) then + grimling3:CastToNPC():MoveTo(8,-365,-31,194,true); + eq.stop_timer("march"); + march = 0; + end + elseif(e.timer == "chant") then + chant = chant + 1; + if(chant == 1) then + soulstealer:CastToNPC():Emote("laughs, 'You think you run away? You not leave without spirit... I have spirit. You stay forever!"); + elseif(chant == 2) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(154031)) then + eq.get_entity_list():GetMobByNpcTypeID(154031):Emote("gasps, 'Noo! I'd rather die than serve your evil master. Friends, do not risk sharing my fate! Run!"); + end + elseif(chant == 3) then + soulstealer:CastToNPC():Emote("draws his weapon, 'No one leaves! You all die for the power of the master!'"); + elseif(chant == 4) then + soulstealer:CastToNPC():Shout("Attack!"); + GrimlingAttack(e); + elseif(chant == 5) then + eq.depop(154031); + eq.stop_timer("chant"); + chant = 0; + end + end +end + +function GrimlingAttack(e) + eq.spawn2(154024,11,0,-40,-330,-31,128); + eq.depop(154036); + eq.spawn2(154028,11,0,8,-385,-31,194); + eq.depop(154032); + eq.spawn2(154026,11,0,8,-375,-31,194); + eq.spawn2(154026,11,0,-90,-375,-31,64); + eq.depop_all(154034); + eq.spawn2(154025,11,0,8,-365,-31,194); + eq.spawn2(154025,11,0,-90,-385,-31,64); + eq.depop_all(154035); + eq.spawn2(154027,11,0,-30,-330,-31,128); + eq.depop(154033); + eq.spawn2(154030,11,0,-50,-330,-31,128); + eq.depop(154038); + eq.spawn2(154029,11,0,-90,-365,-31,64); + eq.depop(154037); +end + +function event_encounter_load(e) + eq.register_npc_event("Trondol", Event.trade, 154125, TrondolTrade); + eq.register_npc_event("Trondol", Event.trade, 154031, Trondol2Trade); + eq.register_npc_event("Trondol", Event.waypoint_arrive, 154031, TrondolWaypoint); + eq.register_npc_event("Trondol", Event.signal, 154039, TronSignal); + eq.register_npc_event("Trondol", Event.timer, 154039, TronTimer); +end diff --git a/acrylia/encounters/Witchdoctor.lua b/acrylia/encounters/Witchdoctor.lua new file mode 100644 index 0000000..a68cc40 --- /dev/null +++ b/acrylia/encounters/Witchdoctor.lua @@ -0,0 +1,164 @@ +local TRIGGER_NPC_TYPE = 154130; -- WDTrpMn +local WARDER_TYPE = 154111; -- a_grimling_warder +local SUMMONED_GRIMLINGS = { 154363, 154364, 154365 }; -- a_summoned_grimling (neuter, female, male) +local WITCHDOCTOR_TYPE = 154041; -- #Witchdoctor_Gnorgtarg + +local eventActive = false; +local scriptRestartCooldown = false; +local cooldownTime = 16800000; +local clientsInProximity = 0; +local warder; +local proxTimer; + +function TriggerNPCSpawnEvent(event) + eq.set_proximity(383, 460, -378, -205, 30, 60); + eventActive = false; +end + +function TriggerNPCEnterEvent(e) + + if ( e.other:GetGM() ) then + return + end + + TryStartEvent(); +end + +function TryStartEvent() + if ( not eventActive and not scriptRestartCooldown ) then + + eventActive = true; + proxTimer = false; + clientsInProximity = 1; + + eq.set_timer("warder", 15000); + eq.set_timer("proximity", 2000); + + SummonedGrimlingDeathEvent(); + end +end + +function EndEvent() + + warder:Depop(); + + for _, id in ipairs(SUMMONED_GRIMLINGS) do + eq.depop_all(id); + end + + proxTimer = false; + eventActive = false; + + eq.signal(TRIGGER_NPC_TYPE, 1); +end + +function CountClientsInRing() + local clientList = eq.get_entity_list():GetClientList(); + local clients = 0; + + if ( clientList ) then + for client in clientList.entries do + + if ( not client:GetGM() and not client:GetFeigned() + and client:GetY() > -379 and client:GetY() < -204 + and client:GetX() > 382 and client:GetX() < 461 + and client:GetZ() > 29 and client:GetZ() < 61 + ) then + + clients = clients + 1; + end + end + end + + return clients; +end + +function TriggerNPCTimerEvent(e) + + if ( e.timer == "restart" ) then + scriptRestartCooldown = false; + eq.stop_timer("restart"); + return; + end + + if ( not eventActive ) then + eq.stop_timer("proximity"); + eq.stop_timer("end"); + eq.depop_all(WITCHDOCTOR_TYPE); + return; + end + + if ( e.timer == "proximity" ) then + + if ( CountClientsInRing() == 0 ) then + + if ( proxTimer == false ) then + eq.set_timer("end", 180000); + proxTimer = true; + end + else + eq.stop_timer("end"); + proxTimer = false; + end + + elseif ( e.timer == "end" ) then + + if ( CountClientsInRing() == 0 ) then + scriptRestartCooldown = true; + cooldownTime = 2700000; + EndEvent(); -- no clients near middle of room for 3 mins + end + + elseif ( e.timer == "warder" ) then + warder = eq.spawn2(WARDER_TYPE, 0, 0, 441, -401, 28, 192); -- a_grimling_warder + eq.stop_timer("warder"); + end +end + +function WitchdoctorDeathEvent(e) + scriptRestartCooldown = true; + cooldownTime = 16800000; + EndEvent(); +end + +function TriggerNPCSignalEvent(e) + if ( e.signal == 1 ) then + eq.set_timer("restart", cooldownTime); + end +end + +function SummonedGrimlingDeathEvent(e) + + local roll = math.random(100); + local x, y, z, h = 433, -297, 42, 64; + + if ( roll <= 25 ) then + eq.spawn2(WITCHDOCTOR_TYPE, 0, 0, x, y, z, h); + elseif ( roll <= 50 ) then + eq.spawn2(SUMMONED_GRIMLINGS[1], 0, 0, x, y, z, h); + elseif ( roll <= 75 ) then + eq.spawn2(SUMMONED_GRIMLINGS[2], 0, 0, x, y, z, h); + else + eq.spawn2(SUMMONED_GRIMLINGS[3], 0, 0, x, y, z, h); + end +end + +function event_encounter_load(e) + + -- WDTrpMn + eq.register_npc_event("Witchdoctor", Event.spawn, TRIGGER_NPC_TYPE, TriggerNPCSpawnEvent); + eq.register_npc_event("Witchdoctor", Event.enter, TRIGGER_NPC_TYPE, TriggerNPCEnterEvent); + eq.register_npc_event("Witchdoctor", Event.timer, TRIGGER_NPC_TYPE, TriggerNPCTimerEvent); + eq.register_npc_event("Witchdoctor", Event.signal, TRIGGER_NPC_TYPE, TriggerNPCSignalEvent); + + -- ensure TriggerNPCSpawnEvent() executes + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(TRIGGER_NPC_TYPE) ) then + eq.depop_with_timer(TRIGGER_NPC_TYPE); + end + + eq.register_npc_event("Witchdoctor", Event.death, WITCHDOCTOR_TYPE, WitchdoctorDeathEvent); + + for _, id in ipairs(SUMMONED_GRIMLINGS) do + eq.register_npc_event("Witchdoctor", Event.death, id, SummonedGrimlingDeathEvent); + end +end diff --git a/acrylia/script_init.lua b/acrylia/script_init.lua new file mode 100644 index 0000000..115ad9c --- /dev/null +++ b/acrylia/script_init.lua @@ -0,0 +1,7 @@ +eq.load_encounter("Burrower"); +eq.load_encounter("HighPriest"); +eq.load_encounter("Trondol"); +eq.load_encounter("RingOfFire"); +eq.load_encounter("Archmage"); +eq.load_encounter("Witchdoctor"); +eq.load_encounter("Foreman"); diff --git a/acrylia/the_vile_statue.lua b/acrylia/the_vile_statue.lua new file mode 100644 index 0000000..a7a56d4 --- /dev/null +++ b/acrylia/the_vile_statue.lua @@ -0,0 +1,41 @@ +function event_spawn(e) + eq.set_proximity(-61, -20, -797, -761, -15, 0); +end + +function event_enter(e) + if ( e.other:GetGM() ) then + return + end + + eq.set_timer("cast", 2000); +end + +function event_leave(e) + eq.stop_timer("cast"); +end + +function event_timer(e) + + if ( e.timer == "cast" ) then + + local clientList = eq.get_entity_list():GetClientList(); + local clients; + + if ( clientList ) then + for client in clientList.entries do + + if ( not client:GetGM() and client:GetZ() > -15 and client:GetZ() < 0 + and client:GetY() > -797 and client:GetY() < -761 + and client:GetX() > -61 and client:GetX() < -20 + ) then + clients = true; + e.self:CastSpell(2858, client:GetID(), 0, 1); -- Acrylia KB + end + end + end + + if ( not clients) then + eq.stop_timer("cast"); + end + end +end diff --git a/airplane/#Master_of_Elements.lua b/airplane/#Master_of_Elements.lua new file mode 100644 index 0000000..80d28f8 --- /dev/null +++ b/airplane/#Master_of_Elements.lua @@ -0,0 +1,27 @@ +function event_spawn(e) + eq.set_timer("depop",5400000); --this triggered mob is only available for 90 minutes then depops +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I... am... the... Master... of... Elements.. Elements... Forgive... me. I am... unaccustomed.. to.. speaking.. this.. mortal... tongue. Might.. you... be... the... One?"); + elseif(e.message:findi("i am the one")) then + e.self:Say("Trilith... Magi'kot.. knelt.. before.. the.. orb.. in.. his.. his.. last.. few.. moments... of.. mortal.. life. He... too... believed.. that.. he.. had.. the.. power.. and.. balance.. needed.. to.. grasp... control.. of.. the.. elements. He.. was.... flawed. Coming.. to... me... is.. a.. matter.. of.. no.. small.. import. Only.. only... one.. who.. is.. of.. balance.. and.. power... power.. may.. control.. the.. Orb.. of... Mastery. Give.... give.. me.. the.. Elements.. you.. have... gathered.. and.. I.. shall.. see.. if.. you.. are.. ready.. ready.. to control.. the... Elements.. of... life.. life.. life."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28032, item2 = 28009, item3 = 28006, item4 = 28033})) then + e.self:Say("You... are.. balanced... and.. powerful.. for.. a.. mortal... " .. e.other:GetCleanName() .. " ..... " .. e.other:GetCleanName() .. ". More.. so.. than.... Magi'kot. But.... you.. are.. not.. yet.. ready.. to.. transcend.. transcend... this.. mortal.. coil. Take.. take.. seize.. this.. Orb... for.. you.. are.. worthy.. of.. reward.. and.. with... the.. aid.. of... the... balance.. balance.. contained.. within.. the.. Orb.. you.. may.. yet.. reach.. the... ultimate... Mastery."); + e.other:QuestReward(e.self,0,0,0,0,19436); + eq.depop(); + eq.stop_timer("depop"); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.depop(); + eq.stop_timer("depop"); +end diff --git a/airplane/#Sister_of_the_Spire.lua b/airplane/#Sister_of_the_Spire.lua new file mode 100644 index 0000000..95e9a60 --- /dev/null +++ b/airplane/#Sister_of_the_Spire.lua @@ -0,0 +1,9 @@ +function event_death_complete(e) + eq.set_global("sirran","7",3,"M20"); + eq.spawn2(71058,0,0,-960,-1037,1093,64); -- NPC: Sirran_the_Lunatic +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/552.lua b/airplane/552.lua new file mode 100644 index 0000000..2339932 --- /dev/null +++ b/airplane/552.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:ChangeSize(5); + e.self:SetRace(126); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/553.lua b/airplane/553.lua new file mode 100644 index 0000000..2339932 --- /dev/null +++ b/airplane/553.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:ChangeSize(5); + e.self:SetRace(126); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/554.lua b/airplane/554.lua new file mode 100644 index 0000000..2339932 --- /dev/null +++ b/airplane/554.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:ChangeSize(5); + e.self:SetRace(126); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/555.lua b/airplane/555.lua new file mode 100644 index 0000000..2339932 --- /dev/null +++ b/airplane/555.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:ChangeSize(5); + e.self:SetRace(126); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/556.lua b/airplane/556.lua new file mode 100644 index 0000000..2339932 --- /dev/null +++ b/airplane/556.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:ChangeSize(5); + e.self:SetRace(126); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/557.lua b/airplane/557.lua new file mode 100644 index 0000000..2339932 --- /dev/null +++ b/airplane/557.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:ChangeSize(5); + e.self:SetRace(126); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/558.lua b/airplane/558.lua new file mode 100644 index 0000000..2339932 --- /dev/null +++ b/airplane/558.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:ChangeSize(5); + e.self:SetRace(126); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/559.lua b/airplane/559.lua new file mode 100644 index 0000000..2339932 --- /dev/null +++ b/airplane/559.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:ChangeSize(5); + e.self:SetRace(126); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/560.lua b/airplane/560.lua new file mode 100644 index 0000000..2339932 --- /dev/null +++ b/airplane/560.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:ChangeSize(5); + e.self:SetRace(126); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/561.lua b/airplane/561.lua new file mode 100644 index 0000000..2339932 --- /dev/null +++ b/airplane/561.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:ChangeSize(5); + e.self:SetRace(126); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/562.lua b/airplane/562.lua new file mode 100644 index 0000000..2339932 --- /dev/null +++ b/airplane/562.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:ChangeSize(5); + e.self:SetRace(126); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/563.lua b/airplane/563.lua new file mode 100644 index 0000000..2339932 --- /dev/null +++ b/airplane/563.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:ChangeSize(5); + e.self:SetRace(126); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/564.lua b/airplane/564.lua new file mode 100644 index 0000000..2339932 --- /dev/null +++ b/airplane/564.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:ChangeSize(5); + e.self:SetRace(126); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/565.lua b/airplane/565.lua new file mode 100644 index 0000000..2339932 --- /dev/null +++ b/airplane/565.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:ChangeSize(5); + e.self:SetRace(126); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/566.lua b/airplane/566.lua new file mode 100644 index 0000000..2339932 --- /dev/null +++ b/airplane/566.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:ChangeSize(5); + e.self:SetRace(126); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/614.lua b/airplane/614.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/614.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/615.lua b/airplane/615.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/615.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/616.lua b/airplane/616.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/616.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/617.lua b/airplane/617.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/617.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/618.lua b/airplane/618.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/618.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/619.lua b/airplane/619.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/619.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/620.lua b/airplane/620.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/620.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/621.lua b/airplane/621.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/621.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/622.lua b/airplane/622.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/622.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/623.lua b/airplane/623.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/623.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/624.lua b/airplane/624.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/624.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/625.lua b/airplane/625.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/625.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/626.lua b/airplane/626.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/626.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/627.lua b/airplane/627.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/627.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/628.lua b/airplane/628.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/628.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/629.lua b/airplane/629.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/629.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/630.lua b/airplane/630.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/630.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/631.lua b/airplane/631.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/631.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/632.lua b/airplane/632.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/632.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/633.lua b/airplane/633.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/633.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/634.lua b/airplane/634.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/634.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/663.lua b/airplane/663.lua new file mode 100644 index 0000000..c3e7b3e --- /dev/null +++ b/airplane/663.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + e.self:SetRace(69); + e.self:SetTexture(1); + e.self:ChangeSize(4); +end + +-- DEVELOPER: Congdar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/71005.lua b/airplane/71005.lua new file mode 100644 index 0000000..c619fd0 --- /dev/null +++ b/airplane/71005.lua @@ -0,0 +1,9 @@ +function event_death_complete(e) + eq.spawn2(71103,0,0,e.self:GetX()+10,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); --Bazzazzt --1-1 + eq.spawn2(71103,0,0,e.self:GetX()-10,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); --Bazzazzt --1-2 +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/71006.lua b/airplane/71006.lua new file mode 100644 index 0000000..2467245 --- /dev/null +++ b/airplane/71006.lua @@ -0,0 +1,10 @@ +function event_death_complete(e) + eq.spawn2(71106,0,0,e.self:GetX() + 10,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); --Bazzazzt --2-1 + eq.spawn2(71106,0,0,e.self:GetX() - 10,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); --Bazzazzt --2-2 + eq.spawn2(71106,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); --Bazzazzt --2-3 +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/71103.lua b/airplane/71103.lua new file mode 100644 index 0000000..40f2d2e --- /dev/null +++ b/airplane/71103.lua @@ -0,0 +1,8 @@ +function event_death_complete(e) + eq.spawn2(71102,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); --Bizazzzt +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/71105.lua b/airplane/71105.lua new file mode 100644 index 0000000..431a9c6 --- /dev/null +++ b/airplane/71105.lua @@ -0,0 +1,8 @@ +function event_death_complete(e) + eq.spawn2(71107,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); --Bazzazzt --3-1 +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/71107.lua b/airplane/71107.lua new file mode 100644 index 0000000..0530de6 --- /dev/null +++ b/airplane/71107.lua @@ -0,0 +1,8 @@ +function event_death_complete(e) + eq.spawn2(71101,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); --Bzzzt +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Abec_Ianor.lua b/airplane/Abec_Ianor.lua new file mode 100644 index 0000000..177290d --- /dev/null +++ b/airplane/Abec_Ianor.lua @@ -0,0 +1,43 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Great, let us waste no more time! Do you wish to begin your test of conception, visualization, or preparation?"); + elseif(e.message:findi("conception")) then --wizard test of conception + e.self:Say("Conception is vital. Travel beyond and bring forth an Efreeti Statuette, a Mithril Air Ring, and a Box of Winds. From these I will produce a ring that will protect you where ever you go."); + elseif(e.message:findi("visualization")) then --wizard test of visualization + e.self:Say("Visualize and succeed. Proceed upward and bring to me a White-Tipped Spiroc Feather, a Pulsating Sapphire, and an Amethyst Amulet. With these items, I will be able to produce an amulet that will aid in your travels to our home."); + elseif(e.message:findi("preparation")) then --wizard test of preparation + e.self:Say("Always be prepared. Adventure and return an Efreeti War Staff, some Lush Nectar, a Copper Air Band, and a large Sky Sapphire and you shall be rewarded with the Staff of Storms."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20951, item2 = 20747, item3 = 20748})) then --wizard test of conception using efreeti statuette, mithril air ring, box of winds + e.self:Say("Excellent! Take this."); + e.other:QuestReward(e.self,0,0,0,0,11686,100000); --solidate mithril ring + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20958, item2 = 20749, item3 = 20750})) then --wizard test of visualization using white-tipped spiroc feather, pulsating sapphire, amethyst amulet + e.self:Say("Excellent! Take this."); + e.other:QuestReward(e.self,0,0,0,0,27710,100000); --Amulet of the Void + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20753, item2 = 20965, item3 = 20751, item4 = 20752})) then --wizard test of preparation using efreeti war staff, lush nectar, copper air band, large sky sapphire + e.self:Say("Excellent! Take this."); + e.other:QuestReward(e.self,0,0,0,0,11685,100000); --nargon's staff + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Alan_Harten.lua b/airplane/Alan_Harten.lua new file mode 100644 index 0000000..57de858 --- /dev/null +++ b/airplane/Alan_Harten.lua @@ -0,0 +1,43 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings faithful. Your faith shall be tested this day. Shall you take the test of courage, skill, or protection?"); + elseif(e.message:findi("courage")) then --cleric test of courage + e.self:Say("You have come seeking the knowledge and treasures I possess. I will impart such things to you, if you do a service to your god. It matters not who that god may be, but the service and the faith you must exemplify. Bring to me an ochre tessera, a sky emerald, and a silver hoop."); + elseif(e.message:findi("skill")) then --cleric test of skill + e.self:Say("The test of skill it will be. Bring to me a golden disc, a piece of dark wood, and a small shield. You shall be rewarded upon your return."); + elseif(e.message:findi("protection")) then --cleric test of protection + e.self:Say("So, you must be a great protector to have ventured this far. Bring to me an adumbrate globe, a faintly glowing diamond, and some shiny pauldrons to get your reward."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20933, item2 = 20807, item3 = 20806})) then --cleric test of courage using ochre tessera, silver hoop, sky emerald + e.self:Say("Wonderful! Take this as your reward!"); + e.other:QuestReward(e.self,0,0,0,0,14563,100000); --truewind earring + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20808, item2 = 20939, item3 = 20809})) then --cleric test of skill using dark wood, gold disc, small shield + e.self:Say("Wonderful! Take this as your reward!"); + e.other:QuestReward(e.self,0,0,0,0,27716,100000); --aegis of the wind + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20946, item2 = 20810, item3 = 20811})) then --cleric test of protection using adumbrate globe, faintly glowing diamond, shiny pauldrons + e.self:Say("Wonderful! Take this as your reward!"); + e.other:QuestReward(e.self,0,0,0,0,27717,100000); --pauldrons of piety + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/airplane/Bazzt_Zzzt.lua b/airplane/Bazzt_Zzzt.lua new file mode 100644 index 0000000..b29600a --- /dev/null +++ b/airplane/Bazzt_Zzzt.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",4800000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_death_complete(e) + eq.set_global("sirran","6",3,"M20"); + eq.spawn2(71058,0,0,234,-1078,812,192); --Sirran the Lunatic +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Bzzzt.lua b/airplane/Bzzzt.lua new file mode 100644 index 0000000..6372ca7 --- /dev/null +++ b/airplane/Bzzzt.lua @@ -0,0 +1,8 @@ +function event_death_complete(e) + eq.spawn2(71072,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); --Bazzt Zzzt +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Cilin_Spellsinger.lua b/airplane/Cilin_Spellsinger.lua new file mode 100644 index 0000000..fbfcb87 --- /dev/null +++ b/airplane/Cilin_Spellsinger.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". Do you feel that you are ready to be tested in song?"); + elseif(e.message:findi("tested")) then + e.self:Say("The test of songs holds both joy and sorrow. Choose who you wish to begin with, Denise or Clarisa"); + elseif(e.message:findi("clarisa")) then + e.self:Say("Then Clarisa it shall be. Simply read the contents of this journal and return it to me when you are ready for your test. If you decide that perhaps Clarisa is not who you wish to test you, simply destroy the book and come back to me when you are ready."); + e.other:SummonCursorItem(18542); -- The Flute + elseif(e.message:findi("denise")) then + e.self:Say("Then Denise it shall be. You will want to peruse the contents of this journal before your test. When you are ready, simply hand it back to me and I will call Denise forth. If you decide that perhaps Denise is not who you want to test you, then destroy the book and see me again when you are ready."); + e.other:SummonCursorItem(18543); -- Dark Song + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18542})) then --Strength + e.self:Say("Farewell."); + eq.spawn2(71081,0,0,660.7,1388.9,-766.9,192.6); -- NPC: Clarisa_Spiritsong + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18543})) then --Tranquility + e.self:Say("Farewell."); + eq.spawn2(71082,0,0,660.7,1368.4,-766.9,192.6); -- NPC: Denise_Songweaver + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/airplane/Clarisa_Spiritsong.lua b/airplane/Clarisa_Spiritsong.lua new file mode 100644 index 0000000..53c18ab --- /dev/null +++ b/airplane/Clarisa_Spiritsong.lua @@ -0,0 +1,43 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi there " .. e.other:GetCleanName() .. "! I give three sections of the test of songs, Denise does the rest. Do you wish to take the test of pitch, voice, or tone?"); + elseif(e.message:findi("pitch")) then --Bard test of pitch + e.self:Say("The pitch that we sing and play has a great effect on those who listen. Keep this in mind, " .. e.other:GetCleanName() .. ", and you shall always be welcome in taverns and inns. Now, I need you to return to me a phosphoric globe, a shimmering diamond, and a crude wooden flute."); + elseif(e.message:findi("voice")) then --bard test of voice + e.self:Say("The sweet sounds rising forth from our throats are what make us truly great. Go forth and give voice to your songs, and return to me a platinum disc, a music box, and a light woolen mantle. If you do this, I shall give you the mantle of the songweaver. Good luck!"); + elseif(e.message:findi("tone")) then --bard test of tone + e.self:Say("Tone is important to all singers. Prove to me that you can keep your tone even and pure by bringing me an ochre tessera, a songbird statuette, and a light woolen mask. If you do this, I will give you the mask of song."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20947, item2 = 20824, item3 = 20825})) then --bard test of pitch using crude wooden flute, phosphoric globe, and shimmering diamond + e.self:Say("The songsmith Ervaj crafted this flute. It is now yours, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,27722,100000); --Ervaj's flute of flight + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20940, item2 = 20822, item3 = 20823})) then --bard test of voice using light woolen mantle, music box, platinum disc + e.self:Say("You are truly a master of songs, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,27721,100000); --mantle of the songweaver + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20933, item2 = 20821, item3 = 20820})) then --bard test of tone using ochre tessera, songbird statuette, light woolen mask + e.self:Say("Take this mask. You have earned it."); + e.other:QuestReward(e.self,0,0,0,0,27720,100000); --mask of song + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Dason_Goldblade.lua b/airplane/Dason_Goldblade.lua new file mode 100644 index 0000000..ca239be --- /dev/null +++ b/airplane/Dason_Goldblade.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". Are you pure of heart and soul?"); + elseif(e.message:findi("Heart and Soul")) then + e.self:Say("Then choose. Do you wish your purity to be tested by Gregori or Dirkog?"); + elseif(e.message:findi("Gregori")) then + e.self:Say("Gregori is a true and faithful warrior of Tunare. Read this book and, when you feel confident, hand it back to me. I will summon Gregori to test you after you have done so."); + e.other:SummonCursorItem(18526); -- Virtuous Knight + elseif(e.message:findi("Dirkog")) then + e.self:Say("Dirkog is a gruff one, but his faith is what all paladins should strive to equal. Read this book and return it to me. After you have done so, I shall summon Dirkog to test you."); + e.other:SummonCursorItem(18527); -- Walk with Evil + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18526})) then --Virtuous Knight + e.self:Say("Farewell."); + eq.spawn2(71089,0,0,563,1331.1,-766.9,63.4); -- NPC: Gregori_Lightbringer + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18527})) then --Walk with Evil + e.self:Say("Farewell."); + eq.spawn2(71077,0,0,563,1331.1,-766.9,63.4); -- NPC: Dirkog_Steelhand + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/airplane/Denise_Songweaver.lua b/airplane/Denise_Songweaver.lua new file mode 100644 index 0000000..1dbd6af --- /dev/null +++ b/airplane/Denise_Songweaver.lua @@ -0,0 +1,43 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail and well met " .. e.other:GetCleanName() .. "! I give the second half of the test of songs. If you are ready, choose between the tests of brass, wind, and harmony."); + elseif(e.message:findi("brass")) then --Bard Test of Brass + e.self:Say("Then bring back to me an efreeti war horn, a saffron spiroc feather, adamantium bands, and a glowing diamond."); + elseif(e.message:findi("wind")) then --Bard Test of Wind + e.self:Say("Bring me an imp statuette, a dull stone, and an amulet of woven hair. Then I will give you the amulet of the fae."); + elseif(e.message:findi("harmony")) then --Bard Test of Harmony + e.self:Say("Working with the environment to enthrall those who listen to you is of the utmost importance to us. Go out and retrieve an efreeti war spear, some manna nectar, and a nebulous emerald and diamond. Return these items to me and receive the spear of harmony as your reward."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20830, item2 = 20961, item3 = 20828, item4 = 20829})) then --Bard test of Brass using Adamantium Bands, Effreeti War horn, glowing diamond, and saffron spiroc feather + e.self:Say("Well done, " .. e.other:GetCleanName() .. ". Here is your reward."); + e.other:QuestReward(e.self,0,0,0,0,27724,100000); --Denon's Horn of Disaster + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20953, item2 = 20826, item3 = 20827})) then --Bard test of Wind using Amulet of woven hair, dull stone, and imp statuette + e.self:Say("'I hope you find this amulet useful, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,27723,100000); --Amulet of the Fae + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20831, item2 = 20968, item3 = 20832, item4 = 20833})) then --Bard test of harmony using Effreeti war spear, manna nectar, nebulous diamond, and nebulous emerald + e.self:Say("The spear of harmony is a powerful weapon indeed. I hope you find it useful, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,27725,100000); --Spear of Harmony + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Deric_Lennox.lua b/airplane/Deric_Lennox.lua new file mode 100644 index 0000000..b023119 --- /dev/null +++ b/airplane/Deric_Lennox.lua @@ -0,0 +1,44 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings there lad. Come seekin glory then have ya? Alrighty then, glorious ye shall be. Take me tests here, and I will show ya the light there. Take ye the Test of Resolution, of Theurgy, or the Weak?"); + elseif(e.message:findi("resolution")) then --cleric test of resolution + e.self:Say("The test of resolution be an easy one. Trust me there! I'll just be needin' ye t' bring me a spiroc statuette, a spiroc healing totem, and a silvered spiroc necklace. Ne'er liked those blasted birds anyway."); + elseif(e.message:findi("theurgy")) then --cleric test of theurgy + e.self:Say("The test of theurgy. Ne'er unnerstood it meself. It calls fer ye t' bring me an efreeti mace, a saffron spiroc feather, a glowing sapphire, an' some djinni aura."); + elseif(e.message:findi("weak")) then --cleric test of the weak + e.self:Say("Aye, the weak. I laugh at 'em meself. Dinnae look so shocked, laddie! I was only kiddin'! Anyhow, ye know ye should help the weak, right? Unless ye worship one o' the evil ones, then ye kill em! So go out an' do what yer god expects from ye! Oh, an' laddie, bring me an efreeti standard, a manna nectar, mithril bands, and a shimmering topaz. Aye, that'll do it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20813, item2 = 20812, item3 = 20954})) then --cleric test of resolution using silvered spiroc necklace, spiroc healing totem, spiroc statuette + e.self:Say("This necklace suits you well, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,14562,100000); --necklace of resolution + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20815, item2 = 20816, item3 = 20814, item4 = 20961})) then --cleric test of theurgy using djinni aura, efreeti mace, glowing sapphire, saffon spiroc feather + e.self:Say("This weapon will aid you even as you fight. Use it wisely, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,27718,100000); --theurgist's star + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20817, item2 = 20968, item3 = 20819, item4 = 20818})) then --cleric test of the weak using efreeti standard, manna nectar, mithril bands, shimmering topaz + e.self:Say("Good on ya!"); + e.other:QuestReward(e.self,0,0,0,0,27719,100000); --Baton of the Sky + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Dirkog_Steelhand.lua b/airplane/Dirkog_Steelhand.lua new file mode 100644 index 0000000..4f540da --- /dev/null +++ b/airplane/Dirkog_Steelhand.lua @@ -0,0 +1,47 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Leave me be, ye orc kissin' son o' Innoruuk!"); + elseif(e.message:findi("innoruuk")) then + e.self:Say("Eh? Ye say that ye ain't one o' the cursed dark elf dogs? Well then, laddie, are ye ready to get started or are ye here fer somethin' else??"); + elseif(e.message:findi("holy swords")) then --paladin epic + e.self:Say("Eh, lad? What was that? Ye wish to hear o' holy swords? Well, lad, I ain't the one ye be needin' t' talk to!"); + elseif(e.message:findi("who do I need to talk to")) then --paladin epic + e.self:Say("A follower o' the water god he be, an' one o' the most powerful holy knights e'er to walk Norrath. His name be Inte Akera, an' he kin tell ye what ye be wantin' t' know."); + elseif(e.message:findi("where is inte akera")) then --paladin epic + e.self:Say("Ah, I see ye wish t' speak with him! Why didn't ye say that earlier, laddie? It would've saved ye some trouble! If ye wish to speak with him, ye must donate some spare change t' me ale.. er, t' me holy crusade fund! Well, lad, what d' ye say?"); + elseif(e.message:findi("donate")) then --paladin epic + e.self:Say("Eh? Oh, 500 platinum will be plenty, laddie!"); + elseif(e.message:findi("ready.* started")) then --paladin test of spirit + e.self:Say("That's the spirit, laddie! I only have one test for ye. Return to me a silvery girdle, a diaphanous globe, and an ivory sky diamond. In return, I will give ye me girdle."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {platinum = 500}, 0)) then + e.self:Say("Thank ye, laddie! He's awaitin' ya up top!"); + eq.spawn2(71091,0,0,-586,767,176,64); -- NPC: Inte_Akera + eq.depop(); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20943, item2 = 20869, item3 = 20868})) then --paladin test of spirit using silvery girdle, diaphanous globe, ivory sky diamond + e.other:QuestReward(e.self,0,0,0,0,2716,100000); --girdle of faith + e.self:Say("Ye surprised me, " .. e.other:GetCleanName() .. ". Wear me girdle with pride!"); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Drakis_Bloodcaster.lua b/airplane/Drakis_Bloodcaster.lua new file mode 100644 index 0000000..9529ba5 --- /dev/null +++ b/airplane/Drakis_Bloodcaster.lua @@ -0,0 +1,28 @@ +-- Necromancer Epic NPC -- Drakis_Bloodcaster +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:Race() .. ". Are you ready to begin?"); + elseif(e.message:findi("ready")) then + e.self:Say("Then choose, necromancer. Do you wish to be tested by Dugaas or Jzil?"); + elseif(e.message:findi("jzil")) then + e.self:Say("Take this tome and read it. When you are finished, return it to me and I will summon Jzil."); + e.other:SummonCursorItem(18536); -- Shadowy Thoughts + elseif(e.message:findi("Dugaas")) then + e.self:Say("Take this book and read it then. When you are finished, hand it back to me and I will summon the vile Dugaas."); + e.other:SummonCursorItem(18537); -- Pomp and Circumstance + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18536})) then --Shadowy Thoughts + e.self:Say("Farewell."); + eq.spawn2(71074,0,0,654.9,1305,-762.2,22); -- NPC: Jzil_GSix + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18537})) then --Pomp and Circumstance + e.self:Say("Farewell."); + eq.spawn2(71084,0,0,661.6,1305,-762.2,22); -- NPC: Dugaas_Helpyre + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/airplane/Dugaas_Helpyre.lua b/airplane/Dugaas_Helpyre.lua new file mode 100644 index 0000000..3a3d749 --- /dev/null +++ b/airplane/Dugaas_Helpyre.lua @@ -0,0 +1,43 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("So, you dare be seen in my precense. Truly a brave fool you are. You come seeking fame and glory here do you? Well fool, perhaps you will get what you seek. Shall you take the test of the Heart, the Hands, or the Finger?"); + elseif(e.message:findi("heart")) then --necromancer test of heart + e.self:Say("So the heart it be. Bring me, foolish one, an Imp Statuette, an Obsidian Amulet, and a Pulsating Ruby. Perhaps then, you shall find your reward."); + elseif(e.message:findi("hands")) then --necromancer test of hands + e.self:Say("The test of the Hands it shall be. Bring me a Gorgon's Head, some Aged Nectar, a Glowing Black Pearl, and an Efreeti's Great Staff. When you return, I shall reward you for your deeds, assuming you live through the experience. Hahaha!"); + elseif(e.message:findi("finger")) then --necromancer test of the finger + e.self:Say("The finger. Needed for nearly every casting you shall ever hope to produce, it truly is the most powerful creation. Should you bring me a White Spiroc Feather, a Nebulous Ruby, and the Ring of Veeshan, I shall reward you with power that you can just now begin to comprehend."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20953, item2 = 20786, item3 = 20787})) then --necromancer test of heart using imp statuette, obsidian amulet, pulsating ruby + e.self:Say("Haha! So you lived! Take this and be gone!"); + e.other:QuestReward(e.self,0,0,0,0,14560,100000); --sphinx heart amulet + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20790, item2 = 20967, item3 = 20791, item4 = 20792})) then --necromancer test of hands using gorgon's head, aged nectar, glowing black pearl, efreeti's great staff + e.self:Say("Haha! So you lived! Take this and be gone!"); + e.other:QuestReward(e.self,0,0,0,0,11689,100000); --gorgon head staff + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20960, item2 = 20788, item3 = 20789})) then --necromancer test of the finger using white spiroc feather, nebulous ruby, ring of veeshan + e.self:Say("Haha! So you lived! Take this and be gone!"); + e.other:QuestReward(e.self,0,0,0,0,27713,100000); --band of wailing winds + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Enchanter_Jolas.lua b/airplane/Enchanter_Jolas.lua new file mode 100644 index 0000000..992eaac --- /dev/null +++ b/airplane/Enchanter_Jolas.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". Have you come here to test your powers of enchantment?"); + elseif(e.message:findi("test")) then + e.self:Say("I am most honored to be able to help you. Please choose from one of my instructors. Lelulean or Enderbite."); + elseif(e.message:findi("enderbite")) then + e.self:Say("Enderbite it shall be. Take this book and read it. When you are finished, hand it back to me and I shall summon Enchantress Enderbite to test you."); + e.other:SummonCursorItem(18535); -- Practical uses + elseif(e.message:findi("lelulean")) then + e.self:Say("Lelulean it shall be. Take this book and read it. When you are finished, hand it back to me and I shall summon Enchantress Lelulean to test you."); + e.other:SummonCursorItem(18534); -- Tempt and Suggestion + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18535})) then --Practical uses + e.self:Say("Till next time! Farewell!"); + eq.spawn2(71085,0,0,640,1303.2,-766.9,0.4); -- NPC: Enderbite + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18534})) then --Tempt and Suggestion + e.self:Say("Till next time! Farewell!"); + eq.spawn2(71104,0,0,640,1303.2,-766.9,0.4); -- NPC: Lelulean + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/airplane/Enderbite.lua b/airplane/Enderbite.lua new file mode 100644 index 0000000..862600e --- /dev/null +++ b/airplane/Enderbite.lua @@ -0,0 +1,43 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Great, let us waste no more time! I have three tests from which you can choose from. They are Disillusion, Memorization, and Incapacitation."); + elseif(e.message:findi("disillusion")) then --enchanter test of disillusion + e.self:Say("Disillusion it is. Proceed upward through the sky and return to me a harpy statuette, a black nebulous sapphire, and an adamantium earring. This will prove your abilities to me and I will reward you with an Earring of Displacement."); + elseif(e.message:findi("memorization")) then --enchanter test of memorization + e.self:Say("Memorization it is. Proceed upward through the sky and return to me a carmine spiroc feather, some ganoric poison, and a glowing necklace. This will prove your abilities to me and I will reward you with a Necklace of Whispering Winds."); + elseif(e.message:findi("incapacitation")) then --enchanter test of incapacitation + e.self:Say("Incapacitation it is. Proceed upward through the sky and return to me an efreeti wind staff, some sweet nectar, a black sky diamond, and a large sky sapphire. This will prove your abilities to me and I will reward you with the Rod of the Protecting Winds."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20774, item2 = 20952, item3 = 20773})) then --enchanter test of disillusion using adamantium earring, harpy statuette, black nebulous sapphire + e.self:Say("Good. Take this as your reward."); + e.other:QuestReward(e.self,0,0,0,0,14559,100000); --earring of displacement + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20959, item2 = 20775, item3 = 20776})) then --enchanter test of memorization using carmine spiroc feather, ganoric poison, glowing necklace + e.self:Say("Good. Take this as your reward."); + e.other:QuestReward(e.self,0,0,0,0,14558,100000); --necklace of whispering winds + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20777, item2 = 20779, item3 = 20778, item4 = 20966})) then --enchanter test of incapacitation using black sky diamond, efreeti wind staff, large sky sapphire, sweet nectar + e.self:Say("Good. Take this as your reward."); + e.other:QuestReward(e.self,0,0,0,0,27711,100000); --rod of protecting winds + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/airplane/Falorn.lua b/airplane/Falorn.lua new file mode 100644 index 0000000..34c0d61 --- /dev/null +++ b/airplane/Falorn.lua @@ -0,0 +1,47 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Do not waste my time, " .. e.other:GetCleanName() .. ". Do you wish to take the test of blades or not? Or do you have one of my old trinkets you wish to trade in?"); + elseif(e.message:findi("trinkets")) then + e.self:Say("Ahh, I've given out some lesser trinkets in the past that many have gotten bored with. I'm willing to accept Aerated Pauldrons in trade for Pauldrons of the Blue Sky."); + elseif(e.message:findi("blades")) then + e.self:Say("The test of blades is not easy. I hope you are as powerful as you are brave. What do you wish to strive for? Strength, force, or skill?"); + elseif(e.message:findi("strength")) then --warrior test of strength + e.self:Say("Remember, true strength lies not only in the body, but in the mind as well. Return to me a bronze disc, a small pick and a stone amulet. If you manage to do this my runed wind amulet will be yours."); + elseif(e.message:findi("force")) then --warrior test of force + e.self:Say("Foolishness or bravery Gendal? We shall see. Return to me a pearlescent globe, a silver mesh and a spiroc air totem In return, you will receive both my deepest respect and the aerated pauldrons."); + elseif(e.message:findi("skill")) then --warrior test of skill + e.self:Say("'Test of skill it is. Go upward and retrieve these three items; an ivory tessera, a small ruby, and an azure ring. Return these to me and the azure ruby ring shall be yours."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20935, item2 = 20972, item3 = 20973})) then --warrior test of strength using bronze disc, small pick, stone amulet + e.self:Say("I am impressed, " .. e.other:GetCleanName() .. ". You are stronger than I thought."); + e.other:QuestReward(e.self,0,0,0,0,14569,100000); --runed wind amulet + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20942, item2 = 20974, item3 = 20975})) then --warrior test of force using pearlescent globe, silver mesh, spiroc air totem + e.self:Say("You have proven yourself worthy."); + e.other:QuestReward(e.self,0,0,0,0,27701,100000); --Pauldrons of the Blue Sky + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20928, item2 = 20970, item3 = 20971})) then --warrior test of skill using ivory tessera, small ruby, azure ring + e.self:Say("You have proven yourself worthy."); + e.other:QuestReward(e.self,0,0,0,0,14551,100000); --azure ruby ring + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Fenalla_Moonshadow.lua b/airplane/Fenalla_Moonshadow.lua new file mode 100644 index 0000000..d74f846 --- /dev/null +++ b/airplane/Fenalla_Moonshadow.lua @@ -0,0 +1,45 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("We are children of the trees, friends and protectors of nature. We are brothers and sisters to the wolves and bears. The call of the Great Pine has filled your heart and led you here to be tested."); + elseif(e.message:findi("test")) then + e.self:Say("Children of the trees, friend and protector of nature. We the brothers and sisters to the wolves and bears. The call of the Great Pine has filled your heart and have found your way here to be tested. Do you wish to be tested in Nature, the art of the Bee, or the way of the Eagle?"); + elseif(e.message:findi("nature")) then --druid test of nature + e.self:Say("The test of Nature will show your devotion to and understanding of Mother Nature. Bring me an Efreeti Scimitar, a Lush Nectar, a Fire Sky Ruby, and a Storm Sky Opal to show your devotion. You will then recieve your reward."); + elseif(e.message:findi("bee")) then --druid test of the bee + e.self:Say("The bee is a busy little creature and you too must show industriousness like it. Bring me an Efreeti Statuette, a Wilder's Girdle, and a Piece of Divine Honeycomb to prove your understanding of the bee's art of work."); + elseif(e.message:findi("eagle")) then --druid test of the eagle + e.self:Say("To soar like the eagle is your goal. To do so, you must bring me an Acidic Venom, an Ethereal Ruby, a Spiroc Elder's Totem, and a White-tipped Spiroc Feather. Perhaps then you will know what it means to soar upon the wind."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20739, item2 = 20738, item3 = 20965, item4 = 20740})) then --druid test of nature using efreeti scimitar, fire sky ruby, lush nectar, storm sky opal + e.self:Say("I am honored to know one such as you, " .. e.other:GetCleanName() .. ". I beg you to wield Espri with as much grace you have shown during the travails to obtain it."); + e.other:QuestReward(e.self,0,0,0,0,11683,100000); --espri + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20735, item2 = 20951, item3 = 20734})) then --druid test of the bee using divine honeycomb, efreeti statuette, wilder's girdle + e.self:Say("You have done well, young one."); + e.other:QuestReward(e.self,0,0,0,0,11684,100000); --honeycomb belt + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20736, item2 = 20737, item3 = 20867, item4 = 20958})) then --druid test of the eagle using acidic venom, ethereal ruby, spiroc elder's totem, white-tipped spiroc feather + e.self:Say("You have done well, young one."); + e.other:QuestReward(e.self,0,0,0,0,14555,100000); --spiroc banisher focus + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/airplane/Frederic_Calermin.lua b/airplane/Frederic_Calermin.lua new file mode 100644 index 0000000..4e0e8ff --- /dev/null +++ b/airplane/Frederic_Calermin.lua @@ -0,0 +1,43 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Great, let us waste no more time! I offer to you three challenges. Clarification, Empowerment, and Shielding. Please choose one of these."); + elseif(e.message:findi("clarification")) then --magician test of clarification + e.self:Say("Clarification it is. Proceed upward through the sky and return to me a Crimson Tessera, an Ethereal Sapphire, and Feathered Cape. This will prove your abilities to me and I will reward you with the Bracelet of Clarification."); + elseif(e.message:findi("empowerment")) then --magician test of empowerment + e.self:Say("Empowerment it is. Proceed upward through the sky and return to me an Iron Disc, a Gem of Empowerment, and a Ceramic Mask. This will prove your abilities to me and I will reward you with the Mask of Empowerment."); + elseif(e.message:findi("shielding")) then --magician test of shielding + e.self:Say("Shielding it is. Proceed upward through the sky and return to me a Hyaline Globe, an Ivory Pendant, and a Golden Coffer. This will prove your abilities to me and I will reward you with an Gold White Pendant."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20931, item2 = 20754, item3 = 20755})) then --magician test of clarification using crimson tessera, ethereal sapphire, feathered cape + e.self:Say("Take this as your reward."); + e.other:QuestReward(e.self,0,0,0,0,1274,100000); --bracelet of clarification + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20937, item2 = 20756, item3 = 20757})) then --magician test of empowerment using iron disc, gem of empowerment, ceramic mask + e.self:Say("This mask will suit you well, mage. Use it sparingly."); + e.other:QuestReward(e.self,0,0,0,0,2707,100000); --mask of empowerment + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20944, item2 = 20758, item3 = 20759})) then --magician test of shielding using hyaline globe, ivory pendant, golden coffer + e.self:Say("A pendant of gold and white, " .. e.other:GetCleanName() .. ", wear it and beat back the night."); + e.other:QuestReward(e.self,0,0,0,0,14557,100000); --gold white pendant + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Gina_McStargan.lua b/airplane/Gina_McStargan.lua new file mode 100644 index 0000000..c8499c2 --- /dev/null +++ b/airplane/Gina_McStargan.lua @@ -0,0 +1,43 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I will test you in the tests of might, health, and sight. Which will it be?"); + elseif(e.message:findi("might")) then --shaman test of might + e.self:Say("The test of might It Is. Go find an Auburn Tessera, a Drake Fang and a Leather Cord. Bring them to me when you have them all and I shall reward you."); + elseif(e.message:findi("health")) then --shaman test of health + e.self:Say("The test of health Is difficult. I am sure that you will find It a challenge. Bring to me a Platinum Disc, some Ethereal Amber, a Shimmering Amber and finally a Ceremonial Belt. Return them all to me at once and you shall have your just reward."); + elseif(e.message:findi("sight")) then --shaman test of sight + e.self:Say("So you wish to take the test of sight do you? Get me a Phosphoric Globe, a Sphinx Hide and a Light Damask Mantle. Give them all to me at the same time and I shall reward you well."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20934, item2 = 20834, item3 = 20835})) then --shaman test of might using auburn tessera, drake fang, leather cord + e.self:Say("Excellent! Take this as your reward."); + e.other:QuestReward(e.self,0,0,0,0,27726,100000); --Amulet of the Fang + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20940, item2 = 20836, item3 = 20837, item4 = 20838})) then --shaman test of health using platinum disc, ethereal amber, shimmering amber, ceremonial belt + e.self:Say("The bracelet of the spirits will fit you well, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,27727,100000); --bracelet of the spirits + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20947, item2 = 20839, item3 = 20840})) then --shaman test of sight using phosphoric globe, sphinx hide, light damask mantle + e.self:Say("Great work, " .. e.other:GetCleanName() .. "! Take this mantle as a token of my respect for you."); + e.other:QuestReward(e.self,0,0,0,0,27728,100000); --fairy-hide mantle + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Gkzzallk.lua b/airplane/Gkzzallk.lua new file mode 100644 index 0000000..cdabb65 --- /dev/null +++ b/airplane/Gkzzallk.lua @@ -0,0 +1,32 @@ +-- Necromancer Epic NPC -- Gkzzallk +function event_spawn(e) + eq.set_timer("depop",3600000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, would you care for some tea?"); + elseif(e.message:findi("tea")) then + e.self:Say("The fairies should be bringing me some tea soon."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18087})) then + e.self:Emote("screams as he touches the book. His body shimmers as he shrinks smaller and smaller until it's no larger than an insect. The book shimmers, shifting into the shape of a small, black box. Gkzzallk holds on to the opening of the box as he is sucked backward into it. The tiny screams are finally silenced as the box top closes."); + e.other:QuestReward(e.self,0,0,0,0,20652); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.depop(); +end + +--Quest by: Solid11 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Gordon_Treecaller.lua b/airplane/Gordon_Treecaller.lua new file mode 100644 index 0000000..4fe5ec5 --- /dev/null +++ b/airplane/Gordon_Treecaller.lua @@ -0,0 +1,43 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello " .. e.other:GetCleanName() .. ", I can only hope that my disturbance was necessary. Ahh, you seem to be decently adept with a blade. Would you like to be tested in the element of thunder, the blade, or the art of ranged attack?"); + elseif(e.message:findi("element of thunder")) then --ranger test of the element of thunder + e.self:Say("One of my greatest allies indeed. Thunder can be very powerful if used properly. Bring me a djinni statuette, a spiroc thunder totem, and a white gold earring. Then you will know the true power of nature."); + elseif(e.message:findi("blade")) then --ranger test of the blade + e.self:Say("Very good choice, my blade is my best friend and yours will be as well if you can complete this task. Retrieve an efreeti long sword, an emerald spiroc feather, some bitter honey, and a circlet of thorns. Be careful with the honey, if it is tainted the blade will not come to life."); + elseif(e.message:findi("art of ranged attack")) then --ranger test of the art of ranged attack + e.self:Say("Many of the fools on Norrath don�t realize how powerful a good bow can be. Many dread wolves have met their fate from my bow and you can have the same power if you can bring me back these items. Efreeti war bow, thickened nectar, a sphinx tallow, and a shimmering pearl."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20955, item2 = 20856, item3 = 20857})) then --ranger test of the element of thunder using djinni statuette, spiroc thunder totem, white gold earring + e.self:Say("Great work, " .. e.other:GetCleanName() .. ", take this earring as a token of my admiration."); + e.other:QuestReward(e.self,0,0,0,0,14568,100000); --thunderforged earring + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20859, item2 = 20860, item3 = 20858, item4 = 20962})) then --ranger test of the blade using bitter honey, circlet of brambles, efreeti long sword, emerald spiroc feather + e.self:Say("You are indeed a ranger of noble bearing. The sword Arydryidriyorn will do well at your side."); + e.other:QuestReward(e.self,0,0,0,0,27732,100000); --arydryidriyorn + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20861, item2 = 20969, item3 = 20862, item4 = 20863})) then --ranger test of the art of ranged attack using efreeti war bow, thickened nectar, sphinx tallow, shimmering pearl + e.self:Say("You are a walking legend, " .. e.other:GetCleanName() .. ". Please take Windstriker. It needs one such as yourself to wield it."); + e.other:QuestReward(e.self,0,0,0,0,11696,100000); --windstriker + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/airplane/Gorgalosk.lua b/airplane/Gorgalosk.lua new file mode 100644 index 0000000..9e3260e --- /dev/null +++ b/airplane/Gorgalosk.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". This is my domain and I hope you have a peaceful stay. That is, unless the [lunatic sent you]."); + elseif(e.message:findi("lunatic sent me")) then + e.self:Say("Oh, I see. I suppose you [want these cursed markers] that lunatic made me hold?"); + elseif(e.message:findi("cursed markers")) then + e.self:Say("I am afraid that I can not just give them away. The lunatic had them cursed. They make me do [strange things]"); + elseif(e.message:findi("strange things")) then + e.self:Say("Like ATTACK you!"); + eq.attack(e.other:GetName()); + end +end + +function event_death_complete(e) + eq.set_global("sirran","3",3,"M20"); + eq.spawn2(71058,0,0,320,540,-54,128); -- NPC: Sirran_the_Lunatic +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Gragrot.lua b/airplane/Gragrot.lua new file mode 100644 index 0000000..fff0cd5 --- /dev/null +++ b/airplane/Gragrot.lua @@ -0,0 +1,45 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail! So you think you are a mighty Knight of Shadows? We must test these skills. Are you ready to begin the test?"); + elseif(e.message:findi("ready")) then + e.self:Say("Great, let us waste no more time! I offer to you three challenges: Bash, smash, or slash. What do you wish to be tested in?"); + elseif(e.message:findi("bash")) then --shadowknight test of bash + e.self:Say("Gragrot like bashin. Gragrot say you like bashin too! Give Gragrot an ebon tessera, a sphinx eye opal, and a finely crafted amulet. Gragrot then give you amulet of the sphinx eye."); + elseif(e.message:findi("smash")) then --shadowknight test of smash + e.self:Say("Gragrot wants you smashin. Smash, smash, and return a copper disk, a small sapphire, and a silvery ring. Then Gragrot give you crimson ring of the djinni."); + elseif(e.message:findi("slash")) then --shadowknight test of slash + e.self:Say("Gragrot see you is powerful, but Gragrot wonders if you is good at Slashin. Gragrot says return with a Diaphanous Globe, a piece of dried leather, and a Finely Woven Cloth Belt. Gragrot then give you pegasus hide belt."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20929, item2 = 20997, item3 = 20998})) then --shadowknight test of bash using ebon tessera, sphinx eye opal, finely crafted amulet + e.self:Say("You is powerful! Take this!"); + e.other:QuestReward(e.self,0,0,0,0, 27705,100000); -- Amulet of the Sphinx Eye + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20936, item2 = 20999, item3 = 20700})) then --shadowknight test of smash using copper disc, small sapphire, silvery ring + e.self:Say("You is powerful! Take this!"); + e.other:QuestReward(e.self,0,0,0,0,27706,100000); --Crimson Ring of the Djinni + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20943, item2 = 20701, item3 = 20702})) then --shadowknight test of slash using diaphanous globe, dried leather, finely woven cloth belt + e.self:Say("Take this belt with the blessing of Veeshan, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,2704,100000); --pegasus-hide belt + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/airplane/Gregori_Lightbringer.lua b/airplane/Gregori_Lightbringer.lua new file mode 100644 index 0000000..384ce68 --- /dev/null +++ b/airplane/Gregori_Lightbringer.lua @@ -0,0 +1,45 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail and well met! You have traveled far indeed to cross my path. I will be testing you in compassion, sacrifice, and love. Are you ready for the test of the heart, " .. e.other:GetCleanName() .. "?"); + elseif(e.message:findi("test of the heart")) then + e.self:Say("As I said before, the test of the heart is in three parts. Compassion, Sacrifice and Love. Choose one and we will begin."); + elseif(e.message:findi("compassion")) then --paladin test of compassion + e.self:Say("Compassion is of great importance to us. Without it, we do not feel empathy, and cannot truly follow the path we claim to travel. Return to me an Efreeti zweihander, dulcet nectar, a golden hilt, and a large sky diamond. If you present these to me, I will award you Truvinan, the divine wind."); + elseif(e.message:findi("sacrifice")) then --paladin test of sacrifice + e.self:Say("You have sacrificed much to come so far, Erudite. Sacrifice this one last time and the Sword of the Ocean shall be yours. Retrieve a griffon statuette, a spiroc peace totem, and a bixie sword blade."); + elseif(e.message:findi("love")) then --paladin test of love + e.self:Say("Love is what brings us close to the gods we follow. Without it, we could not truly worship them, and would be lost. Prove yourself to me and return with a dark spiroc feather, ethereal topaz, and a sphinxian claw. In return, I will give you Thelvorn."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20725, item2 = 20964, item3 = 20726, item4 = 20727})) then --paladin test of compassion using efreeti zweihander, dulcet nectar, golden hilt, large sky diamond + e.self:Say("Truvinan is now yours, " .. e.other:GetCleanName() .. ". I pray that you use the Divine Wind wisely."); + e.other:QuestReward(e.self,0,0,0,0,11682,100000); --Truvinan, the divine wind + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20950, item2 = 20721, item3 = 20722})) then --paladin test of sacrifice using griffon statuette, spiroc peace totem, bixie sword blade + e.self:Say("Rare is it to see one such as yourself go so far. Wield Aldryn with pride, " .. e.other:GetCleanName() .. ", and know that you are perhaps unique among your peers."); + e.other:QuestReward(e.self,0,0,0,0,27708,100000); --Aldryn, blade of the ocean + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20957, item2 = 20723, item3 = 20724})) then --paladin test of love using dark spiroc feather, ethereal topaz, sphinx claw + e.self:Say("You are indeed worthy of this divine sword, " .. e.other:GetCleanName() .. ". As long as you wield Thelvorn, you will follow the true path."); + e.other:QuestReward(e.self,0,0,0,0,27709,100000); --Thelvorn, Blade of Light + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Gwan.lua b/airplane/Gwan.lua new file mode 100644 index 0000000..2c0e6db --- /dev/null +++ b/airplane/Gwan.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("ignores you."); + elseif(e.message:findi("prepared")) then -- Monk Epic 1.0 + eq.attack(e.other:GetName()); + end +end + +function event_spawn(e) -- Monk Epic 1.0 + e.self:Say("Im ready when you are. Tell me when you are [prepared]."); +end + +function event_death_complete(e) -- Monk Epic 1.0 + e.self:Emote("lets out one last, frustrated breath and gasps."); + e.self:Say("Trunt! Prepare yourself!"); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Holwin.lua b/airplane/Holwin.lua new file mode 100644 index 0000000..35fb329 --- /dev/null +++ b/airplane/Holwin.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Peace to you, " .. e.other:GetCleanName() .. ". I see that you have come far along the path of tranquility and enlightenment. Do you wish to test yourself further, and perhaps complete the path you started on so long ago?"); + elseif(e.message:findi("test")) then + e.self:Say("Then, choose. Do you wish to be tested by Ton Po or Wu?"); + elseif(e.message:findi("wu")) then + e.self:Say("Take this and read it. Once you are finished, I will summon the Tranquil's most enlightened follower."); + e.other:SummonCursorItem(18539); -- Strength + elseif(e.message:findi("ton po")) then + e.self:Say("Take this book and read about the legendary Ton Po. When you are finished, hand it back, and I will summon the master for you."); + e.other:SummonCursorItem(18538); -- Tranquility + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18539})) then --Strength + e.self:Say("Farewell."); + eq.spawn2(71097,0,0,660.0,1332.3,-766.9,189.9); -- NPC: Wu_the_Enlightened + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18538})) then --Tranquility + e.self:Say("Farewell."); + eq.spawn2(71096,0,0,660.0,1315.0,-766.9,189.9); -- NPC: Ton_Po + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/airplane/Inte_Akera.lua b/airplane/Inte_Akera.lua new file mode 100644 index 0000000..e8e7dd2 --- /dev/null +++ b/airplane/Inte_Akera.lua @@ -0,0 +1,54 @@ +--Inte Akera, paladin Epic quest turn-in NPC + +function event_spawn(e) + eq.set_timer("depop",1800000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Inte Akera. I have retired to the Plane of Sky after a long life toiling on Norrath's soil. Have you retreated here as well, or are you merely visiting?"); + elseif(e.message:findi("toil")) then + e.self:Say("Long ago, before I came to this plane, I fought in the name of Prexus against all the evils that plagued Norrath. In that time, I have done everything one can do. I have fought for the causes of good. I gained the esteem of kings and lords. The sword I hold is but one example of the treasures I have sought and won. I have accomplished all that I can, have all that I desire. My toil is done and now I sit among the clouds in peace, occasionally blessing those who seek it and are found worthy."); + elseif(e.message:findi("blessing")) then + e.self:Say("Many come seeking my blessings. No matter how minor the blessing they ask, all must prove that they embody the qualities of a paladin before I bless them."); + elseif(e.message:findi("prove myself")) then + e.self:Say("I believe the two most important qualities of a paladin are nobility and sacrifice. Hand me an item of yours that proves you understand what nobility and sacrifice are. Be warned however, if I do not think as you do, I will simply accept the item as a gift, and give you no blessing."); + elseif(e.message:findi("nobility")) then + e.self:Say("Ah nobility. A true measure of a paladin. If you are wondering what to bring me, then perhaps you should look within yourself. Look into your soul for a great, burning fire of nobility and you will know."); + elseif(e.message:findi("sacrifice")) then + e.self:Say("Sacrifice is a virtue all paladins should strive for. The sacrifice of something dear to you will show your devotion. Perhaps something you use to smite the unholy undead."); + elseif(e.message:findi("accomplish")) then + e.self:Say("I accomplished many great deeds; far too many to name. I saved kings and kingdoms; I helped the weak and destitue; I accomplished all I sought to do, save one at which I failed."); + elseif(e.message:findi("failed")) then + e.self:Say("No.. I was unable to kill my most hated foe, Miragul. The head of this wretched, foul necromancer is forever out of the reach of justice. It would be worth restoring him to his former state for the chance to take his head as a trophy."); + elseif(e.message:findi("miragul")) then + e.self:Say("You think you can succeed where I cannot? Perhaps you can noble one.. Bring me the head of Miragul, his robe and hand me back the two blessings I gave you, and in return I shall bequeath to you this sword I carry. Good luck my friend."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 3 and item_lib.check_turn_in(e.self, e.trade, {item1 = 5504},0)) then --soulfire + e.self:Say("You have chosen wisely, my friend. Take this note as a token of my blessing upon you."); + e.other:QuestReward(e.self,0,0,0,0,18033,100000); --inte's first blessing + elseif(e.other:GetFaction(e.self) < 3 and item_lib.check_turn_in(e.self, e.trade, {item1 = 5403},0)) then --ghoulbane + e.self:Say("You have chosen wisely, my friend. Take this note as a token of my blessing upon you."); + e.other:QuestReward(e.self,0,0,0,0,18034,100000); --inte's second blessing + elseif(e.other:GetFaction(e.self) < 3 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18033, item2 = 18034, item3 = 19073, item4 = 1254})) then --inte's first blessing, inte's second blessing, miragul's head, miragul's robe + e.self:Say("Long have I awaited this moment. You have done what even I thought impossible. Take this sword, the Fiery Avenger. You have earned both it and my deepest respect."); + e.other:QuestReward(e.self,0,0,0,0,11050,1000000); --fiery avenger + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/airplane/Josin_Faithbringer.lua b/airplane/Josin_Faithbringer.lua new file mode 100644 index 0000000..9681eae --- /dev/null +++ b/airplane/Josin_Faithbringer.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". Are you ready to begin your test of faith?"); + elseif(e.message:findi("test of faith")) then + e.self:Say("I have faith that you will do well. Choose Alan or Deric"); + elseif(e.message:findi("Alan")) then + e.self:Say("Take and read this book. When you are done, hand it back to me and I will summon him."); + e.other:SummonCursorItem(18540); -- Practical Arts + elseif(e.message:findi("Deric")) then + e.self:Say("Take and read this book. When you are done, hand it back to me and I will summon him."); + e.other:SummonCursorItem(18541); -- True Healing + end +end + + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18540})) then --Strength + e.self:Say("Farewell."); + eq.spawn2(71080,0,0,660.7,1361.6,-766.9,193.2); -- NPC: Alan_Harten + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18541})) then --Tranquility + e.self:Say("Farewell."); + eq.spawn2(71083,0,0,660.7,1338.0,-766.9,193.2); -- NPC: Deric_Lennox + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/airplane/Jzil_GSix.lua b/airplane/Jzil_GSix.lua new file mode 100644 index 0000000..2c01dc0 --- /dev/null +++ b/airplane/Jzil_GSix.lua @@ -0,0 +1,45 @@ +-- Necromancer Epic NPC -- Jzil_GSix + +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ah, so you have come to be tested. Many fine things can be your reward. There are three tests which I can administer. Shall you take the test of flight, power, or mind?"); + elseif(e.message:findi("flight")) then --necromancer test of flight + e.self:Say("So, you wish the test of flight? So be it. You must return to me a Verdant Tessera, an Ebon Shard, and a Griffons Beak to reap your rewards. May the darkness guide your steps."); + elseif(e.message:findi("test of power")) then --necromancer test of power + e.self:Say("The test of power it is. Prove yourself worthy of power and bring me a silver disc, spiroc feathers, and a black silk cape. Only then will you know true power."); + elseif(e.message:findi("mind")) then --necromancer test of mind + e.self:Say("The test of mind it shall be. You must return to me, from this place of air and mist, a rugous globe, some djinni blood, and fine cloth raiment. Then, and only then, you shall have the reward you deserve!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20932, item2 = 20780, item3 = 20781})) then --necromancer test of flight using verdant tessera, ebon shard, griffon's beak + e.self:Say("Very good. Now take this and leave me."); + e.other:QuestReward(e.self,0,0,0,0,27712,1000000); --bloody griffon-hide wrist guard + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20938, item2 = 20782, item3 = 20783})) then --necromancer test of power using silver disc, spiroc feathers, black silk cape + e.self:Say("This feathered cape should be more than enough payment, now be gone from my sight!"); + e.other:QuestReward(e.self,0,0,0,0,1278,1000000); --cloak of spiroc feathers + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20945, item2 = 20784, item3 = 20785})) then --necromancer test of mind using rogous globe, djinni blood, fine cloth raiment + e.self:Say("Very good. Now take this and leave me."); + e.other:QuestReward(e.self,0,0,0,0,1279,1000000); --bloodsoaked raiment + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Keeper_of_Souls.lua b/airplane/Keeper_of_Souls.lua new file mode 100644 index 0000000..96e8a27 --- /dev/null +++ b/airplane/Keeper_of_Souls.lua @@ -0,0 +1,32 @@ +-- Epic NPC -- Keeper_of_Souls + +function event_spawn(e) + eq.set_timer("summit",2880000); +end + +function event_timer(e) + if(e.timer == "summit") then + eq.stop_timer("summit"); + eq.depop(); + end +end + +function event_combat(e) + if(joined) then + eq.stop_timer("summit"); + else + eq.set_timer("summit",2880000); + end +end + +function event_death_complete(e) + sirran= nil; + eq.set_global("sirran","4",3,"M20"); + eq.spawn2(71058,0,0,-543,767,174,64); -- NPC: Sirran_the_Lunatic +end + +--Quest by: Solid11 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Kendrick.lua b/airplane/Kendrick.lua new file mode 100644 index 0000000..9995a43 --- /dev/null +++ b/airplane/Kendrick.lua @@ -0,0 +1,43 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Great, let us waste no more time! Do you wish to begin your test of Thievery, Silence, or Trickery?"); + elseif(e.message:findi("thievery")) then --rogue test of thievery + e.self:Say("Thievery is absolute. Travel beyond and bring forth an Ivory Tessera, a gem of invigoration, and an inlaid choker to complete the test of thievery and earn the wispy choker of vigor!"); + elseif(e.message:findi("silence")) then --rogue test of silence + e.self:Say("Silence makes us deadly. Proceed upward and bring to me a spiroc sky totem, a pearlescent globe, and a black griffon feather. Griffon Wing Spauldors shall be yours if you complete this."); + elseif(e.message:findi("trickery")) then --rogue test of trickery + e.self:Say("Trickery, ahh how Fizzlethorpe blesses us! Adventure and return a mottled spiroc feather, a cracked leather belt, and a sphinxian circlet to complete the test of trickery and earn Renards Belt of Quickness."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20928, item2 = 20984, item3 = 20985})) then --rogue test of thievery using ivory tessera, gem of invigoration, inlaid choker + e.self:Say("Excellent! Fizzlethorpe blesses you with this gift."); + e.other:QuestReward(e.self,0,0,0,0,14552,100000); --wispy choker of vigor + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20989, item2 = 20942, item3 = 20988})) then --rogue test of silence using spiroc sky totem, pearlescent globe, black griffon feather + e.self:Say("These spauldors made from griffon wings will aid you in your ascent to greatness, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,2703,100000); --griffon wing spauldors + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20956, item2 = 20992, item3 = 20993})) then --rogue test of trickery using mottled spiroc feather, cracked leather belt, sphinxian circlet + e.self:Say("If one is slow, he dies a quick death. With this belt, you can avoid all that with nary a breath."); + e.other:QuestReward(e.self,0,0,0,0,11676,100000); --renard's belt of quickness + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Key_Master.lua b/airplane/Key_Master.lua new file mode 100644 index 0000000..95a7740 --- /dev/null +++ b/airplane/Key_Master.lua @@ -0,0 +1,32 @@ +function event_signal(e) + local qglobals = eq.get_qglobals(); + + if(e.signal == 1) then -- azarack + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(71111) == false and eq.get_entity_list():IsMobSpawnedByNpcTypeID(71031) == false) then + eq.spawn2(71059,0,0,-602.2,-254.4,-333.5,201.5); -- NPC: Protector_of_Sky + end + end + if(e.signal == 2) then + if(qglobals["keeper"] == nil) then + -- eq.set_timer("13",300000); what is this referred to? + eq.set_global("keeper","1",3,"H4"); + -- supposed to be 60-85 minute timer + eq.set_timer("soul",math.random(1920000) + 2880000); + end + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, brave traveller. I sell keys that take you to other islands in this here Plane of Sky. My prices are the best around. Heh, heh."); + end +end + +function event_timer(e) + if(e.timer == "soul") then + eq.unique_spawn(71075,0,0,-996.3,910.5,192.3,18.0); -- NPC: Keeper_of_Souls + eq.stop_timer("soul"); + end +end + +-- END of FILE Zone:airplane ID:2977 -- Key_Master \ No newline at end of file diff --git a/airplane/Kihun_Solstin.lua b/airplane/Kihun_Solstin.lua new file mode 100644 index 0000000..0b597a4 --- /dev/null +++ b/airplane/Kihun_Solstin.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("So, you have made it this far. I am Kihun Solstin, the Master of Wind. I control the unfettered Element like none other. As you should have learned, Air is the most potent of Elements. It fuels Fire, Water is comprised of it, and Earth cannot restrain it. Knowing this, do you seek the Element of Wind?"); + elseif(e.message:findi("element of wind")) then + e.self:Say("I will test you then. In this wondrous plane of Sky, find the Crown of Elemental Mastery. Then, search the world below for an Elemental Binder and a cloak fashioned from the feathers of a Pegusus. Return them to me and I shall give you the Element of Wind."); + elseif(e.message:findi("see the master")) then + eq.unique_spawn(71040,0,0,604.5,1346.3,-766,0); --spawn the master of elements + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20764, item2 = 28043, item3 = 2463})) then + e.self:Say("If you have obtained the other, lesser Elements, go speak with The Master of Elements, who is now waiting for you. I wish you luck. If you have not completed all the tasks set for you, let me know, and I shall let you see the Master."); + e.other:QuestReward(e.self,0,0,0,0,28033,5000); + eq.unique_spawn(71040,0,0,604.5,1346.3,-766,0); --spawn the master of elements + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/airplane/Lelulean.lua b/airplane/Lelulean.lua new file mode 100644 index 0000000..10db8bc --- /dev/null +++ b/airplane/Lelulean.lua @@ -0,0 +1,43 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Great, let us waste no more time! I have three tests from which you can choose from. They are Illusion, Metamorphism, and Deception."); + elseif(e.message:findi("illusion")) then --enchanter test of illusion + e.self:Say("Illusion it is. Proceed upward through the sky and return to me a crimson tessera, a darkstone emerald, and a finely woven cloth cord. This will prove your abilities to me and I will reward you with a cord of sphinx hair."); + elseif(e.message:findi("metamorphism")) then --enchanter test of metamorphism + e.self:Say("Metamorphism it is. Proceed upward through the sky and return to me a silver disk, a bluish stone, and a light cloth mantle. This will prove your abilities to me and I will reward you with the Wind Walker's Mantle."); + elseif(e.message:findi("deception")) then --enchanter test of deception + e.self:Say("Deception it is. Proceed upward through the sky and return to me a rugous globe, a sky pearl, and a silken mask. This will prove your abilities to me and I will reward you with an ivory mask."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20931, item2 = 20767, item3 = 20768})) then --enchanter test of illusion using crimson tessera, darkstone emerald, finely woven cloth cord + e.self:Say("Excellent work!"); + e.other:QuestReward(e.self,0,0,0,0,1277,100000); --sphinx hair cord + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20769, item2 = 20770, item3 = 20938})) then --enchanter test of metamorphism using bluish stone, light cloth mantle, silver disc + e.self:Say("Excellent work!"); + e.other:QuestReward(e.self,0,0,0,0,1276,100000); --wind walker's mantle + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20945, item2 = 20772, item3 = 20771})) then --enchanter test of deception using rugous globe, silken mask, sky pearl + e.self:Say("Excellent work!"); + e.other:QuestReward(e.self,0,0,0,0,1275,100000); --ivory mask + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Magus_Frinon.lua b/airplane/Magus_Frinon.lua new file mode 100644 index 0000000..fa40ee2 --- /dev/null +++ b/airplane/Magus_Frinon.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". Have you come here to test your abilities as a magician?"); + elseif(e.message:findi("test")) then + e.self:Say("I am glad to hear that. Please choose from one of my instructors. Frederic or Roanis."); + elseif(e.message:findi("Frederic")) then + e.self:Say("Frederic it shall be. Take this book and read it. When you are finished, hand it back to me and I shall summon the magician Frederic to test you."); + e.other:SummonCursorItem(18532); -- Forms of magic + elseif(e.message:findi("Roanis")) then + e.self:Say("Roanis it shall be. Take this book and read it. When you are finished, hand it back to me and I shall summon the magician Roanis to test you."); + e.other:SummonCursorItem(18533); -- Channeling + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18532})) then --Forms of magic + e.self:Say("Till next time! Farewell!"); + eq.spawn2(71088,0,0,614.5,1304.1,-766.9,255); -- NPC: Frederic_Calermin + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18533})) then --Channeling + e.self:Say("Till next time! Farewell!"); + eq.spawn2(71094,0,0,614.5,1304.1,-766.9,255); -- NPC: Roanis_Elindar + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/airplane/Medicine_Man_Veetra.lua b/airplane/Medicine_Man_Veetra.lua new file mode 100644 index 0000000..410af27 --- /dev/null +++ b/airplane/Medicine_Man_Veetra.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Good day to you, " .. e.other:GetCleanName() .. ". Are you a shaman of [much experience]?"); + elseif(e.message:findi("much experience")) then + e.self:Say("Then welcome to the tests of the medicine man. I have two tomes, each tells of a shaman of great accomplishment. They are Gina MacStargan and Ooga. Simply tell me the name of the shaman you want to be tested by."); + elseif(e.message:findi("gina")) then + e.self:Say("Return this tome to me if you wish me to call forth Gina. Destroy it if you do not."); + e.other:SummonCursorItem(18544); -- Spirits Among us + elseif(e.message:findi("ooga")) then + e.self:Say("Return this tome if you wish me to summon Ooga to assist you. Destroy it if you do not."); + e.other:SummonCursorItem(18545); -- Alkeme + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18544})) then --Spirits among us + e.self:Say("I am no longer needed and will take my leave."); + eq.unique_spawn(71087,0,0,631.9,1401.9,-766.9,129.8); -- NPC: Gina_McStargan + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18545})) then --Alkeme + e.self:Say("I am no longer needed and will take my leave."); + eq.unique_spawn(71093,0,0,653.4,1399.0,-766.9,129.8); -- NPC: Ooga + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/airplane/Neasin_Leornic.lua b/airplane/Neasin_Leornic.lua new file mode 100644 index 0000000..9a89bd8 --- /dev/null +++ b/airplane/Neasin_Leornic.lua @@ -0,0 +1,43 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Great, let us waste no more time! Do you wish to begin your test of concentration, focus, or meditation?"); + elseif(e.message:findi("concentration")) then --wizard test of concentration + e.self:Say("Concentration it is. Proceed upward through the sky and return to me an Azure Tessera, an Augmentor's Gem, and a Grey Damask Cloak. This will prove your ability to concentrate and I will reward you with an Augmentor's Mask."); + elseif(e.message:findi("focus")) then --wizard test of focus + e.self:Say("Focus is a must. Travel among the residents of the sky and bring to me an Iron Disc, an Ethereal Opal, and a Woven Skull Cap. This will prove your ability to focus and I will reward you with Al`Kabors Cap."); + elseif(e.message:findi("meditation")) then --wizard test of meditation + e.self:Say("Meditation, the fix for all. Fly to those above and return to me a Hyaline Globe, a Sky Topaz, and a High Quality Raiment. If you are successful, I will reward you with the Raiment of Thunder."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20930, item2 = 20741, item3 = 20742})) then --wizard test of concentration using azure tessera, augmentor's gem, grey damask cloak + e.self:Say("Ah good. Take this as your reward."); + e.other:QuestReward(e.self,0,0,0,0,1272,100000); --augmentor's mask + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20937, item2 = 20743, item3 = 20744})) then --wizard test of focus using iron disc, ethereal opal, woven skull cap + e.self:Say("Ah good. Take this as your reward."); + e.other:QuestReward(e.self,0,0,0,0,1271,100000); --Al`kabor's cap of binding + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20944, item2 = 20745, item3 = 20746})) then --wizard test of meditation using hyaline globe, sky topaz, high quality raiment + e.self:Say("Ah good. Take this as your reward."); + e.other:QuestReward(e.self,0,0,0,0,1273,100000); --raiment of thunder + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/airplane/Noble_Dojorn.lua b/airplane/Noble_Dojorn.lua new file mode 100644 index 0000000..d945542 --- /dev/null +++ b/airplane/Noble_Dojorn.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.unique_spawn(71034,0,0,-540.6,767.1,174.1,65); -- NPC: Overseer_of_Air +end diff --git a/airplane/Ogog.lua b/airplane/Ogog.lua new file mode 100644 index 0000000..f0fe47c --- /dev/null +++ b/airplane/Ogog.lua @@ -0,0 +1,45 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ogog not smart, but Ogog smarter than you. You ready for Ogog or no?"); + elseif(e.message:findi("ready")) then + e.self:Say("Ok, " .. e.other:GetCleanName() .. ". Ogog got some hard things for you. You do bash, smash, or think test?"); + elseif(e.message:findi("think")) then + e.self:Say("think"); + elseif(e.message:findi("smash")) then + e.self:Say("Ogog smash good. . . Ogog no think you can smash good. But Ogog let you try. You get Ogog Djinni War Blade, some virulent wasp poison, and a mottled spiroc feather. Ogog say you good warrior if you do this!"); + elseif(e.message:findi("bash")) then + e.self:Say("This one hard, Ogog like it. Ogog need efreeti battle axe, some honey nectar, bottled djinni, and ethereal emerald. Then Ogog make you best basher."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20983, item2 = 20963, item3 = 20981,item4 = 20982})) then -- warrior test of bash using efreeti battle axe, honeyed nectar, bottled djinni, ethereal emerald + e.self:Say("Good job! Ogog give you Fangol for being good smasher!"); + e.other:QuestReward(e.self,0,0,0,0,11675,100000); --fangol + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20980,item2 = 20979, item3 = 20956})) then -- warrior test of smash using djinni war blade, virulent poison, mottled spiroc feather + e.self:Say("This Dagas, blade of stinging wind. You bash good with this."); + e.other:QuestReward(e.self,0,0,0,0,11674,100000); -- dagas + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20976, item2 = 20977, item3 = 20978})) then -- warrior test of think using efreeti belt, pegasus statuette, spiroc wind totem, wind tablet + e.self:Say("Yuz do good! Take dis!"); + e.other:QuestReward(e.self,0,0,0,0,11673,100000); -- belt of the four winds + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/airplane/Ooga.lua b/airplane/Ooga.lua new file mode 100644 index 0000000..019669c --- /dev/null +++ b/airplane/Ooga.lua @@ -0,0 +1,43 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Euh? You come see Ooga about shaman tests? Me can test in shrink, the snake, or witch doctor! What yuz want to test in?"); + elseif(e.message:findi("shrink")) then --shaman test of shrink + e.self:Say("Ohh! Dat gud tes, me know cuz me did it. Me had get a Efreeti War Club, Djinni Statuette, sum Corrosive Venom an sum Wooden Bands. Was hard for Ooga, me took long to get dem. Yuz give all to me at sam time me give yuz what me got."); + elseif(e.message:findi("snake")) then --shaman test of the snake + e.self:Say("Mmm, tes of snake not too bad, me did It an still alive. When me did It, me got Emerald Spiroc Feather, Bixie Essence, an Spiritualists Ring. Me get gud stuff for dat. Yuz giv me stuff all at once an me give to yuz what me got."); + elseif(e.message:findi("witch doctor")) then --shaman test of the witch doctor + e.self:Say("Oh! Now yuz got In da big mojo, me had big hard time wit dis one. Me got In lot of trouble when me got Efreeti War Maul, Thickened Nectar, Fire Sky Ruby an Symbol Of Veeshan. Yuz giv to me, Me be easy on yuz an giv prize me got."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20845, item2 = 20955, item3 = 20842, item4 = 20841})) then --shaman test of shrink using efreeti war club, djinni statuette, corrosive venom, wooden bands + e.self:Say("Excellent! Take this as your reward."); + e.other:QuestReward(e.self,0,0,0,0,27729,100000); --spiroc warhammer + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20962, item2 = 20843, item3 = 20844})) then --shaman test of the snake using emerald spiroc feather, bixie essence, spiritualist's ring + e.self:Say("This ring should aid you greatly, " .. e.other:GetCleanName() .. ". Use it wisely."); + e.other:QuestReward(e.self,0,0,0,0,27730,100000); --Vermilion Sky Ring + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20846, item2 = 20969, item3 = 20848, item4 = 20847})) then --shaman test of the witch doctor using efreeti war maul, thickened nectar, fire sky ruby, symbol of veeshan + e.self:Say("Your deeds are beyond compare, " .. e.other:GetCleanName() .. ". Use Garduk with care though, for it is more powerful than any other weapon you have wielded."); + e.other:QuestReward(e.self,0,0,0,0,11694,100000); --garduk + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Overseer_of_Air.lua b/airplane/Overseer_of_Air.lua new file mode 100644 index 0000000..1580112 --- /dev/null +++ b/airplane/Overseer_of_Air.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("So you have awakened me!! It seems my brother was not much of a challenge. Before we get on to business, there are some matters that must be addressed. But enough talk, let's address these matters first."); + elseif(e.message:findi("matters")) then + e.self:Say("The matter at hand is where you are to go after this. I believe that crazy halfling will be showing up. But if by chance he oversleeps, there is some information you should have."); + elseif(e.message:findi("information")) then + e.self:Say("You have come to my home. This is also home to the soul carriers and essence harvesters. On the mortal plane, they are still natural enemies, but have learned to live together and are now peaceful creatures here in the Plane of Sky. Be forewarned that as you proceed about your tour, each gate you must reach and pass through will become substantially harder."); + end +end + +function event_death_complete(e) + eq.spawn2(71060,48,0,-1462.2,-270.1,1250.9,62.9); -- NPC: the_Hand_of_Veeshan +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Protector_of_Sky.lua b/airplane/Protector_of_Sky.lua new file mode 100644 index 0000000..679050e --- /dev/null +++ b/airplane/Protector_of_Sky.lua @@ -0,0 +1,9 @@ +function event_death_complete(e) + eq.set_global("sirran","2",3,"M20"); + eq.spawn2(71058,0,0,-531,-214,-322,128); -- NPC: Sirran_the_Lunatic +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Ranger_Spirit.lua b/airplane/Ranger_Spirit.lua new file mode 100644 index 0000000..2bcf571 --- /dev/null +++ b/airplane/Ranger_Spirit.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". Are you a true servant of the Pine?"); + elseif(e.message:findi("servant of the pine")) then + e.self:Say("Very well my friend. In order to reach your true potential you must pass many tests. Relinin Skyrunner and Gordon Treecaller are here to perform these tests. Please choose one."); + elseif(e.message:findi("relinin")) then + e.self:Say("Relinin Skyrunner, you say. True to Tunare is she. Take this book and read it. When you feel you know it well, return it and Relinin will appear to test you."); + e.other:SummonCursorItem(18546); -- Sisters and Life + elseif(e.message:findi("gordon")) then + e.self:Say("Ahhh, Gordon Treecaller. Many say he is the finest swordsman ever. Read of his tale and return the book when you are finished."); + e.other:SummonCursorItem(18547); -- The Mother + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18546})) then --Sisters and Life + e.self:Say("Relinin Skyrunner, I summon thee."); + eq.spawn2(71095,0,0,617.1,1399.5,-766.9,129.4); -- NPC: Relinin_Skyrunner + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18547})) then --The Mother + e.self:Say("Gordon Treecaller, I summon thee."); + eq.spawn2(71090,0,0,592.8,1400.1,-766.9,129.4); -- NPC: Gordon_Treecaller + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/airplane/Rayne.lua b/airplane/Rayne.lua new file mode 100644 index 0000000..ccc78cf --- /dev/null +++ b/airplane/Rayne.lua @@ -0,0 +1,43 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Great, let us waste no more time! Do you wish to begin your test of Deception, Stealth, or Cunning?"); + elseif(e.message:findi("deception")) then --rogue test of deception + e.self:Say("Deception it is. Proceed upward through the sky and return to me the honied nectar, a bixie stinger from this plane, a lightning rod, and a bloodsky sapphire for the test of deception and earn Thornstinger, dirk of rampage."); + elseif(e.message:findi("stealth")) then --rogue test of stealth + e.self:Say("Stealth is a must. Travel among the residents of the sky and bring to me a pegasus statuette, a prismatic sphere, and a fine wool cloak. In return, the shimmering bracer of protection shall be yours."); + elseif(e.message:findi("cunning")) then --rogue test of cunning + e.self:Say("Cunning, the true source of all rogue power. Plan and succeed above us and return to me a bronze disc, a Jester's Mask, and some red face paint to complete the test of cunning. The crystal mask shall be yours if you do so."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20963, item2 = 20994, item3 = 20995, item4 = 20996})) then --rogue test of deception using honeyed nectar, bixie stinger, lightning rod, bloodsky sapphire + e.self:Say("They call this blade 'Rampage Bringer'. Use it wisely and it will serve you well."); + e.other:QuestReward(e.self,0,0,0,0,27704,100000); -- Thornstinger + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20949, item2 = 20990, item3 = 20991})) then --rogue test of stealth using pegasus statuette, prismatic sphere, fine wool cloak + e.self:Say("I hope you find this bracelet of many colors useful in your journeys. Use its abilities wisely, " .. e.other:GetCleanName() .. ".'"); + e.other:QuestReward(e.self,0,0,0,0,27703,100000); -- Shimmering Bracer of Protection + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20935, item2 = 20987, item3 = 20986})) then --rogue test of cunning using bronze disc, jester's mask, red face paint + e.self:Say("Take this mask, " .. e.other:GetCleanName() .. ". It will aid you in the art of stealth."); + e.other:QuestReward(e.self,0,0,0,0,27702,100000); -- Crystal Mask + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Relinin_Skyrunner.lua b/airplane/Relinin_Skyrunner.lua new file mode 100644 index 0000000..e5e4b44 --- /dev/null +++ b/airplane/Relinin_Skyrunner.lua @@ -0,0 +1,43 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". I can only assume my reasons for being summoned is that you wish to take the tests. Would you like to be tested in the body, in defense, or in the element of earth?"); + elseif(e.message:findi("body")) then --ranger test of body + e.self:Say("Very well. You must scour this plane and bring back to me these components: an auburn tessera, a ysgaril root, and a griffon talon. Make haste, and good luck."); + elseif(e.message:findi("defense")) then --ranger test of defense + e.self:Say("Defense it is. You must prove yourself worthy enough for the Spiroc spirits to guard you. Bring back to me a mithril disc, a harpy tongue, and a fine velvet cloak. Good luck to you " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("element of earth")) then --ranger test of the element of earth + e.self:Say("Elemental earth you say? When honed, the elements can be among our best allies. Retrieve a gridelin globe, a dragon hide mantle, and a spiroc earth totem. Only with these items can you master the element of earth."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20934, item2 = 20850, item3 = 20849})) then --ranger test of body using auburn tessera, griffon talon, ysgaril root + e.self:Say("Good work, ranger."); + e.other:QuestReward(e.self,0,0,0,0,14567,100000); --griffon talon necklace + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20853, item2 = 20852, item3 = 20851})) then --ranger test of defense using fine velvet cloak, harpy tongue, mithril disc + e.self:Say("You should find this cloak useful."); + e.other:QuestReward(e.self,0,0,0,0,27731,100000); --dark cloak of the sky + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20854, item2 = 20948, item3 = 20855})) then --ranger test of the element of earth using dragon-hide mantle, gridelin globe, spiroc earth totem + e.self:Say("The mantle I give you to wear houses a powerful enchantment. Use it with care."); + e.other:QuestReward(e.self,0,0,0,0,2714,100000); --earthshaker's mantle + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Roanis_Elindar.lua b/airplane/Roanis_Elindar.lua new file mode 100644 index 0000000..bb99b59 --- /dev/null +++ b/airplane/Roanis_Elindar.lua @@ -0,0 +1,49 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Great, let us waste no more time! I offer to you four challenges. Summoning, interpretation, gesticulation, and displacement. Please choose one of these."); + elseif(e.message:findi("summoning")) then --magician test of summoning + e.self:Say("Summoning it is. Proceed upward through the sky and return to me a Harpy Statuette, a Finely Woven Cloth Amice, and a Large Diamond. This will prove your abilities to me and I will reward you with a Drake Hide Amice."); + elseif(e.message:findi("interpretation")) then --magician test of interpretation + e.self:Say("Interpretation it is. Proceed upward through the sky and return to me a Carmine Spiroc Feather, a Blood Sky Amethyst, and a Golden Efreeti Ring. This will prove your abilities to me and I will reward you with the Duennan Shielding Ring."); + elseif(e.message:findi("displacement")) then --magician test of displacement + e.self:Say("Displacement it is. Proceed upward through the sky and return to me some Sweet Nectar, the Crown of Elemental Mastery, a Large Opal, and Djinni's Stave. This will prove your abilities to me and I will reward you with the Staff of Elemental Mastery."); + elseif(e.message:findi("gesticulation")) then --magician test of gesticulation + e.self:Say("Gesticulation it is. Proceed upward through the sky and return to me an efreeti magi staff, some sweet nectar, a sphinx crown, and a hazy opal. In return, the Staff of the Magister is yours."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20952, item2 = 20760, item3 = 20761})) then --magician test of summoning using harpy statuette, finely woven cloth amice, large diamond + e.self:Say("Take this."); + e.other:QuestReward(e.self,0,0,0,0,2708,100000); --Drake-hide amice + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20959, item2 = 20762, item3 = 20763})) then --magician test of interpretation using carmine spiroc feather, blood sky amethyst, golden efreeti ring + e.self:Say("The ring of Duennan will protect you in times of trouble, mage. Take it and wear it with pride."); + e.other:QuestReward(e.self,0,0,0,0,11687,100000); --duennan shielding ring + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20966, item2 = 20764, item3 = 20766, item4 = 20765})) then --magician test of displacement using sweet nectar, crown of elemental mastery, large opal, djinni stave + e.self:Say("Finally you return, " .. e.other:GetCleanName() .. ". This staff will aid you, I hope."); + e.other:QuestReward(e.self,0,0,0,0,11568,100000); --staff of elemental mastery + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20870, item2 = 20966, item3 = 20871, item4 = 20872})) then --magician test of gesticulationt Efreeti Magi Staff, Sweet Nectar, Sphinx Crown, Hazy Opal + e.self:Say("Take this as your reward."); + e.other:QuestReward(e.self,0,0,0,0,11650,100000); --Staff of the Magister + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Sarkis_Ebonblade.lua b/airplane/Sarkis_Ebonblade.lua new file mode 100644 index 0000000..2977797 --- /dev/null +++ b/airplane/Sarkis_Ebonblade.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings. " .. e.other:GetCleanName() .. ". Have you come here to test your dark powers of skill and spell casting?"); + elseif(e.message:findi("test")) then + e.self:Say("You will be tested by either Gragrot or Tynicon. Choose one!"); + elseif(e.message:findi("Gragrot")) then + e.self:Say("Gragrot it is! Take this book and read it. When you are finished, hand it back to me and I shall summon Gragrot to test you."); + e.other:SummonCursorItem(18524); -- Shadowy Virtues + elseif(e.message:findi("Tynicon")) then + e.self:Say("Tynicon it is! Take this book and read it. When you are finished, hand it back to me and I shall summon Tynicon to test you."); + e.other:SummonCursorItem(18525); -- Knights of the Malign + end +end + + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18524})) then --Shadowy Virtues + e.self:Say("Farewell."); + eq.spawn2(71063,0,0,563.3,1351.9,-766.9,63.4); -- NPC: Gragrot + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18525})) then --Knights of the Malign + e.self:Say("Till next time! Farewell!"); + eq.spawn2(71098,0,0,563.3,1351.9,-766.9,63.4); -- NPC: Tynicon_DLin + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/airplane/Sirran_the_Lunatic.lua b/airplane/Sirran_the_Lunatic.lua new file mode 100644 index 0000000..2a446b9 --- /dev/null +++ b/airplane/Sirran_the_Lunatic.lua @@ -0,0 +1,125 @@ +function event_spawn(e) + eq.set_timer("bye",1200000); +end + +function event_say(e) + local qglobals = eq.get_qglobals(); + + if(e.message:findi("hail")) then + if(qglobals["sirran"] == "1") then --island1 + e.self:Say("Ehem! What? Oh, hello there! Sirran be my name. Yes? So, come to the Plane of Sky, have you? Killed all my fairies! Hah! So! Do you wish to know how to traverse this plane? Or should I just go away? I know much about this plane. You would do well to listen!"); + elseif(qglobals["sirran"] == "2") then --island2 + e.self:Say("Ah! Come far you have! You are all crazy! I like it! Swords spin no more! Spin, spin. Unlucky they were! I thought them [vain]!"); + elseif(qglobals["sirran"] == "3") then --island3 + e.self:Say("What! Die already! Come so far. Can't you see I am cold! Give me a cloak or something! Bah! You don't look the type to give anything! Be off with you, then!"); + e.self:Say("Always want something for nothing? Oh yes, you gave me something! Here you go! Take this! Used one you have. [Teleport] away you will! Let me know, or no kill! Haha!"); + elseif(qglobals["sirran"] == "4") then --island4 + e.self:Say("What is this? Bah! Take that! And this! What was I thinking? I was thinking you had best let me know when you use those teleporters. Just say, [Icky Bicky Barket]. Aye, that is what I was thinking."); + elseif(qglobals["sirran"] == "5") then --island5 + e.self:Say("Children, run to the wall and give the deputies some milk. Oh, I almost forgot. Give me your trinkets, or give me death!"); + elseif(qglobals["sirran"] == "7") then --island7 + e.self:Say("Nyah! The tears are welling up in my eyes! I am so proud. I think of you as if I were your father! Sniff. Sniff. Give me Veeshan, and I give you death"); + end + elseif(e.message:findi("citanul eht narris, liah") and qglobals["sirran"] == "6") then --island6 + e.self:Say("Lortap llaw taerg eht fo lahsram, Narris lahsram ma I. Flesym ecudortni ot em wolla. Sgniteerg"); + elseif(e.message:findi("llaw eht htiw eno I ma") and qglobals["sirran"] == "6") then --island6 + e.self:Say("Kcul doog! Ouy rof ydaer si erips eht fo retsis eht won, sdik boj doog."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(71076) == false) then + eq.spawn2(71076,0,0,-929,-1035,1093,64); --used Magelo to get the closest loc as possible. + end + elseif(e.message:findi("traverse this plane") and qglobals["sirran"] == "1") then + e.self:Say("Ahah! Wise you are and tell you I will. Hrm? Don't have wings, do you? Fairies have swords! Fairies stole my lucky feet! Hand me them, one by one, and be in for a treat! Haha!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20920})) then --A Miniature Sword + if(eq.get_qglobals()["sirran"] == "1") then + e.self:Say("These are the keys! Use them well! Hold them in your hand and touch them to the runed platforms! Guide you thy will! Hah! The last to go, must tell me so, or be in for a [hassle]! If there's a hassle, I will go!"); + e.other:QuestReward(e.self,{itemid = 20911}); -- Key of Swords + else + e.self:Say("I have no need for this item " .. e.other:GetCleanName() .. ", you can have it back.") + e.other:QuestReward(e.self,{itemid = 20920}); -- Item: Miniature Sword + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20921})) then --Lost Rabbit's Foot + if(eq.get_qglobals()["sirran"] == "1") then + e.self:Say("These are the keys! Use them well! Hold them in your hand and touch them to the runed platforms! Guide you thy will! Hah! The last to go, must tell me so, or be in for a [hassle]! If there's a hassle, I will go!"); + e.other:QuestReward(e.self,{itemid = 20912}); -- Key of the Misplaced + else + e.self:Say("I have no need for this item " .. e.other:GetCleanName() .. ", you can have it back.") + e.other:QuestReward(e.self,{itemid = 20921}); -- Item: Lost rabbits foot + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20922})) then --Broken Mirror + if(eq.get_qglobals()["sirran"] == "2") then + e.self:Say("You move fast, you crazy kids! Keep going! Prod you I will! Stuck here I have been! Oh! Let me know when you are [done] or this will be no fun! Haha"); + e.other:QuestReward(e.self,{itemid = 20913}); -- Key of Misfortune + else + e.self:Say("I have no need for this item " .. e.other:GetCleanName() .. ", you can have it back.") + e.other:QuestReward(e.self,{itemid = 20922}); -- Item: Broken Mirror + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20923})) then --Animal Figurine + if(eq.get_qglobals()["sirran"] == "3") then + e.self:Say("Always want something for nothing? Oh yes, you gave me something! Here you go! Take this! Used one you have. [Teleport] away you will! Let me know, or no kill! Haha!"); + e.other:QuestReward(e.self,{itemid = 20914}); --Key of Beasts + else + e.self:Say("I have no need for this item " .. e.other:GetCleanName() .. ", you can have it back.") + e.other:QuestReward(e.self,{itemid = 20923}); -- Item: Animal Figurine + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20924})) then --Bird Whistle + if(eq.get_qglobals()["sirran"] == "4") then + e.self:Say("What is this? Bah! Take that! And this! What was I thinking? I was thinking you had best let me know when you use those teleporters. Just say, [Icky Bicky Barket]. Aye, that is what I was thinking."); + e.other:QuestReward(e.self,{itemid = 20915}); --Avian Key + else + e.self:Say("I have no need for this item " .. e.other:GetCleanName() .. ", you can have it back.") + e.other:QuestReward(e.self,{itemid = 20924}); -- Item: Bird Whistle + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20925})) then --Noise Maker + if(eq.get_qglobals()["sirran"] == "5") then + e.self:Say("Phew! These are heavy. Well, not really. I'm sure I don't have to remind you to remind me when you are [leaving]."); + e.other:QuestReward(e.self,{itemid = 20916}); --Key of the Swarm + else + e.self:Say("I have no need for this item " .. e.other:GetCleanName() .. ", you can have it back.") + e.other:QuestReward(e.self,{itemid = 20925}); -- Item: Noise Maker + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20926})) then --Dull Dragon Scale + if(eq.get_qglobals()["sirran"] == "6") then + e.self:Say("Dnib a ni era uoy ro esarhp eht yas dna yrruh!! Sruoy era syek eht dna romra em evig. Erom on gnits seixib eht ahahahahah!"); + e.other:QuestReward(e.self,{itemid = 20917}); --Key of Scale + else + e.self:Say("I have no need for this item " .. e.other:GetCleanName() .. ", you can have it back.") + e.other:QuestReward(e.self,{itemid = 20926}); -- Item: Dull Dragon Scale + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20927})) then --Replica of the Wyrm Queen + if(eq.get_qglobals()["sirran"] == "7") then + e.self:Say("Not too much farther. I spit on thee knave! Ehem. Take these. Go on! Make your fortunes. No one cares about Narris. I mean Sirran. Hah! See if I care what you think! Oh, when did you say you were [leaving]?"); + e.other:QuestReward(e.self,{itemid = 20918}); --Veeshan's Key (not the one purchased on island --1 which is 20919) + else + e.self:Say("I have no need for this item " .. e.other:GetCleanName() .. ", you can have it back.") + e.other:QuestReward(e.self,{itemid = 20927}); -- Item: Replica of the Wyrm Queen + end + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_combat(e) + if(e.joined == true) then + e.self:Shout("What?! Now you've done it! The bunnies are angry! ANGRY I TELL YOU!"); + end +end + +function event_timer(e) + if(e.timer == "bye") then + eq.stop_timer("bye"); + eq.depop(); + end +end + +function event_death_complete(e) + eq.delete_global("sirran"); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Strandar_Pinemist.lua b/airplane/Strandar_Pinemist.lua new file mode 100644 index 0000000..36f1b2b --- /dev/null +++ b/airplane/Strandar_Pinemist.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, young one. Are you a [child of the trees]?"); + elseif(e.message:findi("child of the trees")) then + e.self:Say("Then you are welcome in my presence. I shall call forth some loyal children if you but speak the name. Will or Fenalla will serve you well."); + elseif(e.message:findi("will")) then + e.self:Say("Please read this tome. It will explain how Will Treewalker is able to assist. When you are finished, please return it to me. We have but a single copy of such a tome, for which a tree gave its life."); + e.other:SummonCursorItem(18528); -- The Long Walk + elseif(e.message:findi("fenalla")) then + e.self:Say("Please read this tome. It wll explain what Fenalla Moonshadow can assist you with. When you are finished, please return this to me. We have but a single copy of such a tome in the world, for which a tree gave its life."); + e.other:SummonCursorItem(18529); -- The Gift + end +end + + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18528})) then --The Long Walk + e.self:Say("Welcome, Will Treewalker."); + eq.spawn2(71099,0,0,563,1311.4,-766.9,65.4); -- NPC: Will_Treewalker + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18529})) then --The Gift + e.self:Say("Welcome, Fenalla Moonshadow."); + eq.spawn2(71086,0,0,562.5,1329.3,-766.9,65.4); -- NPC: Fenalla_Moonshadow + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/airplane/Thalik_Silenthand.lua b/airplane/Thalik_Silenthand.lua new file mode 100644 index 0000000..4b9611e --- /dev/null +++ b/airplane/Thalik_Silenthand.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". Do you believe you are a great rogue?"); + elseif(e.message:findi("great rogue")) then + e.self:Say("I will not take your word for it! You must prove your greatness to one of my apprentices. Do you wish to be tested by Rayne or by Kendrick?"); + elseif(e.message:findi("Rayne")) then + e.self:Say("Rayne it shall be. Take this book and read it. When you are finished, hand it back to me and I shall summon the mighty rogue Rayne to test you."); + e.other:SummonCursorItem(18522); -- Tome of Shadows + elseif(e.message:findi("Kendrick")) then + e.self:Say("Kendrick it shall be. Take this book and read it. When you are finished, hand it back to me and I shall summon the mighty rogue Kendrick to test you."); + e.other:SummonCursorItem(18523); -- Silent Strider + end +end + + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18522})) then --Tome of Shadows + e.self:Say("Farewell."); + eq.spawn2(71061,0,0,563.3,1372.6,-766.9,63.4); -- NPC: Rayne + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18523})) then --Silent Strider + e.self:Say("Farewell."); + eq.spawn2(71068,0,0,563.3,1372.6,-766.9,63.4); -- NPC: Kendrick + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/airplane/The_Spiroc_Guardian.lua b/airplane/The_Spiroc_Guardian.lua new file mode 100644 index 0000000..79c5ca1 --- /dev/null +++ b/airplane/The_Spiroc_Guardian.lua @@ -0,0 +1,26 @@ +function event_death_complete(e) + eq.signal(71014, 1); -- a_spiroc_walker + eq.signal(71007, 1); -- a_spiroc_banisher + eq.signal(71010, 1); -- a_spiroc_revolter +end + +function event_spawn(e) + eq.set_timer("lord", 1000); +end + +function event_signal(e) + if ( e.signal == 1 ) then + eq.set_timer("lord", 1000); + end +end + +function event_timer(e) + if ( e.self:IsEngaged() or e.self:Charmed() or e.self:GetX() ~= e.self:GetSpawnPointX() or e.self:GetY() ~= e.self:GetSpawnPointY() ) then + return; + end + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(71012) ) then -- The_Spiroc_Lord + eq.update_spawn_timer(364318, 1000); + end + eq.stop_timer(e.timer); +end diff --git a/airplane/The_Spiroc_Lord.lua b/airplane/The_Spiroc_Lord.lua new file mode 100644 index 0000000..180aecb --- /dev/null +++ b/airplane/The_Spiroc_Lord.lua @@ -0,0 +1,10 @@ +function event_death_complete(e) + local qglobals = eq.get_qglobals(); + + if(qglobals["sirran"] ~= "5" and (eq.get_entity_list():IsMobSpawnedByNpcTypeID(71009) == false or eq.get_entity_list():IsMobSpawnedByNpcTypeID(71020) == false or eq.get_entity_list():IsMobSpawnedByNpcTypeID(71022) == false)) then + eq.set_global("sirran","5",3,"M20"); + eq.spawn2(71058,0,0,955,-570,466,195); -- NPC: Sirran_the_Lunatic + end + + eq.signal(71013, 1); -- The_Spiroc_Guardian +end diff --git a/airplane/Ton_Po.lua b/airplane/Ton_Po.lua new file mode 100644 index 0000000..917ce11 --- /dev/null +++ b/airplane/Ton_Po.lua @@ -0,0 +1,43 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("So, I have been called upon to test you, and test you I shall. I will give you the option of choosing your test though enlightened one. Shall you take the test of Strength, Sight, or Speed?"); + elseif(e.message:findi("strength")) then --monk test of strength + e.self:Say("So be it, the test of strength you shall have. Bring to me a verdant tessera, some finely woven gold mesh, and some silken strands. The task will not be easy, but it should serve as an adequate test of strength, for one of your abilities."); + elseif(e.message:findi("sight")) then --monk test of sight + e.self:Say("The test of sight is both a test of body and mind. The mind will allow you to see beyond that which is usually, invisible. Bring me a Gold Disc, a Tiny Ruby, and a Cracked Leather Eyepatch and I will assist you in seeing what should not be seen."); + elseif(e.message:findi("speed")) then --monk test of speed + e.self:Say("The test of speed. Every Monk must be swift if he is to best his opponent. Speed in both mind and body is essential in many facets of life. Return to me an Adumbrate Globe, a Shimmering Opal, and some Dove Slippers and I shall aid your speed of mind."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20793, item2 = 20794, item3 = 20932})) then --monk test of strength using finely woven gold mesh, silken strands, verdant tessera + e.self:Say("You have done well, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,27714,100000); --Back Straps of Mastery + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20796, item2 = 20939, item3 = 20795})) then --monk test of sight using cracked leather eyepatch, gold disc, tiny ruby + e.self:Say("You have done well, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,1281,100000); --ton po's eyepatch + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20946, item2 = 20798, item3 = 20797})) then --monk test of speed using adumbrate globe, dove slippers, shimmering opal + e.self:Say("You have done well, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,1280,100000); --sandals of alacrity + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/airplane/Torgon_Blademaster.lua b/airplane/Torgon_Blademaster.lua new file mode 100644 index 0000000..925c3eb --- /dev/null +++ b/airplane/Torgon_Blademaster.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". Are you a [true warrior]?"); + elseif(e.message:findi("true warrior")) then + e.self:Say("Then you shall be tested as one. Choose. Do you wish to be tested by Falorn or Ogog?"); + elseif(e.message:findi("falorn")) then + e.self:Say("So be it, warrior. Take this book and read it. When you are finished, hand it back to me and I shall summon the mighty warrior Falorn to test you."); + e.other:SummonCursorItem(18520); -- Falorn Story + elseif(e.message:findi("ogog")) then + e.self:Say("Ogog? You are indeed brave for choosing that brute. Take this book telling the tale of Ogog and read it. When you are finished, hand it back to me."); + e.other:SummonCursorItem(18521); -- Ogog Story + end +end + + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18520})) then --Falorn Story + e.self:Say("Falorn, come forth!"); + eq.spawn2(71067,0,0,563.3,1392.4,-766.9,63.4); -- NPC: Falorn + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18521})) then --Ogog Story + e.self:Say("Farewell."); + eq.spawn2(71064,0,0,563.3,1392.4,-766.9,63.4); -- NPC: Ogog + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + + diff --git a/airplane/Tynicon_DLin.lua b/airplane/Tynicon_DLin.lua new file mode 100644 index 0000000..fd66ddd --- /dev/null +++ b/airplane/Tynicon_DLin.lua @@ -0,0 +1,49 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Great, let us waste no more time! I offer to you four challenges. Disempowement, Envenoming, Raising of the Dead, or Necropotence. Choose one to be tested on."); + elseif(e.message:findi("disempowerment")) then --shadowknight test of disempowerment + e.self:Say("Disempowerment, destroying good magic. Proceed upward through the sky and return to me a Griffon Statuette, a Blood Sky Emerald, and Rusted Pauldrons. This will prove your abilities to me and I will reward you with Blood Sky Face plate."); + elseif(e.message:findi("envenoming")) then --shadowknight test of envenoming + e.self:Say("Venom and hate permeate us more than our dumber, larger brothers. Return to me an efreeti war shield, a dark spiroc feather, and a shard of obsidian and prove that your soul is envenomed with hatred. If you do so, the obtenebrate mithril guard shall be yours."); + elseif(e.message:findi("raising of the dead")) then --shadowknight test of raising of the dead + e.self:Say("The dead are our allies against those that would oppose us. Proceed upward through the sky and return to me a Large Sky Pearl, a Jar of Honey, a Sphinxian Ring, and Fae Pauldrons. This will prove your abilities to me and I will reward you with an Pearlescent Pauldrons."); + elseif(e.message:findi("necropotence")) then --shadowknight test of necropotence + e.self:Say("Only the most powerful and vile of shadow knights manage to complete this test. Return to me an Efreeti War Axe, some Dulcet Nectar, a Bloodstained Hilt, and a Blood Sky Ruby. Doing so will earn you the right to wield the Drinker of Blood."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20950, item2 = 20703, item3 = 20704})) then --shadowknight test of disempowerment using griffon statuette, blood sky emerald, rusted pauldrons + e.self:Say("You have truly earned this."); + e.other:QuestReward(e.self,0,0,0,0,4322,100000); --blood sky face plate + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20705, item2 = 20957, item3 = 20706})) then --shadowknight test of envenoming using efreeti war shield, dark spiroc feather, obsidian shard + e.self:Say("This shield of evil shall guard you well, dark one."); + e.other:QuestReward(e.self,0,0,0,0,11678,100000); --obtenebrate mithril guard + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20707, item2 = 20708, item3 = 20709, item4 = 20710})) then --shadowknight test of raising of the dead using large sky pearl, jar of honey, sphinxian ring, fae pauldrons + e.self:Say("You have truly earned this."); + e.other:QuestReward(e.self,0,0,0,0,11699,100000); --pearlescent pauldrons + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20711, item2 = 20964, item3 = 20713, item4 = 20712})) then --shadowknight test of necropotence using efreeti war axe, dulcet nectar, bloodstained hilt, blood sky ruby + e.self:Say("You have truly earned this."); + e.other:QuestReward(e.self,0,0,0,0,27707,100000); --Khyldorn the Blood Drinker + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/Will_Treewalker.lua b/airplane/Will_Treewalker.lua new file mode 100644 index 0000000..bf2ca6a --- /dev/null +++ b/airplane/Will_Treewalker.lua @@ -0,0 +1,45 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Children of the trees, friend and protector of nature. We are brothers and sisters to the wolves and bears. The call of the Great Pine has filled your soul and you have found your way here to be tested. Are you ready to be tested?"); + elseif(e.message:findi("ready to be test")) then + e.self:Say("The tests of old are difficult and dangerous, but the rewards for perseverance are great. I hold rewards for three tests. The test of the Wolf, test of the Bear and the test of the Tree."); + elseif(e.message:findi("test of the wolf")) then --druid test of the wolf + e.self:Say("So you wish to take the test of the wolf, do you? Go forth unto the islands and find an azure tessera, black face paint, and a worn leather mask. Bring them back to me, but not until you have all three, and you shall be rewarded."); + elseif(e.message:findi("test of the bear")) then --druid test of the bear + e.self:Say("Ah, the test of the bear it is. Find in this plane a copper disc, a nature walker's sky emerald, and a mantle of woven grass. Bring all three at one time to me for your reward."); + elseif(e.message:findi("test of the tree")) then --druid test of the tree + e.self:Say("The test of the tree is said to be a test of Nature and only those stout of limb and bark will succeed. Bring to me a diaphanous globe, some hardened clay and a spiroc battle staff. Hand them all to me at once and the reward will be yours."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20930, item2 = 20728, item3 = 20729})) then --druid test of the wolf using azure tessera, black face paint, worn leather mask + e.self:Say("Take this mask, nature friend."); + e.other:QuestReward(e.self,0,0,0,0,2706,100000); --drake-hide mask + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20936, item2 = 20731, item3 = 20730})) then --druid test of the bear using copper disc, mantle of woven grass, nature walker's sky emerald + e.self:Say("This mantle will protect you from the winds on your journeys naturewalker."); + e.other:QuestReward(e.self,0,0,0,0,2705,100000); --nature walker's mantle + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20943, item2 = 20732, item3 = 20733})) then --druid test of the tree using diaphanous globe, hardened clay, spiroc battle staff + e.self:Say("Great work, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,6411,100000); --shillelagh + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/airplane/Wizard_Schrock.lua b/airplane/Wizard_Schrock.lua new file mode 100644 index 0000000..0f8228c --- /dev/null +++ b/airplane/Wizard_Schrock.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". Do you believe that you are a [great Wizard]?"); + elseif(e.message:findi("great wizard")) then + e.self:Say("I will not take your word for it! You must prove your greatness to my apprentices. Do you wish to be tested by Neasin or by Abec?"); + elseif(e.message:findi("Neasin")) then + e.self:Say("Neasin it shall be. Take this book and read it. When you are finished, hand it back to me and I shall summon the mighty wizard Neasin to test you."); + e.other:SummonCursorItem(18530); -- Fire and Ice + elseif(e.message:findi("Abec")) then + e.self:Say("Abec it shall be. Take this book and read it. When you are finished, hand it back to me and I shall summon the mighty wizard Abec to test you."); + e.other:SummonCursorItem(18531); -- Knowledge and Power + end +end + + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18530})) then --Fire and Ice + e.self:Say("Till next time! Farewell!"); + eq.spawn2(71092,0,0,585,1304.3,-766.9,0.1); -- NPC: Neasin_Leornic + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18531})) then --Knowledge and Power + e.self:Say("Till next time! Farewell!"); + eq.spawn2(71079,0,0,585,1304.3,-766.9,0.1); -- NPC: Abec_Ianor + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/airplane/Wu_the_Enlightened.lua b/airplane/Wu_the_Enlightened.lua new file mode 100644 index 0000000..ad20100 --- /dev/null +++ b/airplane/Wu_the_Enlightened.lua @@ -0,0 +1,43 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings Warrior of mind and body. To prove your worth to me, you must complete a test. Which test do you wish to take? I will permit you to take the test of Tears, Fists, or Tranquility."); + elseif(e.message:findi("tears")) then --monk test of tears + e.self:Say("The test of tears involves knowing when to release, and when to provide a shoulder for another. Bring me a Spiroc Statuette, a Spiroc Talon, and a Silken Wrap. I will teach you the way."); + elseif(e.message:findi("fists")) then --monk test of fists + e.self:Say("A monk must know when to use his or her fists, and when to use ones mind. You must decide in this endevour, which you shall use. Return to me, once you have found them, a pair of Brass Knuckles, a White Spiroc Feather, an Ethereal Amethyst, and a Nebulous Sapphire."); + elseif(e.message:findi("tranquility")) then --monk test of tranquility + e.self:Say("Ah, the test of tranquility. Only the tranquil monk can achieve enlightenment. Are you such an individual? Time shall tell. Retrieve these items for me. Bring an aged nectar, a Writ of Quellious, and a Tear of Quellious. Then we shall assess your ability."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20800, item2 = 20954, item3 = 20799})) then --monk test of tears using silken wrap, spiroc statuette, spiroc talon + e.self:Say("You have moved closer to enlightenment."); + e.other:QuestReward(e.self,0,0,0,0,1283,100000); --ton po's shoulder wraps + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20803, item2 = 20801, item3 = 20802, item4 = 20960})) then --monk test of fists using brass knuckles, ethereal amethyst, nebulous sapphire, white spiroc feather + e.self:Say("You have moved closer to enlightenment."); + e.other:QuestReward(e.self,0,0,0,0,27715,100000); --Wu's Fist of Mastery + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20967, item2 = 20804, item3 = 20805})) then --monk test of tranquility using aged nectar, writ of quellious, tear of quellious + e.self:Say("You have moved closer to enlightenment."); + e.other:QuestReward(e.self,0,0,0,0,11698,100000); --golden sash of tranquility + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/a_presence.lua b/airplane/a_presence.lua new file mode 100644 index 0000000..c64262b --- /dev/null +++ b/airplane/a_presence.lua @@ -0,0 +1,14 @@ +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1684})) then + e.self:Say("Hahaha! That dolt Eejag fell to the likes of you? Im not surprised. So, I guess this means you are here to challenge me. Normally, I wouldnt waste my time, but since you have defeated my younger brother, I suppose Im obligated."); + eq.depop_with_timer(); + eq.spawn2(71069,0,0,e.self:GetX(),e.self:GetY(),-8,e.self:GetHeading()); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/a_soul_carrier.lua b/airplane/a_soul_carrier.lua new file mode 100644 index 0000000..f223a02 --- /dev/null +++ b/airplane/a_soul_carrier.lua @@ -0,0 +1,10 @@ +function event_death_complete(e) + -- on death of soul carrier two a essence carrier spawn + eq.spawn2(71070,0,0,e.self:GetX()+10,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(71070,0,0,e.self:GetX()-10,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/airplane/a_soul_harvester.lua b/airplane/a_soul_harvester.lua new file mode 100644 index 0000000..dbc8b60 --- /dev/null +++ b/airplane/a_soul_harvester.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(71100,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); +end diff --git a/airplane/a_soul_tamer.lua b/airplane/a_soul_tamer.lua new file mode 100644 index 0000000..27f25f9 --- /dev/null +++ b/airplane/a_soul_tamer.lua @@ -0,0 +1,9 @@ +function event_death_complete(e) + -- send a signal to the Key_Master + eq.signal(71056,2); -- NPC: Key_Master +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/a_spiroc_arbiter.lua b/airplane/a_spiroc_arbiter.lua new file mode 100644 index 0000000..0f3e5ee --- /dev/null +++ b/airplane/a_spiroc_arbiter.lua @@ -0,0 +1,37 @@ +local arrive = false; + +function event_death_complete(e) + eq.signal(71022, 1); -- a_spiroc_vanquisher +end + +function event_spawn(e) + eq.set_timer("banisher", 1000); + arrive = true; +end + +function event_signal(e) + if ( e.signal == 1 ) then + eq.set_timer("banisher", 1000); + end +end + +function event_timer(e) + if ( not arrive or e.self:IsEngaged() or e.self:Charmed() ) then + return; + end + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(71007) ) then -- a_spiroc_banisher + eq.update_spawn_timer(364314, 1000); + end + eq.stop_timer(e.timer); +end + +function event_combat(e) + if ( e.joined ) then + arrive = false; + end +end + +function event_waypoint_arrive(e) + arrive = true; +end diff --git a/airplane/a_spiroc_banisher.lua b/airplane/a_spiroc_banisher.lua new file mode 100644 index 0000000..ce07245 --- /dev/null +++ b/airplane/a_spiroc_banisher.lua @@ -0,0 +1,37 @@ +local arrive = false; + +function event_death_complete(e) + eq.signal(71008, 1); -- a_spiroc_arbiter +end + +function event_spawn(e) + eq.set_timer("guardian", 1000); + arrive = true; +end + +function event_signal(e) + if ( e.signal == 1 ) then + eq.set_timer("guardian", 1000); + end +end + +function event_timer(e) + if ( not arrive or e.self:IsEngaged() or e.self:Charmed() ) then + return; + end + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(71013) ) then -- The_Spiroc_Guardian + eq.update_spawn_timer(364319, 1000); + end + eq.stop_timer(e.timer); +end + +function event_combat(e) + if ( e.joined ) then + arrive = false; + end +end + +function event_waypoint_arrive(e) + arrive = true; +end diff --git a/airplane/a_spiroc_caller.lua b/airplane/a_spiroc_caller.lua new file mode 100644 index 0000000..523c031 --- /dev/null +++ b/airplane/a_spiroc_caller.lua @@ -0,0 +1,37 @@ +local arrive = false; + +function event_death_complete(e) + eq.signal(71009, 2); -- a_spiroc_vanquisher +end + +function event_spawn(e) + eq.set_timer("walker", 1000); + arrive = true; +end + +function event_signal(e) + if ( e.signal == 1 ) then + eq.set_timer("walker", 1000); + end +end + +function event_timer(e) + if ( not arrive or e.self:IsEngaged() or e.self:Charmed() ) then + return; + end + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(71014) ) then -- a_spiroc_walker + eq.update_spawn_timer(364309, 1000); + end + eq.stop_timer(e.timer); +end + +function event_combat(e) + if ( e.joined ) then + arrive = false; + end +end + +function event_waypoint_arrive(e) + arrive = true; +end diff --git a/airplane/a_spiroc_expulser.lua b/airplane/a_spiroc_expulser.lua new file mode 100644 index 0000000..73c67c4 --- /dev/null +++ b/airplane/a_spiroc_expulser.lua @@ -0,0 +1,37 @@ +local arrive = false; + +function event_death_complete(e) + eq.signal(71020, 3); -- a_spiroc_vanquisher +end + +function event_spawn(e) + eq.set_timer("revolter", 1000); + arrive = true; +end + +function event_signal(e) + if ( e.signal == 1 ) then + eq.set_timer("revolter", 1000); + end +end + +function event_timer(e) + if ( not arrive or e.self:IsEngaged() or e.self:Charmed() ) then + return; + end + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(71010) ) then -- a_spiroc_revolter + eq.update_spawn_timer(364320, 1000); + end + eq.stop_timer(e.timer); +end + +function event_combat(e) + if ( e.joined ) then + arrive = false; + end +end + +function event_waypoint_arrive(e) + arrive = true; +end diff --git a/airplane/a_spiroc_revolter.lua b/airplane/a_spiroc_revolter.lua new file mode 100644 index 0000000..fd3bae5 --- /dev/null +++ b/airplane/a_spiroc_revolter.lua @@ -0,0 +1,37 @@ +local arrive = false; + +function event_death_complete(e) + eq.signal(71011, 1); -- a_spiroc_expulser +end + +function event_spawn(e) + eq.set_timer("guardian", 1000); + arrive = true; +end + +function event_signal(e) + if ( e.signal == 1 ) then + eq.set_timer("guardian", 1000); + end +end + +function event_timer(e) + if ( not arrive or e.self:IsEngaged() or e.self:Charmed() ) then + return; + end + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(71013) ) then -- The_Spiroc_Guardian + eq.update_spawn_timer(364319, 1000); + end + eq.stop_timer(e.timer); +end + +function event_combat(e) + if ( e.joined ) then + arrive = false; + end +end + +function event_waypoint_arrive(e) + arrive = true; +end diff --git a/airplane/a_spiroc_vanquisher.lua b/airplane/a_spiroc_vanquisher.lua new file mode 100644 index 0000000..268c5a9 --- /dev/null +++ b/airplane/a_spiroc_vanquisher.lua @@ -0,0 +1,65 @@ +local arrive = {}; + +function event_spawn(e) + local spawnID = e.self:GetSpawnPointID(); + arrive[spawnID] = true; + + if ( spawnID == 364311 ) then -- typeid 71009, grid 20 (3 points) + eq.set_timer("caller", 1000); + + elseif ( spawnID == 364316 ) then -- typeid 71020, grid 21 (2 points) + eq.set_timer("expulser", 1000); + + elseif ( spawnID == 364322 ) then -- typeid 71022, grid 22 (4 points) + eq.set_timer("arbiter", 1000); + end +end + +function event_signal(e) + + if ( e.signal == 1 ) then + eq.set_timer("arbiter", 1000); + + elseif ( e.signal == 2 ) then + eq.set_timer("caller", 1000); + + elseif ( e.signal == 3 ) then + eq.set_timer("expulser", 1000); + end +end + +function event_timer(e) + if ( e.self:IsEngaged() or e.self:Charmed() or not arrive[e.self:GetSpawnPointID()] ) then + return; + end + + local elist = eq.get_entity_list(); + + if ( e.timer == "arbiter" ) then + if ( not elist:IsMobSpawnedByNpcTypeID(71008) ) then -- a_spiroc_arbiter + eq.update_spawn_timer(364315, 1000); + end + + elseif ( e.timer == "caller" ) then + if ( not elist:IsMobSpawnedByNpcTypeID(71015) ) then -- a_spiroc_caller + eq.update_spawn_timer(364310, 1000); + end + + elseif ( e.timer == "expulser" ) then + if ( not elist:IsMobSpawnedByNpcTypeID(71011) ) then -- a_spiroc_expulser + eq.update_spawn_timer(364321, 1000); + end + end + + eq.stop_timer(e.timer); +end + +function event_combat(e) + if ( e.joined ) then + arrive[e.self:GetSpawnPointID()] = false; + end +end + +function event_waypoint_arrive(e) + arrive[e.self:GetSpawnPointID()] = true; +end diff --git a/airplane/a_spiroc_walker.lua b/airplane/a_spiroc_walker.lua new file mode 100644 index 0000000..9fb002f --- /dev/null +++ b/airplane/a_spiroc_walker.lua @@ -0,0 +1,37 @@ +local arrive = false; + +function event_death_complete(e) + eq.signal(71015, 1); -- a_spiroc_caller +end + +function event_spawn(e) + eq.set_timer("guardian", 1000); + arrive = true; +end + +function event_signal(e) + if ( e.signal == 1 ) then + eq.set_timer("guardian", 1000); + end +end + +function event_timer(e) + if ( not arrive or e.self:IsEngaged() or e.self:Charmed() ) then + return; + end + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(71013) ) then -- The_Spiroc_Guardian + eq.update_spawn_timer(364319, 1000); + end + eq.stop_timer(e.timer); +end + +function event_combat(e) + if ( e.joined ) then + arrive = false; + end +end + +function event_waypoint_arrive(e) + arrive = true; +end diff --git a/airplane/a_thunder_spirit_princess.lua b/airplane/a_thunder_spirit_princess.lua new file mode 100644 index 0000000..9d961df --- /dev/null +++ b/airplane/a_thunder_spirit_princess.lua @@ -0,0 +1,27 @@ +-- Necromancer Epic NPC + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, travelers, welcome to the Plane of Sky! We are thunder spirits - this first island is our home. You are welcome to stay here as long as you like. If you wish to go to other islands you may purchase keys from the Key Master."); + elseif(e.message:findi("gkzzallk")) then + e.self:Say("Gkzzallk lives far above here. We often take him tea because he's so nice to us fairies! He likes to chat with the others who live here and can often be found in the temple up above. If you give me a bit of money, I can go make sure he is home."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {gold = 10})) then + e.self:Say("Thank you, " .. e.other:GetCleanName() .. ". I will tell him to expect visitors."); + eq.unique_spawn(71073,0,0,287.9,662.5,-54.1,109.3); -- NPC: Gkzzallk + end +end + +function event_death_complete(e) + eq.set_global("sirran","1",3,"M20"); + eq.spawn2(71058,0,0,688,1381,-645,192); -- NPC: Sirran_the_Lunatic +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/an_azarack.lua b/airplane/an_azarack.lua new file mode 100644 index 0000000..13c2a77 --- /dev/null +++ b/airplane/an_azarack.lua @@ -0,0 +1,8 @@ +function event_death_complete(e) + eq.signal(71056,1); -- NPC: Key_Master +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/an_essence_carrier.lua b/airplane/an_essence_carrier.lua new file mode 100644 index 0000000..eaf7df2 --- /dev/null +++ b/airplane/an_essence_carrier.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(71071,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); +end diff --git a/airplane/an_essence_harvester.lua b/airplane/an_essence_harvester.lua new file mode 100644 index 0000000..8a26247 --- /dev/null +++ b/airplane/an_essence_harvester.lua @@ -0,0 +1,9 @@ +function event_death_complete(e) + eq.spawn2(71110,0,0,e.self:GetX()+10,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(71110,0,0,e.self:GetX()-10,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/airplane/player.lua b/airplane/player.lua new file mode 100644 index 0000000..5996d31 --- /dev/null +++ b/airplane/player.lua @@ -0,0 +1,9 @@ +function event_zone(e) + local airplanekey ={20915,20914,20913,20917,20911,20912,20916,20918,20919}; + + for i = 1, 9 do + if(e.self:HasItem(airplanekey[i])) then + e.self:NukeItem(airplanekey[i]); + end + end +end diff --git a/akanon/#clockwork_scrubber.lua b/akanon/#clockwork_scrubber.lua new file mode 100644 index 0000000..384adad --- /dev/null +++ b/akanon/#clockwork_scrubber.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("clicks as a plate slides to the side revealing a hose that extends and sucks up an item from the ground"); + end + end +end + +function event_say(e) + if (e.message:findi("628")) then + e.self:Emote(".wizz.click.628."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 12164})) then -- Scrubber Key + e.self:Emote(".wizz.click.628."); + -- verified live faction + e.other:Faction(e.self,695,-5,0); -- Clockwork Gnome + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(12162,12167)); -- Gnome Take (Good or Bad) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/55009.lua b/akanon/55009.lua new file mode 100644 index 0000000..de33af5 --- /dev/null +++ b/akanon/55009.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("clicks as a plate slides to the side revealing a hose that extends and sucks up an item from the ground"); + end + end +end diff --git a/akanon/55035.lua b/akanon/55035.lua new file mode 100644 index 0000000..de33af5 --- /dev/null +++ b/akanon/55035.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("clicks as a plate slides to the side revealing a hose that extends and sucks up an item from the ground"); + end + end +end diff --git a/akanon/55327.lua b/akanon/55327.lua new file mode 100644 index 0000000..947fa37 --- /dev/null +++ b/akanon/55327.lua @@ -0,0 +1,13 @@ +function event_spawn(e) + eq.set_timer("requested",1800000); +end + +function event_timer(e) + if(e.timer == "requested" and not e.self:IsEngaged())then + e.self:Say("Yes Mistress. Here is the requested part."); + eq.set_timer("mistress",4000); + elseif(e.timer == "mistress")then + e.self:Say("Yes Mistress."); + eq.stop_timer(e.timer); + end +end diff --git a/akanon/55349.lua b/akanon/55349.lua new file mode 100644 index 0000000..de33af5 --- /dev/null +++ b/akanon/55349.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("clicks as a plate slides to the side revealing a hose that extends and sucks up an item from the ground"); + end + end +end diff --git a/akanon/55389.lua b/akanon/55389.lua new file mode 100644 index 0000000..683a874 --- /dev/null +++ b/akanon/55389.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("checking",1600000); +end + +function event_timer(e) + if(e.timer == "checking" and not e.self:IsEngaged())then + e.self:Say("Checking Master."); + eq.set_timer("sorry",8000); + elseif(e.timer == "sorry")then + e.self:Say("Sorry, Master, I only have one part. I have the circular monoplanar fastener, but not the reciprocal perpetual linear motivating sprocket. I will be able to acquire it within a few hours."); + eq.stop_timer(e.timer); + eq.set_timer("wish",3000); + elseif(e.timer == "wish")then + e.self:Say("As you wish Master."); + eq.stop_timer(e.timer); + end +end diff --git a/akanon/Baxok_Curhunter.lua b/akanon/Baxok_Curhunter.lua new file mode 100644 index 0000000..9891b0f --- /dev/null +++ b/akanon/Baxok_Curhunter.lua @@ -0,0 +1,50 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". I invite you to serve the mighty state of Ak'Anon by becoming a Gemchopper. We gnomes are not known for our warrior skills, but those few who endure and survive to become elite amongst our warriors soon find that the technology of the gnomes has found its way into our halls. You must be a [new recruit] or [an outsider], perhaps?"); + elseif(e.message:findi("new recruit")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Well, good to make your acquaintance, " .. e.other:GetCleanName() .. ". Maybe someday you shall be a great Watchman. Until then, I have a task for you. Will you [serve the Crown] or has a yellow streak appeared upon your back?"); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("You must show a greater allegiance to the Gemchoppers before we can speak with you. Search the hills for rogue clockworks. Captain Compolten shall accept two of their blackboxes and you shall prove your loyalty to our hall."); + else + e.self:Say("You are lucky I do not cut you in half right where you stand. Your actions so far have proven you an enemy to the Gemchoppers. Leave while you still can!"); + end + elseif(e.message:findi("an outsider")) then + e.self:Say("I should have guessed as much. You look the part."); + elseif(e.message:findi("serve the crown")) then + if(e.other:GetLevel() <=5 ) then + e.self:Say("You are too inexperienced. Leave that business to someone more worldly."); + else + e.self:Say("Go to the Lesser Faydarks. There you will seek out a fairy city. It seems the little pests have stolen one of our fabulous clockworks. Destroy the clockwork and bring me proof. Be very careful. The fairy folk may be small, but they pack a punch."); + end + elseif (e.message:findi("meldrath")) then + e.self:Say("Meldrath is the mad gnome. He used to be a member of the Eldritch Collective. Some say he lost his mind while he was working on a formula he obtained from other worlds. He used to lead the cult called the [Asylum of the Mad]."); + elseif (e.message:findi("asylum")) then + e.self:Say("The Asylum of the Mad was formed by the mad gnome, Meldrath. Under his direction, they were trying to build some giant mechanical titan. We recently sent all of our clockworks into the Steamfont Mountains to destroy their evil cult."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18770})) then -- Recruitment Summons + e.self:Say("I, Baxok, guildmaster, welcome you to Gemchopper Hall, young warrior! You are expected to serve his majesty, King Ak'Anon, with pride. You have much to learn. You may report to any of the trainers for further guidance. Go forth and serve!"); + e.other:Faction(e.self,255,100,0); -- +Gem Cutters + e.other:Faction(e.self,288,25,0); -- +Merchants of Ak'anon + e.other:Faction(e.self,333,25,0); -- +King Akanon + e.other:Faction(e.self,238,-25,0); -- -Dark Reflection + e.other:Faction(e.self,1604,-5,0); -- -Clan Grikbar + e.other:QuestReward(e.self,0,0,0,0,13520,20); -- Torn and Ripped Tunic* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13344})) then -- verified can turn in at dubious. + e.self:Say("I can hardly believe you destroyed the clockwork. The last ten men I sent became fairy fodder. Thank you. Here is a token of my appreciation. Serve Ak'Anon well and we shall treat you well."); + -- verifed live faction + e.other:Faction(e.self,255,20,0); -- +Gem Cutters + e.other:Faction(e.self,288,5,0); -- +Merchants of Ak'anon + e.other:Faction(e.self,333,5,0); -- +King Akanon + e.other:Faction(e.self,238,-5,0); -- -Dark Reflection + e.other:Faction(e.self,1604,-1,0); -- -Clan Grikbar + e.other:QuestReward(e.self,math.random(0,5),math.random(0,5),0,0,eq.ChooseRandom(9002,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1010,1011),5000); -- cloth armor or round shield + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Cleaner_X.lua b/akanon/Cleaner_X.lua new file mode 100644 index 0000000..4a8f494 --- /dev/null +++ b/akanon/Cleaner_X.lua @@ -0,0 +1,22 @@ +-- Converted to .lua by Speedz + +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("clicks as a plate slides to the side revealing a hose that extends and sucks up an item from the ground"); + end + end +end + +function event_waypoint_arrive(e) + if(e.wp == 30) then + e.self:Say("Click.. Dust. Dust. Dust."); + elseif(e.wp == 42) then + e.self:Say("Click.. Dust. Dust. Dust."); + e.self:SetRunning(true); + end +end diff --git a/akanon/Clockwork_IIZ.lua b/akanon/Clockwork_IIZ.lua new file mode 100644 index 0000000..fa9570c --- /dev/null +++ b/akanon/Clockwork_IIZ.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.set_timer("disturb",3100000); +end + +function event_timer(e) + e.self:Say("Please do not disturb the animals."); +end \ No newline at end of file diff --git a/akanon/Clockwork_IZ.lua b/akanon/Clockwork_IZ.lua new file mode 100644 index 0000000..aaa1dc4 --- /dev/null +++ b/akanon/Clockwork_IZ.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.set_timer("poke",4200000); +end + +function event_timer(e) + e.self:Say("Do not poke, shoot, or enchant the animals."); +end \ No newline at end of file diff --git a/akanon/Clockwork_SmithXIII.lua b/akanon/Clockwork_SmithXIII.lua new file mode 100644 index 0000000..4cdcb6a --- /dev/null +++ b/akanon/Clockwork_SmithXIII.lua @@ -0,0 +1,14 @@ +function event_trade(e) + local item_lib = require("items"); + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 10999,item2 = 11039,item3 = 10975})) then + e.self:Emote("fashions the ebon drakeling scales into a grip on the shaft of the staff, places the harpies eye within a metal fixture, fastens the fixture to the top of the staff and carves some delicate runes into the wood. 'click... wrrrr... a staff for you sir. Click... wrrr.'"); + e.other:QuestReward(e.self,0,0,0,0, 11081,100); + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 10703,item2 = 11082})) then + e.self:Emote("fashions the coyote pelt into a grip on the shaft of the axe and carves some delicate runes into the blade. 'click... wrrrr... an axe for you sir. Click... wrrr.'"); + e.other:QuestReward(e.self,0,0,0,0, 11077,100); + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 13054,item2 = 11084})) then + e.self:Emote("fashions the giant rat pelt into a grip on the hilt of the stiletto and carves some delicate runes into the blade. 'click... wrrrr... a stiletto for you sir. Click... wrrr."); + e.other:QuestReward(e.self,0,0,0,0, 11079,100); -- Plague Rust Stiletto + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Clockwork_VIIX.lua b/akanon/Clockwork_VIIX.lua new file mode 100644 index 0000000..30f8cf3 --- /dev/null +++ b/akanon/Clockwork_VIIX.lua @@ -0,0 +1,32 @@ +-- Test of Enlightenment - enchanter epic - start of quest + +function event_say(e) + if (e.message:findi("are you mizzle")) then + e.self:Say("Oh hello! I'm Mizzle, that I am. I bet you want to be given true clarity, don't you?"); + elseif (e.message:findi("required component")) then + e.self:Say("Then bring me a spoon, the one key, the lost scroll, and the book Charm and Sacrifice. I will then reward you with what you seek."); + elseif (e.message:findi("spoon")) then + e.self:Say("Its a giant sized tool I will use to stir my magical pot. The spoon will help finish the ritual of crafting."); + elseif (e.message:findi("one key")) then + e.self:Say("It is a key I lost long ago when I was travelling with a companion. We were traveling in the new lands flying over some large crevices when the key dropped out of my pocket."); + elseif (e.message:findi("lost scroll")) then + e.self:Say("The lost scroll contains the magical incantation I need to help you out. It was penned ages ago by the Elves. It was lost along with its protector during one of the raids on the Outpost in Firiona. I fear it may be lost for good."); + elseif (e.message:findi("book of charm and sacrifice")) then + e.self:Say("Oh, that is a book of good reading. If you want to take the time to read it. I haven't had much free time to read it, but now that you are getting supplies for me, I can take a break."); + elseif(e.message:findi("sack")) then + e.self:Say("Before I provide the item, you must show me that you have spoken to Jeb."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 10604})) then + e.self:Say("It is time then, are you ready to get the required components?"); + e.other:QuestReward(e.self,{items = {10604,17861}}) -- Item: Jeb's Seal + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 10636})) then + e.self:Say("Oh excellent, you have done what is required. Here take this part, and seek the third master, you are well on your way."); + e.other:Faction(e.self,404,100); -- Faction: True Spirit + e.other:QuestReward(e.self,0,0,0,0,10611,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Clockwork_XIIC.lua b/akanon/Clockwork_XIIC.lua new file mode 100644 index 0000000..6706e9e --- /dev/null +++ b/akanon/Clockwork_XIIC.lua @@ -0,0 +1,16 @@ +-- Converted to .lua by Speedz + +function event_trade(e) + local item_lib = require("items"); + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 13844})) then + e.self:Say("Tick.. Pop.. Access granted."); + -- verified live faction + e.other:Faction(e.self,333,1,0); -- Faction: King Ak'Anon + e.other:Faction(e.self,245,1,0); -- Faction: Eldritch Collective + e.other:Faction(e.self,255,1,0); -- Faction: Gem Choppers + e.other:Faction(e.self,238,-1,0); -- Faction: Dark Reflection + e.other:Faction(e.self,287,-1,0); -- Faction: Meldrath + e.other:QuestReward(e.self,0,0,0,0,13212,10); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Clockwork_XVIIC.lua b/akanon/Clockwork_XVIIC.lua new file mode 100644 index 0000000..3b7bb94 --- /dev/null +++ b/akanon/Clockwork_XVIIC.lua @@ -0,0 +1,16 @@ +-- Converted to .lua by Speedz + +function event_trade(e) + local item_lib = require("items"); + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 13844})) then + e.self:Say("Tick.. Pop.. Access granted."); + -- verified live faction + e.other:Faction(e.self,333,1,0); -- Faction: King Ak'Anon + e.other:Faction(e.self,245,1,0); -- Faction: Eldritch Collective + e.other:Faction(e.self,255,1,0); -- Faction: Gem Choppers + e.other:Faction(e.self,238,-1,0); -- Faction: Dark Reflection + e.other:Faction(e.self,287,-1,0); -- Faction: Meldrath + e.other:QuestReward(e.self,0,0,0,0,13213,10); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Clockwork_XXVIC.lua b/akanon/Clockwork_XXVIC.lua new file mode 100644 index 0000000..6e9ec4f --- /dev/null +++ b/akanon/Clockwork_XXVIC.lua @@ -0,0 +1,14 @@ +function event_trade(e) + local item_lib = require("items"); + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 13844})) then + e.self:Say("Tick.. Pop.. Access granted."); + -- verified live faction + e.other:Faction(e.self,333,1,0); -- Faction: King Ak'Anon + e.other:Faction(e.self,245,1,0); -- Faction: Eldritch Collective + e.other:Faction(e.self,255,1,0); -- Faction: Gem Choppers + e.other:Faction(e.self,238,-1,0); -- Faction: Dark Reflection + e.other:Faction(e.self,287,-1,0); -- Faction: Meldrath + e.other:QuestReward(e.self,0,0,0,0,13211,10); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Clockwork_XXVIIC.lua b/akanon/Clockwork_XXVIIC.lua new file mode 100644 index 0000000..3f9a343 --- /dev/null +++ b/akanon/Clockwork_XXVIIC.lua @@ -0,0 +1,14 @@ +function event_trade(e) + local item_lib = require("items"); + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 13844})) then + e.self:Say("Tick.. Pop.. Access granted."); + -- verified live faction + e.other:Faction(e.self,333,1,0); -- Faction: King Ak'Anon + e.other:Faction(e.self,245,1,0); -- Faction: Eldritch Collective + e.other:Faction(e.self,255,1,0); -- Faction: Gem Choppers + e.other:Faction(e.self,238,-1,0); -- Faction: Dark Reflection + e.other:Faction(e.self,287,-1,0); -- Faction: Meldrath + e.other:QuestReward(e.self,0,0,0,0,13214,10); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Derthix_Gibblix.lua b/akanon/Derthix_Gibblix.lua new file mode 100644 index 0000000..dd9cf6f --- /dev/null +++ b/akanon/Derthix_Gibblix.lua @@ -0,0 +1,21 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". It is my duty to train young gnomes that have been called to they ways of Bertoxxulous, the Plague Bringer, and wish to [serve as a cleric] of the Dark Reflection. The faithful of the Plague Bringer are gifted with the sight of the Dark Reflection. The ability to recognize the importance of the powerful forces of disease and decay, and the role they play in the cycles of deterioration and renewal, death and life, destruction and creation."); + elseif(e.message:findi("serve as a cleric")) then + e.self:Say("We have been blessed by Bertoxxulous with the vision of the Dark Reflection. We are the prophet and protectors of all who serve the Plague Bringer and have devoted our lives to spreading disease and decay for the glory of Bertoxxulous and the balances that must be maintained. Take this parchment to Glerbella Gibblix, she will assist you with the construction of a suit of armor to aid in protecting you from the weapons of those who would see us destroyed. When you have been properly outfitted return to me for your [next task]."); + e.other:SummonCursorItem(10989); -- Item: Parchment to Glerbella + elseif (e.message:findi("next task")) then + e.self:Say("We faithful of Bertoxxulous are misunderstood even by the majority of the gnomes of Ak'Akanon. The Eldrich Collective and the Deep Muses would have us chased from the Mines of Malfunction and exiled from these lands. They are not gifted with the vision of the Dark Reflection and thus are blind to the necessity of our actions. In the Steamfont Mountains you will find a Cleric of the Deep Muses, Vyntok Bonkle. Vyntok has been aiding others of our enemies in their mission to eliminate the Dark Reflection from Ak'Anon. Find Vyntok and slay him. When you have accomplished this task return to me with Vyntok's Mace."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 10993})) then + e.self:Say("It is good you returned with this. I almost thought you had lost to Vyntok, or worse become merciful to his cause. I suppose a reward is in order. A mace for a mace, now go forth and spread the word of Bertoxxulous."); + e.other:QuestReward(e.self,0,0,0,0,11080,20); -- Item: Plague Raiser Mace + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Drekon_Vebnebber.lua b/akanon/Drekon_Vebnebber.lua new file mode 100644 index 0000000..22124ed --- /dev/null +++ b/akanon/Drekon_Vebnebber.lua @@ -0,0 +1,46 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". It is grand to make your acquaintance. I am the in-house merchant-slash-file clerk. I have goods to offer and I handle all the Gemchopper paperwork. Thrilling, don't you think?"); + elseif (e.message:findi("red 5")) then + e.self:Say("Red 5 is rumored to be a haywire clockwork. They say he pieced himself back together and lives in the scrapyard. If he IS there, you must hunt him down and take his blackbox to Manik Compolten. Be careful, if Red 5 rebuilt himself, he may have rebuilt minions as well."); + elseif (e.message:findi("blackbox")) then + e.self:Say("If you have a clockwork blackbox which is still intact, take it to [Manik Compolten]. All clockwork matters go through him."); + elseif (e.message:findi("manik compolten")) then + if(e.other:GetFactionValue(e.self) >= 0) then -- Needs indifferent + e.self:Say("Manik is a trainer within this guild. The clockworks are his responsibility. Speak with him - I am sure he is here somewhere."); + else + e.self:Say("You are lucky I do not cut you in half right where you stand. Your actions so far have proven you an enemy to the Gemchoppers. Leave while you still can!"); + end + elseif (e.message:findi("meldrath")) then + e.self:Say("Meldrath is the mad gnome. He used to be a member of the Eldritch Collective. Some say he lost his mind while he was working on a formula he obtained from other worlds. He used to lead the cult called the [Asylum of the Mad]."); + elseif (e.message:findi("asylum")) then + e.self:Say("The Asylum of the Mad was formed by the mad gnome, Meldrath. Under his direction, they were trying to build some giant mechanical titan. We recently sent all of our clockworks into the Steamfont Mountains to destroy their evil cult."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 18837},0)) then + e.self:Say("Why, thank you. Hey!! This log indicates some messy business is going on at the scrapyard. Something happened to a group of gnomes. They never came out!! Go check out the scrapyard! I believe the rumors of [Red 5] are true."); + -- verified live faction + e.other:Faction(e.self,255,5); -- Faction: Gem Choppers + e.other:Faction(e.self,288,1); -- Faction: Merchants of Ak'Anon + e.other:Faction(e.self,333,1); -- Faction: King Ak'Anon + e.other:Faction(e.self,238,-1); -- Faction: Dark Reflection + e.other:Faction(e.self,1604,-1); -- Faction: Clan Grikbar + e.other:AddEXPPercent(11,1); -- 11% xp at level 1 + + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 18838},0)) then + e.self:Say("Oh my! It seems two of the obsolete duster models were not fully shut down. You must find them. They could be anywhere in Ak'Anon! After you destroy them, take their scraps to Sanfyrd Montop. He is the operator of the scrapyard."); + eq.unique_spawn(55001,39,0,-300,1504,-120,0); -- NPC: Duster_X + e.other:Faction(e.self,255,5); -- Faction: Gem Choppers + e.other:Faction(e.self,288,1); -- Faction: Merchants of Ak'Anon + e.other:Faction(e.self,333,1); -- Faction: King Ak'Anon + e.other:Faction(e.self,238,-1); -- Faction: Dark Reflection + e.other:Faction(e.self,1604,-1); -- Faction: Clan Grikbar + e.other:AddEXPPercent(11,1); -- 11% xp at level 1 + + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Drigaz_Grumblegrowl.lua b/akanon/Drigaz_Grumblegrowl.lua new file mode 100644 index 0000000..606bade --- /dev/null +++ b/akanon/Drigaz_Grumblegrowl.lua @@ -0,0 +1,23 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Grrreetings, " .. e.other:GetCleanName() .. ", would you like to share a roasted rat steak or perhaps a tall glass of gnomish spirits? Have no fear of my appearance. My bark is meaner than my bite! Grraw haw haw!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I need the odd cold iron necklace and the note from Glyssa if I am to assist you."; + + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 1779,item2 = 14585},1,text)) then + e.self:Say("I had hoped to see the last of these sorrowful symbols. There is little I can tell you of the details of the kobold religion as I was rescued from death as a pup by the Deep Muses and reunited with Brell Serilis. What I know is this, the deity this symbol represents is named Rolfron Zek. He was a devoted shaman of Brell before the Abandonment, now he is the lord of Despair and Hopelessness. There is a shaman of Rolfron that teaches the local kobolds, he carries with him a doctrine. Recover the doctrine and take it with this translation scroll back to your Temple"); + -- Confirmed Live Factions + e.other:Faction(e.self,240,5); -- deepmuse + e.other:Faction(e.self,288,1); -- merchant of ak'anon + e.other:Faction(e.self,255,1); -- gemchoppers + e.other:Faction(e.self,238,-1); -- dark reflection + e.other:QuestReward(e.self,0,0,0,0,1780,1500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Duster_V.lua b/akanon/Duster_V.lua new file mode 100644 index 0000000..4a8f494 --- /dev/null +++ b/akanon/Duster_V.lua @@ -0,0 +1,22 @@ +-- Converted to .lua by Speedz + +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("clicks as a plate slides to the side revealing a hose that extends and sucks up an item from the ground"); + end + end +end + +function event_waypoint_arrive(e) + if(e.wp == 30) then + e.self:Say("Click.. Dust. Dust. Dust."); + elseif(e.wp == 42) then + e.self:Say("Click.. Dust. Dust. Dust."); + e.self:SetRunning(true); + end +end diff --git a/akanon/Duster_X.lua b/akanon/Duster_X.lua new file mode 100644 index 0000000..31fc0d6 --- /dev/null +++ b/akanon/Duster_X.lua @@ -0,0 +1,25 @@ +-- Converted to .lua by Speedz + +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("clicks as a plate slides to the side revealing a hose that extends and sucks up an item from the ground"); + end + end +end + +function event_waypoint_arrive(e) + if(e.wp == 5) then + e.self:Say("Click.. Dust. Dust. Dust."); + e.self:SetRunning(true); + elseif(e.wp == 12) then + e.self:Say("Click.. Dust. Dust. Dust."); + elseif(e.wp == 24) then + e.self:Say("Click.. Dust. Dust. Dust."); + e.self:SetRunning(false); + end +end diff --git a/akanon/Eonis_Mournunder.lua b/akanon/Eonis_Mournunder.lua new file mode 100644 index 0000000..ccc9cdd --- /dev/null +++ b/akanon/Eonis_Mournunder.lua @@ -0,0 +1,12 @@ +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18771})) then -- Stained Letter + e.self:Say("Hmmm... As you wish, we will train you in our dark ways. But know this: our art carries a high price, and there is no turning back for you now."); + e.other:Faction(e.self,238,100,0); -- Dark reflection + e.other:Faction(e.self,245,-10,0); -- eldritch collective + e.other:Faction(e.self,255,-10,0); -- gem choppers + e.other:Faction(e.self,240,-10,0); -- Deepmuses + e.other:QuestReward(e.self,0,0,0,0,13524,20); -- Dark Gold Felt Robe* + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Evah_Xokez.lua b/akanon/Evah_Xokez.lua new file mode 100644 index 0000000..040b614 --- /dev/null +++ b/akanon/Evah_Xokez.lua @@ -0,0 +1,59 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- Needs amiably or better, the other phrases work at indifferent + e.self:Say("Be wary, " .. e.other:GetCleanName() .. ", there are unseen powers within these mines that can destroy the strongest warriors or the wisest seers. Do you find the rust that corrodes the mechanisms around you and the decaying forms that wander [these tunnels pleasing]?"); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("pleasing")) then + if(e.other:GetFactionValue(e.self) >= 0) then -- Needs indifferent + e.self:Say("Then perhaps you share the vision of we who have made these mines our home. We are the Dark Reflection and our perceptions have been refined to allow us to see the poisons and disease coursing through every creature's veins and the decay afflicting all forms of matter in Norrath. I can teach you to harness the powers of our divine benefactor if you are [willing to learn] through service to the Dark Reflection."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("willing.* learn")) then + if(e.other:GetFactionValue(e.self) >= 0) then -- Needs indifferent + e.self:Say("Then your first lesson shall be the fulfillment of spreading infection and disease. Some of the best carriers of infectious diseases are rodents. Take this vial containing a slow and painful infection and give it to one of the pregnant giant rodents that can be found outside in the Steamfont Mountains. This way you can spread the disease to not only those creatures which cross the mother's path but also to those who cross the paths of her future offspring. Bring me the empty vial when the task has been completed."); + e.other:SummonCursorItem(10262); -- vial of infectious disease + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("components")) then + if(e.other:GetFactionValue(e.self) >= 0) then -- Needs indifferent + e.self:Say("The recipe we use to make the plague rat disease is fairly simple. We could easily extract the fluids from the infected rat livers but that would be counterproductive to our cause since it would require the deaths of our rodent carriers. Instead, I need you to collect two parts diseased bone marrow, one sprig of wormwood and one part gnomish spirits to be used as a medium. When you have combined all the components in the container I have provided, return it to me so that we may continue to spread the disease!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18769})) then -- Stained Note + e.self:Say("Join us in fulfilling teh will of Bertoxxulous. You can train with us here, in the shadows of the Abbey. Wear this tunic to help conceal your true identity."); + e.other:Faction(e.self,238,100,0); -- Dark reflection + e.other:Faction(e.self,245,-10,0); -- eldritch collective + e.other:Faction(e.self,255,-10,0); -- gem choppers + e.other:Faction(e.self,240,-10,0); -- Deepmuses + e.other:QuestReward(e.self,0,0,0,0,13518,20); -- Tin Patched Tunic* + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10263})) then -- empty infectious vial + e.self:Say("I hope you enjoyed the thrill of your first lesson and the awakening of your vision. Now you must prove your utility to our society. Take this airtight container and gather the [components] for another dose of the plague rat disease."); + e.other:Faction(e.self,238,50); -- dark reflection + e.other:Faction(e.self,245,-5); -- eldritch collective + e.other:Faction(e.self,255,-5); -- gem choppers + e.other:Faction(e.self,240,-5); -- king ak'anon + e.other:QuestReward(e.self,0,0,0,0,17357,150); -- airtight metal box + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10266})) then + e.self:Say("It appears that you truly seek to expand your vision into the Dark Reflection, " .. e.other:GetCleanName() .. ". I grant you the Initiate Symbol of Bertoxxulous!"); + e.other:Faction(e.self,238,25); -- Dark reflection + e.other:Faction(e.self,245,-2); -- eldritch collective + e.other:Faction(e.self,255,-2); -- gem choppers + e.other:Faction(e.self,240,-2); -- king ak'anon + e.other:QuestReward(e.self,0,0,0,0,1390,200); -- Initiate symbol of Bertoxxulous + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Garret_Zethkog.lua b/akanon/Garret_Zethkog.lua new file mode 100644 index 0000000..2fa9940 --- /dev/null +++ b/akanon/Garret_Zethkog.lua @@ -0,0 +1,30 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail " .. e.other:GetCleanName() .. "! I am Garret Zethkog, first Shadowknight of the Dark Reflection. Long ago I made the journey far to the west to the human city of Qeynos. In the catacombs of the Bloodsabres, human disciples of the Plague Lord, Bertoxxulous. I studied the ways of the Shadowknight. I have returned to Ak'Anon with this knowledge and now tutor young gnomes that have [heard the calling] of the Dark Reflection in the ways of a Dark Knight of Bertoxxulous."); + elseif(e.message:findi("heard the calling")) then + e.self:Say("Bertoxxulous has gifted his faithful with the sight of the Dark Reflection, the ability to recognize the power of disease and decay and its importance as a catalyst of change and progress. We Shadowknights of the Dark Reflection are the champions of the Plague Bringer. It is our duty to embrace our gifts and use them to act as the agents of Bertoxxulous, doing his bidding unquestioningly. There are many however who oppose the Plague Lord and his servants. They do not understand the importance of our existence and we must [defend ourselves] against these foes lest they would have us destroyed."); + elseif(e.message:findi("defend ourselves")) then + e.self:Say("Every young Knight of the Dark Reflection must first learn the basics of combat and acquire a suit of armor to help turn aside the weapons of our enemies. Take this parchment to my sister Mimtia Zethkog and she will assist you in acquiring a set of suitable armor for a young shadowknight. Once you have been suitably outfitted return to me and I will instruct you on your [next task]."); + e.other:SummonCursorItem(10987); -- Item: Parchment to Mimtia + elseif(e.message:findi("next task")) then + e.self:Say("There are many through out Norrath who oppose the Dark Reflection. Even here in our home, Ak'Anon, the Eldrich Collective and the Deep Muses oppose us and wish to see us exiled or eradicated. A Paladin of the Deep Muses, Donlix Bonkle, has been leading a group of zealots that is hunting young members of the Dark Reflection in the Steamfont Mountains. Seek Donlix Bonkle and eliminate him. When you have accomplished this task return to me with Donlix's Short Sword."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 10991})) then + e.self:Say("Ah! Donlix's sword! You have done well to bring this to me... but oh! Look at your corruption seep into it. I think now this sword belongs to you. Use it well."); + e.other:QuestReward(e.self,0,0,0,0,11078); -- Item: Plague Knight Short Sword + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 18434})) then -- Gnome Shadowknight Note + e.self:Say("Welcome to the Dark Reflection, " .. e.other:GetCleanName() .. " ! Take this tunic as a gift for your desire to serve the will of Bertoxxulous, The Plague Lord. Beware of the followers of Brell Serilis, they would see us members of the Dark Reflection exiled from Ak'Anon."); + e.other:Faction(e.self,238,100,0); -- Dark reflection + e.other:Faction(e.self,245,-10,0); -- eldritch collective + e.other:Faction(e.self,255,-10,0); -- gem choppers + e.other:Faction(e.self,240,-10,0); -- Deepmuses + e.other:QuestReward(e.self,0,0,0,0,13518,20); -- Tin Patched Tunic* + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Glerbella_Gibblix.lua b/akanon/Glerbella_Gibblix.lua new file mode 100644 index 0000000..b33193a --- /dev/null +++ b/akanon/Glerbella_Gibblix.lua @@ -0,0 +1,35 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if (e.message:findi("plague raiser helm")) then + e.self:Say("To assemble a Plague Raiser Helm you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Helm Mold. Once that is done combine the Crude Bronze Helm with a Ruined Coyote Pelt and two Yellow Recluse Eyes in the Mail Assembly Kit."); + e.other:SummonCursorItem(19631); -- Item: Crude Helm Mold + elseif (e.message:findi("plague raiser gauntlets")) then + e.self:Say("To assemble Plague Raiser Gauntlets you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this crude Gauntlet Mold. Once that is done combine the Crude Bronze Gauntlets with a Ruined Coyote Pelt and two Clockwork Spider Mesh in the Mail Assembly Kit."); + e.other:SummonCursorItem(19633); -- Item: Crude Gauntlets Mold + elseif (e.message:findi("plague raiser bracer")) then + e.self:Say("To assemble a Plague Raiser Mail Bracer you will need to obtain a brick of crude bronze and smelt it in a forge with a Water Flask and this Crude Bracer Mold. Once that is done, combine the Crude Bronze Bracer with a Ruined Coyote Pelt and a Clockwork Spider Mesh in the Mail Assembly Kit."); + e.other:SummonCursorItem(19632); -- Item: Crude Bracer Mold + elseif (e.message:findi("plague raiser boots")) then + e.self:Say("To assemble Plague Raiser Mail Boots you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this crude Boot Mold. Once that is done combine the Crude Bronze Boots with two Ruined Coyote Pelts, and two Clockwork Spider Mesh in the Mail Assembly Kit."); + e.other:SummonCursorItem(19634); -- Item: Crude Boot Mold + elseif (e.message:findi("plague raiser vambraces")) then + e.self:Say("To assemble Plague Raiser Vambraces you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Vambrace Mold. Once that is done combine the Crude Bronze Vambraces with a Low Quality Coyote Pelt and three Clockwork Spider Mesh in the Mail Assembly Kit."); + e.other:SummonCursorItem(19635); -- Item: Crude Vambrace Mold + elseif (e.message:findi("plague raiser greaves")) then + e.self:Say("To assemble Plague Raiser Greaves you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Greaves Mold. Once that is done combine the Crude Bronze Greaves with two Low Quality Coyote Pelts and three Clockwork Spider Mesh in the Mail Assembly Kit."); + e.other:SummonCursorItem(19636); -- Item: Crude Greaves Mold + elseif (e.message:findi("plague raiser breastplate")) then + e.self:Say("To assemble a Plague Raiser Breastplate you will need to obtain four bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Breastplate Mold. Once that is done combine the Crude Bronze Breastplate with a Coyote Pelt, a Clockwork Spider Thorax Plate, and two Ebon Drake Wings in the Mail Assembly Kit."); + e.other:SummonCursorItem(19637); -- Item: Crude Breastplate Mold + end +end + +function event_trade(e) + local item_lib = require("items"); + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 10989})) then + e.self:Say("Hail " .. e.other:GetCleanName() .. "! You must be one of Derthix new disciples. Derthix has asked me to help get you outfitted in a suit of armor to protect you from the weapons of our foes. I have assembled a kit for you that will allow you to construct the armor pieces once you have gathered the necessary components. The required components vary according to which piece of Plague Raiser Armor you are planning on assembling. Do you wish to craft a [plague raiser helm], a [plague raiser bracer], [plague raiser gauntlets], [plague raiser boots], [plague raiser vambraces], [plague raiser greaves], or a [plague raiser breastplate]."); + e.other:QuestReward(e.self,0,0,0,0,17124); -- Mail Assembly Kit + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Guide_I.lua b/akanon/Guide_I.lua new file mode 100644 index 0000000..de6fe46 --- /dev/null +++ b/akanon/Guide_I.lua @@ -0,0 +1,47 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFaction(e.self) > 7) then + e.self:Say("Click... Warning. You are not an ally of the state of Ak'Anon. Further queries may result in death. Have a nice day."); + else + e.self:Say("Greetings, lost soul. I am a guide, automaton, series G. I can assist you by leading you to all the important destinations in Ak'Anon. All you need to do is state a valid destination... Bzzz... Click!"); + end + elseif(e.message:findi("exit") or e.message:findi("entrance")) then + e.self:Say("Click... The Steamfont Mountains may be accessed through the tunnel. Please come back."); + eq.move_to(-34,4,4,0,false); + elseif(e.message:findi("warrior")) then + e.self:Say("Gemchopper Hall is the headquarters of the Gemchoppers, the warriors of Ak'Anon. All clockworks and Watchmen operations are directed by the great Gemchopper guild masters. Have a grand visit!"); + eq.move_to(-469,958,-28,0,false); + elseif(e.message:findi("cleric")) then + e.self:Say("'The Abbey of Deep Musing serves as a shrine to both Brell Serilis and Fizzlethorpe Bristlebane. It is here that one can find healing, if desired. Enjoy your visit."); + eq.move_to(-540,1401,-79,128,false); + elseif(e.message:findi("wizard") or e.message:findi("magician") or e.message:findi("enchanter")) then + e.self:Say("The Library of Mechanimagica is the home of the Eldritch Collective, the practitioners of all positive circles of magic. The Eldritch Collective's members are the chief designers of all of Ak'Anon's wondrous machines. Enjoy your visit."); + eq.move_to(-769,1212,-24,172,false); + elseif(e.message:findi("king")) then + e.self:Say("Click! Whirr... Ak'Anon Palace is home to the throne of his majesty, King Ak'Anon. All visitors to the palace must first report to Receptionist VI. Click. The palace can be found to the right of the forward structure. Have a pleasant visit."); + eq.move_to(-367,903,-6,64,false); + elseif(e.message:findi("zoo")) then + e.self:Say("Click... The Grand Zoo of Ak'Anon is home to some of the rarest creatures in Norrath. Inside you will find the likes of minotaurs, tigers and bears, among others. Please do not feed the animals. City Code, Section 3465."); + eq.move_to(-844,1300,-30,172,false); + elseif(e.message:findi("armor") or e.message:findi("forge")) then + e.self:Say("Welcome to the Forge of Defiance. Within these walls, the finest armor in all of Norrath is shaped. Prices are reasonable and the smiths are friendly. Spend wisely!"); + eq.move_to(-740,1240,-26,172,false); + elseif(e.message:findi("works")) then + e.self:Say("Click! The Works is the main supplier of all the essentials for venturing into the wilds of the Steamfont Mountains and beyond... Spend wisely."); + eq.move_to(152,717,-26,0,false); + elseif(e.message:findi("weapon")) then + e.self:Say("Click... The Tools of Battle is the finest supplier of weapons on Faydwer. Spend wisely."); + eq.move_to(-724,1300,-26,128,false); + elseif(e.message:findi("scrapyard")) then + e.self:Say("The scrapyard is located down the path and through the tunnel on the right. It is here one can discard unwanted refuse, sometimes for a price. Watch your step."); + eq.move_to(-541,1420,-6,0,false); + elseif(e.message:findi("gatehouse") or e.message:findi("repair")) then + e.self:Say("The Gatehouse serves as the repair shop for all automatons in Ak'Anon. It is also the last line of defense. Enjoy your visit."); + eq.move_to(21,236,-26,64,false); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Guide_II.lua b/akanon/Guide_II.lua new file mode 100644 index 0000000..de6fe46 --- /dev/null +++ b/akanon/Guide_II.lua @@ -0,0 +1,47 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFaction(e.self) > 7) then + e.self:Say("Click... Warning. You are not an ally of the state of Ak'Anon. Further queries may result in death. Have a nice day."); + else + e.self:Say("Greetings, lost soul. I am a guide, automaton, series G. I can assist you by leading you to all the important destinations in Ak'Anon. All you need to do is state a valid destination... Bzzz... Click!"); + end + elseif(e.message:findi("exit") or e.message:findi("entrance")) then + e.self:Say("Click... The Steamfont Mountains may be accessed through the tunnel. Please come back."); + eq.move_to(-34,4,4,0,false); + elseif(e.message:findi("warrior")) then + e.self:Say("Gemchopper Hall is the headquarters of the Gemchoppers, the warriors of Ak'Anon. All clockworks and Watchmen operations are directed by the great Gemchopper guild masters. Have a grand visit!"); + eq.move_to(-469,958,-28,0,false); + elseif(e.message:findi("cleric")) then + e.self:Say("'The Abbey of Deep Musing serves as a shrine to both Brell Serilis and Fizzlethorpe Bristlebane. It is here that one can find healing, if desired. Enjoy your visit."); + eq.move_to(-540,1401,-79,128,false); + elseif(e.message:findi("wizard") or e.message:findi("magician") or e.message:findi("enchanter")) then + e.self:Say("The Library of Mechanimagica is the home of the Eldritch Collective, the practitioners of all positive circles of magic. The Eldritch Collective's members are the chief designers of all of Ak'Anon's wondrous machines. Enjoy your visit."); + eq.move_to(-769,1212,-24,172,false); + elseif(e.message:findi("king")) then + e.self:Say("Click! Whirr... Ak'Anon Palace is home to the throne of his majesty, King Ak'Anon. All visitors to the palace must first report to Receptionist VI. Click. The palace can be found to the right of the forward structure. Have a pleasant visit."); + eq.move_to(-367,903,-6,64,false); + elseif(e.message:findi("zoo")) then + e.self:Say("Click... The Grand Zoo of Ak'Anon is home to some of the rarest creatures in Norrath. Inside you will find the likes of minotaurs, tigers and bears, among others. Please do not feed the animals. City Code, Section 3465."); + eq.move_to(-844,1300,-30,172,false); + elseif(e.message:findi("armor") or e.message:findi("forge")) then + e.self:Say("Welcome to the Forge of Defiance. Within these walls, the finest armor in all of Norrath is shaped. Prices are reasonable and the smiths are friendly. Spend wisely!"); + eq.move_to(-740,1240,-26,172,false); + elseif(e.message:findi("works")) then + e.self:Say("Click! The Works is the main supplier of all the essentials for venturing into the wilds of the Steamfont Mountains and beyond... Spend wisely."); + eq.move_to(152,717,-26,0,false); + elseif(e.message:findi("weapon")) then + e.self:Say("Click... The Tools of Battle is the finest supplier of weapons on Faydwer. Spend wisely."); + eq.move_to(-724,1300,-26,128,false); + elseif(e.message:findi("scrapyard")) then + e.self:Say("The scrapyard is located down the path and through the tunnel on the right. It is here one can discard unwanted refuse, sometimes for a price. Watch your step."); + eq.move_to(-541,1420,-6,0,false); + elseif(e.message:findi("gatehouse") or e.message:findi("repair")) then + e.self:Say("The Gatehouse serves as the repair shop for all automatons in Ak'Anon. It is also the last line of defense. Enjoy your visit."); + eq.move_to(21,236,-26,64,false); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Guide_III.lua b/akanon/Guide_III.lua new file mode 100644 index 0000000..de6fe46 --- /dev/null +++ b/akanon/Guide_III.lua @@ -0,0 +1,47 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFaction(e.self) > 7) then + e.self:Say("Click... Warning. You are not an ally of the state of Ak'Anon. Further queries may result in death. Have a nice day."); + else + e.self:Say("Greetings, lost soul. I am a guide, automaton, series G. I can assist you by leading you to all the important destinations in Ak'Anon. All you need to do is state a valid destination... Bzzz... Click!"); + end + elseif(e.message:findi("exit") or e.message:findi("entrance")) then + e.self:Say("Click... The Steamfont Mountains may be accessed through the tunnel. Please come back."); + eq.move_to(-34,4,4,0,false); + elseif(e.message:findi("warrior")) then + e.self:Say("Gemchopper Hall is the headquarters of the Gemchoppers, the warriors of Ak'Anon. All clockworks and Watchmen operations are directed by the great Gemchopper guild masters. Have a grand visit!"); + eq.move_to(-469,958,-28,0,false); + elseif(e.message:findi("cleric")) then + e.self:Say("'The Abbey of Deep Musing serves as a shrine to both Brell Serilis and Fizzlethorpe Bristlebane. It is here that one can find healing, if desired. Enjoy your visit."); + eq.move_to(-540,1401,-79,128,false); + elseif(e.message:findi("wizard") or e.message:findi("magician") or e.message:findi("enchanter")) then + e.self:Say("The Library of Mechanimagica is the home of the Eldritch Collective, the practitioners of all positive circles of magic. The Eldritch Collective's members are the chief designers of all of Ak'Anon's wondrous machines. Enjoy your visit."); + eq.move_to(-769,1212,-24,172,false); + elseif(e.message:findi("king")) then + e.self:Say("Click! Whirr... Ak'Anon Palace is home to the throne of his majesty, King Ak'Anon. All visitors to the palace must first report to Receptionist VI. Click. The palace can be found to the right of the forward structure. Have a pleasant visit."); + eq.move_to(-367,903,-6,64,false); + elseif(e.message:findi("zoo")) then + e.self:Say("Click... The Grand Zoo of Ak'Anon is home to some of the rarest creatures in Norrath. Inside you will find the likes of minotaurs, tigers and bears, among others. Please do not feed the animals. City Code, Section 3465."); + eq.move_to(-844,1300,-30,172,false); + elseif(e.message:findi("armor") or e.message:findi("forge")) then + e.self:Say("Welcome to the Forge of Defiance. Within these walls, the finest armor in all of Norrath is shaped. Prices are reasonable and the smiths are friendly. Spend wisely!"); + eq.move_to(-740,1240,-26,172,false); + elseif(e.message:findi("works")) then + e.self:Say("Click! The Works is the main supplier of all the essentials for venturing into the wilds of the Steamfont Mountains and beyond... Spend wisely."); + eq.move_to(152,717,-26,0,false); + elseif(e.message:findi("weapon")) then + e.self:Say("Click... The Tools of Battle is the finest supplier of weapons on Faydwer. Spend wisely."); + eq.move_to(-724,1300,-26,128,false); + elseif(e.message:findi("scrapyard")) then + e.self:Say("The scrapyard is located down the path and through the tunnel on the right. It is here one can discard unwanted refuse, sometimes for a price. Watch your step."); + eq.move_to(-541,1420,-6,0,false); + elseif(e.message:findi("gatehouse") or e.message:findi("repair")) then + e.self:Say("The Gatehouse serves as the repair shop for all automatons in Ak'Anon. It is also the last line of defense. Enjoy your visit."); + eq.move_to(21,236,-26,64,false); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Guide_IV.lua b/akanon/Guide_IV.lua new file mode 100644 index 0000000..de6fe46 --- /dev/null +++ b/akanon/Guide_IV.lua @@ -0,0 +1,47 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFaction(e.self) > 7) then + e.self:Say("Click... Warning. You are not an ally of the state of Ak'Anon. Further queries may result in death. Have a nice day."); + else + e.self:Say("Greetings, lost soul. I am a guide, automaton, series G. I can assist you by leading you to all the important destinations in Ak'Anon. All you need to do is state a valid destination... Bzzz... Click!"); + end + elseif(e.message:findi("exit") or e.message:findi("entrance")) then + e.self:Say("Click... The Steamfont Mountains may be accessed through the tunnel. Please come back."); + eq.move_to(-34,4,4,0,false); + elseif(e.message:findi("warrior")) then + e.self:Say("Gemchopper Hall is the headquarters of the Gemchoppers, the warriors of Ak'Anon. All clockworks and Watchmen operations are directed by the great Gemchopper guild masters. Have a grand visit!"); + eq.move_to(-469,958,-28,0,false); + elseif(e.message:findi("cleric")) then + e.self:Say("'The Abbey of Deep Musing serves as a shrine to both Brell Serilis and Fizzlethorpe Bristlebane. It is here that one can find healing, if desired. Enjoy your visit."); + eq.move_to(-540,1401,-79,128,false); + elseif(e.message:findi("wizard") or e.message:findi("magician") or e.message:findi("enchanter")) then + e.self:Say("The Library of Mechanimagica is the home of the Eldritch Collective, the practitioners of all positive circles of magic. The Eldritch Collective's members are the chief designers of all of Ak'Anon's wondrous machines. Enjoy your visit."); + eq.move_to(-769,1212,-24,172,false); + elseif(e.message:findi("king")) then + e.self:Say("Click! Whirr... Ak'Anon Palace is home to the throne of his majesty, King Ak'Anon. All visitors to the palace must first report to Receptionist VI. Click. The palace can be found to the right of the forward structure. Have a pleasant visit."); + eq.move_to(-367,903,-6,64,false); + elseif(e.message:findi("zoo")) then + e.self:Say("Click... The Grand Zoo of Ak'Anon is home to some of the rarest creatures in Norrath. Inside you will find the likes of minotaurs, tigers and bears, among others. Please do not feed the animals. City Code, Section 3465."); + eq.move_to(-844,1300,-30,172,false); + elseif(e.message:findi("armor") or e.message:findi("forge")) then + e.self:Say("Welcome to the Forge of Defiance. Within these walls, the finest armor in all of Norrath is shaped. Prices are reasonable and the smiths are friendly. Spend wisely!"); + eq.move_to(-740,1240,-26,172,false); + elseif(e.message:findi("works")) then + e.self:Say("Click! The Works is the main supplier of all the essentials for venturing into the wilds of the Steamfont Mountains and beyond... Spend wisely."); + eq.move_to(152,717,-26,0,false); + elseif(e.message:findi("weapon")) then + e.self:Say("Click... The Tools of Battle is the finest supplier of weapons on Faydwer. Spend wisely."); + eq.move_to(-724,1300,-26,128,false); + elseif(e.message:findi("scrapyard")) then + e.self:Say("The scrapyard is located down the path and through the tunnel on the right. It is here one can discard unwanted refuse, sometimes for a price. Watch your step."); + eq.move_to(-541,1420,-6,0,false); + elseif(e.message:findi("gatehouse") or e.message:findi("repair")) then + e.self:Say("The Gatehouse serves as the repair shop for all automatons in Ak'Anon. It is also the last line of defense. Enjoy your visit."); + eq.move_to(21,236,-26,64,false); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Guide_V.lua b/akanon/Guide_V.lua new file mode 100644 index 0000000..de6fe46 --- /dev/null +++ b/akanon/Guide_V.lua @@ -0,0 +1,47 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFaction(e.self) > 7) then + e.self:Say("Click... Warning. You are not an ally of the state of Ak'Anon. Further queries may result in death. Have a nice day."); + else + e.self:Say("Greetings, lost soul. I am a guide, automaton, series G. I can assist you by leading you to all the important destinations in Ak'Anon. All you need to do is state a valid destination... Bzzz... Click!"); + end + elseif(e.message:findi("exit") or e.message:findi("entrance")) then + e.self:Say("Click... The Steamfont Mountains may be accessed through the tunnel. Please come back."); + eq.move_to(-34,4,4,0,false); + elseif(e.message:findi("warrior")) then + e.self:Say("Gemchopper Hall is the headquarters of the Gemchoppers, the warriors of Ak'Anon. All clockworks and Watchmen operations are directed by the great Gemchopper guild masters. Have a grand visit!"); + eq.move_to(-469,958,-28,0,false); + elseif(e.message:findi("cleric")) then + e.self:Say("'The Abbey of Deep Musing serves as a shrine to both Brell Serilis and Fizzlethorpe Bristlebane. It is here that one can find healing, if desired. Enjoy your visit."); + eq.move_to(-540,1401,-79,128,false); + elseif(e.message:findi("wizard") or e.message:findi("magician") or e.message:findi("enchanter")) then + e.self:Say("The Library of Mechanimagica is the home of the Eldritch Collective, the practitioners of all positive circles of magic. The Eldritch Collective's members are the chief designers of all of Ak'Anon's wondrous machines. Enjoy your visit."); + eq.move_to(-769,1212,-24,172,false); + elseif(e.message:findi("king")) then + e.self:Say("Click! Whirr... Ak'Anon Palace is home to the throne of his majesty, King Ak'Anon. All visitors to the palace must first report to Receptionist VI. Click. The palace can be found to the right of the forward structure. Have a pleasant visit."); + eq.move_to(-367,903,-6,64,false); + elseif(e.message:findi("zoo")) then + e.self:Say("Click... The Grand Zoo of Ak'Anon is home to some of the rarest creatures in Norrath. Inside you will find the likes of minotaurs, tigers and bears, among others. Please do not feed the animals. City Code, Section 3465."); + eq.move_to(-844,1300,-30,172,false); + elseif(e.message:findi("armor") or e.message:findi("forge")) then + e.self:Say("Welcome to the Forge of Defiance. Within these walls, the finest armor in all of Norrath is shaped. Prices are reasonable and the smiths are friendly. Spend wisely!"); + eq.move_to(-740,1240,-26,172,false); + elseif(e.message:findi("works")) then + e.self:Say("Click! The Works is the main supplier of all the essentials for venturing into the wilds of the Steamfont Mountains and beyond... Spend wisely."); + eq.move_to(152,717,-26,0,false); + elseif(e.message:findi("weapon")) then + e.self:Say("Click... The Tools of Battle is the finest supplier of weapons on Faydwer. Spend wisely."); + eq.move_to(-724,1300,-26,128,false); + elseif(e.message:findi("scrapyard")) then + e.self:Say("The scrapyard is located down the path and through the tunnel on the right. It is here one can discard unwanted refuse, sometimes for a price. Watch your step."); + eq.move_to(-541,1420,-6,0,false); + elseif(e.message:findi("gatehouse") or e.message:findi("repair")) then + e.self:Say("The Gatehouse serves as the repair shop for all automatons in Ak'Anon. It is also the last line of defense. Enjoy your visit."); + eq.move_to(21,236,-26,64,false); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Guide_VI.lua b/akanon/Guide_VI.lua new file mode 100644 index 0000000..de6fe46 --- /dev/null +++ b/akanon/Guide_VI.lua @@ -0,0 +1,47 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFaction(e.self) > 7) then + e.self:Say("Click... Warning. You are not an ally of the state of Ak'Anon. Further queries may result in death. Have a nice day."); + else + e.self:Say("Greetings, lost soul. I am a guide, automaton, series G. I can assist you by leading you to all the important destinations in Ak'Anon. All you need to do is state a valid destination... Bzzz... Click!"); + end + elseif(e.message:findi("exit") or e.message:findi("entrance")) then + e.self:Say("Click... The Steamfont Mountains may be accessed through the tunnel. Please come back."); + eq.move_to(-34,4,4,0,false); + elseif(e.message:findi("warrior")) then + e.self:Say("Gemchopper Hall is the headquarters of the Gemchoppers, the warriors of Ak'Anon. All clockworks and Watchmen operations are directed by the great Gemchopper guild masters. Have a grand visit!"); + eq.move_to(-469,958,-28,0,false); + elseif(e.message:findi("cleric")) then + e.self:Say("'The Abbey of Deep Musing serves as a shrine to both Brell Serilis and Fizzlethorpe Bristlebane. It is here that one can find healing, if desired. Enjoy your visit."); + eq.move_to(-540,1401,-79,128,false); + elseif(e.message:findi("wizard") or e.message:findi("magician") or e.message:findi("enchanter")) then + e.self:Say("The Library of Mechanimagica is the home of the Eldritch Collective, the practitioners of all positive circles of magic. The Eldritch Collective's members are the chief designers of all of Ak'Anon's wondrous machines. Enjoy your visit."); + eq.move_to(-769,1212,-24,172,false); + elseif(e.message:findi("king")) then + e.self:Say("Click! Whirr... Ak'Anon Palace is home to the throne of his majesty, King Ak'Anon. All visitors to the palace must first report to Receptionist VI. Click. The palace can be found to the right of the forward structure. Have a pleasant visit."); + eq.move_to(-367,903,-6,64,false); + elseif(e.message:findi("zoo")) then + e.self:Say("Click... The Grand Zoo of Ak'Anon is home to some of the rarest creatures in Norrath. Inside you will find the likes of minotaurs, tigers and bears, among others. Please do not feed the animals. City Code, Section 3465."); + eq.move_to(-844,1300,-30,172,false); + elseif(e.message:findi("armor") or e.message:findi("forge")) then + e.self:Say("Welcome to the Forge of Defiance. Within these walls, the finest armor in all of Norrath is shaped. Prices are reasonable and the smiths are friendly. Spend wisely!"); + eq.move_to(-740,1240,-26,172,false); + elseif(e.message:findi("works")) then + e.self:Say("Click! The Works is the main supplier of all the essentials for venturing into the wilds of the Steamfont Mountains and beyond... Spend wisely."); + eq.move_to(152,717,-26,0,false); + elseif(e.message:findi("weapon")) then + e.self:Say("Click... The Tools of Battle is the finest supplier of weapons on Faydwer. Spend wisely."); + eq.move_to(-724,1300,-26,128,false); + elseif(e.message:findi("scrapyard")) then + e.self:Say("The scrapyard is located down the path and through the tunnel on the right. It is here one can discard unwanted refuse, sometimes for a price. Watch your step."); + eq.move_to(-541,1420,-6,0,false); + elseif(e.message:findi("gatehouse") or e.message:findi("repair")) then + e.self:Say("The Gatehouse serves as the repair shop for all automatons in Ak'Anon. It is also the last line of defense. Enjoy your visit."); + eq.move_to(21,236,-26,64,false); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Iony_Gredlong.lua b/akanon/Iony_Gredlong.lua new file mode 100644 index 0000000..17165a1 --- /dev/null +++ b/akanon/Iony_Gredlong.lua @@ -0,0 +1,55 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It is very nice to meet you " .. e.other:GetCleanName() .. ". I am Iony Gredlong Priestess of the Underfoot. I coordinate all the training for new clerics here in the Deep Musing. If you are a [cleric] then I might just have some tests for you that will challenge your wisdom as well as your fighting abilities."); + elseif(e.message:findi("cleric")) then + e.self:Say("Well you would certainly be eligible for my training then young " .. e.other:GetCleanName() .. ". I have a number of armor recipes that I give to young clerics to make sure that when they leave the comfort of the Steamfont Mountains they are ready for whatever battles they may face. If you are [interested in creating your own armor] then all you must do is simply ask and I will give you instructions to get started."); + elseif(e.message:findi("interested in creating")) then + e.self:Say("I am always happy to see an eager young one like yourself! Brell certainly takes pride in all young gnomes that draw power from him to give life so you should consider yourself very special. To create your own armor you are going to collect [various items] from Ak`Anon and Steamfont. You will then combine them in this assembly kit. Once you have made a material you will place it in a forge along with molds that I will present to you to create your armor."); + e.other:SummonCursorItem(17253); -- Item: Holy Assembly Kit + elseif(e.message:findi("various items")) then + e.self:Say("There are numerous items that you will need to collect and combine in your kit. I will present you for the recipe for Shortnoble Platemail [Helms], [Bracers], [Armguards], [Boots], [Greaves], [Gauntlets] and [Breastplates]. When you are ready to attempt a specific piece please let me know what piece you want to [craft] and I will give you the necessary mold along with the recipe."); + elseif(e.message:findi("helm")) then + e.self:Say("Getting something on top of your head is a wise idea " .. e.other:GetCleanName() .. ". To create your helm material you will need to combine 2 Bricks of Crude Bronze, 1 Rat Whisker, 1 Spiderling Silk and 1 Water Flask in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Shortnoble Platemail Helm"); + e.other:SummonCursorItem(22610); -- Item: An Enchanted Helm Mold + elseif(e.message:findi("bracer")) then + e.self:Say("Bracers are very important to keep your wrists safe in battle " .. e.other:GetCleanName() .. ". To create your bracer material you will need to combine 1 Brick of Crude Bronze, 1 Size 4 Gizmo, 1 Clockwork Spider Mesh and 1 Cloth Choker in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Shortnoble Platemail Bracer."); + e.other:SummonCursorItem(22611); -- Item: An Enchanted Bracer Mold + elseif(e.message:findi("boots")) then + e.self:Say("Well you cant go running around the Steamfont Mountains with no shoes on now can you. To create your boot material you will need to combine 3 Bricks of Crude Bronze, 1 Kobold Tooth, 2 Spiderling Silks and 1 Mead in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Shortnoble Platemail Boots."); + e.other:SummonCursorItem(22612); -- Item: An Enchanted Boot Mold + elseif(e.message:findi("armguards")) then + e.self:Say("In order to keep those big muscles that all gnomes like us are blessed with you will definitely need some Armguards! To create your armguard material you will need to combine 2 Bricks of Crude Bronze, 2 Harpy Wings and 1 Snake Fang in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Shortnoble Platemail Armguards."); + e.other:SummonCursorItem(22613); -- Item: An Enchanted Armguard Mold + elseif(e.message:findi("greaves")) then + e.self:Say("Pants are most definitely an essential armor piece for any young cleric in training. To create your greaves material you will need to combine 4 Bricks of Crude Bronze, 1 High Quality Cat Pelt, 1 Minotaur Scalp, 1 Bottle and the Torn Cloak of Faerron in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Shortnoble Platemail Greaves."); + e.other:SummonCursorItem(22614); -- Item: An Enchanted Greaves Mold + elseif(e.message:findi("gauntlets")) then + e.self:Say("Keeping your hands well protected is very important while you are in training. To create your gauntlets material you will need to combine 3 Bricks of Crude Bronze, 1 Yellow Reculse Silk, 1 Brownie Brain and 2 Mountain Lion Claws in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Shortnoble Platemail Gauntlets."); + e.other:SummonCursorItem(22615); -- Item: An Enchanted Gauntlet Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("I believe you are ready to craft and gather the components for the most difficult piece of Shortnoble Platemail. To create your breastplate material you will need to combine 5 Bricks of Crude Bronze, 1 Clockwork Spider Thorax Plate, 1 Brownie Parts, 1 Aviak Talon 1 Scrap Metal and the evil Halorniop`s Insignia in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Shortnoble Platemail Breastplate. Return to me for one [final favor] I have to ask of you after you have completed your breastplate."); + e.other:SummonCursorItem(22616); -- Item: An Enchanted Breastplate Mold + elseif(e.message:findi("final favor")) then + e.self:Say("I thank you for returning to me young " .. e.other:GetCleanName() .. ". I must say that it is now quite clear that you are very capable of completing any task I should assign you due to your eagerness to learn. I am currently in need of a few specific items to craft a weapon worthy of any servant of Brell. It is my hope that I can pass these out to our new recruits quite soon. Will you [collect the items I require]?"); + elseif(e.message:findi("collect the items")) then + e.self:Say("I need 3 Flawless Harpy Claws and 1 Ebon Drake Backbone still to have all the items necessary to craft this new mace. Once I have these items I can make a Shortnobles Walking Staff. For your trouble I will offer you my first staff made should I be able to create one. I hope to see you soon!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9105,item2 = 9105,item3 = 9105,item4 = 9106})) then + e.self:Say("Thank you! Here, take this staff and good luck on your journey."); -- Text made up + e.other:QuestReward(e.self,0,0,0,0,9107); -- Walking Staff of the Shortnoble + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18775})) then + e.self:Say("Welcome to the Abbey of Deep Musing. Here you can train and raise your abilities to the peak of perfection. Take this tunic and wear it with pride."); + e.other:Faction(e.self,240,100,0); -- Deep Muses + e.other:Faction(e.self,288,15,0); -- Merchants of Ak'Anon + e.other:Faction(e.self,255,15,0); -- Gem Choppers + e.other:Faction(e.self,238,-15,0); -- Dark Reflection + e.other:QuestReward(e.self,0,0,0,0,13517,20); -- worn felt tunic + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Jarah_Reskan.lua b/akanon/Jarah_Reskan.lua new file mode 100644 index 0000000..b6653df --- /dev/null +++ b/akanon/Jarah_Reskan.lua @@ -0,0 +1,47 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, child. Welcome to Gemchopper Hall. I trust that you are a [warrior], or perhaps you are lost..?"); + elseif(e.message:findi("lost")) then + e.self:Say("One can easily get lost in Ak'Anon. You must get your vision checked. If you are truly lost, I would advise speaking with a mechanical guide. There should be one close by on the main walkway."); + elseif(e.message:findi("warrior")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- Needs amiably or better + e.self:Say("That is good news! We gnomes are not known for our love of battle so it is always good to bring new blood into our ranks. We shall prove our worth as warriors to all other races. For now. there is much to do in Ak'Anon. There are [rogue clockworks] and the [cargo clockwork]."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("You must show a greater allegiance to the Gemchoppers before we can speak with you. Search the hills for rogue clockworks. Captain Compolten shall accept two of their blackboxes and you shall prove your loyalty to our hall."); + else + e.self:Say("You are lucky I do not cut you in half right where you stand. Your actions so far have proven you an enemy to the Gemchoppers. Leave while you still can!"); + end + elseif(e.message:findi("rogue clockworks")) then + e.self:Say("The clockworks are the responsibility of Manik Compolten. Speak with him - I am sure he is here somewhere."); + elseif(e.message:findi("cargo clockwork")) then + e.self:Say("The cargo clockwork is located near the entrance to Ak'Anon in the Steamfont Mountains. It runs a delivery to the windmills every five days at eight in the morning. There have been attacks by a group of highwaymen. They are quite a formidable group. I have offered a reward for their heads. Be very careful if you plan on escorting the cargo clockwork. This trio of bandits is very strong."); + elseif (e.message:findi("blackbox")) then + e.self:Say("If you have a clockwork blackbox which is still intact, take it to [Manik Compolten]. All clockwork matters go through him."); + elseif (e.message:findi("manik compolten")) then + if(e.other:GetFactionValue(e.self) >= 0) then -- Needs indifferent + e.self:Say("Manik is a trainer within this guild. The clockworks are his responsibility. Speak with him - I am sure he is here somewhere."); + else + e.self:Say("You are lucky I do not cut you in half right where you stand. Your actions so far have proven you an enemy to the Gemchoppers. Leave while you still can!"); + end + elseif (e.message:findi("meldrath")) then + e.self:Say("Meldrath is the mad gnome. He used to be a member of the Eldritch Collective. Some say he lost his mind while he was working on a formula he obtained from other worlds. He used to lead the cult called the [Asylum of the Mad]."); + elseif (e.message:findi("asylum")) then + e.self:Say("The Asylum of the Mad was formed by the mad gnome, Meldrath. Under his direction, they were trying to build some giant mechanical titan. We recently sent all of our clockworks into the Steamfont Mountains to destroy their evil cult."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1270,item2 = 1319,item3 = 1323})) then + e.self:Say("I heard our shipment made it back safely. These heads will send a message to any other thief that plans on robbing our cargo shipments. Thank you " .. e.other:GetCleanName() .. ", take this coin as your reward. I’m sorry to say we’re currently out of masks."); + e.other:Faction(e.self,255,2); -- gem chopper + e.other:Faction(e.self,288,1); -- merchants of akanon + e.other:Faction(e.self,333,1); -- king akanon + e.other:Faction(e.self,238,-1); -- dark reflection + e.other:Faction(e.self,1604,-1); -- clan grikbar + e.other:QuestReward(e.self,math.random(9),math.random(9),math.random(5),0,0,1500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Juline_Urncaller.lua b/akanon/Juline_Urncaller.lua new file mode 100644 index 0000000..8519b6e --- /dev/null +++ b/akanon/Juline_Urncaller.lua @@ -0,0 +1,15 @@ +-- Converted to .lua by Speedz + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18773})) then -- Registration Letter + e.self:Say("Welcome! I am Juline Urncaller, I will help to guide you on your path to becoming a powerful enchanter."); + e.other:Faction(e.self,245,100,0); -- eldritch collective + e.other:Faction(e.self,238,-15,0); -- Dark reflection + e.other:Faction(e.self,239,-5,0); -- the dead + e.other:Faction(e.self,255,15,0); -- gem choppers + e.other:Faction(e.self,333,15,0); -- king ak'anon + e.other:QuestReward(e.self,0,0,0,0,13522,20); -- Dirty Gold Felt Robe* + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Kaxon_Frennor.lua b/akanon/Kaxon_Frennor.lua new file mode 100644 index 0000000..3cdc0e2 --- /dev/null +++ b/akanon/Kaxon_Frennor.lua @@ -0,0 +1,31 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail " .. e.other:GetCleanName() .. ". I am Kaxon Frennor, master assassin of the Dark Reflection. I train talented gnomes that feel the calling of the Plaguelord, Bertoxxulous, and wish to [serve as a rogue] of the Dark Reflection. Disease and decay are powerful forces in Norrath that crumble kingdoms and silently kill even the mightiest of heros. It is the calling of the Dark Reflection to sow the seeds of destruction as a catalyst to change. What progress would there be if rulers did not die and clockworks did not malfunction, giving way to greater rulers and better clockworks."); + elseif (e.message:findi("serve as a rogue")) then + e.self:Say("We are the spreaders of disease, the masters of poison, the death that comes silently from the shadows. You must outfit yourself with the tools of a rogue, crafted from the disassembled remains of clockworks that are finished serving the purpose for which they were built. Take this parchment to Rebbie Romblerum, he will assist you in the construction of a suit of armor. When you have been properly outfitted return to me for your [next task]."); + e.other:SummonCursorItem(10988); -- Item: Parchment to Rebbie + elseif (e.message:findi("next task")) then + e.self:Say("There are many of our kind that do not understand the necessity of the Dark Reflection. The Eldrich Collective and The Deep Muses seek to root us out and have us put to death or exiled from Ak'Anon. In the Steamfont Mountains a Rogue of the Deep Muses, Jibble Blexnik, has been hunting and killing young members of the Dark Reflection that venture from Ak'Anon. Find this self-righteous rogue and eliminate him. When you have accomplished this task bring me Jibble's Stiletto."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 10992})) then + e.self:Say("At last that haughty rogue has met his end. Take this Dull Dark Reflection Stiletto and sharpen it in a forge with a sharpening stone. It may take several attempts if you are unfamiliar with the process. Once the blade has been sharpened take the sharpened stiletto to Clockwork Smith XIII with a Giant Rat Pelt and he will put the finishing touches on your new weapon."); + e.other:Faction(e.self,238,10,0); -- Dark reflection + e.other:Faction(e.self,245,-1,0); -- eldritch collective + e.other:Faction(e.self,255,-1,0); -- gem choppers + e.other:Faction(e.self,240,-1,0); -- Deepmuses + e.other:QuestReward(e.self,0,0,0,0,10997,100); -- Item: Dull Dark Reflection Stiletto + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 18705})) then -- Old Folded Letter + e.other:Faction(e.self,238,100,0); -- Dark reflection + e.other:Faction(e.self,245,-10,0); -- eldritch collective + e.other:Faction(e.self,255,-10,0); -- gem choppers + e.other:Faction(e.self,240,-10,0); -- Deepmuses + e.other:QuestReward(e.self,0,0,0,0,13518,20); -- Tin Patched Tunic* + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Kimble_Nogflop.lua b/akanon/Kimble_Nogflop.lua new file mode 100644 index 0000000..dbb911a --- /dev/null +++ b/akanon/Kimble_Nogflop.lua @@ -0,0 +1,28 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings! I am the keeper of this zoo. I advise you to stay on the upper tiers to observe the animals."); + elseif (e.message:findi("regurgitonic")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("I formulate the Regurgitonic myself. My animals kept eating the occasional spectator here and there. Femurs and ribs kept getting stuck inside, not to mention a few platinum pieces. Sometimes my batch would come out wrong and the animals would go berserk!! I hope I got the formula right this time."); + else + e.self:Say("You must show a greater allegiance to the Gemchoppers before we can speak with you. Search the hills for rogue clockworks. Captain Compolten shall accept two of their blackboxes and you shall prove your loyalty to our hall."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13945})) then -- Flask of Nitrates + e.self:Say("The flask of nitrates I sent for!! As was the deal, here is my [Regurgitonic]. Give it to whoever may need it and they will surely cough up whatever may be inside them with no harm to them whatsoever."); + -- confirmed live factions + e.other:Faction(e.self,255,10,0); -- Gem Choppers + e.other:Faction(e.self,288,2,0); -- Merchants of Ak'Anon + e.other:Faction(e.self,333,2,0); -- King Ak'Anon + e.other:Faction(e.self,238,-2,0); -- Dark Reflection + e.other:Faction(e.self,1604,-1,0); -- Clan Grikbar + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(12140,12139),100); -- Bad Regurgitonic or Regurgitonic + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Larkon_Theardor.lua b/akanon/Larkon_Theardor.lua new file mode 100644 index 0000000..2377dd0 --- /dev/null +++ b/akanon/Larkon_Theardor.lua @@ -0,0 +1,94 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings! Welcome to the Library of Mechanimagica. You must be a [current member of the Library] or has my [mind begun to slip]?"); + elseif(e.message:findi("slipping")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- Needs amiably or better + e.self:Say("What!!? That was but a joke. I try to make you feel comfortable with a little levity and you proclaim my mind has gone the way of Meldrath's. Well.. enough frivolity. You will do your part to help in the menial tasks of the Collective. Do you want the [clean tasks] or the [dirty tasks]?"); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("There is much more you must do for the Library of Mechanimagica before such things can be revealed to you. Perhaps fetching minotaur horns and returning them to Professor Theardor will earn you membership to the Library of Mechanimagica."); + else + e.self:Say("You dare to speak to a member of the Eldritch Collective! You had best leave before you find your soul displaced from your body."); + end + elseif(e.message:findi("tasks")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- Needs amiably or better + e.self:Say("Clean.. Dirty.. It matters not. You have upset me with your rude remarks. You will go to the Steamfont Mountains. There you will find Fodin and tell him I have sent you. He will have a nice tidy task for you. A bath!! Be on your way!"); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("There is much more you must do for the Library of Mechanimagica before such things can be revealed to you. Perhaps fetching minotaur horns and returning them to Professor Theardor will earn you membership to the Library of Mechanimagica."); + else + e.self:Say("You dare to speak to a member of the Eldritch Collective! You had best leave before you find your soul displaced from your body."); + end + elseif(e.message:findi("current member of the library")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- Needs amiably or better + e.self:Say("Good. The last thing a member of the Eldritch Collective needs is to lose his mind. Look what happened to Meldrath. Enough chitchat. I am Larkon and it is not my job to teach you. It is my job to direct you to service. We require items and such to complete our studies. We need someone of moderate skill to [gather minotaur horns] and [collect basilisk tongues]."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("There is much more you must do for the Library of Mechanimagica before such things can be revealed to you. Perhaps fetching minotaur horns and returning them to Professor Theardor will earn you membership to the Library of Mechanimagica."); + else + e.self:Say("You dare to speak to a member of the Eldritch Collective! You had best leave before you find your soul displaced from your body."); + end + elseif(e.message:findi("gather minotaur horns")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- Needs amiably or better + e.self:Say("We magicians require the horns of minotaurs. We crush them down and use the powder in many of our tests. Go and fetch two minotaur horns. Do not return empty-handed. I await your return as does your reward."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("There is much more you must do for the Library of Mechanimagica before such things can be revealed to you. Perhaps fetching minotaur horns and returning them to Professor Theardor will earn you membership to the Library of Mechanimagica."); + else + e.self:Say("You dare to speak to a member of the Eldritch Collective! You had best leave before you find your soul displaced from your body."); + end + elseif(e.message:findi("basilisk tongues")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- Needs amiably or better + e.self:Say("Very good of you. Go beyond the land of the gnomes and seek out basilisks. Return four of their tongues to me and I shall share the knowledge of the magicians of the Eldritch Collective."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("There is much more you must do for the Library of Mechanimagica before such things can be revealed to you. Perhaps fetching minotaur horns and returning them to Professor Theardor will earn you membership to the Library of Mechanimagica."); + else + e.self:Say("You dare to speak to a member of the Eldritch Collective! You had best leave before you find your soul displaced from your body."); + end + elseif(e.message:findi("kaladim")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- Needs amiably or better + e.self:Say("We need someone to venture to the dwarven kingdom of Kaladim and speak with Myre of Miner's Guild 628. She has a delivery of special pestles made from bozinite. If you feel up to it, go to her and tell her you are from the Eldritch Collective and desire the bozinite pestles. Return them to me."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("There is much more you must do for the Library of Mechanimagica before such things can be revealed to you. Perhaps fetching minotaur horns and returning them to Professor Theardor will earn you membership to the Library of Mechanimagica."); + else + e.self:Say("You dare to speak to a member of the Eldritch Collective! You had best leave before you find your soul displaced from your body."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I will require two minotaur horns for further studies."; + local text1 = "I believe I called for FOUR basilisk tongues."; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13077, item2 = 13077},1,text)) then -- Minotaur Horn x 2 + e.self:Say("Fine work. You have earned the respect of the Library. Here is a small token of our appreciation. We shall have this ground down as soon as we find someone to go to Kaladim."); + e.other:Faction(e.self,245,20,0); -- eldritch collective + e.other:Faction(e.self,238,-3,0); -- Dark reflection + e.other:Faction(e.self,239,-1,0); -- the dead + e.other:Faction(e.self,255,3,0); -- gem choppers + e.other:Faction(e.self,333,1,0); -- king ak'anon + e.other:QuestReward(e.self,math.random(0,10),math.random(0,10),math.random(0,5),0,0,100); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13271})) then -- Air Tight Box + e.self:Say("Whew! What smells of rotting disease? Oh... It's you. I see you've gathered all the diseased livers. I shall have them incinerated in the scrapyard. The only reason we do this is to keep the Dark Reflection from using these components in their black arts. Take this. I hope you use it wisely. Oh, and... take a bath. You stink!"); + e.other:Faction(e.self,245,10,0); -- eldritch collective + e.other:Faction(e.self,238,-1,0); -- Dark reflection + e.other:Faction(e.self,239,-1,0); -- the dead + e.other:Faction(e.self,255,1,0); -- gem choppers + e.other:Faction(e.self,333,1,0); -- king ak'anon + e.other:QuestReward(e.self,math.random(0,10),math.random(0,10),math.random(0,5),0,10017,100); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12160, item2 = 12160, item3 = 12160, item4 = 12160},1,text1)) then -- Basilisk Tongue x 4 + e.self:Say("Very very good! I can use these in some of our experiments. These tongues are hard to come by and more than a few of our scouts have been turned to stone because of these creatures, but I'm sure you found that out by now, eh?"); + e.other:Faction(e.self,245,10,0); -- eldritch collective + e.other:Faction(e.self,238,-1,0); -- Dark reflection + e.other:Faction(e.self,239,-1,0); -- the dead + e.other:Faction(e.self,255,1,0); -- gem choppers + e.other:Faction(e.self,333,1,0); -- king ak'anon + e.other:QuestReward(e.self,math.random(0,10),math.random(0,10),math.random(0,5),0,eq.ChooseRandom(15205,15211,15288,15310,15311,15313,15331,15050,15093,15315,15316,15058,15317,15318,15036,15094,15246,15322,15323,15325,15851,15324,15332,15400,15399,15398,15042,15613),100); -- mage lvl 1-8 spells excluding pet item spells + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13272})) then -- Bozinite Pestle + e.self:Say("The Eldritch Collective thanks you. You have done a great service. We need these special bozinite pestles for use with our eldritch mortars. Here is a scroll from our library. Study it and use it wisely."); + e.other:Faction(e.self,245,10,0); -- eldritch collective + e.other:Faction(e.self,238,-1,0); -- Dark reflection + e.other:Faction(e.self,239,-1,0); -- the dead + e.other:Faction(e.self,255,1,0); -- gem choppers + e.other:Faction(e.self,333,1,0); -- king ak'anon + e.other:QuestReward(e.self,math.random(0,10),math.random(0,10),math.random(0,5),0,eq.ChooseRandom(15400,15399,15398,15397),100); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Lewis_Reldnok.lua b/akanon/Lewis_Reldnok.lua new file mode 100644 index 0000000..bf78ab5 --- /dev/null +++ b/akanon/Lewis_Reldnok.lua @@ -0,0 +1,57 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. "! I am Lewis Reldnok. first Paladin of the Deep Muses. When I was just a young lad I journeyed to Kaladim. the home of our cousins the Dwarves. At the Temple of the Duke of Below I studied the ways of a Paladin of our creator Brell Serilis. I have returned to Ak'Anon to train interested young gnomes the ways I have mastered so that we may defend Ak'Anon and Brells disciples everywhere from the threats that would see us destroyed. If you are a Paladin of the Deep Muses I have some [armor quests] for you to complete."); + elseif(e.message:findi("armor quests")) then + e.self:Say("I have armor quests that I present to young gnomish paladins when they are ready to venture out into the Mountains of Steamfont and begin their training. Are you a gnome that is [ready for training]?"); + elseif(e.message:findi("ready for training")) then + e.self:Say("Fantastic! Let me first begin by telling you how you will create your armor young " .. e.other:GetCleanName() .. ". I will present you with a Tinkerers Mail Assembly Kit that you will use to collect all different kinds of items from Ak'anon and from the Steamfont Mountaints. You will use specific [armor recipes] in this kit to create materials that you will use along with the molds I provide you with in a forge to create your armor!"); + e.other:SummonCursorItem(17252); -- Item: A Tinkerers Mail Assembly Kit + elseif(e.message:findi("armor recipes")) then + e.self:Say("I have all the armor recipes and molds that you will need to get started all you must do is simply tell me what armor piece you [want to craft]. I can provide you with the recipes and molds for Deep Muses [Helms]. [Bracers]. [Armguards]. [Boots]. [Greaves]. [Gauntlets] and [Breastplates]. I must recommend that you attempt to gather the items for your breastplate last because the components required for it are the most difficult to collect."); + elseif(e.message:findi("helm")) then + e.self:Say("That's a great idea young " .. e.other:GetCleanName() .. ". Having good helm on the ol noggin will protect you from many hamrful attacks. To create your helm material you will need to combine 2 Bricks of Crude Bronze. 1 Ruined Cat Pelt. 1 Rat Tooth and 1 Gnomish Spirits in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Deep Muses Helm."); + e.other:SummonCursorItem(22610); -- Item: An Enchanted Helm Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("It pleases me to see that you have come this far in your training. When you complete your breastplate and round out your armor set you will truly be a worthy paladin of Brell. To create your breastplate material you will need to combine 5 Bricks of Crude Bronze. 1 Grikbar Kobold Scalp. 1 Low Quality Coyote Pelt. 1 Micro Servo 1 Scrap Metal and the evil warrior Berinsan`s Shirt in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Deep Muses Breastplate. When you have crafted your breastplate please come back to see me for I might have a [special duty] for you to perform."); + e.other:SummonCursorItem(22616); -- Item: An Enchanted Breastplate Mold + elseif(e.message:findi("boots")) then + e.self:Say("I wouldn't recommend going out in the Mountains without some Boots on " .. e.other:GetCleanName() .. ". Who knows what kobold surprise you might find out there! To create your boot material you will need to combine 2 Bricks of Crude Bronze. 2 Spiderling Silks. 2 Flasks of Water and 1 Iron Oxide in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Deep Muses Boots."); + e.other:SummonCursorItem(22612); -- Item: An Enchanted Boot Mold + elseif(e.message:findi("greaves")) then + e.self:Say("I would definitely agree that some pants are in order. To create your greaves material you will need to combine 4 Bricks of Crude Bronze. 1 Spiderling Eyes. 1 Minotaur Horn. 1 Bottle of Kalish and the dastardly rogue Galorin`s Head in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Deep Muses Greaves."); + e.other:SummonCursorItem(22614); -- Item: An Enchanted Greaves Mold + elseif(e.message:findi("gauntlets")) then + e.self:Say("Gauntlets are a very good idea indeed to keep your hands protected while on the battlefield. To create your gauntlet material you will need to combine 3 Bricks of Crude Bronze. 1 Diseased Bone Marrow. 1 Harpy Wing. 1 Aviak Talon and 1 Moss Covered Drake Scale in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Deep Muses Gauntlets."); + e.other:SummonCursorItem(22615); -- Item: An Enchanted Gauntlet Mold + elseif(e.message:findi("bracer")) then + e.self:Say("A bracer is what you wish to craft eh? Well if you think you are ready you will need to collect 1 Brick of Crude Bronze, 1 Grikbar Kobold Scalp, 1 Rat Whisker and 1 Short Ale. Once you have created the proper material in your kit take it to a forge along with this mold to fashion your very own Deep Muses Bracer."); + e.other:SummonCursorItem(22611); -- Item: An Enchanted Bracer Mold + elseif(e.message:findi("armguard")) then + e.self:Say("Any smart paladin knows that your arms must be well guarded in battle. How else would you be able to swing your blade in Brells name! To create your armguard material you will need to combine 3 Bricks of Crude Bronze, 1 Ruined Coyote Pelt, 2 Bone Chips and 1 Russet Oxide in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Deep Muses Armguards."); + e.other:SummonCursorItem(22613); -- Item: An Enchanted Armguard Mold + elseif(e.message:findi("special duty")) then + e.self:Say("I'm glad to see you are back, it is clear that you have progressed very well in your training for you to be here ready for this task. I am constructing a blade for all of our new recruits to carry. If you [gather the items] I need I might be able to craft you one as well. "); + elseif(e.message:findi("gather the items")) then + e.self:Say("Thank you for your willingness to help Gearsword. I must warn you though I need some items from monsters and areas that are quite treacherous so I would recommend you take some worthy companions with you if you are to venture out on this quest. Are you [up for the challenge]?"); + elseif(e.message:findi("up for the challenge")) then + e.self:Say("Ok I will need 4 things to construct this blade. Bring me a Finished Sheet of Metal, a Kobold Backbone, Preserved Rat Pelt and 1 Bottle of Clockwork Oil that was stolen from me from some renegade clockworks not too long ago. Once I have these items I can make you a sword worthy of Brells finest heroes."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18433})) then -- Gnome Paladin Note + e.self:Say("Welcome to the Abbey of Deep Musing, " .. e.other:GetCleanName() .. "! Here is a tunic that you may wear to announce the beginning of your training as a Paladin of Brell Serilis! Be warned that the only dangers do not lie without Ak'Anon. There is an evil society that lurks in the deepest recesses and shadows of our magnificent city."); + e.other:Faction(e.self,240,100,0); -- Deep Muses + e.other:Faction(e.self,288,15,0); -- Merchants of Ak'Anon + e.other:Faction(e.self,255,15,0); -- Gem Choppers + e.other:Faction(e.self,238,-15,0); -- Dark Reflection + e.other:QuestReward(e.self,0,0,0,0,13517,20); -- worn felt tunic + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 9100,item2 = 9101,item3 = 9102,item4 = 9103})) then + e.self:Say("Here " .. e.other:GetCleanName() .. " , I have crafted this for you! May it always strike true!"); + e.other:QuestReward(e.self,0,0,0,0,9104,500); -- Item: Deep Muses Defender + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Lobal_Postugger.lua b/akanon/Lobal_Postugger.lua new file mode 100644 index 0000000..fcc1b0c --- /dev/null +++ b/akanon/Lobal_Postugger.lua @@ -0,0 +1,20 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. I am the guild master."); + elseif(e.message:findi("dark assassin")) then + e.self:Say("You have heard of him? I had a nice conversation with him. Sharing some secrets of gnomish spirits if yah know what i mean! In return he gave me a sketch that looks quite interesting. Of course I am stuck in this place waiting youngsters to teach when I would rather be out with you making poisons. Perhaps you are willing to make a trade with me for the sketch?"); + elseif(e.message:findi("trade")) then + e.self:Say("Fantastic! If you combine Rage of Incapacitation, Wasted Flesh and Dreams of Drusella within a coffin bottle you can make me a nice bundle of poisons to play with. Then I will have no need for the sketch."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9470})) then -- Bundle of Poisons + e.self:Emote("laughs. 'Here, take this then!'"); -- text made up + e.other:QuestReward(e.self,0,0,0,0,24096); -- Dip Resist Sketch + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Lyra_Lyrestringer.lua b/akanon/Lyra_Lyrestringer.lua new file mode 100644 index 0000000..0e34dd7 --- /dev/null +++ b/akanon/Lyra_Lyrestringer.lua @@ -0,0 +1,25 @@ +--Quest Name: Bard Mail Quest + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail. " .. e.other:GetCleanName() .. " -Are you [interested] in helping the League of Antonican Bards by delivering some [mail]?"); + elseif(e.message:findi("mail") and not e.message:findi("deliver") and not e.message:findi("Kelethin")) then + e.self:Say("The League of Antonican Bards has a courier system made up of travelers and adventurers. We pay good gold to anyone who will take messages from bards such as myself to one of our more central offices. Are you [interested]?"); + elseif(e.message:findi("interested")) then + e.self:Say("I have messages that need to go to - well. right now I have one that needs to go to Kelethin. Will you [deliver] mail to [Kelethin] for me?"); + elseif(e.message:findi("deliver") or e.message:findi("Kelethin")) then + e.self:Say("Take this letter to Jakum Webdancer in Kelethin. You can find him at the bard guild hall. I am sure he will compensate you for your troubles."); + e.other:SummonCursorItem(18163); -- Item: A Bardic Letter (Kelethin) + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +--Author: RealityIncarnate +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/akanon/Manik_Compolten.lua b/akanon/Manik_Compolten.lua new file mode 100644 index 0000000..757d960 --- /dev/null +++ b/akanon/Manik_Compolten.lua @@ -0,0 +1,86 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, young one. I am Manik Compolten, High Watchman. Are you a [new warrior] or an [experienced fighter]?"); + elseif(e.message:findi("new warrior")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("It is always good to see new blood amongst the Gemchoppers. I have a small task for you. Take this keycard. I will give you only one at a time. Use each to obtain blackboxes for the C series clockworks. I am sure you are familiar with the clockworks. When you are done, bring them all to me. Let me know if you need another keycard."); + e.other:SummonCursorItem(13844); -- Item: Shiny Card + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("You must show a greater allegiance to the Gemchoppers before we can speak with you. Search the hills for rogue clockworks. Captain Compolten shall accept two of their blackboxes and you shall prove your loyalty to our hall."); + else + e.self:Say("You are lucky I do not cut you in half right where you stand. Your actions so far have proven you an enemy to the Gemchoppers. Leave while you still can!"); + end + elseif(e.message:findi("another keycard")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Here. Remember, I will give you only one keycard at a time. These keycards only work for the C series clockworks."); + e.other:SummonCursorItem(13844); -- Item: Shiny Card + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("You must show a greater allegiance to the Gemchoppers before we can speak with you. Search the hills for rogue clockworks. Captain Compolten shall accept two of their blackboxes and you shall prove your loyalty to our hall."); + else + e.self:Say("You are lucky I do not cut you in half right where you stand. Your actions so far have proven you an enemy to the Gemchoppers. Leave while you still can!"); + end + elseif(e.message:findi("experienced fighter")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Good. I require your talents to destroy rogue clockworks. After we sent the clockworks to destroy the Asylum of the Mad we found some of the clockworks went haywire and never returned. We must destroy them, not for the safety of the people, but to keep our technology from falling into the hands of any other nation. Go to the Steamfont Mountains and return their rogue blackboxes to me."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("You must show a greater allegiance to the Gemchoppers before we can speak with you. Search the hills for rogue clockworks. Captain Compolten shall accept two of their blackboxes and you shall prove your loyalty to our hall."); + else + e.self:Say("You are lucky I do not cut you in half right where you stand. Your actions so far have proven you an enemy to the Gemchoppers. Leave while you still can!"); + end + elseif(e.message:findi("clockwork")) then + e.self:Say("The clockworks were developed by the Eldritch Collective. They are used as our policing force in Ak'Anon. They come in many series. The letter following their number is the series model."); + elseif(e.message:findi("blackbox")) then + e.self:Say("All the clockworks contain blackboxes. These are not containers for items, but rather containers of data of all the clockwork's experiencees. The data can only be extracted by using a blackbox definer."); + elseif (e.message:findi("red 5")) then + e.self:Say("Red 5 is the infernal clockwork once owned by the mad gnome, Meldrath. I hear he has survived the scrap heap and is active once more. I offer a reward to all gnome warriors for the return of Red 5's Blackbox. Perhaps even the reward of a [Bull Smasher]."); + elseif (e.message:findi("bull smasher")) then + e.self:Say("The war hammer, Bull Smasher was crafted by our great blacksmiths and tinkers. It is not magical, but it is weighted to perform for only the short of stature. Certainly an item like Bull Smasher could only be crafted by gnomes."); + elseif (e.message:findi("meldrath")) then + e.self:Say("Meldrath is the mad gnome. He used to be a member of the Eldritch Collective. Some say he lost his mind while he was working on a formula he obtained from other worlds. He used to lead the cult called the [Asylum of the Mad]."); + elseif (e.message:findi("asylum")) then + e.self:Say("The Asylum of the Mad was formed by the mad gnome, Meldrath. Under his direction, they were trying to build some giant mechanical titan. We recently sent all of our clockworks into the Steamfont Mountains to destroy their evil cult."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Only two blackboxes shall prove your worth to this hall."; + local text1 = "There are a total of four C series clockworks."; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13208,item2 = 13208},1,text)) then + e.self:Say("Excellent work! You were born to be a warrior. Here is a little bonus for the good job."); + -- confirmed live faction + e.other:Faction(e.self,255,5,0); -- gem choppers + e.other:Faction(e.self,333,1,0); -- King ak'anon + e.other:Faction(e.self,288,1,0); -- Merchants of Ak'Anon + e.other:Faction(e.self,1604,-1,0); -- Clan Grikbar + e.other:Faction(e.self,238,-1,0); -- Dark Reflection + e.other:AddEXPPercent(15,1); -- 15% xp at level 1 + e.other:QuestReward(e.self,math.random(0,10),math.random(0,10),math.random(0,5)); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13212, item2 = 13211, item3 = 13213, item4 = 13214},1,text1)) then + e.self:Say("Ah!! I see you had no problem finding all of the C series clockworks. Good work. Here. Take this blackbox. We received it from Clockwork 27C. Take it to Jogl Doobraugh. He is the operator of the only blackbox definer in Ak'Anon. He is out at the windmills checking on their operation."); + -- confirmed live faction + e.other:Faction(e.self,255,1,0); -- gem choppers + e.other:Faction(e.self,333,1,0); -- King ak'anon + e.other:Faction(e.self,288,1,0); -- Merchants of Ak'Anon + e.other:Faction(e.self,1604,-1,0); -- Clan Grikbar + e.other:Faction(e.self,238,-1,0); -- Dark Reflection + e.other:AddEXPPercent(12,1); -- 12% xp at level 1 + e.other:QuestReward(e.self,0,0,0,0,13209); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13215},0)) then + e.self:Say("This is fabulous news!! You have done well, young one. Once you are ready for [further instruction] please let me know, I will guide you through your early most dangerous days. When you have become more experienced in our art, I wil be able to further instruct you on how to progress through your early ranks, as well as in some various [trades] you will have available to you."); + -- confirmed live faction. + e.other:Faction(e.self,255,10,0); -- gem choppers + e.other:Faction(e.self,333,2,0); -- King ak'anon + e.other:Faction(e.self,288,2,0); -- Merchants of Ak'Anon + e.other:Faction(e.self,1604,-2,0); -- Clan Grikbar + e.other:Faction(e.self,238,-1,0); -- Dark Reflection + e.other:AddEXPPercent(14,1); -- 14% xp at level 1 + if(math.random(100) < 20) then + e.other:QuestReward(e.self,math.random(0,10),math.random(0,10),math.random(0,5),0,eq.ChooseRandom(13219,13220)); + else + e.other:QuestReward(e.self,math.random(0,10),math.random(0,10),math.random(0,5),0,eq.ChooseRandom(1013, 1018, 1015, 1019, 1022, 1023, 1024, 1017, 1016, 1020, 1014, 1021)); + end + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Mimtia_Zethkog.lua b/akanon/Mimtia_Zethkog.lua new file mode 100644 index 0000000..7fbd8fa --- /dev/null +++ b/akanon/Mimtia_Zethkog.lua @@ -0,0 +1,37 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail " .. e.other:GetCleanName() .. "! You must be one of Garret's new knights. Garret has asked me to help get you outfitted in a suit of armor to protect you from the weapons of our foes. I have assembled a kit for you that will allow you to construct the armor pieces once you have gathered the necessary components. The required components vary according to which piece of Plague Knight Armor you are planning on assembling. Do you wish to craft a [plague knight helm], a [plague knight bracer], [plague knight gauntlets], [plague knight boots], [plague knight vambraces], [plague knight greaves], or a [plague knight breastplate]."); + elseif (e.message:findi("plague knight boots")) then + e.self:Say("To assemble Plague Knight Boots you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this crude Boot Mold. Once that is done combine the Crude Bronze Boots with two Ruined Cat Pelts, and two Clockwork Rat Belly Plates in the Mail Assembly Kit."); + e.other:SummonCursorItem(19634); -- Item: Crude Boot Mold + elseif (e.message:findi("plague knight bracer")) then + e.self:Say("To assemble a Plague Knight Bracer you will need to obtain a brick of crude bronze and smelt it in a forge with a Water Flask and this Crude Bracer Mold. Once that is done, combine the Crude Bronze Bracer with a Ruined Cat Pelt and a Clockwork Rat Leg Section in the Mail Assembly Kit."); + e.other:SummonCursorItem(19632); -- Item: Crude Bracer Mold + elseif (e.message:findi("plague knight breastplate")) then + e.self:Say("To assemble a Plague Knight Breastplate you will need to obtain four bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Breastplate Mold. Once that is done combine the Crude Bronze Breastplate with a Medium Quality Cat Pelt, a Clockwork Spider Thorax Plate, and a Clockwork Spider Abdomen Plate in the Mail Assembly Kit."); + e.other:SummonCursorItem(19637); -- Item: Crude Breastplate Mold + elseif (e.message:findi("plague knight gauntlets")) then + e.self:Say("To assemble Plague Knight Gauntlets you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this crude Gauntlet Mold. Once that is done combine the Crude Bronze Gauntlets with a Ruined Cat Pelt and two Clockwork Rat Back Plates in the Mail Assembly Kit."); + e.other:SummonCursorItem(19633); -- Item: Crude Gauntlets Mold + elseif (e.message:findi("plague knight greaves")) then + e.self:Say("To assemble Plague Knight Greaves you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Greaves Mold. Once that is done combine the Crude Bronze Greaves with two Low Quality Cat Pelts and four Clockwork Spider Leg Sections in the Mail Assembly Kit."); + e.other:SummonCursorItem(19636); -- Item: Crude Greaves Mold + elseif (e.message:findi("plague knight helm")) then + e.self:Say("To assemble a Plague Knight Helm you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Helm Mold. Once that is done combine the Crude Bronze Helm with a Ruined Cat Pelt and two Clockwork Spider Eye Lenses in the Mail Assembly Kit."); + e.other:SummonCursorItem(19631); -- Item: Crude Helm Mold + elseif (e.message:findi("plague knight vambraces")) then + e.self:Say("To assemble Plague Knight Vambraces you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Vambrace Mold. Once that is done combine the Crude Bronze Vambraces with a Low Quality Cat Pelt and two Clockwork Spider Leg Sections in the Mail Assembly Kit."); + e.other:SummonCursorItem(19635); -- Item: Crude Vambrace Mold + end +end + +function event_trade(e) + local item_lib = require("items"); + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 10987})) then + e.self:Say("Hail " .. e.other:GetCleanName() .. "! You must be one of Garret's new knights. Garret has asked me to help get you outfitted in a suit of armor to protect you from the weapons of our foes. I have assembled a kit for you that will allow you to construct the armor pieces once you have gathered the necessary components. The required components vary according to which piece of Plague Knight Armor you are planning on assembling. Do you wish to craft a [plague knight helm], a [plague knight bracer], [plague knight gauntlets], [plague knight boots], [plague knight vambraces], [plague knight greaves], or a [plague knight breastplate]."); + e.other:QuestReward(e.self,0,0,0,0,17124); -- Item: Mail Assembly Kit + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Narron_Jenork.lua b/akanon/Narron_Jenork.lua new file mode 100644 index 0000000..2dbb5c5 --- /dev/null +++ b/akanon/Narron_Jenork.lua @@ -0,0 +1,61 @@ +-- Quest edited by mrsmystic +-- Quest further edited by Qadar for compatibility with Watchman Boots quest (Watchman_Dexlin in northkarana) +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Pleased to meet you, " .. e.other:GetCleanName() .. "! I am Narron Jenork, High Watchman of Ak'anon. I am one of the most skilled Watchmans in all of Ak'anon, and I pride myself on training the most promising young warriors that Ak'anon has to offer. Are you a young gnome warrior?"); + elseif(e.message:findi("young gnome warrior")) then + e.self:Say("Well, we can never get enough warriors around these parts, as far as I am concerned! Now if you are a new warrior, then you must go through the training to become a true watchman. I have a series of tests that will require you to test both your hunting and navigational skills. These tests will not leave you with nothing to show for your work, because upon completing them you will be outfitted with a full suit of Initiate Watchman's armor. Are you [ready to be tested]?"); + elseif(e.message:findi("ready to be tested")) then + e.self:Say("Well then, let's get you started! First, I will present you with this Watchman's Mail Assembly kit to gather assorted items from both your training grounds of the Steamfont Mountains and in our great town of Ak'anon. You will then combine the different recipes of components in your kit to create a material that will be used with a mold in a forge to create your Watchman armor. When you are ready to craft a specific piece, all you must do is tell me what armor piece you want to craft, and I will present you with the recipe for the material, along with the mold. I have the material recipes necessary to make Initiate Watchman [Helms], [Bracers], [Armguards], [Boots], [Greaves], [Gauntlets] and [Breastplates]."); + e.other:SummonCursorItem(17255); -- Item: Watchmans Mail Assembly Kit + elseif(e.message:findi("helm")) then + e.self:Say("No watchman can even think of going into battle without the proper helmet, and I think this one will do the job for you, " .. e.other:GetCleanName() .. ". To create your helm material, you will need to combine 2 Bricks of Crude Bronze, 1 Piece of Scrap Metal, 1 Ruined Cat Pelt and 1 Raw Bamboo in your assembly kit. Once you have created the proper material, take it to a forge along with this mold to fashion your very own Initiate Watchman's Helm."); + e.other:SummonCursorItem(22610); -- Item: An Enchanted Helm Mold + elseif(e.message:findi("bracer")) then + e.self:Say("Always a wise idea to keep your wrists well protected, because if you don't, you might have a difficult time swinging your weapons! To create your bracer material, you will need to combine 1 Brick of Crude Bronze, 1 Rusty Mace, 1 Kobold Tooth and 1 Bottle of Milk in your assembly kit. Once you have created the proper material, take it to a forge along with this mold to fashion your very own Initiate Watchman's Bracer."); + e.other:SummonCursorItem(22611); -- Item: An Enchanted Bracer Mold + elseif(e.message:findi("armguard")) then + e.self:Say("One always has to be able to really pack a punch with their attacks, so preventing any injuries on your arms ahead of time is good planning! To create your armguards material, you will need to combine 2 Bricks of Crude Bronze, 2 Brownie Legs, and 1 Short Beer in your assembly kit. Once you have created the proper material, take it to a forge along with this mold to fashion your very own Initiate Watchman's Armguards."); + e.other:SummonCursorItem(22613); -- Item: An Enchanted Armguard Mold + elseif(e.message:findi("boots")) then + e.self:Say("I certainly wouldn't advise any watchman to be on patrol without proper boots on. We aren't halflings, you know! Therefore our obsession should be with our tactical attacks, not our foothairs. To create your boot material, you will need to combine 3 Bricks of Crude Bronze, 1 Aviak Beak, 2 Wolf Meats and 1 Red Wine in your assembly kit. Once you have created the proper material, take it to a forge along with this mold to fashion your very own Initiate Watchman's Boots."); + e.other:SummonCursorItem(22612); -- Item: An Enchanted Boot Mold + elseif(e.message:findi("greaves")) then + e.self:Say("Pants are a must, young " .. e.other:GetCleanName() .. ". As a Watchman of Ak'anon, you should be known for your noble deeds and commitment to defending your home, not as a gnome that runs around with no pants on. To create your greaves material, you will need to combine 4 Bricks of Crude Bronze, 1 Coyote Pelt, 1 Rusted Blackbox and 1 Bottle in your assembly kit. Once you have created the proper material, take it to a forge along with this mold to fashion your very own Initiate Watchman's Greaves."); + e.other:SummonCursorItem(22614); -- Item: An Enchanted Greaves Mold + elseif(e.message:findi("gauntlets")) then + e.self:Say("Having the necessary protection on your hands and wrists will prevent any serious injuries that would make you unable to defend yourself. To create your gauntlet material, you will need to combine 3 Bricks of Crude Bronze, 1 Runaway Clockwork Gearbox, 1 Young Ebon Drakewing, and 1 Minotaur Scalp in your assembly kit. Once you have created the proper material, take it to a forge along with this mold to fashion your very own Initiate Watchman's Gauntlets."); + e.other:SummonCursorItem(22615); -- Item: An Enchanted Gauntlet Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("I am very pleased to see that you have progressed so quickly in your training, " .. e.other:GetCleanName() .. "! I do also agree that you are ready to gather the items necessary for crafting your Initiate Watchman's Breastplate. To create your breastplate material, you will need to combine 5 Bricks of Crude Bronze, 1 Runaway Clockwork Motor, 1 Brownie Brain, 1 Rusty Long Sword, 1 Grikbar Kobold Scalp and the evil Diloperia`s Bracer in your assembly kit. Once you have created the proper material, take it to a forge along with this mold to fashion your very own Initiate Watchman's Breastplate. When you are finished with your breastplate, please come back to see me. I have a [final task] for you to complete."); + e.other:SummonCursorItem(22616); -- Item: An Enchanted Breastplate Mold + elseif(e.message:findi("final task")) then + e.self:Say("Much like most of the other guildmasters in our great city, we have decided to begin presenting all new worthy recruits with weapons that symbolize their devotion to Ak'anon. I am in need of a [few items] from the mountains to make this weapon. If you will collect these items for me, I will be happy to reward you with one of these fine weapons."); + elseif(e.message:findi("few items")) then + e.self:Say("I will need for you to bring me 1 Clockwork Oil Extract, 1 Minotaur Tibia, 1 Young Ebon Drake Ribcage and 1 Renegade Clockwork Scrapmetal. Return to me after you have gathered this items and I will reward you with your weapon."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9111, item2 = 9112, item3 = 9113, item4 = 9114})) then + e.self:Say("Well done, young " .. e.other:GetCleanName() .. "! Since you have brought me the necessary items, I now present you with this Initiate Watchman's Long Sword. Use it worthily."); -- text made up + e.other:Faction(e.self,255,25); -- Gem Choppers better + e.other:Faction(e.self,288,6); -- Merchants of Ak'Anon better + e.other:Faction(e.self,333,6); -- King Ak'Anon better + e.other:Faction(e.self,238,-6); -- Dark Reflection worse + e.other:Faction(e.self,1604,-1); -- Clan Grikbar + e.other:QuestReward(e.self,0,0,0,0,9115); -- Item: Initiate Watchmans Long Sword + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12378})) then -- Box of Undead Brownies + e.self:Say("Wonderful!! Watchman Dexlin sent word that you would be returning these specimens. I shall see that the Eldritch Collective gets them. For you there is a reward. Manik has donated a pair of Watchman Boots!!"); + e.other:Faction(e.self,255,20); -- Gem Choppers better + e.other:Faction(e.self,288,5); -- Merchants of Ak'Anon better + e.other:Faction(e.self,333,5); -- King Ak'Anon better + e.other:Faction(e.self,238,-5); -- Dark Reflection worse + e.other:Faction(e.self,1604,-1); -- Clan Grikbar + e.other:QuestReward(e.self,0,0,0,math.random(5),12379,10000); -- Watchman Boots + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Naygog_Mitope.lua b/akanon/Naygog_Mitope.lua new file mode 100644 index 0000000..f7d8bc8 --- /dev/null +++ b/akanon/Naygog_Mitope.lua @@ -0,0 +1,34 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail " .. e.other:GetCleanName() .. ". I train those young gnomes who wish to [serve as a warrior] in the service of the Dark Reflection and our patron. Bertoxxulous the Plaguelord. Decay and destruction are powerful forces that influence Norrath. It is the duty of the Warriors of the Dark Reflection to bring destruction to the weak and injury to the strong so that our fellow gnomes may be reminded of their own mortality and new strong individuals may rise to power before Bertoxxulous decides it is their time to decay and be replaced like countless before them."); + elseif(e.message:findi("serve as a warrior")) then + e.self:Say("Ours is the duty of a martyr. to be the hated and feared hand of destruction and catalyst of change. All roads are paved with destruction and in turn are eventually destroyed. All machines are built from the rubble of broken mountains and in turn become rust and bits of metal. You must outfit yourself with the tools of a warrior. crafted from the destruction of archaic clockworks that have long since finished serving the purpose for which they were built. Take this parchment to Windlebeck Tobokog. he will assist you in the construction of a suit of armor. When you have been properly outfitted return to me for [further instruction]."); + e.other:SummonCursorItem(10986); -- Item: Parchment to Windlebeck + elseif(e.message:findi("further instruction")) then + e.self:Say("It is one thing to destroy the artificial life of a clockwork. It is another thing entirely to claim the life of another gnome. There is a member of the Dark Reflection. Yulcabis. who has been assigned to a task in the Steamfont Mountains. He has failed repeatedly in the tasks assigned to him in the past and has become a burden to the Dark Reflection. Find Yulcabis and slay him. Return to me with the weapon he carries."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor? For a warrior? Oh yes. You'll need to speak with Windlebeck for that."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10990})) then -- Yulcabis's axe + e.self:Say("Well done " .. e.other:GetCleanName() .. ". Take this Dull Dark Reflection Axe and sharpen it in a forge with a sharpening stone. It may take several attempts if you are unfamiliar with the process. Once the axe has been sharpened take it to Clockwork SmithXIII with a Coyote Pelt and he will put the finishing touches on the weapon."); + e.other:Faction(e.self,238,10,0); -- Dark reflection + e.other:Faction(e.self,245,-1,0); -- eldritch collective + e.other:Faction(e.self,255,-1,0); -- gem choppers + e.other:Faction(e.self,240,-1,0); -- Deepmuses + e.other:QuestReward(e.self,0,0,0,0,10995,100); -- Dull Dark Reflection Axe + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 18759})) then -- Stained Parchment + e.self:Say("This is fabulous news!! You have done well, young one. Here, then, is your reward for a job well done."); + e.other:Faction(e.self,238,100,0); -- Dark reflection + e.other:Faction(e.self,245,-10,0); -- eldritch collective + e.other:Faction(e.self,255,-10,0); -- gem choppers + e.other:Faction(e.self,240,-10,0); -- Deepmuses + e.other:QuestReward(e.self,0,0,0,0,13518,20); -- Tin Patched Tunic* + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Rebbie_Romblerum.lua b/akanon/Rebbie_Romblerum.lua new file mode 100644 index 0000000..066b581 --- /dev/null +++ b/akanon/Rebbie_Romblerum.lua @@ -0,0 +1,39 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail " .. e.other:GetCleanName() .. "!"); + elseif(e.message:findi("silk thread")) then + e.self:Say("Silk Thread is created by combineing two spiderling silk in a sewing kit."); -- text is made up as i could not find the real text reply. + elseif(e.message:findi("boot")) then + e.self:Say("To assemble Plague Rust Boots you will require two [silk thread], two ruined ebon drakeling scales, and two rebel clockwork foot plates. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Boot Pattern."); + e.other:SummonCursorItem(19561); -- Item: Tattered Boot Pattern + elseif(e.message:findi("bracer")) then + e.self:Say("To assemble a Plague Rust Bracer you will require a [silk thread], ruined ebon drakeling scales, and a rebel clockwork wrist section. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Wristband Pattern."); + e.other:SummonCursorItem(19558); -- Item: Tattered Wristband Pattern + elseif(e.message:findi("glove")) then + e.self:Say("To assemble Plague Rust Gloves you will require two [silk thread], ruined ebon drakeling scales, and two rebel clockwork hand plates. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Glove Pattern."); + e.other:SummonCursorItem(19559); -- Item: Tattered Glove Pattern + elseif(e.message:findi("legging")) then + e.self:Say("To assemble Plague Rust Leggings you will require three [silk thread], two ebon drakeling scales, and two rebel clockwork leg sections. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Leggings Pattern."); + e.other:SummonCursorItem(19560); -- Item: Tattered Pant Pattern + elseif(e.message:findi("sleeve")) then + e.self:Say("To assemble Plague Rust Sleeves you will require two [silk thread], ebon drakeling scales, and two rebel clockwork arm sections. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Sleeves Pattern."); + e.other:SummonCursorItem(19557); -- Item: Tattered Sleeve Pattern + elseif (e.message:findi("tunic")) then + e.self:Say("To assemble a Plague Rust Tunic you will require four [silk thread], pristine ebon drakeling scales, a giant rat pelt, and a rebel clockwork chest plate. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Tunic Pattern."); + e.other:SummonCursorItem(19556); -- Item: Tattered Tunic Pattern + elseif(e.message:findi("coif")) then + e.self:Say("To assemble a Plague Rust Coif you will require two [silk thread], ruined ebon drakeling scales, and a rebel clockwork head plate. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Cap Pattern."); + e.other:SummonCursorItem(19555); -- Item: Tattered Cap Pattern + end +end + +function event_trade(e) + local item_lib = require("items"); + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 10988})) then + e.self:Say("Hail " .. e.other:GetCleanName() .. "! You must be one of Kaxon's new trainees. Kaxon has asked me to help get you outfitted in a suit of armor to protect you from the weapons of our foes. I have assembled a kit for you that will allow you to construct the armor pieces once you have gathered the necessary components. The required components vary according to which piece of Plague Rust Mail you are planning on assembling. Do you wish to craft a [plague rust coif], a [plague rust bracer], [plague rust gloves], [plague rust boots], [plague rust sleeves], [plague rust leggings], or a [plague rust tunic]."); + e.other:QuestReward(e.self,0,0,0,0,17124); -- Item: Mail Assembly Kit + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Rilgor_Plegnog.lua b/akanon/Rilgor_Plegnog.lua new file mode 100644 index 0000000..83b5c91 --- /dev/null +++ b/akanon/Rilgor_Plegnog.lua @@ -0,0 +1,22 @@ +function event_say(e) + if (e.message:findi("mechanical pen")) then + e.self:Say("Why do you want one of those contraptions. You will spend more time repairing it then you will writing with it. But if you insist on getting one, you are going to have to do a small favor."); + elseif(e.message:findi("favor")) then + e.self:Emote("tugs at your robe and grins evilly. 'Mighty nice outfit you have there. Sure beats these drab robes us three are wearing. Hmm...my favorite color is purple, in fact a shiny metallic purple would do nicely. How bad did you want that pen?'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18703})) then -- Old Folded Letter + e.other:Faction(e.self,238,100,0); -- Dark reflection + e.other:Faction(e.self,245,-10,0); -- eldritch collective + e.other:Faction(e.self,255,-10,0); -- gem choppers + e.other:Faction(e.self,240,-10,0); -- Deepmuses + e.other:QuestReward(e.self,0,0,0,0,13524,20); -- Dark Gold Felt Robe* + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 1360})) then + e.self:Say("Very nice!! It is perfect! Here take this pen. Have fun with it."); + e.other:QuestReward(e.self,0,0,0,0,10600,50000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Rylin_Coil.lua b/akanon/Rylin_Coil.lua new file mode 100644 index 0000000..8faba01 --- /dev/null +++ b/akanon/Rylin_Coil.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Yikes! Don't startle a fellow like that!"); + end +end diff --git a/akanon/Sanfyrd_Featherhead.lua b/akanon/Sanfyrd_Featherhead.lua new file mode 100644 index 0000000..84f436f --- /dev/null +++ b/akanon/Sanfyrd_Featherhead.lua @@ -0,0 +1,50 @@ +-- Edit on April 19, 2007 by Kilelen +-- Edit by spre +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then -- no faction requirements anywhere on this guy + e.self:Say("Greetings! I am the operator of this scrapyard. If you have any scrap metal, I would be glad to purchase it from you in loads of four. The Gemchoppers no longer allow me to accept blackbox fragments and micro servos."); + elseif(e.message:findi("fairy wing") or e.message:findi("faerie wing")) then + e.self:Say("No!! You cannot have my magic Fairie Wing!! I need it. I read somewhere within the great library that the magic wing from a fairie princess will restore my full head of hair. Look at me!! I am bald!! I have no [friends] at all."); + elseif(e.message:findi("friend")) then + e.self:Say("Oh. You are just saying that so you can get my fairie wing. I will make you a deal. I cannot rely on this wing forever. I will trade it with you if you could get me a case of hair tonic. If you are a true friend you [will fetch the hair tonic] for me."); + elseif(e.message:findi("hair tonic")) then + e.self:Say("Great!! Here you go, my friend. Take this crate and within you shall fill each slot with hair tonic. When all are combined within the crate, return it to me for your wing. I am not sure what the tonic was or where I got it. There is some writing on the crate, but I could not identify it."); + e.other:SummonCursorItem(17979); -- Item: Crate for Tonics + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "I hear there is one more on the loose. Find him and then I shall pay you."; + local text2 = "I now require all deliveries of Scrap Metal to be in loads of four."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13198, item2 = 13198, item3 = 13198, item4 = 13198},1,text2)) then -- Turn in 4 scrap metal + e.self:Say("Grand! We always need more scraps to melt down. Here you are, then... Some coins for supporting Ak'Anon and a salvaged item from the scrapyard."); + e.other:Faction(e.self,255,5,0); -- Faction: Gem Choppers + e.other:Faction(e.self,288,1,0); -- Faction: Merchants of Ak'Anon + e.other:Faction(e.self,333,1,0); -- Faction: King Ak'Anon + e.other:Faction(e.self,238,-1,0); -- Faction: Dark Reflection + e.other:Faction(e.self,1604,-1,0); -- Faction: Clan Grikbar + e.other:QuestReward(e.self,0,math.random(10),0,0,eq.ChooseRandom(5013,10018,5014,10060,2159,5015,6016,17009,5016,9009,7010,5019,7009,5020,5023,12340,12340,17033,13004,13077,6027),200); -- Ran quest 50+ times, added all the rewards -- rusty, patchwork, hematite, chunk of metal ore, small buckler, large lantern, Purse, Forging Hammer + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 9426, item2 = 28618, item3 = 29906, item4 = 28165})) then -- Bundle of Super Conductive Wires, Gold Tipped Boar Horn, Shard of Pure Energy, Silicorrosive Grease + e.self:Say("Wow! I see my nephew finally read my list of items. I also see he is not delivering them himself, he is too young to bind himself to the library like that. These items should help me in my research to upgrade the scrapyard. Here let me pen a note to him so you can take it back to him."); + e.other:QuestReward(e.self,0,0,0,0,15980,1000); -- Note for Fimli + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12336})) then + e.self:Say("Huzzah!! You are my friend. Now you can take my old toupee and get it repaired. Just go to Freeport and ask Ping to [repair the toupee]. Hey!! You know what? He is the guy who sells the hair tonic!! I remember now. Well,.. Get my toupee repaired and I will give you the fairie wing."); + e.other:QuestReward(e.self,0,0,0,0,12337); -- Item: A Tattered Toupee + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12254})) then + e.self:Say("Double Huzzah!! You are a good friend " .. e.other:GetCleanName() .. ". Now mayhaps I shall find myself a wife. Here pal, the fairy wing. I hope it can give you a great head of hair. You need it."); + e.other:QuestReward(e.self,0,0,0,0,12339); -- Item: A Glimmering Fairie Wing + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13216, item2 = 13217},1,text1)) then + e.self:Say("Good. The citizens of Ak'Anon are safe from those little critters. They may have injured someone; that is why they are deactivated. Here is something I found in the scrapyard. I hope you can find a purpose for it."); + e.other:Faction(e.self,255,10,0); -- Faction: Gem Choppers + e.other:Faction(e.self,333,2,0); -- Faction: King Ak'Anon + e.other:Faction(e.self,288,2,0); -- Faction: Merchants of Ak'Anon + e.other:Faction(e.self,238,-2,0); -- Faction: Dark Reflection + e.other:Faction(e.self,1604,-1,0); -- Faction: Clan Grikbar + e.other:QuestReward(e.self,math.random(10),math.random(10),math.random(5),0,eq.ChooseRandom(17981, 17981, 6027),250); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Scrubber_IV.lua b/akanon/Scrubber_IV.lua new file mode 100644 index 0000000..4a8f494 --- /dev/null +++ b/akanon/Scrubber_IV.lua @@ -0,0 +1,22 @@ +-- Converted to .lua by Speedz + +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("clicks as a plate slides to the side revealing a hose that extends and sucks up an item from the ground"); + end + end +end + +function event_waypoint_arrive(e) + if(e.wp == 30) then + e.self:Say("Click.. Dust. Dust. Dust."); + elseif(e.wp == 42) then + e.self:Say("Click.. Dust. Dust. Dust."); + e.self:SetRunning(true); + end +end diff --git a/akanon/Silox_Azrix.lua b/akanon/Silox_Azrix.lua new file mode 100644 index 0000000..dd201af --- /dev/null +++ b/akanon/Silox_Azrix.lua @@ -0,0 +1,17 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("gives you a crooked smile. 'Hello there, " .. e.other:GetCleanName() .. ". I'm doin some important 'meditations' to my god here. Maybe you can go somewhere else?'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20694})) then + e.self:Emote("looks up at you with a twisted gleam in his eyes. 'Something for me then, eh?' As he looks closer his skin begins to peel and stretch, a bright hot light emanating from his hands gripped around the unicorn horn. 'NOOOO!' The pure cleansing light burns away the gnome without a trace of his existence except for a tiny ball of light which you pick up."); + e.other:QuestReward(e.self,0,0,0,0,20697); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Soulbinder_Toglonoit.lua b/akanon/Soulbinder_Toglonoit.lua new file mode 100644 index 0000000..5671fe5 --- /dev/null +++ b/akanon/Soulbinder_Toglonoit.lua @@ -0,0 +1,15 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID(),0,1); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Tergon_Brenclog.lua b/akanon/Tergon_Brenclog.lua new file mode 100644 index 0000000..2a52ed8 --- /dev/null +++ b/akanon/Tergon_Brenclog.lua @@ -0,0 +1,88 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Eh!!? What do I see before me? A young upstart? Some child pretending to be a great mind? If you wish to test your mettle then you will assist Tergon. Will you [Help Tergon] or are you far [too superior] to deal with such things?"); + elseif(e.message:findi("help")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- Needs amiably or better + e.self:Say("No!! You will help yourself. Your task shall find your skills tested. Succeed and knowledge is yours. Fail and death shall embrace you. Go to the Steamfont Mountains and seek out a troll named Bugglegupp. As a youngster I once tried to attack the beast with a device of mine. It sent an Iron Pellet deep into the beasts head. Kill Bugglegupp and return the Iron Pellet. I hope the Pellet does not get lost in the battle."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("There is much more you must do for the Library of Mechanimagica before such things can be revealed to you. Perhaps fetching minotaur horns and returning them to Professor Theardor will earn you membership to the Library of Mechanimagica."); + else + e.self:Say("You dare to speak to a member of the Eldritch Collective! You had best leave before you find your soul displaced from your body."); + end + elseif(e.message:findi("too superior")) then + e.self:Say("Well excuse me!! your majesty. Please forgive my arrogance. Now get out of here, before you stink this place up with that rotting grape you call a brain!"); + elseif(e.message:findi("further tasks")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- Needs amiably or better + e.self:Say("Not all experience is gained upon the battlefield. We magicians must heighten our minds to become formidable opponents. I see much promise in you, " .. e.other:GetCleanName() .. ". I will require you to [travel abroad] toward Freeport."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("There is much more you must do for the Library of Mechanimagica before such things can be revealed to you. Perhaps fetching minotaur horns and returning them to Professor Theardor will earn you membership to the Library of Mechanimagica."); + else + e.self:Say("You dare to speak to a member of the Eldritch Collective! You had best leave before you find your soul displaced from your body."); + end + elseif(e.message:findi("travel abroad")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- Needs amiably or better + e.self:Say("You will go to Freeport and seek out the Academy of Arcane Science. There you shall find my brother Retlon. He has scribed some new spells in my [personal spellbook]. Hand him this note as proof of your alliance. He works closely with Master Dooly Jonkers."); + e.other:SummonCursorItem(1717); -- Item: Sealed Letter + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("There is much more you must do for the Library of Mechanimagica before such things can be revealed to you. Perhaps fetching minotaur horns and returning them to Professor Theardor will earn you membership to the Library of Mechanimagica."); + else + e.self:Say("You dare to speak to a member of the Eldritch Collective! You had best leave before you find your soul displaced from your body."); + end + elseif(e.message:findi("defector")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- Needs amiably or better + e.self:Say("It seems a gnome magician by the name of Toko Binlittle has gone and left the guild. He joined forces with the [Pirates of Gunthak]. Find him. He must be destroyed. Our secrets cannot be known. Return his head to me and I shall give you the [Elemental Grimoire]."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("There is much more you must do for the Library of Mechanimagica before such things can be revealed to you. Perhaps fetching minotaur horns and returning them to Professor Theardor will earn you membership to the Library of Mechanimagica."); + else + e.self:Say("You dare to speak to a member of the Eldritch Collective! You had best leave before you find your soul displaced from your body."); + end + elseif(e.message:findi("pirates of gunthak")) then + e.self:Say("From what I know, the Pirates of Gunthak are from the southern Gulf of Gunthak. It seems as though a small band of them has been operating within the Ocean of Tears, leagues from their own territory."); + elseif(e.message:findi("elemental grimoire")) then + if(e.other:GetFactionValue(e.self) >= 0) then -- Needs indifferent + e.self:Say("The Elemental Grimoire contains the knowledge which will advance your techniques in research. With it you shall learn to research spells and scribe them for your own spellbook."); + else + e.self:Say("You dare to speak to a member of the Eldritch Collective! You had best leave before you find your soul displaced from your body."); + end + elseif(e.message:findi("personal spellbook")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- Needs amiably or better + e.self:Say("My spellbook is very important to me. It is impossible for anyone to open it. I have magically locked it. Only my brother Retlon knows the words to release its secrets."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("There is much more you must do for the Library of Mechanimagica before such things can be revealed to you. Perhaps fetching minotaur horns and returning them to Professor Theardor will earn you membership to the Library of Mechanimagica."); + else + e.self:Say("You dare to speak to a member of the Eldritch Collective! You had best leave before you find your soul displaced from your body."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13333})) then + e.self:Say("So, you have survived. There is no doubt in my mind that you achieved this solely with your own powers. Only a dim one requires the assistance of others. Take this. May it help you in your pursuit of greatness. [Further tasks] may bring you to that point."); + e.other:Faction(e.self,245,15); -- Faction: Eldritch Collective + e.other:Faction(e.self,238,-2); -- Faction: Dark Reflection + e.other:Faction(e.self,239,-1); -- Faction: The Dead + e.other:Faction(e.self,255,2); -- Faction: Gem Choppers + e.other:Faction(e.self,333,2); -- Faction: King Ak'Anon + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(15400,15397,15399,15398,15317,15058),150); -- Item(s): Spell: Elementaling: Air (15400), Spell: Elementaling: Earth (15397), Spell: Elementaling: Fire (15399), Spell: Elementaling: Water (15398), Spell: Elementalkin: Air (15317), Spell: Elementalkin: Earth (15058) + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13387})) then + e.self:Say("You have done well. I did not expect you for weeks. It is good to have my spellbook returned. It was a simple task. Now I have news of a larger matter. It has to do with a [defector]."); + e.other:Faction(e.self,245,10); -- Faction: Eldritch Collective + e.other:Faction(e.self,238,-1); -- Faction: Dark Reflection + e.other:Faction(e.self,239,-1); -- Faction: The Dead + e.other:Faction(e.self,255,1); -- Faction: Gem Choppers + e.other:Faction(e.self,333,1); -- Faction: King Ak'Anon + e.other:QuestReward(e.self,0,0,0,0,15399,150); + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13388})) then + e.self:Say("The Elemental Grimoire contains the knowledge which will advance your techniques in research. With it you shall learn to research spells and scribe them for your own spellbook."); + e.other:Faction(e.self,245,20); -- Faction: Eldritch Collective + e.other:Faction(e.self,238,-3); -- Faction: Dark Reflection + e.other:Faction(e.self,239,-1); -- Faction: The Dead + e.other:Faction(e.self,255,3); -- Faction: Gem Choppers + e.other:Faction(e.self,333,3); -- Faction: King Ak'Anon + e.other:QuestReward(e.self,0,0,0,0,17502,300); -- elemental grimoire + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Tilkzog_Mournunder.lua b/akanon/Tilkzog_Mournunder.lua new file mode 100644 index 0000000..a3cf5d0 --- /dev/null +++ b/akanon/Tilkzog_Mournunder.lua @@ -0,0 +1,50 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("silk thread")) then + e.self:Say("To create silk thread, combine 2 spiderling silk inside a tailoring kit."); + elseif(e.message:findi("hail")) then + e.self:Say("Hail " .. e.other:GetCleanName() .. ". I am Tilkzog Mournunder, Necromancer of the Dark Reflection. It is my duty here to assist not only the young necromancers of the Dark Reflection but also those wizards, magicians, and enchanters that have been called into the service of the Plague Bringer. I will aid you in obtaining an outfit of [durable clothing] suitable for a young sorcerer of the Dark Reflection. Once you have been adequately outfitted for venturing beyond our homeland in service of the Plague Bringer return to me and I will assist you in obtaining a [staff of dark reflections]."); + elseif(e.message:findi("staff of dark reflections")) then + e.self:Say("The Dark Reflection has many enemies even within our home of Ak'Anon and the surrounding Steamfont Mountains. Many fear and oppose the beliefs that grant us our vision and powers. A wizard of the Eldrich Collective by the name of Winex Kloktik has been aiding members of the Deep Muses hunt and slay those loyal to Bertoxxulous and the Dark Reflection. Seek Winex Kloktik and eliminate her. When you have completed this task bring me Winex's Staff."); + elseif(e.message:findi("durable clothing")) then + e.self:Say("The sorcerous servants of Bertoxxulous, the Plague Bringer, are privileged with the sight of the Dark Reflection. This gift enlightens us to the powers of disease, decay, death, and destruction. Forces that are misunderstood and feared by the majority of Norrath, including our fellow gnomes of Ak'Anon. These forces are the catalyst of change, cleansing Norrath of the old and weak, and we are the agents of this catalyst. However, before you will be of much use to the Dark Reflection you must gather the [components] necessary for the outfit that will protect and aid you in your duties."); + elseif(e.message:findi("components")) then + e.self:Say("You will need this Curing Kit and varying components depending on the piece of clothing you wish to fabricate. Do you desire to craft a [plague sorcerer cap], [plague sorcerer wristband], [plague sorcerer gloves], [plague sorcerer boots], [plague sorcerer sleeves], [plague sorcerer pantaloons], or [plague sorcerer robe]?"); + e.other:SummonCursorItem(17125); -- Item: Curing Kit + elseif(e.message:findi("plague sorcerer boots")) then + e.self:Say("To craft Plague Sorcerer Boots you require two [silk thread], two ebon drakeling bile, and two large rat pelts. Once you have the necessary components combine them in your Curing Kit with this Tattered Boot Pattern."); + e.other:SummonCursorItem(19561); -- Item: Tattered Boot Pattern + elseif(e.message:findi("plague sorcerer cap")) then + e.self:Say("To craft a Plague Sorcerer Cap you will require two [silk thread], ebon drakeling bile, and a grikbar kobold scalp. Once you have the necessary components combine them in your Curing Kit with this Tattered Cap Pattern."); + e.other:SummonCursorItem(19555); -- Item: Tattered Cap Pattern + elseif(e.message:findi("plague sorcerer gloves")) then + e.self:Say("To craft Plague Sorcerer Gloves you require two [silk thread], ebon drakeling bile, and two yellow recluse silks. Once you have the necessary components combine them in your Curing Kit with this Tattered Glove Pattern."); + e.other:SummonCursorItem(19559); -- Item: Tattered Glove Pattern + elseif(e.message:findi("plague sorcerer pantaloons")) then + e.self:Say("To craft Plague Sorcerer Pantaloons you require two [silk thread], young ebon drake bile, and four yellow recluse silks. Once you have the necessary components combine them in your Curing Kit with this Tattered Pant Pattern."); + e.other:SummonCursorItem(19560); -- Item: Tattered Pant Pattern + elseif(e.message:findi("plague sorcerer robe")) then + e.self:Say("To craft a Plague Sorcerer Robe you will require three [silk thread], ebon drake bile, a giant rat pelt, and two yellow recluse silks. Once you have the necessary components combine them in your Curing Kit with this Tattered Tunic Pattern."); + e.other:SummonCursorItem(19556); -- Item: Tattered Tunic Pattern + elseif(e.message:findi("plague sorcerer sleeves")) then + e.self:Say("To craft Plague Sorcerer Sleeves you require two [silk thread], young ebon drake bile, and three yellow recluse silks. Once you have the necessary components combine them in your Curing Kit with this Tattered Sleeves Pattern."); + e.other:SummonCursorItem(19557); -- Item: Tattered Sleeve Pattern + elseif(e.message:findi("plague sorcerer wristband")) then + e.self:Say("To craft a Plague Sorcerer Wristband you require a [silk thread], ebon drakeling bile, and a large rat pelt. Once you have the necessary components combine them in your Curing Kit with this Tattered Wristband Pattern."); + e.other:SummonCursorItem(19558); -- Item: Tattered Wristband Pattern + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10994})) then + e.self:Say("It is good to know that one so zealously opposed to the Dark Reflection has been eliminated. Take this Rough Hewn Staff and when you have acquired a Harpies Eye and Pristine Ebon Drakeling Scales take the Staff, Eye, and Scales to Clockwork SmithXIII. The clockwork will put the finishing touches on your new staff."); + e.other:Faction(e.self,238,10); -- Faction: Dark Reflection + e.other:Faction(e.self,245,-1); -- Faction: Eldritch Collective + e.other:Faction(e.self,255,-1); -- Faction: Gem Choppers + e.other:Faction(e.self,240,-1); -- Faction: Deep Muses + e.other:QuestReward(e.self,0,0,0,0,10999,100); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Tobon_Starpyre.lua b/akanon/Tobon_Starpyre.lua new file mode 100644 index 0000000..9d1de53 --- /dev/null +++ b/akanon/Tobon_Starpyre.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It is good to see the young show an interest in the ways of magic. Its circles can be used in tandem with our unique ways of tinkering. Have you [joined the Eldritch Collective] or are you [merely curious]?"); + elseif(e.message:findi("joined the Eldritch Collective")) then + e.self:Say("Very good. Would you like to [go on a little mission] or are you busy studying?"); + elseif(e.message:findi("merely curious")) then + e.self:Say("Please look around. We have much knowledge within these halls. May you soon find your place among our members. Good day."); + elseif(e.message:findi("go on a little mission")) then + e.self:Say("Fabulous! Here is a list of the observers outside of Ak'Anon. Go and ask each for a [spare telescope lens]. Each should give you one. We have need of them. I await your return as does your reward, either Fire Bolt or Fingers of Fire. Meant for a skilled wizard of the eighth trial."); + e.other:SummonCursorItem(18868); -- Observer List + elseif(e.message:findi("yendar")) then + e.self:Say("Oh, he is my older brother. Used to be the leader of the Eldritch Collective. Then he founded the Observers, a pretty good piece of work. Went off his rocker a long while back, though. Became obsessed with Innoruuk and the Teir'Dal. Stays away for days at a time, nobody knows where he has been. Mother still worries about him, asked me to keep an eye on him. But he is a grown gnome, and with his mastery of the art, has little to fear in this world or others. But if you are seeking him, I would look outside Ak'Anon, in the Steamfonts. That is where he makes his home these days."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18774})) then -- Registration Letter + e.self:Say("Ah.. Welcome, friend! I am Tobon Starpyre, Master Wizard of Library Mechanimagica. This is our tunic - wear it with pride. Study hard, master your skills, and make us proud."); + e.other:Faction(e.self,245,100,0); -- eldritch collective + e.other:Faction(e.self,238,-15,0); -- Dark reflection + e.other:Faction(e.self,239,-5,0); -- the dead + e.other:Faction(e.self,255,15,0); -- gem choppers + e.other:Faction(e.self,333,15,0); -- king ak'anon + e.other:QuestReward(e.self,0,0,0,0,13523,20); -- Soot Stained Gold Robe* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13275, item2 = 13276, item3 = 13277, item4 = 13279})) then + e.self:Say("Thank you for your work. I heard news of the troubles you encountered. Besides these troubles you still completed your mission. We are grateful. And as I once stated, your reward awaits."); + e.other:QuestReward(e.self,math.random(0,5),math.random(0,5),math.random(0,5),0,eq.ChooseRandom(15380,15477,15656),500); -- Item(s): Spell: Column of Frost (15380), Spell: Fire Bolt (15477), Spell: Shock of Ice (15656) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Vaenor_Husga.lua b/akanon/Vaenor_Husga.lua new file mode 100644 index 0000000..eac068e --- /dev/null +++ b/akanon/Vaenor_Husga.lua @@ -0,0 +1,11 @@ +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18702})) then + e.other:Faction(e.self,238,100,0); -- Dark reflection + e.other:Faction(e.self,245,-10,0); -- eldritch collective + e.other:Faction(e.self,255,-10,0); -- gem choppers + e.other:Faction(e.self,240,-10,0); -- Deepmuses + e.other:QuestReward(e.self,0,0,0,0,13524,20); -- Dark Gold Felt Robe* + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Velena_Corgtec.lua b/akanon/Velena_Corgtec.lua new file mode 100644 index 0000000..8ecea12 --- /dev/null +++ b/akanon/Velena_Corgtec.lua @@ -0,0 +1,11 @@ +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18704})) then + e.other:Faction(e.self,238,100,0); -- Dark reflection + e.other:Faction(e.self,245,-10,0); -- eldritch collective + e.other:Faction(e.self,255,-10,0); -- gem choppers + e.other:Faction(e.self,240,-10,0); -- Deepmuses + e.other:QuestReward(e.self,0,0,0,0,13524,20); -- Dark Gold Felt Robe* + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Welno_Tanlonikan.lua b/akanon/Welno_Tanlonikan.lua new file mode 100644 index 0000000..4479aef --- /dev/null +++ b/akanon/Welno_Tanlonikan.lua @@ -0,0 +1,53 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings there " .. e.other:GetCleanName() .. "! I am Welno Tanlonikan Assassin of Akanon. I pride myself on being one of the few to train our younger prospects in the ways of the rogue. If you are a young gnome rogue in training then I might have some [tasks] for you."); + elseif(e.message:findi("tasks")) then + e.self:Say("Well I should hope you are truly a Rogue of Akanon or else I dont have any work for ya! However if you are then I have some things for you to do. I will present you with a magical box that you will use to craft together certain components that will make an armor material. You will then take the material that you have fashioned with the proper pattern to the forge to create your own armor. I will provide you with whatever patterns are necessary along with the armor [recipes] should you so ask."); + elseif(e.message:findi("recipes")) then + e.self:Say("I have the armor recipes for all pieces of Chainmail of the Shadowwalker all you must do is simply ask for whichever piece you want to craft. I can provide you with the recipe for Shadowwalker [Coifs], [Bracers], [Sleeves], [Boots], [Leggings], [Gloves] and [Tunic]. Once you have collected the necessary components for each recipe combine them in this box to fashion the correct material."); + e.other:SummonCursorItem(17254); -- Welnos Assembly Kit + elseif(e.message:findi("boots")) then + e.self:Say("There are many things in the Steamfont Mountains that I am sure you don't want to step in " .. e.other:GetCleanName() .. ". To create your boot material you will need to combine 3 Bricks of Crude Bronze, 1 Yellow Reculse Silk, 2 Spiderling Eyes and 1 Mead in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Shadowwalkers Chainmail Boots."); + e.other:SummonCursorItem(19634); -- Crude Boot Mold + elseif(e.message:findi("bracer")) then + e.self:Say("A pair of these here bracers will be a great addition to your armor set there " .. e.other:GetCleanName() .. ". To create your bracer material you will need to combine 1 Brick of Crude Bronze, 1 Runaway Clockwork Motor, 1 Infected Rat Liver and 1 Bandage in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Shadowwalkers Chainmail Bracer."); + e.other:SummonCursorItem(19632); -- Crude Bracer Mold + elseif(e.message:findi("coif")) then + e.self:Say("While you should usually be using the shadows to your advantage should you need to face your opponent having a good coif will greatly increase your chances of survival. To create your coif material you will need to combine 2 Bricks of Crude Bronze, 1 Rat Meat, 1 Grikbar Kobold Fur and 1 Throwing Knife in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Shadowwalkers Chainmail Coif."); + e.other:SummonCursorItem(19631); -- Crude Helm Mold + elseif(e.message:findi("gloves")) then + e.self:Say("Well you sure cant pick someones pocket with a broken hand now can you? I agree that gloves would be a great armor piece for you to craft. To create your glove material you will need to combine 3 Bricks of Crude Bronze, 1 Yellow Reculse Silk, 1 Brownie Leg , and 2 Spider Legs in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Shadowwalkers Chainmail Gloves."); + e.other:SummonCursorItem(19633); -- Crude Gauntlets Mold + elseif(e.message:findi("leggings")) then + e.self:Say("What do you think you are doing running around here with no pants on! To create your leggings material you will need to combine 4 Bricks of Crude Bronze, 1 Kobold Tooth, 1 Plague Rat Tail , 1 Bottle and the Torn Cloak of Faerron in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Shadowwalkers Chainmail Leggings."); + e.other:SummonCursorItem(19636); -- Crude Greaves Mold + elseif(e.message:findi("sleeves")) then + e.self:Say("Having the proper sleeves will definitely be to your advantage when in a heated battle. To create your sleeves material you will need to combine 2 Bricks of Crude Bronze, 2 Brownie Brains and 1 Young Ebon Drake Wing in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Shadowwalkers Chainmail Sleeves."); + e.other:SummonCursorItem(19635); -- Crude Vambrace Mold + elseif(e.message:findi("tunic")) then + e.self:Say("I'm glad to see that you have progressed this far in your training and that you are ready to craft your final armor piece. To create your tunic material you will need to combine 5 Bricks of Crude Bronze, 1 Minotaur Scalp, 1 Brownie Parts, 1 Runaway Clockwork Motor, 1 Swirling Mist and the evil Dirolensab`s Bracer in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Shadowwalkers Chainmail Tunic. When you are finished with your tunic please come back to see me as I have a [favor] to ask of you."); + e.other:SummonCursorItem(19637); -- Crude Breastplate Mold + elseif(e.message:findi("favor")) then + e.self:Say("Well you see I have been working on constructing some new daggers for all new rogues but I am in need of a few items to make my first prototype. If you were able to collect the rare items I am in need of to make this dagger I would be happy to give you the first I make should I be able to create it. Will you [collect] these rare items for me?"); + elseif(e.message:findi("collect")) then + e.self:Say("Excellent please seek out 2 Minotaur Scalps and 2 Mountain Lion Jawbones and return to me with them when you are done."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18776})) then -- Note + e.self:Say("Yes, I just knew you'd see it my way, " .. e.other:GetCleanName() .. ". Anyway, welcome to our little part of Ak'Anon's underworld. We have to pay a high price to keep our small orgainzation hidden, which keeps us all busy around here. Now throw this on, and let's put you to work."); + e.other:Faction(e.self,240,100); -- Deep Muses + e.other:Faction(e.self,288,15); -- Merchants of Ak'Anon + e.other:Faction(e.self,255,15); -- Gem Choppers + e.other:Faction(e.self,238,-15); -- Dark Reflection + e.other:QuestReward(e.self,0,0,0,0,13519,20); -- Scuffed Tunic* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 9108,item2 = 9108, item3 = 9109, item4 = 9109})) then -- Minotaur Scalp x 2, Mountain Lion Jawbone x 2 + e.self:Say("Here is that dagger I promised you " .. e.other:GetCleanName() .. "!"); + e.other:QuestReward(e.self,0,0,0,0,9110); -- Gemmed Shadowwalkers Dagger + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Windlebeck_Tobokog.lua b/akanon/Windlebeck_Tobokog.lua new file mode 100644 index 0000000..53749e3 --- /dev/null +++ b/akanon/Windlebeck_Tobokog.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("plague warrior helm")) then + e.self:Say("To assemble a Plague Warrior Helm you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Helm Mold. Once that is done combine the Crude Bronze Helm with a Ruined Coyote Pelt and two Rebel Clockwork Eye Lenses in the Mail Assembly Kit."); + e.other:SummonCursorItem(19631); -- crude helm mold + elseif(e.message:findi("plague warrior bracer")) then + e.self:Say("To assemble a Plague warrior Mail Bracer you will need to obtain a brick of crude bronze and smelt it in a forge with a Water Flask and this Crude Bracer Mold. Once that is done, combine the Crude Bronze Bracer with a Ruined Coyote Pelt and a Rebel Clockwork Wrist Section in the Mail Assembly Kit."); + e.other:SummonCursorItem(19632); -- crude bracer mold + elseif(e.message:findi("plague warrior gauntlets")) then + e.self:Say("To assemble Plague warrior Gauntlets you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this crude Gauntlet Mold. Once that is done combine the Crude Bronze Gauntlets with a Ruined Coyote Pelt and two Rebel Clockwork Hand Plates in the Mail Assembly Kit."); + e.other:SummonCursorItem(19633); -- crude gauntlets mold + elseif(e.message:findi("plague warrior boots")) then + e.self:Say("To assemble Plague warrior Mail Boots you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this crude Boot Mold. Once that is done combine the Crude Bronze Boots with two Ruined Coyote Pelts, and two Rebel Clockwork Foot Plates in the Mail Assembly Kit."); + e.other:SummonCursorItem(19634); -- crude boot mold + elseif(e.message:findi("plague warrior vambraces")) then + e.self:Say("To assemble Plague warrior Vambraces you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Vambrace Mold. Once that is done combine the Crude Bronze Vambraces with a Low Quality Coyote Pelt and two Rebel Clockwork Arm Sections in the Mail Assembly Kit."); + e.other:SummonCursorItem(19635); -- crude vambrace mold + elseif(e.message:findi("plague warrior greaves")) then + e.self:Say("To assemble Plague warrior Greaves you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Greaves Mold. Once that is done combine the Crude Bronze Greaves with two Low Quality Coyote Pelts and two Rebel Clockwork Leg Sections in the Mail Assembly Kit."); + e.other:SummonCursorItem(19636); -- crude greaves mold + elseif(e.message:findi("plague warrior breastplate")) then + e.self:Say("To assemble a Plague warrior Breastplate you will need to obtain four bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Breastplate Mold. Once that is done combine the Crude Bronze Breastplate with a Coyote Pelt, a Rebel Clockwork Chest Plate, and a Rebel Clockwork Back Plate in the Mail Assembly Kit."); + e.other:SummonCursorItem(19637); -- crude breastplate mold + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10986}, 0)) then + e.self:Say("Hail " .. e.other:GetCleanName() .. "! You must be one of Naygog's new soldiers. Naygog has asked me to help get you outfitted in a suit of armor to protect you from the weapons of our foes. I have assembled a kit for you that will allow you to construct the armor pieces once you have gathered the necessary components. The required components vary according to which piece of Plague Warrior Armor you are planning on assembling. Do you wish to craft a [plague warrior helm], a [plague warrior bracer], [plague warrior gauntlets], [plague warrior boots], [plague warrior vambraces], [plague warrior greaves], or a [plague warrior breastplate]."); + e.other:QuestReward(e.self,0,0,0,0,17124); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Wuggan_Azusphere.lua b/akanon/Wuggan_Azusphere.lua new file mode 100644 index 0000000..f681279 --- /dev/null +++ b/akanon/Wuggan_Azusphere.lua @@ -0,0 +1,13 @@ +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18772})) then -- Registration Letter + e.self:Say("Welcome to Library Mechanimagica. I am Master Magician Wuggan Azusphere. and I will help to teach you the ways of summoning. Here is our guild tunic, make us proud."); + e.other:Faction(e.self,245,100,0); -- eldritch collective + e.other:Faction(e.self,238,-15,0); -- Dark reflection + e.other:Faction(e.self,239,-5,0); -- the dead + e.other:Faction(e.self,255,15,0); -- gem choppers + e.other:Faction(e.self,333,15,0); -- king ak'anon + e.other:QuestReward(e.self,0,0,0,0,13521,20); -- Dusty Gold Robe* + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Xalirilan_Zarinokosalio.lua b/akanon/Xalirilan_Zarinokosalio.lua new file mode 100644 index 0000000..5a96ba8 --- /dev/null +++ b/akanon/Xalirilan_Zarinokosalio.lua @@ -0,0 +1,51 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oi there! Its nice to meet you. You must excuse me for I am currently working on a special spell for my studies. I would love to talk but I have to teach a class very soon to the new [initiates] and I don't have my lesson prepared yet. Are you also a [young initiate of the Eldritch Collective]? If you are then I hope you will be ready for the lesson."); + elseif(e.message:findi("initiate")) then + e.self:Say("Excellent. You must understand that I am very pressed for time but if you are a young initiate of the Collective then I always have time to share my knowledge with you. If you are interested I have some [training] for you to begin. These tasks will help you prepare for the upcoming lesson as well!"); + elseif(e.message:findi("training")) then + e.self:Say("I have a number of tasks that I ask new recruits of the Eldritch Collective to complete. These task will test both your ability to fight as well as your navigational skills, 2 very important factors on your road to infinite knowledge. When you are ready to begin your journeys I will present you with a Tinkered Sewing Kit that you will use to gather numerous [important components]."); + elseif(e.message:findi("important components")) then + e.self:Say("All right then, here is your Tinkered Sewing Kit. In this sewing kit you will combine a number of recipes that will be used for creating your Eldritch Collective Initiate Armor. When you are ready to craft a certain armor piece all you must to is tell me which piece you [want] to craft. I will then present you with the component recipe along with the applicable pattern for [Caps], [Bracers], [Sleeves], [Sandals], [Trousers], [Gloves] and [Robes]. When you have completed the material for whatever piece you asked for you will combine it in a sewing kit with the appropriate pattern to fashion your armor piece. I do suggest though that you attempt your robe last as the components are more difficult then any other piece to collect."); + e.other:SummonCursorItem(17256); -- Item: Tinkered Sewing Kit + elseif(e.message:findi("trousers")) then + e.self:Say("One will need to question your intellectual abilities if they see you running around without any pants on so let's make sure that doesn't happen. To create your trousers material you will need to combine 4 Grikbar Kobold Scalps, 1 Aviak Beak, 1 Runaway Clockwork Motor and Cloth Pants in your assembly kit. Once you have created the proper material take it to a sewing kit along with this pattern to fashion your very own Trousers of the Collective Initiate."); + e.other:SummonCursorItem(22587); -- Item: An Enchanted Trousers Pattern + elseif(e.message:findi("sleeves")) then + e.self:Say("Your sleeves will be a very important part of your armor set. To create your sleeves material you will need to combine 2 Grikbar Kobold Scalps, 2 Coyote Skulls and Cloth Sleeves in your assembly kit. Once you have created the proper material take it to a sewing kit along with this pattern to fashion your very own Sleeves of the Collective Initiate."); + e.other:SummonCursorItem(22586); -- Item: An Enchanted Sleeves Pattern + elseif(e.message:findi("sandals")) then + e.self:Say("Sandals are always a wise idea because you never know what you where your adventures will take you. To create your sandal material you will need to combine 3 Grikbar Kobold Scalps, 1 Kobold Tooth, 2 Harpy Wings, 1 Russet Oxide and Cloth Sandals in your assembly kit. Once you have created the proper material take it to a sewing kit along with this pattern to fashion your very own Sandals of the Collective Initiate."); + e.other:SummonCursorItem(22585); -- Item: An Enchanted Sandals Pattern + elseif(e.message:findi("robe")) then + e.self:Say("I am very pleased to see that you have progressed through your training in such a timely manner, you should be very proud! To create your robe material you will need to combine 5 Grikbar Kobold Scalps, 1 Young Ebon Drake Bile, 1 Brownie Brain, 1 Diseased Bone Marrow, 1 Cloth Shirt and the evil Faeronoliop`s Staff in your assembly kit. Once you have created the proper material take it to a sewing kit along with this pattern to fashion your very own Robe of the Collective Initiate. Please return to me once you have fashioned your robe for I might have a few [final tasks] for you to complete."); + e.other:SummonCursorItem(22589); -- Item: An Enchanted Robe Pattern + elseif(e.message:findi("gloves")) then + e.self:Say("Its is very important that your hands are well guarded while you are attempting to practice magic because your hands will channel your energies thus having them injured would put a great burden on your training. To create your gloves material you will need to combine 3 Grikbar Kobold Scalps, 1 Grikbar Kobold Fur, 1 Giant Rat Pelt, 1 Giant Rat Ear and 1 Brownie Leg in your assembly kit. Once you have created the proper material take it to a sewing kit along with this pattern to fashion your very own Gloves of the Collective Initiate."); + e.other:SummonCursorItem(22588); -- Item: An Enchanted Gloves Pattern + elseif(e.message:findi("final tasks")) then + e.self:Say("Well I have been studying some new annals that were presented to me by some high councilmen in Rivervale. They had found them will excavating some ruins in the Gorge of King Xorbb and were unable to decipher what they meant. I had them bound in a special tome but unfortunately some pickpockets stole them from me in hopes that they would bring them great power I suppose. If you can find these 4 pages for me I would be very grateful for I would be able to finish my studies of them. Will you [seek out the stolen tome pages]?"); + elseif(e.message:findi("seek out the stolen tome pages")) then + e.self:Say("I am very pleased to hear that you are willing to help and from your track record I have no doubt in my mind that you will be able to retrieve these pages. I would guess that they were given to the Dark Reflection casters for study after they were stolen from me so that would be where I would look. These casters do not understand our cause and serve dark gods so lethal force may be necessary. Just please be careful and make sure you have worthy adventuring partners with you because the battle may not be easy."); + elseif(e.message:findi("cap")) then + e.self:Say("A true initiate of the Eldritch Collective must always have a trusty cap on to protect any blows to the head. To create your cap material you will need to combine 2 Grikbar Kobold Scalps, 1 Mountain Lion Pelt, 1 Wolf Meat and a Cloth Cap in your assembly kit. Once you have created the proper material take it to a sewing kit along with this pattern to fashion your very own Cap of the Collective Initiate"); + e.other:SummonCursorItem(22583); -- Item: An Enchanted Cap Pattern + elseif(e.message:findi("bracer")) then + e.self:Say("Bracers are a wise idea and will keep you well guarded young Celebus. To create your bracer material you will need to combine 1 Grikbar Kobold Scalps, 1 Plague Rat Tail, 1 Minotaur Scalp and a Cloth Wristband in your assembly kit. Once you have created the proper material take it to a sewing kit along with this pattern to fashion your very own Bracer of the Collective Initiate."); + e.other:SummonCursorItem(22584); -- Item: An Enchanted Bracer Pattern + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9116, item2 = 9117, item3 = 9118, item4 = 9119})) then + e.self:Say("I knew you could do it! You have proven yourself worthy of your god and of your Guild! All the highest ranking officials of the Collective will surely hear of your good deeds. Upon studying these pages a bit further it seems it forms a book of incantations that will aid you in furthering your studies. Please take this magical book for I have learned all I can from it. Good luck!"); + e.other:Faction(e.self,245,10,0); -- Faction: Eldritch Collective + e.other:Faction(e.self,238,-1,0); -- Faction: Dark Reflection + e.other:Faction(e.self,239,-1,0); -- Faction: The Dead + e.other:Faction(e.self,255,1,0); -- Faction: Gem Choppers + e.other:Faction(e.self,333,1,0); -- Faction: King Ak'Anon + e.other:QuestReward(e.self,0,0,0,0,9120,25); -- Item: Spellbook of the Eldritch Initiate + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Zapho_the_Ancient.lua b/akanon/Zapho_the_Ancient.lua new file mode 100644 index 0000000..07d8318 --- /dev/null +++ b/akanon/Zapho_the_Ancient.lua @@ -0,0 +1,12 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh! Please excuse me. I was busy creating some new illusions for my collection. Hello there, " .. e.other:GetCleanName() .. "! I am Zapho the Ancient. My return from the halls of the Realm of Heroes is the will of Bertoxxulous. I must watch over those who catch the eyes of the gods and recognize their heroic deeds."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/Zenrel_Ottonoggin.lua b/akanon/Zenrel_Ottonoggin.lua new file mode 100644 index 0000000..23561b8 --- /dev/null +++ b/akanon/Zenrel_Ottonoggin.lua @@ -0,0 +1,12 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You look like you could use a copy of the Tinker's News and World report. " .. e.other:GetCleanName() .. ". Find out everything that is happening both below ground and above. Buy a copy now. It's cheap."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/a_clockwork_receptionist.lua b/akanon/a_clockwork_receptionist.lua new file mode 100644 index 0000000..521f47d --- /dev/null +++ b/akanon/a_clockwork_receptionist.lua @@ -0,0 +1,12 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("where is king akanon")) then + e.self:Say("Brell strike you down for not knowing!! Who could not have heard of the name of his royal highness King Horatio Ak'Anon. This great city is named after him. He rules from his throne room in Ak'Anon Palace which he constructed upon the underground lake."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akanon/a_mechanic.lua b/akanon/a_mechanic.lua new file mode 100644 index 0000000..98e3e1a --- /dev/null +++ b/akanon/a_mechanic.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("clockwork")) then + e.self:Say("The clockworks of Ak'Anon are automata created by the Eldritch Collective. They come in many models from combat to service. All are formidable opponents."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("Hold thy tongue! Only a follower of Meldrath the Mad would ponder such things! King Ak'Anon has forbidden the black arts."); + elseif(e.message:findi("oven")) then + e.self:Say("I have not seen an oven within Ak'Anon. All our food is created by clockworks and you cannot possibly use one of those."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All three true circles of magic are studied within the walls of the Library of Mechanimagica. It sits high in the central cavern near the zoo."); + elseif(e.message:findi("armor")) then + e.self:Say("The finest armor is forged and sold at the Forge of Defiance which is near Ak'Anon Zoo."); + elseif(e.message:findi("forge")) then + e.self:Say("I don't believe I have seen one open to the public. I may be wrong. If you are referring to the Forge of Defiance, it is near the zoo."); + elseif(e.message:findi("gemchopper")) then + e.self:Say("In Gemchopper Hall you will find our warriors, the Gemchoppers. It is from among their ranks that we recruit our Watchmen."); + elseif(e.message:findi("food")) then + e.self:Say("If you are hungry, you can find food sold by many clockwork merchants. If you need rations for adventuring, you should visit The Works on the lake's edge."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rest is what you seek. Venture over to Ak'Anon's Zoo. Within its structure you shall find this city's only inn."); + elseif(e.message:findi("weapon")) then + e.self:Say("Weapons are forged and sold at the Tools of Battle near Ak'Anon Zoo. You can also find weapons at the warrior guild, Gemchopper Hall."); + end +end \ No newline at end of file diff --git a/akheva/#A_shimmering_presence.lua b/akheva/#A_shimmering_presence.lua new file mode 100644 index 0000000..ed385fd --- /dev/null +++ b/akheva/#A_shimmering_presence.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("'s voice invades your mind, drawing images of past present and future together into a perverse harmony. Some images you recognize as your own, but the others seem to be coming from the spirit's own [memories]."); + elseif(e.message:findi("memories")) then + e.self:Emote(" begins to glow a bit brighter. Your mind is filled with visions of a great swirl of clouds and lightning. You can almost feel the wind of the storm creeping into the chinks in your armor. It looks as if the storm is creeping across the surface of Luclin. You see several figures standing at the entrance of a [great temple]. The storm seems to be bearing down on them."); + elseif(e.message:findi("great temple")) then + e.self:Emote(" continues to flood your mind with images of the storm bearing down on the temple. Your view suddenly shifts. You're still looking at the storm, but it appears to be moving toward you this time. There is a creature beside you wearing a robe, holding a scepter in one of his...four arms! He is obviously the leader of the group, As he is wearing beautiful [ornate robes] compared to the rest of the four armed figures around you."); + elseif(e.message:findi("ornate robes")) then + e.self:Emote(" glows brighter still as your vision turns to follow the robed figure up the stairs of the entrance to the temple. The figure raises his scepter toward the storm and begins to recite some unfamiliar words. A crackle of magical energy blazes across the sky seemingly in defiance of the raging storm. The energy quickly dissipates however, and the storm continues to bear down on the temple. The figure cries out in pain as the scepter in his hand shatters into many shards. The sofly glowing gem from the scepter head rolls silently down the steps and disappears."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10294})) then + e.self:Emote(" begins to quiver and shake. The formless entity appears to grow and shrink in complete disregard to natural laws. The light in the temple around you appears to slowly dim until you are surrounded by an impenetrable cloak of shadows. Fear grips your heart as your vision slowly adapts to accommodate the low light. When you can finally make out the figure before you, you find yourself silently praying for the darkness to return."); + eq.spawn2(179019,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + e.other:QuestReward(e.self,0,0,0,0,0,10000); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akheva/#The_Insanity_Crawler.lua b/akheva/#The_Insanity_Crawler.lua new file mode 100644 index 0000000..b44b950 --- /dev/null +++ b/akheva/#The_Insanity_Crawler.lua @@ -0,0 +1,29 @@ +function event_spawn(e) + eq.zone_emote(7, "You hear squealing voices of Centi echo through the dark hallways. Something must have them frightened. You find yourself wondering what could possibly scare the servants of the Akheva. Do you really want to know?"); + eq.set_timer("depop",2940000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop_with_timer(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_slay(e) + -- A_mind_worm + eq.spawn2(179003,0,0,e.self:GetX() - 5,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.spawn2(179003,0,0,e.self:GetX() + 5,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.spawn2(179003,0,0,e.self:GetX(),e.self:GetY() - 5,e.self:GetZ(),e.self:GetHeading()); + eq.spawn2(179003,0,0,e.self:GetX(),e.self:GetY() + 5,e.self:GetZ(),e.self:GetHeading()); + eq.spawn2(179003,0,0,e.self:GetX(),e.self:GetY() + 10,e.self:GetZ(),e.self:GetHeading()); +end diff --git a/akheva/#The_Itraer_Vius.lua b/akheva/#The_Itraer_Vius.lua new file mode 100644 index 0000000..13c037e --- /dev/null +++ b/akheva/#The_Itraer_Vius.lua @@ -0,0 +1,14 @@ +function event_spawn(e) + eq.set_timer("cast",1000); + eq.set_timer("depop",3000); +end + +function event_timer(e) + if(e.timer == "cast") then + eq.stop_timer("cast"); + e.self:CastSpell(2818,e.self:GetID(),0,1); + elseif(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(); + end +end diff --git a/akheva/#The_Spirit_of_Akelha-Ra.lua b/akheva/#The_Spirit_of_Akelha-Ra.lua new file mode 100644 index 0000000..5199b2a --- /dev/null +++ b/akheva/#The_Spirit_of_Akelha-Ra.lua @@ -0,0 +1,35 @@ +function event_spawn(e) + eq.set_timer("depop",1800000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("'s hollow eyes look up at you. You have the distinct impression that she can see right into the darkest shadows of your soul. She opens her mouth to speak but the sounds you hear come from inside your mind. 'Greetings mortal, thank you for releasing me from my [tormented prison]."); + elseif(e.message:findi("tormented prison")) then + e.self:Emote(" appears to be fading in and out of existence as you speak to her. The spirit's voice fills your mind. 'I am Akelha`Ra, once high priestess of Luclin and leader of the Akheva. This form you see before you now is a fading remnant of my former existence. The storm was the cause of my imprisonment in the world of undying [spirits]."); + elseif(e.message:findi("spirits")) then + e.self:Say("We Akheva are immortal entities placed in this plane by the mistrees of shadow. We are her most perfect creation. Death has no meaning to us, as even in death we find rebirth through the power of the mistress. My imprisonment was caused by my seperation from the power of the mistress by [Atenha`Ra]. It was she who sent the storm to destroy me and all that followed me."); + elseif(e.message:findi("atenha`ra")) then + e.self:Say("It is more then a little ironic that Atenha`Ra is a reflection of myself. An entity created from my own consciousness, a reflection of a shadow. She now holds the seat of grand power in [Vex Thal], and I have not the power to gain entry to the city, let alone face her. You must find my scepter that was lost in the storm to gain entry to Vex Thal. The scepter has likely lost much of its power from being shattered. Once it is reassembled you will need to merge a Orb of Luclinite with a source of celestial power inside the scepter. The spirits whisper that the emperor of the Shissar holds the power to manipulate such energy. Be weary of him, he is heralded as the slayer of gods, the defiler of realities."); + elseif(e.message:findi("vex thal")) then + e.self:Say("Vex Thal is the sacred home of the Akheva. The place where Luclin's power directly touches this world...ungh...I can not summon the frame of my scepter in my current weakened state. I need a soul to regain my pow...' As she speaks you can see her slowly fade out of existence. You wonder how long her spirit will stay with this world. She seems entirely unable to speak to you now, and can only muster the strength to point at the ground at " .. e.other:GetCleanName() .. "'s feet. " .. e.other:GetCleanName() .. " reaches down a picks up a small emerald off the ground, but it disappears silently into the shadows. Akelha`ra looks as if she is trying to speak again."); + elseif(e.message:findi("frame") or e.message:findi("scepter")) then + e.self:Emote(" opens her mouth to speak, but the voice in your head is no longer audible. You reach forward to touch the fading shadow of a creature and draw back in horror as your hand disrupts the spirit before you. She evaporates into the shadows once more."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9963})) then + e.self:Emote(" laughs quietly as the energy of the gem is absorbed into her being. She begins to chant in what you presume to be Akhevan. She suddenly cries out in pain and her image begins to flicker. She looks at " .. e.other:GetCleanName() .. " directly in the eyes and says, 'Vyanemis Tuis, use my gift wisely.' She disappears into the black marble leaving only a dark scepter frame lying on the floor. " .. e.other:GetCleanName() .. " picks it up."); + e.other:QuestReward(e.self,0,0,0,0,17323,20000); -- Item: Shadowed Scepter Frame + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/akheva/#The_Va-Dyn.lua b/akheva/#The_Va-Dyn.lua new file mode 100644 index 0000000..90a0d32 --- /dev/null +++ b/akheva/#The_Va-Dyn.lua @@ -0,0 +1,14 @@ +function event_spawn(e) + eq.set_timer("cast",1000); + eq.set_timer("depop",3000); +end + +function event_timer(e) + if(e.timer == "cast") then + eq.stop_timer("cast"); + e.self:CastSpell(2816,e.self:GetID(),0,1); + elseif(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(); + end +end diff --git a/akheva/A_mind_worm.lua b/akheva/A_mind_worm.lua new file mode 100644 index 0000000..c2bee60 --- /dev/null +++ b/akheva/A_mind_worm.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",75000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop() + end +end diff --git a/akheva/A_rock.lua b/akheva/A_rock.lua new file mode 100644 index 0000000..e1dc92a --- /dev/null +++ b/akheva/A_rock.lua @@ -0,0 +1,7 @@ +function event_combat(e) + if(e.joined) then + e.self:Emote("falls from the ceiling..."); + eq.spawn2(179015,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end +end \ No newline at end of file diff --git a/akheva/A_shade_golem.lua b/akheva/A_shade_golem.lua new file mode 100644 index 0000000..c2bee60 --- /dev/null +++ b/akheva/A_shade_golem.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",75000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop() + end +end diff --git a/akheva/A_shadow_reaver.lua b/akheva/A_shadow_reaver.lua new file mode 100644 index 0000000..c2bee60 --- /dev/null +++ b/akheva/A_shadow_reaver.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",75000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop() + end +end diff --git a/akheva/Sacrificed_Remains.lua b/akheva/Sacrificed_Remains.lua new file mode 100644 index 0000000..56acd74 --- /dev/null +++ b/akheva/Sacrificed_Remains.lua @@ -0,0 +1,9 @@ +function event_death_complete(e) + if(math.random(1,100) <= 10) then -- 10% chance + e.self:Emote("disolves into a shimmering presence, coalescing into a swirl of smoke and energy."); + eq.spawn2(179018,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + else + e.self:Emote("explodes in a shower of green slime!"); + eq.spawn2(179029,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + end +end diff --git a/akheva/Scurrying.lua b/akheva/Scurrying.lua new file mode 100644 index 0000000..bbe66f9 --- /dev/null +++ b/akheva/Scurrying.lua @@ -0,0 +1,10 @@ +function event_combat(e) + if(e.joined) then + e.self:Emote("feet scratch across the stone floor..."); + eq.spawn2(179346,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + if(math.random(1,2) == 2) then + eq.spawn2(179346,0,0,e.self:GetX()+8,e.self:GetY()+8,e.self:GetZ(),0); + end + eq.depop_with_timer(); + end +end diff --git a/akheva/Shadows.lua b/akheva/Shadows.lua new file mode 100644 index 0000000..eb68a34 --- /dev/null +++ b/akheva/Shadows.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if(e.joined) then + eq.spawn2(179033,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + eq.depop_with_timer(); + end +end diff --git a/akheva/The_Insanity_Crawler.lua b/akheva/The_Insanity_Crawler.lua new file mode 100644 index 0000000..41be0fd --- /dev/null +++ b/akheva/The_Insanity_Crawler.lua @@ -0,0 +1,14 @@ +function event_spawn(e) + eq.set_timer("cast",1000); + eq.set_timer("depop",3000); +end + +function event_timer(e) + if(e.timer == "cast") then + eq.stop_timer("cast"); + e.self:CastSpell(2817,e.self:GetID(),0,1); + elseif(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(); + end +end diff --git a/akheva/The_stones.lua b/akheva/The_stones.lua new file mode 100644 index 0000000..68852bb --- /dev/null +++ b/akheva/The_stones.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if(e.joined) then + eq.spawn2(179034,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + eq.depop_with_timer(); + end +end diff --git a/akheva/The_temple.lua b/akheva/The_temple.lua new file mode 100644 index 0000000..6ffef29 --- /dev/null +++ b/akheva/The_temple.lua @@ -0,0 +1,14 @@ +function event_spawn(e) + eq.set_timer("cast",1000); + eq.set_timer("depop",3000); +end + +function event_timer(e) + if(e.timer == "cast") then + eq.stop_timer("cast"); + e.self:CastSpell(2815,e.self:GetID(),0,1); + elseif(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(); + end +end diff --git a/akheva/You_can_feel.lua b/akheva/You_can_feel.lua new file mode 100644 index 0000000..01f7b50 --- /dev/null +++ b/akheva/You_can_feel.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if(e.joined) then + eq.spawn2(179016,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + eq.depop_with_timer(); + end +end diff --git a/akheva/You_feel.lua b/akheva/You_feel.lua new file mode 100644 index 0000000..f21e712 --- /dev/null +++ b/akheva/You_feel.lua @@ -0,0 +1,13 @@ +function event_combat(e) + if(e.joined) then + e.self:Emote("something crawling up your leg..."); + eq.spawn2(179003,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.spawn2(179003,0,0,e.self:GetX()+4,e.self:GetY()-11,e.self:GetZ(),e.self:GetHeading()); + eq.spawn2(179003,0,0,e.self:GetX()+11,e.self:GetY()-9,e.self:GetZ(),e.self:GetHeading()); + eq.spawn2(179003,0,0,e.self:GetX()-5,e.self:GetY()+13,e.self:GetZ(),e.self:GetHeading()); + if(math.random(1,2) == 2) then + eq.spawn2(179003,0,0,e.self:GetX()-14,e.self:GetY()+8,e.self:GetZ(),e.self:GetHeading()); + end + eq.depop_with_timer(); + end +end diff --git a/akheva/You_trip.lua b/akheva/You_trip.lua new file mode 100644 index 0000000..dd45f62 --- /dev/null +++ b/akheva/You_trip.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if(e.joined) then + e.self:Emote("over a crack in the floor"); + eq.depop_with_timer(); + end +end diff --git a/akheva/encounters/ItraerVius.lua b/akheva/encounters/ItraerVius.lua new file mode 100644 index 0000000..12fb908 --- /dev/null +++ b/akheva/encounters/ItraerVius.lua @@ -0,0 +1,12 @@ +function ItraerViusSpawn(e) + eq.spawn_condition("akheva",1,1); +end + +function ItraerViusDeath(e) + eq.spawn_condition("akheva",1,0); +end + +function event_encounter_load(e) + eq.register_npc_event("ItraerVius", Event.spawn, 179037, ItraerViusSpawn); + eq.register_npc_event("ItraerVius", Event.death, 179037, ItraerViusDeath); +end diff --git a/akheva/encounters/SheiVinitras.lua b/akheva/encounters/SheiVinitras.lua new file mode 100644 index 0000000..8d6999c --- /dev/null +++ b/akheva/encounters/SheiVinitras.lua @@ -0,0 +1,118 @@ +local DEPOP_TIMER = 900000; -- timer is somewhere between 12-16 minutes for sure; precise value uncertain + +local FAKE_SHEI_TYPE = 179032; +local REAL_SHEI_TYPE = 179017; + +local DIABO_TATRUA_TYPE = 179021; +local TAVUEL_TATRUA_TYPE = 179020; +local THALL_TATRUA_TYPE = 179024; +local VA_TATRUA_TYPE = 179023; + +local XIN_XAKRA_TYPE = 179044; +local XIN_XAKRE_TYPE = 179026; +local XIN_XAKRI_TYPE = 179027; +local XIN_XAKRU_TYPE = 179028; + +local XIN_XUKRA_TYPE = 179347; +local XIN_XIKRA_TYPE = 179041; +local XIN_XEKRA_TYPE = 179047; +local XIN_XOKRA_TYPE = 179043; +local XIN_XAKRA__TYPE = 179039; +--local XIN_XYKRA_TYPE = ; -- these mobs existed, but I could not find enough data on them as they were rare +--local XIN_XIKRA__TYPE = ; -- they are very similiar to the others however (I think), so it doesn't really matter +--local XIN_XEKRA__TYPE = ; + +local TRASH = { + DIABO_TATRUA_TYPE, TAVUEL_TATRUA_TYPE, THALL_TATRUA_TYPE, VA_TATRUA_TYPE, XIN_XAKRA_TYPE, XIN_XAKRE_TYPE, XIN_XAKRI_TYPE, XIN_XAKRU_TYPE, + XIN_XUKRA_TYPE, XIN_XIKRA_TYPE, XIN_XEKRA_TYPE, XIN_XOKRA_TYPE, XIN_XAKRA__TYPE +}; + +function SpawnTatrua() + eq.unique_spawn(DIABO_TATRUA_TYPE, 0, 0, -1778, 1128, 19.7, 64); + eq.unique_spawn(THALL_TATRUA_TYPE, 0, 0, -1778, 1108, 19.7, 64); + eq.unique_spawn(TAVUEL_TATRUA_TYPE, 0, 0, -1778, 1058, 18.2, 64); + eq.unique_spawn(VA_TATRUA_TYPE, 0, 0, -1778, 1038, 18.2, 64); +end + +function FakeCombatEvent(e) + if ( e.joined ) then + SpawnTatrua(); + eq.set_timer("aggro", 320000); + else + eq.stop_timer("aggro"); + end +end + +function TimerEvent(e) + if ( e.timer == "aggro" ) then + e.self:Emote("Sivuelaeus Rulour ans Rashan!"); + SpawnTatrua(); + elseif ( e.timer == "depop" ) then + eq.depop(); + end +end + +function FakeDeathEvent(e) + eq.unique_spawn(REAL_SHEI_TYPE, 0, 0, -1736, 1082, 22.6, 63); +end + +function RealCombatEvent(e) + if ( e.joined ) then + SpawnTatrua(); + eq.set_timer("aggro", 320000); + if ( not eq.is_paused_timer("depop") ) then + eq.pause_timer("depop"); + end + else + eq.stop_timer("aggro"); + eq.resume_timer("depop"); + end +end + +function SlayEvent(e) + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(REAL_SHEI_TYPE) + or eq.get_entity_list():IsMobSpawnedByNpcTypeID(FAKE_SHEI_TYPE) + ) then + eq.spawn2( + eq.ChooseRandom(XIN_XAKRA_TYPE, XIN_XAKRE_TYPE, XIN_XAKRI_TYPE, XIN_XAKRU_TYPE, + eq.ChooseRandom(XIN_XUKRA_TYPE, XIN_XIKRA_TYPE, XIN_XEKRA_TYPE, XIN_XOKRA_TYPE, XIN_XAKRA__TYPE) + ), + 0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading() + ); + end +end + +function SpawnEvent(e) + eq.set_timer("depop", DEPOP_TIMER); +end + +function TrashCombatEvent(e) + if ( e.joined ) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + + for _, id in ipairs(TRASH) do + eq.register_npc_event("SheiVinitras", Event.slay, id, SlayEvent); + eq.register_npc_event("SheiVinitras", Event.spawn, id, SpawnEvent); + eq.register_npc_event("SheiVinitras", Event.combat, id, TrashCombatEvent); + eq.register_npc_event("SheiVinitras", Event.timer, id, TimerEvent); + end + + eq.register_npc_event("SheiVinitras", Event.combat, FAKE_SHEI_TYPE, FakeCombatEvent); + eq.register_npc_event("SheiVinitras", Event.death, FAKE_SHEI_TYPE, FakeDeathEvent); + eq.register_npc_event("SheiVinitras", Event.slay, FAKE_SHEI_TYPE, SlayEvent); + + eq.register_npc_event("SheiVinitras", Event.spawn, REAL_SHEI_TYPE, SpawnEvent); + eq.register_npc_event("SheiVinitras", Event.combat, REAL_SHEI_TYPE, RealCombatEvent); + eq.register_npc_event("SheiVinitras", Event.timer, REAL_SHEI_TYPE, TimerEvent); + eq.register_npc_event("SheiVinitras", Event.slay, REAL_SHEI_TYPE, SlayEvent); + + TRASH = nil; +end diff --git a/akheva/script_init.lua b/akheva/script_init.lua new file mode 100644 index 0000000..b9cbfcb --- /dev/null +++ b/akheva/script_init.lua @@ -0,0 +1,2 @@ +eq.load_encounter("ItraerVius"); +eq.load_encounter("SheiVinitras"); diff --git a/arena/Soulbinder_Gendal.lua b/arena/Soulbinder_Gendal.lua new file mode 100644 index 0000000..5671fe5 --- /dev/null +++ b/arena/Soulbinder_Gendal.lua @@ -0,0 +1,15 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID(),0,1); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/bazaar/Aldo_Amondson.lua b/bazaar/Aldo_Amondson.lua new file mode 100644 index 0000000..401c0f5 --- /dev/null +++ b/bazaar/Aldo_Amondson.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". If you're looking to sell a brown horse, I'll be happy to give you a fair price. If you've got a different color horse you'd like to sell talk to one of my brothers."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 21815})) then + e.other:QuestReward(e.self,{itemid = 21820}); -- Item: Bag of Platinum Pieces + + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 21816})) then + e.other:QuestReward(e.self,{itemid = 21821}); -- Item: Heavy Bag of Platinum + + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 21817})) then + e.other:QuestReward(e.self,{itemid = 21822}); -- Item: Big Bag of Platinum + + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 21818})) then + e.other:QuestReward(e.self,{itemid = 21823}); -- Item: Huge Bag of Platinum + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/bazaar/Faeroi.lua b/bazaar/Faeroi.lua new file mode 100644 index 0000000..4adbf8e --- /dev/null +++ b/bazaar/Faeroi.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi there " .. e.other:GetCleanName() .. ". It's nice to meet ye. Many great deals here today if I don't say so myself."); + elseif(e.message:findi("piece")) then + e.self:Say("I'm waiting to have a rhino beetle horn delivered to me to finish off Hardam's helm. I do not want to present it to him with one horn, you know. If you wanted to be a big help, any rhino beetles horn would do fine. Bring one to me and I can then finish Hardam's helm and send it back to his shop in your hands."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4757})) then -- Hardams Box of Goods + e.self:Say("Ah Hardam sent you eh. Fair enough then, please let him know I will get to selling these goods as soon as possible and please let him know that the helm will be done soon. All I need is a certain [piece]."); + e.other:Faction(e.self,1512,5); -- House of Stout + e.other:Faction(e.self,1508,1); -- Traders of the Haven + e.other:QuestReward(e.self,0,0,0,0,0,500); + + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5985})) then -- Rhino Beetle Horn + e.self:Say("Its good to see you again so soon " .. e.other:GetCleanName() .. ". I knew that you would be able to assist me in this task. As I said, here is Hardams finished helm. Please return it to him for me as I cannot leave my booth here."); + e.other:Faction(e.self,1512,5); -- House of Stout + e.other:Faction(e.self,1508,1); -- Traders of the Haven + e.other:QuestReward(e.self,0,0,0,0,5986,550); -- Hardams Custom Helm + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/bazaar/Galic_Amondson.lua b/bazaar/Galic_Amondson.lua new file mode 100644 index 0000000..c0d1405 --- /dev/null +++ b/bazaar/Galic_Amondson.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". If you're looking to sell a white horse, I'll be happy to give you a fair price. If you've got a different color horse you'd like to sell talk to one of my brothers."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 21805})) then + e.other:QuestReward(e.self,{itemid = 21820}); -- Item: Bag of Platinum Pieces + + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 21806})) then + e.other:QuestReward(e.self,{itemid = 21821}); -- Item: Heavy Bag of Platinum + + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 21807})) then + e.other:QuestReward(e.self,{itemid = 21822}); -- Item: Big Bag of Platinum + + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 21808})) then + e.other:QuestReward(e.self,{itemid = 21823}); -- Item: Huge Bag of Platinum + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/bazaar/Gearo.lua b/bazaar/Gearo.lua new file mode 100644 index 0000000..06728b4 --- /dev/null +++ b/bazaar/Gearo.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there friend. My name is Gearo and as you can see I'm a Gnome, so what can I do for ya?"); + elseif(e.message:findi("take the gem")) then + e.self:Say("Good " .. e.other:GetCleanName() .. "! Here they are, please take them back to that gargantuan barbarian and let him know I want a raise for all this hard work!"); + e.other:SummonCursorItem(4767); -- Item: Bag of Assorted Gems + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4766},0)) then --Assorted Tailoring Supplies + e.self:Say("Ah you were sent from Steaon I see. So what's that tall drink of water up too? He must be busy at the store if he has you delivering his supplies for him. Well enough about all that. If he has trusted you to bring his supplies here I suppose I can give you these gems I picked up for him. Will you [take the gems] to him?"); + e.other:Faction(e.self,1508, 25); --Traders of the Haven + e.other:Faction(e.self,1510, 2); --House of Fordel + e.other:Faction(e.self,1511, 2); --House of Midst + e.other:Faction(e.self,1512, 2); --House of Stout + e.other:QuestReward(e.self,0,0,0,0,0,1000); --This quest is doable at level 1, I didn't feel comfortable giving out more xp than this per step + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/bazaar/Gliblixl_Rocktok.lua b/bazaar/Gliblixl_Rocktok.lua new file mode 100644 index 0000000..fa172c7 --- /dev/null +++ b/bazaar/Gliblixl_Rocktok.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail " .. e.other:GetCleanName() .. "! I sell the finest quality ore imported from the mines of Norrath! It's difficult to keep enough ore available with the demands of the local smiths however and could use some [assistance] in restocking my supplies."); + end + if(e.message:findi("assistance")) then + e.self:Say("Hooray! Fill this crate with either four small bricks of unrefined ore or four large Bricks of unrefined ore from Norrath and I will pay you for your assistance in keeping me in business."); + e.other:SummonCursorItem(17814); -- Item: Empty Ore Crate + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10953})) then + e.self:Say("Thank you " .. e.other:GetCleanName() .. "! I will prepare the ore for sale and be open for business again momentarily. Here is your payment for your services."); + e.other:Faction(e.self,1508, 4); -- Faction: Traders of the Haven + e.other:Faction(e.self,1510, 1); -- Faction: House of Fordel + e.other:Faction(e.self,1511, 1); -- Faction: House of Midst + e.other:Faction(e.self,1512, 1); -- Faction: House of Stout + e.other:QuestReward(e.self,0,0,0,44,0,5000); + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10952})) then + e.self:Say("Thank you " .. e.other:GetCleanName() .. "! I will prepare the ore for sale and be open for business again momentarily. Here is your payment for your services."); + e.other:Faction(e.self,1508, 4); -- Faction: Traders of the Haven + e.other:Faction(e.self,1510, 1); -- Faction: House of Fordel + e.other:Faction(e.self,1511, 1); -- Faction: House of Midst + e.other:Faction(e.self,1512, 1); -- Faction: House of Stout + e.other:QuestReward(e.self,0,0,0,14,0,5000); + eq.depop_with_timer(); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/bazaar/Hiklo_Amondson.lua b/bazaar/Hiklo_Amondson.lua new file mode 100644 index 0000000..c7707fd --- /dev/null +++ b/bazaar/Hiklo_Amondson.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". If you're looking to sell a tan horse, I'll be happy to give you a fair price. If you've got a different color horse you'd like to sell talk to one of my brothers."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 21800})) then + e.other:QuestReward(e.self,{itemid = 21820}); -- Item: Bag of Platinum Pieces + + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 21801})) then + e.other:QuestReward(e.self,{itemid = 21821}); -- Item: Heavy Bag of Platinum + + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 21802})) then + e.other:QuestReward(e.self,{itemid = 21822}); -- Item: Big Bag of Platinum + + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 21803})) then + e.other:QuestReward(e.self,{itemid = 21823}); -- Item: Huge Bag of Platinum + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/bazaar/Jolum.lua b/bazaar/Jolum.lua new file mode 100644 index 0000000..f3d9e45 --- /dev/null +++ b/bazaar/Jolum.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail! Nice to see ya, friend. I've got a fine selection of spankin' good spells, perhaps you'd be interested? Or maybe you'd like to learn how to [upgrade] your Grandmaster Trade items? Still yet, maybe you would like to know how to create a [Grandmaster's Medicine Bag]?"); + elseif(e.message:findi("upgrade")) then + e.self:Say("What Grandmaster Trade item would you like to know how to upgrade? I can tell you how to upgrade your [Grandmaster Baker's Spoon], [Grandmaster Brewer's Corker], [Grandmaster Fletcher's Knife], [Grandmaster Jeweler's Eyeglass], [Grandmaster Potter's Sculpter], [Grandmaster Smith's Hammer], [Grandmaster Tailor's Needle], or your [Grandmaster Tinker's Spanner]. While you can't have more than one of the new items, they will summon a [bag] for you. Very useful for carrying heavy items about and such."); + elseif(e.message:findi("bag")) then + e.self:Say("Its a very sturdy bag, but I'm afraid that it's only temporary. If you'd like to get a more permanent bag, just hand me your summoned one and I'll trade it out you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 17900})) then --Grandmaster's Satchel + e.self:Say("Here's a more permanent bag."); --Text made up, no reference + e.other:QuestReward(e.self,0,0,0,0,17138); --Grandmaster's Carry-all + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/bazaar/Sateal_Deirosap.lua b/bazaar/Sateal_Deirosap.lua new file mode 100644 index 0000000..7d97af6 --- /dev/null +++ b/bazaar/Sateal_Deirosap.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Nice to see you have made it to the Bazaar " .. e.other:GetCleanName() .. ", if you should need any smithing supplies I will be happy to assist."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 26055})) then--Tattered Newsletter + e.self:Say("Ah great, I have been meaning to go and pick one of these up from the Trade Commissioner but I have been very busy with my work. I'm sure Henry has been waiting for my sales report so here it is. Please return it to him for me if you could and thanks again!"); + e.other:QuestReward(e.self,0,0,0,0,26056,5000); -- Saleals Economy Report + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/bazaar/Wendal_Amondson.lua b/bazaar/Wendal_Amondson.lua new file mode 100644 index 0000000..452343e --- /dev/null +++ b/bazaar/Wendal_Amondson.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". If you're looking to sell a black horse, I'll be happy to give you a fair price. If you've got a different color horse you'd like to sell talk to one of my brothers."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 21810})) then + e.other:QuestReward(e.self,{itemid = 21820}); -- Item: Bag of Platinum Pieces + + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 21811})) then + e.other:QuestReward(e.self,{itemid = 21821}); -- Item: Heavy Bag of Platinum + + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 21812})) then + e.other:QuestReward(e.self,{itemid = 21822}); -- Item: Big Bag of Platinum + + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 21813})) then + e.other:QuestReward(e.self,{itemid = 21823}); -- Item: Huge Bag of Platinum + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/befallen/#Sir_Ariam_Arcanum.lua b/befallen/#Sir_Ariam_Arcanum.lua new file mode 100644 index 0000000..28a90d2 --- /dev/null +++ b/befallen/#Sir_Ariam_Arcanum.lua @@ -0,0 +1,41 @@ +function spawn_event(e) + eq.set_timer("depop",1200000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("My thanks for destroying these minions of Befallen's masters. This accursed place rends my soul trying to twist me to its purposes. My time here is short, so i must get this [task] done quikly."); + elseif(e.message:findi("task")) then + e.self:Say("I have this parchment that must be delivered to either the Knights of Truth in Freeport or to the Queen of Neriak. The contents of the note concern them both and I am desperate to have this matter addressed so ask that you take it to which ever of the cities will accept your presence. Will you take the note to the [Knights of Truth] or to [The Dead]?"); + elseif(e.message:findi("truth")) then + e.self:Say("It must be delivered to Sir Artanis in the city of Freeport. It details a terrible plan of the masters of this place to restore life to a foul necromancer named Marnek. The Burning Dead must not be allowed to achieve this goal. So that you may ride swiftly with news of this nefarious scheme, take this as well, the bridle to the noble steed that was entombed alive with me here. He has strength enough for one final ride."); + e.other:SummonCursorItem(31492); -- Item: Ghostly Bridle + e.other:SummonCursorItem(18474); -- Item: Scroll of the Burning Dead + eq.depop(); + elseif(e.message:findi("dead")) then + e.self:Say("Then take this parchment to the Queens assistant, the necromancer Xon, enemy of my enemy. I have no love for her, but Queen Thex's interests too are at risk. This details a terrible plan of the masters of this place to restore life to a foul necromancer named Marnek. The Burning Dead must not be allowed to achieve this goal. So that you may ride swiftly with news of this nefarious scheme, take this as well, the bridle to the noble steed that was entombed alive with me here."); + e.other:SummonCursorItem(31492); -- Item: Ghostly Bridle + e.other:SummonCursorItem(18474); -- Item: Scroll of the Burning Dead + eq.depop(); + elseif(e.message:findi("who are you") or e.message:findi("what are you")) then + e.self:Say("I am Sir Ariam Arcanum, a paladin of Tunare. There is no time for my own story, which is of little account. But if you wish to know more of me, and wish also to do me a personal favor then you could seek out my family in Felwithe, provided you are welcome there. Will you travel to Felwithe?"); + elseif(e.message:findi("travel to felwithe")) then + e.self:Say("Then deliver this to my family. I have my sisters token to thank for my survival in this form. Something in the magic of this persisted even as I truly wasted away buried alive near here."); + e.other:SummonCursorItem(31493); -- Item: Arriallas Expended Token + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.depop(); +end + +--Edited by Sarepean to include Ariam's Medallion Quest +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/befallen/#a_skeletal_foreman.lua b/befallen/#a_skeletal_foreman.lua new file mode 100644 index 0000000..678034d --- /dev/null +++ b/befallen/#a_skeletal_foreman.lua @@ -0,0 +1,8 @@ +function event_death_complete(e) + eq.unique_spawn(36091,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); ----Sir Ariam Arcanum +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/befallen/Gynok_Moltor.lua b/befallen/Gynok_Moltor.lua new file mode 100644 index 0000000..87e3b61 --- /dev/null +++ b/befallen/Gynok_Moltor.lua @@ -0,0 +1,7 @@ +function event_waypoint_arrive(e) + if(e.wp == 55 or e.wp == 117) then + e.self:SetRunning(true); + elseif(e.wp == 82) then + e.self:SetRunning(false); + end +end \ No newline at end of file diff --git a/befallen/a_giant_rat.lua b/befallen/a_giant_rat.lua new file mode 100644 index 0000000..87e3b61 --- /dev/null +++ b/befallen/a_giant_rat.lua @@ -0,0 +1,7 @@ +function event_waypoint_arrive(e) + if(e.wp == 55 or e.wp == 117) then + e.self:SetRunning(true); + elseif(e.wp == 82) then + e.self:SetRunning(false); + end +end \ No newline at end of file diff --git a/befallen/a_greater_skeleton.lua b/befallen/a_greater_skeleton.lua new file mode 100644 index 0000000..87e3b61 --- /dev/null +++ b/befallen/a_greater_skeleton.lua @@ -0,0 +1,7 @@ +function event_waypoint_arrive(e) + if(e.wp == 55 or e.wp == 117) then + e.self:SetRunning(true); + elseif(e.wp == 82) then + e.self:SetRunning(false); + end +end \ No newline at end of file diff --git a/befallen/a_plague_rat.lua b/befallen/a_plague_rat.lua new file mode 100644 index 0000000..87e3b61 --- /dev/null +++ b/befallen/a_plague_rat.lua @@ -0,0 +1,7 @@ +function event_waypoint_arrive(e) + if(e.wp == 55 or e.wp == 117) then + e.self:SetRunning(true); + elseif(e.wp == 82) then + e.self:SetRunning(false); + end +end \ No newline at end of file diff --git a/befallen/a_putrid_skeleton.lua b/befallen/a_putrid_skeleton.lua new file mode 100644 index 0000000..87e3b61 --- /dev/null +++ b/befallen/a_putrid_skeleton.lua @@ -0,0 +1,7 @@ +function event_waypoint_arrive(e) + if(e.wp == 55 or e.wp == 117) then + e.self:SetRunning(true); + elseif(e.wp == 82) then + e.self:SetRunning(false); + end +end \ No newline at end of file diff --git a/befallen/a_skeletal_excavator.lua b/befallen/a_skeletal_excavator.lua new file mode 100644 index 0000000..90ce659 --- /dev/null +++ b/befallen/a_skeletal_excavator.lua @@ -0,0 +1,6 @@ +function event_death_complete(e) + local chance_spawn = math.random(100); + if(chance_spawn <= 20) then + eq.unique_spawn(36092,0,0,-43.5,-339.8,-10.9); -- NPC: #a_skeletal_foreman + end +end \ No newline at end of file diff --git a/befallen/skeleton_Lrodd.lua b/befallen/skeleton_Lrodd.lua new file mode 100644 index 0000000..f9ede99 --- /dev/null +++ b/befallen/skeleton_Lrodd.lua @@ -0,0 +1,14 @@ + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18891})) then + e.self:Say("Search!! Find Windstream. Find the mallet!! One. Two. Three."); + eq.spawn2(36096,0,0,-88,-637,-66,127); -- NPC: Cmdr_Windstream + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/beholder/Diggs_Duggun.lua b/beholder/Diggs_Duggun.lua new file mode 100644 index 0000000..cdfeba7 --- /dev/null +++ b/beholder/Diggs_Duggun.lua @@ -0,0 +1,22 @@ +-- 1st part of paladin quest spell - divine might +-- +-- small dialogue addition to key the player to hand the leg bone to valeron. +-- more details in valeron's .pl file in freportn. +-- + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("ail, dere! Ain'tcha a sight fer me sore eyes! I knows dat we're strangers an' all, but might I ask a [boon] of ye?"); + elseif(e.message:findi("boon")) then + e.self:Say("Well, me pickaxe is blunted awfully bad and me ale supplies are dangerously low. If'n ye would be kind enough t' get me a new pick and a couple o' bottles o' dwarven ale, I would be f'rever in yer debt."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5018,item2 = 13036,item3 = 13036})) then + e.self:Emote("drinks one of the ales, burps loudly, then says 'By Brell's Beard! Yer a lifesaver, ya are! 'ere, take dis bone I've found 'ere in dis maze. Looks human ta me and I'm thinkin that a proper burial is in order. Freeport's the closest place dat has one o Marr's temples. I'm thinkin dis was one o' his Holy Knights by da look o' da tattered tunic I found it wrapped in. I'm thinkin Valeron might be havin an interest in it if you show that to him.'"); + e.other:QuestReward(e.self,0,0,0,0,6701,500); -- Item: A Dusty Old Leg Bone + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/blackburrow/#a_gnoll.lua b/blackburrow/#a_gnoll.lua new file mode 100644 index 0000000..f3b855b --- /dev/null +++ b/blackburrow/#a_gnoll.lua @@ -0,0 +1,27 @@ +function event_spawn(e) + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(230); + eq.set_timer("depop",120000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop_with_timer(); +end + +function event_death(e) + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(360); +end diff --git a/blackburrow/#an_elite_gnoll_guard.lua b/blackburrow/#an_elite_gnoll_guard.lua new file mode 100644 index 0000000..f3b855b --- /dev/null +++ b/blackburrow/#an_elite_gnoll_guard.lua @@ -0,0 +1,27 @@ +function event_spawn(e) + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(230); + eq.set_timer("depop",120000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop_with_timer(); +end + +function event_death(e) + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(360); +end diff --git a/blackburrow/Lord_Elgnub.lua b/blackburrow/Lord_Elgnub.lua new file mode 100644 index 0000000..f3b855b --- /dev/null +++ b/blackburrow/Lord_Elgnub.lua @@ -0,0 +1,27 @@ +function event_spawn(e) + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(230); + eq.set_timer("depop",120000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop_with_timer(); +end + +function event_death(e) + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(360); +end diff --git a/blackburrow/Scout_Malityn.lua b/blackburrow/Scout_Malityn.lua new file mode 100644 index 0000000..e85bdb5 --- /dev/null +++ b/blackburrow/Scout_Malityn.lua @@ -0,0 +1,15 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 27498}, 0)) then + e.self:Say("Oh my I am very thankful for these rations. I have been very hungry. Please send our teacher my regards and this report. Good luck!"); + -- Confirmed Live Factions and Experience + e.other:Faction(e.self,341,10); -- Priest of Life + e.other:Faction(e.self,280,3); -- Knight of Thunder + e.other:Faction(e.self,262,5); -- Guards of Qeynos + e.other:Faction(e.self,221,-2); -- Bloodsabers + e.other:Faction(e.self,219,1); -- Antonius Bayle + e.other:QuestReward(e.self,{itemid = 27420,exp = 500}); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/bothunder/##Askr_the_Lost.lua b/bothunder/##Askr_the_Lost.lua new file mode 100644 index 0000000..698a63a --- /dev/null +++ b/bothunder/##Askr_the_Lost.lua @@ -0,0 +1,19 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Well done "..e.other:GetName()..". You have succeed where I have failed, but now comes the most dangerous peril the Bastion holds. The final level of Torden holds the restless spirit of the Rainkeeper himself. You must find a way to free him from his tormented sleep. His dreams and visions have coalesced into a dark shade of himself which controls the full fury of the [Storm]."); + + elseif ( e.message:findi("what storm") ) then + e.self:Say("The spirit of chaos itself guards the chamber where Karana sleeps. Chaos will most certain protect the embodiment of his tortured conscious as if it were the Rainkeeper himself. I am afraid that there is no assistance that I can offer in the task laid out before you aside from opening the vortex to Chaos and offer you Karana's blessing."); + eq.unique_spawn(209158, 0, 0, -1110, -1735, 1740, 0); -- A_Chaotic_Vortex + end +end + +function event_spawn(e) + eq.set_timer("depop", 3300000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end diff --git a/bothunder/#Askr_the_Lost.lua b/bothunder/#Askr_the_Lost.lua new file mode 100644 index 0000000..f03a07c --- /dev/null +++ b/bothunder/#Askr_the_Lost.lua @@ -0,0 +1,22 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Well done. I did not believe you could have progressed so far, so quickly. Evynd was one of Agnarr's greatest lieutenants; your victory could not have been easy. I fear, however, that your task will only become more difficult from here. With Evynd dead, I can now help you to ascend to the next level. When you are ready, simply ask and I will [transport] you to the [next level of Torden], but make haste, I cannot stay here for long."); + + elseif ( e.message:findi("transport") ) then + + e.other:CastToClient():MovePC(209, -880, -1787, 1729, 192*2); + if ( e.other:GetPet().valid and not e.other:GetPet():Charmed() ) then + e.other:GetPet():GMMove(-880, -1787, 1729, 0); + end + end +end + +function event_spawn(e) + eq.set_timer("depop", 3300000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end diff --git a/bothunder/209060.lua b/bothunder/209060.lua new file mode 100644 index 0000000..c5a1e66 --- /dev/null +++ b/bothunder/209060.lua @@ -0,0 +1,17 @@ +function event_combat(e) + if ( e.joined ) then + eq.set_timer("leash", 30000); + else + eq.stop_timer("leash"); + end +end + +function event_timer(e) + + if ( e.timer == "leash" ) then + + if ( e.self:GetZ() < 2100 ) then + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + end + end +end diff --git a/bothunder/209160.lua b/bothunder/209160.lua new file mode 100644 index 0000000..015e2b0 --- /dev/null +++ b/bothunder/209160.lua @@ -0,0 +1,20 @@ +-- a_storm_cloud (this is the trap; capital letter one is a portal add in Agnarr room) + +local casting = {}; + +function event_spawn(e) + eq.set_timer("depop", 5000); +end + +function event_timer(e) + casting[e.self:GetID()] = nil; + eq.depop(); +end + +function event_signal(e) + if ( casting[e.self:GetID()] ) then + return; + end + e.self:CastSpell(e.signal, e.self:GetID()); + casting[e.self:GetID()] = true; +end diff --git a/bothunder/A_Chaotic_Vortex.lua b/bothunder/A_Chaotic_Vortex.lua new file mode 100644 index 0000000..5307831 --- /dev/null +++ b/bothunder/A_Chaotic_Vortex.lua @@ -0,0 +1,9 @@ +function event_spawn(e) + eq.set_timer("depop", 3300000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end diff --git a/bothunder/A_celestial_portal.lua b/bothunder/A_celestial_portal.lua new file mode 100644 index 0000000..4433ebc --- /dev/null +++ b/bothunder/A_celestial_portal.lua @@ -0,0 +1,6 @@ +function event_signal(e) + if ( e.signal == 1 ) then + e.self:Emote("begins to radiate celestial energy, as several ethereal figures form inside."); + eq.spawn2(209138, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- An_animated_meteor + end +end diff --git a/bothunder/A_comet.lua b/bothunder/A_comet.lua new file mode 100644 index 0000000..07066aa --- /dev/null +++ b/bothunder/A_comet.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/bothunder/A_firestorm.lua b/bothunder/A_firestorm.lua new file mode 100644 index 0000000..07066aa --- /dev/null +++ b/bothunder/A_firestorm.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/bothunder/A_firestorm_elemental.lua b/bothunder/A_firestorm_elemental.lua new file mode 100644 index 0000000..26987bb --- /dev/null +++ b/bothunder/A_firestorm_elemental.lua @@ -0,0 +1,23 @@ +function event_spawn(e) + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end + + -- anti-cheat: these should not be able to get to higher floors + if ( e.self:GetZ() > 1700 and e.self:Charmed() ) then + e.self:BuffFadeByEffect(22); + e.self:ModifyNPCStat("mr", "200"); + end +end diff --git a/bothunder/A_firestorm_portal.lua b/bothunder/A_firestorm_portal.lua new file mode 100644 index 0000000..bdb1bbd --- /dev/null +++ b/bothunder/A_firestorm_portal.lua @@ -0,0 +1,6 @@ +function event_signal(e) + if ( e.signal == 1 ) then + e.self:Emote("begins to glow as a several fiery figures form inside."); + eq.spawn2(209005, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- A_firestorm_elemental + end +end diff --git a/bothunder/A_hurricane.lua b/bothunder/A_hurricane.lua new file mode 100644 index 0000000..07066aa --- /dev/null +++ b/bothunder/A_hurricane.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/bothunder/A_storm_cloud.lua b/bothunder/A_storm_cloud.lua new file mode 100644 index 0000000..07066aa --- /dev/null +++ b/bothunder/A_storm_cloud.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/bothunder/A_storm_portal.lua b/bothunder/A_storm_portal.lua new file mode 100644 index 0000000..0e7533e --- /dev/null +++ b/bothunder/A_storm_portal.lua @@ -0,0 +1,9 @@ +function event_signal(e) + if ( e.signal == 1 ) then + e.self:Emote("glows with power as several large silhouettes begin to take shape inside."); + eq.spawn2( + eq.ChooseRandom(209124, 209123, 209125, 209130), -- A_firestorm, A_comet, A_hurricane, A_storm_cloud + 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0 + ); + end +end diff --git a/bothunder/A_storm_watcher.lua b/bothunder/A_storm_watcher.lua new file mode 100644 index 0000000..85dc863 --- /dev/null +++ b/bothunder/A_storm_watcher.lua @@ -0,0 +1,9 @@ +function event_signal(e) + local client = eq.get_entity_list():GetClientByID(e.signal); + + if ( client and client.valid ) then + if ( e.self:CalculateDistance(client:GetX(), client:GetY(), client:GetZ()) < 150 ) then + e.self:AddToHateList(client, 1); + end + end +end diff --git a/bothunder/Agnarr_the_Storm_Lord.lua b/bothunder/Agnarr_the_Storm_Lord.lua new file mode 100644 index 0000000..b5ba415 --- /dev/null +++ b/bothunder/Agnarr_the_Storm_Lord.lua @@ -0,0 +1,94 @@ +local KARANA_TYPE = 209136; +local JOLUR_TYPE = 209147; -- Jolur_Sandstorm +local EKIL_TYPE = 209142; -- Ekil_Thundercall +local OLJIN_TYPE = 209148; -- Oljin_Stormtide +local HIBDIN_TYPE = 209146; -- Hibdin_Cyclone + +local ADD_TYPES = { + [JOLUR_TYPE] = 1, + [EKIL_TYPE] = 1, + [OLJIN_TYPE] = 1, + [HIBDIN_TYPE] = 1, + [209124] = 1, -- A_firestorm + [209123] = 1, -- A_comet + [209125] = 1, -- A_hurricane + [209130] = 1, -- A_storm_cloud +}; + +function SpawnGiant(id) + eq.unique_spawn(id, 0, 0, -1070, -1739, 2257, 64); +end + +function event_combat(e) + if ( e.joined ) then + eq.zone_emote(0, "Agnarr the Storm Lord says 'Fool! This is the realm of the Storm Giants now, and you hope to defeat me here?'"); + eq.set_timer("portals", 120000); + eq.set_timer("link", 45000); + if ( e.self:GetHPRatio() > 96 ) then + eq.set_next_hp_event(75); + eq.set_timer("spawn", 3000); + end + else + eq.stop_timer("portals"); + eq.stop_timer("link"); + end +end + +function event_timer(e) + + if ( e.timer == "link" ) then + + if ( e.self:GetZ() < 2200 ) then + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + end + + local npcList = eq.get_entity_list():GetNPCList(); + + for npc in npcList.entries do + + if ( npc.valid and ADD_TYPES[npc:GetNPCTypeID()] and e.self:GetTarget() and e.self:GetTarget().valid ) then + npc:AddToHateList(e.self:GetTarget(), 100); + + if ( npc:GetZ() < 2200 ) then + npc:GMMove(npc:GetSpawnPointX(), npc:GetSpawnPointY(), npc:GetSpawnPointZ(), 0); + end + end + end + + elseif ( e.timer == "portals" ) then + eq.zone_emote(0, "Agnarr strikes his staff to the ground, causing great ripples of energy to rage across the room."); + eq.signal(209034, 1); -- A_storm_portal + + if ( e.self:GetHPRatio() < 25 ) then + eq.set_timer("portals", 60000); + + elseif ( e.self:GetHPRatio() < 50 ) then + eq.set_timer("portals", 90000); + end + + elseif ( e.timer == "spawn" ) then + eq.stop_timer(e.timer); + SpawnGiant(JOLUR_TYPE); -- Jolur_Sandstorm + end +end + +function event_hp(e) + + if ( e.hp_event == 75 ) then + eq.set_next_hp_event(50); + SpawnGiant(EKIL_TYPE); -- Ekil_Thundercall + + elseif ( e.hp_event == 50 ) then + eq.set_next_hp_event(25); + SpawnGiant(OLJIN_TYPE); -- Oljin_Stormtide + + elseif ( e.hp_event == 25 ) then + SpawnGiant(HIBDIN_TYPE); -- Hibdin_Cyclone + end +end + +function event_death_complete(e) + eq.spawn2(KARANA_TYPE, 0, 0, -477, -1758, 2355, 192); + eq.signal(KARANA_TYPE, e.killer:GetID()); -- e.killer for death_complete is somebody with kill rights, not death blow + eq.csr_notice(string.format("BoThunder Agnarr slain by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end diff --git a/bothunder/AirTrapSpawner.lua b/bothunder/AirTrapSpawner.lua new file mode 100644 index 0000000..a4bd856 --- /dev/null +++ b/bothunder/AirTrapSpawner.lua @@ -0,0 +1,27 @@ +function event_combat(e) + + if ( e.joined ) then + eq.get_entity_list():MessageClose(e.self, true, 75, 0, "Storm clouds begin to gather over your head."); + eq.set_timer("cast", 5500); + end +end + +function event_timer(e) + + if ( e.timer == "cast" ) then + + local chance = 50; + if ( e.self:GetZ() > 0 ) then + chance = 75; -- tower traps seem to trigger more? + end + + if ( math.random(100) > chance ) then + eq.get_entity_list():MessageClose(e.self, true, 75, 0, "The storm clouds pass harmlessly."); + else + eq.spawn2(209160, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- a_storm_cloud + eq.signal(209160, 1049); -- Tempest Wind + end + + eq.depop_with_timer(); + end +end diff --git a/bothunder/An_animated_meteor.lua b/bothunder/An_animated_meteor.lua new file mode 100644 index 0000000..e629601 --- /dev/null +++ b/bothunder/An_animated_meteor.lua @@ -0,0 +1,23 @@ +function event_spawn(e) + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end + + -- anti-cheat: these should not be able to get to higher floors + if ( e.self:GetZ() > 1800 and e.self:Charmed() ) then + e.self:BuffFadeByEffect(22); + e.self:ModifyNPCStat("mr", "200"); + end +end diff --git a/bothunder/Askr_the_Lost.lua b/bothunder/Askr_the_Lost.lua new file mode 100644 index 0000000..be32a61 --- /dev/null +++ b/bothunder/Askr_the_Lost.lua @@ -0,0 +1,15 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Emote("looks down at the fallen corpses at his feet and begins to mumble quietly, 'Karana help me, I had no idea. I am sorry Rainkeeper, I have truly failed you. I must find a way to rouse him from his [slumber]."); + + elseif ( e.message:findi("slumber") ) then + e.self:Say("The Rainkeeper lies in deep meditation at the top of the great tower, Torden. His meditations have some how become tainted by a force from outside the plane. He lies in his tower besieged by all manner of dark visions and dreamscapes. I cannot fathom the focus it must take to discern the clairvoyance that the Rainkeeper controls. It is surely his fitful sleep that has caused this turmoil to reign here. You must [gain entrance] to Torden, "..e.other:GetName().."."); + + elseif ( e.message:findi("gain entrance") ) then + e.self:Say("An ethereal seal that is protected by the collective power of the lightning, blizzards, tornadoes, and sandstorms guards the tower. You must collect the essence of these storms in order to create the key that will allow you to enter the tower of Torden. But first you must earn the right to enter the [courtyard] of the Bastion. From there you will be able to find the storm essences."); + + elseif ( e.message:findi("courtyard") ) then + e.self:Say("The courtyard will allow you access to the four greater towers as well as Torden itself. The strongest giants of the lower halls most likely hold the key that you will need to enter the courtyard. Be wary of the giants in this stronghold "..e.other:GetName()..", they each hold a piece of the great power of the Rainkeeper, unbridled by his control and wisdom.'"); + end +end diff --git a/bothunder/Auliffe_Chaoswind.lua b/bothunder/Auliffe_Chaoswind.lua new file mode 100644 index 0000000..304e748 --- /dev/null +++ b/bothunder/Auliffe_Chaoswind.lua @@ -0,0 +1,17 @@ +function event_combat(e) + if ( e.joined ) then + eq.set_timer("leash", 30000); + else + eq.stop_timer("leash"); + end +end + +function event_timer(e) + + if ( e.timer == "leash" ) then + + if ( e.self:GetZ() < 1400 ) then + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + end + end +end diff --git a/bothunder/Brynju_Thunderclap.lua b/bothunder/Brynju_Thunderclap.lua new file mode 100644 index 0000000..531d9b4 --- /dev/null +++ b/bothunder/Brynju_Thunderclap.lua @@ -0,0 +1,17 @@ +function event_combat(e) + if ( e.joined ) then + eq.set_timer("leash", 30000); + else + eq.stop_timer("leash"); + end +end + +function event_timer(e) + + if ( e.timer == "leash" ) then + + if ( e.self:GetZ() < 2200 ) then + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + end + end +end diff --git a/bothunder/EarthTrapSpawner.lua b/bothunder/EarthTrapSpawner.lua new file mode 100644 index 0000000..e994f3e --- /dev/null +++ b/bothunder/EarthTrapSpawner.lua @@ -0,0 +1,27 @@ +function event_combat(e) + + if ( e.joined ) then + eq.get_entity_list():MessageClose(e.self, true, 75, 0, "Storm clouds begin to gather over your head."); + eq.set_timer("cast", 5500); + end +end + +function event_timer(e) + + if ( e.timer == "cast" ) then + + local chance = 50; + if ( e.self:GetZ() > 0 ) then + chance = 75; -- tower traps seem to trigger more? + end + + if ( math.random(100) > chance ) then + eq.get_entity_list():MessageClose(e.self, true, 75, 0, "The storm clouds pass harmlessly."); + else + eq.spawn2(209160, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- a_storm_cloud + eq.signal(209160, 1031); -- Stone Gale + end + + eq.depop_with_timer(); + end +end diff --git a/bothunder/Emmerik_Skyfury.lua b/bothunder/Emmerik_Skyfury.lua new file mode 100644 index 0000000..4ea259f --- /dev/null +++ b/bothunder/Emmerik_Skyfury.lua @@ -0,0 +1,27 @@ +function event_combat(e) + if ( e.joined ) then + eq.zone_emote(0, "Emmerik gestures toward the sky calling meteors to his aid."); + eq.set_timer("portals", 120000); + else + eq.stop_timer("portals"); + end +end + +function event_death_complete(e) + eq.spawn2(209157, 0, 0, -1065, -1733, 1727, 192); -- ##Askr_the_Lost + eq.depop_all(209156); -- #Askr_the_Lost; not sure if this should be here +end + +function event_timer(e) + if ( e.timer == "portals" ) then + eq.zone_emote(0, "Emmerik raises his arm high above his head. Great bolts of energy surge through him and strike the portals."); + eq.signal(209102, 1); -- A_celestial_portal + + if ( e.self:GetHPRatio() < 25 ) then + eq.set_timer("portals", 60000); + + elseif ( e.self:GetHPRatio() < 50 ) then + eq.set_timer("portals", 90000); + end + end +end diff --git a/bothunder/Evynd_Firestorm.lua b/bothunder/Evynd_Firestorm.lua new file mode 100644 index 0000000..29bf76c --- /dev/null +++ b/bothunder/Evynd_Firestorm.lua @@ -0,0 +1,20 @@ +function event_combat(e) + if ( e.joined ) then + eq.zone_emote(0, "Evynd Firestorm says 'I will see that my flames consume you.'"); + eq.set_timer("portals", 120000); + else + eq.stop_timer("portals"); + end +end + +function event_death_complete(e) + eq.spawn2(209156, 0, 0, -1123, -1732, 1269, 64); -- #Askr_the_Lost + eq.csr_notice(string.format("BoThunder Evynd Firestorm slain by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end + +function event_timer(e) + if ( e.timer == "portals" ) then + eq.zone_emote(0, "Evynd waves his hands in the air, calling the power of the firestorm through the blazing portals."); + eq.signal(209122, 1); -- A_firestorm_portal + end +end diff --git a/bothunder/FireTrapSpawner.lua b/bothunder/FireTrapSpawner.lua new file mode 100644 index 0000000..099d398 --- /dev/null +++ b/bothunder/FireTrapSpawner.lua @@ -0,0 +1,27 @@ +function event_combat(e) + + if ( e.joined ) then + eq.get_entity_list():MessageClose(e.self, true, 75, 0, "Storm clouds begin to gather over your head."); + eq.set_timer("cast", 5500); + end +end + +function event_timer(e) + + if ( e.timer == "cast" ) then + + local chance = 50; + if ( e.self:GetZ() > 0 ) then + chance = 75; -- tower traps seem to trigger more? + end + + if ( math.random(100) > chance ) then + eq.get_entity_list():MessageClose(e.self, true, 75, 0, "The storm clouds pass harmlessly."); + else + eq.spawn2(209160, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- a_storm_cloud + eq.signal(209160, eq.ChooseRandom(1024, 1025, 1026)); -- Thunderclap, Static Pulse, Thunder Call + end + + eq.depop_with_timer(); + end +end diff --git a/bothunder/Hrani.lua b/bothunder/Hrani.lua new file mode 100644 index 0000000..4d22b71 --- /dev/null +++ b/bothunder/Hrani.lua @@ -0,0 +1,16 @@ +function event_combat(e) + if ( e.joined ) then + eq.set_timer("tick", 6000); + else + eq.stop_timer("tick"); + end +end + +function event_timer(e) + if ( e.timer == "tick" ) then + local npc = eq.get_entity_list():GetNPCByNPCTypeID(209061); -- Kuanbyr_Hailstorm + if ( npc and npc.valid and e.self:GetTarget() and e.self:GetTarget().valid ) then + npc:AddToHateList(e.self:GetTarget(), 1); + end + end +end diff --git a/bothunder/Hundreds_of.lua b/bothunder/Hundreds_of.lua new file mode 100644 index 0000000..117e080 --- /dev/null +++ b/bothunder/Hundreds_of.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if ( e.joined ) then + e.self:Emote("funnel storms dance about your legs and feet."); + eq.depop_with_timer(); + end +end diff --git a/bothunder/Iri.lua b/bothunder/Iri.lua new file mode 100644 index 0000000..4d22b71 --- /dev/null +++ b/bothunder/Iri.lua @@ -0,0 +1,16 @@ +function event_combat(e) + if ( e.joined ) then + eq.set_timer("tick", 6000); + else + eq.stop_timer("tick"); + end +end + +function event_timer(e) + if ( e.timer == "tick" ) then + local npc = eq.get_entity_list():GetNPCByNPCTypeID(209061); -- Kuanbyr_Hailstorm + if ( npc and npc.valid and e.self:GetTarget() and e.self:GetTarget().valid ) then + npc:AddToHateList(e.self:GetTarget(), 1); + end + end +end diff --git a/bothunder/Karana.lua b/bothunder/Karana.lua new file mode 100644 index 0000000..4455a22 --- /dev/null +++ b/bothunder/Karana.lua @@ -0,0 +1,91 @@ +local FLAG_LIMIT = 72; + +local flags = 0; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + +function event_signal(e) + rid, gid, cid = nil, nil, nil; + local client = eq.get_entity_list():GetClientByID(e.signal); -- the signal # is the entity ID of a client with kill credit + + if ( client.valid ) then + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + end +end + +function event_spawn(e) + eq.set_timer("depop", 3300000); + flags = 0; +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_say(e) + + local qglobals = eq.get_qglobals(e.other); + + if ( ClientCanFlag(e.other) ) then + + if ( e.message:findi("hail") ) then + e.self:Say("Karana looks down at "..e.other:GetName().."'s face. He seems so insignificant next to the massive stature of the Rainkeeper. 'Don't worry mortal, Askr is unharmed, I have set him on a journey that will take him to all corners of this reality. He will either find the balance of the Fallen or he will die trying. And what of you champions? Do you wish to follow the path of the Fallen? A more dangerous path has never existed. Defy the will of the Pantheon at your peril."); + + elseif ( e.message:findi("follow the path of the Fallen") and flags < FLAG_LIMIT ) then + + local karana = tonumber(qglobals.karana or 0); + + if ( karana == 3 ) then + e.other:Message(0, "Karana begins to laugh quietly. You seem to notice a great storm cloud brewing once more above him. A sudden arching bolt hits you, but you are unharmed. Instead a tome written in the language of the gods appears in your hands. 'Then let what I know be yours to know as well. Your path leads you onward "..e.other:GetName()..". The path to power or ruin, the choice is up to you. Speak the words and I will send you on your way.'"); + eq.set_global("karana", "4", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + flags = flags + 1; + + if ( qglobals.cl_karana ) then + eq.delete_global("cl_karana"); + end + + elseif ( karana < 3 and not qglobals.zebuxoruk ) then + e.other:Message(0, "Karana begins to laugh quietly. You seem to notice a great storm cloud brewing once more above him. 'Your path leads you onward mortals. The path to power or ruin, the choice is up to you. Speak the words and I will send you on your way.'"); + eq.set_global("cl_karana", "1", 5, "F"); + e.other:Message(15, "You have received a new checklist flag!"); + flags = flags + 1; + end + + elseif ( e.message:findi("send me") ) then + e.self:Emote("nods and begins to utter the same unfamiliar words that sent Askr into the void. The storm above him rises up and begins to spark sending chills up your spine. The Rainkeeper's voice rises to an incredible wail as the storm rages through the room. The cold rain pelting your face is the last thing you remember as a great bolt of pure storm energy envelopes you."); + --e.self:CastSpell(797, e.other:GetID()); -- GM Gate; this is what he does on Live but doesn't work with our logic + e.other:SpellFinished(36, e.other); -- Gate + end + end +end diff --git a/bothunder/Kuanbyr_Hailstorm.lua b/bothunder/Kuanbyr_Hailstorm.lua new file mode 100644 index 0000000..e2e4b77 --- /dev/null +++ b/bothunder/Kuanbyr_Hailstorm.lua @@ -0,0 +1,30 @@ +local TYPES = { 209058, 209057, 209056 }; -- Hrani, Iri, Leistr + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("tick", 6000); + else + eq.stop_timer("tick"); + end +end + +function event_timer(e) + + if ( e.timer == "tick" ) then + + local npc; + + for _, id in ipairs(TYPES) do + + npc = eq.get_entity_list():GetNPCByNPCTypeID(id); + + if ( npc and npc.valid and e.self:GetTarget() and e.self:GetTarget().valid ) then + npc:AddToHateList(e.self:GetTarget(), 1); + end + end + + if ( e.self:GetY() > -1800 ) then + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + end + end +end diff --git a/bothunder/Leistr.lua b/bothunder/Leistr.lua new file mode 100644 index 0000000..4d22b71 --- /dev/null +++ b/bothunder/Leistr.lua @@ -0,0 +1,16 @@ +function event_combat(e) + if ( e.joined ) then + eq.set_timer("tick", 6000); + else + eq.stop_timer("tick"); + end +end + +function event_timer(e) + if ( e.timer == "tick" ) then + local npc = eq.get_entity_list():GetNPCByNPCTypeID(209061); -- Kuanbyr_Hailstorm + if ( npc and npc.valid and e.self:GetTarget() and e.self:GetTarget().valid ) then + npc:AddToHateList(e.self:GetTarget(), 1); + end + end +end diff --git a/bothunder/Small.lua b/bothunder/Small.lua new file mode 100644 index 0000000..c9baa30 --- /dev/null +++ b/bothunder/Small.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if ( e.joined ) then + e.self:Emote("rocks and bits of earth blow at you as you enter the chamber."); + eq.depop_with_timer(); + end +end diff --git a/bothunder/The_hairs.lua b/bothunder/The_hairs.lua new file mode 100644 index 0000000..8d273f0 --- /dev/null +++ b/bothunder/The_hairs.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if ( e.joined ) then + e.self:Emote("on your body stand on end with static electricity."); + eq.depop_with_timer(); + end +end diff --git a/bothunder/WaterTrapSpawner.lua b/bothunder/WaterTrapSpawner.lua new file mode 100644 index 0000000..c654c2f --- /dev/null +++ b/bothunder/WaterTrapSpawner.lua @@ -0,0 +1,27 @@ +function event_combat(e) + + if ( e.joined ) then + eq.get_entity_list():MessageClose(e.self, true, 75, 0, "Storm clouds begin to gather over your head."); + eq.set_timer("cast", 5500); + end +end + +function event_timer(e) + + if ( e.timer == "cast" ) then + + local chance = 50; + if ( e.self:GetZ() > 0 ) then + chance = 75; -- tower traps seem to trigger more? + end + + if ( math.random(100) > chance ) then + eq.get_entity_list():MessageClose(e.self, true, 75, 0, "The storm clouds pass harmlessly."); + else + eq.spawn2(209160, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- a_storm_cloud + eq.signal(209160, eq.ChooseRandom(1050, 1048, 1032)); -- Raging Blizzard, Monsoons, Hail Storm + end + + eq.depop_with_timer(); + end +end diff --git a/bothunder/Your_face.lua b/bothunder/Your_face.lua new file mode 100644 index 0000000..29083fd --- /dev/null +++ b/bothunder/Your_face.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if ( e.joined ) then + e.self:Emote("is pelted by freezing rain and sleet."); + eq.depop_with_timer(); + end +end diff --git a/bothunder/player.lua b/bothunder/player.lua new file mode 100644 index 0000000..379d0e0 --- /dev/null +++ b/bothunder/player.lua @@ -0,0 +1,211 @@ +-- this works because all players share these globals +-- logic is: player holding Symbol of Torden clicks on penis; player's raid or group ID is recorded in table +-- all players in his/her raid may then click up for the next 60 seconds. Symbol and ring not added to keyring in our era + +local raids = {}; +local gargs = 0; -- remember how many clicks before gargs wake + +function FindRaid(e) + local myRaid = e.self:GetRaid(); + local myGroup = e.self:GetGroup(); + local rid, gid = 0, 0; + local now = eq.clock(); + + if ( myRaid.valid ) then + rid = myRaid:GetID(); + elseif ( myGroup.valid ) then + gid = myGroup:GetID(); + end + + for i, raid in ipairs(raids) do + + if ( rid > 0 and raid.rid == rid and now < raid.expire ) then + return i; + + elseif ( gid > 0 and raid.gid == gid and now < raid.expire ) then + return i; + end + end + + return nil; +end + +function AddRaid(e) + local myRaid = e.self:GetRaid(); + local myGroup = e.self:GetGroup(); + local rid, gid = 0, 0; + local idx = FindRaid(e); + local now = eq.clock(); + + if ( myRaid.valid ) then + rid = myRaid:GetID(); + elseif ( myGroup.valid ) then + gid = myGroup:GetID(); + end + + if ( idx ) then + raids[idx].expire = now + 60; + else + if ( rid > 0 ) then + eq.debug("Raid ID "..rid.." may now enter Agnarr's tower for the next 60 seconds"); + table.insert(raids, { ["rid"] = rid, ["gid"] = 0, ["expire"] = now+60 }); + idx = #raids; + elseif ( gid > 0 ) then + eq.debug("Group ID "..gid.." may now enter Agnarr's tower for the next 60 seconds"); + table.insert(raids, { ["rid"] = 0, ["gid"] = gid, ["expire"] = now+60 }); + idx = #raids; + end + end + + -- delete expired raids to prevent table bloat + local i = #raids; + while ( i > 0 ) do + if ( raids[i].expire < now ) then + table.remove(raids, i); + end + i = i - 1; + end + + return idx; +end + +function AggroGargoyles(player, door_id) + + if ( door_id and door_id == 51 ) then + + gargs = gargs + 1; + + if ( gargs == 1 ) then + player:Message(13, "Magical energies shoot through your body."); + return; + elseif ( gargs == 2 ) then + player:Message(13, "You hear the cracking of stones around you."); + return; + else + gargs = 0; + end + end + + eq.signal(209113, player:GetID()); -- A_storm_watcher +end + +function MoveGroup(zone, client, dist, x, y, z, h) + local group = client:GetGroup(); + local raid = client:GetRaid(); + + if ( group and group:GroupCount() > 0 ) then + for i = 0, 5 do + local member = group:GetMember(i):CastToClient(); + + if ( member.valid ) then + if ( member:CalculateDistance(client:GetX(), client:GetY(), client:GetZ()) < dist ) then + member:MovePC(zone, x, y, z, h*2); + if ( member:GetPet().valid ) then + if ( member:GetPet():Charmed() ) then + member:GetPet():BuffFadeByEffect(22); -- charm + else + member:GetPet():GMMove(x, y, z, 0); + end + end + eq.get_entity_list():RemoveFromHateLists(member); + end + end + end + + elseif ( raid and raid.valid ) then + local raidGroupID = raid:GetGroup(client:GetName()); + local member; + for i = 0, 71 do + member = raid:GetMember(i); + + if ( member and member.valid and raid:GetGroup(member:GetName()) == raidGroupID ) then + + if ( member:CalculateDistance(client:GetX(), client:GetY(), client:GetZ()) < dist ) then + member:MovePC(zone, x, y, z, h*2); + if ( member:GetPet().valid ) then + if ( member:GetPet():Charmed() ) then + member:GetPet():BuffFadeByEffect(22); -- charm + else + member:GetPet():GMMove(x, y, z, 0); + end + end + eq.get_entity_list():RemoveFromHateLists(member); + end + end + end + else + client:MovePC(zone, x, y, z, h*2); + + if ( client:GetPet().valid ) then + if ( client:GetPet():Charmed() ) then + client:GetPet():BuffFadeByEffect(22); -- charm + else + client:GetPet():GMMove(x, y, z, 0); + end + end + eq.get_entity_list():RemoveFromHateLists(client); + end +end + +function event_click_door(e) + + local door_id = e.door:GetDoorID(); + + if ( door_id == 51 ) then -- Agnarr Tower (electric penis) + + if ( e.self:GetItemIDAt(0) == 9433 ) then + AddRaid(e); + end + + if ( FindRaid(e) or e.self:GetItemIDAt(0) == 9433 or e.self:GetGM() ) then + e.self:MovePC(209, -765, -1735, 1270, 192*2); + + if ( e.self:GetPet().valid ) then + if ( e.self:GetPet():Charmed() ) then + e.self:GetPet():BuffFadeByEffect(22); -- charm + else + e.self:GetPet():GMMove(-765, -1735, 1270, 0); + end + end + eq.get_entity_list():RemoveFromHateLists(e.self); + + else + AggroGargoyles(e.self, door_id); + end + + elseif ( door_id == 61 ) then + + if ( e.self:GetItemIDAt(0) == 9425 or e.self:GetGM() ) then + MoveGroup(209, e.self, 100, 85, 145, 635, 64) + end + + elseif ( door_id == 63 ) then + + if ( e.self:GetItemIDAt(0) == 9425 or e.self:GetGM() ) then + MoveGroup(209, e.self, 100, -830, -865, 1375, 64) + end + + elseif ( door_id == 65 ) then + + if ( e.self:GetItemIDAt(0) == 9425 or e.self:GetGM() ) then + MoveGroup(209, e.self, 100, -350, -2200, 1955, 128) + end + + elseif ( door_id == 67 ) then + + if ( e.self:GetItemIDAt(0) == 9425 or e.self:GetGM() ) then + MoveGroup(209, e.self, 100, 150, -1220, 1120, 64) + end + end +end + +function event_click_merchant(e) + + if ( e.merchant_type_id == 209158 ) then -- A_Chaotic_Vortex + + e.self:MovePC(209, -665, -1735, 2251, 192*2); + if ( e.self:GetPet().valid and not e.self:GetPet():Charmed() ) then + e.self:GetPet():GMMove(-665, -1735, 2251, 0); + end + end +end diff --git a/burningwood/Atheling_Plague.lua b/burningwood/Atheling_Plague.lua new file mode 100644 index 0000000..7c8cff2 --- /dev/null +++ b/burningwood/Atheling_Plague.lua @@ -0,0 +1,44 @@ +--Shaman Skull Quest 6 + + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ahh!! A conversationalist. How good to meet you, " .. e.other:GetCleanName() .. ". Yes. I have heard of you. Go ahead and ask for that which has brought you to my tower and emboldened you to slay my weaker minions."); + elseif(e.message:findi("sisters of scale")) then + e.self:Say("What a coincidence! I, too, seek a skull. Perhaps you might help me [obtain the skull]. Perhaps then you shall have the skull you desire."); + elseif(e.message:findi("obtain the skull")) then + e.self:Say("I am sure you would not mind removing the head of a scaled mystic. I hope not. There is an old Iksar who once called me slave. Now he shall adorn my wall, mounted on a fine plaque. His name is Digalis. Find him. Do not return until your task is complete."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12764})) then + e.self:Shout("Excellent. You show signs of a true Iksar slayer. Too, bad I have already given the skull of the Sister of Scale to another. Perhaps you would like to meet him before he departs. Say hello, Doval."); + eq.unique_spawn(87154,0,0,e.self:GetX() + 5,e.self:GetY(),e.self:GetZ()); + eq.set_timer("heal",20000); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +function event_timer(e) + if(e.timer == "heal") then + e.self:CastSpell(12,87154); -- Spell: Healing + end +end + +function event_signal(e) + if(e.signal == 1) then + eq.stop_timer("heal"); + end +end + +function event_death_complete(e) + eq.stop_timer("heal"); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/burningwood/Azdalin.lua b/burningwood/Azdalin.lua new file mode 100644 index 0000000..a5d0676 --- /dev/null +++ b/burningwood/Azdalin.lua @@ -0,0 +1,25 @@ +function event_combat(e) + local random_result = math.random(60); + + if(e.joined) then + e.self:Say("Foolish adventurer!! You shall die. You are nothing to Azdalin. "); + if(random_result < 21) then + e.self:Say("" .. e.other:Class() .. " like you always bring out the worst in me!"); + elseif(random_result < 41) then + e.self:Say("I really hate " .. e.other:Class() .. " like you!"); + else + e.self:Say("" .. e.other:Class() .. " like you are an affront to my senses!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +--by: Qadar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/burningwood/Entalon.lua b/burningwood/Entalon.lua new file mode 100644 index 0000000..39ab892 --- /dev/null +++ b/burningwood/Entalon.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("smiles at you with a wide grin. 'You are quite brave to approach me and speak. On any other day, I would not give you the opportunity. Fortunately for you, I am preoccupied with my master's [quest].'"); + elseif(e.message:findi("quest")) then + e.self:Say("I have but a small task, to find the scribblings of Jarldyn. A Fier'Dal has stolen them. The scribblings will be illegible, but they must be returned to my master who has rightfully won them in battle. If you find them, bring them to me with an emerald plume and I will grant you an audience with my master. Be forewarned, it may be a one way trip."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12990, item2 = 12755})) then --Scribblings, Stoneleer Emerald Plume + e.self:Say("Ha ha ha!! Fool! I have what I need. Now you are granted an audience with a noble sarnak lord, not my master. I am quite sure he shall do away with you. Ha ha ha!!"); + e.other:QuestReward(e.self,0,0,0,0,0,5000); + e.other:MovePC(87,-4039,6280,-53); --Atheling Plague's Tower + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/burningwood/Faelin_Bloodbriar.lua b/burningwood/Faelin_Bloodbriar.lua new file mode 100644 index 0000000..d6b1589 --- /dev/null +++ b/burningwood/Faelin_Bloodbriar.lua @@ -0,0 +1,29 @@ +function event_spawn(e) + eq.set_timer("depop",1800000); +end + +function event_timer(e) + eq.stop_timer("depop") + eq.depop(); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Didn't think I was gone for good, did you? We're that much closer to finishing this trial of our strength, thanks to you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20481})) then + e.self:Emote("smiles at you, then closes her eyes as she sets the gem 'Nature's Balance' into the crossguard and begins to channel her spirit into the sword. The ground rumbles loudly as she casts. She collapses in exhaustion after a short time. 'Take the blade, and perhaps you can finish this. You must strike at the heart of Innoruuk's lair. Bring a shattered gem and the mithril blade to Xanuusus. Only by weakening Innoruuk's grip over his realm can the balance of the land once again be restored. If we do not meet again, " .. e.other:GetCleanName() .. ", remember you always have my eternal thanks.'"); + e.other:QuestReward(e.self,0,0,0,0,20487,1000000); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/burningwood/Gylton.lua b/burningwood/Gylton.lua new file mode 100644 index 0000000..081fa75 --- /dev/null +++ b/burningwood/Gylton.lua @@ -0,0 +1,29 @@ +function event_combat(e) + local random_result = math.random(60); + + if(e.joined) then + e.self:Say("You will perish!! You are weak and should have kept to your own realm!!"); + if(random_result < 21) then + e.self:Say("" .. e.other:Class() .. " like you always bring out the worst in me!"); + elseif(random_result < 41) then + e.self:Say("I really hate " .. e.other:Class() .. " like you!"); + else + e.self:Say("" .. e.other:Class() .. " like you are an affront to my senses!"); + end + end +end + +function event_death_complete(e) + e.self:Emote("slams to the ground with a loud THUD!! The ground around you still trembles. 'Now.. I shall never slay my blasphemous.. brother.. Xyl..'"); +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +--by: Qadar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/burningwood/Naxot_Deepwater.lua b/burningwood/Naxot_Deepwater.lua new file mode 100644 index 0000000..61deed7 --- /dev/null +++ b/burningwood/Naxot_Deepwater.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Beware these woods! The sarnak claim this land as their own and wicked creatures walk beneath the burning foliage."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28056})) then -- Ornate Sea Shell + e.self:Say("Praise the Triumvirate! Natasha sent you just in time! Those twisted sarnak summoners are summoning Ixiblat Fer as we speak! We must stop Ixiblat Fer while he is still weak or all of Norrath may be set aflame! Please do me one more favor, should I perish to this beast of fire. Give this note to Natasha when you next see her, and if you should perish and I survive, I will make sure the waters never forget your reflections of your deeds this day."); + e.other:QuestReward(e.self,0,0,0,0,28052); -- 28052 Message to Natasha + eq.unique_spawn(87014,0,0,1500,-2000,-300); -- Ixiblat Fer, kill him, loot scepter of I.F. + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/burningwood/Slixin_Klex.lua b/burningwood/Slixin_Klex.lua new file mode 100644 index 0000000..62e2a0b --- /dev/null +++ b/burningwood/Slixin_Klex.lua @@ -0,0 +1,29 @@ +-- Part of quest for Veeshan's Peak key +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("So long ago... The burning of our land?"); + elseif(e.message:findi("burning")) then + e.self:Say("Fiery death from the sky. Rock and fire burning our lands. Death and destruction splintering our tribe. Once, strong we were, but the fiery rocks from the sky crushed our proud cities and weakened our tribe."); + elseif(e.message:findi("tribe")) then + e.self:Say("Obulus was our people. The hills and trees were our lands. We tamed the dark and wilds and bent the forests to our needs. But all is gone, all our people, all our works, even the medallion that was the symbol of our power."); + elseif(e.message:findi("medallion")) then + e.self:Say("Medallion of the Obulus. Symbol of our proud people. Broken into pieces long lost to the dark forests now. I know where they are now but I am no longer flesh. If I were, I would find them and bring them back together."); + elseif(e.message:findi("pieces")) then + e.self:Say("Hhhhh. Three pieces there are. One sits in the hands of Sselot though he knows its purpose not. Another sits upon an iksar ghost in Trakanons. The last is held by a long rotted iksar skeleton in the Dreadlands. Bring them all here and I may be able to unite them again. Perhaps this will even free me from my torment... or not."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19956, item2 = 19957, item3 = 19958})) then --Piece of a Medallion (Bottom, Middle, Top) + e.self:Say("Ssssss. I thought I would never see these. I never thought the symbol of our people would be made whole again. I feel no rest for my sssoul though. My torment still flows as freely as when my peoples first suffered fiery death. I need this not. It is useless to me. Here, you take it. Maybe you can find some good to do with it."); + e.other:QuestReward(e.self,0,0,0,0,19953,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Quest by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/burningwood/Telin_Darkforest.lua b/burningwood/Telin_Darkforest.lua new file mode 100644 index 0000000..6d4f4c4 --- /dev/null +++ b/burningwood/Telin_Darkforest.lua @@ -0,0 +1,46 @@ +-- Start of the ranger and druid epic quests +function event_say(e) + if(e.other:GetFaction(e.self) < 5) then + if(e.message:findi("hail")) then + e.self:Emote("looks at you serenely. 'Hello, wanderer.'"); + elseif(e.message:findi("what are you doing") or e.message:findi("demon")) then + e.self:Say("Mighty this place must have been, once. Now scarred by hatred and suffering. I have been sent here seeking answers to problems not yet understood."); + elseif(e.message:findi("answers")) then + e.self:Emote("considers you for a few moments before speaking. 'A great evil walks across the land. The hand of some demon we don't yet know is twisting and polluting forests.'"); + elseif(e.message:findi("evil")) then + e.self:Say("If I knew that, I wouldn't be here looking for answers. I would be elsewhere, looking for solutions. For now, I suspect much but know little."); + elseif(e.message:findi("suspect")) then + e.self:Emote("looks at you and sighs. 'The lands are changing. Beasts, large and small, have turned upon those who watched over them. Druids and rangers, worshippers of both Karana and Tunare, have reported a feeling of hatred throughout their once peaceful lands.'"); + elseif(e.message:findi("innoruuk")) then + e.self:Emote("raises his eyebrow slightly and a subtle look of surprise creeps across his face. 'Innoruuk? Perhaps. Aye. It must be. Perhaps I knew and didn't want to consider the possibility. It must be this though, and some action will have to be taken.'"); + elseif(e.message:findi("action")) then + e.self:Emote("looks at you consideringly and then scribbles something quickly on a small, worn paper. 'You seem powerful enough. Perhaps you can help those who seek to protect nature's peace. Take this note. Deliver it only into the hands of Faelin Bloodbriar. Where you will find her, I cannot say. She is a friend of mine and a wanderer. She has been seen from one end of the lands to the other. Seek her out, and quickly.'"); + e.other:SummonCursorItem(20472); -- Item: Worn Note + end + else + e.self:Say("I can not trust you with such important information, yet."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFaction(e.self) < 5) then + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20447},0)) then + e.self:Emote("scratches the coin as he looks at it. 'Faelin sent you to Giz? Surprising. This coin speaks to the outcome of your talk. He would hardly give this bit of metal to a stranger, but that's a story for a different time. So, you say Giz did confirm Innoruuk's involvement, and something about undead minions? Here, take this coin back. Find Arch Druid Althele in the Karanas and show her that. Tell her what we have discussed. She will look kindly on an ally in this matter.'"); + e.other:QuestReward(e.self,0,0,0,0,20448); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20468},0)) then + e.self:Emote("nods as he unbuckles his sword and hands it to you. 'The storm callers are working on containing and fighting against the corruption but they can not hold back the inevitable for long. It is up to us to strike against Innoruuk directly. If we were warriors or paladins we would have a fancy ceremony and plenty of feasting but we're just rangers, without time for pleasantries. The sword you hold in your hands is one of the oldest blades known, even to the eldest. To strike at the darkest heart of evil requires a weapon beyond this, or even ones you may carry at your side. The first task, the first preparation you must make, is the smithing of that blade. Its edge sharpened, its balance made perfect. When you have finished, bring me this sword again.'"); + e.other:QuestReward(e.self,0,0,0,0,20477,1000000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20481},0)) then + e.self:Emote("smiles slowly. 'Now that's fine work, " .. e.other:GetCleanName() .. ". Just a moment, we have a friend here who can enchant one of the blades. Give her the blade that the ancient smithed.'"); + e.other:QuestReward(e.self,0,0,0,0,20481); + eq.spawn2(87019,0,0,2852,3239,-155,109.5); -- NPC: Faelin_Bloodbriar + end + end + item_lib.return_items(e.self, e.other, e.trade); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/burningwood/a_sarnak_imitator.lua b/burningwood/a_sarnak_imitator.lua new file mode 100644 index 0000000..3a7b5ec --- /dev/null +++ b/burningwood/a_sarnak_imitator.lua @@ -0,0 +1,35 @@ +-- beginning of the main portion of the enchanter epic quest - staff of the serpent + + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("hisses at you"); + elseif(e.message:findi("jeb lumsed")) then + e.self:Say("Yes, I am. Use your most enlightened magic to seek the truth of what is around you. When that is done, you will know what you seek."); + elseif(e.message:findi("serpent")) then + e.self:Say("The first truly powerful enchanter, Krilan Pedin, crafted the Serpent years ago. He trained his students to carry on the trade in a five-step process. Each student then became a master and chose one of their own students to pass the legacy on to. Four others and I, myself, are current practitioners of the crafting."); + elseif(e.message:findi("enchantment") or e.message:findi("masters")) then + e.self:Say("The masters are enchanters who have reached the plateau of understanding. Their names are Modani Qu'Loni, Mizzle Gepple, Nadia Starfeast, and Polzin Mrid. All are master crafters in their own right."); + elseif(e.message:findi("modani")) then + e.self:Say("Modani is a master of illusions. You should seek him out first. Keep a careful eye out for him - he is never in his true form. The last time I spoke to him, he seemed very excited about his voyage to the elven outpost. You may or may not find more clues about his location there."); + elseif(e.message:findi("mizzle")) then + e.self:Say("Mizzle is a gnome who has mastered the use of enlightened magic. Go to him once you have spoken to Modani. Mizzle is not one to travel, so you should not have to look far from his home to find him."); + elseif(e.message:findi("nadia")) then + e.self:Say("The mistress of charm, Nadia is very beautiful. She, too, traveled with her relatives to the new land. I just recently received a letter from her. She says more and more pilgrims and explorers are arriving every day, and that the outpost is well defended now."); + elseif(e.message:findi("polzin")) then + e.self:Say("Master of the Phantasms - he is the last one you will seek out. Hmm...Polzin is native to Erudin, however, after the incident near Paineel, no one has heard from him. I hope that he is well."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10603},0)) then + e.self:Say("I see that you have what I was waiting for. Stofo does do excellent work. It seems that you are to start on a long journey. Take this seal and it will guide you on your next step. Seek out the masters of enchantment. In time we will craft the Serpent for you. When you have collected the four parts of the staff, you must combine them in a bundle and return them to me."); + e.self:Say("Take this seal. You will need to show my seal to the other masters so that they may grant you the tools to complete your next tasks. When you have collected the four parts of the staff, you must combine them in a bundle for me. The other masters can provide the means to bundle them. Good luck and safe travel."); + e.other:QuestReward(e.self,0,0,0,0,10604); + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10639},0)) then + e.self:Say("The path you trod was long and hard. Now you are worthy to bear the Serpent. Use it well."); + e.other:QuestReward(e.self,0,0,0,0,10650,15000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/butcher/#Kanthuk_Ogrebane.lua b/butcher/#Kanthuk_Ogrebane.lua new file mode 100644 index 0000000..d8e60b3 --- /dev/null +++ b/butcher/#Kanthuk_Ogrebane.lua @@ -0,0 +1,51 @@ +-- Part of Ghoulbane quest + +function event_say(e) + local qglobals = eq.get_qglobals(e.self,e.other); + + if(e.message:findi("hail")) then + e.self:Say("Hello."); + end + if(qglobals["Kanthuk"] ~= nil) then + if(e.message:findi("Amstaf Trunolis")) then + e.self:Say("Amstaf Trunolis was a good man. I've followed into [battle] many times. We've seen many of our friends die by the sword of others."); + elseif(e.message:findi("battle")) then + e.self:Emote("laughes, 'I remember the first time we charged into battle. I was so scared. My hands wouldn't stop trembling. Amstaf pulled me off to the side before the initial attack began. He held my hands within his. I saw his hands begin to glow and felt his energy pass into me. I felt [courage].'"); + elseif(e.message:findi("courage")) then + e.self:Say("I'll never forget what he did for me that day. He gave me the courage to continue. No one's ever done anything like that for me. I vowed that day that I'd follow him into any battle. I'd be there alongside him, no matter what. As time went on we came across an elven woman named [Ambreen]."); + elseif(e.message:findi("Ambreen")) then + e.self:Say("Ambreen was younger than he and I. She knew of the powers of nature. She was able to control the rain which fell from the heavens and would call upon the spirits to aide her. It was obvious that Amstaf took a liking to Ambreen. She ended up coming with is on out crusades. The last I saw of Ambreen was when we went to the snow covered lands of Everfrost. We were wander the lands when a freak [snowstorm] hit us. We were seperated from one another for quite some time."); + elseif(e.message:findi("snowstorm")) then + e.self:Say("I don't know where it came from, but it was so sudden that it caught us all off guard. The snow quickly became unbearable. I tried to move to higher ground, but was unable to. I was stuck within the snowy confines. I didn't know what to do [next]."); + elseif(e.message:findi("next")) then + e.self:Say("As I laid there my body began to slowly freeze. I knew death was near and accepted the inevitable. Suddenly I felt something clutching at my cloak. I was being dragged upwards out of the snow. A hand pressed against my chest and began to glow. I felt energy pass into my body. Do you know [how] he had saved me?"); + elseif(e.message:findi("how")) then + e.self:Say("He saved my life by laying his hands upon my body. A few moments later we found Ambreen lying in the snow, her body frozen by the harsh surroundings. We lifted her up off the ground and began to look for [shelter]."); + elseif(e.message:findi("shelter")) then + e.self:Say("We ended up taking refuge within a deserted cabin not to far from our location. We knew that we didn't have much time left to bring life back into her body. However, the storm didn't pass through and we knew we couldn't venture to far without the fear of freezing. I warmed the cabin and rested for some time thinking about what we were going to do. It wasn't long before my exhaustion took over. I fell into a deep [slumber] that night."); + elseif(e.message:findi("slumber")) then + e.self:Say("That night I dreamt of many things. Random thoughts kept swirling around my mind. I kept seeing the image of a cloaked being and of Amstaf circled around a fire. I saw Ambreen's body convulsing above the fire as if life was being brought back to it. I don't know what happened that night. I don't even know if what i dreamt was real, but before I awoke I saw a [strange image]."); + elseif(e.message:findi("strange image")) then + e.self:Say("I saw Amstaf lower his head and walked away in silence. He was surronded by two beings carrying a torch. I don't know what it meant, but I swear it was so real. When I awoke both Amstaf and Ambreen were gone. Please find Llara and give this pendant to her. This pendant belonged to Amstaf. She too had a vision that night that may clear things up. If she asks where you got it from, mention my name."); + e.other:SummonCursorItem(2414); -- Item: A Pendant + eq.delete_global("Kanthuk"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2416})) then + e.self:Say("Ahh, I see you have spoken to Ryshon. You seem tired from your long journey. Sit with me as I tell you a tale. A tale about a true friend of mine, a great man known as [Amstaf Trunolis]."); + eq.set_global("Kanthuk","ghoul",0,"D30"); + e.other:QuestReward(e.self,0,0,0,0,0,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Quest by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/butcher/Dapper_Blackhammer.lua b/butcher/Dapper_Blackhammer.lua new file mode 100644 index 0000000..f415275 --- /dev/null +++ b/butcher/Dapper_Blackhammer.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". What brings you to this neck of the mountains? Do you have any work for me?"); + end + if(e.message:findi("i have work for you")) then + e.self:Say("Very good. Very good. What I require, if it is the whistler ya seek, is 500 platinum and the two components necessary. Once I have all three, I will then commence ta doin that right away fer ya."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12880, item2 = 6552, platinum = 500})) then + e.self:Say("I thank ya for ya patronage. Here is what ya came here for. Now be careful who ya point this at. 'Tis quite sharp, " .. e.other:Race() .. ". Be off with ya now as I must get back ta workin here. Good day!"); + e.other:QuestReward(e.self,0,0,0,0,6551,25000); -- Item: Rozzuts Whistler + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/butcher/Dru_Razbind.lua b/butcher/Dru_Razbind.lua new file mode 100644 index 0000000..4900602 --- /dev/null +++ b/butcher/Dru_Razbind.lua @@ -0,0 +1,40 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, my friend. What brings you so far from the trodden path? I hope you do not plan on stealing my [fishing spot]."); + elseif(e.message:findi("fishing spot")) then + e.self:Say("I need this spot!! I fish to feed my growling tummy. I can no longer [venture into Kaladim] and eat in its fine taverns."); + elseif(e.message:findi("venture into kaladim")) then + e.self:Say("I have been disgraced!! I used to be a respected paladin of the Church of Underfoot until I failed to complete a very [important task] for Lord Datur Nightseer. He stripped me of my Cape of Underfoot. I cannot walk the halls of Kaladim without my cape."); + elseif(e.message:findi("important task")) then + e.self:Say("I was ordered by Lord Nightseer to carry the [Chalice of Conquest] to a noble band of paladins in the mountains of Rathe. While there, the entire camp was overtaken by a band of orcs. During the battle there was a [strange occurrence]."); + elseif(e.message:findi("chalice of conquest")) then + e.self:Say("The Chalice of Conquest is said to have been delivered to the Church of Underfoot by Brell himself. It is said that whoever drinks from the chalice is assured victory in battle. It is also said that only good-natured creatures may safely drink from it and only a comatose state is assured to any evil creature who dares to sip from it."); + elseif(e.message:findi("strange occurrence")) then + e.self:Say("A large fray raged. Brave, valiant paladins fought vile, green-skinned orcs and while this happened, I spied the [Chalice of Conquest] being taken away from the camp. I was then distracted by a well placed orcish blade. After I defeated the orcs in my way, I turned to see a blue orc running toward the horizon. I gave chase to no avail. I lost the chalice and all respect. If only a [noble Paladin of Underfoot] would assist me..."); + elseif(e.message:findi("candle of bravery")) then + e.self:Say("The Candle of Bravery is ceremonial and is lit when one sips from the [Chalice of Conquest]. The candlestick was left with a fellow Paladin of Underfoot in the Rathe Mountains. The candle itself was lost and I do not know where Priestess Ghalea purchases them."); + elseif(e.message:findi("noble paladin of underfoot")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- Needs Amiable + e.self:Say("Yes, you shall do, noble " .. e.other:GetCleanName() .. ". Take this. This is the Chalice Case. It is intended for the Chalice of Conquest and the [Candle of Bravery]. If you should get both, be sure to place them within the Chalice Case and combine them. Take the full Chalice Case to Lord Nightseer in Kaladim and I shall be redeemed and you shall surely earn a fine paladin's reward. Let your quest begin in the mountains of Rathe."); + e.other:SummonCursorItem(17976); -- Item: Chalice Case - empty + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("The Clerics of Underfoot have yet to see your faith directed towards our wills. Perhaps you should assist Master Gunlok Jure in the crusade against the undead."); + else + e.self:Say("How dare you approach a member of the Clerics of Underfoot?! Dogs such as you lie in the same bed as aviaks and ogres!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12281})) then + e.self:Say("I thank you, my friend. You are truly a great paladin and noble addition to our ranks. I now can walk in Kaladim. Take this as a reward. It is the Holy Partisan of Underfoot. It is now yours. I believe it still has a couple of charges. Use it wisely as the only cleric able to recharge it was lost amid the lava filled lands of Antonica."); + -- verifed live faction + e.other:Faction(e.self,297, 10); -- Faction: Paladins of Underfoot + e.other:Faction(e.self,274, 7); -- Faction: Kazon Stormhammer + e.other:Faction(e.self,227, 10); -- Faction: Clerics of Underfoot + e.other:Faction(e.self,216, 1); -- Faction: Veeshan + e.other:QuestReward(e.self,0,0,0,0,5376,7500); -- Item: Holy Partisan of Underfoot + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/butcher/Durkis_Battlemore.lua b/butcher/Durkis_Battlemore.lua new file mode 100644 index 0000000..e58628a --- /dev/null +++ b/butcher/Durkis_Battlemore.lua @@ -0,0 +1,11 @@ + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 8910})) then --A Note to Battlemore + -- Verified Live Experience + e.self:Say("What have ye got there, lad? Ack. I thought I would never hear from that crazy old man again. He wants me to give you a pair o' me gauntlets. I suppose I kin do that. Here you are, " .. e.other:GetCleanName() .. " . Wear them in good health."); + e.other:QuestReward(e.self,{itemid = 8909,exp = 5000}); --Gem Inlaid Gauntlets + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/butcher/Glorin_Binfurr.lua b/butcher/Glorin_Binfurr.lua new file mode 100644 index 0000000..ed85cf7 --- /dev/null +++ b/butcher/Glorin_Binfurr.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Pleasure to meet you. Keep your eye out for the ship. You don't want to miss it."); + elseif(e.message:findi("mudtoes")) then + e.self:Say("Mudtoes!! I have heard tales of that foul clan of ogres. A few passengers aboard the ships have claimed to have seen one of them, off and on, amongst the pirates in the Ocean of Tears!!"); + end +end diff --git a/butcher/Guard_Gonin.lua b/butcher/Guard_Gonin.lua new file mode 100644 index 0000000..f2f7ed3 --- /dev/null +++ b/butcher/Guard_Gonin.lua @@ -0,0 +1,12 @@ +function event_signal(e) + e.self:Say("You mean your stench will soon march upon the land!"); + eq.signal(68209,1); -- NPC: Guard_Kyte +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, friend! Welcome to Fort Gonin. Home to me and my slow-witted brother, Kyte."); + elseif(e.message:findi("kyte")) then + e.self:Say("Oh, Kyte? She is my baby sister. Looks a bit like a chap, wouldn't you say?"); + end +end diff --git a/butcher/Guard_Haldin.lua b/butcher/Guard_Haldin.lua new file mode 100644 index 0000000..122d7e6 --- /dev/null +++ b/butcher/Guard_Haldin.lua @@ -0,0 +1,29 @@ +function event_waypoint_arrive(e) + if (e.wp == 2) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(68011) == false) then + e.self:Say("WARNING TO ALL TRAVELERS! Bandits have been sighted on the road ahead. Beware!"); + eq.unique_spawn(68011,13,0,-510,1094,8,0); + end + eq.set_timer("warning", 36000); + end +end + +function event_waypoint_depart(e) + if (e.wp == 2) then + eq.stop_timer("warning"); + end +end + +function event_timer(e) + if(e.timer == "warning") then + e.self:Say("WARNING TO ALL TRAVELERS! Bandits have been sighted on the road ahead. Beware!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18905})) then + e.self:Say("Eh, strapling? Ye got this from me ol' partner? Huh. Aye, I know what it means but ye're not hearin'. Here, take this. It was his but he's not needin' it now."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(5037,5029,13313),30000); -- Item(s): Bronze Two Handed Battle Axe (5037), Bronze Bastard Sword (5029), Dwarven Axe (13313) + end +end diff --git a/butcher/Guard_Kizzburr.lua b/butcher/Guard_Kizzburr.lua new file mode 100644 index 0000000..f433767 --- /dev/null +++ b/butcher/Guard_Kizzburr.lua @@ -0,0 +1,21 @@ +function event_waypoint_arrive(e) + if (e.wp == 2) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(68011) == false) then + e.self:Say("WARNING TO ALL TRAVELERS! Bandits have been sighted on the road ahead. Beware!"); + eq.unique_spawn(68011,13,0,-510,1094,8,0); + end + eq.set_timer("warning", 36000); + end +end + +function event_waypoint_depart(e) + if (e.wp == 2) then + eq.stop_timer("warning"); + end +end + +function event_timer(e) + if(e.timer == "warning") then + e.self:Say("WARNING TO ALL TRAVELERS! Bandits have been sighted on the road ahead. Beware!"); + end +end diff --git a/butcher/Guard_Kyte.lua b/butcher/Guard_Kyte.lua new file mode 100644 index 0000000..daeff2c --- /dev/null +++ b/butcher/Guard_Kyte.lua @@ -0,0 +1,12 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail! Welcome to my little base of operations. It is not much, but my glory will soon march upon the land."); + eq.signal(68217,1); -- NPC: Guard Gonin + elseif(e.message:findi("gonin")) then + e.self:Say("Gonin is my older brother. I promised our parents that I would look after him. He is a bit loony."); + end +end + +function event_signal(e) + e.self:Say("Quiet, you!"); +end \ No newline at end of file diff --git a/butcher/Kancompan.lua b/butcher/Kancompan.lua new file mode 100644 index 0000000..0b6f187 --- /dev/null +++ b/butcher/Kancompan.lua @@ -0,0 +1,4 @@ +function event_spawn(e) + eq.spawn_condition("butcher",1,0); + eq.spawn_condition("butcher",2,0); +end diff --git a/butcher/Kandin_Firepot.lua b/butcher/Kandin_Firepot.lua new file mode 100644 index 0000000..0731732 --- /dev/null +++ b/butcher/Kandin_Firepot.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, there! Don't have time to talk. I'm workin', workin', workin'! Careful! Don't slip in the oil!"); + elseif(e.message:findi("what oil")) then + if(e.other:GetFactionValue(e.self) >= -60) then + e.self:Say("Ah the oil! I recently sent a specially crafted golem to explore through a huge portal to another plane. It's instructions were to collect special oil that I suspect existed in the plane. What I think is the golem broke down. This looks like a good task for one like you. Go see what's wrong with the golem. Here is spare gears of mine incase it's broken. Be careful though, if you put it in wrong it could explode or worse!"); + e.other:SummonCursorItem(14319); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18169}, 0)) then + e.self:Say("Brother! I have one of those. He's great, but he's dead. His name was Gabstik and he was a really powerful wizard. I still have one of his greatest possesions! You look like you could use it. I've added another thing to my shopping list. I require a dry brittle skin that I can mold or a rare oil found in the planes that I can soak the fuse in. Get me one of these things and I'll trade it for my bother's stick."); + e.other:Faction(e.self,404, 10); --Truespirit + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14349}, 0)) then + if(e.other:GetFactionValue(e.self) >= -60) then + e.self:Say("Oh wow! You found the oil! Where is the golem? You didn't hurt him did you? I am very fond of him. Anyways, here is your reward a note and staff to give to that guy you were asking me about."); + e.other:Faction(e.self,404, 10); --Truespirit + e.other:QuestReward(e.self,{items = {14339,18168}}); --note, Staff of Gabstik + else + e.self:Say("I have no need for this item " .. e.other:GetCleanName() .. ". You can have it back.") + e.other:QuestReward(e.self,0,0,0,0,14349); -- Item: Green Oil + end + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/butcher/Margyl_Darklin.lua b/butcher/Margyl_Darklin.lua new file mode 100644 index 0000000..4a660ed --- /dev/null +++ b/butcher/Margyl_Darklin.lua @@ -0,0 +1,12 @@ +function event_waypoint_arrive(e) + if(e.wp == 1 or e.wp == 7) then + e.self:SetRunning(true); + elseif(e.wp == 4 or e.wp == 10) then + e.self:SetRunning(false); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/butcher/Peg_Leg.lua b/butcher/Peg_Leg.lua new file mode 100644 index 0000000..972178a --- /dev/null +++ b/butcher/Peg_Leg.lua @@ -0,0 +1,9 @@ +function event_death_complete(e) + eq.spawn2(68251,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/butcher/Qued.lua b/butcher/Qued.lua new file mode 100644 index 0000000..56f1d05 --- /dev/null +++ b/butcher/Qued.lua @@ -0,0 +1,8 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/butcher/Siltria_Marwind.lua b/butcher/Siltria_Marwind.lua new file mode 100644 index 0000000..599ee19 --- /dev/null +++ b/butcher/Siltria_Marwind.lua @@ -0,0 +1,25 @@ +--Quest Name: Bard Mail Quest + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail. " .. e.other:GetCleanName() .. " -Are you [interested] in helping the League of Antonican Bards by delivering some [mail]?"); + elseif(e.message:findi("mail") and not e.message:findi("deliver") and not e.message:findi("Kelethin")) then + e.self:Say("The League of Antonican Bards has a courier system made up of travelers and adventurers. We pay good gold to anyone who will take messages from bards such as myself to one of our more central offices. Are you [interested]?"); + elseif(e.message:findi("interested")) then + e.self:Say("I have messages that need to go to - well. right now I have one that needs to go to Kelethin. Will you [deliver] mail to [Kelethin] for me?"); + elseif(e.message:findi("deliver") or e.message:findi("Kelethin")) then + e.self:Say("Take this letter to Jakum Webdancer in Kelethin. You can find him at the bard guild hall. I am sure he will compensate you for your troubles."); + e.other:SummonCursorItem(18160); -- Item: A Bardic Letter (Kelethin) + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +--Author: RealityIncarnate +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/butcher/SirensBane.lua b/butcher/SirensBane.lua new file mode 100644 index 0000000..bea2ceb --- /dev/null +++ b/butcher/SirensBane.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Boat spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + if(e.wp == 7) then + eq.debug("Boat to OOT has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.spawn_condition("butcher",1,0); + eq.spawn_condition("butcher",2,0); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(69,10944,1236,-20,0); + end, + function(ent) + if(ent:GetBoatID() == 771) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/butcher/Stormbreaker.lua b/butcher/Stormbreaker.lua new file mode 100644 index 0000000..48261dc --- /dev/null +++ b/butcher/Stormbreaker.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Boat spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + if(e.wp == 7) then + eq.debug("Boat to OOT has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.spawn_condition("butcher",1,0); + eq.spawn_condition("butcher",2,0); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(69,10944,1236,-20,0); + end, + function(ent) + if(ent:GetBoatID() == 770) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/butcher/Vedico_Windwisper.lua b/butcher/Vedico_Windwisper.lua new file mode 100644 index 0000000..4b5fc37 --- /dev/null +++ b/butcher/Vedico_Windwisper.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". Have you seen the port master? I am here to complain about the shoddy service."); + end + if(e.message:findi("shoddy service")) then + e.self:Say("I was sailing from Freeport on one of the boats when a giant cyclops attacked the boat! No one lifted a finger as he stole the horn I was playing and ran off. Someone here has to answer for the loss of my horn."); + end + if(e.message:findi("giant cyclops")) then + e.self:Say("He was a huge cyclops! He came rushing up out of the water and stared at me with his big eye and said, 'Me like horn me take and play pretty music!' before he snatched my horn and disappeared back under the waves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20530},0)) then + e.self:Say("Where did you find this? I thought the cyclops took it. I am in your debt, " .. e.other:GetCleanName() .. ". This horn has always been special to me."); + e.self:Emote("reaches into her pack and pulls out a note. 'Do you think you could deliver this to my gnome friend Forpar? I have not spoken to him in a while and unfortunatly I will be unable to make the trip to visit him. If you are looking to have an instrument made he is the man to ask.'"); + e.other:QuestReward(e.self,0,0,0,0,20378); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/butcher/Walnan.lua b/butcher/Walnan.lua new file mode 100644 index 0000000..c5ab83b --- /dev/null +++ b/butcher/Walnan.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hallo, " .. e.other:GetCleanName() .. "! I am Walnan, elementalist, summoner, wanderer, and sometimes teacher. Might you be a elementalist in search of the truth?"); + end + if(e.message:findi("search of the truth")) then + e.self:Say("The truth is something not all people can handle or understand. If the truth of the elements is what you seek then the Power of the Elements shall reveal all. Have you come to learn of Magi'kot?"); + end + if(e.message:findi("come to learn")) then + e.self:Say("Magi'kot was the most powerful elementalist of his age. He may have been the most powerful mortal mage of all time, such was his mastery. He wished to obtain infinite knowledge and wisdom in order to further expand the arcane art of Summoning. Do you know what became of Magi'kot?"); + end + if(e.message:findi("no")) then + e.self:Say("Only a few elementalists and followers outside our circle know what truly happened to Magi'kot. Even now, many are fearful to speak of his name. If you truly wish to continue, here is what you must do. Gather the Power of the Earth, warded by a fae creature. Then seek the Power of Fire, held by an elemental. Next you will need the Power of Wind, held by a twirling and prancing wanderer who has been corrupted. Finally, the Power of Water, held by a ravenous beast who is the minion of a fallen Sarnak. Bring them all to me, and I shall give you the Power of the Elements."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Wait, " .. e.other:GetCleanName() .. ", are you not forgetting something?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28036, item2 = 28037, item3 = 28038, item4 = 28039},1,text)) then + e.self:Say("The arcane art of Summoning is derived from the power of the elements which surround us. Continue your journey across the Ocean of Tears. In a dark fortress, you should find Akksstaf lurking about. Be wary, but tell him that you seek Magi'kot. Hurry now " .. e.other:GetCleanName() .. ", you do not wish to miss the ship!"); + e.other:QuestReward(e.self,0,0,0,0,28031,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/butcher/a_dwarven_bandit.lua b/butcher/a_dwarven_bandit.lua new file mode 100644 index 0000000..4e9a548 --- /dev/null +++ b/butcher/a_dwarven_bandit.lua @@ -0,0 +1,3 @@ +function event_spawn(e) + e.self:SetRunning(true); +end diff --git a/butcher/a_greedy_beggar.lua b/butcher/a_greedy_beggar.lua new file mode 100644 index 0000000..ff3ccfe --- /dev/null +++ b/butcher/a_greedy_beggar.lua @@ -0,0 +1,48 @@ +local followtarget; +local skip; + +function event_spawn(e) + followtarget = nil; + skip = 0; +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there " .. e.other:GetName() .. ". I don't suppose you can spare some coins? I'm just a poor halfling that is far away from home. I can't afford anything to eat or drink. Anything you can offer me will be of help."); + if(followtarget == nil) then + followtarget = e.other:GetID(); + e.self:SetAppearance(0); -- Stand + eq.set_timer("follow",3000); + end + end +end + +function event_timer(e) + if(e.timer == "follow" and eq.get_entity_list():GetClientByID(followtarget).valid and skip == 0) then + eq.follow(followtarget); -- Follow the player who triggered the event + else + if(skip == 0) then + skip = 1; + eq.stop_follow(); + e.self:SetAppearance(3); -- lying + elseif(skip == 1) then + skip = 0; + eq.stop_timer("follow"); + followtarget = nil; + e.self:MoveTo(2407,1482,0,168,true); + end + end +end + +function event_trade(e) -- Note that we are intentionally accepting any trade + local item_lib = require("items"); + + if(followtarget == nil or e.other:GetID() == followtarget) then + e.self:Say("Oh thank you. You are too kind to this poor halfling. Do you have anything else to give me?"); + e.self:SetAppearance(0); -- Stand + followtarget = e.other:GetID(); + eq.set_timer("follow",3000); + else + item_lib.return_items(e.self, e.other, e.trade) + end +end diff --git a/butcher/a_lesser_spirit.lua b/butcher/a_lesser_spirit.lua new file mode 100644 index 0000000..c8df90d --- /dev/null +++ b/butcher/a_lesser_spirit.lua @@ -0,0 +1,37 @@ +--This will start Shaman Epic 1.0 +function event_spawn(e) + eq.set_timer("depop",600000); +end + +function event_say(e) + local randomize = math.random(100); + + if(e.other:GetFaction(e.self) < 6) then + if(e.message:findi("hail")) then --Part of Shaman Epic 1.0 + e.self:Say("Did you take this person's life, shaman?"); + elseif(e.message:findi("yes")) then --Part of Shaman Epic 1.0 + e.self:Say("Why have you taken this person's life, " .. e.other:GetCleanName() .. "? Did he threaten your life? Did you dislike him? Or was his death a profit to you in some way?"); + elseif(e.message:findi("threatened my life")) then --Part of Shaman Epic 1.0 + e.self:Say("I see. It brings me sadness to see another die, but his heart was black and a great nothingness. His body will become the grass now. Thank you for what you have done, shaman."); + elseif(e.message:findi("what are you") or e.message:findi("who are you")) then --Part of Shaman Epic 1.0 + e.self:Say("What, or who, I am isn't as important as what, or who, WE are. Do you wish to know more, shaman?"); + elseif(e.message:findi("know more")) then --Part of Shaman Epic 1.0 + e.self:Say("That is good, " .. e.other:GetCleanName() .. ". Take this gem. It is a part of us like the clouds to the sky and is a wonderful gift from the grandfather. Take this gem to where the humans gather to spoil the land and water. Some call it a port. There you will find one of us, a shaman like yourself. Give him the gem and perhaps he will tell you more of the spirits."); + e.other:SummonCursorItem(1665); -- Item: Tiny Gem + end + elseif(randomize > 50) then + e.self:Say("I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself."); + else + e.self:Say("Oh look, a talking lump of refuse. How novel!"); + end +end + +function event_timer(e) + eq.depop(); +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/butcher/orc_centurion.lua b/butcher/orc_centurion.lua new file mode 100644 index 0000000..56f1d05 --- /dev/null +++ b/butcher/orc_centurion.lua @@ -0,0 +1,8 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/butcher/orc_pawn.lua b/butcher/orc_pawn.lua new file mode 100644 index 0000000..56f1d05 --- /dev/null +++ b/butcher/orc_pawn.lua @@ -0,0 +1,8 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/butcher/orc_runner.lua b/butcher/orc_runner.lua new file mode 100644 index 0000000..56f1d05 --- /dev/null +++ b/butcher/orc_runner.lua @@ -0,0 +1,8 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/butcher/player.lua b/butcher/player.lua new file mode 100644 index 0000000..a986ed8 --- /dev/null +++ b/butcher/player.lua @@ -0,0 +1,21 @@ +function event_enter_zone(e) + if(e.self:GetBoatID() == 770 or e.self:GetBoatID() == 771) then + eq.signal(68054,1); -- NPC: Glorin_Binfurr + else + eq.signal(68054,2); -- NPC: Glorin_Binfurr + end +end + +function event_board_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug(" At: " .. hour .. ":" .. minute .. " BoatID: " .. e.boat_id .. " was boarded. Its name is: " .. e.self:GetBoatName() .. ".", 1); +end + +function event_leave_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug(" At: " .. hour .. ":" .. minute .. " I left BoatID: " .. e.boat_id .. ".", 1); +end \ No newline at end of file diff --git a/cabeast/#Prime_Patriarch_Vuzx.lua b/cabeast/#Prime_Patriarch_Vuzx.lua new file mode 100644 index 0000000..ea4b6a3 --- /dev/null +++ b/cabeast/#Prime_Patriarch_Vuzx.lua @@ -0,0 +1,55 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. I only train those who follow the path of the Patriarchs of Cabilis and have yet to develop their [powers] over the beasts of the wild."); + elseif(e.message:findi("powers")) then --Armor of the Patriarch Quest + e.self:Say("A Patriarch of Cabilis must learn to survive the hard way, by heading into the wild lands and mastering the creatures that reside in them. First you must learn to defeat even the most insignificant of nuisances. Go from this temple and return to me with four Leech Husks that have been skinned from the creatures by your own claws."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I requested the husks of four leeches."; + local text1 = "I requested three spiderling silks and the carapace of a scarab."; + local text2 = "I requested four goblin watchers torches."; + local text3 = "I requested two Goblin Hunter Javelins and two Sarnak Broodling Fangs." + local text4 = "I requested four of the Froglok Tuk Bucklers."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12686, item2 = 12686, item3 = 12686, item4 = 12686},1,text)) then -- 1st Test of the Patriarch + e.self:Say("Well done young patriarch! I believe you are ready to face larger nuisances that prowl outside our city walls. Head out to the Field of Bone and return to me bearing three Spiderling Silks and a Scarab Carapace."); + -- Confirmed Live Experience and Faction + e.other:Faction(e.self,445,5); -- Faction: Scaled Mystics + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,{itemid = 7827,exp = 250}); -- Item: Patriarch's Bracer + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13099, item2 = 13099, item3 = 13099, item4 = 13849},1,text1)) then -- 2nd Test of the Patriarch + e.self:Say("You have overcome sturdy yet unintelligent creatures that plague our kind. You are now ready to face our foes that are more intelligent than the insects you have defeated. We have many foes possessing a degree of intelligence, the least of these foes being the tribes of goblins that inhabit our Empires lands. Even now there are goblin watchers prowling just outside our gates. Locate four of these watchers, slay them and return to me with their Goblin Watcher Signal Torches."); + -- Confirmed Live Experience and Faction + e.other:Faction(e.self,445,5); -- Faction: Scaled Mystics + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,{itemid = 7828,exp = 400}); -- Item: Patriarch's Cap + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12441, item2 = 12441, item3 = 12441, item4 = 12441},1,text2)) then -- 3rd Test of the Patriarch + e.self:Say("You have triumphed over the watchers, young patriarch, but they are among the weakest of our sentient foes. Mere fodder sent to warn to the more powerful goblins of an opportunity to strike. It is time for you to face the Goblin Hunters, and learn of our enemies the Sarnak, a species of dragonmen that once served the Iksar Empires of old. Journey to the wilderness and return with two Goblin Hunter Javelins and two Sarnak Broodling Fangs."); + -- Confirmed Live Experience and Faction + e.other:Faction(e.self,445,8); -- Faction: Scaled Mystics + e.other:Faction(e.self,441,2); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,{itemid = 7829,exp = 600}); -- Item: Patriarch's Leggings + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14599, item2 = 14599, item3 = 12432, item4 = 12432},1,text3)) then -- 4th Test of the Patriarch + e.self:Say("Now you will learn of another enemy of the Legion of Cabilis, the frogloks. The frogloks from the froglok settlement of Krup often sent their tuk warriors to prey on unsuspecting Iksar citizens that ventures outside the gates of Cabilis. Find these Froglok Tuk Warriors and return with four of their buckler shields."); + -- Confirmed Live Experience and Faction + e.other:Faction(e.self,445,10); -- Faction: Scaled Mystics + e.other:Faction(e.self,441,2); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,{itemid = 7830,exp = 1000}); -- Item: Patriarch's Claw + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 8999, item2 = 8999, item3 = 8999, item4 = 8999},1,text4)) then -- 5th Test of the Patriarch + e.self:Say("Congratulations young Patriarch, you have learned all that I can teach you at this time. You must venture forth now on your own and fulfill the fate that has been glimpsed by the Hierophants before your hatching."); + -- Confirmed Live Experience and Faction + e.other:Faction(e.self,445,10); -- Faction: Scaled Mystics + e.other:Faction(e.self,441,2); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,{itemid = 7831,exp = 1000}); -- Item: Patriarch's Leather + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18848})) then --A tattered note + e.self:Say("The Hierophants have sensed that your spirit is strong with obedience inspiring fear! You must learn to harness your [powers] over the scaled wolves! Wear this tunic so that the Legion of Cabilis will recognize you as a Scaled Spiritist."); + e.other:Faction(e.self,445,15); --Scaled Mystics + e.other:Faction(e.self,441,3); --Legion of Cabilis + -- Confirmed Live Experience + e.other:QuestReward(e.self,{itemid = 13577,exp = 100}); --Dusty Green Tunic + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabeast/Arch_Duke_Xog.lua b/cabeast/Arch_Duke_Xog.lua new file mode 100644 index 0000000..7528fba --- /dev/null +++ b/cabeast/Arch_Duke_Xog.lua @@ -0,0 +1,57 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("These are the sacred unholy grounds of the Crusaders of Greenmist and the Scaled Mystics. If you do not belong to us, you must leave this temple at once or learn great suffering in the name of Cazic-Thule."); + elseif(e.message:findi("greenmist")) then --Test of the Lord (Greenmist Quest 7/8) + e.self:Emote("appears surprised at your words. 'You know of Greenmist? The Unholy Khukri of Rile? We once had knowledge of this weapon, but when our great cities were destroyed in 1056 A.G., so, too, were all the great libraries. We lost all records. An explorer named [Argest] claimed to have found one library still intact. Pure babble.'"); + elseif(e.message:findi("who is argest")) then --Test of the Lord (Greenmist Quest 7/8) + e.self:Say("Once a Lord of Pain, Argest is now a great explorer. No lizard has seen more of Kunark than he. He returned one season ago to tell tales of an [ancient library]. He said that he believed that there he would find a tome which would reveal the location of the ancient crusader weapon, Greenmist."); + elseif(e.message:findi("ancient")) then --Test of the Lord (Greenmist Quest 7/8) + e.self:Say("There are many ancient libraries yet to be discovered. Our once great cities have been decimated, if not by our foes, then by nature itself. Within the outlands are many ruins which have yet to reveal themselves. We look forward to the discovery of these ruins by such explorers as Lord Argest the Great. If only we knew [where] he was..."); + elseif(e.message:findi("where is argest")) then --Test of the Lord (Greenmist Quest 7/8) + e.self:Emote("becomes despondent at your question. 'Alas, our chance of locating Greenmist is lost as long as Argest remains missing. Reports have come in from the Legion's deep range patrols that he may be in the Frontier Mountain range. At least, that is where the patrol captain found Argest's walking staff. He might have been captured, killed or even digested!!'"); + elseif(e.message:findi("strange iksar")) then + e.self:Say("Yes, he was dressed in rags and hadn't eaten in days. He rambled on about seemingly nothing, obviously he had lost his mind at some point. The guards brought him in because he told them he had valuable information concerning a captured Crusader. According to the mad man, our missing knight was captured by a group of cultists that follow a false god. The cultists intend on converting him apparently. Your [test] will concern Geanik."); + elseif(e.message:findi("test")) then + e.self:Say("Learning Righteousness is learning to listen to one's own heart. At all times our Lord of Fear speaks to us. Our heart is through which he speaks. If we are pure in action and undistracted in mind we can hear the very words of our Father. Your test will be to find our lost Crusader. When you find him you must listen, and act based on what you hear. If your actions are Righteous, I will give you my reference. Bring me proof of your action and two sapphires."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "Where is the rest, maggot?! I said the traitor's head and two star rubies!"; + local text2 = "Where is the rest, maggot?! I said proof of your action and two sapphires!"; + local text3 = "A true crusader would have brought to me what I requested. The Hero Khukri and the Tome of Vok Na Zov."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18205})) then --Guild Summon Test of the Newbie (Greenmist Quest 0/8) + e.self:Say("Welcome into our brotherhood. Know you that our way is the way of pain. Do as we say and you shall climb the rungs of knighthood. Listen well to the Lords of Pain within this temple and follow the words of the hierophants, for Cazic-Thule speaks to us through them. Take this khukri. It is the chosen weapon of the Crusaders and can deliver great pain unto our foes. Go now and learn our ways. Seek out Lord Gikzic."); + e.other:Faction(e.self,442,100); --Crusader of Greenmist + e.other:Faction(e.self,441,25); --Legion of Cabilis + -- Confirmed Live Experience and Faction + e.other:QuestReward(e.self,math.random(10),math.random(3),0,0,5120,200); --Pawn's Khukri + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18051, item2 = 5126},1,text3)) then --Test of the Lord (Greenmist Quest 7/8) + e.self:Say("A legible tome of the scrolls of Vok Na Zov! What a find this is!! May the unholy curses of Cazic flow through you. Please accept the weapon of a Lord of Pain. To abandon it is to abandon our ways and earn yourself the hatred of our order."); + e.other:Faction(e.self,442,10); -- Faction: Crusaders of Greenmist + e.other:Faction(e.self,441,2); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,math.random(8),5128,25000); -- Item: Lord of Pain's Khukri + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14791})) then --Trooper Scale Bracers quest + e.self:Emote(" takes the note and glances at it briefly then lets out a heavy sigh and stares out over the city for several minutes. Finally he says quietly, 'Several months ago we lost contact with one of our crusaders. His name is, or was, Geanik. The last we heard from him he was furthering our cause against the loathsome Goblins that reside in Warsliks Wood. Just recently we were visited by a [strange Iksar].'"); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14807, item2 = 10034, item3 = 10034},1,text2)) then + e.self:Say("Thanks for resolving this issue. Here is your reward"); + e.other:QuestReward(e.self,0,0,0,0,14808,10000); -- Item: Xog's Reference: Bracer + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14792})) then --Trooper Scale Gauntlets quest + e.self:Emote(" takes the note without even a glance in your direction and begins reading. After a long silence, he lets his arms drop to his sides and says quietly, 'We kill, " .. e.other:GetCleanName() .. ". That is our job, our duty in life. Our targets are chosen for us. We merely listen. Right now I am being told there is a traitor not far from here, near the ocean. Go to him and end his life. Bring me his head, and two star rubies. As you do this, try hard to listen to our Lord's instruction. If you hear even a whisper, you will know more righteousness than most of this city.'"); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14806, item2 = 10032, item3 = 10032},1,text1)) then + e.self:Say("Well done, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,14809,10000); -- Item: Xog's Reference: Gauntlet + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14814})) then + e.self:Emote("takes the icon and stares at it. His face twists into a look of disdain and he suddenly throws the icon off the balcony. It lands in the water some distance away. Without even a glance at you he says in disgust, 'You're an idiot, " .. e.other:GetCleanName() .. ". You fit your profession well. Leave my sight.'"); + e.other:Faction(e.self,442,-25); -- Faction: Crusaders of Greenmist + e.other:Faction(e.self,441,-6); -- Faction: Legion of Cabilis + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Brewer_Prixal.lua b/cabeast/Brewer_Prixal.lua new file mode 100644 index 0000000..a215357 --- /dev/null +++ b/cabeast/Brewer_Prixal.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("I. Brewer Prixal. am the maker of the heartiest drinks in all of Kunark! Have a look at my astonishing assortment of beverages!"); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Bugrin_the_Gatherer.lua b/cabeast/Bugrin_the_Gatherer.lua new file mode 100644 index 0000000..c312e14 --- /dev/null +++ b/cabeast/Bugrin_the_Gatherer.lua @@ -0,0 +1,12 @@ +function event_spawn(e) + eq.set_timer("depop",1200000); +end + +function event_timer(e) + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Clerk_Doval.lua b/cabeast/Clerk_Doval.lua new file mode 100644 index 0000000..35acba8 --- /dev/null +++ b/cabeast/Clerk_Doval.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("takes a sip of lager and looks up at you. 'Ahh! An adventurer of sorts? Looking for work, are we? If you have the time, I might have a bit of a [proposition] for you.'"); + elseif(e.message:findi("proposition")) then + e.self:Say("I was sent by the Legion to deliver a restraining order to a few of the troopers. They have been ordered to stay away from the tavern. They have spent too much time drinking and not enough training. I am to have them initial the restraint order list, but my feet are killing me. Perhaps you could [deliver the restraining order]?"); + elseif(e.message:findi("deliver the restraining order")) then + e.self:Say("Here is the restraint order. Go to the troopers and ask them to [sign the restraining order]. Also, make sure to have them sign it in alphabetical order. I am a very big stickler about this. The troopers' names are as follows; Ozlot, Ogmire, Nish Nish, Frogzin, Gummin, Inkin, Roklon, Taer, Fryp and Selbat. When all is done, I shall pay you."); + e.other:SummonCursorItem(18240); --Legion Order (0 signed) + elseif(e.message:findi("sisters of scale")) then -- yell emote + e.self:Say("I have heard some babble of that. I know all [about the skulls] of those ancients."); + e.self:DoAnim(49); + elseif(e.message:findi("about the skulls")) then -- nod emote + e.self:Say("I heard the dragon called Trakanon swallowed them up and their skulls now lie within the belly of that vile beast. Of course, that could be just babble. One hundred gold coins may give you the tink."); + e.self:DoAnim(48); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18250})) then --Legion Order (all signed) + e.self:Say("Thank you so much. I am so glad I did not have to deal with such a rowdy band of troopers as these. Please take some coin and perhaps a book from my personal library."); + e.other:Faction(e.self,440,3); --Cabilis Residents + e.other:Faction(e.self,441,1); --Legion of Cabilis + e.other:QuestReward(e.self,0,math.random(10),0,0,eq.ChooseRandom(12460, 12461),1200); --The Code of Combat, The Book of Knowledge + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabeast/Crusader_Zixo.lua b/cabeast/Crusader_Zixo.lua new file mode 100644 index 0000000..3ed18d0 --- /dev/null +++ b/cabeast/Crusader_Zixo.lua @@ -0,0 +1,27 @@ +--Crusader Zixo starts and ends The Penance quest. This allows a young iksar to replace their guild's starting item if they've lost it. + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Do you come to me empty handed, knave? Did you lose your pike?"); + elseif(e.message:findi("no")) then + e.self:Say("Ah... Yes... very good! Continue to work at this pace and the enemies of the Legion of Cabilis will fall beneath the blades of Cazic-Thule! Now move out... To Victory!"); --Could not find original text, modified SK version to fit. + elseif(e.message:findi("yes")) then --The Penance quest + e.self:Emote("shakes his head and growls. 'That is not good, broodling... Not good at all. You will need to take this note and seek out the Toilmaster immediately. Read it on the way and hope that your incompetence can be overcome. The Crusaders of Greenmist have a pit for you, should this prove to be impossible."); --Could not find original text, modified SK version to fit. + e.other:SummonCursorItem(18271); -- Item: A Ragged Book + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18272, item2 = 24770})) then --The Penance quest + e.self:Emote("takes the bag and tome from you and in return gives you the item that you have been thinking of all of this time. 'Lucky you. You have earned a second chance. Praise Cazic-Thule!'"); + e.other:QuestReward(e.self,0,0,0,0,5130); -- Item: Partisan's Pike + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Drill_Master_Dal.lua b/cabeast/Drill_Master_Dal.lua new file mode 100644 index 0000000..cd17c4c --- /dev/null +++ b/cabeast/Drill_Master_Dal.lua @@ -0,0 +1,53 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Yes, yes!! What do I have here?!! Another [new recruit]? If so, then speak up! If not, then leave and do not waste my time nor risk your life. I also seek a [legion soldier] if you be one."); + elseif(e.message:findi("new recruit")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Yes. You have the look of the Partisan. I trust you have begun your blacksmith training. If not, then do so. Also, you should read all the books available to you in Fortress Talishan. We are not dimwitted broodlings here. You shall need the knowledge soon. That, or a coffin. Ha!! Here is your task, are you [ready for your task]?"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("No Iksar resident will have anything to do with you!"); + else + e.self:Say("Hiss! Fool! Fear the Legion of Cabilis for you are no ally to us. Leave while you can."); + end + elseif(e.message:findi("soldier")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Good news to my ears!! I seek to prove to the War Baron that the infamous forsaken band of thieves who call themselves Marrtail's Marauders are operating within earshot of our city. You must bring me proof that you encountered no fewer than four of these thieves. Do so and I shall offer you an armor item unavailable to most."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("No Iksar resident will have anything to do with you!"); + else + e.self:Say("Hiss! Fool! Fear the Legion of Cabilis for you are no ally to us. Leave while you can."); + end + elseif(e.message:findi("ready")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Yes. yes!! It does not matter. You must be ready. I will hand you the Partisan pack. Into it you shall combine one giant blood sac of the giant leech; scout beads from a goblin scout; one sabertooth kitten canine and finally, three bone shards from decaying skeletons. Hopefully, you will survive your attempt to obtain these items. Return the full Partisan pack and you shall be rewarded with a curscale shield."); + e.other:SummonCursorItem(17997); -- Item: Partisan Pack + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("No Iksar resident will have anything to do with you!"); + else + e.self:Say("Hiss! Fool! Fear the Legion of Cabilis for you are no ally to us. Leave while you can."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12915, item2 = 12915, item3 = 12915, item4 = 12915})) then + e.self:Emote("hands you a shimmering black piece of armor which smells quite horrid. You find it hard to keep it from slithering out of your hand. 'Here is the armor the tailors have been working on for the legion. You may test it for us. Keep up your fine work and I may have other pieces available for you to test.'"); + e.other:Faction(e.self, 441,5); -- Faction: Legion of Cabilis + e.other:Faction(e.self, 440,1); -- Faction: Cabilis Residents + e.other:Faction(e.self, 445,1); -- Faction: Scaled Mystics + e.other:Faction(e.self, 442,1); -- Faction: Crusaders of Greenmist + e.other:Faction(e.self, 444,1); -- Faction: Swift Tails + e.other:QuestReward(e.self,0,math.random(15),0,0,eq.ChooseRandom(12917,12918,12919,12920,12921),1000); -- Item(s): Leech Husk Tunic (12917), Leech Husk Leggings (12918), Leech Husk Gloves (12919), Leech Husk Wrist Bands (12920), Leech Husk Boots (12921) + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12673})) then + e.self:Say("Fantastic work, Partisan " .. e.other:GetCleanName() .. ". Here is your reward. You may continue to perform this task as the baron has found it aids in our defense. I shall always pay for a good day's work. Just let me know if you are still [ready for the task]. As for the curskin shield, you may only have one. Perhaps soon you will prove yourself a formidable fighter and you can earn a militia pike from Drill Master Vygan."); + e.other:Faction(e.self, 441,5); -- Faction: Legion of Cabilis + e.other:Faction(e.self, 440,1); -- Faction: Cabilis Residents + e.other:Faction(e.self, 445,1); -- Faction: Scaled Mystics + e.other:Faction(e.self, 442,1); -- Faction: Crusaders of Greenmist + e.other:Faction(e.self, 444,1); -- Faction: Swift Tails + e.other:QuestReward(e.self,0,math.random(15),0,0,12674,250); -- Item: Curscale Buckler + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabeast/Drill_Master_Kyg.lua b/cabeast/Drill_Master_Kyg.lua new file mode 100644 index 0000000..63226a6 --- /dev/null +++ b/cabeast/Drill_Master_Kyg.lua @@ -0,0 +1,62 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome. Welcome!! Time to train. Time to fight. Time to serve the Iksar Empire. You will need weapons. I have the [footman pike] for all new recruits to earn."); + elseif(e.message:findi("pike")) then + e.self:Say("A footman pike is what you need. A footman pike is what you get, but earn it you will. You must [slay many beasts] to prove to us that you are a true warrior. Fail and you will be exiled to live with the Forsaken."); + elseif(e.message:findi("beasts")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Yes. You will slay or you will be slain. Take this footman's pack and fill it you will. Fill it with [weapons of our foes]. When all are combined, the full footman's pack shall be returned to me along with your militia pike. Do this and earn your footman pike and then we may have a true mission for you."); + e.other:SummonCursorItem(17027); -- Item: Footmans Pack + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("No Iksar resident will have anything to do with you!"); + else + e.self:Say("Hiss! Fool! Fear the Legion of Cabilis for you are no ally to us. Leave while you can."); + end + elseif(e.message:findi("weapons")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Yes. You need to know the weapons required. Fill the pack with javelins. Froglok bounder and goblin hunter javelins. Two of each."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("No Iksar resident will have anything to do with you!"); + else + e.self:Say("Hiss! Fool! Fear the Legion of Cabilis for you are no ally to us. Leave while you can."); + end + elseif(e.message:findi("moglok")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("My dear friend, Warlord Hikyg of the Swamp Gate has encountered some difficulty with a Trooper Moglok. He requested that I find a brave soldier to take charge of the situation. Are you willing to [assist Warlord Hikyg]?"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("No Iksar resident will have anything to do with you!"); + else + e.self:Say("Hiss! Fool! Fear the Legion of Cabilis for you are no ally to us. Leave while you can."); + end + elseif(e.message:findi("Hikyg")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Good. Take this note to Footman Moglok of the swamp garrison. He shall instruct you on your mission."); + e.other:SummonCursorItem(18234); -- Item: A Sealed Note + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("No Iksar resident will have anything to do with you!"); + else + e.self:Say("Hiss! Fool! Fear the Legion of Cabilis for you are no ally to us. Leave while you can."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "You were instructed to return with the full footmans pack and your militia pike."; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12430, item2 = 5131},1,text1)) then + e.self:Say("Kyg knew you could do it. You will make a fine legionnaire some day but, for now, you shall be a footman. Take the footman pike head plans. Forge the footman's pike. Do so, and then you may have an audience with the War Baron on the subject of his [Memory of Sebilis]."); + e.other:Faction(e.self, 441,5); -- Faction: Legion of Cabilis + e.other:Faction(e.self, 440,1); -- Faction: Cabilis Residents + e.other:Faction(e.self, 445,1); -- Faction: Scaled Mystics + e.other:Faction(e.self, 442,1); -- Faction: Crusaders of Greenmist + e.other:Faction(e.self, 444,1); -- Faction: Swift Tails + e.other:QuestReward(e.self,0,0,0,0,12475,500); -- Item: Footman Head Plans + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Drill_Master_Vygan.lua b/cabeast/Drill_Master_Vygan.lua new file mode 100644 index 0000000..ec68f39 --- /dev/null +++ b/cabeast/Drill_Master_Vygan.lua @@ -0,0 +1,92 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am a Drill Master of the Legion of Cabilis. I have no time for idle chitchat. Be off if you were not summoned to this fortress! Find that guild which was chosen for you as an egg."); + elseif(e.message:findi("militia pike")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The pike is the prime weapon of Cabilis warriors. It can be upgraded, too, such as from the partisan pike to the militia pike and beyond. All these pikes may be slung on one's back when your hands are needed for other pursuits. To upgrade a pike is something that is learned, but it can never be performed without a [geozite tool]. Do you [desire to upgrade the partisan pike]?"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("No Iksar resident will have anything to do with you!"); + else + e.self:Say("Hiss! Fool! Fear the Legion of Cabilis for you are no ally to us. Leave while you can."); + end + elseif(e.message:findi("upgrade the partisan pike")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("It seems as though a traitor is among our people. Someone has smuggled shackle keys to the slaves. The froglok slaves have been escaping into the swamplands and there we can hear the whistle of their contact who escorts them to freedom. We must put a stop to this! I desire three things. Your partisan pike, the head of the Iksar traitor and the whistle of the escort. Bring these to me and I shall give you the militia pike."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("No Iksar resident will have anything to do with you!"); + else + e.self:Say("Hiss! Fool! Fear the Legion of Cabilis for you are no ally to us. Leave while you can."); + end + elseif(e.message:findi("what geozite tool")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The Geozite Tool is used to sharpen the pikes of the Legion of Cabilis. Only it can produce the serrated edges necessary for these deadly weapons. They are not handed out to just any broodling. The tool is only given to warriors who serve the legion. Do you [want a geozite tool]?"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("No Iksar resident will have anything to do with you!"); + else + e.self:Say("Hiss! Fool! Fear the Legion of Cabilis for you are no ally to us. Leave while you can."); + end + elseif(e.message:findi("want a geozite tool")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Then take this satchel and go to the outer walls of Cabilis and seek out large scorpions. When you can fill and combine the satchel with scorpion pincers, then you shall prove to me that you are truly a warrior and I shall send you off on your true test."); + e.other:SummonCursorItem(17993); -- Item: Pincer Satchel + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("No Iksar resident will have anything to do with you!"); + else + e.self:Say("Hiss! Fool! Fear the Legion of Cabilis for you are no ally to us. Leave while you can."); + end + elseif(e.message:findi("true warrior of the legion")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("If you are you will have proof; else you will have the wrath of the Legion upon you for such a claim."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("No Iksar resident will have anything to do with you!"); + else + e.self:Say("Hiss! Fool! Fear the Legion of Cabilis for you are no ally to us. Leave while you can."); + end + elseif(e.message:findi("partisan of cabilis")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Bah! You are but a broodling! Report to the other Drill Masters and pray that they can help you overcome your incompetence."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("No Iksar resident will have anything to do with you!"); + else + e.self:Say("Hiss! Fool! Fear the Legion of Cabilis for you are no ally to us. Leave while you can."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "You shall wield no militia pike until I have the head of the traitor, the fife of the escort and the partisan pike."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18203})) then --Guild Summons + e.self:Say("I see they have begun to draft younger broodlings? Hmmph!! No matter. We Drill Masters shall make a warrior of you. Here is your partisan's pike and some coin as your wages. Be sure that you begin your training in blacksmithing and report to the other Drill Masters for any tasks they may have for you. Let them know you are [a partisan of Cabilis]. Perhaps soon you shall be rewarded the [militia pike]."); + e.other:Faction(e.self,441,100); --Legion of Cabilis + e.other:Faction(e.self,440,25); --Cabilis Residents + e.other:Faction(e.self,445,25); --Scaled Mystics + e.other:Faction(e.self,442,25); --Crusader of Greenmist + e.other:Faction(e.self,444,25); --Swift Tails + -- Confirmed Live Experience and Faction + e.other:QuestReward(e.self,{copper = math.random(0,5),silver = math.random(0,2),itemid = 5130,exp = 500}); --Partisan's Pike + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12675, item2 = 12677, item3 = 5130},1,text1)) then + e.self:Say("You have perfomed just as expected. I bestow upon you the rank of militiaman. Here is your new pike. Past this, you shall require the [geozite tool] to upgrade your future pikes and mancatchers. We see much promise in you, militiaman. Go forth to serve the realm."); + e.other:Faction(e.self,441,10); --Legion of Cabilis + e.other:Faction(e.self,440,2); --Cabilis Residents + e.other:Faction(e.self,445,2); --Scaled Mystics + e.other:Faction(e.self,442,2); --Crusader of Greenmist + e.other:Faction(e.self,444,2); --Swift Tails + e.other:QuestReward(e.self,0,0,0,0,5131,200); -- Item: Militia's Pike + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12658})) then + e.self:Say("You are a true warrior of Cabilis. You obviously are aware that in order to upgrade your pike you shall need a [geozite tool]. Take this note to the Lord of the outer gates. He desires a young warrior for a small task. Do this and he is instructed to reward you with the tool."); + e.other:Faction(e.self,441,5); --Legion of Cabilis + e.other:Faction(e.self,440,1); --Cabilis Residents + e.other:Faction(e.self,445,1); --Scaled Mystics + e.other:Faction(e.self,442,1); --Crusader of Greenmist + e.other:Faction(e.self,444,1); --Swift Tails + e.other:QuestReward(e.self,math.random(10),math.random(10),math.random(3),0,eq.ChooseRandom(18213,18211,18210),200); -- Item(s): Note to Iksar Lord (18213), Note to Iksar Lord (18211), Note to Iksar Lord (18210) + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Grand_Master_Glox.lua b/cabeast/Grand_Master_Glox.lua new file mode 100644 index 0000000..30dbf62 --- /dev/null +++ b/cabeast/Grand_Master_Glox.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote('shows no reaction to your greeting.'); + eq.signal(106097,1); -- NPC: Master_Niska + elseif(e.message:findi("trial of agility")) then + e.self:Say('I knew you were not the whiff others claimed you to be, are you sure you are [ready] to be tested in agility?'); + elseif(e.message:findi("ready")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say('We shall spar then, I hope you are as prepared as you think you are.'); + e.self:CastSpell(2064,e.other:GetID(),0,1); -- Spell: Cabilis Sending + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Swifttail Caste desires further service before I can share this with you."); + else + e.self:Say("Leave at once! I will warn you no longer. You are no friend to the Swifttail Caste."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "sits, his eyes still closed, and tilts his head in confusion. He then sighs and shakes his head implying disappointment. You suddenly realize that the old master asked for the mole's collar and two star rubies."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18204})) then -- Guild Summons + e.self:Emote('breaks his meditation and quickly grabs your forearms. You feel the raw power in his heavily callused hands. Out of nowhere, his tail sweeps forward and places a shackle upon your wrist. He then points south towards Master Bain and returns to his meditation.'); + e.other:Faction(e.self,444,200); --Swift Tails + e.other:Faction(e.self,441,50); --Legion of Cabilis + -- Confirmed Live Experience and Faction + e.other:QuestReward(e.self,{itemid = 4190,exp = 1000}); -- Shackle of Dust + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14788})) then + e.self:Emote("sits whispering incoherently for a long moment before even regarding the note you dropped in front of him. The Grand Master suddenly snatches up the note from Xlixinar, removes a small charcoal marker from a belt pouch, and scrawls some intructions upon it. He drops the note immediately after finishing and resumes his meditation without a word."); + e.other:QuestReward(e.self,0,0,0,0,18980); -- Item: Note from Glox + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14782, item2 = 10032, item3 = 10032},1,nil,text1)) then + e.self:Emote("nods slightly"); + e.other:QuestReward(e.self,0,0,0,0,14783,10000); -- Item: Glox Reference + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Grype.lua b/cabeast/Grype.lua new file mode 100644 index 0000000..12bcece --- /dev/null +++ b/cabeast/Grype.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("gulps down the rest of his ale. 'Looks like I'll need another."); + elseif(e.message:findi("blue talon")) then -- attack animation + e.self:Emote("takes a swipe at you. 'We used to be the bruisers of the west side. We didn't take nothin' from no one!! Fist and mind was our motto. Now get lost before I introduce my fist to your face. Hmpf. Too late, I see."); + e.self:DoAnim(5); + elseif(e.message:findi("stein")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Emote("is staggering from one too many pale ales. 'Lishen... Listen here. I have been forced to cut back on my drinking because my favorite sloshing stein was stolen from me by some stubby little thief in black. I was jus' minding my own business and picking flowers in the fields of the drixies when he comes and snatches it from me. Return it to me, and I will give you this treasure I acquired from a sarnak revenant."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you have shown more devotion to the Brood of Kotiz, we can discuss such things."); + else + e.self:Say("You are a true simpleton to think you can speak to me. You are no ally to the Brood of Kotiz. Begone, before I make your blood boil!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "drinks the ale as if it were a shot. 'Ahhh!! Keep it coming. I think we are going to be good friends. Or something."; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12862})) then --Stein from halfling swashbuckler in FV + e.self:Emote("nearly faints. His eyes begin to tear up. 'Oh my sweet stein of sloshing! This is the great treasure. A shiny piece of broken metal! Ha! You never win when you deal with a Blue Talon!"); + e.other:QuestReward(e.self,0,0,0,0,12852); --Foot of Candlestick + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12609, item2 = 12609, item3 = 12609, item4 = 12609},1,nil,text)) then + e.self:Emote("swallows the whole bottle in one gulp. 'Here, go buy yourself a brain. What?!! You expecting something? How about this.. Thanks for helping me get through my dry spell, croak!! Never mess with a Blue Talon!!"); + e.other:QuestReward(e.self,math.random(5),0,0,0,0,100); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabeast/Haggle_Baron_Klok.lua b/cabeast/Haggle_Baron_Klok.lua new file mode 100644 index 0000000..479ec2c --- /dev/null +++ b/cabeast/Haggle_Baron_Klok.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("smells of fine scents and has very oily, shiny skin. 'Greetings! Who are you? If you came to speak with the Haggle Baron, you must have matters of heavy coin to discuss. Ha ha! I love heavy coin!'"); + end +end \ No newline at end of file diff --git a/cabeast/Half_Elf_Maiden.lua b/cabeast/Half_Elf_Maiden.lua new file mode 100644 index 0000000..51ad728 --- /dev/null +++ b/cabeast/Half_Elf_Maiden.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What do you want? You do not look like the type of person the Baron usually sends to me."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1096})) then --Klok's Seal + e.self:Say("Oh! thank you! I did not expect to hear of my family ever again. This seal should grant me protection out of the city if I am careful. Please take this note to my father and let him know I am safe!"); + e.other:QuestReward(e.self,0,0,0,0,18863,2000); --Sealed Letter + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Hierophant_Dexl.lua b/cabeast/Hierophant_Dexl.lua new file mode 100644 index 0000000..10675cf --- /dev/null +++ b/cabeast/Hierophant_Dexl.lua @@ -0,0 +1,37 @@ +--Shaman Skull Quest 6 + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("seems to be preocupied. He is examining an egg. 'What?!! Who has [sent] you to me? Bah!! Away with you.' He ignores you and continues chanting.'"); + elseif(e.message:findi("di nozok sent")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Emote("drops the egg he was holding. Egg yolk splatters on your foot. His eyes roll back into his head. He speaks, but his voice is that of a female. 'I await you, " .. e.other:GetCleanName() .. " . My sisters and I yearn for the return of our skulls. We are the [Sisters of Scale]. Find us and bring to this hierophant our skulls and your iron cudgel of the Channeler. Go."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You will only obtain that which you seek by assisting the wills of the Scaled Mystics."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("sisters")) then -- kneel emote + e.self:Emote("wipes egg yolk from his clothing. 'My, what a mess!! Hmmph!! What did you say? Sisters of Scale? They were a legendary trio of mystics. We once had their skulls sealed within this temple, but now they are lost. I sent a channeler to retrieve them. His name was Vagnar. I am sure he shall find them."); + e.self:DoAnim(33); + elseif(e.message:findi("vagnar")) then + e.self:Say("He's a capable channeler, I trust he knows where to look and will prepare himself. Any competent servant of our Lord would prepare potions and supplies before going on such a quest. If he doesn't come back, it's no great loss, he wasn't Hierophant material anyway."); + end +end + +function event_trade(e) + local item_lib = require("items"); + --Turn in the skulls of the sisters of scale and your cudgel of the channeler + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 5145, item2 = 12748, item3 = 12750, item4 = 12749})) then + e.self:Emote("goes into a trance and speaks with the voice of an ancient. 'You have returned the skulls of the Sisters of Scale. For this you shall be rewarded. Take this hierophant's weapon. May you use it to smite the foes of our people.' Dexl comes out of the trance. 'What?!! Whew. Hey!! Where is my cudgel?"); + e.other:Faction(e.self,445, 10); --Scaled Mystics + e.other:Faction(e.self,441, 10); --Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,10,5146,140000); --Give the player The Cudgel of the Hierophant + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Hierophant_Granix.lua b/cabeast/Hierophant_Granix.lua new file mode 100644 index 0000000..228ec83 --- /dev/null +++ b/cabeast/Hierophant_Granix.lua @@ -0,0 +1,48 @@ +--Quests covered in this file: +--Shaman Skull Quest 7 + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Leave me in peace " .. e.other:GetCleanName() .. ", I have little desire for company now. The Faceless sends visions to me that may hold the fate of our race in sway."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("visions")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The spirits tell me of strange happenings around the ancient city of Charasis. None of the mystics that have been sent to investigate have returned. Something is surely happening in the ancient tombs of that city. I pray to our lord for some way to calm the tortured spirits of our fallen brothers that haunt the Howling Stones."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("dreams cloud your mind")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I see much darkness...darkness and death. A void of life...the cold grip of death. An Ancient pact...with forces too terrible to describe...A great Leader...a fall, and a second coming. I see...a symbol of...an ancient city...Kaesora. I would begin there young Mystic. The spirits of that fallen city may hold a key to our future."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + --local qglobals = eq.get_qglobals(e.other,e.self); + local item_lib = require("items"); + --Turn in the a dusty iksar skull + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 30984})) then + e.self:Emote("peers at the skull intently. 'There is strange magic in this skull " .. e.other:GetCleanName() .. ", whatever necromancer animated this skeleton was a powerful warlock indeed. I sense the power of several ancients in this relic. Take this skull to Oracle Qulin in the field of bone, he may be able to perform the ritual which will free this ancient's spirit from the mortal realm.'"); + e.other:QuestReward(e.self,0,0,0,0,30984); --give back the skull + --Turn in the note Oracle Qulin gave you + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 30986})) then + e.self:Say("It is as I feared, the mark of the warlock has surely driven these ancient spirits mad. We can not allow these spirits to roam free in our world " .. e.other:GetCleanName() .. ". Take this case and place the glowing skulls of other ancients inside of it. Return it to me with your Cudgel of the Heirophant so that we may remove these cursed spirits from our world forcefully."); + e.other:QuestReward(e.self,0,0,0,0,17134); --give ornate skull case for 4 glowing skulls + --Turn in full ornate skull case and cudgle of the heirphant + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 30988, item2 = 5146})) then + e.self:Say("You have done well " .. e.other:GetCleanName() .. ". Perhaps you can help clear these troubling dreams from my tired aging mind. Commune with the spirits of our Ancestors and learn from them. Never forget that the ultimate power comes from knowledge. The ancients are privy to much knowledge that mortals will never see. Should you be granted enlightenment from our ancestors, share your knowledge with me so that we may use this knowledge for the benefit of our brethren. I will continue to study the [dreams] that [cloud] my mind."); + e.other:QuestReward(e.self,0,0,0,0,5148); --SkyIron Cudgel of the Arisen + end + item_lib.return_items(e.self, e.other, e.trade) --return items if not the ones required +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Hierophant_Oxyn.lua b/cabeast/Hierophant_Oxyn.lua new file mode 100644 index 0000000..6e6a630 --- /dev/null +++ b/cabeast/Hierophant_Oxyn.lua @@ -0,0 +1,88 @@ +--Hierophant Oxyn is for the Greenmist quest and is part of the eighth and final quest in the series. He also gives out the Cursed Wafer quest and shaman skullcaps 1 and 2. + +function event_say(e) + + if(e.message:findi("hail")) then + e.self:Say("Greetings, and may the pain of the ancients guide you. You have come to us for guidance, have you not? We are the Hierophants of Cabilis and we guide the young Scale Mystics. All petitioners shall speak with me of [temple tasks]."); + elseif(e.message:findi("temple tasks")) then + e.self:Say("The Temple of Terror requires all young Scaled Mystics to [perform daily tasks.]. The tasks are necessary to the upkeep of our order as well as that of our brothers, the Crusaders of Greenmist."); + elseif(e.message:findi("daily tasks")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("We require many components for various rituals. Take this Component mortar and fill it with the following items - foraged [mud crabs]. two small mosquito wings and one portion of bone chips. You must then use the pestle and combine all the components. When you have a full component mortar, you may return to me and I shall pay you your wages, but most importantly, you shall prove your devotion to the Scaled Mystics."); + e.other:SummonCursorItem(17020); --give the player the combine box: Component Mortar + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You will only obtain that which you seek by assisting the wills of the Scaled Mystics."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("mud crabs")) then --Cursed Wafers quest + e.self:Say("Mud crabs are tiny crustaceans which live along the mudcaked shores of the Lake of Ill Omen. You can forage for them and find a handful of them at a time."); + --Shaman Skull Quest No.1 Event_Say + elseif(e.message:findi("lost skulls")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("You must have heard of the Trilac Brotherhoods disappearance. They are the skulls of three soon to be ancients. They were taken from this temple by a silent intruder. Crusaders are always on duty. I do not know how they got into our vault. Every petitioner is ordered to search for the three skulls and return them to me along with their petitioner cudgel and then they shall become clairvoyants."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You will only obtain that which you seek by assisting the wills of the Scaled Mystics."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("iron cudgel")) then -- does boggle emote 170 + e.self:Emote("shakes his head and waves a finger in your face. If you are looking to be handed the Iron Cudgel of the Clairvoyant then you are sadly mistaken. Perhaps if you were to gather a few [lost skulls] for the temple we may find you worthy to wield one.'"); + e.self:DoAnim(170); + --Shaman Skull Quest No.2 Event_Say + elseif(e.message:findi("larger problem")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Many of the ancient skulls have been cast out of our temple. A hierophant was supposed to cast a special spell which was to protect the skulls from dust and decay. He cast some unknown spell which has sent many of our skulls to their original point of death. It would be most helpful if you would [assist in collecting the ancient skulls]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You will only obtain that which you seek by assisting the wills of the Scaled Mystics."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("ancient skull")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Emote("seems unsure of your prowess. 'Hmmm. First you shall go after the two skulls of the Cleansers of the Outlands. If you find them, bring them back unbroken and then I shall trust you. Hand me both skulls and your iron cudgel of the clairvoyant and I will know you are prepared.'"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You will only obtain that which you seek by assisting the wills of the Scaled Mystics."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("liquid")) then --Crusaders of Greenmist (Greenmist Quest 8/8) + e.self:Say("The bottle contains deklium in a liquid solution. The metal of prophecy has been determined to rest in a mass of living earth. Our scholars have written of a mass of ore that fell from the heavens. This ore was used in the creation of a blade of our father, Rile. We have been filled with visions of this blade. I have seen it in the hands of our Crusaders as they march towards the new age of Greenmist! Seek out the corrupted earth that guards the interlopers. We have an alchemist near there. He will be able to use the deklium to determine which golem contains the metal. Take care to go in force. I sense that there will be a battle."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "In my hand shall be placed three skulls of the Trilac Brotherhood and an iron cudgel of the petitioner."; + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 3895},0)) then --Crusaders of Greenmist (Greenmist Quest 8/8) + e.self:Emote("takes the note and begins to howl into the air! 'The visions are true! The new prophecy begins today, Crusader,' the mystic growls with pleasure. He quickly turns and takes a bottle of murky liquid from one of his potion bags and hands it to you. 'Take this and keep it safe. Our visions have told of this day. We have been able to learn of the metal of prophecy. This [liquid] will help us to locate its true resting place!"); + e.other:Faction(e.self,442,20); -- Faction: Crusaders of Greenmist + e.other:Faction(e.self,441,10); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,3892,5000); --Bottle of Liquid Deklium + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 3886},0)) then --Crusaders of Greenmist (Greenmist Quest 8/8) + e.self:Emote("holds the ore in his hands and begins to chant. His eyes go white as he raises the chunk of ore above his head. He lowers his arms and shakes his head for a moment. His eyes return to their normal state as they focus on you. The shaman hands you the ore and says, 'Seek out the creator of Rile's blade. He is still on this plane. I have felt his torment. Take this note to Librarian Zimor. He learned a great deal from the tome and can instruct you further.'"); + e.other:Faction(e.self,442,20); -- Faction: Crusaders of Greenmist + e.other:Faction(e.self,441,10); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,{items = {3893,3886},exp = 5000}); --Note to Librarian --Chunk of Tynnonium + --Cursed Wafers turn in + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12403},0)) then --Full Component Mortar + e.self:Say("We appreciate your service. Take a few copper for your deed as well as some of our cursed waters. They will provide you with nourishment. As for future tasks, we are searching for a few [lost skulls] and i am sure you are searching for your [iron cudgel of the clairvoyant] And i also hear that the furscales are in need of some broodlings to do some manual labor. Tell them Oxyn sent you."); + e.other:Faction(e.self,445, 2); --Scaled Mystics + e.other:Faction(e.self,441, 1); --Legion of Cabilis + e.other:QuestReward(e.self,{items = {12406,12406},exp = 50}); --Cursed Wafers 2x + --Shaman Skull Quest No.1 turn in - Check for Logrin Skull, Morgl Skull, and Waz Skull hand in along with Iron Cudgel of the Petitioner + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12721, item2 = 12722, item3 = 12723, item4 = 5140},1,text1)) then + e.self:Say("Excellent! You have proved yourself worthy to wield the iron cudgel of the clairvoyant. As a clairvoyant I feel I can trust you, so I will tell you that the issue of the missing skulls is a [much larger problem] than last stated."); + e.other:Faction(e.self,445, 10); --Scaled Mystics + e.other:Faction(e.self,441, 5); --Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,1,5141,2000); --Iron Cudgel of the Clairvoyant + --shaman skull quest no.2 turn in - check for Skull with I and Skull with II turn in and cudgel + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12724, item2 = 12725, item3 = 5141})) then + e.self:Say("We are in your debt," .. e.other:GetCleanName() .. " . You are truly one who shall collect all the lost ancient skulls. Take your weapon. Go to Hierophant Zand and he shall guide you further. Tell him you are [the chosen saviour]."); + e.other:Faction(e.self,445, 10); --Scaled Mystics + e.other:Faction(e.self,441, 5); --Legion of Cabilis + e.other:QuestReward(e.self,0,0,5,1,5142,60000); --Iron Cudgel of the Seer + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabeast/Hierophant_Zand.lua b/cabeast/Hierophant_Zand.lua new file mode 100644 index 0000000..c25c9c2 --- /dev/null +++ b/cabeast/Hierophant_Zand.lua @@ -0,0 +1,53 @@ +--Heirophant Zand starts and ends The Penance quest. This allows a young iksar to replace their guild's starting item if they've lost it. She is also for the 3rd and 5th shaman skullcap quests. + +function event_say(e) + if(e.message:findi("chosen savior")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I am honored to meet the one who shall pledge his life to the return of the Skulls of the Ancients. However, I must see proof of our prowess as of yet. Go to the outlands and retrieve one Froglok Hexdoll, and no, they are not found on Frogloks. They are shaman dolls made by the goblin tribe."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You will only obtain that which you seek by assisting the wills of the Scaled Mystics."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("hail")) then + e.self:Emote("raises his hand and looks up. 'May the wisdom of the ancients lead your soul to suffering and everlasting pain. Such is the will of Cazic-Thule. I see something in your eyes, Hatz. Have you lost something... your cudgel perhaps?"); + elseif(e.message:findi("no")) then + e.self:Say("That is good to hear. Continue to follow the path of pain. Suffering awaits."); + elseif(e.message:findi("yes")) then --The Penance quest + e.self:Say("That is most unfortunate for you. Your suffering will be extended on this plane, until you find your way back to us. Take this and read it on your way to speak with the Toilmaster. He will guide you. Yesssss...' You feel as if something is peering at you from behind the speaker's soulless eyes as the last letter he speaks transforms into a sigh."); + e.other:SummonCursorItem(18271); --A Ragged Book + elseif(e.message:findi("skulls of di nozok")) then -- shrug emote + e.self:Say("What?! I have read of them, but that is all I know of the legendary mystic, err, mystics... whatever! Where their remains rest is a mystery, but those filthy goblins always seem to get ahold of things that are lost, all that infernal digging you see."); + e.self:DoAnim(65); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "seems to black out, and then recover. He speaks with the voice of an ancient. 'We are Dai and Die and we await our skulls and your iron cudgel of the prophet. Become a channeler."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18272, item2 = 24770})) then --The Penance quest + e.self:Emote("takes the bag and tome from you and in return gives you the item that you have been thinking of all of this time. 'Lucky you. You have earned a second chance. Praise Cazic-Thule!'"); + e.other:QuestReward(e.self,0,0,0,0,5140); --Iron Cudgel of the Petitioner + end + --Shaman Skull Quest No.3.1 turn in - Check for A froglok hex doll + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12734})) then + e.self:Say("Fine work! I hope for your sake, you did not purchase it from a brave adventurer. Take this note to the one for whom it is written. This lizard has knowledge of a large number of skulls."); + e.other:Faction(e.self,445, 10); --Scaled Mystics + e.other:Faction(e.self,441, 10); --Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,5,18054,80000); --A note to take to crusader Quarg. + --Shaman Skull Quest No.5 turn in - Iksar Skull Helm and Iksar Skull and Cudgel of the Prophet + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12741, item2 = 5144, item3 = 12740},1,nil,text1)) then + e.self:Emote("closes his eyes and reopens them. They have no pupils. He speaks and you hear his voice echo. 'We are Di Nozok. You have earned the weapon of a channeler. We hope to fill your thoughts with ours some day. Go and seek out Dexl. We send you to him. Farewell , Channeler of Cabilis."); + e.other:Faction(e.self,445, 20); --Scaled Mystics + e.other:Faction(e.self,441, 5); --Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,10,5145,120000); --Give the player The Cudgel of the Channeler + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Klok_Dytar.lua b/cabeast/Klok_Dytar.lua new file mode 100644 index 0000000..e3623f9 --- /dev/null +++ b/cabeast/Klok_Dytar.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Going scouting in the wilds of Kunark? Wait!! Before you do. buy all you need from me. I am a survival outfitter. You most assuredly will need a water extractor and purification tablets. If not those. then perhaps a poncho or machete to protect you from the elements and chop through the bush."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Klok_Ephmir.lua b/cabeast/Klok_Ephmir.lua new file mode 100644 index 0000000..3920e1b --- /dev/null +++ b/cabeast/Klok_Ephmir.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares at you with a wicked smirk. 'So you share the Brood's love of frogloks, do you? Alive, they provide much trouble. Dead, they provide much delight. I have found many uses for the frogloks. From fine meat to fine mats. Be sure to ask if you do not see something you desire.'"); + elseif(e.message:findi("i need thinly sliced froglok")) then + -- Catfish Croak Sandwich [Part 5] + e.self:Say("I can provide thin sliced froglok meat, or rather, I used to. First I need to [sharpen the dull cutting disk]."); + elseif(e.message:findi("sharpen.*disk")) then + -- Catfish Croak Sandwich [Part 6] + e.self:Say("That would be good. If you are a blacksmith, I am sure you can find a sharpening stone and bring life back in my disk. If you sharpen this I shall gladly provide you with some thin sliced froglok."); + e.other:SummonCursorItem(12449); -- Item: Dull Cutting Disk + elseif(e.message:findi("outlander")) then --Shackle of Copper Quest + e.self:Emote("turns pale at the mention of the Outlander. 'The Outlander!! That is what the lizards in the Tink N' Babble have dubbed him!! He is tall and strong. Get close enough and he will kill you on sight!! I think he could even defeat the likes of Bruiser Noz!! I spotted him near the edge of the swamps. He was headed toward the fields of Firiona.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + --Handin: Sharpened Cutting Disk (12450) + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12450})) then + -- Catfish Croak Sandwich [Part 7] + e.self:Emote("takes the disk and attaches it to an odd device powered by a foot pedal. He takes a froglok leg and begins to slice it as chunks of gristle flies into your face. When he is done he hands you some thin sliced froglok. 'There you are. Run along.'"); + e.other:QuestReward(e.self,{items = {12445,12445,12445,12445}}); -- Item: Thin Sliced Froglok Meat + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted By: Senzo +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Klok_Foxmyr.lua b/cabeast/Klok_Foxmyr.lua new file mode 100644 index 0000000..c0362ff --- /dev/null +++ b/cabeast/Klok_Foxmyr.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("is baiting hooks with mud crabs. He reeks of fish. 'I smells the blood of a fisherman in you. Buy a pole and some bait. See the size of the fish you can haul in from the waters of Cabilis."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Klok_Gogon.lua b/cabeast/Klok_Gogon.lua new file mode 100644 index 0000000..1acee0d --- /dev/null +++ b/cabeast/Klok_Gogon.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("sets down a wooden stave and brushes the wood chips from his apron. 'Good day to you! Might I suggest a fine bow or perhaps you need fletching material? Whatever widdling component it may be, Klok Gogon sells it."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Klok_Hoga.lua b/cabeast/Klok_Hoga.lua new file mode 100644 index 0000000..04462bd --- /dev/null +++ b/cabeast/Klok_Hoga.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("turns to shake your hand. Clay covers his hand and now yours as well. 'Greetings! Looking for treasures? There is no greater treasure than the one a lizard creates for itself from the mud and the clay."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Klok_Ixmid.lua b/cabeast/Klok_Ixmid.lua new file mode 100644 index 0000000..46ed9cd --- /dev/null +++ b/cabeast/Klok_Ixmid.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Searching for the sparklies are we? Look and see. See what I have found on my journeys into the outlands."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Klok_Mugruk.lua b/cabeast/Klok_Mugruk.lua new file mode 100644 index 0000000..1d14450 --- /dev/null +++ b/cabeast/Klok_Mugruk.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to my shop, sss. Only the finessst I have. I make for you jussst as I make for the emperor's harem. Many [bristle silk] garmentsss do they need. Ssss.. Lucky man, the emperor isss."); + elseif(e.message:findi("bristle silk")) then + e.self:Say("What is bristle silk?!! Huh? Where have you been living? Under the rocksss.. Nahh. I sssee. You are a broodling from the common ssstock. You could never afford bristle silk nor the affectionss of those who drape themselves with it. Still, commons have much ssservice to offer. Maybe you would like to earn some [curscale armor]. Hmm?"); + elseif(e.message:findi("curscale armor")) then + e.self:Say("Curscale armor? I make thisss crude armor from the broodlings of the scaled wolves. I use the ssskins of the pupsss and cubs. Those ssskins are ssstill young and thin and are bessst for the young adventurers. I sssupply them to the Legion of Cabilisss, but for a [small service] I shall make them available to you."); + elseif(e.message:findi("^small service")) then + e.self:Say("I am in need of pup and cub scaled wolf skins to create more [curscale armor]. Many Legionnaires have died in battle. The Baron demands more sssuits. I mussst have more ssskins or it is MY HIDE!! I shall reward pieces of the curscale armor to any who [perform a small service]."); + elseif(e.message:findi("perform.* small service")) then --Gives the empty curscale pack. + e.self:Say("Good. You take thisss pack and fill it all with scaled curskins. Only the pupsss and cubs of the scaled wolves shall do. They are not much for one sssuch as you. Combine all those ssskins and return the full curskin pack and I shall reward you with any available piece of curskin armor and a sssmall amount of coin. Mossst important is that you shall be proving your allegiance to all of Cabilisss."); + e.other:SummonCursorItem(17992); -- Item: Empty Curskin Bag + end +end + +function event_trade(e) + local item_lib = require("items"); + --Accepts combined curscale pack. + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12655})) then + e.self:Say("You are a good servant and a fine citizen. I have this piece of curscale armor available, but if it is not enough then perhaps I shall have another piece available if you were to [perform the small service] again."); + e.other:Faction(e.self,440,5); -- Faction: Cabilis Residents + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,math.random(0,9),math.random(0,5),math.random(0,3),0,eq.ChooseRandom(4270,4271,4272,4273,4274,4275,4276,4277,4279,4280,4281),10000); -- Item(s): Curscale Skullcap (4270), Curscale Snout Mount (4271), Curscale Choker (4272), Curscale Tunic (4273), Curscale Shawl (4274), Curscale Cape (4275), Curscale Belt (4276), Curscale Sleeves (4277), Curscale Gloves (4279), Curscale Leggings (4280), Curscale Boots (4281) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12685})) then --Full Pouch of Leech Husks + e.self:Say("I see you have done some hunting, young broodling. I shall prepare these husks later, as for now you can have this training bag husk I have already prepared. You will require a sewing kit, but I am sure you already have one. You will next have to seek out granite pebbles. Where you shall find them in Cabilis is unknown to me. When you obtain no less than three piles of granite pebbles then you can tailor a monk training bag for your caste. Good luck!"); + e.other:Faction(e.self,440,3); -- Faction: Cabilis Residents + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,12687,500); --Training Bag Husk + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabeast/Klok_Poklon.lua b/cabeast/Klok_Poklon.lua new file mode 100644 index 0000000..683a823 --- /dev/null +++ b/cabeast/Klok_Poklon.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, thirsty traveler. Pull up a stool and lay yer copper down. Its time to drink and be merry. Just don't get too merry or I will have to call the troopers."); + elseif(e.message:findi("talon southpaw")) then + e.self:Emote("feints with two quick left hooks!! 'Talon Southpaw. He had the fastest hands in the empire. I remember he once beat another lizard in an arm wrestling match. The amazing thing was, while he was gripping the croaks left hand, he left hooked him without losing his hold!! Thats quick!! I hear one of his treasured hands is in the possession of a monk called Master Rinmark.'"); + elseif(e.message:findi("Sisters of Scale") and e.other:GetFaction(e.self) < 6) then + e.self:Say("Hmm, yes, the Babble around here is that one of the Kloks in the Lake Garrison has one of the Sisters of Scale Skull up for Auction. The Temple will bury him when they hear of it!"); + elseif(e.message:findi("What memory of Sebilis?")) then + e.self:Emote("takes a sip of Legion Lager. 'Puhh...lease!! That's the little trophy the War Baron brought back from Sebilis. He got it stolen from him by some thieves!! I say it was the [Steelhead gang]. They were waltzing in and out of Cabilis like it was a blasted public vomitorium!!'"); + elseif(e.message:findi("What steelhead gang?")) then + e.self:Emote("picks some flesh from between his teeth. 'The Steelhead gang were a band of Forsaken thieves. No one knew this!! They used to walk around here like they were rebirthed!! They used to frequent my place and get involved in head butt contests. Whew!! I tell ya, the only way to crack their skulls is with a forging hammer!! Heheh!!'"); + end +end + +--Submitted by: Senzo aka Fatty Beerbelly +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Klok_Scaznar.lua b/cabeast/Klok_Scaznar.lua new file mode 100644 index 0000000..2f5fbc5 --- /dev/null +++ b/cabeast/Klok_Scaznar.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("It is best for you to buy some of my armor. It is far better than anything a lizard could create on his own. You do the adventuring and leave the stitching to good old Scaznar. Tailoring is my rebirth."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Klok_Tempar.lua b/cabeast/Klok_Tempar.lua new file mode 100644 index 0000000..87c7979 --- /dev/null +++ b/cabeast/Klok_Tempar.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("picks up cloth apparel and displays the items for you. 'Look at this. Chafe, it doesn't. Nothing is better on the scales than fine cloth. Lets a lizard's skin breathe so smell does not overtake the senses. Yes. Cloth is what you need."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Klok_Unlar.lua b/cabeast/Klok_Unlar.lua new file mode 100644 index 0000000..70ab480 --- /dev/null +++ b/cabeast/Klok_Unlar.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("wipes flour from his hands and turns to greet you. 'Welcome! Please look over my many treats. Do not think of the coin you shall spend. Heavy coin buys the finest and sweetest of treats. Feel free to ask me about any of the rare pies you see as I can tell you exactly how I make them."); + elseif(e.message:findi("bixie berry pie")) then + e.self:Say("Bixie berry pie?!! It is no treat and is poisonous to the Iksar. We use it to keep our froglok slaves nourished. My apprentice baker, Bugrin, bakes them and delivers them to the slaves. Only he has access to the bixie berry pie recipe. All the pies are eaten by the slaves. If you think you have one, you must be mistaken. Let me see it if you believe you have one."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12676})) then --Bixie Berry Pie + e.self:Emote("breaks open the crust of the pie. 'Wait! What is this? A device of some kind? It looks kind of like some sort of lockpick. BUGRIN!! Get in here and answer some questions at once!!"); + eq.unique_spawn(106302,0,0,120,563,4,0); -- NPC: Bugrin_the_Gatherer + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Klok_Vednir.lua b/cabeast/Klok_Vednir.lua new file mode 100644 index 0000000..208206b --- /dev/null +++ b/cabeast/Klok_Vednir.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Look at you. Encumbered you could be. Encumbered with great treasures. Treasures from all corners of Kunark. Go and find them. but first you will need to outfit yourself with packs of fine craftsmanship. Lucky for you. that is what I do best... craft packs."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Klok_Wyga.lua b/cabeast/Klok_Wyga.lua new file mode 100644 index 0000000..092fb00 --- /dev/null +++ b/cabeast/Klok_Wyga.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Do not complain to me of the prices. I charge what the Haggle Baron instructs me to charge."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Librarian_Zimor.lua b/cabeast/Librarian_Zimor.lua new file mode 100644 index 0000000..baeecc1 --- /dev/null +++ b/cabeast/Librarian_Zimor.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, citizen, I hope that you are here to assist. We are gathering Crusaders to make an assault on the Libraries of Chardok. The slave creations have thrived in their sanctuary for too long. The tomes and texts they have stolen to fill their library belong us. They are even rumored to have a text on the Sacred Khukri of Rile, the Greenmist. If you see such a tome, you must bring it to me immediately. May Cazic-Thule guide you!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 8) then -- dubious or better + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3887})) then + e.self:Emote("looks disturbed as he examines the book. His hands tremble as he mouths the words on the ancient parchment pages. 'This book may alter the reality you see before you, 'the scholar says as he continues to read the tome. 'The information that has been waiting in this book may have been brought to us by your hand, but your fate has obviously been chosen by our Lord. Our mystics have conveyed a new vision to us in this most recent season. Please take this note to Hierophant Oxyn, while I continue to translate this tome.' The Librarian hands you a note and turns his attention back to the book."); + e.other:Faction(e.self,442,20); -- Faction: Crusaders of Greenmist + e.other:Faction(e.self,441,10); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,3895,5000); -- Item: A note to Oxyn + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3893})) then + e.self:Say("I am very glad you have returned. Your discovery of the tynnonium is extraordinary! This Sarnak tome has been an incredible source of information. It appears that they have been studying the Greenmist for some time. I'm sure they sought it as nothing more than a trinket to be collected. Their shortsightedness will be their eventual undoing. I have compiled a book of notes that will aid you in your quest for the Greenmist. Please take care to keep this information out of the grasp of our enemies."); + e.other:Faction(e.self,442,20); -- Faction: Crusaders of Greenmist + e.other:Faction(e.self,441,10); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,18320,5000); -- Item: Notes from the Greenmist Tome + end + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabeast/Lord_Gikzic.lua b/cabeast/Lord_Gikzic.lua new file mode 100644 index 0000000..1c1e4ec --- /dev/null +++ b/cabeast/Lord_Gikzic.lua @@ -0,0 +1,60 @@ +--Lord Gikzic is for the Greenmist quest line and administers the first two quests in the line. + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You dare to intrude upon the presence of a Lord of Pain?! Such foolish acts can only be those of a knight in training. Are you a [knight in training]?"); + elseif(e.message:findi("knight in training")) then --Test of the Pawn (Greenmist Quest 1/8) + e.self:Say("If you are a pawn, then let us begin with a simple test. Complete the test and you shall be rewarded with a new khukri. Do you [wish to perform the test of a pawn]?"); + elseif(e.message:findi("test of a pawn")) then --Test of the Pawn (Greenmist Quest 1/8) + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("You shall carry this pack. Within it you shall combine 4 sarnak hatchling heads. When you have the full sarnak head pack then you shall return it to me along with your pawn's khukri and I shall reward you with the khukri of a knave. Beware, for the sarnak are our most hated foes and even their whelps are quite formidable fighters. Be sure to seek out Klok Mugruk. He may have some curscale armor available."); + e.other:SummonCursorItem(17017); --Sarnak Head Pack + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Crusaders of Greenmist demand further devotion to our ways before the knowledge you seek shall be revealed."); + else + e.self:Say("Ignorant lout! The Crusaders of Greenmist shall have nothing to do with you. Go while I ponder your suffering to come."); + end + elseif(e.message:findi("greater concern")) then --Test of Pain (Greenmist Quest 2/8) + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("A tome has been taken from us. An expeditionary unit was returning to Cabilis when they were overtaken by a band of froglok raiders. The odds were greatly in their favor, but our forces would soon cut them down. Then, as abruptly as the battle began, it came to an end. The frogs retreated. The only item they took was an ancient tome entitled 'The Origins of Pain'. What the frogs want with it is unknown to us. Will you [retrieve the tome]?"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Crusaders of Greenmist demand further devotion to our ways before the knowledge you seek shall be revealed."); + else + e.self:Say("Ignorant lout! The Crusaders of Greenmist shall have nothing to do with you. Go while I ponder your suffering to come."); + end + elseif(e.message:findi("retrieve the tome")) then --Test of Pain (Greenmist Quest 2/8) + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The tome ripped open in battle. There were but ten pages. This is one of those pages. You must find the remainder and the tome binder. Place the pages within the binder and once you combine them, the binder shall magically lock. Do not look upon the pages, for the words would bring a great madness upon you. Your task is simply to seek out the froglok raiders and return the magically locked tome to me. Return it with a knave's khukri and I shall give you a more powerful weapon."); + e.other:SummonCursorItem(18229); --Page 10 of Origins of Pain + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Crusaders of Greenmist demand further devotion to our ways before the knowledge you seek shall be revealed."); + else + e.self:Say("Ignorant lout! The Crusaders of Greenmist shall have nothing to do with you. Go while I ponder your suffering to come."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "I instructed you to return the full sarnak head pack and also your pawn's khukri."; + local text2 = "I shall keep this and you shall get no reward, unless you wield a knave's khukri. If so, then hand me that also and I shall give you a squire's khukri. A finer weapon to deal out pain."; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12381, item2 = 5120},1,text1)) then --Test of the Pawn (Greenmist Quest 1/8) + e.self:Say("You have learned to behead your opponents with great precision. Take the khukri of the knave. It shall prove most formidable in combat when wielded by a young crusader. You may now assist us with a [greater concern] than your training."); + e.other:Faction(e.self,442,10); -- Faction: Crusaders of Greenmist + e.other:Faction(e.self,441,2); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,1,0,5121,100); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12382, item2 = 5121},1,text2)) then --Test of Pain (Greenmist Quest 2/8) + e.self:Say("You have done as instructed. You are wise to hand this tome to me. It could bring you nothing more than insanity. As your reward, you shall have the squire's khukri. Soon you shall wield the knight's khukri, but that is for another Lord of Pain to decide."); + e.other:Faction(e.self,442,10); -- Faction: Crusaders of Greenmist + e.other:Faction(e.self,441,2); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,3,0,5122,300); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Lord_Korzin.lua b/cabeast/Lord_Korzin.lua new file mode 100644 index 0000000..bd763cf --- /dev/null +++ b/cabeast/Lord_Korzin.lua @@ -0,0 +1,38 @@ +--Lord Korzin is for the Greenmist quest and administers the third quest in the line. + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What is it you seek? [Eternal suffering]?"); + elseif(e.message:findi("eternal suffering")) then --Test of Suffering (Greenmist Quest 3/8) + e.self:Say("Then follow the words of Cazic-Thule and may his blessed curses rain upon your soul as they shall on all of his faithful servants. Were you [sent] to me by Gikzic?"); + elseif(e.message:findi("sent")) then --Test of Suffering (Greenmist Quest 3/8) + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Then you must be the squire who found the ancient tome, 'The Origins of Pain'. I can use a talented crusader such as yourself. In my dreams, Cazic-Thule has spoken to me. He instructed me to seek out the 'Skull of Torture' which was last reported to be within the torture tower of the ancient Lord of Pain, Kurn. Will you [accept the calling]?"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Crusaders of Greenmist demand further devotion to our ways before the knowledge you seek shall be revealed."); + else + e.self:Say("Ignorant lout! The Crusaders of Greenmist shall have nothing to do with you. Go while I ponder your suffering to come."); + end + elseif(e.message:findi("accept the calling")) then --Test of Suffering (Greenmist Quest 3/8) + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("As if you had a choice. Seek out the tower of Kurn and find the Skull of Torture. You should be able to easily recognize this skull as it glows with the power of Cazic Thule. Return it to me with your squire's khukri and I shall reward you with the knight's khukri. Go at once."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Crusaders of Greenmist demand further devotion to our ways before the knowledge you seek shall be revealed."); + else + e.self:Say("Ignorant lout! The Crusaders of Greenmist shall have nothing to do with you. Go while I ponder your suffering to come."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "You will be rewarded with the knight's khukri when I have possession of your squire's khukri and the Skull of Torture."; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12401, item2 = 5122},1,text1)) then --Test of Suffering (Greenmist Quest 3/8) + e.self:Say("Excellent work! You are no squire. You are now a knight of the crusaders. Your next step shall be zealot. And every zealot wields a magical khukri."); + e.other:Faction(e.self,442,10); -- Faction: Crusaders of Greenmist + e.other:Faction(e.self,441,2); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,math.random(0,15),0,5123,1500); -- Item: Knight's Khukri + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabeast/Lord_Qyzar.lua b/cabeast/Lord_Qyzar.lua new file mode 100644 index 0000000..fbb137e --- /dev/null +++ b/cabeast/Lord_Qyzar.lua @@ -0,0 +1,77 @@ +--Lord Qyzar is for the Greenmist quest and administers the fourth, fifth, and sixth quests in the line. + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks upon you with a sneer. 'What is the year of our birth and who was our Father?'"); + elseif(e.message:findi("371 AG.* Rile") or e.message:findi("Rile.* 371 AG")) then --Test of the Zealot (Greenmist Quest 4/8) + e.self:Say("You are a student of our ways? I would hope so. I seek a knight in search of a way to prove his allegiance and a way to earn his [zealot khukri]."); + elseif(e.message:findi("zealot khukri")) then --Test of the Zealot (Greenmist Quest 4/8) + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("In search of a zealot khukri? I have heard much of your deeds to aid us. I offer it to you in exchange for your service. I have dispatched a knight named Grizzle to seek out the Kromdul fortress called Chalp. He was to secretly map Chalp and return with a [Chalp diagram]. He has yet to return. Perhaps you can [rescue Grizzle]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Crusaders of Greenmist demand further devotion to our ways before the knowledge you seek shall be revealed."); + else + e.self:Say("Ignorant lout! The Crusaders of Greenmist shall have nothing to do with you. Go while I ponder your suffering to come."); + end + elseif(e.message:findi("chalp diagram")) then --Test of the Zealot (Greenmist Quest 4/8) + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Emote("grimaces in pure disgust. 'I have been awaiting the Chalp diagram from a knight named Grizzle, but alas, he has proven himself weak. He has been taken prisoner by one of the Kromdul of Chalp. If only there were another knight I could send to [rescue Grizzle] and return the Chalp diagram...'"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Crusaders of Greenmist demand further devotion to our ways before the knowledge you seek shall be revealed."); + else + e.self:Say("Ignorant lout! The Crusaders of Greenmist shall have nothing to do with you. Go while I ponder your suffering to come."); + end + elseif(e.message:findi("rescue grizzle")) then --Test of the Zealot (Greenmist Quest 4/8) + e.self:Say("If you can find the knight in Chalp and have him hand you the Chalp diagram, you shall become a zealot and wield a zealot khukri. All I need are the Chalp diagram and your knight khukri."); + elseif(e.message:findi("matter of betrayal")) then --Test of the Betrayal (Greenmist Quest 5/8) + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("One of our agents, a hero by the name of Goxnok, has found evidence that the book entitled 'Charasis' has been taken from this temple and is to be delivered to an unknown foe in the Outlands. Go at once to the lower levels of the temple and greet Goxnok. Hurry, before he departs!"); + eq.unique_spawn(106301,0,0,-113,1000,-23.9,30); -- + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Crusaders of Greenmist demand further devotion to our ways before the knowledge you seek shall be revealed."); + else + e.self:Say("Ignorant lout! The Crusaders of Greenmist shall have nothing to do with you. Go while I ponder your suffering to come."); + end + elseif(e.message:findi("visceral dagger")) then --Test of the Hero (Greenmist Quest 6/8) + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The visceral dagger was an ancient torturing weapon. I do not know much of it other than that it was forged by a member of the Brood of Kotiz, but that was ages ago. He is surely dust by now."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Crusaders of Greenmist demand further devotion to our ways before the knowledge you seek shall be revealed."); + else + e.self:Say("Ignorant lout! The Crusaders of Greenmist shall have nothing to do with you. Go while I ponder your suffering to come."); + end + elseif(e.message:findi("greenmist")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Emote("shudders at the mention of Greenmist. 'What?! Have you stumbled upon the ancient weapon of the Father? Do not fill my ears with such knowledge. It can only be delivered to the ears of the Arch Duke. Go at once and speak with him!"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Crusaders of Greenmist demand further devotion to our ways before the knowledge you seek shall be revealed."); + else + e.self:Say("Ignorant lout! The Crusaders of Greenmist shall have nothing to do with you. Go while I ponder your suffering to come."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "There shall be no zealot khukri until I have the Chalp diagram and your knight khukri."; + local text2 = "You disappoint me. I must have the Charasis Tome and its copy along with your zealot khukri."; + local text3 = "I am saddened by your failure to procure the visceral dagger and your crusader khukri. You are no hero!!"; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12496, item2 = 5123},1,text1)) then --Test of the Zealot (Greenmist Quest 4/8) + e.self:Say("At last!! The Chalp diagram. I shall see that the emperor gets this at once. You have proven yourself more than just a mere knight, you are a zealot. Being new to the temple we have need of you in a [matter of betrayal]."); + e.other:Faction(e.self,442,10); -- Faction: Crusaders of Greenmist + e.other:Faction(e.self,441,2); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,math.random(0,10),math.random(0,2),5124,1600); -- Item: Zealot's Khukri + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1730, item2 = 5124, item3 = 1729},1,text2)) then --Test of Betrayal (Greenmist Quest 5/8) + e.self:Say("Congratulations! You are now a true crusader, but there is no time for celebration. We have lost two of our operatives. Crusaders Golin and Fodcod were dispatched to seek out an ancient artifact, the [visceral dagger]. Where they have gone, I do not know. They have been gone far too long. Find them and return the dagger to me with your crusader khukri and you shall be a hero."); + e.other:Faction(e.self,442,20); -- Faction: Crusaders of Greenmist + e.other:Faction(e.self,441,5); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,math.random(0,10),math.random(0,2),5125,2000); -- Item: Crusader's Khukri + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 7324, item2 = 5125},1,text3)) then --Test of the Hero (Greenmist Quest 6/8) + e.self:Emote("gazes in astonishment at the dagger. 'Ahhh!! You have brought the sacred visceral dagger back to the Temple of Terror. Let all be aware that the great " .. e.other:GetCleanName() .. " has returned to Cabilis a hero!! You now wield the weapon of a hero. Hail, " .. e.other:GetCleanName() .. ", hero of the Crusaders of Greenmist."); + e.other:Faction(e.self,442,20); -- Faction: Crusaders of Greenmist + e.other:Faction(e.self,441,5); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,math.random(0,10),math.random(0,3),5126,3000); -- Item: Hero's Khukri + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabeast/Master_Bain.lua b/cabeast/Master_Bain.lua new file mode 100644 index 0000000..1a4b174 --- /dev/null +++ b/cabeast/Master_Bain.lua @@ -0,0 +1,67 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome. Who has [sent] you to me?"); + elseif(e.message:findi("Grand Master Glox")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("So Grand Master Glox has sent you? You must be new to the court. We are of the Swifttail caste as are you. Under the guidance of masters such as I. You will forge your body into a weapon of pure destruction. Do not bother the Grand Master. He is in constant meditation and is bothered with only the most paramount of concerns. Are you [ready to train]?"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Swifttail Caste desires further service before I can share this with you."); + else + e.self:Say("Leave at once! I will warn you no longer. You are no friend to the Swifttail Caste."); + end + elseif(e.message:findi("ready to train")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Then I can offer training in the martial arts as well as other skills. Please remember to obtain knowledge from our court chronicler. You shall also begin to aid your brothers and sisters with [menial tasks]. All begin upon the rung of dust and all have done these tasks in order to climb to the next rung."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Swifttail Caste desires further service before I can share this with you."); + else + e.self:Say("Leave at once! I will warn you no longer. You are no friend to the Swifttail Caste."); + end + elseif(e.message:findi("menial tasks")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("We have a few menial tasks we require our young members to perform. Young members must [tailor training bags] for our court."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Swifttail Caste desires further service before I can share this with you."); + else + e.self:Say("Leave at once! I will warn you no longer. You are no friend to the Swifttail Caste."); + end + elseif(e.message:findi("tailor training bags")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Then take this leech husk pouch and fill it with the obvious. Once done, combine the skins and take the full leech husk pouch to a local tailor by the name of Klok Mugruk. He is the one who cleans and toughens the husks for us. He shall hand you a ready-made training bag husk. He will instruct you further."); + e.other:SummonCursorItem(17998); -- Item: Leech Husk Pouch + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Swifttail Caste desires further service before I can share this with you."); + else + e.self:Say("Leave at once! I will warn you no longer. You are no friend to the Swifttail Caste."); + end + elseif(e.message:findi("master rinmark")) then + e.self:Say("Seeking Master Rinmark? He has left the Court of Pain. Gone to focus his thoughts on the elements of wind and thunder. I believe he was headed toward the Overthere. That was the last I heard of his trek."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18468, item2 = 22923})) then + e.self:Emote("smiles at your dedication to Cazic Thule and hands you a small gem."); + e.other:Faction(e.self,444,5); -- Faction: Swift Tails + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,7881,20000); -- Item: Mark of Clarity + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18467, item2 = 22922})) then + e.self:Emote("smiles at your dedication to Cazic Thule and hands you a small gem."); + e.other:Faction(e.self,444,5); -- Faction: Swift Tails + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,7881,20000); -- Item: Mark of Clarity + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12688})) then --Monk Training Bag + e.self:Say("We thank you, young " .. e.other:Class() .. ". In exchange for your prompt service, please accept this piece of training armor. Please continue with your training."); + -- confirmed faction hits + e.other:Faction(e.self,444,5); -- Faction: Swift Tails + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,math.random(5),0,eq.ChooseRandom(4350,4351,4352,4353,4354,4355,4356,4357,4358,4359),500); --Random Sparring Armor Piece + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Master_Glox.lua b/cabeast/Master_Glox.lua new file mode 100644 index 0000000..d00950f --- /dev/null +++ b/cabeast/Master_Glox.lua @@ -0,0 +1,17 @@ +--This killable version of Grand Master Glox is part of the Test of Agility, for the Whistling Fists quest line. Please see Grand Master Glox's file in this zone for more details. + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("That took you long enough. Well then, are you ready to prove your agility to me?"); + end +end + +function event_death_complete(e) + e.self:Say("You have come into your own. Spread the pain you have shown me to all of your foes."); +end + +--Submitted by Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Master_Niska.lua b/cabeast/Master_Niska.lua new file mode 100644 index 0000000..a5fa775 --- /dev/null +++ b/cabeast/Master_Niska.lua @@ -0,0 +1,81 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("bows with elegance and grace. You can see her arms rippling with muscles. 'Greetings. We are the Swifttails. We are the harnessers of the elements. We are the tails of discipline. To achieve rebirth into our caste is a great honor indeed. We can be identified by our adornments. You should display that which we have given you to adorn your arms with pride. You do have your Shackle of Dust, correct?'"); + elseif(e.message:findi("no")) then + e.self:Say("You dare disgrace us?' She hisses at you. 'If you have truely lost the marking of our caste, you will need to take this note and speak to the Toilmaster immediately. Read it on the way and praise the will of Cazic Thule."); + e.other:SummonCursorItem(18271); --A Ragged Book + elseif(e.message:findi("yes")) then + e.self:Say("Very good Broodling. Display your adornment with pride so that the enemies of the Brood may see our might as you rip through the weak will of their ranks. Now be gone from my sight."); + elseif(e.message:findi("shackle of rock")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Emote("strikes within inches of your snout with amazing speed. 'The Shackle of Rock is your interest? Then learn well our ways and prepare yourself. If the stone embraces your wrist, you are ready indeed. To complete the second rung you must find for me the [Fists of Talon].'"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Swifttail Caste desires further service before I can share this with you."); + else + e.self:Say("Leave at once! I will warn you no longer. You are no friend to the Swifttail Caste."); + end + elseif(e.message:findi("fists of talon")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Emote("points to the Court Chronicler. 'All that is known of Talon has been chronicled. Should you obtain the fists then you shall hand them to me. This shall earn you the Shackle of Rock.'"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Swifttail Caste desires further service before I can share this with you."); + else + e.self:Say("Leave at once! I will warn you no longer. You are no friend to the Swifttail Caste."); + end + elseif(e.message:findi("troubles with.* outlander")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("It seems Klok Ephmir has encountered an outlander who was hunting the food we lizards enjoy. The legion will not act without proof of this outlanders existence. We were asked by the Baron to find this proof. We shall do this. You shall provide me with the outlanders head and the Shackles of Rock and Stone!!"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Swifttail Caste desires further service before I can share this with you."); + else + e.self:Say("Leave at once! I will warn you no longer. You are no friend to the Swifttail Caste."); + end + elseif(e.message:findi("will be your personal courier")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Emote("grabs a tin box resting by her feet. 'Take this to Master Rinmark and be quick about it!!'"); + e.other:SummonCursorItem(12829); --A Tin Box + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Swifttail Caste desires further service before I can share this with you."); + else + e.self:Say("Leave at once! I will warn you no longer. You are no friend to the Swifttail Caste."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "Tsk, tsk, tsk. There were more of Talon's Fists than this. Only by gathering all of his fists shall you earn the shackle of rock and bring you closer to the third rung."; + local text2 = "This is not all. Bring me the item this caste seeks and the shackles of stone and rock."; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12797, item2 = 12798, item3 = 12799},1,text1)) then + e.self:Emote("removes a crudley hewn shackle. 'This is yours. It is one of the keys to the third rung. I see that you are truely a great monk and have studied your disciplines well. I have need of one as you. I have heard of [troubles with an outlander].'"); + e.other:Faction(e.self,444,10); -- Faction: Swift Tails + e.other:Faction(e.self,441,2); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,math.random(0,10),0,4193,20000); --Shackle of Rock + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12821, item2 = 4192, item3 = 4193},1,text2)) then + e.self:Say("Very good!! Here is your Shackle of Copper. The Emperor shall be pleased that I, Mistress Niska, have slain the outlander. Do you have some time? I need someone to be my [personal courier]. Will you?"); + e.other:Faction(e.self,444,10); -- Faction: Swift Tails + e.other:Faction(e.self,441,2); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,math.random(0,10),0,4194,40000); --Shackle of Copper + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18466, item2 = 22921})) then + e.self:Emote("smiles at your dedication to Cazic Thule and hands you a small gem."); + e.other:Faction(e.self,444,5); -- Faction: Swift Tails + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,7881,20000); --Mark of Clarity + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18465, item2 = 22920})) then + e.self:Emote("smiles at your dedication to Cazic Thule and hands you a small gem."); + e.other:Faction(e.self,444,5); -- Faction: Swift Tails + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,7881,20000); --Mark of Clarity + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18272, item2 = 24770})) then + e.self:Say("You dare disgrace us?' She hisses at you. 'If you have truly lost the marking of our caste, you will need to take this note and speak to the Toilmaster immediately. Read it on the way and praise the will of Cazic-Thule."); + e.other:Faction(e.self,444,100); -- Faction: Swift Tails + e.other:Faction(e.self,441,25); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,4190,500); --Shackle of Dust + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + e.self:Say("You dare disgrace us?' She hisses at you. 'If you have truly lost the marking of our castle, you will need to take this note and speak to the Toilmaster immediatley. Read it on the way and praise the will of Cazic-Thule.'"); +end diff --git a/cabeast/Master_Raska.lua b/cabeast/Master_Raska.lua new file mode 100644 index 0000000..8534bf5 --- /dev/null +++ b/cabeast/Master_Raska.lua @@ -0,0 +1,79 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hmmph!! Expect to be a great master such as I? Maybe. You still appear to be a [whiff]."); + elseif(e.message:findi("whiff")) then + e.self:Say("A whiff is the sound of a tail striking air. A whiff is you. Inexperienced. I can help you, if you want to earn the [second shackle]."); + elseif(e.message:findi("second shackle")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Then you shall perform the first rite. Take this pack. To the Outlands you will go. You will fill and combine the pack with one of each of the following: goblin scout beads, a large scorpion pincer, a froglok skipper skipping stone, and a sabertooth cub canine. Bring these to me and you shall prove yourself a monk."); + e.other:SummonCursorItem(17026); -- Item: First Rite Pack + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Swifttail Caste desires further service before I can share this with you."); + else + e.self:Say("Leave at once! I will warn you no longer. You are no friend to the Swifttail Caste."); + end + elseif(e.message:findi("shackle of stone")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Interested in the shackle of stone are we? They are made for monks who have earned their first two shackles and are ready to climb up to the next rung. A monk who feels he is ready to wear the shackle of stone must first perform the [task of cleansing]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Swifttail Caste desires further service before I can share this with you."); + else + e.self:Say("Leave at once! I will warn you no longer. You are no friend to the Swifttail Caste."); + end + elseif(e.message:findi("task of cleansing")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Go forth to the outer gates and seek out the Iksar bandits. They have refused to bow to the will of the empire and shall pay dearly for their traitorous ways. They often wear bandit masks. If you return with two bandit masks and the shackles of dust and clay then I shall reward you with the shackle of stone."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Swifttail Caste desires further service before I can share this with you."); + else + e.self:Say("Leave at once! I will warn you no longer. You are no friend to the Swifttail Caste."); + end + elseif(e.message:findi("gandan tailfist")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Gandan Tailfist was a powerful commander of the Court of Pain. He went in search of the Whistling Fists, but all that was ever found of him was a worthless flute."); --Allah's comments hints at text, but gives nothing exact. Made this up in place of accurate text. + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Swifttail Caste desires further service before I can share this with you."); + else + e.self:Say("Leave at once! I will warn you no longer. You are no friend to the Swifttail Caste."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "You will get nothing until I hold two bandit masks and the shackles of dust and clay."; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12427})) then + e.self:Say("You have succeeded, young " .. e.other:GetCleanName() .. "! You have proven yourself a skilled monk. You will now wear the shackle of clay. You will now be required to increase your intensity of training in hopes that you may soon be able to earn your [shackle of stone]."); + e.other:Faction(e.self,444,10); -- Faction: Swift Tails + e.other:Faction(e.self,441,2); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,math.random(0,10),0,4191,5000); -- Item: Shackle of Clay + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 4190, item2 = 4191, item3 = 12428, item4 = 12428},1,text1)) then + e.self:Say("You have done supremely, " .. e.other:GetCleanName() .. ". You have earned your shackle of stone. Mistress Niska will now help you on your way to earning the shackle of rock. May the elements guide you to the next rung."); + e.other:Faction(e.self,444,10); -- Faction: Swift Tails + e.other:Faction(e.self,441,2); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,math.random(0,10),0,4192,10000); -- Item: Shackle of Stone + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18469, item2 = 12822})) then + e.self:Emote("smiles at your dedication to Cazic Thule and hands you a small gem."); + e.other:Faction(e.self,444,5); -- Faction: Swift Tails + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,7881,20000); -- Item: Mark of Clarity + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18470, item2 = 22924})) then + e.self:Emote("smiles at your dedication to Cazic Thule and hands you a small gem."); + e.other:Faction(e.self,444,5); -- Faction: Swift Tails + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,7881,20000); -- Item: Mark of Clarity + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18232, item2 = 18233})) then + e.self:Say("This is all that was ever found of Gandan Tailfist. I wish you luck in your quest. May you fare better than he did."); --Unable to find the true text; made this up + e.other:Faction(e.self,444,5); -- Faction: Swift Tails + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,12429,5000); -- Item: Ancient Thin Flute + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by: Senzo aka Fatty Beerbelly +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Prime_Hierophant_Vek.lua b/cabeast/Prime_Hierophant_Vek.lua new file mode 100644 index 0000000..94c0b07 --- /dev/null +++ b/cabeast/Prime_Hierophant_Vek.lua @@ -0,0 +1,55 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Praise to the ancients, my friend! There is much suffering to be given unto the world. I am the Prime Hierophant of the Temple of Terror. Through me and my fellow priests flows the wisdom of our ancestors."); + end + if(e.message:findi("unique weapon")) then + e.self:Say("This goblin is known as a pit fighter. Though they are small, weak, and unintelligent, they still maintain a level of ferocity that surpasses that of most wild animals. This, along with a disgusting and perverse imagination, has allowed these pit fighters to reach heights of physical power most Iksar never see. This paticular fighter uses his tongue liberally while fighting. He has ingested many deadly contagions and licked things from the slimy surfaces of the darkest and dankest crevasses imaginable. His tongue will do well to further our cause in pain and suffering."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Aren't you forgetting something, dear " .. e.other:GetCleanName() .. "?' He stands still for a moment, sneering, then suddenly screeches at the top of his lungs, 'DO NOT RETURN UNLESS YOU HAVE ALL THAT I ASKED FOR!"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18206})) then --guild summon + e.self:Say("Welcome, young petitioner. You have been summoned to this temple to join with the Scaled Mystics. Ours is the way of pain and suffering. Here is the weapon of a petitioner. Through you the power of our ancestors shall flow. As your wisdom grows, so shall your power. Someday you may be a vessel for the supreme might of the ancients. Seek knowldege within this temple. The hierophants are here to guide you."); + e.other:Faction(e.self,445,100); --Scaled Mystics + e.other:Faction(e.self,441,25); --Legion of Cabilis + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,5140,500); --Iron Cudgel of the Petitioner + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18462, item2 = 22917})) then + e.self:Emote("smiles at your dedication to Cazic Thule and hands you a small gem."); + e.other:Faction(e.self,444,1); -- Faction: Swift Tails + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,7881,20000); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18359, item2 = 22916})) then + e.self:Emote("smiles at your dedication to Cazic Thule and hands you a small gem."); + e.other:Faction(e.self,444,1); -- Faction: Swift Tails + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,7881,20000); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14795})) then + e.self:Emote("takes the note without even a glance in your direction and begins reading. After a long silence, he lets his arms drop to his sides and says quietly, 'We kill, " .. e.other:GetCleanName() .. ". That is our job, our duty in life. Our targets are chosen for us. We merely listen. Right now I am being told there is a traitor right here in our city. You must make this potion made of Spine Poison Extract and Willow Moss. You must give this to one of our slave and bring me the goo from it along with two Fire Emeralds. As you do this, try hard to listen to our Lord's instruction. If you hear even a whisper, you will know more righteousness than most of this city.'"); -- text made up + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14790})) then + e.self:Emote("stares down at the note, confused, until he recognizes the writing and gasps in shock! 'You spoke to the Brothers? You, a simple Legionnaire? Well, no matter, you are here to test your virtue of sacrifice and we will take pleasure in it as we have for generations even before the Fallen Brothers. One of our greatest allies in pain is disease. In the woods outside our fair city is a small tribe of goblins. There is a certain goblin famed for his [unique weapon]. Take this knife and use it to cut this from the goblin. Then return his weapon, the knife, a sapphire, and an opal to me.'"); + e.other:QuestReward(e.self,0,0,0,0,14784); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14784, item2 = 14785, item3 = 10034, item4 = 10030},1,text)) then + e.self:Say("Well done"); + e.other:QuestReward(e.self,0,0,0,0,14786,10000); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10033, item2 = 10033, item3 = 14805},1,text)) then + e.self:Say("Well done"); + e.other:QuestReward(e.self,0,0,0,0,14787,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by Jim Mills, with thanks to BWStripes +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Sarth_Scarscale.lua b/cabeast/Sarth_Scarscale.lua new file mode 100644 index 0000000..3759bf8 --- /dev/null +++ b/cabeast/Sarth_Scarscale.lua @@ -0,0 +1,44 @@ +--Iksar low- to mid-level armor quests. This is for the Shadowknight. + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("hisses at you loudly. 'So, you bear the [mantle of a crusader], yes? I am known as Sarth and shall reward you, provided you prove your worthiness to our cause, child of Rile.'"); + elseif(e.message:findi("mantle of a crusader")) then + e.self:Say("We shall see if you are worthy of that. I shall make [armor] for you, to aid you in your service to our Father. I specialize in the forging of [bracers], [greaves], [masks], and [breastplates]. Sirtha makes the other items of armor. Take care when you address her, hatchling. It would not be the first time a hatchling has left here with scars."); + elseif(e.message:findi("armor")) then + e.self:Say("Yes, I shall make [armor] for you, to aid you in your service to our Father. I specialize in the forging of [bracers], [greaves], [masks], and [breastplates]. Sirtha makes the other items of armor. Take care when you address her, hatchling. It would not be the first time a hatchling has left here with scars."); + elseif(e.message:findi("bracers")) then + e.self:Say("Have you ever seen Bloodgills? I hear they will devour a broodling in seconds and that their scales are tough as iron. Bring me some of these scales, a banded bracer, and a sapphire as blue as the sky. Only then will I give the bracer to you, broodling."); + elseif(e.message:findi("greaves")) then + e.self:Say("Do you know the beasts that call themselves sarnaks? One such beast who calls itself Zorash attacked an envoy of merchants who were to deliver a pair of special boots to me. It taunts us by wearing them as a trophy. Bring them back and the skull of Grachnist, his goblin ally. Return them to me along with a star ruby and your banded greaves, and I shall craft you an excellent pair of greaves."); + elseif(e.message:findi("mask")) then + e.self:Say("Have you ever encountered a drixie before? I crush every one I see. They are an annoyance beyond mere words! Kill the Queen and bring me her wings as a trophy along with an emerald of fire and a banded mask."); + elseif(e.message:findi("breastplate")) then + e.self:Say("Ahhhh....a breastplate you want, is it? Well, they are not easy to come by. Fetch me a scorpion chitin. Intact, mind you! They are extremely fragile and must be treated before they can protect your carcass. Also, fetch me a war braid from a sarnak to connect the pieces. I also require a ruby and your banded tunic. Do this and I shall make it for you, hatchling. Now, go!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + --Dreadscale Bracer for: Scale=14824 Bracer=3061 Sapphire=10034 + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14824, item2 = 3061, item3 = 10034})) then + e.self:Say("Well done! Here is the item we agreed upon. May Cazic's glorious curses flow through you!"); + e.other:QuestReward(e.self,0,0,0,0,4971,10000); -- Item: Dreadscale Bracer + end + --Dreadscale Greaves for: Boots=14829 Head=14820 Greaves=3063 StarRuby=10032 + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14829, item2 = 14820, item3 = 3063, item4 = 10032})) then + e.self:Say("Well done! Here is the item we agreed upon. May Cazic's glorious curses flow through you!"); + e.other:QuestReward(e.self,0,0,0,0,4973,10000); -- Item: Dreadscale Greaves + end + --Dreadscale Mask for: Wings=14827 Mask=3054 FireEmerald=10033 + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14827, item2 = 3054, item3 = 10033})) then + e.self:Say("Well done! Here is the item we agreed upon. May Cazic's glorious curses flow through you!"); + e.other:QuestReward(e.self,0,0,0,0,4975,10000); -- Item: Dreadscale Mask + end + --Dreadscale Breastplate for: Braid=12982 Chitin=14821 Breastplate=3056 Ruby=10035 + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12982, item2 = 14821, item3 = 3056, item4 = 10035})) then + e.self:Say("Well done! Here is the item we agreed upon. May Cazic's glorious curses flow through you!"); + e.other:QuestReward(e.self,0,0,0,0,4969,10000); -- Item: Dreadscale Breastplate + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabeast/Shezlie_Furscale.lua b/cabeast/Shezlie_Furscale.lua new file mode 100644 index 0000000..980cd72 --- /dev/null +++ b/cabeast/Shezlie_Furscale.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Be careful around here. " .. e.other:GetCleanName() .. ". Injured broodlings are no use to anyone. Many of these structures are yet unstable and could fall at any time. If you're a mystic, I can teach you how to [protect] yourself."); + elseif(e.message:findi("oxyn sent me")) then + e.self:Say("It is good to see that more able bodies are passing through the doors of the Temple of Terror. We should be able to rebuild much faster now, once we are able to [collect some more bundles]. For those that are interested in helping, there is [payment] to be had."); + elseif(e.message:findi("collect some more bundle")) then + e.self:Say("There are many bundles to be collected. There are only four that I require at this very instant. I need a bundle that contains Bargynn's Digger, Sythrax's building plans, a sapphire, and your banded helm. Another must contain some venomous parchment, warlord drawing pen, a ruby, and your banded guantlets. There is one that must have a recruitment letter, an exiled iksar head, a fire emerald, and your banded leggings. And the final bundle I require must contain some watchman's spectacles, nectar of isolation, a star ruby, and your banded tunic. Now, hurry and return these, or I'll be asking for someone to bring me your head."); + elseif(e.message:findi("payment")) then + e.self:Say("Payment will be in the form of equipment. All funds are currently being spent on the rebuilding."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3056, item2 = 10032, item3 = 14777, item4 = 14778})) then + e.self:Say("You have succeeded! Take this as payment and begin getting the next bundle. The more supplies we have the faster we can rebuild"); + e.other:QuestReward(e.self,0,0,0,0,4989,2000); --scaled mystic breastplate + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3062, item2 = 10035, item3 = 14773, item4 = 14774})) then + e.self:Say("You have succeeded! Take this as payment and begin getting the next bundle. The more supplies we have the faster we can rebuild"); + e.other:QuestReward(e.self,0,0,0,0,4985,1000); --scaled mystic gauntlets + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3063, item2 = 10033, item3 = 14775, item4 = 14776})) then + e.self:Say("You have succeeded! Take this as payment and begin getting the next bundle. The more supplies we have the faster we can rebuild"); + e.other:QuestReward(e.self,0,0,0,0,4987,1000); --scaled mystic greaves + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3053, item2 = 10034, item3 = 14771, item4 = 14772})) then + e.self:Say("You have succeeded! Take this as payment and begin getting the next bundle. The more supplies we have the faster we can rebuild"); + e.other:QuestReward(e.self,0,0,0,0,4990,1000); --scaled mystic helm + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabeast/Sirtha_Scarscale.lua b/cabeast/Sirtha_Scarscale.lua new file mode 100644 index 0000000..1e9f473 --- /dev/null +++ b/cabeast/Sirtha_Scarscale.lua @@ -0,0 +1,44 @@ +--The other NPC for the Iksar Shadowknight low- to mid-level armors. + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("eyes you intently. 'So, yet another hatchling approaches us. I am known as Sirtha and that is Sarth. We are of [Rile's] children. Who do you call your father, broodling?'"); + elseif(e.message:findi("Rile")) then + e.self:Say("Very good. We are smiths for the Crusaders of the Greenmist and I shall make [armor] for you, provided you prove your worth. Fail these simple tasks, and you shall not be worthy to bear the title of crusader!"); + elseif(e.message:findi("armor")) then + e.self:Say("I will make [helms], [gauntlets], [boots], and [vambraces]. My broodmate shall make the bracers, greaves, masks, and breastplate."); + elseif(e.message:findi("helm")) then + e.self:Say("The sarnak are a mockery of the Iksar. They are nothing more than beasts fit only to do our bidding! I require you to bring me the sword of one of their Order of Knights and the head of a sarnak berserker. These beasts have been attacking our patrols of late. I also require a stone called a ruby and a banded helm. Do this and I shall make a helm for you."); + elseif(e.message:findi("boots")) then + e.self:Say("Cactus quills can be very lethal. I seek to work them into my new boots. Find me these quills, a pair of skeletal feet, an emerald of fire, and some banded boots so that I may start working on them. Why are you still here?! Begone!"); + elseif(e.message:findi("gauntlets")) then + e.self:Say("I currently have need of a complete skeletal hand for the research I am conducting. I wish to study its properties and form so that I can make gauntlets befitting our station. I also require two rubies that holds stars within and some banded gauntlets to complete my ritual. Do that and the gauntlets are yours to keep."); + elseif(e.message:findi("vambraces")) then + e.self:Say("The hideous Golra are hardy creatures. The tales indicate their ferocity almost matches our own. I wish to gain a trophy of one of these beasts. Bring me the skin of one, two blue sapphires, and banded sleeves. Then I shall give you these fine vambraces."); + end +end + +function event_trade(e) + local item_lib = require("items"); + --Dreadscale Helm for: Head=14822 Sword=14826 Helm=3053 Ruby=10035 + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14822, item2 = 14826, item3 = 3053, item4 = 10035})) then + e.self:Say("Well done! Here is the item we agreed upon. May Cazic's glorious curses flow through you!"); + e.other:QuestReward(e.self,0,0,0,0,4968,10000); -- Item: Dreadscale Helm + end + --Dreadscale Boots for: Quills=14828 Boots=3064 Feet=14823 FireEmerald=10033 + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14828, item2 = 14823, item3 = 3064, item4 = 10033})) then + e.self:Say("Well done! Here is the item we agreed upon. May Cazic's glorious curses flow through you!"); + e.other:QuestReward(e.self,0,0,0,0,4974,10000); -- Item: Dreadscale Boots + end + --Dreadscale Gauntlets for: Hand=14825 Gauntlets=3062 StarRuby=10032 + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14825, item2 = 3062, item3 = 10032, item4 = 10032})) then + e.self:Say("Well done! Here is the item we agreed upon. May Cazic's glorious curses flow through you!"); + e.other:QuestReward(e.self,0,0,0,0,4972,10000); -- Item: Dreadscale Gauntlets + end + --Dreadscale Vambraces for: Hide=14830 Vambraces=3060 Sapphire=10034 + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14830, item2 = 3060, item3 = 10034, item4 = 10034})) then + e.self:Say("Well done! Here is the item we agreed upon. May Cazic's glorious curses flow through you!"); + e.other:QuestReward(e.self,0,0,0,0,4970,10000); -- Item: Dreadscale Vambraces + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabeast/Smithy_Bashdyn.lua b/cabeast/Smithy_Bashdyn.lua new file mode 100644 index 0000000..fad82f4 --- /dev/null +++ b/cabeast/Smithy_Bashdyn.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Shields up. my friend!! My talents of rebirth are here to aid thee. Only the finest shields shall you find among my works of art."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Smithy_Krikt.lua b/cabeast/Smithy_Krikt.lua new file mode 100644 index 0000000..e550943 --- /dev/null +++ b/cabeast/Smithy_Krikt.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("I have much work to do for the Legion of Cabilis! Have you come to view my wares, or to learn the art of weapon smithing so that you may assist me in crafting weapons for our warriors?"); + elseif(e.message:findi("wares")) then + e.self:Say("The various molds that I have for sale are used in the smithing of weapons. Simply use the necessary molds with a sheet of metal, a forge, and a water flask. Weapons with hilts and pommels will also need molds for those pieces and weapons such as pole-arms and axes require an oak shaft."); + elseif(e.message:findi("assist")) then + e.self:Emote("eyes you doubtfully and says 'Any help is better than no help. Basic Shan'Toks, Fer'Esh, and Sheer Blades can be crafted with an appropriate Blade Mold, a Hilt and Pommel Mold, a Folded Sheet of Metal, and a Flask of Blood Water. Once you have mastered basic weapon craft perhaps you can attempt [skyiron weapons] and [imbued weapons]."); + end +end + +-- Broken Dialogue for "skyiron weapons" and "imbued weapons", just gives the "weapons/wares" response on live. -- elroz + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Smithy_Qag.lua b/cabeast/Smithy_Qag.lua new file mode 100644 index 0000000..f691d42 --- /dev/null +++ b/cabeast/Smithy_Qag.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". We are exceptionally busy today - I trust that your business is of suitable import.' Smithy Qag flicks his tail, covered with the scars of the forge. 'Or have you come to assist in our [new project]?"); + elseif(e.message:findi("new project")) then + e.self:Say("It is quite remarkable. We have come across a new material that allows us to forge Skyiron to a new level of strength and flexibility. Are you [interested] in such things? I am known as a teacher among my peers."); + elseif(e.message:findi("interested")) then + e.self:Say("Excellent.' Smithy Qag chuckles. 'With forging hammer, a little blessed amber, scale temper, an appropriate sectional mold, and several [infused scales] and [infused sheets] of Skyiron, we are working to outfit our troops."); + elseif(e.message:findi("infused scale")) then + e.self:Say("A small brick of skyiron, a small block of clay and celestial essence can be worked on the potter's wheel to produce the scales used to cover our armor. They are lightweight, and incredibly strong."); + elseif(e.message:findi("infused sheet")) then + e.self:Say("Like the armor itself, these are a product of the Cabilis Forge. Take a folded sheet of velium, and work in a large brick of skyiron using your smithy hammer. You'll also need some mysterious [temper]."); + elseif(e.message:findi("temper")) then + e.self:Say("Quite.' Smithy Qag laughs to himself, and looks at you with interest, as if evaluating you. 'A traveler to the city presented a small quantity to me and suggested using it as I have told you. Our elders have tried to identify the contents of the temper, with [limited success]."); + elseif(e.message:findi("limited success")) then + e.self:Say("The base used is purified water, created by mixing two quantities of water to one quantity of celestial essence. With the purified water is a [second ingredient], but we cannot ascertain what it is, precisely."); + elseif(e.message:findi("second ingredient")) then + e.self:Say("It appears to be a blue powder of some kind, and glimmers as if it were a melted gemstone. Guesses are all we have. When the supply we have runs out, we shall have to find the dark stranger again, I imagine, or attempt to make our own."); + end +end + diff --git a/cabeast/Smithy_Vyx.lua b/cabeast/Smithy_Vyx.lua new file mode 100644 index 0000000..01735fb --- /dev/null +++ b/cabeast/Smithy_Vyx.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("I have heard of a great piercing weapon created to pierce the skin of the wurms. Such a weapon would be quite devastating!"); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Smithy_Xzatik.lua b/cabeast/Smithy_Xzatik.lua new file mode 100644 index 0000000..8c7928d --- /dev/null +++ b/cabeast/Smithy_Xzatik.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "! I have the finest Skyiron Ores for sale! Feel free to examine the quality of my ores! I am also charged with teaching members of the Legion techniques to [work Skyiron], craft [Skyiron Targ Shields], and [Cabilis Scale Mail]."); + elseif(e.message:findi("cabilis scale mail")) then + e.self:Say("Cabilis Scale Mail is a customized armor worn by the Legion of Cabilis. The mail can only be forged in the unique Cabilis Forge here in East Cabilis. All pieces of the mail require the appropriate section Mold and a Flask of Blood Water, Coifs, Masks, Gorgets, Mantles, Belts, and Bracelets require one Skyiron Sheet, and one set of Skyiron Scales. Gloves and Boots require Two Skyiron Sheets and one set of Skyiron Scales. Sleeves require two Skyiron Sheets and two sets of Skyiron Scales. Coats, Cloaks, and Leggings require three Skyiron Sheets, and two sets of Skyiron Scales. Once you have mastered these techniques you may want to try [imbued mail]."); + elseif(e.message:findi("imbued mail")) then + e.self:Say("Imbued Cabilis Scale Mail is crafted in the same fashion as standard Cabilis Scale Mail with two exceptions. Scale Temper must be used instead of Blood Water, and a piece of amber imbued by a powerful shaman must be crafted into each piece. Speak with brewers about obtaining scale temper if you have none available."); + elseif(e.message:findi("skyiron targ shields")) then + e.self:Say("Skyiron Targ Shields are customized shields perfect for members of the Legion of Cabilis. Such shields can only be crafted in our unique Cabilis Forge. The supplies needed for a shield are a Targ Shield Mold, a Folded Skyiron Sheet, a Forging Hammer, and Scale Temper."); + elseif(e.message:findi("work skyiron")) then + e.self:Say("Skyiron can only be worked in the unique Cabilis Forge here in East Cabilis. The ore is worked in the same fashion as common ore but must be cooled with Blood Water instead of Water. In order to craft Folded Sheets of Skyiron you must use our Forging Hammers instead of the weaker Smithy Hammers used by the soft skins. You can also fashion Skyiron Scales for use in Cabilis Scale Mail with a File, Large Brick of Skyiron, and Flask of Blood Water."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Smithy_Ygen.lua b/cabeast/Smithy_Ygen.lua new file mode 100644 index 0000000..ab1da05 --- /dev/null +++ b/cabeast/Smithy_Ygen.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Good day! If you wish to survive the wilds of Kunark, you had best purchase some of my wares. Here you may find he finest metals forged by the finest smiths."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Soulbinder_Shakar.lua b/cabeast/Soulbinder_Shakar.lua new file mode 100644 index 0000000..80c75f8 --- /dev/null +++ b/cabeast/Soulbinder_Shakar.lua @@ -0,0 +1,15 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID(),0,1); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabeast/Squire_Gristle.lua b/cabeast/Squire_Gristle.lua new file mode 100644 index 0000000..a08f491 --- /dev/null +++ b/cabeast/Squire_Gristle.lua @@ -0,0 +1,22 @@ +--Squire Gristle starts and ends The Penance quest. This allows a young iksar to replace their guild's starting item if they've lost it. + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail Broodling! When you walk the halls of this tower, you should always display the status that you have earned within our ranks. It brings me pride to see the might of the brood displayed by one such as you while I reflect here in the tower. Do you have the tool of your caste with you at this time?"); + elseif(e.message:findi("yes")) then + e.self:Say("Ah... Yes... very good! Continue to work at this pace and the enemies of the Greenmist will fall beneath the blades of Cazic-Thule! Now move out... To Victory!"); + elseif(e.message:findi("no")) then --The Penance quest + e.self:Emote("shakes his head and growls. 'That is not good, broodling... Not good at all. You will need to take this note and seek out the Toilmaster immediately. Read it on the way and hope that your incompetence can be overcome. We do have a pit for you, should this prove to be impossible."); + e.other:SummonCursorItem(18271); -- Item: A Ragged Book + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18272, item2 = 24770})) then --The Penance quest + e.self:Emote("takes the bag and tome from you and in return gives you the item that you have been thinking of all of this time."); + e.self:Say("Lucky you. You have earned a second chance. Praise Cazic-Thule!"); + e.other:QuestReward(e.self,0,0,0,0,5120); -- Item: Pawn's Khukri + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabeast/The_Toilmaster.lua b/cabeast/The_Toilmaster.lua new file mode 100644 index 0000000..6cee48b --- /dev/null +++ b/cabeast/The_Toilmaster.lua @@ -0,0 +1,41 @@ +--The Toilmaster is part of The Penance quest, which is for any iksar who has lost the item they received from turning in their newbie note. He is also used for the Granite Pebbles quest. + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Do not bother me unless you wish to join the chain gang. Now go away or I shall have my slaves chop you as they chop this granite!"); + elseif(e.message:findi("hammer")) then --The Penance quest + e.self:Emote("hands you a massive hammer and says, 'So, you can read. Good for you. Don't think that you're going to make an impression on me with that rubbish. Let's see if you can handle this hammer like you can that book, whelp.'"); + e.other:SummonCursorItem(24767); -- Item: Hammer of Exoneration + elseif(e.message:findi("bag")) then --The Penance quest + e.self:Emote("turns his head to focus on you and hands you a dusty bag. He then returns to looking into the distance, just over your left shoulder."); + e.other:SummonCursorItem(17091); -- Item: Penance Bag + elseif(e.message:findi("pebbles")) then --Granite Pebbles quest + e.self:Say("Ah. Looking for granite pebbles, are we? You must be a Swifttail. I am tired of doing your caste's work when you give nothing in return. Tell you what, I have lost many slaves to escape. If you bash their heads in with your many skills and return at least two busted froglok shackles I will give you one pile of granite pebbles."); + elseif(e.message:findi("who.* king")) then + e.self:Say("Sss... All hail Emperor Vekin. He shall restore the glory of the Iksar Empire. He shall reclaim Old Sebilis and slay Trakanon! Hail the mighty Emperor Vekin or lose thy head!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12660, item2 = 12660})) then + e.self:Say("A deal is a deal. Here is one pile of granite pebbles. I hope you need more because I know there are more escaped froglok slaves."); + -- confirmed faction hits + e.other:Faction(e.self,441,3); -- Faction: Legion of Cabilis + e.other:Faction(e.self,440,1); -- Faction: Cabilis Residents + e.other:Faction(e.self,445,1); -- Faction: Scaled Mystics + e.other:Faction(e.self,442,1); -- Faction: Crusaders of Greenmist + e.other:Faction(e.self,444,1); -- Faction: Swift Tails + e.other:QuestReward(e.self,math.random(0,5),math.random(0,3),0,0,12689,350); -- Item: Pile of Granite Pebbles + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18271})) then --The Penance quest + e.self:Emote("looks at the tome and speaks to you, scowling, 'Very well Broodling, I have a task for you. I should make you work at the feet of my Froglok Slaves, crushing granite, but the lore of the Brood has a specific rite for this situation. Take this book and learn the will of Cazic-Thule. Read it and ask me any questions that you may have before you start your penance. It would be a shame for you to fail at this task as well... though I wouldn't mind destroying you."); + e.other:QuestReward(e.self,{itemid = 18272}); -- Item: Rites of Exoneration + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--The Penance quest submitted by Jim Mills. Granite Pebbles quest submitted by cavedude. +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Trooper_Azalin.lua b/cabeast/Trooper_Azalin.lua new file mode 100644 index 0000000..fdd30cb --- /dev/null +++ b/cabeast/Trooper_Azalin.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Look to the center of Cabilis and you shall find the Kloks. They will have all the provisions you will need for any adventuring you may do."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Trooper_Begzei.lua b/cabeast/Trooper_Begzei.lua new file mode 100644 index 0000000..e7457ac --- /dev/null +++ b/cabeast/Trooper_Begzei.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("This is the city of Cabilis. New Sebilis. Someday. Emperor Vekin shall lead us into the halls of Sebilis and retake the old capital from the vile claws of the dragon which now resides within. Until then. this is our capital."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Trooper_Byzin.lua b/cabeast/Trooper_Byzin.lua new file mode 100644 index 0000000..636548e --- /dev/null +++ b/cabeast/Trooper_Byzin.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("I have no time for conversation. Go. and leave me to my duties."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Trooper_Feglesh.lua b/cabeast/Trooper_Feglesh.lua new file mode 100644 index 0000000..fccdfbc --- /dev/null +++ b/cabeast/Trooper_Feglesh.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("If sweets are your fancy. seek out the chefs of Cabilis. They have much to offer."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Trooper_Fryp.lua b/cabeast/Trooper_Fryp.lua new file mode 100644 index 0000000..838b36f --- /dev/null +++ b/cabeast/Trooper_Fryp.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, citizen! Have you been fishing lately? The water is alive with sewer catfish. Unfortunately, there are also the barracudas!"); + elseif(e.message:findi("sign")) then + e.self:Say("Alas. The masters have learned of my long evenings in the tavern. Ok... Long mornings and afternoons too. Heh heh. Can't fight authority! Hand me the... Wait. I do not have my quill with me. Go and fetch me a writing quill and hand it to me along with the legion order and then I shall sign it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18241, item2 = 13051})) then --Legion Order (1 signed), Quill + e.self:Emote("signs the order and hands it back to you. 'Well... At least I now have this fancy writing quill.'"); + e.other:QuestReward(e.self,0,0,0,0,18242); --Legion Order (2 signed) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabeast/Trooper_Googin.lua b/cabeast/Trooper_Googin.lua new file mode 100644 index 0000000..82b88cf --- /dev/null +++ b/cabeast/Trooper_Googin.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("gnashes his teeth and gives you a threatening look."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Trooper_Ishlin.lua b/cabeast/Trooper_Ishlin.lua new file mode 100644 index 0000000..0455a12 --- /dev/null +++ b/cabeast/Trooper_Ishlin.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("I wish to earn heavy coin so I can meet with the Kloks in the Haggle Baron's house. They are said to have the finest merchandise available in Cabilis."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Trooper_Keplar.lua b/cabeast/Trooper_Keplar.lua new file mode 100644 index 0000000..67120b7 --- /dev/null +++ b/cabeast/Trooper_Keplar.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("You want to be like Trooper Keplar? Who does not? You must first be summoned to rebirth within Fortress Talishan. If you have not. then you can not be like this grand one."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Trooper_Nagraz.lua b/cabeast/Trooper_Nagraz.lua new file mode 100644 index 0000000..dedee14 --- /dev/null +++ b/cabeast/Trooper_Nagraz.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to Cabilis. Capital of the new Iksar Empire. One day all shall fear us as they once did. One day. we shall take this entire orb and enslave it. The wretched wurms shall not stop us this time."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Trooper_Nishnish.lua b/cabeast/Trooper_Nishnish.lua new file mode 100644 index 0000000..3e71677 --- /dev/null +++ b/cabeast/Trooper_Nishnish.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, citizen! Keep clear of the waterways which run through this grand city. For swimming they are not. Many times have playful broodlings fallen prey to the sharp teeth of barracudas."); + elseif(e.message:findi("sign the restraining order")) then + e.self:Say("So the legion has sent you to have me sign this order, eh? Nay. I shall not do so unless the messenger, you, gathers two barracuda teeth for me. Hand me the legion order when you hand me the two barracuda teeth and then your task shall be complete."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You shall get my signature when I have the legion order and two barracuda teeth."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18244, item2 = 12465, item3 = 12465},1,text)) then --Legion Order (4 signed), Barracuda Tooth x 2 + e.self:Emote("grabs the barracuda teeth and attaches them to a necklace. 'Good. Now this barracuda charm shall keep me safe from slipping into the waters and becoming a feast for the barracuda. And you, take this legion order and be gone.'"); + -- confirmed faction hits + e.other:Faction(e.self,441,2); --Legion of Cabilis + e.other:Faction(e.self,440,1); --Cabilis Residents + e.other:Faction(e.self,445,1); --Scaled Mystics + e.other:Faction(e.self,442,1); --Crusaders of Greenmist + e.other:Faction(e.self,444,1); --Swift Tails + e.other:QuestReward(e.self,0,0,0,0,18245,800); --Legion Order (5 signed) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabeast/Trooper_Rofylin.lua b/cabeast/Trooper_Rofylin.lua new file mode 100644 index 0000000..7ac7024 --- /dev/null +++ b/cabeast/Trooper_Rofylin.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("I was once part of an expeditionary force sent deep into the Emerald Jungle. We searched for the ruins of Torsis. It is there that we hoped to find the armory of the Army of Ik. We did not succeed and lost most of our number to the evil within."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Trooper_Shestar.lua b/cabeast/Trooper_Shestar.lua new file mode 100644 index 0000000..940ee61 --- /dev/null +++ b/cabeast/Trooper_Shestar.lua @@ -0,0 +1,24 @@ +--Before quest works, must add tradeskills: Shestar's Scaled Coif(3 Loose Scales (Item 12466), 1 Unfinished Coif(Item 12468)) then, blacksmithing, I believe trivial in teens, does not always work, yields Shestar's Scaled Coif(Item 12467), yields unfinished coif on failure (Item 12468). + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("My father was a great blacksmith. He taught me how to make great items such as the [Shestar scaled coif]. Alas, smithing was not my rebirth, but rather the life of a warrior."); + elseif(e.message:findi("shestar scaled coif?")) then + e.self:Say("The Shestar Scaled Coif was a light coif my father would fashion out of loose scales from the scaled wolves. I have some scales on me and if you bring me three loose scales I will have enough to create the coif for you, but I require you to also pay a fee of five gold."); + end +end +function event_trade(e) + local item_lib = require("items"); + local text = "I asked for three loose wolf scales and my fee of five gold."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12466, item2 = 12466, item3 = 12466, gold = 5},1,text)) then + e.self:Emote("quickly inserts the scales into a half finished coif and hands you the coif. 'I am afraid that is not enough and I cannot possibly complete the task while on duty. You must go and find an additional three Scaled Wolf Scales and take them, along with the Unfinished Coif, to the nearest forge and complete the smithing yourself. I hope you are a blacksmith.'"); + e.other:QuestReward(e.self,{itemid = 12468}); -- Item: Shestar's Unfinished Coif + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/War_Baron_Eator.lua b/cabeast/War_Baron_Eator.lua new file mode 100644 index 0000000..31e8700 --- /dev/null +++ b/cabeast/War_Baron_Eator.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("turns to you and snorts in anger. Some mucus lands on your cheek. 'Troopers! I thought I ordered you to keep all new recruits away from this chamber! Go, child. The War Baron of Cabilis has no time for games. See this intruder out!!'"); + elseif(e.message:findi("memory")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Emote("takes a step back and thinks to himself. Phlegm dribbles off his lips. 'The Memory of Sebilis. Kept within my personal chambers. They have been taken. Taken by some croakin' Forsaken no doubt!! You have been sent to me because you show excellent prowess. Find my Memory and bring it to me with your footman's pike.'"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("No Iksar resident will have anything to do with you!"); + else + e.self:Say("Hiss! Fool! Fear the Legion of Cabilis for you are no ally to us. Leave while you can."); + end + elseif(e.message:findi("trooper")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("So you are a trooper? Word of your deeds has been spreading through the legion. If you truly wield the pike of a trooper, then go and serve the garrisons of swamp, lake and woods. Report to the Warlord and tell him you are a [trooper reporting for duty]. Their recommendations and your trooper pike shall earn you the rank of legionnaire."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("No Iksar resident will have anything to do with you!"); + else + e.self:Say("Hiss! Fool! Fear the Legion of Cabilis for you are no ally to us. Leave while you can."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "I await three letters of recommendation and your trooper pike."; + local text2 = "shines a bright smile which quickly fades to a frown. 'The memory is not complete. ..sniff, sniff.. A reward for my memory and your footman's pike."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18464, item2 = 22919})) then + e.self:Emote("smiles at your dedication to Cazic Thule and hands you a small gem."); + e.other:Faction(e.self,444,2); -- Faction: Swift Tails + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,7881,20000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18463, item2 = 22918})) then + e.self:Emote("smiles at your dedication to Cazic Thule and hands you a small gem."); + e.other:Faction(e.self,444,2); -- Faction: Swift Tails + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,7881,20000); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12899, item2 = 12898, item3 = 12896, item4 = 5132},1,nil,text2)) then + e.self:Emote("gulps down a wad of phlegm. 'My memory has returned! " .. e.other:GetCleanName() .. "! You are no footman. I grant you the rank of soldier. Go and forge your weapon. Do not return to me until you become a [brave trooper of the empire].'"); + e.other:Faction(e.self, 440,20); -- Faction: Cabilis Residents + e.other:Faction(e.self, 441,5); -- Faction: Legion of Cabilis + e.other:Faction(e.self, 445,5); -- Faction: Scaled Mystics + e.other:Faction(e.self, 444,5); -- Faction: Swift Tails + e.other:Faction(e.self, 442,5); -- Faction: Crusaders of Greenmist + e.other:QuestReward(e.self,0,0,0,0,12476,800); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18073, item2 = 18072, item3 = 18074, item4 = 5134},1,text1)) then + e.self:Emote("takes away your pike and hands you plans not for a pike head, but for the crown of another polearm. 'It is time to wield the weapon of a [true warrior of the legion]. You have done well, Legionnaire " .. e.other:GetCleanName() .. "!'"); + e.other:Faction(e.self, 440,2); -- Faction: Cabilis Residents + e.other:Faction(e.self, 441,2); -- Faction: Legion of Cabilis + e.other:Faction(e.self, 445,2); -- Faction: Scaled Mystics + e.other:Faction(e.self, 444,2); -- Faction: Swift Tails + e.other:Faction(e.self, 442,2); -- Faction: Crusaders of Greenmist + e.other:QuestReward(e.self,0,0,0,0,12478,4000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/War_Historian_Kobl.lua b/cabeast/War_Historian_Kobl.lua new file mode 100644 index 0000000..07dae30 --- /dev/null +++ b/cabeast/War_Historian_Kobl.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("You have come to learn. have you not? I have knowledge of importance to young warriors of the legion. Or perhaps you are a scribe seeking my [unique writing materials]!"); + elseif(e.message:findi("materials")) then + e.self:Say("You must be a scribe of sorts? Always glad to assist a talented youth. I make two things unique to Cabilis and important to any future master scribe. I can create [blood ink] and [illweed parchment]."); + elseif(e.message:findi("ink")) then + e.self:Say("If blood ink is what you seek. then only I can provide it. I use a unique blend prepared by my secret method. I can supply you with a vial of blood ink. but first you must fetch me four ingredients. I need globules of blood from certain creatures. I need globules from the carnivorous plants. leeches and mosquitoes. I also need globules from the blood pit of the Tower of Death. Bring me these and be quick. or the blood will disintegrate."); + elseif(e.message:findi("parchment")) then + e.self:Say("If you wish to obtain a page of my illweed parchment. you only have to perform a simple task. Bring me four illweed reeds from the Lake of Ill Omen. You may find that the only way one can find illweed is to go fishing."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Weaponsmith_Grugl.lua b/cabeast/Weaponsmith_Grugl.lua new file mode 100644 index 0000000..e1c7945 --- /dev/null +++ b/cabeast/Weaponsmith_Grugl.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Come to assist in the testing of the bashing equipment? Nah. Not you. You are too small. You must be here to practice your forging."); + elseif(e.message:findi("footmans pike")) then + e.self:Say("To forge a footman pike requires skill as well as an iron rod, forging hammer and a footman pike head. To forge the pike head you will need a geozite tool, raw pike head and petrified redwood if the footman pike head plans are yours."); + elseif(e.message:findi("soldier pike")) then + e.self:Say("To forge a soldier pike requires skill, not to mention an iron rod, a forging hammer plus a soldier pike head. To forge the pike head, you will need a geozite tool, raw pike head and frontier fools gold as well as the soldier pike head plans."); + elseif(e.message:findi("trooper pike")) then + e.self:Say("To forge a trooper pike requires much skill! You also need an iron rod, forging hammer plus a trooper pike head. To forge the pike head, you will need the trooper pike head plans, a geozite tool, raw pike head and a radiant meteorite."); + elseif(e.message:findi("legionnaire mancatcher")) then + e.self:Say("To forge a legionnaire mancatcher, a blacksmith of great skill would need the steel rod, forge hammer and the forged legionnaire mancatcher crown. That crown is forged with the geozite tool, legionnaire crown plans, a raw crown and a peridot."); + elseif(e.message:findi("champions mancatcher")) then + e.self:Say("To forge a Champion mancatcher a blacksmith of great skill would need a steel rod, a forge hammer, and a forged Champion mancatcher crown. That crown is forged with a geozite tool, crown plans, a raw crown, and an opal."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabeast/Zazlan_Furscale.lua b/cabeast/Zazlan_Furscale.lua new file mode 100644 index 0000000..935ce95 --- /dev/null +++ b/cabeast/Zazlan_Furscale.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks you up and down and mumbles to himself. Much too thin is this one to be put to work. Leave before you hurt yourself and we have to feed you to the critters in the pit."); + elseif(e.message:findi("oxyn sent me")) then + e.self:Say("Exsssscellent! More broodlings have arrived to help rebuild our homes. Ours is the one of the first to be completed. We need more [rare supplies to be collected] so that more homes can be completed. You, Vorszaaku, will venture out and return what we request. If you succeed you will receive a [payment]."); + elseif(e.message:findi("collect more rare supplies")) then + e.self:Say("This is good newssss. You will need to return one of four bundles to me. So that I may redistribute the supplies to the builders. The first bundle must contain a frenzied gnawer tail, froglok treated planks, a sapphire, and your banded sleeves. The second should have a giant hammer, some worn charbone, one star ruby, and your banded cloak. A third bundle should contain spirit caller beads, a rhino hoof, an emerald of fire, and your banded boots. And the final bundle should have no less than a coercion implant, gooey adhesive, a ruby, and your banded bracer. These supplies will increase the production of our broodlings."); + elseif(e.message:findi("payment")) then + e.self:Say("The payment is armor that we have been given by the Hierophants to distribute among those who help in the rebuilding. They feel that the duties you complete for us will benefit the Temple of Terror."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3064, item2 = 10033, item3 = 14767, item4 = 14768})) then + e.self:Say("You have succeeded! Take this as payment and begin getting the next bundle. The more supplies we have the faster we can rebuild"); + e.other:QuestReward(e.self,0,0,0,0,4984,1000); --scaled mystic boots + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3061, item2 = 10035, item3 = 14769, item4 = 14770})) then + e.self:Say("You have succeeded! Take this as payment and begin getting the next bundle. The more supplies we have the faster we can rebuild"); + e.other:QuestReward(e.self,0,0,0,0,4988,1000); --scaled mystic bracers + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3058, item2 = 10032, item3 = 14765, item4 = 14766})) then + e.self:Say("You have succeeded! Take this as payment and begin getting the next bundle. The more supplies we have the faster we can rebuild"); + e.other:QuestReward(e.self,0,0,0,0,4991,1000); --scaled mystic cloak + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3060, item2 = 10034, item3 = 14763, item4 = 14764})) then + e.self:Say("You have succeeded! Take this as payment and begin getting the next bundle. The more supplies we have the faster we can rebuild"); + e.other:QuestReward(e.self,0,0,0,0,4986,1000); --scaled mystic vambraces + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabeast/a_froglok_slave.lua b/cabeast/a_froglok_slave.lua new file mode 100644 index 0000000..0140cbf --- /dev/null +++ b/cabeast/a_froglok_slave.lua @@ -0,0 +1,9 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14799})) then + e.other:QuestReward(e.self,0,0,0,0,14805); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/cabeast/an_Iksar_crusader.lua b/cabeast/an_Iksar_crusader.lua new file mode 100644 index 0000000..9c2ed42 --- /dev/null +++ b/cabeast/an_Iksar_crusader.lua @@ -0,0 +1,34 @@ +--This iksar crusader is actually Hero Goxnok, for the fifth leg of the Greenmist quest. He gives you a coin that you give back to him in Firiona Vie, to get him out of his disguise and speaking to you. + +function event_spawn(e) + eq.set_timer("depop",900000); +end + +function event_say(e) + if(e.message:findi("hail")) then --Test of Betrayal (Greenmist Quest 5/8) + e.self:Emote("clicks his heels together at attention. 'Hail, follower of Pain. Have you been sent to me?'"); + elseif(e.message:findi("sent")) then --Test of Betrayal (Greenmist Quest 5/8) + e.self:Emote("spies the khukri sheath at your side. 'This cannot be. I was told a duke would attend the matter. Still, if the Lords have sent you, then you must be able to complete the task. The [traitor] most certainly must be stopped from delivering the [Charasis Tome]. The [recipients] appear quite formidable and I cannot handle such a deed, not single-handed.'"); + elseif(e.message:findi("traitor")) then --Test of Betrayal (Greenmist Quest 5/8) + e.self:Say("I am afraid I do not know. The babble is that he is from Cabilis, but he could have been a disguised sarnak. Who knows? The tink is that at night within the Outland territory, near the old skinless outpost, they are to meet. We should depart at once. Go get outfitted and let me know when you are [ready to depart]."); + elseif(e.message:findi("charasis tome")) then --Test of Betrayal (Greenmist Quest 5/8) + e.self:Say("The Charasis Tome, the tome of the old city of Charasis. It was taken from this temple and must be returned. The one sent to apprehend the traitor who stole the tome must be [ready to depart] with me at once."); + elseif(e.message:findi("recipients")) then --Test of Betrayal (Greenmist Quest 5/8) + e.self:Emote("shows signs of fear and his face turns olive. 'I do not know. The [spider riders]!! I have only heard tales of them from dying lizards. Evil skinless stubs. From the wounds inflicted on the lizards, I can tell they are vicious opponents. Bloated and frayed flesh, disembowelment. Their steeds must have also joined the fray, for some of the victims were covered in webs.'"); + elseif(e.message:findi("spider riders")) then --Test of Betrayal (Greenmist Quest 5/8) + e.self:Say("As I have reported, the babble states they appear to be skinless stubs who ride giant spiders. Most encounters occur when the moon is high. Little is known about them and only in recent weeks have they begun to appear."); + elseif(e.message:findi("ready to depart")) then --Test of Betrayal (Greenmist Quest 5/8) + e.self:Emote("slings his pack on his back and locks his sheath. 'Very well. I shall follow shortly. You must depart on your own. Go to the plains of the old skinless outpost. Beware, they have returned and patrol the hillside. Keep an eye on the gates of the outpost. I will be disguised within their ranks, I shall kneel as a sign. Give me this coin as your token.'"); + e.other:SummonCursorItem(12691); --A Coin + end +end + +function event_timer(e) + eq.depop(); +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Gryzil.lua b/cabwest/Gryzil.lua new file mode 100644 index 0000000..c8e9311 --- /dev/null +++ b/cabwest/Gryzil.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Looking for a challenging fray? Perhaps there is a combatant waiting for a duel within the Gauntlet."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Harbinger_Glosk.lua b/cabwest/Harbinger_Glosk.lua new file mode 100644 index 0000000..53aed3b --- /dev/null +++ b/cabwest/Harbinger_Glosk.lua @@ -0,0 +1,67 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("halts his chanting. 'You dare to interrupt me? You had best have a good reason. I care not for small talk.'"); + elseif(e.message:findi("keepers grotto")) then + e.self:Say("Keepers Grotto is where you shall find the Keepers. They study and scribe the spells of our dark circle. The grotto is not far from here, near the arena called the Gauntlet."); + elseif(e.message:findi("new revenant")) then + if(e.other:GetFactionValue(e.self) >= 200) then + e.self:Say("Yes. You are. You shall do as I command. Take this. It is incomplete and must be ready for the emperor within the half season. You must find the [Four Missing Gems]. When you have them, then you will have to Quest for the [Grand Forge of Dalnir]. Within it's fire, all shall combine. Return the Sceptre to me with your Revenant Skullcap. Go."); + e.other:SummonCursorItem(12873); --Unfinished Sceptre + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you have shown more devotion to the Brood of Kotiz, we can discuss such things."); + else + e.self:Say("You are a true simpleton to think you can speak to me. You are no ally to the Brood of Kotiz. Begone, before I make your blood boil!"); + end + elseif(e.message:findi("four missing gems")) then + if(e.other:GetFactionValue(e.self) >= 200) then + e.self:Say("The missing sceptre gems are: an Eye of Rokgus, a Gem of Yet to Come, a Heart of Torsis and the Crown Jewel of Ganak."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you have shown more devotion to the Brood of Kotiz, we can discuss such things."); + else + e.self:Say("You are a true simpleton to think you can speak to me. You are no ally to the Brood of Kotiz. Begone, before I make your blood boil!"); + end + elseif(e.message:findi("forge of dalnir")) then + if(e.other:GetFactionValue(e.self) >= 200) then + e.self:Emote("scratches his chin. 'I know little of it other than that it once belonged to the ancient Haggle Baron, Dalnir. From what I have read, its fires require no skill, but will melt any common forge hammer used. Dalnir was said to have called upon the ancients for a hammer which could tolerate the magical flames.'"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you have shown more devotion to the Brood of Kotiz, we can discuss such things."); + else + e.self:Say("You are a true simpleton to think you can speak to me. You are no ally to the Brood of Kotiz. Begone, before I make your blood boil!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I await both the sceptre and your revenant skullcap."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18207})) then --Guild Summons + e.self:Say("Another apprentice has reached rebirth. You now have become one with the Brood of Kotiz. We study the ancient writing of Kotiz. Through his writing we have found the power of the dark circles. Listen well to the scholars within this tower and seek the [Keepers Grotto] for knowledge of our spells. This drape shall be the sign to all Iksar that you walk with the Brood. Now go speak with Xydoz."); + e.other:Faction(e.self,443,100); --Brood of Kotiz + e.other:Faction(e.self,441,25); --Legion of Cabilis + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,12407,500); --Drape of the Brood + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12874, item2 = 4265},1,text)) then + e.self:Emote("presents to you a glowing skullcap. 'This is the treasured cap of the sorcerers of this tower. Let all gaze upon you in awe. You are what others aspire to be. I look forward to reading of your adventures, Sorceror " .. e.other:GetCleanName() .. ".'"); + e.other:Faction(e.self,443,10); -- Faction: Brood of Kotiz + e.other:Faction(e.self,441,2); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,2,4266,10000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 48037})) then + e.self:Say("You have done well in doing what I have asked. To make a gem of reflection you will need some Mt Death mineral salts, a green goblin skin, spiroc bone dust, essence of rathe, blue slumber fungus, and a vial of pure essence. Combine all of these in this container and you will have what it is you seek."); + QuestReward(e.self,{itemid = 48039}); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14794})) then + e.self:Emote("hisses and says venomously, 'And I am disturbed yet again. I hope for your sake it is important.'"); + e.self:Emote("The gaunt necromancer looks down at the paper in his hands and after reading a few lines gasps, then falls into a violent coughing fit. After recovering he takes a deep breath, puffs his chest out and hands the paper back to you. With his head held high, he says in a raspy voice, 'Show this to Rixiz. He will test you.'"); + e.other:QuestReward(e.self,0,0,0,0,14794); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14793})) then + e.self:Emote("snatches the note out of your hands, obviously irritated. After reading a few lines, he glances up at you, his brow furrowed, then looks down again to continue reading. When he's finished, he hands the note back to you and takes a deep breath, shuddering slightly. He then says, 'Xydoz. Take this to Xydoz. He will test you.'"); + e.self:Emote("watches you carefully as you leave."); + e.other:QuestReward(e.self,0,0,0,0,14793); + end + item_lib.return_items(e.self, e.other, e.trade) -- return unused items +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Izarod_Fristan.lua b/cabwest/Izarod_Fristan.lua new file mode 100644 index 0000000..9e3cf16 --- /dev/null +++ b/cabwest/Izarod_Fristan.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail there. " .. e.other:GetCleanName() .. ". So you are ready to learn more about our ways? Do you wish to try and expand your knowledge of our arcane arts? Then venture far from here to the darkest depths of our once great empire and seek the minions that inhabit the ruins. The arcane powers will come in the form of [scrolls]."); + elseif(e.message:findi("what scrolls?")) then + e.self:Say("Besides all the ones you will find. There are some that are only in my possession. To show that you have been successful on your journey, return one of splurt, defoliation, convergence, or thrall of bones. You then will be rewarded with one of my scrolls."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + local count = item_lib.count_handed_item(e.self, e.trade, {19423, 19296, 19294, 19299}); + if(count > 0) then + repeat + e.self:Say("Here is the scroll that I promised. We have both gained much today. I hope to do business with you again soon. Farewell."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(19297,19421,19408,19409),1000); -- Item(s): Spell: Minion of Shadows (19297), Spell: Sacrifice (19421), Spell: Scent of Terris (19408), Spell: Shadowbond (19409) + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabwest/Jaxxtz.lua b/cabwest/Jaxxtz.lua new file mode 100644 index 0000000..da16d0c --- /dev/null +++ b/cabwest/Jaxxtz.lua @@ -0,0 +1,15 @@ +function event_say(e) + + if(e.message:findi("Hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ", Perhaps you've come to purchase some of my rare supplies? I have a special blend of eleven herbs and spices......oh wait.....I'm sold out of that......anyway. What can I do for you?"); + elseif(e.message:findi("Vagnar") and e.other:GetFaction(e.self) < 6) then + e.self:Say("Vagnar? I don't recall.....Unless Vagnar was that shaman supposedly on some quest to save our entire race from total destruction..someone always on one of those. He bought some charms to ward of [Dragon kin]. He's most likely in the belly of some beast now."); + elseif(e.message:findi("Dragon kin") and e.other:GetFaction(e.self) < 6) then + e.self:Say("Yes he said he needed to steal secrets from the hated Sarnaks to aid him in his true quest. He said the sarnak know ways to cleanse the mind from intrusion, he would say no more."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Jondin.lua b/cabwest/Jondin.lua new file mode 100644 index 0000000..6398586 --- /dev/null +++ b/cabwest/Jondin.lua @@ -0,0 +1,27 @@ +-- Seems incomplete, verify to live +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings. friend. I have many fine herbs for sale. My prices are reasonable for I am not governed by the [Haggle Baron]. If you fancy yourself an adventurer. I would like to hire you for a [simple mission]."); + elseif(e.message:findi("haggle baron")) then + e.self:Say("Haggle Baron Klok Dun Ree is the current Haggle Baron. It is written in the law that all services shall be governed by the Haggle Baron. To do business outside of the law is forbidden, but the merchants of the Tower of Death are exempt from this rule. Klok will not test the temper of the Harbinger and Baron Eator will not upset his most powerful ally."); + elseif(e.message:findi("simple mission")) then + e.self:Say("I actually have a few items I am presently low on. I would appreciate some assistance to [collect fern flowers] or maybe you are an alchemist who can [gather bone chips]."); + elseif(e.message:findi("fern flowers")) then + e.self:Say("I have run low on fern flowers and must have more of them. Take this [flower pouch]. Outside the city can be found carnivorous plants and a strain of them buds the flower in question. Collect enough of these flowers to fill and combine the pouch and I shall reward you."); + e.other:SummonCursorItem(17025); -- Item: Fern Flower Pouch + elseif(e.message:findi("bone chips")) then + e.self:Say("I should tell you. I do not need the bone chips. I need bone granite powder. In order to get it. you must find some granite pebbles and then three piles of bone chips from decaying skeletons. After you gather the items you will have to use your skill in alchemy to combine the items and create bone granite powder. The powder is what I need."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12442})) then + e.self:Say("You have done well. Here is your reward."); --Text made up + e.other:Faction(e.self,443,1); -- Faction: Brood of Kotiz + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + if(math.random(100) < 35) then + e.other:QuestReward(e.self,0,0,0,0,12443); -- Item: Kromdul Toothpick + end + end +end diff --git a/cabwest/Kamzar.lua b/cabwest/Kamzar.lua new file mode 100644 index 0000000..279a48e --- /dev/null +++ b/cabwest/Kamzar.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Much beauty can be found upon the skins of our enemies. And... even upon that of our own allies?"); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Keeper_Bile.lua b/cabwest/Keeper_Bile.lua new file mode 100644 index 0000000..dd0b191 --- /dev/null +++ b/cabwest/Keeper_Bile.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("bows before you as a gesture of kindness and respect. 'Greetings. I am Bile, Keeper of the Apprentice Ranks. My knowledge is that of the first circle of necromancy. I was once a great necromancer, but now i have a greater calling to protect the words of Kotiz. I also Conduct many tests to ensure the spells are deciphered correctly. I am in need of an apprentice to [collect components.]"); + elseif(e.message:findi("collect components")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Emote("takes out a tattered scroll and looks upon its words.'Hmm. Yes. I will need the following; One large scorpion pincer, one sabertooth cub canine and two brittle skulls. Bring these to me and I shall pay you and if I have an overscribed spell, I shall give you that also."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("No Iksar resident will have anything to do with you!"); + else + e.self:Say("No Iksar resident will have anything to do with you! Away from here before you find yourself dead."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12739, item2 = 12739, item3 = 12659, item4 = 12426})) then + e.self:Emote("tosses the items into a nearby box and reaches into a sack at his feet. He hands you your reward. 'This spell is going to need some major testing. I can always use more of the same components.'"); + e.other:Faction(e.self,443,2); -- Faction: Brood of Kotiz + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,math.random(10),0,0,eq.ChooseRandom(15338,15344,15339,15340,15225,15229,15346,15491,15502,15341,15342,15347,15348,15331,15221,15343),100); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabwest/Keeper_Pain.lua b/cabwest/Keeper_Pain.lua new file mode 100644 index 0000000..87ddc19 --- /dev/null +++ b/cabwest/Keeper_Pain.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("raises his gaze from his tomes to greet you. 'Ahh!! Welcome, seeker of knowledge! Come to fill your brains, have you? Look closer, adventurer. I have scribed some very powerful spells."); + elseif(e.message:findi("wand of pain")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Emote("drops his tome and monocle and looks at you sharply. 'What?!! Have you seen Revenant Vytrix? I let him borrow my wand for a quest. That was half a season ago!! I fear he is dust and my precious wand is lost."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("No Iksar resident will have anything to do with you!"); + else + e.self:Say("No Iksar resident will have anything to do with you! Away from here before you find yourself dead."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12869})) then + e.self:Emote("begins jumping for joy. 'Yoohoo!! My wand!! Thank you. You must be some powerful adventurer. You can help me collect a few components. Fill this chest with a frost crystal, a cockatrice egg, a giant hornet egg and a plains pebble. Return the full chest to me and I shall offer you a spell I recently researched."); + e.other:Faction(e.self,443,5); --Brood of Kotiz + e.other:Faction(e.self,441,1); --Legion of Cabilis + e.other:QuestReward(e.self,0,0,math.random(5),0,17041,100); -- Item: Component Chest + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12885})) then + e.self:Say("Yes this is exactly what I wanted. Here is your spell."); + e.other:Faction(e.self,443,5); --Brood of Kotiz + e.other:Faction(e.self,441,1); --Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,15444); --Spell Renew Bones + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabwest/Keeper_Rott.lua b/cabwest/Keeper_Rott.lua new file mode 100644 index 0000000..905920f --- /dev/null +++ b/cabwest/Keeper_Rott.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("bows before you. His eyes are kept wide by the pins which distort his eyelids. 'Greetings! You have stumbled upon the cave of the Keepers. We record the arcane secrets of the Brood of Kotiz. We have scribed many spells and make them available to all those who are deserving. Please, have a look.'"); + elseif(e.message:findi("chosen occultist")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Emote("kneels before you abjectly. 'Oh, great occultist! I am glad you have arrived, but I do not have the artifacts Kyvix seeks. You will have to seek out the sarnak revenants who still hold the precious stem and base. Get them and take them with your occultist skullcap back to Master Kyvix. Since you are headed in the general direction, I also have an [additional mission], if you do not mind.'"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you have shown more devotion to the Brood of Kotiz, we can discuss such things."); + else + e.self:Say("You are a true simpleton to think you can speak to me. You are no ally to the Brood of Kotiz. Begone, before I make your blood boil!"); + end + elseif(e.message:findi("additional mission")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Emote("grabs a fist full of scribbled notes and throws them into the air in a rage. 'All these notes are useless to me without the first four note pages! While I ventured through the fields of the drixies, I was assaulted by a band of gobs. They were shamans. I heard them calling spirits. They took the first two pages before I escaped. Then I lost the [second two pages] the next day!! Blast!!'"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you have shown more devotion to the Brood of Kotiz, we can discuss such things."); + else + e.self:Say("You are a true simpleton to think you can speak to me. You are no ally to the Brood of Kotiz. Begone, before I make your blood boil!"); + end + elseif(e.message:findi("second two pages")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Emote("begins to curse. Luckily, you do not understand the language, but you feel a bit of spittle strike your face. '...and then there I was, almost home and the legion expedition leader decided we should explore a bit more near the lake. Then I find myself up against the same type of gobs from the fields. I just ran for the exit an never looked back, but they still managed to swipe pages 3 and 4!!'"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you have shown more devotion to the Brood of Kotiz, we can discuss such things."); + else + e.self:Say("You are a true simpleton to think you can speak to me. You are no ally to the Brood of Kotiz. Begone, before I make your blood boil!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I am expecting pages one through four. Do I have to go and find them myself?!"; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12854, item2 = 12855, item3 = 12856, item4 = 12857},1,text)) then + e.self:Say("Oh, great necromancer, how can I repay you?!! I know. Here is a spell I recently researched. It should help you increase the strength of a summoned pet. Learn it well."); + e.other:Faction(e.self,443, 3); -- Faction: Brood of Kotiz + e.other:Faction(e.self,441, 1); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,16426,1000); -- Item: Spell: Intensify Death + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabwest/Lybar.lua b/cabwest/Lybar.lua new file mode 100644 index 0000000..cc7e3ee --- /dev/null +++ b/cabwest/Lybar.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("You seek to extinguish the hunger of the flesh. You have come to the right place."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Marthor.lua b/cabwest/Marthor.lua new file mode 100644 index 0000000..5757c83 --- /dev/null +++ b/cabwest/Marthor.lua @@ -0,0 +1,32 @@ +--Marthor is a former pupil of Supreme Master Tynn, and helps us along on our Whistling Fists quest. Buying him 4 Trog Brews (sold in East Cabilis) will get him to open up to us. + +function event_say(e) + local qglobals = eq.get_qglobals(e.self,e.other); + if(e.message:findi("hail")) then + e.self:Emote("hiccups and breathes drunken breath in your face saying, Leave me be, can't you see that I am meditating or something?"); + elseif(e.message:findi("master tynn") and (qglobals["Brew"] ~= nil) and (qglobals["Brew1"] ~= nil)) then + e.self:Say("Supreme Master Tynn was the only one that has even seen the weapon. I do not know its origin. I tell you though, you would need to be as powerful as he was to be able to wield the weapon. Only an Iksar of the last rung would be able to use it, come back and show me you have earned your [Tynnonium Shackle] and I will discuss with you what I know."); + elseif(e.message:findi("tynnonium") and (qglobals["Brew"] ~= nil) and (qglobals["Brew2"] ~= nil)) then + e.self:Say("Veltar was one with the ways of Tynn. He did return to Cabilis, I know you have rescued him from his cell. He has traveled afar to clear his mind of his torture in the mines. He did not say where his travels would take him. You will have to find him once more and ask him about the Tynnonium Shackle he still wears."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 8348, item2 = 8348, item3 = 8348, item4 = 8348})) then + e.self:Say("Ha! How did you know my favorite drink? Master Rinmark told you? That crazy old monk spends his days sitting on that mountain in Timorous Deep doesn't he? And they call me a drunkard! Anyhow, I bet he told you about the Whistling Fists. I have never seen them myself, and have only heard legend passed down by [Master Tynn]."); + eq.set_global("Brew","1",1,"F"); + eq.set_global("Brew1","1",1,"F"); + eq.set_global("Brew2","1",1,"F"); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4199})) then + e.self:Say("You earned the Tynnonium Shackle? I am sure you wish to seek the fists of lore. Gandan has come as close as anyone, you would have to talk to him. Last I heard his expedition has taken him to the Howling Stones."); + e.other:QuestReward(e.self,0,0,0,0,4199); -- Item: Shackle of Tynnonium + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Master_Kyvix.lua b/cabwest/Master_Kyvix.lua new file mode 100644 index 0000000..1967b89 --- /dev/null +++ b/cabwest/Master_Kyvix.lua @@ -0,0 +1,51 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Quite busy!! Quite busy!! Things must be done. [New components] to be collected!!"); + elseif(e.message:findi("New components")) then + e.self:Say("Yes, yes!! I will need components from beyond the gates. I must find an [apprentice of the third rank]."); + elseif(e.message:findi("apprentice of the third rank")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("If you truly be an apprentice of the third circle, then there is a Dark Binder skullcap to be earned. Take this sack and fill it with a creeper cabbage, a heartsting telson with venom, brutling choppers and a scalebone femur. When they are combined within the sack, you may return it to me with your third rank skullcap and and we shall bid farewell to the title, apprentice."); + e.other:SummonCursorItem(17024); -- Item: Brood Sack + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you have shown more devotion to the Brood of Kotiz, we can discuss such things."); + else + e.self:Say("You are a true simpleton to think you can speak to me. You are no ally to the Brood of Kotiz. Begone, before I make your blood boil!"); + end + elseif(e.message:findi("true mission")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I have been waiting for a Nihilist to return. His name was Ryx and I fear his love of ale and the high seas has kept him from his mission. All I want you to do is find him. He should be disguised as a worker and he will give you a tome to bring to me. Return it with your Dark Binder Cap. I am sure that is simple enough for one as simple as you. Be sure to give him this."); + e.other:SummonCursorItem(12848); -- Item: A Spectacle + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you have shown more devotion to the Brood of Kotiz, we can discuss such things."); + else + e.self:Say("You are a true simpleton to think you can speak to me. You are no ally to the Brood of Kotiz. Begone, before I make your blood boil!"); + end + elseif(e.message:findi("Kor Sha Candlestick")) then -- missing text + e.self:Say("I need the foot and stem of my candlestick. The Stem comes from Sarnaks. The foot has been stolen by Grype, in East Cabilis."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "I demand a full fish sack and your third circle apprentice skullcap."; + local text2 = "So you are expecting to earn your way to rank of revenant, eh? You shall when I have the base and stem of the candle and your occultist skullcap."; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12420, item2 = 4262},1,text1)) then --full component sack, apprentice skullcap - 3rd rank + e.self:Say("you have taken far too long!! Already another apprentice has performed this task. You will still be rewarded with the Dark Binder skullcap, but now you must aid in a [true mission]."); + e.other:Faction(e.self,443,10); -- Faction: Brood of Kotiz + e.other:Faction(e.self,441,2); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,math.random(15),0,4263,200); --dark binder skullcap + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18065, item2 = 4263})) then --a journal and dark binder skullcap + e.self:Say("I did not expect you to return. You made me lose a bet with one of the other scholars. Seeing as you have delivered the tome, I shall not harm you, but rather welcome you into the rank of the dark circles. Listen well to the scholars within this tower and seek the [Keepers Grotto] for knowledge of our spells. This drape shall be the sign to all iksar that you walk with the Brood. Now go speak with Xydoz."); + e.other:Faction(e.self,443,10); -- Faction: Brood of Kotiz + e.other:Faction(e.self,441,2); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,math.random(15),0,4264,200); --occultist skullcap + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12853, item2 = 12852, item3 = 4264},1,text2)) then --Stem of Candlestick, Foot of Candlestick, occultist skullcap + e.self:Emote("grabs the candle parts and puts them in an odd pouch, then takes your cap which disintegrates in his palm. He hands you another cap. 'Welcome, Revenant " .. e.other:GetCleanName() .. ". You have done well. The Harbinger awaits you. He seeks a [new revenant].'"); + e.other:Faction(e.self,443,10); -- Faction: Brood of Kotiz + e.other:Faction(e.self,441,2); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,math.random(15),0,4265,200); --Revenant Skullcap + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabwest/Master_Rixiz.lua b/cabwest/Master_Rixiz.lua new file mode 100644 index 0000000..7884421 --- /dev/null +++ b/cabwest/Master_Rixiz.lua @@ -0,0 +1,50 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You are on the grounds of the Brood of Kotiz. If you do not belong, you must leave at once. There shall be no [third rank skullcap] for you."); + elseif(e.message:findi("third rank skullcap")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I offer the third rank apprentice skullcap to those who wear the second. If that is you, then you will do the [bidding of the tower]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you have shown more devotion to the Brood of Kotiz, we can discuss such things."); + else + e.self:Say("You are a true simpleton to think you can speak to me. You are no ally to the Brood of Kotiz. Begone, before I make your blood boil!"); + end + elseif(e.message:findi("bidding of the tower")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Take this glass canopic. Within it you shall place a brain for me. The brain I seek is that of a sarnak crypt raider. Any shall do. The ones we seek should be near the Lake of Ill Omen. When you obtain the brain, you must quickly put it into the glass canopic with [embalming fluid]. When these are combined, the canopic shall seal and if you return it to me with your second rank skullcap, I shall hand you the next and final skullcap."); + e.other:SummonCursorItem(17023); -- Item: Brood Canopic + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you have shown more devotion to the Brood of Kotiz, we can discuss such things."); + else + e.self:Say("You are a true simpleton to think you can speak to me. You are no ally to the Brood of Kotiz. Begone, before I make your blood boil!"); + end + elseif(e.message:findi("embalming fluid")) then + e.self:Say("Embalming fluid is created through brewing, but do not drink it!! You can learn about the process of brewing on our grounds."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "You shall get no skullcap until I have the preserved raider brain and your second circle apprentice skullcap."; + local text2 = "I will not be bothered unless you bring me everything!"; + + -- preserved sarnak brain and necro skull cap 2, gives skull cap 3 + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12411, item2 = 4261},1,text1)) then + e.self:Say("You have done well. Here is your final apprentice skullcap."); + e.other:Faction(e.self,443,10); -- Faction: Brood of Kotiz + e.other:Faction(e.self,441,2); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,math.random(15),0,4262,150); -- Item: Apprentice Skullcap - 3rd Rank + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14794})) then + e.self:Emote("takes the note and after reading a few lines opens his eyes wide in astonishment. He looks up at you and stares at you a while before he says,"); + e.self:Say("You spoke to the Brothers? A common soldier such as yourself interested in silly stories to frighten broodlings? Fine, then. You shall know confidence, if you live. If you have the strength to stride into a lair, go before the owner, and kill that thing in its own home, you will acquire a small part of the virtue we as necromancers must master to ply our art. In the Frontier Mountains lives a unit of the troublesome burynai. Invade their home and destroy their leader. Bring me proof and two fire emeralds."); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14810, item2 = 10033, item3 = 10033},1,text2)) then + e.self:Say("Well done, here is your reference."); + e.other:QuestReward(e.self,0,0,0,0,14813,10000); -- Item: Glosk's Reference: Boots + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Master_Xydoz.lua b/cabwest/Master_Xydoz.lua new file mode 100644 index 0000000..91b5f92 --- /dev/null +++ b/cabwest/Master_Xydoz.lua @@ -0,0 +1,57 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("What is it you seek within the tower? Could it be that you are a new apprentice? If so, you are required to don the [apprentice skullcap]"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you have shown more devotion to the Brood of Kotiz, we can discuss such things."); + else + e.self:Say("You are a true simpleton to think you can speak to me. You are no ally to the Brood of Kotiz. Begone, before I make your blood boil!"); + end + elseif(e.message:findi("apprentice")) then + e.self:Say("All new members of the Brood of Kotiz are required to don the [apprentice skullcap]. To earn one, a new apprentice is required to fetch four brains for further experiments. Not just any four brains, mind you, but the brains of [sarnak] hatchlings."); + elseif(e.message:findi("sarnak")) then + e.self:Say("Sarnak ? Do not speak loudly, that name. If you seek information on the sarnak, read the tome of this tower. The tower librarian should be found within."); + elseif(e.message:findi("second rank skullcap")) then + e.self:Say("Looking for the second rank skullcap ? Look no further, but be prepared to earn it. I seek a [faded tapestry]. Now, too, so do you."); + elseif(e.message:findi("faded tapestry")) then + e.self:Say("I have heard reports of such a thing found upon Sarnak hatchlings. They must have scampered from the safety of their dwelling with their master's property. I would like to see this tapestry, but only when it has been mended. I need find a necromancer who is [adept at tailoring]."); + elseif(e.message:findi("kor sha")) then + e.self:Say("Do not become like the herbalist, Jondin. He has many questions concerning Kor - Sha. It is recorded in the tower tomes. It was a laboratory of a once great Iksar. It turned to rubble long ago."); + elseif(e.message:findi("adept at tailoring")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("If you are a member of the Brood and wish to assist you may seek out this tapestry. Find the Torn and Ripped pieces and take them both to a sewing kit. Return with the mended tapestry and your first rank skullcap and I shall see that you are rewarded with coin and a second rank skullcap"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you have shown more devotion to the Brood of Kotiz, we can discuss such things."); + else + e.self:Say("You are a true simpleton to think you can speak to me. You are no ally to the Brood of Kotiz. Begone, before I make your blood boil!"); + end + end +end + +-- 4 sarnak hatchling brains, returns necro skull cap 1, raises brood of kotiz and legions of cabilis +-- mended tapestry + necro skull cap1, raises brood of kotiz and legions of cabilis +function event_trade(e) + local item_lib = require("items"); + local text1 = "I must have the mended tapestry and your first circle apprentice cap before I reward you." + local text2 = "Do not bother me unless you have all that I asked for, grunt. Two star rubies AND the book! Now get OUT of here!"; + local text3 = "I will require four sarnak whelp brains for my experiment. When I have them, then you shall have the skullcap of the apprentice, first circle."; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12408, item2 = 12408, item3 = 12408, item4 = 12408},1,text3)) then + e.self:Say("Good work, my young apprentice. You will make a fine addition to our ranks. Here is your first apprentice skullcap. Wear it as a sign of our circle. Do not lose it. Someday you shall wear a necromancer skullcap, but next shall come the [second rank skullcap]."); + e.other:Faction(e.self,443,2); -- Faction: Brood of Kotiz + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,4260,100); -- Item: Apprentice Skullcap - 1st Rank + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 4260, item2 = 18208},1,text1)) then + e.self:Say("A job well done, apprentice " .. e.other:GetCleanName() .. ". Your fine service shall earn you the second circle apprentice skullcap. I would advise you to forget this tapestry, it is nothing more than an ancient rug of no importance."); + e.other:Faction(e.self,443,10); -- Faction: Brood of Kotiz + e.other:Faction(e.self,441,2); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,4261,120); -- Item: Apprentice Skullcap - 2nd Rank + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14793})) then + e.self:Emote("snatches the paper from your hand and hisses in anger. Without even looking at the paper he growls"); + e.self:Say("WHAT?! What is this tra... He stares down at the paper, mouth hanging open wide in disbelief. He finally continues, saying, Very well, then. If you wish to know confidence I have a task for you. Our hated enemies, the sarnak, have a tome we have sought to return to our libraries for centuries. At this point, we believe it to be found in a small fortress they maintain near the Great Lake. One of their scholars will most likely have it on their person. Bring it to me along with two star rubies."); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14811, item2 = 10032, item3 = 10032},1,text2)) then + e.self:Say("Well done"); + e.other:QuestReward(e.self,0,0,0,0,14831,10000); -- Item: Glosk's Reference: Greaves + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabwest/Mohin.lua b/cabwest/Mohin.lua new file mode 100644 index 0000000..1d5254d --- /dev/null +++ b/cabwest/Mohin.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("A forged weapon is no match for the memories and power trapped within a weapon made of bone."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Nihilist_Yeegarn.lua b/cabwest/Nihilist_Yeegarn.lua new file mode 100644 index 0000000..2dfe6e4 --- /dev/null +++ b/cabwest/Nihilist_Yeegarn.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Looking for a good read? You should visit the guild houses. They have tomes which have been scribed for sale."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Nihilist_Zeegarn.lua b/cabwest/Nihilist_Zeegarn.lua new file mode 100644 index 0000000..69201de --- /dev/null +++ b/cabwest/Nihilist_Zeegarn.lua @@ -0,0 +1,22 @@ +--Nihilist Zeegarn starts and ends The Penance quest. This allows a young iksar to replace their guild's starting item if they've lost it. + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Mind yourself within Cabilis. We will not tolerate any mischief. If you don't heed my warnings, you may be sentenced to the pit of the Crusaders of Greenmist. You don't want that! Also, you should always wear your robe when entering these walls. You do have your Drape of the Brood, correct?"); + elseif(e.message:findi("yes")) then + e.self:Say("Very good. Please keep it on and bow before the will of the Cazic-Thule when entering these walls. Be off."); + elseif(e.message:findi("no")) then --The Penance quest + e.self:Say("What is this?' The Nihilist barks in disbelief. 'You have lost your drape? This is unacceptable! Take this note and report to the Toilmaster at once. Read it on the way and praise Cazic-Thule for any mercy that you may be granted!"); + e.other:SummonCursorItem(18271); -- Item: A Ragged Book + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18272, item2 = 24770})) then --The Penance quest + e.self:Emote("takes the bag and tome from you and in return gives you the item that you have been thinking of all of this time.'Lucky you. You have earned a second chance. Praise Cazic-Thule!'"); + e.other:QuestReward(e.self,0,0,0,0,12407); -- Item: Drape of the Brood + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabwest/Sartar_the_Unrivaled.lua b/cabwest/Sartar_the_Unrivaled.lua new file mode 100644 index 0000000..2fdacda --- /dev/null +++ b/cabwest/Sartar_the_Unrivaled.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello. " .. e.other:GetCleanName() .. ". I am Sartar. In my former life I forged my body into a versatile weapon capable of defeating any foe that crossed my path. I was a student. a leader. a scholar and a scoundrel. My deeds caught the eyes of the gods and Cazic-Thule blessed me. Removing me from this plane and placing me within the [Realm of Heroes]."); + elseif(e.message:findi("What realm of heroes")) then + e.self:Say("The Realm of Heroes is where I lived for some time. With others who had performed great deeds. I enjoyed this paradise but I wished to return and serve my lord Cazic-Thule further. Perhaps it was because of the discipline I learned from my early masters and later as a master myself. That I eventually shunned that life of pleasure. So again. I return to this mortal realm to serve my [dark lord of Fear]."); + elseif(e.message:findi("What dark lord of fear")) then + e.self:Say("Hail Cazic-Thule. Long may fear reign. I serve by rewarding others who have found the favor of the gods and whose actions have caught their attention and I reward them appropriately. Those to receive the favor of the gods are on their way to the glory that I have achieved in my [past]. Their journey is simply at its beginning."); + elseif(e.message:findi("What past")) then + e.self:Say("I do not know whether it was one single deed in particular that caught the eyes of the gods or if it was many deeds throughout my life in service to Cazic-Thule. I choose to leave such questions to the philosophers and personally do not care why it is that I stand before you as I do now. Simply, my reward is to serve. Still, perhaps you would like to hear one of my [tales] since you seem so interested in listening to me speak."); + elseif(e.message:findi("What tales")) then + e.self:Say("Very well. I shall relay to you a tale of my beginning. The times in which I lived were much different from today. It gives me pleasure to see the ancient cities being rebuilt and New Sebilis is a testament to the superiority of our race. When I walked the land however, we were still wandering in the wilderness. When I was young there were [two masters] who lived solitary lives in the caves near what is now called the Emerald Jungle. I served both and neither."); + elseif(e.message:findi("What two masters")) then + e.self:Say("Their names are not important for they are masters no longer. The two knew of each other's existence but neither knew that I was receiving training from both of them at the same time. I expect that if one learned I was receiving training from the other they would have fought over who would be the one to have the pleasure of striking me dead. They would learn the [truth] eventually, only on my terms."); + elseif(e.message:findi("What truth")) then + e.self:Say("The truth was simply that I served neither master, only myself. At first it was a great challenge to slip between the two as their fighting styles differed so greatly. However, as the years passed my ruse became perfected and switching between the roots of either style became natural and automatic. Indeed, I soon reached the point when I knew that I had learned all I could from each and had exceeded them in skill. Yet I continued to pay both [visits]."); + elseif(e.message:findi("What visits")) then + e.self:Say("I simply wanted to be certain that I was able to defeat both, one after the other. I knew that should I slay the one master, word would travel quickly, no doubt fears would be raised and perhaps my duplicity revealed. My unique perspective of having studied both styles afforded me the knowledge of how to [defeat both masters]."); + elseif(e.message:findi("How did you defeat both masters")) then + e.self:Say("Defeat them both I did! I still remember the look of shock on their faces, how the pupils of their eyes dilated with fear as I switched from their native stance to that of the other style. That momentary loss of wits and that weakness was their undoing. I defeated both masters easily. This was the humble beginning of my [rise to power]."); + elseif(e.message:findi("What rise to power")) then + e.self:Say("With both local masters defeated word traveled quickly of my deeds. Those who would seek the masters for knowledge and training were suddenly without either. Through their destruction, I had laid the roots for my eventual ascension to head of my [tribe]."); + elseif(e.message:findi("What tribe")) then + e.self:Say("Indeed, rather than come to these two masters for wisdom and training they began to seek out my help. Soon, I had followers joining me from many of the other tribes and I became a leader of many. My tribe grew large and we were very powerful and successful. Often the passage of time swallows the great deeds of a hero and they are forgotten over millennia. Fortunately, the gods never forget. I have become bored with speaking to you " .. e.other:GetCleanName() .. ". Leave me."); + elseif(e.message:findi("What coin")) then + e.self:Say("Occasionally, a person will perform some heroic deed and be rewarded by a servant of the gods with a coin that marks them as one on the path to becoming a hero. I will accept these coins and in return, reward that individual in kind with a prize worthy of a hero."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Trooper_Dagnav.lua b/cabwest/Trooper_Dagnav.lua new file mode 100644 index 0000000..aaaf006 --- /dev/null +++ b/cabwest/Trooper_Dagnav.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("I have heard the old elven outpost has been retaken and that sails once more frequent our shores. We are doomed unless we can repel the invaders. Blast!! As if the goblins. giants. sarnak. wurms and frogloks were not enough!"); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Trooper_Eglo.lua b/cabwest/Trooper_Eglo.lua new file mode 100644 index 0000000..b6746ab --- /dev/null +++ b/cabwest/Trooper_Eglo.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("The waters of Cabilis are teeming with life. A good fisherman could make heavy coin catching fish."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Trooper_Egrephit.lua b/cabwest/Trooper_Egrephit.lua new file mode 100644 index 0000000..d800605 --- /dev/null +++ b/cabwest/Trooper_Egrephit.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Trooper Egrephit is my name. Keeping you broodlings safe is my game. Quite a rhyme I weave. Now it's time for you to leave. Ha!! Where do I come up with these?"); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Trooper_Gegren.lua b/cabwest/Trooper_Gegren.lua new file mode 100644 index 0000000..c3eaa88 --- /dev/null +++ b/cabwest/Trooper_Gegren.lua @@ -0,0 +1,12 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Do not approach the Tower of Death unless you have been summoned to rebirth. My brother was unfortunate enough to venture into their halls and he has never been seen again."); + elseif(e.message:findi("tower of death")) then + e.self:Say("The tower is the laboratory of the secluded Brood of Kotiz. We supply them with many slaves for their dark experiments and rituals. Its dark halls smell of rotted flesh from a multitude of creatures, even our own. It is said there is an entire chamber filled with the blood of a million. This is no place for a weak stomach. And the Brood does not welcome visitors."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Trooper_Gryfkyz.lua b/cabwest/Trooper_Gryfkyz.lua new file mode 100644 index 0000000..c8e9311 --- /dev/null +++ b/cabwest/Trooper_Gryfkyz.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Looking for a challenging fray? Perhaps there is a combatant waiting for a duel within the Gauntlet."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Trooper_Hylpik.lua b/cabwest/Trooper_Hylpik.lua new file mode 100644 index 0000000..ff71639 --- /dev/null +++ b/cabwest/Trooper_Hylpik.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("You look a bit encumbered. You should visit The Block."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Trooper_Moggoz.lua b/cabwest/Trooper_Moggoz.lua new file mode 100644 index 0000000..22c61d8 --- /dev/null +++ b/cabwest/Trooper_Moggoz.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("I have heard stories that there is a lost valley of great treasures within the Dreadlands. Some say it was there the Green Death first arose."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Trooper_Ogmire.lua b/cabwest/Trooper_Ogmire.lua new file mode 100644 index 0000000..3fcbf87 --- /dev/null +++ b/cabwest/Trooper_Ogmire.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("sign the restraining order")) then + e.self:Say("I knew my wicked ways would eventually come to an end. Very well, then. Hand me the legion order and I shall sign it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18245})) then --Legion Order (5 signed) + e.self:Emote("signs the order and hands it back to you."); + e.other:QuestReward(e.self,0,0,0,0,18246); --Legion Order (6 signed) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabwest/Trooper_Ozlot.lua b/cabwest/Trooper_Ozlot.lua new file mode 100644 index 0000000..6ddafb2 --- /dev/null +++ b/cabwest/Trooper_Ozlot.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, citizen! If it is a good time you are seeking, you should head toward the tavern. You can't miss it. There is only one. The emperor says we should spend most of our time training, not in revelry. We troopers try."); + elseif(e.message:findi("sign the restraining order")) then + e.self:Say("I do not believe you were sent by the legion. You do not look as though you could squash a kitten or even a bug. If you truly were sent, then you should be able to hunt down a sabertooth kitten. Tell you what, you bring me two sabertooth kitten canines and the legion order and I shall believe you. Only then will I sign the order for you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I told you that I need two sabertooth kitten canines and the legion order."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18246, item2 = 12670, item3 = 12670},1,text)) then --Legion Order (6 signed), Sabertooth Kitten Canine x 2 + e.self:Say("I suppose you were sent by the legion. I will sign. Here is the legion order back. Now, leave, so I can finish my watch."); + -- confirmed faction hits + e.other:Faction(e.self,441,2); --Legion of Cabilis + e.other:Faction(e.self,440,1); --Cabilis Residents + e.other:Faction(e.self,445,1); --Scaled Mystics + e.other:Faction(e.self,442,1); --Crusaders of Greenmist + e.other:Faction(e.self,444,1); --Swift Tails + e.other:QuestReward(e.self,0,0,0,0,18247,800); --Legion Order (7 signed) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cabwest/Trooper_Ryzee.lua b/cabwest/Trooper_Ryzee.lua new file mode 100644 index 0000000..e7236a5 --- /dev/null +++ b/cabwest/Trooper_Ryzee.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("If you are searching for rare items. I would suggest the merchants of the Brood of Kotiz. They often carry rare trinkets from beyond the walls of Cabilis."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Trooper_Shyzin.lua b/cabwest/Trooper_Shyzin.lua new file mode 100644 index 0000000..38acc9e --- /dev/null +++ b/cabwest/Trooper_Shyzin.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("I am glad the crusaders assist with the patrols of Cabilis. Their powers of healing are always welcomed by the troopers."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Trooper_Tygar.lua b/cabwest/Trooper_Tygar.lua new file mode 100644 index 0000000..266b8b7 --- /dev/null +++ b/cabwest/Trooper_Tygar.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Can't you see I'm on duty?!! If you wish to converse. Might I suggest the Tink N' Babble tavern near the Temple of Terror?"); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Trooper_Xaxxot.lua b/cabwest/Trooper_Xaxxot.lua new file mode 100644 index 0000000..2197fc8 --- /dev/null +++ b/cabwest/Trooper_Xaxxot.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("The purchase of a water extractor would be wise for any lizard who expects to venture deep into the wilds of Kunark."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/Trooper_Yegmesh.lua b/cabwest/Trooper_Yegmesh.lua new file mode 100644 index 0000000..19f8f7b --- /dev/null +++ b/cabwest/Trooper_Yegmesh.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Have you heard the latest babble? Giant stingers which spew forth flames and fight with the tactics of a lizard are said to inhabit the Overthere."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/a_mortician.lua b/cabwest/a_mortician.lua new file mode 100644 index 0000000..9dbf876 --- /dev/null +++ b/cabwest/a_mortician.lua @@ -0,0 +1,25 @@ +--The mortician serves as a vendor and also as part of a few quests. I'm creating him for use in The Penance quest, which allows an iksar to replace their starting weapon if they've lost it. + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares at you with hollow eye sockets. As he opens his jaw to speak, you are overcome by the foul smell of a thousand rotted corpses. 'What is your desire, master?'"); + elseif(e.message:findi("mortar and pestle")) then --The Penance quest + e.self:Emote("moves with a mixture of creaks and clicks and produces a grotesque looking mortar and pestle set. He places the items in your hands and motions indicating you dismissal. You can feel the vile power of your god moving throughout the material that makes up the two items."); + e.other:SummonCursorItem(17092); -- Item: Grotesque Mortar and Pestle + elseif(e.message:findi("who.* king")) then + e.self:Say("Sss... All hail Emperor Vekin. He shall restore the glory of the Iksar Empire. He shall reclaim Old Sebilis and slay Trakanon! Hail the mighty Emperor Vekin or lose thy head!"); + elseif(e.message:findi("tower of death")) then + e.self:Say("The tower is the laboratory of the secluded Brood of Kotiz. We supply them with many slaves for their dark experiments and rituals. Its dark halls smell of rotted flesh from a multitude of creatures, even our own. It is said there is an entire chamber filled with the blood of a million. This is no place for a weak stomach. And the Brood does not welcome visitors."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cabwest/an_Iksar_hermit.lua b/cabwest/an_Iksar_hermit.lua new file mode 100644 index 0000000..05580bd --- /dev/null +++ b/cabwest/an_Iksar_hermit.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks at you with one good eye. His left eye is covered with pus. 'I seek a [great sorcerer]."); + elseif(e.message:findi("great sorcerer")) then + if(e.other:GetFactionValue(e.self) >= 300) then + e.self:Emote("hands you a flaxen hilt or handle of sorts. It has four round slots on one end. 'Insert within what used to be. Return it to me when all is complete. With it shall you gain your Sorcerer's Skullcap. Go and prove your knowledge."); + e.other:SummonCursorItem(12887); -- Item: A Flaxen Hilt -- bugged version so the quest won't be completeable -- 17195 is fixed version to make quest completeable + else + e.self:Say("Greatness comes from many deeds. You have more work to do."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "All is not complete. A cap and the rest, which was asked for, is required."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12886, item2 = 4266},1,text)) then + e.self:Emote("takes the flail and vanishes with a brilliant flash!! Within your hands appears a skullcap. You hear a voice echo through the cave. Well done. You are a formidable necromancer. We thank you."); + e.other:QuestReward(e.self,0,0,0,0,4267,10000); -- Item: Necromancer Skullcap + e.other:Faction(e.self,443,15); --Brood of Kotiz + e.other:Faction(e.self,441,5); --Legion of Cabilis -- need exact faction hit for Legion + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) -- return unused items +end diff --git a/cauldron/#Llara.lua b/cauldron/#Llara.lua new file mode 100644 index 0000000..59628bc --- /dev/null +++ b/cauldron/#Llara.lua @@ -0,0 +1,36 @@ +-- Part of Ghoulbane quest + +function event_say(e) + local qglobals = eq.get_qglobals(e.self,e.other); + + if(qglobals["Llara"] ~= nil) then + if(e.message:findi("kanthuk")) then + e.self:Say("I take it you're here to find out more about [Amstaf]."); + elseif(e.message:findi("amstaf")) then + e.self:Say("I've known Amstaf since he was a child. We grew up in the same city together. Ever since I've known him there's always been something [unusual] about him."); + elseif(e.message:findi("unusual")) then + e.self:Say("When we were growing up we used to venture outside the city gates. Some times we would encounter a wandering ghoul or an undead spirit of some sort. He was always able to quickly dismiss the undead being with very little effort. I [learned] many things growing up with Amstaf."); + elseif(e.message:findi("learn")) then + e.self:Say("Amstaf told me many things when we were younger. Once Amstaf told me that life isn't about how you get there, it's about where you end up. I miss my dear friend. Its been a long time since I've seen him. The night of the snowstorm I dreamt about him. I remember seeing Amstaf's face. I saw something I've never [seen] before."); + elseif(e.message:findi("see")) then + e.self:Say("I saw desperation. I spoke to many people who knew Amstaf trying to find out if anyone heard anything about that night. No one knew anything about it. When I had reached the dwarven hunting grounds I ran into a woman named Walnan. She kept rambling on and on about the power of the Orb and something about Magi`kot. I didn't understand what she was saying. She didn't know anything about my situation either, but she did tell me that there were others that may be able to help me. She told me that I should find [Ruathey]."); + elseif(e.message:findi("ruathey")) then + e.self:Say("Ruathey is known for her ability to look into people's souls and find truth. Though I wasn't able to find Amstaf, I was able to recover his sword. I believe that by having his sword I am closer to finding him. Take this note to Ruathey and tell her that I sent you."); + e.other:SummonCursorItem(2417); -- Item: Note to Ruathey + eq.delete_global("Llara"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2414})) then + e.self:Say("Oh my, this belongs to Amstaf! Where did you get it?"); + e.other:QuestReward(e.self,0,0,0,0,0,500); + eq.set_global("Llara","ghoul",0,"D30"); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EOF #Llara : Cauldron \ No newline at end of file diff --git a/cauldron/Captain_Klunga.lua b/cauldron/Captain_Klunga.lua new file mode 100644 index 0000000..7536d20 --- /dev/null +++ b/cauldron/Captain_Klunga.lua @@ -0,0 +1,34 @@ +function event_spawn(e) + eq.set_timer("playdead",1000); +end + +function event_timer(e) + if(e.timer == "playdead") then + e.self:SetAppearance(3); + eq.stop_timer("playdead"); + eq.set_timer("depop",3600000); + elseif(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12278},0)) then + eq.stop_timer("depop"); + eq.start(2); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +function event_waypoint_arrive(e) + if(e.wp == 1) then + eq.create_ground_object(12274, e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + elseif(e.wp ==2) then + e.self:SetNPCFactionID(79); + end +end + +-- EOF #Captain Klunga - Cauldron \ No newline at end of file diff --git a/cauldron/Conium_Darkblade.lua b/cauldron/Conium_Darkblade.lua new file mode 100644 index 0000000..9739fa3 --- /dev/null +++ b/cauldron/Conium_Darkblade.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You seek Conium Darkblade, do you? Often I am here. To test my [wasp poison], yes. Fewer aqua gobs there now are. Ha! A true rogue am I with no leader or guild. Just the wind and shadows and much treasure to be had."); + elseif(e.message:findi("wasp poison")) then + e.self:Say("Giant wasp venom made from the giant wasp venom sacs. An interest in poison we share? Need the insect venom, you do. It comes not cheap. My time is precious, my talent supreme... 30 Gold is my price and you must also provide me three giant wasp venom sacs."); + elseif(e.message:findi("who once owned it")) then + e.self:Say("The human who gave me the axe remains nameless. We were separated during the battle. If he ever got out of there with all his gold, I do not know. The only clue I know of is the axe itself. The words 'Top of the World' were once printed on its handle."); + elseif(e.message:findi("top of the world")) then + e.self:Say("High in the pass you can find Top of the World. It sits near the highest bridge. It is one of the newest additions to our community. It specializes in imported items for adventuring."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "There shall be no wasp venom until three giant wasp venom sacs and 30 gold coins cross my palm." + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13260,item2 = 13260,item3 = 13260,gold = 30}, 1, text)) then + e.self:Say("Take the giant wasp venom. Good or evil it is not. That is up to you."); + e.other:QuestReward(e.self,0,0,0,0,14024,500); -- Item: Giant Wasp Venom + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18955})) then + e.self:Say("So Lon has sworn allegiance to a temple. What a fool, but he is a skilled fool. My word is my bond and if he asks for the gem, then so be it. Unfortunately I traded it for a much-needed axe. It was in the middle of a dungeon and... well, that is a long story. If you want to get the gem, take this axe back to the [one who once owned it]."); + e.other:QuestReward(e.self,0,0,0,0,12366); -- Item: never stop chopping + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EOF Conium Darkblade \ No newline at end of file diff --git a/cauldron/Elmion_Hendrys.lua b/cauldron/Elmion_Hendrys.lua new file mode 100644 index 0000000..cde8590 --- /dev/null +++ b/cauldron/Elmion_Hendrys.lua @@ -0,0 +1,21 @@ +function event_say(e) + fac = e.other:GetFaction(e.self); + + if(fac < 7) then + if(e.message:findi("hail")) then + e.self:Say("How are you? Please rest. Have you [been wounded by the beasts] of this region."); + elseif(e.message:findi("wounded by the beast")) then + e.self:Say("Ah. Perhaps you should speak with Nyrien. Just inform him you [need to be healed]."); + elseif(e.message:findi("faldor hendrys")) then + e.self:Say("Ha!! You seek my foul brother, Faldor Hendrys?!! He is my half brother and has left to live with the vile half of his ancestry in Qeynos. No doubt he has decided to lend his talents to the local thieves' guild. Good luck finding him."); + end + else + e.self:Say("Your ways are considered vile to Faydark's Champions. Leave before my rage overcomes my restraint."); + end +end + +function event_signal(e) + e.self:Say("Pipe down, Ghil!! We have no quarrel with this adventurer."); +end + +-- EOF Elmion Hendrys \ No newline at end of file diff --git a/cauldron/Ghilanbiddle_Nylwadil.lua b/cauldron/Ghilanbiddle_Nylwadil.lua new file mode 100644 index 0000000..42a9099 --- /dev/null +++ b/cauldron/Ghilanbiddle_Nylwadil.lua @@ -0,0 +1,42 @@ +function event_say(e) + fac = e.other:GetFaction(e.self); + + if(fac < 7) then + if(e.message:findi("hail")) then + e.self:Say("What business do you have here?!! Trying to keep safe? Expecting us to fight your battles? Bah!!"); + elseif(e.message:findi("chalice of conquest")) then + e.self:Say("Looking for the chalice, are you? Ha!! I don't know where it is, but I know a [lost soul] who does and he could lead you right to it. He had a taste of it and now he can't get enough. He is sort of under the weather, or do I mean under the ground? Ha!!"); + elseif(e.message:findi("lost soul")) then + e.self:Say("The orc named Captain Klunga knows where it's buried. Unfortunately, his time on Norrath has passed. I happen to know two things... one, he is buried somewhere in this territory and two, I can [raise Klunga] and he can show you where the chalice is."); + elseif(e.message:findi("raise klunga")) then + e.self:Say("I can raise Captain Klunga if I have a portion of his blood, an item he once owned and the most important part, 100 gold coins!! Hehe!! A gnome's got to make a living, you know?"); + end + else + e.self:Say("You dare to speak to a member of the Eldritch Collective!! You had best leave before you find your soul displaced from your body."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "The deal was - an article of Klunga's and his blood along with my fee of 100 gold coins and you will have his resurrection." + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12280,item2 = 18946,gold = 100},1,text)) then + e.self:Say("Biggily boo, biggily borc.. Raise that stinky orc!! Bamm!! Okay!! It's done. Now all you have to do is find him in the spot where his soul left him and give him an orc shovel. Oh!! I didn't mention that? Oh, well. I'm sure you can find one.. somewhere. Now, get lost before I turn you into a toad!"); + -- verifed live faction + e.other:Faction(e.self,245, 5,0); -- Faction: Eldritch Collective + e.other:Faction(e.self,238, -1,0); -- Faction: Dark Reflection + e.other:Faction(e.self,239, -1,0); -- Faction: The Dead + e.other:Faction(e.self,255, 1,0); -- Faction: Gem Choppers + e.other:Faction(e.self,333, 1,0); -- Faction: King Ak'Anon + e.other:QuestReward(e.self,0,0,0,0,0,18000); + eq.unique_spawn(70072, 0, 0, -2133, -726, 156, 0); -- NPC: Captain Klunga + end + item_lib.return_items(e.self, e.other, e.trade); +end + +function event_signal(e) + e.self:Say("Ha!! One like that one stands no chance within this realm. The goblins shall skin him alive!!"); + eq.signal(70005, 5); -- NPC: Elmion_Hendrys +end + +-- EOF Ghilanbiddle Nylwadil diff --git a/cauldron/Jinalis_Andir.lua b/cauldron/Jinalis_Andir.lua new file mode 100644 index 0000000..b4c3d65 --- /dev/null +++ b/cauldron/Jinalis_Andir.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Let us dispense with pleasantries, "..e.other:GetName()..". I am Jinalis, as you know. I imagine you want to control the Elements. The Element of Water, which I possess, is the most powerful of the Elements. With it you can control the water which falls from the Air, erodes the Earth, and extinguishes Fire. It is a pity you do not focus on the Prime Element, but if you wish to follow that fool Magi'kot to your doom, I will not stop you. Bring me the Staff of Elemental Mastery: Water held by the last of the Kedge, the Tears of Erollisi held by a dirty and rotten officer across the Blessed Deep, and finally, the Rain of Karana, found on a mighty Giant in, where else, the Karanas."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 11569,item2 = 28040,item3 = 28041})) then + e.self:Say("You have the control needed in order to manipulate the water which surrounds us. Take this Element and guard it well, you will need it in the times to come."); + e.other:QuestReward(e.self,0,0,0,0,28006,3000); -- Item: Element of Water + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone: cauldron -- Jinalis_Andir + diff --git a/cauldron/Nyrien_Lyrdarniel.lua b/cauldron/Nyrien_Lyrdarniel.lua new file mode 100644 index 0000000..6cddbaa --- /dev/null +++ b/cauldron/Nyrien_Lyrdarniel.lua @@ -0,0 +1,20 @@ +function event_say(e) + fac = e.other:GetFaction(e.self); + + if(fac < 7) then + if(e.message:findi("hail")) then + e.self:Say("Greetings, my friend! You may rest here if you like. There are many dangers in this land. May Tunare watch over you when you depart our camp."); + eq.signal(70007,5); -- NPC: Ghilanbiddle_Nylwadil + elseif(e.message:findi("healed")) then + e.self:Say("I see. Then sit and rest a while. I must conserve my strength for our own interests. When you are ready to leave, go and ask Sigan to [escort you to the pass]. There, you can leave this dangerous land."); + end + else + e.self:Say("You have some nerve to approach a loyal member of the Paladins of Tunare! Run, while you can!"); + end +end + +function event_signal(e) + e.self:Say("Leave our new friend alone, Ghilanbiddle. He is quite welcome to rest amongst us."); +end + +-- EOF Nyrien Lyrdarniel \ No newline at end of file diff --git a/cauldron/Sigan_Ilbirkun.lua b/cauldron/Sigan_Ilbirkun.lua new file mode 100644 index 0000000..834e697 --- /dev/null +++ b/cauldron/Sigan_Ilbirkun.lua @@ -0,0 +1,17 @@ +function event_say(e) + fac = e.other:GetFaction(e.self); + + if(fac < 7) then + if(e.message:findi("hail")) then + e.self:Say("Hail!! You are welcome to rest here."); + eq.signal(70007,5); -- NPC: Ghilanbiddle_Nylwadil + elseif(e.message:findi("escort")) then + e.self:Say("Yes. Follow me closely!!"); + eq.move_to(-143, 1203, 142, 0,false); + end + else + e.self:Say("Your shifty eyes tell me that you are no ally of the Stormguard."); + end +end + +-- EOF Sigan Ilbirku \ No newline at end of file diff --git a/cazicthule/Gimlik_Cogboggle.lua b/cazicthule/Gimlik_Cogboggle.lua new file mode 100644 index 0000000..3646a5c --- /dev/null +++ b/cazicthule/Gimlik_Cogboggle.lua @@ -0,0 +1,8 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Well met, noble soul! I'm Gimlik Cogboggle. You are correct, the Gimlik Cogboggle, renowned adventurer, scholar, and yes... creator of spells. Please don't goggle or touch. Your opportunity has arrived, my friend. I was sent here to complete a very important task and for that, I will need some slight assistance. If you will be kind enough to follow me, I'll show you to your doom... err... get this show on the road. Just let me know when you're ready."); + elseif ( e.message:findi("I am ready") ) then + eq.spawn2(48402, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + eq.depop_with_timer(); + end +end diff --git a/cazicthule/a_horror_construct.lua b/cazicthule/a_horror_construct.lua new file mode 100644 index 0000000..1b2e71b --- /dev/null +++ b/cazicthule/a_horror_construct.lua @@ -0,0 +1,15 @@ +function event_spawn(e) + eq.set_timer("depop", 500000); +end + +function event_timer(e) + eq.depop(); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/cazicthule/a_living_void.lua b/cazicthule/a_living_void.lua new file mode 100644 index 0000000..a2038c8 --- /dev/null +++ b/cazicthule/a_living_void.lua @@ -0,0 +1,11 @@ +function event_trade(e) + local item_lib = require("items"); + + if ( item_lib.check_turn_in(e.self, e.trade, {item1 = 8720}, 0) ) then -- Phobonomicon of Thul Tae Ew + eq.zone_emote(7, "A loud explosion sends ripples of energy through the air! Matter seems to lose its substance, but quickly solidifies. A shriek fills your ears, followed by the pounding sound of drums!"); + eq.spawn2(48376, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- a_horror_construct + eq.depop_with_timer(); + end + + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/cazicthule/encounters/BlackOoze.lua b/cazicthule/encounters/BlackOoze.lua new file mode 100644 index 0000000..1cd9a8d --- /dev/null +++ b/cazicthule/encounters/BlackOoze.lua @@ -0,0 +1,23 @@ +local BROWN_TYPES = { + 48089, -- a_Thul_Tae_Ew_zealot + 48383, -- A_Thul_Tae_Ew_Tracker + 48398, -- a_Thul_Tae_Ew_protector + 48106, -- a_Thul_Tae_Ew_lifestealer + 48084, -- a_Thul_Tae_Ew_justicar + 48054, -- a_Thul_Tae_Ew_judicator + 48401, -- A_Thul_Tae_Ew_Hunter + 48382, -- A_Thul_Tae_Ew_Hunter + 48109, -- a_Thul_Tae_Ew_fanatic + 48083, -- a_Thul_Tae_Ew_defender + 48103, -- a_Thul_Tae_Ew_bloodcaller +}; +function event_encounter_load(e) + + for _, id in ipairs(BROWN_TYPES) do + eq.register_npc_event("BlackOoze", Event.death, id, function(e) + if ( math.random(1, 2) == 1 ) then + eq.spawn2(48371, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + end + end); + end +end diff --git a/cazicthule/encounters/GnomeEscort.lua b/cazicthule/encounters/GnomeEscort.lua new file mode 100644 index 0000000..b057fda --- /dev/null +++ b/cazicthule/encounters/GnomeEscort.lua @@ -0,0 +1,226 @@ +local STOP_TEXT = { + "Now this looks like a mask! Give me a moment to draw this thing in my journal. It will only take a second. I'm a genius you know, though my job is very difficult.", + "My map is paying off. This mask is just where they said it would be. Just give me a minute to scribble this down and we'll continue. Please continue to scan the room. I'll feel much better if you're eaten first... err... if you watch my back.", + "Oh joy, there's nothing down this hallway. That will teach me to follow you again. Let me look at my map and see if I can undo your handy work. One moment please. Shheeesh!", + "Well, that was a nice little trek. Take a breather while I note this area in my journal. I know that you must be tired. I haven't seen a head as large as yours in quite some time. Lean it against the wall or something. We'll need to leave in a moment.", + "You're doing a great job! I'll just need a moment to make a few notes. Feel free to stand there and defend me with your life. Really, I don't mind the attention. If you see a monster, just yell. I'll be right behind you.", + "Well look at this thing! A splendid example of a Tae Ew sacrificial death mask or something. At first glance, this thing looked like beautifully carved wood, but alas it is just skin.", + "Well, here we are. See, you didn't even have to break a sweat. I'm all ready to... hmm... wait, I seem to have dropped my favorite quill. Did you pick it up by chance? I'll add a little something to your payment if you did.", +}; + +-- H1-H2-H4-H3-H5-C +-- H1-C-H2-H3-H4-H5 +-- H1-C-H2-H4-H3-H5 +local ROUTES = { + { 1, 2, 5, 8, 7, 10, 13 }, + { 1, 3, 12, 4, 6, 9, 11 }, + { 1, 3, 12, 5, 8, 7, 11 }, +}; +local GRIDS = { + [1] = { -- pyramid to H1 + g = 81, + endWp = 17, + stopText = 1, + ambush = 1, + }, + [2] = { -- H1 to H2 + g = 82, + endWp = 24, + stopText = 2, + ambush = 2, + }, + [3] = { -- H1 to C + g = 83, + endWp = 15, + stopText = 6, + ambush = 6, + }, + [4] = { -- H2 to H3 + g = 84, + endWp = 22, + stopText = 3, + ambush = 3, + }, + [5] = { -- H2 to H4 + g = 85, + endWp = 34, + stopText = 4, + ambush = 4, + }, + [6] = { -- H3 to H4 + g = 86, + endWp = 30, + stopText = 4, + ambush = 4, + }, + [7] = { -- H3 to H5 + g = 87, + endWp = 30, + stopText = 5, + ambush = 5, + }, + [8] = { -- H4 to H3 + g = 88, + endWp = 23, + stopText = 3, + ambush = 3, + }, + [9] = { -- H4 to H5 + g = 89, + endWp = 11, + stopText = 5, + ambush = 5, + }, + [10] = { -- H5 to C + g = 90, + endWp = 29, + stopText = 6, + ambush = 6, + }, + [11] = { -- H5 to pyramid + g = 91, + endWp = 18, + stopText = 7, + }, + [12] = { -- C to H2 + g = 92, + endWp = 6, + stopText = 2, + ambush = 2, + }, + [13] = { -- C to pyramid + g = 93, + endWp = 13, + stopText = 7, + }, +}; +local AMBUSHES = { + { x = -440, y = 27, z = 3, g = 94 }, + { x = -374, y = -5, z = 3, g = 95 }, + { x = -237, y = -37, z = 3, g = 96 }, + { x = -91, y = 329, z = 3.7, g = 97 }, + { x = -251, y = 536, z = 3, g = 98 }, + { x = -400, y = 62, z = 4.3, g = 0 }, +}; +local BROWN1_TYPE = 48382; +local BROWN2_TYPE = 48401; +local GREEN1_TYPE = 48379; +local GREEN2_TYPE = 48400; +local TRACKER_TYPE = 48383; +local LIZARD_TYPES = { BROWN1_TYPE, BROWN2_TYPE, GREEN1_TYPE, GREEN2_TYPE, TRACKER_TYPE }; +local GNOME_TYPE = 48402; +local PAUSE_TIMER = 118000; + +local route, segment, spawnedTracker, eventComplete; + +function GnomeSpawn(e) + e.self:Say("Well look at you! You see, you're off to a great start! Now, just follow me and yell out if something stabs you or maims you in anyway. Never fear, I've memorized gate and have complete confidence in your ability to fend off danger for at least five seconds. Follow me... follow me."); + route = math.random(1, #ROUTES); + segment = 1; + spawnedTracker = false; + eventComplete = false; + e.self:AssignWaypoints(GRIDS[ROUTES[route][segment]].g); +end + +function GnomeWaypointArrive(e) + if ( e.wp == GRIDS[ROUTES[route][segment]].endWp ) then + + e.self:Say(STOP_TEXT[GRIDS[ROUTES[route][segment]].stopText]); + + if ( segment == 7 ) then + -- escort ended + eventComplete = true; + eq.set_timer("depop", 1800000); + else + eq.set_timer("pause", PAUSE_TIMER); + + local ambushType = math.random(1, 4); + local ambush = AMBUSHES[GRIDS[ROUTES[route][segment]].ambush]; + + if ( ambushType == 1 ) then + eq.spawn2(BROWN1_TYPE, ambush.g, 0, ambush.x, ambush.y, ambush.z, 0); + if ( math.random(100) > 50 ) then + eq.spawn2(BROWN1_TYPE, ambush.g, 0, ambush.x, ambush.y, ambush.z, 0); + end + elseif ( ambushType == 2 ) then + eq.spawn2(BROWN2_TYPE, ambush.g, 0, ambush.x, ambush.y, ambush.z, 0); + if ( math.random(100) > 50 ) then + eq.spawn2(BROWN2_TYPE, ambush.g, 0, ambush.x, ambush.y, ambush.z, 0); + end + elseif ( ambushType == 3 ) then + local num = math.random(5, 6); + for i = 1, num do + eq.spawn2(GREEN1_TYPE, ambush.g, 0, ambush.x + math.random(-2, 2), ambush.y + math.random(-2, 2), ambush.z + math.random(-2, 2), 0); + end + elseif ( ambushType == 4 ) then + local num = math.random(3, 4); + for i = 1, num do + eq.spawn2(GREEN2_TYPE, ambush.g, 0, ambush.x + math.random(-2, 2), ambush.y + math.random(-2, 2), ambush.z + math.random(-2, 2), 0); + end + end + end + end +end + +function GnomeTimer(e) + if ( e.timer == "pause" ) then + e.self:Say("Alrighty, off we go!"); + + if ( segment == 6 and not spawnedTracker ) then + e.self:Say("Ack ack ack! Eat them not me!"); + eq.spawn2(TRACKER_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + spawnedTracker = true; + eq.set_timer("pause", PAUSE_TIMER); + return; + end + segment = segment + 1; + e.self:AssignWaypoints(GRIDS[ROUTES[route][segment]].g); + eq.stop_timer("pause"); + + elseif ( e.timer == "depop" ) then + eq.depop(); + end +end + +function GnomeTrade(e) + local item_lib = require("items"); + + if ( eventComplete and item_lib.check_turn_in(e.self, e.trade, {item1 = 8723}, 0) ) then -- A Tiny Metal Quill + e.self:Emote("begins to cast a spell. Gimlik says, 'Well, you've got a good eye on you for being so daft. Thank you for returning my quill. Take care!' Gimlik gates."); + -- Tiny Gear Shaped Earring, Rough Steel Cog Earring, Iron Cog Earring, Shiny Cog Earring, Cogboggle's Clockwork Contraption + e.other:QuestReward(e.self, 0, 0, 0, 0, eq.ChooseRandom(8726, 8727, 8728, 8729, 8730)); + e.other:GiveCash(0, 0, 0, math.random(2, 7) * 5); + eq.depop(); + end + + item_lib.return_items(e.self, e.other, e.trade); +end + +function LizardSpawn(e) + eq.set_timer("depop", 600000); +end + +function LizardTimer(e) + eq.depop(); +end + +function LizardCombat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("GnomeEscort", Event.waypoint_arrive, GNOME_TYPE, GnomeWaypointArrive); + eq.register_npc_event("GnomeEscort", Event.spawn, GNOME_TYPE, GnomeSpawn); + eq.register_npc_event("GnomeEscort", Event.timer, GNOME_TYPE, GnomeTimer); + eq.register_npc_event("GnomeEscort", Event.trade, GNOME_TYPE, GnomeTrade); + + for _, typeId in ipairs(LIZARD_TYPES) do + eq.register_npc_event("GnomeEscort", Event.spawn, typeId, LizardSpawn); + eq.register_npc_event("GnomeEscort", Event.timer, typeId, LizardTimer); + eq.register_npc_event("GnomeEscort", Event.combat, typeId, LizardCombat); + end +end diff --git a/cazicthule/encounters/RingOfFear.lua b/cazicthule/encounters/RingOfFear.lua new file mode 100644 index 0000000..947f44d --- /dev/null +++ b/cazicthule/encounters/RingOfFear.lua @@ -0,0 +1,450 @@ +local GOVERNOR_TYPE = 48129; -- using 'InterpreterZero' for this, but can be anything that's always up +local HIGH_PRIEST_TYPE = 48093; +local WARDER_TYPE = 48099; +local GUARD_KHATARUSS_TYPE = 48395; +local GUARD_THRASCISS_TYPE = 48397; +local GUARD_SCITHISS_TYPE = 48396; +local TAHIA_TYPE = 48057; +local UNSTABLE_RIFT_TYPE = 48403; +local JUSTICAR_TYPE = 48001; +local FAKE_DREAD_TYPE = 48404; +local FAKE_FEAR_TYPE = 48405; +local FAKE_FRIGHT_TYPE = 48406; +local FAKE_TERROR_TYPE = 48407; +local REAL_DREAD_TYPE = 48391; +local REAL_FEAR_TYPE = 48394; +local REAL_FRIGHT_TYPE = 48392; +local REAL_TERROR_TYPE = 48393; +local AMYGDALAN_KNIGHT_TYPE = 48388; +local GORGON_TYPE = 48375; +local SHIVERBACK_TYPE = 48377; +local SPINECHILLER_TYPE = 48378; +local TENTACLE_TYPE = 48380; +local DESPAWNERS = { REAL_DREAD_TYPE, REAL_FEAR_TYPE, REAL_FRIGHT_TYPE, REAL_TERROR_TYPE, AMYGDALAN_KNIGHT_TYPE, + GORGON_TYPE, SHIVERBACK_TYPE, SPINECHILLER_TYPE, TENTACLE_TYPE }; +local TAHIA_SPAWNID = 326900; +local JUSTICAR_SPAWNIDS = { [326896] = 1, [326897] = 1, [326898] = 1, [326899] = 1 }; + +local MOVES = { + { x = 550, y = 1035, z = -93, h = 0, pause = 52000 }, + { x = 550, y = 1130, z = -93, h = 64, pause = 52000 }, + { x = 625, y = 1130, z = -93, h = 128, pause = 52000 }, + { x = 625, y = 1035, z = -93, h = 192, pause = 52000 }, + { x = 591, y = 1035, z = -93, h = 0, pause = 52000 }, +}; + +local SPHERE_SPAWN = { x = 587, y = 1091, z = -75, h = 128 }; +local guardSpawn, fakeCazic, currentMove, wave, doFear, runes, spawnBoss, warder; + +function GovernorSignalEvent(e) + + if ( e.signal == 1 ) then + + local tahia = eq.get_entity_list():GetNPCByNPCTypeID(TAHIA_TYPE); + if ( tahia.valid ) then + tahia:SetAppearance(0); -- stand + tahia:MoveTo(570, 1000, -94, 0, true); + eq.set_timer("pause1", 18000, tahia); + eq.set_timer("pause1", 63000); + end + end +end + +function GovernorTimerEvent(e) + if ( e.timer == "pause1" ) then + eq.stop_timer("pause1"); + eq.zone_emote(7, "The walls of the temple begin to crack as the ground beneath your feet shakes violently."); + eq.set_timer("pause2", 47000); + + elseif ( e.timer == "pause2" ) then + eq.stop_timer("pause2"); + eq.set_timer("pause3", 47000); + + local npcList = eq.get_entity_list():GetNPCList(); + if ( npcList ) then + + for npc in npcList.entries do + + if ( npc.valid and JUSTICAR_SPAWNIDS[npc:GetSpawnPointID()] ) then + npc:Emote("looks panicked as planar forces shoot through its body."); + npc:CastSpell(2127, npc:GetID()); -- Tragedy at Cazic Thule + eq.set_timer("die", 15100, npc); + end + end + end + + elseif ( e.timer == "pause3" ) then + eq.stop_timer("pause3"); + eq.set_timer("pause4", 10000); + local mob = eq.spawn2(UNSTABLE_RIFT_TYPE, 0, 0, SPHERE_SPAWN.x, SPHERE_SPAWN.y, SPHERE_SPAWN.z + 5, SPHERE_SPAWN.h); + mob:Emote("glows, and then dissipates"); + eq.zone_emote(7, "A piercing, disembodied scream echoes from deep within the temple. Your body begins to tremble uncontrollably with fear."); + mob:CastSpell(2128, mob:GetID()); -- spell:Avatar of Fear + warder = eq.spawn2(WARDER_TYPE, 0, 0, 575, 875, -66.2, 21); + + elseif ( e.timer == "pause4" ) then + eq.stop_timer("pause4"); + eq.depop_all(UNSTABLE_RIFT_TYPE); + fakeCazic = eq.spawn2(FAKE_FEAR_TYPE, 0, 0, SPHERE_SPAWN.x, SPHERE_SPAWN.y, SPHERE_SPAWN.z, SPHERE_SPAWN.h); + eq.set_timer("pause1", 3000, fakeCazic); + end +end + +function JusticarTimerEvent(e) + if ( e.timer == "die" ) then + eq.depop_with_timer(); + end +end + +function TahiaTimerEvent(e) + if ( e.timer == "pause1" ) then + eq.stop_timer("pause1"); + e.self:Say("Brave adventurers, I am Tahia Felwah, and I owe you my life. I was to be a sacrifice to the faceless. Listen to my words carefully. There isn't much time now."); + eq.set_timer("pause2", 47000); + + elseif ( e.timer == "pause2" ) then + eq.stop_timer("pause2"); + e.self:Say("You have interrupted a complicated ritual and soon the rift to the Faceless will become unstable. I must collect three runes of the Faceless for my research. I have been appointed to uncover the source of these lizards' newfound power. If I fail, their kind will surely spread across the land and threaten the balance of Norrath."); + eq.set_timer("pause3", 47000); + + elseif ( e.timer == "pause3" ) then + eq.stop_timer("pause3"); + e.self:Say("This failed ritual presents a unique opportunity to gather the runes I desperately need. Recover the runes from the fallen minions of the faceless. When your need is greatest, hand me a rune and I will replenish you and your companions."); + eq.set_timer("pause4", 47000); + + elseif ( e.timer == "pause4" ) then + eq.stop_timer("pause4"); + e.self:Say("Prepare yourselves! You must repel the denizens of Fear itself! Good luck, brave souls. I will remain here until my task is fulfilled."); + e.self:SetAppearance(1); -- sit + e.self:SetSpecialAbility(24, 0); -- Will Not Aggro off + e.self:SetSpecialAbility(25, 0); -- Immune to Aggro off + e.self:SetSpecialAbility(35, 0); -- No Harm from Players off + e.self:SetBodyType(1, false); -- make targetable + + elseif ( e.timer == "lie" ) then + eq.stop_timer("lie"); + e.self:SetAppearance(3); + + elseif ( e.timer == "rejuv" ) then + eq.stop_timer("rejuv"); + e.self:CastSpell(2093, e.self:GetID()); -- Greater Rejuvenation + e.self:SetAppearance(1); + + elseif ( e.timer == "depop" ) then + e.self:Say("My rescuers, you have recovered the runes I need and my magic has been depleted. I shall take my leave now. May your forces stand against the corruption of the temple."); + eq.depop_with_timer(); + end +end + +function TahiaTradeEvent(e) + local item_lib = require("items"); + + if ( item_lib.check_turn_in(e.self, e.trade, {item1 = 8234}, 0) ) then -- Rune of the Faceless + e.self:SetAppearance(0); + e.self:Say("Wonderful! This is precisely what I am seeking. May my magic heal your mind and body."); + eq.set_timer("rejuv", 1000); + runes = runes + 1; + + if ( runes > 2 ) then + eq.set_timer("depop", 10000); + end + end + + item_lib.return_items(e.self, e.other, e.trade); +end + +function HighPriestSpawnEvent(e) + + local elist = eq.get_entity_list(); + + for id in pairs(JUSTICAR_SPAWNIDS) do + elist:GetSpawnByID(id):SetTimer(1); + end + elist:GetSpawnByID(TAHIA_SPAWNID):SetTimer(1); + guardSpawn = false; +end + +function HighPriestCombatEvent(e) + + eq.get_entity_list():GetNPCByNPCTypeID(TAHIA_TYPE):SetAppearance(3); + + if ( not guardSpawn and e.joined ) then + + local mob; + mob = eq.unique_spawn(GUARD_KHATARUSS_TYPE, 0, 0, 595, 960, -84, 0); + if ( mob ) then + mob:CastToNPC():MoveTo(594, 1020, -94, 0, true); + mob:SetRunning(true); + end + mob = eq.unique_spawn(GUARD_THRASCISS_TYPE, 0, 0, 595, 932, -65, 0); + if ( mob ) then + mob:CastToNPC():MoveTo(594, 1020, -94, 0, true); + mob:SetRunning(true); + end + mob = eq.unique_spawn(GUARD_SCITHISS_TYPE, 0, 0, 595, 916, -60, 0); + if ( mob ) then + mob:CastToNPC():MoveTo(594, 1020, -94, 0, true); + mob:SetRunning(true); + end + elseif ( not e.joined ) then + eq.depop(GUARD_KHATARUSS_TYPE); + eq.depop(GUARD_THRASCISS_TYPE); + eq.depop(GUARD_SCITHISS_TYPE); + end +end + +function HighPriestTimerEvent(e) + if ( e.timer == "guards" ) then + guardSpawn = false; + eq.stop_timer("guards"); + end +end + +function HighPriestDeathEvent(e) + eq.signal(GOVERNOR_TYPE, 1); +end + +function GuardDeath(e) + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(HIGH_PRIEST_TYPE) ) then + guardSpawn = true; + eq.set_timer("guards", 1800000, eq.get_entity_list():GetMobByNpcTypeID(HIGH_PRIEST_TYPE)); + end +end + +function FearAvatarTimerEvent(e) + if ( e.timer == "movenext" ) then + + currentMove = currentMove + 1; + + if ( not MOVES[currentMove] ) then + currentMove = 1; + wave = wave + 1; + end + + local coords = MOVES[currentMove]; + local pause = coords.pause; + if ( wave == -1 ) then + pause = 5000; + end + + if ( wave > 0 and currentMove == 1 ) then + + SpawnWave(); + + if ( wave == 2 or wave == 5 or wave == 8 or wave == 11 ) then + eq.set_timer("boss", 9000); + + if ( wave ~= 11 ) then + eq.stop_timer("movenext"); + return; + end + end + end + + e.self:MoveTo(coords.x, coords.y, coords.z, coords.h, true); + eq.set_timer("movenext", pause); + + elseif ( e.timer == "boss" ) then + eq.stop_timer("boss"); + + if ( wave == 2 or wave == 5 or wave == 8 ) then + e.self:MoveTo(SPHERE_SPAWN.x, SPHERE_SPAWN.y, SPHERE_SPAWN.z, SPHERE_SPAWN.h, true); + currentMove = 4; + spawnBoss = true; + return; + elseif ( wave == 11 ) then + ActivateAvatar(FAKE_DREAD_TYPE, REAL_DREAD_TYPE); + end + + elseif ( e.timer == "pause1" ) then + eq.stop_timer("pause1"); + eq.set_timer("pause2", 60000); + -- make avatar of fear walk animate here; dunno how + + elseif ( e.timer == "pause2" ) then + eq.stop_timer("pause2"); + e.self:Shout("Minions of fear, hear me now! The temple of the great Cazic-Thule has been defiled. I summon you to assist me in its cleansing!"); + currentMove = 4; + wave = -1; + runes = 0; + doFear = false; + eq.set_timer("movenext", 100); + end +end + +function FearAvatarWaypointArrived(e) + + if ( doFear ) then + -- waypoint after leaving bubble + + if ( wave == 2 ) then + fakeCazic:Shout("Lord Cazic, grant me the power to enstill fear in our enemies!"); + elseif ( wave == 5 ) then + fakeCazic:Shout("Lord Cazic, empower me with the might to destroy the unbelievers!"); + elseif ( wave == 8 ) then + fakeCazic:Shout("Lord Cazic, may your temple run red with the blood of the infidels!"); + end + + fakeCazic:CastSpell(2128, e.self:GetID()); -- spell:Avatar of Fear + doFear = false; + end + + if ( spawnBoss ) then + -- fear avatar entered bubble + + spawnBoss = false; + eq.set_timer("movenext", 1000); + + local elist = eq.get_entity_list(); + + if ( wave == 2 ) then + + fakeCazic:Shout("In the name of the fearful one, I call forth from the abyss... DREAD!"); + local npc = eq.spawn2(FAKE_DREAD_TYPE, 0, 0, SPHERE_SPAWN.x, SPHERE_SPAWN.y, SPHERE_SPAWN.z, SPHERE_SPAWN.h):CastToNPC(); + npc:MoveTo(655, 1090, -89, 192, true); + + elseif ( wave == 5 ) then + + fakeCazic:Shout("In the name of the fearful one, I call forth from the abyss... FRIGHT!"); + local npc = eq.spawn2(FAKE_FRIGHT_TYPE, 0, 0, SPHERE_SPAWN.x, SPHERE_SPAWN.y, SPHERE_SPAWN.z, SPHERE_SPAWN.h):CastToNPC(); + npc:MoveTo(589, 1160, -89, 128, true); + + elseif ( wave == 8 ) then + + fakeCazic:Shout("In the name of the fearful one, I call forth from the abyss... TERROR!"); + local npc = eq.spawn2(FAKE_TERROR_TYPE, 0, 0, SPHERE_SPAWN.x, SPHERE_SPAWN.y, SPHERE_SPAWN.z, SPHERE_SPAWN.h):CastToNPC(); + npc:MoveTo(522, 1090, -89, 64, true); + end + + doFear = true; + end +end + +function SpawnWave() + fakeCazic:Shout("In the name of the faceless, I command you, the minions of fear, ARISE!"); + + local roll = math.random(1, 100); + if ( roll <= 12 ) then + eq.spawn2(SPINECHILLER_TYPE, 0, 0, 547, 1135, -93, 128); + eq.spawn2(SPINECHILLER_TYPE, 0, 0, 630, 1090, -93, 128); + eq.spawn2(SPINECHILLER_TYPE, 0, 0, 630, 1135, -93, 128); + eq.spawn2(SPINECHILLER_TYPE, 0, 0, 590, 1150, -93, 128); + eq.spawn2(SPINECHILLER_TYPE, 0, 0, 530, 1090, -93, 128); + eq.spawn2(SPINECHILLER_TYPE, 0, 0, 630, 1050, -93, 128); + eq.spawn2(SPINECHILLER_TYPE, 0, 0, 547, 1050, -93, 128); + eq.spawn2(SPINECHILLER_TYPE, 0, 0, 590, 1035, -93, 128); + elseif ( roll <= 23 ) then + eq.spawn2(TENTACLE_TYPE, 0, 0, 566, 1088, -93, 128); + eq.spawn2(TENTACLE_TYPE, 0, 0, 587, 1114, -93, 128); + eq.spawn2(TENTACLE_TYPE, 0, 0, 608, 1091, -93, 128); + eq.spawn2(TENTACLE_TYPE, 0, 0, 590, 1092, -97, 128); + eq.spawn2(TENTACLE_TYPE, 0, 0, 588, 1067, -93, 128); + elseif ( roll <= 34 ) then + eq.spawn2(TENTACLE_TYPE, 0, 0, 608, 1090, -92, 128); + eq.spawn2(TENTACLE_TYPE, 0, 0, 565, 1090, -92, 128); + eq.spawn2(TENTACLE_TYPE, 0, 0, 600, 1107, -92, 128); + eq.spawn2(TENTACLE_TYPE, 0, 0, 580, 1073, -92, 128); + eq.spawn2(TENTACLE_TYPE, 0, 0, 600, 1073, -92, 128); + elseif ( roll <= 52 ) then + eq.spawn2(SHIVERBACK_TYPE, 0, 0, 623, 1130, -93, 128); + eq.spawn2(SHIVERBACK_TYPE, 0, 0, 590, 1130, -93, 128); + eq.spawn2(SHIVERBACK_TYPE, 0, 0, 638, 1093, -93, 128); + eq.spawn2(SHIVERBACK_TYPE, 0, 0, 552, 1130, -93, 128); + eq.spawn2(SHIVERBACK_TYPE, 0, 0, 537, 1097, -93, 128); + elseif ( roll <= 56 ) then + eq.spawn2(SHIVERBACK_TYPE, 0, 0, 590, 1150, -93, 128); + eq.spawn2(SHIVERBACK_TYPE, 0, 0, 565, 1015, -93, 128); + eq.spawn2(SHIVERBACK_TYPE, 0, 0, 610, 1015, -93, 128); + elseif ( roll <= 74 ) then + eq.spawn2(AMYGDALAN_KNIGHT_TYPE, 0, 0, 580, 1055, -91.7, 128); + eq.spawn2(AMYGDALAN_KNIGHT_TYPE, 0, 0, 595, 1055, -91.7, 128); + eq.spawn2(AMYGDALAN_KNIGHT_TYPE, 0, 0, 565, 1055, -91.7, 128); + eq.spawn2(AMYGDALAN_KNIGHT_TYPE, 0, 0, 610, 1055, -91.7, 128); + elseif ( roll <= 78 ) then + eq.spawn2(AMYGDALAN_KNIGHT_TYPE, 0, 0, 645, 1090, -93, 128); + eq.spawn2(AMYGDALAN_KNIGHT_TYPE, 0, 0, 540, 1090, -93, 128); + eq.spawn2(AMYGDALAN_KNIGHT_TYPE, 0, 0, 590, 1150, -93, 128); + elseif ( roll <= 96 ) then + eq.spawn2(GORGON_TYPE, 0, 0, 629, 1132, -93, 128); + eq.spawn2(GORGON_TYPE, 0, 0, 543, 1132, -93, 128); + eq.spawn2(GORGON_TYPE, 0, 0, 546, 1050, -93, 128); + eq.spawn2(GORGON_TYPE, 0, 0, 590, 1025, -93, 128); + eq.spawn2(GORGON_TYPE, 0, 0, 632, 1050, -93, 128); + else + eq.spawn2(GORGON_TYPE, 0, 0, 630, 1050, -93, 128); + eq.spawn2(GORGON_TYPE, 0, 0, 547, 1050, -93, 128); + eq.spawn2(GORGON_TYPE, 0, 0, 590, 1035, -93, 128); + end +end + +function ActivateAvatar(fakeId, realId) + local npc = eq.get_entity_list():GetNPCByNPCTypeID(fakeId); + + if ( npc ) then + eq.spawn2(realId, 0, 0, npc:GetX(), npc:GetY(), npc:GetZ(), npc:GetHeading()); + eq.depop(fakeId); + end +end + +function DespawnerSpawnEvent(e) + eq.set_timer("depop", 74000); +end + +function DespawnerTimerEvent(e) + -- event fails if NPC is left unaggro + eq.depop_all(FAKE_DREAD_TYPE); + eq.depop_all(FAKE_FEAR_TYPE); + eq.depop_all(FAKE_FRIGHT_TYPE); + eq.depop_all(FAKE_TERROR_TYPE); + eq.depop_with_timer(TAHIA_TYPE); + if ( warder and warder.valid ) then + warder:Depop(); + warder = nil; + end + eq.depop(GUARD_KHATARUSS_TYPE); + eq.depop(GUARD_THRASCISS_TYPE); + eq.depop(GUARD_SCITHISS_TYPE); + eq.depop(); +end + +function DespawnerCombatEvent(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("RingOfFear", Event.timer, GOVERNOR_TYPE, GovernorTimerEvent); + eq.register_npc_event("RingOfFear", Event.signal, GOVERNOR_TYPE, GovernorSignalEvent); + + eq.register_npc_event("RingOfFear", Event.timer, JUSTICAR_TYPE, JusticarTimerEvent); + + eq.register_npc_event("RingOfFear", Event.timer, TAHIA_TYPE, TahiaTimerEvent); + eq.register_npc_event("RingOfFear", Event.trade, TAHIA_TYPE, TahiaTradeEvent); + eq.register_npc_event("RingOfFear", Event.spawn, TAHIA_TYPE, function(e) eq.set_timer("lie", 2000); end); + + eq.register_npc_event("RingOfFear", Event.combat, HIGH_PRIEST_TYPE, HighPriestCombatEvent); + eq.register_npc_event("RingOfFear", Event.timer, HIGH_PRIEST_TYPE, HighPriestTimerEvent); + eq.register_npc_event("RingOfFear", Event.spawn, HIGH_PRIEST_TYPE, HighPriestSpawnEvent); + eq.register_npc_event("RingOfFear", Event.death, HIGH_PRIEST_TYPE, HighPriestDeathEvent); + + eq.register_npc_event("RingOfFear", Event.timer, FAKE_FEAR_TYPE, FearAvatarTimerEvent); + eq.register_npc_event("RingOfFear", Event.waypoint_arrive, FAKE_FEAR_TYPE, FearAvatarWaypointArrived); + + eq.register_npc_event("RingOfFear", Event.death, REAL_DREAD_TYPE, function() ActivateAvatar(FAKE_FRIGHT_TYPE, REAL_FRIGHT_TYPE); end); + eq.register_npc_event("RingOfFear", Event.death, REAL_FRIGHT_TYPE, function() ActivateAvatar(FAKE_TERROR_TYPE, REAL_TERROR_TYPE); end); + eq.register_npc_event("RingOfFear", Event.death, REAL_TERROR_TYPE, function() ActivateAvatar(FAKE_FEAR_TYPE, REAL_FEAR_TYPE); end); + eq.register_npc_event("RingOfFear", Event.death, REAL_FEAR_TYPE, function() eq.depop_all(TAHIA_TYPE); end); + + eq.register_npc_event("RingOfFear", Event.death, GUARD_KHATARUSS_TYPE, GuardDeath); + eq.register_npc_event("RingOfFear", Event.death, GUARD_THRASCISS_TYPE, GuardDeath); + eq.register_npc_event("RingOfFear", Event.death, GUARD_SCITHISS_TYPE, GuardDeath); + + for _, typeId in ipairs(DESPAWNERS) do + eq.register_npc_event("RingOfFear", Event.spawn, typeId, DespawnerSpawnEvent); + eq.register_npc_event("RingOfFear", Event.timer, typeId, DespawnerTimerEvent); + eq.register_npc_event("RingOfFear", Event.combat, typeId, DespawnerCombatEvent); + end +end diff --git a/cazicthule/encounters/RingOfSlime.lua b/cazicthule/encounters/RingOfSlime.lua new file mode 100644 index 0000000..9021a53 --- /dev/null +++ b/cazicthule/encounters/RingOfSlime.lua @@ -0,0 +1,43 @@ +function AcidicMassSpawnEvent(e) + eq.set_timer("depop", 1800000); + eq.set_timer("add", 180000); + eq.spawn2(48390, 0, 0, -333, 148, -272, 0); -- an_acidic_ooze +end + +function AcidicMassTimerEvent(e) + if ( e.timer == "add" ) then + eq.spawn2(48390, 0, 0, -333, 148, -272, 0); + elseif ( e.timer == "depop" ) then + eq.depop(); + end +end + +function AcidicMassCombatEvent(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("RingOfSlime", Event.death, 48041, function(e) -- a_swirling_ooze (level 56, rooted) + eq.spawn2(48374, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + end); + eq.register_npc_event("RingOfSlime", Event.death, 48374, function(e) -- a_bubbling_ooze + eq.spawn2(48373, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + end); + eq.register_npc_event("RingOfSlime", Event.death, 48373, function(e) -- a_boiling_ooze + eq.spawn2(48389, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + end); + + -- an_acidic_mass + eq.register_npc_event("RingOfSlime", Event.spawn, 48389, AcidicMassSpawnEvent); + eq.register_npc_event("RingOfSlime", Event.timer, 48389, AcidicMassTimerEvent); + eq.register_npc_event("RingOfSlime", Event.combat, 48389, AcidicMassCombatEvent); + + -- an_acidic_ooze + eq.register_npc_event("RingOfSlime", Event.spawn, 48390, function(e) eq.set_timer("depop", 1800000); end); + eq.register_npc_event("RingOfSlime", Event.timer, 48390, AcidicMassTimerEvent); + eq.register_npc_event("RingOfSlime", Event.combat, 48390, AcidicMassCombatEvent); +end diff --git a/cazicthule/script_init.lua b/cazicthule/script_init.lua new file mode 100644 index 0000000..69b7905 --- /dev/null +++ b/cazicthule/script_init.lua @@ -0,0 +1,4 @@ +eq.load_encounter("BlackOoze"); +eq.load_encounter("GnomeEscort"); +eq.load_encounter("RingOfSlime"); +eq.load_encounter("RingOfFear"); diff --git a/charasis/#Venril_Sathir.lua b/charasis/#Venril_Sathir.lua new file mode 100644 index 0000000..f1173c7 --- /dev/null +++ b/charasis/#Venril_Sathir.lua @@ -0,0 +1,8 @@ +function event_death_complete(e) + eq.unique_spawn(105187,0,0,0,-673,8,0); -- NPC: the_spirit_of_Rile +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/charasis/A_Swirling_Bone_Mass.lua b/charasis/A_Swirling_Bone_Mass.lua new file mode 100644 index 0000000..8d02ca4 --- /dev/null +++ b/charasis/A_Swirling_Bone_Mass.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + eq.set_timer("depop",150000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.unique_spawn(105021,0,0,-5,-670,8,64); -- NPC: Venril_Sathir + eq.unique_spawn(105004,0,0,5,-670,8,192); -- NPC: Rile_Sathir + eq.depop(); + end +end diff --git a/charasis/An_Iksar_Apparition.lua b/charasis/An_Iksar_Apparition.lua new file mode 100644 index 0000000..dc3c3b2 --- /dev/null +++ b/charasis/An_Iksar_Apparition.lua @@ -0,0 +1,14 @@ +--Shaman Skull Quest 8 +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30994})) then --Iksar Relics + eq.unique_spawn(105007,82,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); --Vauris_Sathir + eq.unique_spawn(105186,0,0,-13,-658,8,100); --an Arisen Disciple + eq.unique_spawn(105183,0,0,13,-658,8,160); --an Arisen Priest + eq.unique_spawn(105184,0,0,13,-690,8,228); --an Arisen Necromancer + eq.unique_spawn(105185,0,0,-13,-690,8,34); --an Arisen Acolyte + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/charasis/Gandan_Tailfist.lua b/charasis/Gandan_Tailfist.lua new file mode 100644 index 0000000..ffa0456 --- /dev/null +++ b/charasis/Gandan_Tailfist.lua @@ -0,0 +1,24 @@ +--Gandan Tailfist is part of the quest line for the Whistling Fists + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("places a foul smelling book in your hands and speaks to you slowly. 'Take this rotting book given to me by lord Cazic Thule himself, I was given another but it has been lost. The search for the fists will be the end of me. If you are a monk of the final rung show me your Shackle of Tynnonium and I will share with you what I have found."); + e.other:SummonCursorItem(18899); -- Item: Flayed Skin Tome + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4199})) then + e.self:Say("The search for the fists has killed many so I hope that your strength is more than mine and those in the past. I was given this satchel by the lord Cazic Thule. I have searched for the fists in this place but they are not here. I suggest you seek audience with our lord. Tell him that I have failed in my task. I am sure that he ugnnnnnhnnn.' One last look to you is given before falling completely lifeless to the cold stone."); + e.other:QuestReward(e.self,{items = {17364,4199},exp = 20000}); -- Item: Shackle of Tynnonium + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/charasis/Vauris_Sathir.lua b/charasis/Vauris_Sathir.lua new file mode 100644 index 0000000..9847290 --- /dev/null +++ b/charasis/Vauris_Sathir.lua @@ -0,0 +1,10 @@ +function event_waypoint_arrive(e) + if(e.wp == 4) then + eq.unique_spawn(105018,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/charasis/Venril_Sathir.lua b/charasis/Venril_Sathir.lua new file mode 100644 index 0000000..dca253d --- /dev/null +++ b/charasis/Venril_Sathir.lua @@ -0,0 +1,27 @@ +local counting; + +function event_spawn(e) + eq.set_timer("combat",20000); + counting = 0; +end + +function event_timer(e) + if (e.timer == "combat") then + counting = counting + 1; + end + if(counting == 2) then + eq.attack_npc_type(105004); + elseif(counting == 3) then + eq.unique_spawn(105182,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.unique_spawn(105022,0,0,-13,-658,8,100); -- #an Arisen Disciple + eq.unique_spawn(105023,0,0,13,-658,8,160); -- #an Arisen Priest + eq.unique_spawn(105024,0,0,13,-690,8,228); -- #an Arisen Necromancer + eq.unique_spawn(105025,0,0,-13,-690,8,34); -- #an Arisen Acolyte + eq.depop(105004); + eq.depop(105186); + eq.depop(105183); + eq.depop(105184); + eq.depop(105185); + eq.depop(); + end +end diff --git a/charasis/the_spirit_of_Rile.lua b/charasis/the_spirit_of_Rile.lua new file mode 100644 index 0000000..a192e60 --- /dev/null +++ b/charasis/the_spirit_of_Rile.lua @@ -0,0 +1,17 @@ +--Shaman Skull Quest 8 +function event_trade(e) + local item_lib = require("items"); + local text = "Use your cudgel to unite my soul with my body " .. e.other:GetCleanName() .. ""; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30995, item2 = 5148},1,text)) then --Skull of Rile, Skyiron Cudgel of the Arison + e.self:Emote("begins to shudder and shake, the bones fly from your hands to meet their rightful soul. The spirit and bones being to glow and meld into one another, forming a swirling mass of ethereal energy. Abani begins to mouth incantations in an unfamiliar tongue. Their voice rises ever higher as mystic energy surges through the room. Then, in a suddenly flash, the spirit and corpse disappear without a trace, leaving only " .. e.other:GetCleanName() .. " holding a Faintly glowing Cudgel in his hand."); + e.other:QuestReward(e.self,0,0,0,0,5149); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/chardok/#Historian_Silren_Di-zok.lua b/chardok/#Historian_Silren_Di-zok.lua new file mode 100644 index 0000000..4b7b7c4 --- /dev/null +++ b/chardok/#Historian_Silren_Di-zok.lua @@ -0,0 +1,15 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:AddItem(67030,1); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/chardok/A_mix.lua b/chardok/A_mix.lua new file mode 100644 index 0000000..23c5660 --- /dev/null +++ b/chardok/A_mix.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("sulfur and dust hangs heavily in the air."); + eq.depop_with_timer(); +end diff --git a/chardok/Clanging_sounds.lua b/chardok/Clanging_sounds.lua new file mode 100644 index 0000000..40e8ff1 --- /dev/null +++ b/chardok/Clanging_sounds.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("of metal striking stone echo through the tunnel."); + eq.depop_with_timer(); +end diff --git a/chardok/Herald_Telcha.lua b/chardok/Herald_Telcha.lua new file mode 100644 index 0000000..d013616 --- /dev/null +++ b/chardok/Herald_Telcha.lua @@ -0,0 +1,72 @@ +-- quest for sarnak faction (give salts or gobling skins) +-- quest for Di'zok Signet of Service +-- which is the beginning of Regal Band of Bathezid +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail to you, lesser being! It is good to see you seeking the enlightenment and satisfaction that can only come from serving the Sarnak! Experience for yourself the joy of fealty to our Lord the Overking Bathezid Di'zok! I am Telcha, lesser apprentice sub-herald in training to the Court of Di'zok and I stand ready to welcome those who would serve our noble Overking. Are you here to [aid] us?"); + elseif(e.message:findi("aid")) then + e.self:Say("Ah, so good of you to strive to improve yourself! So often members of your pathetic lesser races plod along in ignorance, unaware of the most Noble empire of the Di'zok. Enough though of the chit-chat, as I'm sure you are most eager to make yourself useful! Before you may enter our worthy city and be looked upon as a valuable servant, you must prove your worth to our [cause]."); + elseif(e.message:findi("cause")) then + e.self:Say("The first task I shall set you is the slaying of goblins! Ooh, how very heroic you must feel to finally have a worthy goal guiding your previously menial existance! Yes, go forth from here and journey to Droga, stronghold of our enemies. Slay the warriors and menials of the Mountain Death Clan, bring havoc to their homes. Return to me with proof of your deeds, to raise in your standing with the Dizok. Bring me [tokens] of many dead goblins, and one day you shall walk among us."); + elseif(e.message:findi("token")) then + e.self:Say("As proof of your deeds I shall require either 2 Mountain Death mineral salts, or a patch of green goblin skin. Bring me many of these, as you bring destruction on the goblin city, and I shall speak to my superiors of your efforts on our behalf. Do enough for our cause, and I shall reward you directly. Return to me later and remind me that you serve the Sarnak, and I may have a ring for you if you are worthy."); + elseif(e.message:findi("serve the sarnak")) then + if(e.other:GetFaction(e.self) > 3) then -- amiably or lower + e.self:Say("Away with you! I am the herald of the Dizok Overking, here to greet the servants of my master. If you would walk within our city, go forth and prove yourself our ally by slaying our goblin enemies! Advance into our city at your own peril, as our soldiers regard you as a foe!"); + elseif(e.other:GetFaction(e.self) == 3) then -- Kindly + e.self:Say("You have not yet done enough service for the Sarnak Collective, and my Dizok Masters. Return to me when you have done more, and I may reward you with a ring of service."); + elseif((e.other:GetFaction(e.self) < 3) and (e.other:GetLevel() < 50)) then -- Warmly and lvl<50 + e.self:Say("What to do, what to do.. You've served the Di'zok well, young one but you are not yet experienced enough to wear the Signet of the Di'zok. Come back when you've seen a bit more of the world, and the ring shall be yours."); + elseif((e.other:GetFaction(e.self) < 3) and (e.other:GetLevel()> 49)) then -- Warmly and lvl>50 + e.self:Say("Indeed you do my friend, indeed you do! Walk among us in safety, wear this ring as a symbol of your service to our cause. Continue your efforts in our war on the goblins, and your rewards shall increase. Return to me your ring, along with the head of the Drogan Warlord Skargus, and I'll give you an even greater badge of honor. Good day to you, servant of the Sarnak."); + e.other:SummonCursorItem(5728); -- Di'zok Signet of Service + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6476, item2 = 5728})) then -- Head of Skargus & Di'Zok Signet of Service + e.self:Say("Ah hah! You are notworthy indeed amongst the servants of the Sarnak! Perhaps I should have you killed, before your deeds outdo mine.. Hmm.. Guards! Guards! Haha, do not panic menial being, in fact I am most impressed with your service. Here is the ring I promised you in exchange for your efforts."); + -- Confirmed Live Experience and Faction + e.other:Faction(e.self,451,500); -- Faction: Brood of Di`Zok + e.other:Faction(e.self,307,500); -- Faction: Sarnak Collective + e.other:Faction(e.self,259,-200); -- Faction: Goblins of Mountain Death + eq.delete_global("RegalBandBathezid"); + e.other:QuestReward(e.self,{items = {5727,5728},exp = 50000}); -- 5727 Regal Band of Bathezid, Di'zok Signet of Service + elseif((e.other:GetFaction(e.self) <= 1) and item_lib.check_turn_in(e.self, e.trade, {item1 = 5727})) then -- Regal band of Bathezid + e.other:QuestReward(e.self,0,0,0,0,5727); -- 5727 Regal Band of Bathezid + else + local salt = item_lib.count_handed_item(e.self, e.trade, {16972}, 2); -- Mt. Death Mineral Salts + local skin = item_lib.count_handed_item(e.self, e.trade, {22135}); -- Green Goblin Skin + if(salt > 0) then + repeat + e.self:Say("Ah, most excellent! You are sure to be more highly valued as our servant once I speak to my masters of this! Mountain Death Mineral Salts, they shall grace the Overkings table this very night! Be off, minion! Fetch us some more salts to prove your value!"); + -- Confirmed Live Experience and Faction + e.other:Faction(e.self,451,3); -- Faction: Brood of Di`Zok + e.other:Faction(e.self,307,3); -- Faction: Sarnak Collective + e.other:Faction(e.self,259,-1); -- Faction: Goblins of Mountain Death + e.other:QuestReward(e.self,{exp = 500}); + salt = salt -1; + until salt == 0; + end + if(skin > 0) then + repeat + e.self:Say("Green Goblin Skin! You have indeed been busy! I shall speak to my masters of this, continue your good work and return to me with more skins."); + -- Confirmed Live Experience and Faction + e.other:Faction(e.self,451,3); -- Faction: Brood of Di`Zok + e.other:Faction(e.self,307,3); -- Faction: Sarnak Collective + e.other:Faction(e.self,259,-1); -- Faction: Goblins of Mountain Death + e.other:QuestReward(e.self,{exp = 500}); + skin = skin - 1; + until skin == 0; + end + end + + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/chardok/Niblek.lua b/chardok/Niblek.lua new file mode 100644 index 0000000..42caa06 --- /dev/null +++ b/chardok/Niblek.lua @@ -0,0 +1,24 @@ +-- Part of quest for Veeshan's Peak key +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I Niblek. You want something from Niblek? Niblek find treasures in walls. Niblek like to trade treasures."); + elseif(e.message:findi("treasure")) then + e.self:Say("Niblek find piece of old jewelry! It very old, probably has much power!"); + elseif(e.message:findi("jewelry")) then + e.self:Say("Niblek likes shiny tings very much! You bring Niblek two shiny tings! Niblek has seen black sapphire and ruby! Niblek likes them very much!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10036, item2 = 10035})) then + e.self:Say("I much happy now!! I want shiny tings for long time! I give you ugly broken necklace now!"); + e.other:QuestReward(e.self,0,0,0,0,19964,1000); + end +end + +-- Quest by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/chardok/Queen_Velazul_Di-zok.lua b/chardok/Queen_Velazul_Di-zok.lua new file mode 100644 index 0000000..762c903 --- /dev/null +++ b/chardok/Queen_Velazul_Di-zok.lua @@ -0,0 +1,27 @@ +-- Spirit Wracked Cord +function event_say(e) + if(e.other:GetFaction(e.self) <= 1) then -- Only if you are ally with Sarnaks + if(e.message:findi("hail")) then + e.self:Say("Hail, minion! It is good to see a member of a lesser race striving to improve themself through service to the Dizok. We are feeling especially generous as of late, and if you would do us a [service], we shall reward you handsomely."); + elseif(e.message:findi("service")) then + e.self:Say("We are not sure you are worthy, but shall assign you this task in hopes you prove mighty enough to resolve it. Gather your broodlings about you, and journey to Charasis. There you shall find a Urn of spirits. We require this, as well as [additional components]."); + elseif(e.message:findi("additional components")) then + e.self:Say("Very well, if you feel you are up to it, lead your broodlings to fallen Sebilis and return to us with a portion of undead dragon sinew. Bring us the Sinew, the Urn, and your Regal Band of Bathezid as proof of service, and a worthy reward shall be yours."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + -- 6477 spirit wracked urn + -- 6478 undead dragon sinew + -- 5727 regal band of bathezid + if(e.other:GetFaction(e.self) <= 1 and item_lib.check_turn_in(e.self, e.trade, {item1 = 6477, item2 = 6478, item3 = 5727})) then + e.self:Say("Amazing! You have returned the trophies I asked for, against impossible odds. Here is your reward, worthy minion, may it serve you well."); + e.other:Faction(e.self,451,3); -- Faction: Brood of Di`Zok + e.other:Faction(e.self,307,3) + e.other:Faction(e.self,259,-1); -- Faction: Goblins of Mountain Death + e.other:QuestReward(e.self,{items = {5723,5727}, exp = 100000}); -- 5723 Spirit Wracked Cord, final reward, 5727 We get Regal Band of Bathezid back + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/chardok/The_clang.lua b/chardok/The_clang.lua new file mode 100644 index 0000000..8ed990f --- /dev/null +++ b/chardok/The_clang.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("of picks and shovels can be heard above the constant crack of whips."); + eq.depop_with_timer(); +end diff --git a/chardok/The_cries.lua b/chardok/The_cries.lua new file mode 100644 index 0000000..7ce8129 --- /dev/null +++ b/chardok/The_cries.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("of slaves echo through the dusty halls."); + eq.depop_with_timer(); +end diff --git a/chardok/The_earth.lua b/chardok/The_earth.lua new file mode 100644 index 0000000..9cfbd3c --- /dev/null +++ b/chardok/The_earth.lua @@ -0,0 +1,12 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 45, xloc + 45, yloc - 45, yloc + 45, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("at your feet erupts!"); + eq.spawn2(eq.ChooseRandom(103158,103158,103159),0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- NPC(s): a_Reanimated_Champion_ (103158), a_Reanimated_Champion_ (103158), a_Reanimated_Berserker_ (103159) + eq.depop_with_timer(); +end diff --git a/chardok/The_musty.lua b/chardok/The_musty.lua new file mode 100644 index 0000000..dce69fd --- /dev/null +++ b/chardok/The_musty.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("scent of sweat and labor wafts up from the tunnels below."); + eq.depop_with_timer(); +end diff --git a/chardok/The_sounds.lua b/chardok/The_sounds.lua new file mode 100644 index 0000000..e53b9d5 --- /dev/null +++ b/chardok/The_sounds.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("of hard labor ring from below as chains rattle above your head."); + eq.depop_with_timer(); +end diff --git a/chardok/The_stench.lua b/chardok/The_stench.lua new file mode 100644 index 0000000..189439b --- /dev/null +++ b/chardok/The_stench.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("of decaying flesh and freshly turned soil overpowers your other senses."); + eq.depop_with_timer(); +end diff --git a/chardok/The_thick.lua b/chardok/The_thick.lua new file mode 100644 index 0000000..4589dd7 --- /dev/null +++ b/chardok/The_thick.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("dust is beginning to clog your throat and nostrils."); + eq.depop_with_timer(); +end diff --git a/chardok/Your_feet_splash.lua b/chardok/Your_feet_splash.lua new file mode 100644 index 0000000..642b83d --- /dev/null +++ b/chardok/Your_feet_splash.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("through shallow puddles as you walk along."); + eq.depop_with_timer(); +end diff --git a/chardok/a_Reanimated_Berserker_.lua b/chardok/a_Reanimated_Berserker_.lua new file mode 100644 index 0000000..c40b22d --- /dev/null +++ b/chardok/a_Reanimated_Berserker_.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.set_timer("depop",900000); +end + +function event_timer(e) + eq.depop(); +end diff --git a/chardok/a_Reanimated_Champion_.lua b/chardok/a_Reanimated_Champion_.lua new file mode 100644 index 0000000..c40b22d --- /dev/null +++ b/chardok/a_Reanimated_Champion_.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.set_timer("depop",900000); +end + +function event_timer(e) + eq.depop(); +end diff --git a/check_all b/check_all new file mode 100644 index 0000000..e4e6108 --- /dev/null +++ b/check_all @@ -0,0 +1,10 @@ +#!/bin/sh +echo "Checking Lua scripts..." +find . -name "*.lua" \ +| while read s +do + if ! luac -p "$s" 2>/dev/null; then + echo "$s is invalid." + fi +done +echo "Script check completed." \ No newline at end of file diff --git a/citymist/#Lhranc.lua b/citymist/#Lhranc.lua new file mode 100644 index 0000000..1c8f257 --- /dev/null +++ b/citymist/#Lhranc.lua @@ -0,0 +1,23 @@ +-- Part of SK Epic 1.0 +function event_spawn(e) + eq.set_timer("Depop", 7200000); +end + +function event_death_complete(e) + eq.spawn2(90016,0,0,28.1,1.4,7,192.5); ----Marl Kastane +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + + +function event_timer(e) + eq.depop(); +end +-- Quest by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/citymist/#Lord_Rak-Ashiir.lua b/citymist/#Lord_Rak-Ashiir.lua new file mode 100644 index 0000000..e02ccec --- /dev/null +++ b/citymist/#Lord_Rak-Ashiir.lua @@ -0,0 +1,34 @@ +function event_spawn(e) + eq.set_timer("faction",5000); +end + +function event_timer(e) + if(e.timer == "faction") then + eq.set_proximity(e.self:GetX() - 45, e.self:GetX() + 45, e.self:GetY() - 45, e.self:GetY() + 45, e.self:GetZ() -5, e.self:GetZ() +5); + end +end + +function event_enter(e) + if(e.other:GetFactionValue(e.self) < 1800 and e.other:Admin() < 80) then + e.self:AddToHateList(e.other,1); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1673}, 0)) then + if(e.other:GetFactionValue(e.self) >= 1800) then + e.self:Emote("looks down at the tear in his hand and says 'A minion of my god came to me one night. I knew it was of Cazic-Thule as I was frozen in terror. My mind screamed for me to flee but my body would not respond. The being took my daughter and vanished to only he knew where. When I regained control of my body and thoughts, I felt nothing but betrayal. I don't care anymore about anything. If you want repentance then slay me, " .. e.other:GetName() .."."); + e.other:Faction(e.self,404,100); -- true spirit + e.other:QuestReward(e.self,0,0,0,0,0); + eq.spawn2(90014,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop() + else + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + eq.attack(e.other:GetName()); + e.other:QuestReward(e.self,0,0,0,0,1673); -- Item: Child's Tear + end + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/citymist/#Marl_Kastane.lua b/citymist/#Marl_Kastane.lua new file mode 100644 index 0000000..006a91c --- /dev/null +++ b/citymist/#Marl_Kastane.lua @@ -0,0 +1,33 @@ +-- Part of SK Epic 1.0 +function event_spawn(e) + --e.self:Say("Alas, I cannot be the one to carry the sword back to my people as proof in fear they will kill me to possess it for their own. I think a simple trade is in order, perhaps you have a symbol or token of Lhranc's that I could take back to the others to ease their worries?"); + eq.set_timer("depop",4800000); +end + +function event_say(e) + if(e.message:findi("hail")) then--True Spirit + if(e.other:GetFaction(e.self) < 7) then + e.self:Say("Alas, I cannot be the one to carry the sword back to my people as proof in fear they will kill me to possess it for their own. I think a simple trade is in order. Perhaps you have a symbol or token of Lhanrc's that I could take back to the others to ease their worries?"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14384})) then + e.self:Say("Very good, I will go deliver this right away."); + e.other:Faction(e.self,404, -53); --True Spirit + e.other:QuestReward(e.self,0,0,0,0,14383); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + + +--fiddlemetimbers diff --git a/citymist/#Neh-Ashiir.lua b/citymist/#Neh-Ashiir.lua new file mode 100644 index 0000000..8785f61 --- /dev/null +++ b/citymist/#Neh-Ashiir.lua @@ -0,0 +1,15 @@ +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 800 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1681})) then + e.self:Say("Nothing is left to hide now. You shall have the truth. But truth is not won easily and if you cannot defeat me, you have not the ability to see that vengeance is served. Brace yourself!"); + e.other:Faction(e.self,404,100); -- Faction: True Spirit + e.other:QuestReward(e.self,0,0,0,0,0,5000); + eq.spawn2(90012,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop() + end + local returned = item_lib.return_items(e.self, e.other, e.trade, false) + if ( returned ) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + end +end diff --git a/citymist/90005.lua b/citymist/90005.lua new file mode 100644 index 0000000..756952c --- /dev/null +++ b/citymist/90005.lua @@ -0,0 +1,14 @@ +-- chance for random mob respawn on a black reaver death +function event_death_complete(e) + local chance_spawn = math.random(100); + if(chance_spawn <= 80) then + eq.spawn2(90005,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + else + eq.spawn2(eq.ChooseRandom(90048,90177,90083,90179,90091,90181),0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- NPC(s): a_phantom (90048), a_phantom (90177), a_wraith (90083), a_wraith (90179), an_apparition (90091), an_apparition (90181) + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/citymist/90007.lua b/citymist/90007.lua new file mode 100644 index 0000000..19963b3 --- /dev/null +++ b/citymist/90007.lua @@ -0,0 +1,14 @@ +-- chance for random mob respawn on a black reaver death +function event_death_complete(e) + local chance_spawn = math.random(100); + if(chance_spawn <= 80) then + eq.spawn2(90007,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + else + eq.unique_spawn(90010,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/citymist/90008.lua b/citymist/90008.lua new file mode 100644 index 0000000..8f5d3c3 --- /dev/null +++ b/citymist/90008.lua @@ -0,0 +1,14 @@ +-- chance for random mob respawn on a black reaver death +function event_death_complete(e) + local chance_spawn = math.random(100); + if(chance_spawn <= 80) then + eq.spawn2(90008,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + else + eq.unique_spawn(90011,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/citymist/90009.lua b/citymist/90009.lua new file mode 100644 index 0000000..bc4f903 --- /dev/null +++ b/citymist/90009.lua @@ -0,0 +1,14 @@ +-- chance for random mob respawn on a black reaver death +function event_death_complete(e) + local chance_spawn = math.random(100); + if(chance_spawn <= 80) then + eq.spawn2(90009,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + else + eq.unique_spawn(90013,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/citymist/Lhranc.lua b/citymist/Lhranc.lua new file mode 100644 index 0000000..31ec606 --- /dev/null +++ b/citymist/Lhranc.lua @@ -0,0 +1,34 @@ +-- Part of SK Epic 1.0 +function event_say(e) + if(e.other:GetFaction(e.self) < 7) then--True Spirit + if(e.message:findi("hail")) then + e.self:Say("Ahh, finally! He has sent you. No time to waste now, you must help me lift the curse at once!"); + elseif(e.message:findi("curse")) then + e.self:Say("Can you not see my condition! I have been unjustly sentenced to an eternity in this wretched form you see before you, never to leave these walls. In exchange for the cure for this curse, I swear to show you a secret that would make you the most powerful of your kind."); + elseif(e.message:findi("cure")) then + e.self:Say("I require only four things of you, dark one, and one of them you hold now. Bring me the heart of an innocent, the head of the valiant, and the will of Innoruuk. With these, my curse shall be lifted at last and I will craft a weapon that will cast a shadow over all of Norrath."); + end + else + e.self:Emote("seems to ignore you."); --Emote made up + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFactionValue(e.self) >= -58) then --True Spirit + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14367, item2 = 14368, item3 = 14369, item4 = 14370})) then --Corrupted Ghoulbane, Heart of the Innocent, Head of the Valiant, Will of Innoruuk + e.self:Say("Ahh, at last I can free myself of this prison! Centuries have passed since I enjoyed the fruits of mortality.' He hurls the components above his head where they remain suspended in midair. They hover in place while he chants the words of an ancient spell. As he speaks, the items begin to rotate around his head, slowly at first, then faster as the chanting grows louder, until it spins in a blur. Soon, the room is filled with a deafening shriek that pierces you to the core."); + e.other:Faction(e.self,404, 10); --True Spirit + e.other:QuestReward(e.self,0,0,0,0,14384); --Lhranc's Token + eq.spawn2(90015, 0, 0, 85.1, 0.9, 7.8, 192); ----Lhranc + eq.depop_with_timer(); + end + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Quest by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/citymist/Wraith_of_Jaxion.lua b/citymist/Wraith_of_Jaxion.lua new file mode 100644 index 0000000..b885d62 --- /dev/null +++ b/citymist/Wraith_of_Jaxion.lua @@ -0,0 +1,14 @@ +-- Test of Charm - enchanter epic - Enchanted Ruby +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10633})) then + e.self:Say("Hisss...my spirit is forever trapped here. Leave before your fate is as mine."); + e.other:QuestReward(e.self,0,0,0,0,10620); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/citymist/a_human_skeleton.lua b/citymist/a_human_skeleton.lua new file mode 100644 index 0000000..c216d5c --- /dev/null +++ b/citymist/a_human_skeleton.lua @@ -0,0 +1,21 @@ +-- Quest: Brain Bite (Concussion) +-- NPC's Involved: Despondo (Firiona Vie), a_human_skeleton (x3, Trakanon's Teeth, Karnor's Castle, City of Mist) +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Save my.. Soul.. Find.. Wizard.. Desp.."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12963})) then -- Hand in Mardon's Bottle + e.other:QuestReward(e.self,0,0,0,0,12966); -- Bottle of swirling smoke (Mardon's soul) + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/cobaltscar/Bloogy_Shellcracker.lua b/cobaltscar/Bloogy_Shellcracker.lua new file mode 100644 index 0000000..947b47d --- /dev/null +++ b/cobaltscar/Bloogy_Shellcracker.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, strange one. I am Bloogy Shellcracker, the preparer of meals for my people. I am not familiar with the culinary tastes of your kind but you are welcome to purchase some of my supplies. I will also barter for ingredients to some of my exotic dishes."); + elseif(e.message:findi("ingredients") or e.message:findi("dish")) then + e.self:Say("The rarest treat I can prepare for my people is saucy salted seadragon steak. I wish to barter for some water dragon or sea dragon meat, saltwater seaweed, and fish eggs. The rest of the ingredients are collected locally by our collectors."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 22812,item2 = 19113,item3 = 16498,item4 = 16498}, 0) or item_lib.check_turn_in(e.self, e.trade, {item1 = 22813,item2 = 19113,item3 = 16498,item4 = 16498}, 0)) then + e.self:Say("It has been many moons since my people have feasted on this rarest of meat. Take this totem crafted in the form of our oceanlord Prexus and inscribed with the runes of our people. May the oceans watch over you, " .. e.other:GetCleanName() .. "."); + e.other:Faction(e.self,432,5); -- Faction: Othmir + e.other:Faction(e.self,431,-1); -- Faction: Ulthork + e.other:QuestReward(e.self,0,0,0,0,28514,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cobaltscar/Blumblum_Swigwater.lua b/cobaltscar/Blumblum_Swigwater.lua new file mode 100644 index 0000000..1b12ecf --- /dev/null +++ b/cobaltscar/Blumblum_Swigwater.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am very busy. Thank you for taking the time to speak to me, stranger, but I have no time for talk right now. I'm afraid that your business cannot be urgent enough."); + end +end \ No newline at end of file diff --git a/cobaltscar/Bungre_Crawcrusher.lua b/cobaltscar/Bungre_Crawcrusher.lua new file mode 100644 index 0000000..e576a81 --- /dev/null +++ b/cobaltscar/Bungre_Crawcrusher.lua @@ -0,0 +1,32 @@ +-- Quest for Lodizal Shell Shield + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What manner of creature are you, strange one? I can see that you are not native to any nearby territories. Your thin flesh and lack of hair would mean certain death when the ice queen breathes upon these seas."); + elseif(e.message:findi("elf") or e.message:findi("iksar") or e.message:findi("dwarf") or e.message:findi("troll") or e.message:findi("erudite") or e.message:findi("ogre") or e.message:findi("barbarian") or e.message:findi("vah") or e.message:findi("halfling")) then + e.self:Say("I have heard not of your kind but you are welcome to take refuge on our beaches, we only ask that you help to defend them should the predators choose to attack."); + elseif(e.message:findi("human") or e.message:findi("gnome")) then + e.self:Say("I have heard of others of your kind. The sirens have lured them to this bay from afar to feast upon and use as slaves. We Othmir are immune to the sirens' songs, but you must take care not to fall under their thrall. The remains of many of your kind's great wooden traveling beasts decay on the floor of our bay, abandoned by the victims of the sirens. You are welcome to take shelter on our beaches as long as you assist in defending them should predators decide to attack."); + elseif(e.message:findi("predators")) then + e.self:Say("There are many dangerous predators that prowl the surrounding oceans and cliffs. It is my duty to train pups to become strong warriors in order to defend our villages. The wyverns on the cliffs prey primarily on the wounded and sick as well as many creatures that live in the brackish waters of our bay. The deadliest predators are the ones that roam all the coasts preying not only on my people but the Snowfangs and the Ulthork as well. Kelorek'Dar and Lodizal are the most feared of all."); + elseif(e.message:findi("lodizal")) then + e.self:Say("Lodizal is a giant carnivorous sea turtle that roams the iceclad ocean preying primarily on the Snowfang gnolls. The Snowfang gnolls are not trusted by we Othmir as they survive on the skins and meat of walrus and otter but Lodizal is a threat to all coastal dwellers. Should Lodizal ever be slain I would be willing to craft a shield from his shell and adorn it with Othmir runes. I would charge ten thousand gold for the service."); + elseif(e.message:findi("kelorek")) then + e.self:Say("Kelorek'Dar is a sea dragon that prowls the coasts preying on any manner of creature he can fit between his massive jaws."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 22815,platinum = 1000}, 0)) then + e.self:Emote("skillfully crafts the section of Lodizal's shell into the shape of a shield. He then attaches sturdy cured walrus hide leather straps to the inner side of the shield and inscribes intricate glowing runes on the shield's face. When he is finished, he hands you the shield and claps loudly."); + e.other:Faction(e.self,432,5); -- Faction: Othmir + e.other:Faction(e.self,431,-1); -- Faction: Ulthork + e.other:QuestReward(e.self,0,0,0,0,22816,150000); + end + local returned = item_lib.return_items(e.self, e.other, e.trade, false); + if (returned) then + e.self:Say("Sorry stranger, but that is not enough to barter with."); + end +end diff --git a/cobaltscar/Chief_Kalan.lua b/cobaltscar/Chief_Kalan.lua new file mode 100644 index 0000000..2671d3b --- /dev/null +++ b/cobaltscar/Chief_Kalan.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("nods respectfully and says 'Welcome to Siren Bay strange one. These beaches belong to my people, the Othmir. You are welcome in our villages as long as you do not cause trouble and are willing to either assist the shellfish collectors provide nourishment or aid the warriors defending the beaches.'"); + elseif(e.message:findi("aid the warriors")) then + e.self:Say("There are many creatures that would prey on my people if it were not for the dedication of our warriors. The Bulthar and Ulthork often invade our territory and prey on our shellfish collectors. They are wasteful creatures and take more than they could possibly eat from the sacred seas."); + elseif(e.message:findi("bulthar")) then + e.self:Say("The Bulthar are sea elephant people. They are strong brutes with the intelligence of a clam. There is no reasoning with the savages since they seem to only understand their territorial instincts. There is a small herd of them that has taken up residence on the rocky beach beneath the lonely tower and have already injured many of our shellfish collectors. I will reward you for the trunks of every two brutes that you slay."); + elseif(e.message:findi("ulthork")) then + e.self:Say("The Ulthork are walrus people. They are just as territorial and brutish as the Bulthar but are slightly more intelligent. They seem to be jealous of my people's prosperity and occasionally lead raiding parties onto our beaches. Our craftsman use the tusks of the slain Ulthork to carve ivory totems of praise to the ocean lord. I will gladly barter for no less than four pairs of Ulthork tusks."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "I will barter for no less than four pairs of Ulthork tusks."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 24874,item2 = 24874,item3 = 24874,item4 = 24874},1,text1)) then -- Ulthork Tusks + e.self:Say("Many thanks to you, strange one. Our craftsman will be pleased. They have been in need of a new bundle of ivory."); + e.other:Faction(e.self,432, 10); -- Faction: Othmir + e.other:Faction(e.self,431, -1); -- Faction: Ulthork + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10036, 22503, 16976, 10037, 10033, 10049, 10031, 10053, 10035, 10051, 10034, 10050, 10032, 10048),1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30068}, 0)) then -- Bulthar Herdmaster Tusk + e.self:Say("With the Bulthar herd leader dead we can hope that they will move on to less occupied waters."); + e.other:Faction(e.self,432, 5); -- Faction: Othmir + e.other:Faction(e.self,431, -1); -- Faction: Ulthork + e.other:QuestReward(e.self,0,0,0,0,22817,5000); -- Runed Othmir Spear + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30067,item2 = 30067}, 0)) then -- Regular Bulthar Tusks + e.self:Say("Such wasteful creatures the Bulthar are. It is a shame they are not intelligent enough to realize the harm they do to the very oceans that sustain them."); + e.other:Faction(e.self,432, 2); -- Faction: Othmir + e.other:Faction(e.self,431, -1); -- Faction: Ulthork + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10036, 22503, 16976, 10037, 10033, 10049, 10031, 10053, 10035, 10051, 10034, 10050, 10032, 10048),1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cobaltscar/Qarrgy_Scallopgobbler.lua b/cobaltscar/Qarrgy_Scallopgobbler.lua new file mode 100644 index 0000000..d4bfbee --- /dev/null +++ b/cobaltscar/Qarrgy_Scallopgobbler.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("sets down several large crustacean shells covered in foreign runes, then extends his large, coarse hands in a gesture of friendship. 'I am pleased to see friendly visitors to our villages. I am the head craftsman of the village. The crustacean shell armor worn by the warriors of our village was crafted by me and by my apprentices. I will craft other materials as well when they are available.'"); + elseif(e.message:findi("crustacean shell armor")) then + e.self:Say("It takes awhile to make each piece. It has to go through a long burning process to clean away all old meat and dirt. Then it needs shaping and etching with runes."); + elseif(e.message:findi("burning process")) then + e.self:Say("Usually I use a mixture made from the livers of barraccudas. Their liquids are very strong and make good burning liquid. If you want some you need to bring me two barraccuda livers."); + elseif(e.message:findi("other material")) then + e.self:Say("I am able to craft dragon scale armor but it has been a long time since I have had the opportunity to do so for my people. What kind of scales do you wish for me to craft?"); + elseif(e.message:findi("emerald dragon scale")) then + e.self:Say("I will craft an emerald dragonscale tunic for emerald dragon scales, ulthork tusks, and an unstained fine plate breastplate."); + elseif(e.message:findi("sea dragon scale")) then + e.self:Say("Should you slay Kelorek'Dar, the sea dragon, I would craft you a sea dragon bracer from his scales. All I ask for are the scales of the dragon, an ornately runed shell necklace, and an unstained bracer crafted of the metal you strange ones call fine steel."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "I'm sorry strange one. That is not a sufficient barter."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30059,item2 = 30059}, 0)) then + e.self:Emote("slams a knife into the various livers and squeezes out all of their various goos and juices. Eventually he separates a bit of it and pours it into a protective bladder. 'Excellent work. This good catch. Here, you have sack of ooze. Its good for burning things off or etching metals. Thank you for your help."); + e.other:QuestReward(e.self,0,0,0,0,30060); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 22823,item2 = 24874,item3 = 21004},1,text1)) then + e.self:Emote("skillfully crafts the Emerald Dragon Scales into a tunic, hands it to " .. e.other:GetCleanName() .. ", and claps enthusiastically."); + e.other:Faction(e.self,432,5); -- Faction: Othmir + e.other:Faction(e.self,431,-1); -- Faction: Ulthork + e.other:QuestReward(e.self,0,0,0,0,11635,5000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 22814,item2 = 28515,item3 = 21009})) then + e.self:Emote("skillfully crafts the Sea Dragon Scales into a bracer, hands it to " .. e.other:GetCleanName() .. ", and claps enthusiastically."); + e.other:Faction(e.self,432,5); -- Faction: Othmir + e.other:Faction(e.self,431,-1); -- Faction: Ulthork + e.other:QuestReward(e.self,0,0,0,0,11589,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cobaltscar/a_shellfish_collector.lua b/cobaltscar/a_shellfish_collector.lua new file mode 100644 index 0000000..5d24c25 --- /dev/null +++ b/cobaltscar/a_shellfish_collector.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Excuse me, strange one, for my rudeness but I must finish collecting the shellfish for tonight's feast in time for them to be properly prepared."); + end +end \ No newline at end of file diff --git a/cobaltscar/an_Othmir_Pup.lua b/cobaltscar/an_Othmir_Pup.lua new file mode 100644 index 0000000..d8b3c8e --- /dev/null +++ b/cobaltscar/an_Othmir_Pup.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I can't wait till the warriors take us out for a swim in the bay! They say it is too dangerous for us to go out ourselves because of the sharks, bulthar, sirens, and that nasty sea dragon Kel...Kelo...Kelorek'Dar."); + end +end \ No newline at end of file diff --git a/cobaltscar/an_Othmir_Shaman.lua b/cobaltscar/an_Othmir_Shaman.lua new file mode 100644 index 0000000..d4a9ac4 --- /dev/null +++ b/cobaltscar/an_Othmir_Shaman.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("We must continually give praise to the great Prexus for the blessings he has bestowed upon we Othmir! It is because of our devotion to the Ocean Lord that our shores will never fail to yield a rich harvest of shell fish!"); + end +end \ No newline at end of file diff --git a/cobaltscar/an_Othmir_Warrior.lua b/cobaltscar/an_Othmir_Warrior.lua new file mode 100644 index 0000000..c17a929 --- /dev/null +++ b/cobaltscar/an_Othmir_Warrior.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome, strange one! I am on watch duty so I'm afraid I have not the time to converse. Perhaps when my shift is over we can exchange words over a bowl of spicy clam chowder."); + end +end \ No newline at end of file diff --git a/cobaltscar/an_outcast_siren.lua b/cobaltscar/an_outcast_siren.lua new file mode 100644 index 0000000..f39a304 --- /dev/null +++ b/cobaltscar/an_outcast_siren.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Leave me alone, beast! Or I will cut your belly open and feed your entrails to the sharks."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 25107}, 0)) then + e.self:Say("So you are the servant of Wenglawks here to retrieve his cloak. I will need more scales to make the cloak in his size. I have already slaughtered a good thirty sirens and the cloak is nearly complete. Go forth and slaughter my kind and bring me three excellent scales and this idol. Let this idol be your protection from the wrath of E'ci. I will continue my work on the cloak."); + e.other:QuestReward(e.self,0,0,0,0,25108,1000); -- Excellent Siren Scales, Idol of Solusek Ro (statless) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 25108,item2 = 25109,item3 = 25109,item4 = 25109})) then + e.self:Say("You are an excellent hunter. Tell me, did you enjoy the screams of the sirens as they perished? I find the sound so wonderful.' she hands you a gigantic cloak made of slick siren scales. 'I was done making the cloak already. I just wanted to watch you slay the weak. I thank you for bringing more suffering into the world."); + e.other:QuestReward(e.self,0,0,0,0,25110,1000); -- Giant Siren Scale Cloak + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/codecay/#Abroan_Drian.lua b/codecay/#Abroan_Drian.lua new file mode 100644 index 0000000..0b10eb3 --- /dev/null +++ b/codecay/#Abroan_Drian.lua @@ -0,0 +1,38 @@ +local s1, s2, s3; + +function event_signal(e) + if ( e.signal == 1 ) then -- from #Fran_Prisoal + s1 = true; + end + if ( e.signal == 3 ) then -- from #Breddan_Rutyl + s3 = true; + end +end + +function event_death_complete(e) + if ( s1 and s3 ) then + eq.depop_with_timer(200007); -- #_Carprin_Deatharn + eq.zone_emote(0, "A scream of rage engulfs the crypt as the last vestiges of the shield of dark force surrounding Carprin Deatharn fades away."); + eq.unique_spawn(200232, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ() + 3, e.self:GetHeading() ); -- #Carprin_Deatharn + else + eq.signal(200229, 2); -- to #Breddan_Rutyl + eq.signal(200230, 2); -- to #Fran_Prisoal + end +end + +function event_spawn(e) + s1, s2, s3 = false, false, false; + eq.set_timer("depop", 800000); +end + +function event_timer(e) + eq.depop(); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/codecay/#Avhi_Escron.lua b/codecay/#Avhi_Escron.lua new file mode 100644 index 0000000..0ae3c52 --- /dev/null +++ b/codecay/#Avhi_Escron.lua @@ -0,0 +1,43 @@ +local REAVER_LOCS = { + { 413, 115 }, + { 387, 129 }, + { 388, 153 }, + { 420, 151 }, +}; + +function SpawnReavers(mob, noEmote) + for i, coords in ipairs(REAVER_LOCS) do + eq.spawn2(200259, 0, 0, coords[1], coords[2], -60, 128); -- Reanimated_Reaver + end + if ( not noEmote ) then + eq.get_entity_list():MessageClose(mob, true, 200, 0, "Maniacal laughter echoes around the room as the ancient dark lich uses the freshly dead body to summon forth even more reanimated reavers."); + end +end + +function event_hate_list(e) + if ( not e.joined and e.self:GetHP() > 0 ) then + SpawnReavers(e.self); + end +end + +function event_spawn(e) + eq.set_timer("depop", 11700000); + SpawnReavers(e.self, true); +end + +function event_timer(e) + eq.depop(); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_death_complete(e) + eq.zone_emote(0, "The menacing voice is heard once again saying, 'Betrayer and desecrator of storms I call upon you to end the lives of these fools."); + eq.unique_spawn(200228, 0, 0, 258, 84, -70, 0); -- #Bishop_Toluwon +end diff --git a/codecay/#Bishop_Toluwon.lua b/codecay/#Bishop_Toluwon.lua new file mode 100644 index 0000000..9667b6b --- /dev/null +++ b/codecay/#Bishop_Toluwon.lua @@ -0,0 +1,31 @@ +local KNIGHT_SPAWNID = 369225; +local MAGUS_SPAWNID = 369226; + +function event_spawn(e) + eq.set_timer("depop", 11700000); + eq.get_entity_list():GetSpawnByID(KNIGHT_SPAWNID):Enable(); + eq.get_entity_list():GetSpawnByID(MAGUS_SPAWNID):Enable(); +end + +function event_timer(e) + eq.depop(); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_death_complete(e) + eq.zone_emote(0, "A raspy voice is heard as the High Priest begins to speak, 'You have come far to seek your demise. Raex! Vindor! My generals to me. Slay these infidels in the name of our lord the Plaguebringer.'"); + + eq.get_entity_list():GetSpawnByID(KNIGHT_SPAWNID):Disable(false); + eq.get_entity_list():GetSpawnByID(MAGUS_SPAWNID):Disable(false); + + eq.unique_spawn(200245, 0, 0, 306, 318, -64, 128); -- #High_Priest_Ultor_Szanvon + eq.unique_spawn(200261, 24, 0, 200, 294, -59, 0); -- #Vindor_Mawnil + eq.unique_spawn(200258, 25, 0, 496, 241, -74, 0); -- #Raex_Pwodill +end diff --git a/codecay/#Breddan_Rutyl.lua b/codecay/#Breddan_Rutyl.lua new file mode 100644 index 0000000..6de2c69 --- /dev/null +++ b/codecay/#Breddan_Rutyl.lua @@ -0,0 +1,38 @@ +local s1, s2, s3; + +function event_signal(e) + if ( e.signal == 1 ) then -- from #Fran_Prisoal + s1 = true; + end + if ( e.signal == 2 ) then -- from #Abroan_Drian + s2 = true; + end +end + +function event_death_complete(e) + if ( s1 and s2 ) then + eq.depop_with_timer(200007); -- #_Carprin_Deatharn + eq.zone_emote(0, "A scream of rage engulfs the crypt as the last vestiges of the shield of dark force surrounding Carprin Deatharn fades away."); + eq.unique_spawn(200232, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ() + 3, e.self:GetHeading() ); -- #Carprin_Deatharn + else + eq.signal(200222, 3); -- to #Abroan_Drian + eq.signal(200230, 3); -- to #Fran_Prisoal + end +end + +function event_spawn(e) + s1, s2, s3 = false, false, false; + eq.set_timer("depop", 800000); +end + +function event_timer(e) + eq.depop(); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/codecay/#Carprin_Deatharn.lua b/codecay/#Carprin_Deatharn.lua new file mode 100644 index 0000000..11c4873 --- /dev/null +++ b/codecay/#Carprin_Deatharn.lua @@ -0,0 +1,38 @@ +function event_spawn(e) + eq.set_timer("depop", 12300000); + e.self:SetGuardSpot(384, -112, -53.9, 197); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + eq.set_timer("drophate", 1000); + else + eq.resume_timer("depop"); + eq.stop_timer("drophate"); + end +end + +function event_death_complete(e) + eq.zone_emote(0, "Dark laughter sounds from deeper within the chapel as a menacing voice is heard saying, 'Come great corrupter of entropy and decay. Stop these foolish mortals from violating our masters chapel."); + eq.unique_spawn(200225, 0, 0, 405, 135, -54, 128); -- #Avhi_Escron + eq.csr_notice(string.format("CoDecay Carprin slain by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end + +function event_timer(e) + + if ( e.timer == "drophate") then + + if ( math.random() < 0.01666 ) then -- averages to once per minute + local target = e.self:GetTarget(); + if ( target and target.valid ) then + e.self:RemoveFromHateList(target); + end + eq.debug(e.self:GetName().." dropped target from hate list ("..target:GetName()..")", 2); + end + + elseif ( e.timer == "depop" ) then + eq.depop(); + eq.csr_notice("CoDecay Carprin despawned"); + end +end diff --git a/codecay/#Fran_Prisoal.lua b/codecay/#Fran_Prisoal.lua new file mode 100644 index 0000000..481c6f1 --- /dev/null +++ b/codecay/#Fran_Prisoal.lua @@ -0,0 +1,38 @@ +local s1, s2, s3; + +function event_signal(e) + if ( e.signal == 3 ) then -- from #Breddan_Rutyl + s3 = true; + end + if ( e.signal == 2 ) then -- from #Abroan_Drian + s2 = true; + end +end + +function event_death_complete(e) + if ( s2 and s3 ) then + eq.depop_with_timer(200007); -- #_Carprin_Deatharn + eq.zone_emote(0, "A scream of rage engulfs the crypt as the last vestiges of the shield of dark force surrounding Carprin Deatharn fades away."); + eq.unique_spawn(200232, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ() + 3, e.self:GetHeading() ); -- #Carprin_Deatharn + else + eq.signal(200222, 1); -- to #Abroan_Drian + eq.signal(200229, 1); -- to #Breddan_Rutyl + end +end + +function event_spawn(e) + s1, s2, s3 = false, false, false; + eq.set_timer("depop", 800000); +end + +function event_timer(e) + eq.depop(); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/codecay/#High_Priest_Ultor_Szanvon.lua b/codecay/#High_Priest_Ultor_Szanvon.lua new file mode 100644 index 0000000..79d2745 --- /dev/null +++ b/codecay/#High_Priest_Ultor_Szanvon.lua @@ -0,0 +1,22 @@ +function event_spawn(e) + eq.set_timer("depop", 11700000); +end + +function event_timer(e) + eq.depop(); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_death_complete(e) + eq.zone_emote(0, "Dead silence reigns throughout the crypt as the heroes stand victorious over the High Priests lifeless body. Moments later a soft almost inaudible voice echoes through your mind whispering, 'Free us. Free us you must.' Then a wretched creatures appears out of nowhere shaking and muttering gibberish."); + + eq.unique_spawn(200267, 0, 0, 309, 330, -72.122, 128); -- Tarkil_Adan + eq.signal(200267, e.killer:GetID()); -- e.killer for death_complete is somebody with kill rights, not death blow +end diff --git a/codecay/#Raex_Pwodill.lua b/codecay/#Raex_Pwodill.lua new file mode 100644 index 0000000..9636fde --- /dev/null +++ b/codecay/#Raex_Pwodill.lua @@ -0,0 +1,30 @@ +function event_spawn(e) + eq.set_timer("depop", 9900000); +end + +function event_timer(e) + eq.depop(); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_death_complete(e) + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(200261) ) then -- #Vindor_Mawnil + + local hp = eq.get_entity_list():GetNPCByNPCTypeID(200245) -- #High_Priest_Ultor_Szanvon + + if ( hp and hp.valid ) then + hp:SetBodyType(3, false); -- make targetable (undead type) + hp:SetSpecialAbility(24, 0); -- Will Not Aggro off + hp:SetSpecialAbility(35, 0); -- No Harm from Players off + eq.set_timer("depop", 11700000, hp); + end + end +end diff --git a/codecay/#Vindor_Mawnil.lua b/codecay/#Vindor_Mawnil.lua new file mode 100644 index 0000000..aa1528c --- /dev/null +++ b/codecay/#Vindor_Mawnil.lua @@ -0,0 +1,30 @@ +function event_spawn(e) + eq.set_timer("depop", 9900000); +end + +function event_timer(e) + eq.depop(); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_death_complete(e) + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(200258) ) then -- #Raex_Pwodill + + local hp = eq.get_entity_list():GetNPCByNPCTypeID(200245) -- #High_Priest_Ultor_Szanvon + + if ( hp and hp.valid ) then + hp:SetBodyType(3, false); -- make targetable (undead type) + hp:SetSpecialAbility(24, 0); -- Will Not Aggro off + hp:SetSpecialAbility(35, 0); -- No Harm from Players off + eq.set_timer("depop", 11700000, hp); + end + end +end diff --git a/codecay/#_Carprin_Deatharn.lua b/codecay/#_Carprin_Deatharn.lua new file mode 100644 index 0000000..a92e4fd --- /dev/null +++ b/codecay/#_Carprin_Deatharn.lua @@ -0,0 +1,40 @@ +function event_combat(e) + if ( e.joined ) then + local mob1 = eq.unique_spawn(200229, 0, 0, 382, -127, -62, 192); -- #Breddan_Rutyl + local mob2 = eq.unique_spawn(200230, 0, 0, 364, -108, -62, 192); -- #Fran_Prisoal + local mob3 = eq.unique_spawn(200222, 0, 0, 384, -94, -62, 192); -- #Abroan_Drian + eq.set_timer("drophate", 1000); + if ( math.abs(e.self:GetX() - e.self:GetSpawnPointX()) < 1 and math.abs(e.self:GetY() - e.self:GetSpawnPointY()) < 1 ) then + eq.get_entity_list():MessageClose(e.self, true, 200, 0, "The dark knight looks at the foolish mortals who have come into his domain and begins to chant a dark spell, 'Doremai Peyunai Rezgra Yru Zainweedi QUANDOZI QUANDOZI QUANDOZI!' Suddenly, three howls of pain and agony are heard as the foul knight channels energy from the tortured souls surrounding him. He grins evilly as a shimmering field of dark force surrounds him powered by the stolen energy and says, 'I shall enslave your souls for all eternity and you will learn what it means to defy my lord, Bertoxxulous.'"); + if ( mob1.valid ) then mob1:AddToHateList(e.other, 1); end + if ( mob2.valid ) then mob2:AddToHateList(e.other, 1); end + if ( mob3.valid ) then mob3:AddToHateList(e.other, 1); end + end + else + eq.stop_timer("drophate"); + + -- this is to mimic certain behavior Sony's servers had/has. NPCs aggroed a long time sometimes warp home or + -- some distance away in the direction of home and heal somewhat when they hate list wipe. The exact logic to this + -- behavior is unknown. Bosses with the tank hate list drop mechanic need this in order to not trivialize the + -- encounter using mem blur. This is a crude solution that works well enough + local ratio = e.self:GetHPRatio(); + if ( ratio < 50 or math.random(100) > ratio ) then + e.self:GMMove(e.self:GetGuardPointX(), e.self:GetGuardPointY(), e.self:GetGuardPointZ(), e.self:GetSpawnPointH()); + e.self:SetHP(e.self:GetHP() + math.floor(e.self:GetMaxHP() * 0.3)); + end + end +end + +function event_timer(e) + + if ( e.timer == "drophate") then + + if ( math.random() < 0.01666 ) then -- averages to once per minute + local target = e.self:GetTarget(); + if ( target and target.valid ) then + e.self:RemoveFromHateList(target); + end + eq.debug(e.self:GetName().." dropped target from hate list ("..target:GetName()..")", 2); + end + end +end \ No newline at end of file diff --git a/codecay/A_Planar_Projection.lua b/codecay/A_Planar_Projection.lua new file mode 100644 index 0000000..295ed1b --- /dev/null +++ b/codecay/A_Planar_Projection.lua @@ -0,0 +1,86 @@ +local FLAG_LIMIT = 72; + +local flags = 0; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + +function event_signal(e) + rid, gid, cid = nil, nil, nil; + local client = eq.get_entity_list():GetClientByID(e.signal); -- the signal # is the entity ID of a client with kill credit + + if ( client.valid ) then + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + end +end + +function event_spawn(e) + flags = 0; + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + + if ( ClientCanFlag(e.other) ) then + + if ( e.message:findi("hail") and flags < FLAG_LIMIT ) then + + if ( not qglobals.bertox_key ) then + return; + end + + local fuirstel = tonumber(qglobals.fuirstel or 0); + + if ( fuirstel == 3 ) then + e.other:Message(0, "Milyk Fuirstel's thoughts enter into your own. 'Bertoxxulous is slain, for this my brother and I are forever in your debt. Please, when you have the opportunity come visit me in the Plane of Tranquility. I would like to thank you face to face.'"); + eq.set_global("fuirstel", "4", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + flags = flags + 1; + + if ( qglobals.cl_bertox ) then + eq.delete_global("cl_bertox"); + end + + elseif ( not qglobals.cl_bertox and fuirstel < 3 ) then + e.other:Message(0, "The Planar Projection seems to flicker in and out of existence. It seems joyous that Bertoxxulous has been slain."); + e.other:Message(15, "You have received a new checklist flag!"); + eq.set_global("cl_bertox", "1", 5, "F"); + flags = flags + 1; + end + end + end +end diff --git a/codecay/A_fly_swarm.lua b/codecay/A_fly_swarm.lua new file mode 100644 index 0000000..e16c5c5 --- /dev/null +++ b/codecay/A_fly_swarm.lua @@ -0,0 +1,15 @@ +function event_combat(e) + if ( e.joined ) then + e.self:Emote("erupts from a pile of bloody flesh."); + + local x = e.other:GetX(); + local y = e.other:GetY(); + local z = e.other:GetZ(); + + for i = 2, 6 do + eq.spawn2(200254, 0, 0, x+math.random(-5, 5), y+math.random(-5, 5), z + 3, 0); + end + + eq.depop_with_timer(); + end +end diff --git a/codecay/A_maddening_howl.lua b/codecay/A_maddening_howl.lua new file mode 100644 index 0000000..f0c1193 --- /dev/null +++ b/codecay/A_maddening_howl.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if(e.joined) then + e.self:Emote("echoes down the passages surrounding you."); + eq.depop_with_timer(); + end +end \ No newline at end of file diff --git a/codecay/A_musty_smell.lua b/codecay/A_musty_smell.lua new file mode 100644 index 0000000..cb0f2a0 --- /dev/null +++ b/codecay/A_musty_smell.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if(e.joined) then + e.self:Emote("surrounds you as you enter the depths of a darkened crypt."); + eq.depop_with_timer(); + end +end \ No newline at end of file diff --git a/codecay/A_sense_of_fear.lua b/codecay/A_sense_of_fear.lua new file mode 100644 index 0000000..7efc9e4 --- /dev/null +++ b/codecay/A_sense_of_fear.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if(e.joined) then + e.self:Emote("comes over you as you travel deeper into the crypt."); + eq.depop_with_timer(); + end +end \ No newline at end of file diff --git a/codecay/An_overwhelming.lua b/codecay/An_overwhelming.lua new file mode 100644 index 0000000..41e95e2 --- /dev/null +++ b/codecay/An_overwhelming.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if(e.joined) then + e.self:Emote("stench assaults your senses as you move closer to your doom."); + eq.depop_with_timer(); + end +end \ No newline at end of file diff --git a/codecay/Chanting_echoes.lua b/codecay/Chanting_echoes.lua new file mode 100644 index 0000000..84457fb --- /dev/null +++ b/codecay/Chanting_echoes.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if(e.joined) then + e.self:Emote("around you as a dark ritual is carried out in the room beyond."); + eq.depop_with_timer(); + end +end \ No newline at end of file diff --git a/codecay/Evil_emanates.lua b/codecay/Evil_emanates.lua new file mode 100644 index 0000000..702afa1 --- /dev/null +++ b/codecay/Evil_emanates.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if(e.joined) then + e.self:Emote("from the chapel up ahead."); + eq.depop_with_timer(); + end +end \ No newline at end of file diff --git a/codecay/Reanimated_Reaver.lua b/codecay/Reanimated_Reaver.lua new file mode 100644 index 0000000..341a4e4 --- /dev/null +++ b/codecay/Reanimated_Reaver.lua @@ -0,0 +1,15 @@ +function event_spawn(e) + eq.set_timer("depop", 1500000); +end + +function event_timer(e) + eq.depop(); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/codecay/Tarkil_Adan.lua b/codecay/Tarkil_Adan.lua new file mode 100644 index 0000000..bcda276 --- /dev/null +++ b/codecay/Tarkil_Adan.lua @@ -0,0 +1,79 @@ +local MAX_KEYS = 36; + +local keys; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + +function event_signal(e) + rid, gid, cid = nil, nil, nil; + local client = eq.get_entity_list():GetClientByID(e.signal); -- the signal # is the entity ID of a client with kill credit + + if ( client.valid ) then + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + end +end + + +function event_spawn(e) + eq.set_timer("depop", 600000); + keys = 0; +end + +function event_timer(e) + eq.depop(); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + + if ( ClientCanFlag(e.other) ) then + + if ( e.message:findi("hail") ) then + + if ( not qglobals.bertox_key and keys < MAX_KEYS ) then + + e.other:Message(0, "Tarkil Adan lets out a groan and then whimpers saying, 'Yes great ones yesss I was king once I wasss. ' The creature then mutters under his breath and passes you a small glowing bone fragment etched in runes. Then speaks again saying, 'The tortured ones oh the tortured ones, you must go to the depths of Lxanvom and free them. Go to the bone throne at the ruins entrance there you will find access to the depths.' He then goes back to whimpering and rocking back and forth."); + eq.set_global("bertox_key", "1", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + + keys = keys + 1; + end + end + end +end diff --git a/codecay/The_remains.lua b/codecay/The_remains.lua new file mode 100644 index 0000000..9f5b73e --- /dev/null +++ b/codecay/The_remains.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if(e.joined) then + e.self:Emote("of a fresh sacrifice are littered across the altar."); + eq.depop_with_timer(); + end +end \ No newline at end of file diff --git a/codecay/You_hear.lua b/codecay/You_hear.lua new file mode 100644 index 0000000..acdfe5c --- /dev/null +++ b/codecay/You_hear.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if(e.joined) then + e.self:Emote("the rapid chittering of maddened rats, the end is near."); + eq.depop_with_timer(); + end +end \ No newline at end of file diff --git a/codecay/a_swarming_fly.lua b/codecay/a_swarming_fly.lua new file mode 100644 index 0000000..1fa4297 --- /dev/null +++ b/codecay/a_swarming_fly.lua @@ -0,0 +1,15 @@ +function event_spawn(e) + eq.set_timer("depop", 900000); +end + +function event_timer(e) + eq.depop(); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/codecay/encounters/Bertox.lua b/codecay/encounters/Bertox.lua new file mode 100644 index 0000000..1f96b19 --- /dev/null +++ b/codecay/encounters/Bertox.lua @@ -0,0 +1,211 @@ +local BERTOX_TYPE = 200226; -- #Bertoxxulous + +local DARWOL_TYPE = 200234; -- Darwol_Adan +local FEIG_TYPE = 200240; -- Feig_Adan +local XHUT_TYPE = 200265; -- Xhut_Adan +local KAVILIS_TYPE = 200246; -- Kavilis_Adan + +local RADDI_TYPE = 200257; -- Raddi_Adan +local WAVADOZZIK_TYPE = 200263; -- Wavadozzik_Adan +local ZANDAL_TYPE = 200266; -- Zandal_Adan +local AKKAPAN_TYPE = 200223; -- Akkapan_Adan + +local MEEDO_TYPE = 200250; -- Meedo_Adan +local QEZZIN_TYPE = 200256; -- Qezzin_Adan +local PZO_TYPE = 200255; -- Pzo_Adan +local BHALY_TYPE = 200227; -- Bhaly_Adan + +local SPECTRE_TYPE = 200016; -- #Spectre_of_Corruption +local SPECTRE_SPAWNID = 360643; + +local SUMMONER_TYPE = 200260; -- Summoner_of_Bertoxxulous +local CONTROLLER_TYPE = 200195; -- PusEventController +local PROJECTION_TYPE = 200269; -- A_Planar_Projection + +local BOSS_TABLE = { + [44] = { DARWOL_TYPE, 0, 280, -247, 0, "A bestial squeak thunders" }, + [48] = { FEIG_TYPE, -200, 0, -277, 64, "A bestial squeak thunders" }, + [52] = { XHUT_TYPE, 0, -280, -247, 128, "A dark vision flashes" }, + [56] = { KAVILIS_TYPE, 200, 0, -269, 192, "A faint buzzing is heard" }, + [84] = { RADDI_TYPE, 0, 280, -247, 0, "A wailing cry echoes" }, + [88] = { WAVADOZZIK_TYPE, -200, 0, -277, 64, "Chittering is heard" }, + [92] = { ZANDAL_TYPE, 0, -280, -247, 128, "Chittering is heard" }, + [96] = { AKKAPAN_TYPE, 200, 0, -269, 192, "A maddened whispering is heard" }, + [10000] = { MEEDO_TYPE, 0, 280, -247, 0 }, + [10001] = { QEZZIN_TYPE, -200, 0, -277, 64 }, + [10002] = { PZO_TYPE, 0, -280, -247, 128 }, + [10003] = { BHALY_TYPE, 200, 0, -269, 192 }, +}; + +local TRASH_TYPES = { + 200247, -- Knight_of_Decay (level 62) + 200268, -- Priest_of_Decay + 200251, -- Necromancer_of_Decay + 200236, -- Elite_Knight_of_Decay + 200238, -- Elite_Priest_of_Decay + 200237, -- Elite_Necromancer_of_Decay +}; + +-- create table with spawn IDs of trash mobs. Some were deleted because the locs were wrong so there are 'holes', otherwise they are contiguous +local TRASH_SPAWNIDS = {}; +for i = 369228, 369264 do + if ( i ~= 369241 and i ~= 369244 and i ~= 369255 and i ~= 369257 and i ~= 369260 ) then + table.insert(TRASH_SPAWNIDS, i); + end +end + +local SUMMONER_LOCS = { + { 0, 305, -240, 128 }, + { -235, 0, -270, 64 }, + { 235, 0, -270, 192 }, + { 0, -55, -285, 0 }, + { 0, -305, -240, 0 }, +}; + +local trashKills = 0; +local bossKills = 0; + +function ControllerTimer(e) + if ( e.timer == "start" ) then + eq.zone_emote(0, "A foul wind is felt carrying on it the stench of death and decay. Suddenly a thunderous bang is heard throughout the crypt and then these words, 'Great soldiers of decay you are summoned forth to do battle with these infidels!' All around the crypt echoes of footsteps and shuffling feet are heard."); + trashKills = 0; + bossKills = 0; + StartSpawns(); + + elseif ( e.timer == "expire_warning" ) then + eq.zone_emote(0, "Dark voices whisper in your ear saying, 'Your time is close in coming to an end. Time to flee little ones!'"); + + elseif ( e.timer == "expire" ) then + eq.zone_emote(0, "Harsh laughter echoes around the crypt and a voice then speaks saying, 'Perhaps you would care to try when you are more powerful fools.' The harsh laughter continues softly as all of the summoned minions of Bertoxxulous vanish."); + eq.update_spawn_timer(SPECTRE_SPAWNID, 21600000); + StopSpawns(); + eq.csr_notice("CoDecay Bertox event failed"); + end + eq.stop_timer(e.timer); +end + +function ControllerSignal(e) + + if ( e.signal == 1 ) then + + eq.set_timer("expire", 7380000); + eq.set_timer("expire_warning", 7080000); + eq.set_timer("start", 350000); + + elseif ( e.signal == 2 ) then + eq.stop_timer("expire"); + eq.stop_timer("expire_warning"); + StopSpawns(); + end +end + +function SpectreDeathComplete(e) + eq.signal(CONTROLLER_TYPE, 1); + eq.zone_emote(0, "Crazed laughter is heard as you notice a foul creature standing before you. The creature then speaks saying, 'Violaters of the depths of Lxanvom shall pay with your lives!' The foul minion of decay then begins chanting a dark ritual. Deeper within the depths of the crypt more chanting can be heard."); + for _, loc in ipairs(SUMMONER_LOCS) do + eq.spawn2(SUMMONER_TYPE, 0, 0, loc[1], loc[2], loc[3], loc[4]); + end + eq.csr_notice(string.format("CoDecay Bertox event started by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end + +function StartSpawns() + local elist = eq.get_entity_list(); + for _, id in ipairs(TRASH_SPAWNIDS) do + elist:GetSpawnByID(id):Enable(); + end +end + +function StopSpawns() + local elist = eq.get_entity_list(); + for _, id in ipairs(TRASH_SPAWNIDS) do + elist:GetSpawnByID(id):Disable(); + end + eq.depop_all(SUMMONER_TYPE); + eq.depop_all(BERTOX_TYPE); +end + +function TrashDeathComplete(e) + + trashKills = trashKills + 1; + eq.debug("Bertox event trash kills == "..trashKills, 3); + + local boss = BOSS_TABLE[trashKills]; + + if ( boss ) then + local b = eq.spawn2(boss[1], 0, 0, boss[2], boss[3], boss[4], boss[5]); + eq.zone_emote(0, string.format("An unsettling feeling of fear passes through you as you hear the summoners finish a dark incantation then cry out saying, 'We call to you corrupted King of Lxanvom, %s, your master has need of you!' %s thunders through the crypt as a foul fiend of Bertoxxulous is summoned forth.", b:GetCleanName(), boss[6])); + end +end + +-- this trash has atypical loiting behavior +function TrashCombat(e) + if ( e.joined ) then + eq.stop_timer("end_loiter"); + + elseif ( math.random(1, 5) == 1 ) then + eq.set_timer("end_loiter", math.random(1, 300)*1000); + end +end + +function TrashTimer(e) + + if ( e.timer == "end_loiter" ) then + eq.stop_timer(e.timer); + + e.self:ResumeWandering(); + end +end + +function TrashWaypointArrive(e) + if ( e.self:GetGrid() > 0 and e.wp == (e.self:GetMaxWp() - 1) ) then + e.self:RemoveWaypoints(); + e.self:SaveGuardSpot(); + end +end + +function TriggerBossDeathComplete(e) + bossKills = bossKills + 1; + + if ( bossKills == 8 ) then + local boss; + eq.zone_emote(0, "An unsettling feeling of fear passes through you as you hear the summoners finish a dark incantation then cry out saying, 'We call to you the last corrupted Kings of Lxanvom. Meedo Adan! Qezzin Adan! Pzo Adan! Bhaly Adan! Your master has need of you!' Four separate howls of rage and despair echo throughout the lower depths of the crypt as four foul fiends of Bertoxxulous is summoned forth."); + + for i = 10000, 10003 do + boss = BOSS_TABLE[i]; + eq.spawn2(boss[1], 0, 0, boss[2], boss[3], boss[4], boss[5]); + end + + elseif ( bossKills == 12 ) then + eq.zone_emote(0, "A sinister vision enters your mind of a faceless one handsome yet dead and decaying. The vision then shifts to that of a torn bestial creature and a loud shout is heard, 'Defilers death comes for you today!'"); + eq.spawn2(BERTOX_TYPE, 58, 0, 0, 280, -243, 0); + end +end + +function BertoxDeathComplete(e) + eq.signal(CONTROLLER_TYPE, 2); + eq.zone_emote(0, "A nimbus of light floods throughs the crypt in one magnificent wave as an earth shattering howl is heard. The bringer of plagues, lord of all disease and decay, Bertoxxulous has been defeated. Suddenly an urgent whisper fills your head simply saying, 'The Torch of Lxanvom shall burn bright again. Freedom is now ours, for that we thank you.'"); + eq.spawn2(PROJECTION_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + eq.signal(PROJECTION_TYPE, e.killer:GetID()); -- e.killer for death_complete is somebody with kill rights, not death blow + eq.csr_notice(string.format("CoDecay Bertox slain by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end + +function event_encounter_load(e) + + eq.register_npc_event("Bertox", Event.death_complete, SPECTRE_TYPE, SpectreDeathComplete); + + eq.register_npc_event("Bertox", Event.timer, CONTROLLER_TYPE, ControllerTimer); + eq.register_npc_event("Bertox", Event.signal, CONTROLLER_TYPE, ControllerSignal); + + for _, id in ipairs(TRASH_TYPES) do + eq.register_npc_event("Bertox", Event.death_complete, id, TrashDeathComplete); + eq.register_npc_event("Bertox", Event.combat, id, TrashCombat); + eq.register_npc_event("Bertox", Event.timer, id, TrashTimer); + eq.register_npc_event("Bertox", Event.waypoint_arrive, id, TrashWaypointArrive); + end + + for _, boss in pairs(BOSS_TABLE) do + eq.register_npc_event("Bertox", Event.death_complete, boss[1], TriggerBossDeathComplete); + end + + eq.register_npc_event("Bertox", Event.death_complete, BERTOX_TYPE, BertoxDeathComplete); +end diff --git a/codecay/encounters/Paffa.lua b/codecay/encounters/Paffa.lua new file mode 100644 index 0000000..0dd1e71 --- /dev/null +++ b/codecay/encounters/Paffa.lua @@ -0,0 +1,134 @@ +local CONTROLLER_TYPE = 200218; -- PusEventStarter +local OVERLORD_TYPE = 200252; -- #Overlord_Banord_Paffa +local BANORD_TYPE = 200020; -- #Banord_Paffa +local FOUL_TYPE = 200242; -- Foul_Pusling (max hit 471) +local CORRUPTED_TYPE = 200233; -- Corrupted_Pusling (max hit 471) + +local SPAWNIDS = { 360613, 360628, 360629, 360630, 360631 }; +local BANORD_SPAWNID = 360632; + +local SPAWN_LOCS = { + { 128, -413, -59, 105 }, + { 116, -431, -58.125, 68 }, + { 134, -450, -58.125, 7 }, + { 156, -441, -57.875, 220 }, + { 154, -418, -59.5, 158 }, +}; + +local wave = 0; +local active = false; + +function GetBossMob() + local mob = eq.get_entity_list():GetMobByNpcTypeID(BANORD_TYPE); + if ( not mob or not mob.valid ) then + mob = eq.get_entity_list():GetMobByNpcTypeID(OVERLORD_TYPE); + end + if ( mob and mob.valid ) then + return mob; + end + return nil; +end + +function ControllerTimer(e) + + if ( e.timer == "wave" ) then + + wave = wave + 1; + eq.debug("Paffa event wave "..wave); + + local mob = GetBossMob(); + if ( not mob ) then + eq.stop_timer(e.timer); + eq.debug("Error: Paffa NPC not found"); + active = false; + return; + end + + if ( wave == 3 ) then + eq.set_timer("depop", 2400000); + eq.get_entity_list():MessageClose(mob, true, 125, 0, "A loud and maddened scream of rage is heard as Banord prepares to attack."); + + eq.unique_spawn(OVERLORD_TYPE, 0, 0, mob:GetX(), mob:GetY(), mob:GetZ(), mob:GetHeading()); + eq.depop_with_timer(BANORD_TYPE); + else + eq.get_entity_list():MessageClose(mob, true, 125, 0, "A crazed chant echoes through the room as Banord calls for more minions to attack."); + end + SpawnWave(); + + elseif ( e.timer == "depop" ) then + eq.stop_timer(e.timer); + + local mob = GetBossMob(); + if ( not mob ) then + return; + end + eq.get_entity_list():MessageClose(mob, true, 125, 0, "A mocking laugh begins as Banord settles back sated in his lust for power and strength."); + eq.depop_all(OVERLORD_TYPE); + eq.debug("Paffa event fail"); + eq.update_spawn_timer(BANORD_SPAWNID, 600000); + StopEvent(); + end +end + +function ControllerSignal(e) + local mob = GetBossMob(); + if ( not mob ) then + return; + end + eq.debug("Paffa event start"); + active = true; + eq.set_timer("wave", 234000); + eq.get_entity_list():MessageClose(mob, true, 125, 0, "A deep voice bellows from just ahead saying, 'Come fools see if you can match the power of Banord and his puslings. Puslings come your master has need of you!' Wretched howls of the twisted puslings begin to echo throughout the room."); + local elist = eq.get_entity_list(); + for _, id in ipairs(SPAWNIDS) do + elist:GetSpawnByID(id):Disable(false); + end +end + +function BanordSpawn(e) + eq.set_proximity(75, 180, -475, -390, -100, 0); + wave = 0; + active = false; +end + +function BanordEnter(e) + if ( active or e.other:GetGM() ) then + return + end + eq.signal(CONTROLLER_TYPE, 1); +end + +function SpawnWave() + local t; + for _, l in ipairs(SPAWN_LOCS) do + if ( math.random() < 0.25 ) then + t = CORRUPTED_TYPE; + else + t = FOUL_TYPE; + end + eq.spawn2(t, 0, 0, l[1], l[2], l[3], l[4]); + end +end + +function StopEvent(e) + if ( e ) then + eq.debug("Paffa event success"); + end + eq.depop_all(CORRUPTED_TYPE); + eq.depop_all(FOUL_TYPE); + eq.stop_timer("wave", eq.get_entity_list():GetMobByNpcTypeID(CONTROLLER_TYPE)); + active = false; + local elist = eq.get_entity_list(); + for _, id in ipairs(SPAWNIDS) do + eq.update_spawn_timer(id, math.random(60, 200)*1000); + elist:GetSpawnByID(id):Enable(); + end +end + +function event_encounter_load(e) + eq.register_npc_event("Paffa", Event.timer, CONTROLLER_TYPE, ControllerTimer); + eq.register_npc_event("Paffa", Event.signal, CONTROLLER_TYPE, ControllerSignal); + eq.register_npc_event("Paffa", Event.spawn, BANORD_TYPE, BanordSpawn); + eq.register_npc_event("Paffa", Event.enter, BANORD_TYPE, BanordEnter); + eq.register_npc_event("Paffa", Event.death_complete, OVERLORD_TYPE, StopEvent); +end diff --git a/codecay/player.lua b/codecay/player.lua new file mode 100644 index 0000000..7c3905d --- /dev/null +++ b/codecay/player.lua @@ -0,0 +1,22 @@ +function event_click_door(e) + local id = e.door:GetDoorID(); + + if ( id == 7 ) then + + local qglobals = eq.get_qglobals(e.self); + if ( qglobals.bertox_key ) then + + e.self:MovePC(200, 0, -16, -290, 128*2); + + if ( e.self:GetPet().valid ) then + if ( e.self:GetPet():Charmed() ) then + e.self:GetPet():BuffFadeByEffect(22); -- charm + else + e.self:GetPet():GMMove(0, -16, -290, 0); + end + end + eq.get_entity_list():RemoveFromHateLists(e.self); + + end + end +end diff --git a/codecay/script_init.lua b/codecay/script_init.lua new file mode 100644 index 0000000..210e0c6 --- /dev/null +++ b/codecay/script_init.lua @@ -0,0 +1,2 @@ +eq.load_encounter("Bertox"); +eq.load_encounter("Paffa"); diff --git a/commons/Dragoon_Zytl.lua b/commons/Dragoon_Zytl.lua new file mode 100644 index 0000000..15ea042 --- /dev/null +++ b/commons/Dragoon_Zytl.lua @@ -0,0 +1,3 @@ +function event_spawn(e) + e.self:AI_SetRoambox(250,3330,2600,-555,-847,15000,30000); +end \ No newline at end of file diff --git a/commons/Duggin_Scumber.lua b/commons/Duggin_Scumber.lua new file mode 100644 index 0000000..beb2f86 --- /dev/null +++ b/commons/Duggin_Scumber.lua @@ -0,0 +1,14 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_waypoint_arrive(e) + if(e.wp == 3) then + e.self:Emote("runs up and steals the note. 'Aha!! Foolish Qeynite or whatever you call yourself!! I have found the note and now I shall take it to my superior!! Just try and catch me!!'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/commons/Guard_Colin.lua b/commons/Guard_Colin.lua new file mode 100644 index 0000000..d504903 --- /dev/null +++ b/commons/Guard_Colin.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, traveler! By order of Sir Lucan, the toll fee is one gold piece a head. Pay at once!"); + end +end diff --git a/commons/Guard_Valon.lua b/commons/Guard_Valon.lua new file mode 100644 index 0000000..67e8733 --- /dev/null +++ b/commons/Guard_Valon.lua @@ -0,0 +1,44 @@ +-- orc pawn picks & cutthroat rings quest + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, traveler! If you wish to walk upon the road to Freeport, you will pay the toll of two silver pieces. And you should. It is not safe to stray from the pathway. There are many [dangers in the Commonlands]."); + elseif(e.message:findi("dangers in the commonlands")) then + e.self:Say("The orcs have been a nuisance of late. Many travelers have perished at the hands of the orc pawns. Would you like to [assist the Freeport Militia] in ridding the lands of the orcs?"); + elseif(e.message:findi("assist the freeport militia")) then + e.self:Say("Sir Lucan would be proud!! Patrol the Commonlands and watch for any orc pawns. Should you find any orc pawn picks on them, I will pay you for every four you return to me. Be off, then! For the glory of Freeport!!"); + elseif(e.message:findi("hunt dervish cutthroats")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("You will make a fine reserve!! Take this bag and fill it with Dervish Cutthroat Insignia Rings. When they are combined and returned to me you shall be accepted into the Reserve Freeport Militia!!"); + e.other:SummonCursorItem(17975); -- Item: Bag for Cutthroat Rings + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Doing away with more orc pawns, and perhaps turning in the orc pawn picks to me, may increase my trust in you."); + else + e.self:Say("Stand where you are, citizen. I believe you are wanted by the Freeport Militia."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I cannot reward you until you hand me four orc pawn picks. So says Captain Hazran."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13885,item2 = 13885,item3 = 13885,item4 = 13885},1,text)) then + e.self:Say("You have done well. Keep up the good work and we may trust you to [hunt dervish cutthroats] which in turn will allow you to join the Reserve Freeport Militia."); + e.other:Faction(e.self,330,3); -- freeport militia + e.other:Faction(e.self,336,1); -- coalition of tradefolk underground + e.other:Faction(e.self,281,-1); -- knights of truth + e.other:Faction(e.self,362,-1); -- priests of marr + e.other:QuestReward(e.self,0,0,math.random(5),0,0,500); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12272})) then + e.self:Say("Excellent work, "..e.other:GetName().."!! You are quite formidable. Maybe soon you shall aid in our efforts to rid the Northern part of Freeport of the paladins!! Until then keep up the good work. Take this Armory Token to the Militia Armorer in the Militia House in Freeport to receive your tunic. He may not be there, but I assure you he will show up at some time. On the second floor. Hail Sir Lucan!!"); + e.other:Faction(e.self,330,10); -- freeport militia + e.other:Faction(e.self,336,1); -- coalition of tradefolk underground + e.other:Faction(e.self,281,-1); -- knights of truth + e.other:Faction(e.self,362,-1); -- priests of marr + e.other:QuestReward(e.self,0,0,0,0,12273,500); -- Item: Militia Armory Token + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EOF zone: commons ID: 21086 21109 NPC: Guard_Valon diff --git a/commons/Jahsohn_Aksot.lua b/commons/Jahsohn_Aksot.lua new file mode 100644 index 0000000..8135f8a --- /dev/null +++ b/commons/Jahsohn_Aksot.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("rykas")) then + e.self:Say("I have not heard of anyone speaking that name out loud in years. Rykas once shared a tale with me, though I have lived with fear in my mind ever since. He told me afterwards that I did not have the balance I thought I had. Have you come for the Words of Magi'kot?"); + elseif(e.message:findi("words")) then + e.self:Say("The Words of Magi'kot can only be shared with those elementalists whose minds are of balance. The Words were separated into three pieces by a high council of Magi who feared that the story would bring an end to elementalists throughout Norrath. If you feel you wish to read from the sacred Power of the Orb then an elementalist of such power should easily accomplish this task."); + elseif(e.message:findi("what task")) then + e.self:Say("Bring me the torn pages of Magi'kot. The first section can be found in the depths of a tainted forest, warded by an angry lupine. It is also rumored that one section is found in the haunted estate of a murderer, on a many armed creature. The last may be found in the belly of an amphibian who thirsts for blood."); + end +end + + + +function event_trade(e) + local item_lib = require("items"); + local text = "Have you forgotten something, " .. e.other:GetCleanName() .. "?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28035})) then + e.self:Say("What is this? I cannot believe you found it! Where did you get this?"); + e.other:QuestReward(e.self,0,0,0,0,0,50); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 28000,item2 = 28001,item3 = 28002},1,text)) then + e.self:Say("Rykas may have been right about you, " .. e.other:GetCleanName() .. ". Now, go find Walnan. Walnan was apprenticed to a very powerful Mage. After her apprenticeship was complete, she wished to begin teaching other beings of Norrath. Even those who knew nothing of the art! I do not believe she was successful, though. Seek her out to further your tale. Good luck in your journeys, " .. e.other:GetCleanName() .. "!"); + e.other:QuestReward(e.self,0,0,0,0,28003); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone: commons ID:21043 -- Jahsohn_Aksot + diff --git a/commons/Kizdean_Gix.lua b/commons/Kizdean_Gix.lua new file mode 100644 index 0000000..d1aec74 --- /dev/null +++ b/commons/Kizdean_Gix.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("If you have business then out with it!! If not, then please be gone. I have little time to waste on chitchat!"); + elseif(e.message:findi("thex mallet")) then + e.self:Say("The Thex Mallet is a very special weapon of elven creation. It is as ancient as Norrath itself. Queen Cristanos commands that we find it and return it to Loveal S'nez. That is all you need to know."); + elseif(e.message:findi("utalk adarev otcin")) then + e.self:Say("You speak the words of the Dead. You must be the assistance Loveal was to send. You must work quickly! Inside Befallen are the three pieces to the [Thex Mallet] which are to be returned to Loveal. Find Hubard L'rodd. He was my assistant. Give him this note and he should have information."); + e.other:SummonCursorItem(18891); -- A Tattered Cloth Note + end +end + +function event_death_complete(e) + if(math.random(100) < 15) then + eq.unique_spawn(21141,0,0,3036,-706,-39,0); -- chance for Dragoon Zytl to spawn. + end +end + +-- EOF commons - Kizdean_Gix \ No newline at end of file diff --git a/commons/Mojax_Hikspin.lua b/commons/Mojax_Hikspin.lua new file mode 100644 index 0000000..22bbc9a --- /dev/null +++ b/commons/Mojax_Hikspin.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi. How are you? The fish are biting pretty good. That is what Skipynn tells me. I sure wish I had a different [job]. If I did, I could fish all day long."); + elseif(e.message:findi("job")) then + e.self:Say("I am a messenger for [Antonius Bayle], ruler of the great city of [Qeynos]."); + elseif(e.message:findi("qeynos")) then + e.self:Say("Huh?! Have you been living in a cave? The great city of Qeynos is the mightiest nation in Antonica! You'd best journey toward the west and visit the city whose influence stretches beyond the horizons."); + elseif(e.message:findi("hall of truth")) then + e.self:Say("I have been expecting you. I am very parched. Could you please get me a bottle of milk? Once you do that will show you where I hid the note."); + elseif(e.message:findi("antonius bayle")) then + e.self:Say("How can it be that you do not know of Antonius Bayle? Was it not he who named this great continent of Antonica? Is it not he who rules over the most powerful city on Norrath? Surely you jest!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local milk = item_lib.count_handed_item(e.self, e.trade, {13087}); + + if(e.self:GetX() == 2770 and e.self:GetY() == -306 and milk > 0) then + repeat + e.self:Say("Aaahhhh. Now that is refreshing. Just let me rest for a bit. The note is safe and sound in my bedroll inside the inn."); + e.other:Faction(e.self,281,1); -- Faction: Knights of Truth + e.other:Faction(e.self,271,-1); -- Faction: Dismal Rage + e.other:Faction(e.self,330,-1); -- Faction: The Freeport Militia + e.other:Faction(e.self,311,1); -- Faction: Steel Warriors + e.other:Faction(e.self,362,1); -- Faction: Priests of Marr + e.other:QuestReward(e.self,0,0,0,0,0,1000); + milk = milk - 1; + until milk == 0; + + eq.unique_spawn(21136,8,0,2720,-520,-51,0); -- NPC: Duggin_Scumber + eq.start(eq.ChooseRandom(9,10)); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if((e.self:GetGrid() == 9 and e.wp == 22) or (e.self:GetGrid() == 10 and e.wp == 46)) then + e.self:Say("Here you are. I hid it in this box behind the marker. Take it to Eastyana of the Temple of Marr. Goodbye."); + eq.create_ground_object(18822,3641,-520,-51,0,300000); + end +end diff --git a/commons/Noresa_Sparkle.lua b/commons/Noresa_Sparkle.lua new file mode 100644 index 0000000..9acbc79 --- /dev/null +++ b/commons/Noresa_Sparkle.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("He.. Hello. Wou.. would you like to buy something? Be quick or [Kizdean] will return!"); + elseif(e.message:findi("Kizdean")) then + e.self:Say("Sshhh..Please..save me. Get..rid..of..him."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 17931})) then + e.self:Say("Oh!!! Thank you. You are my hero. I have been held captive by that horrid dark elf for weeks. Please take this. It was the key to a gem case which was stolen from me by an unseen rogue. If you find the gem case you can take it and the key to the original craftsman. He can open it with only two keys."); + e.other:QuestReward(e.self,0,0,0,0,12352,15000); -- Tiny Key 2 + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EOF -- ZONE: commons -- NAME: Noresa_Sparkle \ No newline at end of file diff --git a/commons/Ranvigoz_Tonsmith.lua b/commons/Ranvigoz_Tonsmith.lua new file mode 100644 index 0000000..bd85c2a --- /dev/null +++ b/commons/Ranvigoz_Tonsmith.lua @@ -0,0 +1,43 @@ +-- resize crafted armor to small size + +function event_say(e) + if(e.other:GetFaction(e.self) < 6) then + if(e.message:findi("hail")) then + e.self:Say("Hail! I am Ranvigoz Tonsmith. My brother Timtok and I are some of the finest smiths this side of Kaladim. If you are interested we will happily [resize] your [Crafted Armor] down to a more manageable size."); + elseif(e.message:findi("resize")) then + e.self:Say("I will resize Crafted Bracers, Greaves, a Pauldron or a Breastplate. My brother will resize Crafted Gauntlets, a Vambrace, a Helm or Boots. Just give me the armor and I will resize it for you."); + elseif(e.message:findi("crafted armor")) then + e.self:Say("Crafted Armor is made by the Meadowgreen smiths. They can be found in the southern part of the Karanas."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 6) then + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4177})) then + factionsay(e) + e.other:QuestReward(e.self,0,0,0,0,4185); -- Item: Small Crafted Bracers + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4179})) then + factionsay(e) + e.other:QuestReward(e.self,0,0,0,0,4187); -- Item: Small Crafted Greaves + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4175})) then + factionsay(e) + e.other:QuestReward(e.self,0,0,0,0,4183); -- Item: Small Crafted Pauldron + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4174})) then + factionsay(e) + e.other:QuestReward(e.self,0,0,0,0,4182); -- Item: Small Crafted Breastplate + end + end + item_lib.return_items(e.self, e.other, e.trade); +end + +function factionsay(e) + e.self:Say("Here is your armor. I hope it fits better now."); + e.other:Faction(e.self,229,1,0); -- coalition of tradefolk + e.other:Faction(e.self,281,1,0); -- knights of truth + e.other:Faction(e.self,291,1,0); -- merchants of qeynos + e.other:Faction(e.self,336,1,0); -- coalition of trade folk underground +end +-- EOF zone: commons NPC: Ranvigoz_Tonsmith diff --git a/commons/Simon_Aldicott.lua b/commons/Simon_Aldicott.lua new file mode 100644 index 0000000..41f07a0 --- /dev/null +++ b/commons/Simon_Aldicott.lua @@ -0,0 +1,31 @@ +-- final task in quest for the spell: divine might + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail and well met. I am Simon Aldicott, a cleric in the service of Mithaniel Marr. I've been sent here to prepare a funeral service for one of our lost to join Marr in his kingdom."); + elseif(e.message:findi("funeral service")) then + e.self:Say("Are you the brave knight whom Valeron sent to meet me here? If so please place the remains in the coffin and seal it. Then hand me the coffin so that we may bless it in the waters of this lake."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6708})) then + e.self:Emote("places the coffin in the water and begins to pray. 'Lord of Valor high above, take this knight, your loyal child, into thy kingdom and all that is holy! What is that thing!'"); + eq.spawn2(21031,0,0,2901,259.7,-51,25); --a tortured revenant + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 6709})) then + e.self:Say("Thank you, Knight. With this task accomplished, I shall reward you with this scroll. It is an ancient spell that only the holiest of knights may cast. Remember your duty!"); + e.other:Faction(e.self,362,10,0); -- priests of marr + e.other:Faction(e.self,330,-1,0); -- freeport militia + e.other:Faction(e.self,281,1,0); -- knights of truth + e.other:QuestReward(e.self,0,0,0,0,15693,20000); -- Item: Spell: Divine Might + end + item_lib.return_items(e.self, e.other, e.trade); +end + +function event_signal(e) + e.self:Say("Tis a sad thing. His soul was twisted to its current state somehow and he thought YOU were the foul Teir'Dal who destroyed him in the first place. But that is no matter..you have freed him to stand by Marrs side once more! Now, give me the ash so that I may finally put him to rest. In return for your valor I shall provide you with an ancient spell unknown to most Holy Knights of Marr."); +end + +-- EOF zone: commons npc: Simon_Aldicott diff --git a/commons/Skipynn_Stoneheart.lua b/commons/Skipynn_Stoneheart.lua new file mode 100644 index 0000000..2f45628 --- /dev/null +++ b/commons/Skipynn_Stoneheart.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello to you! I hope you do not plan on fishing here. I have claimed this spot. Try the other side of the lake."); + end +end diff --git a/commons/Timtok_Tonsmith.lua b/commons/Timtok_Tonsmith.lua new file mode 100644 index 0000000..71b47d7 --- /dev/null +++ b/commons/Timtok_Tonsmith.lua @@ -0,0 +1,45 @@ +-- resize crafted armor to small size + +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 0) then + if(e.message:findi("hail")) then + e.self:Say("Hail! I am Timtok Tonsmith. My brother Ranvigoz and I are some of the finest smiths this side of Kaladim. If you are interested we will happily [resize] your [Crafted Armor] down to a more manageable size."); + elseif(e.message:findi("resize")) then + e.self:Say("I will resize Crafted Gauntlets, a Vambrace, a Helm or Boots. My brother will resize Crafted Bracers, Greaves, a Pauldrun or a Breastplate. Just give me the armor and I will resize it for you."); + elseif(e.message:findi("crafted armor")) then + e.self:Say("Crafted Armor is made by the Meadowgreen smiths. They can be found in the southern part of the Karanas."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 0) then + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4178})) then + factionsay(e) + e.other:QuestReward(e.self,0,0,0,0,4186); -- Item: Small Crafted Gauntlets + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4176})) then + factionsay(e) + e.other:QuestReward(e.self,0,0,0,0,4184); -- Item: Small Crafted Vambraces + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4173})) then + factionsay(e) + e.other:QuestReward(e.self,0,0,0,0,4181); -- Item: Small Crafted Helm + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4180})) then + factionsay(e) + e.other:QuestReward(e.self,0,0,0,0,4188); -- Item: Small Crafted Plate Boots + end + end + item_lib.return_items(e.self, e.other, e.trade); +end + + +function factionsay(e) + e.self:Say("Here is your armor. I hope it fits better now."); + e.other:Faction(e.self,229,1,0); -- coalition of tradefolk + e.other:Faction(e.self,281,1,0); -- knights of truth + e.other:Faction(e.self,291,1,0); -- merchants of qeynos + e.other:Faction(e.self,336,1,0); -- coalition of trade folk underground +end + +-- EOF zone: commons NPC: Timtok_Tonsmith diff --git a/commons/Wallin_Slyfoot.lua b/commons/Wallin_Slyfoot.lua new file mode 100644 index 0000000..7a5a127 --- /dev/null +++ b/commons/Wallin_Slyfoot.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What? What do you want? Are you here to assist me?"); + elseif(e.message:findi("assist")) then + e.self:Say("Yes..yes..of course you will. It is a matter of the utmost importance. I need this letter to be delivered to Master Whoopal in the Nektulos forest but I must also get these Brussels sprouts to my granny before they spoil. Please deliver this message for me?"); + e.other:SummonCursorItem(18957); -- Leatherfoot Raider Orders + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade); +end + +-- Wallin_Slyfoot.pl +-- Part of Innoruuk Disciple \ No newline at end of file diff --git a/commons/a_Tortured_Revenant.lua b/commons/a_Tortured_Revenant.lua new file mode 100644 index 0000000..c860622 --- /dev/null +++ b/commons/a_Tortured_Revenant.lua @@ -0,0 +1,5 @@ +function event_death_complete(e) + eq.signal(21011,1); -- NPC: Simon_Aldicott +end + +-- EOF zone: commons NPC: a_Tortured_Revenant \ No newline at end of file diff --git a/convert b/convert new file mode 100644 index 0000000..f487a84 --- /dev/null +++ b/convert @@ -0,0 +1,16 @@ +#!/bin/sh + +for f in */[0-9]*.pl +do + N=`cat $f | grep '#END' | cut -d- -f3 | tr -d '[ \t\n\r]'` + if [ -z "$N" ]; then + echo "$f had no standard name in it" + continue; + fi + D=`dirname "$f"` + if [ ! -r "$D/$N.pl" ]; then + echo "$f -> $D/${N}.pl" + mv $f "$D/${N}.pl" + fi +done + diff --git a/crushbone/Kelynn.lua b/crushbone/Kelynn.lua new file mode 100644 index 0000000..d4efe40 --- /dev/null +++ b/crushbone/Kelynn.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What are you doing here?!! Get out before you find yourself mining for these wretched beasts!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12184})) then + e.self:Say("You were sent by Geeda!! Here. Take the information. Maybe next you shall earn your [Scout Blade] from Laren. Quickly!! Leave at once!!"); + e.other:Faction(e.self,316,10); -- Faction: Scouts of Tunare + e.other:QuestReward(e.self,0,0,0,0,12183,500); -- Crushbone Information + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EOF Kelynn \ No newline at end of file diff --git a/crushbone/Lord_Darish.lua b/crushbone/Lord_Darish.lua new file mode 100644 index 0000000..588de21 --- /dev/null +++ b/crushbone/Lord_Darish.lua @@ -0,0 +1,12 @@ +function event_combat(e) + if(e.joined) then + random_say = math.random(100); + if(random_say <= 30) then + e.self:Say("Death!! Death to all who oppose the Crushbone orcs!!"); + elseif(random_say <= 65) then + e.self:Say("Hail, Emperor Crush!!"); + else + e.self:Say("Fall before the might of Clan Crushbone!!"); + end + end +end \ No newline at end of file diff --git a/crushbone/Orc_Scoutsman.lua b/crushbone/Orc_Scoutsman.lua new file mode 100644 index 0000000..588de21 --- /dev/null +++ b/crushbone/Orc_Scoutsman.lua @@ -0,0 +1,12 @@ +function event_combat(e) + if(e.joined) then + random_say = math.random(100); + if(random_say <= 30) then + e.self:Say("Death!! Death to all who oppose the Crushbone orcs!!"); + elseif(random_say <= 65) then + e.self:Say("Hail, Emperor Crush!!"); + else + e.self:Say("Fall before the might of Clan Crushbone!!"); + end + end +end \ No newline at end of file diff --git a/crushbone/Orc_Warden.lua b/crushbone/Orc_Warden.lua new file mode 100644 index 0000000..588de21 --- /dev/null +++ b/crushbone/Orc_Warden.lua @@ -0,0 +1,12 @@ +function event_combat(e) + if(e.joined) then + random_say = math.random(100); + if(random_say <= 30) then + e.self:Say("Death!! Death to all who oppose the Crushbone orcs!!"); + elseif(random_say <= 65) then + e.self:Say("Hail, Emperor Crush!!"); + else + e.self:Say("Fall before the might of Clan Crushbone!!"); + end + end +end \ No newline at end of file diff --git a/crushbone/Retlon_Brenclog.lua b/crushbone/Retlon_Brenclog.lua new file mode 100644 index 0000000..c834848 --- /dev/null +++ b/crushbone/Retlon_Brenclog.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh my word!! A rescuer!! Hurry! Get me out of these chains!! Go find the orc who has the keys!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {copper = 1})) then + e.self:Say("No, no!! I do not need this!! Get me key number 15!!"); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20015})) then + e.self:Say("Good work!! I shall be on my way. Farewell my friend!!"); + e.other:Faction(e.self,245,2); -- Faction: Eldritch Collective + e.other:Faction(e.self,238,-1); -- Faction: Dark Reflection + e.other:Faction(e.self,239,-1); -- Faction: The Dead + e.other:Faction(e.self,255,1); -- Faction: Gem Choppers + e.other:Faction(e.self,333,1); -- Faction: King Ak'Anon + e.other:QuestReward(e.self,0,math.random(10),math.random(5),0,0,1000); + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1717})) then + e.self:Say("Ah! A letter from my brother! Mmm... no... no I don't have Tergon's spellbook. The orc's prophet took it and then they locked me in chains! Now why don't you go do something useful and get me key number 15!!"); + e.other:Faction(e.self,245,2); -- Faction: Eldritch Collective + e.other:Faction(e.self,238,-1); -- Faction: Dark Reflection + e.other:Faction(e.self,239,-1); -- Faction: The Dead + e.other:Faction(e.self,255,1); -- Faction: Gem Choppers + e.other:Faction(e.self,333,1); -- Faction: King Ak'Anon + e.other:QuestReward(e.self,0,0,0,0,0,500); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EOF Retlon Benclog diff --git a/crushbone/The_Prophet.lua b/crushbone/The_Prophet.lua new file mode 100644 index 0000000..588de21 --- /dev/null +++ b/crushbone/The_Prophet.lua @@ -0,0 +1,12 @@ +function event_combat(e) + if(e.joined) then + random_say = math.random(100); + if(random_say <= 30) then + e.self:Say("Death!! Death to all who oppose the Crushbone orcs!!"); + elseif(random_say <= 65) then + e.self:Say("Hail, Emperor Crush!!"); + else + e.self:Say("Fall before the might of Clan Crushbone!!"); + end + end +end \ No newline at end of file diff --git a/crushbone/a_dwarven_slave.lua b/crushbone/a_dwarven_slave.lua new file mode 100644 index 0000000..6063865 --- /dev/null +++ b/crushbone/a_dwarven_slave.lua @@ -0,0 +1,49 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Slavedrivers are just lackeys for the [taskmaster]. He is the real orc in charge."); + elseif(e.message:findi("taskmaster")) then + e.self:Say("The taskmaster?? He is that large orc who runs around with that [bronze earring] in his ear."); + elseif(e.message:findi("bronze earring")) then + e.self:Say("Yeah, a bronze earring; He wears it like a newly crowned king. If I ever had that earring I know I would stand a chance at escape."); + end +end + +function event_trade(e) + local item_lib = require("items"); + -- All confirmed live experience + + if(e.self:GetRace() == 8 and e.self:GetGender() == 0) then -- male dwarven slave + if(item_lib.check_turn_in(e.self, e.trade, {copper = 1})) then + e.self:Say("No, no!! I do not need this!! Get me key number 16!!"); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20016})) then + e.self:Say("Good work!! I shall be on my way. Farewell my friend!!"); + e.other:Faction(e.self,227,2); -- Faction: Clerics of Underfoot + e.other:Faction(e.self,274,2); -- Faction: Kazon Stormhammer + e.other:Faction(e.self,293,1); -- Faction: Miners Guild 249 + e.other:QuestReward(e.self,math.random(0,5),math.random(0,5),math.random(0,2),0,0,800); + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10351})) then + e.self:Say("You killed the taskmaster?! Absolutely amazing! The orcs will be fighting among themselves for power now and I can disappear in the commotion. Thanks, friend! Take this for your deeds!"); + e.other:QuestReward(e.self,0,0,0,0,18905,5000); -- Item: A Worn Rune + eq.depop_with_timer(); + end + elseif(e.self:GetRace() == 8 and e.self:GetGender() == 1) then -- female dwarven slave + if(item_lib.check_turn_in(e.self, e.trade, {copper = 1})) then + e.self:Say("What is this!!? Get me key number 17!!"); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20017})) then + e.self:Say("Good work!! I shall be on my way. Farewell my friend!!"); + e.other:Faction(e.self,312,2); -- Faction: Storm Guard + e.other:Faction(e.self,274,1); -- Faction: Kazon Stormhammer + e.other:Faction(e.self,293,1); -- Faction: Miners Guild 249 + e.other:Faction(e.self,290,1); -- Faction: Merchants of Kaladim + e.other:Faction(e.self,232,-1); -- Faction: Craknek Warriors + e.other:QuestReward(e.self,math.random(0,5),math.random(0,5),math.random(0,2),0,0,800); + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10351})) then + e.self:Say("You killed the taskmaster?! Absolutely amazing! The orcs will be fighting among themselves for power now and I can disappear in the commotion. Thanks, friend! Take this for your deeds!"); + e.other:QuestReward(e.self,0,0,0,0,18906,5000); -- Item: A Small Wood Carving + eq.depop_with_timer(); + end + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/crushbone/a_dwarven_smith.lua b/crushbone/a_dwarven_smith.lua new file mode 100644 index 0000000..45fe207 --- /dev/null +++ b/crushbone/a_dwarven_smith.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("ringmail")) then + e.self:Say("The king was the last person I heard of who was wearing what sounded like my ringmail. Return it to me and I will reward you with a fine weapon I forged myself."); + elseif(e.message:findi("interest")) then + e.self:Say("Okay, then! The first item you can get back for me is my brass shield. Up on that hill, over where the trainees practice, there is usually an instructor. Last time I saw my shield, it was in the hands of one of those blasted lackeys. Bring it back to me!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10351}, 0)) then -- Brass Earring + e.self:Say("Outstanding! If you can kill the taskmaster, you might prove useful in recovering the items the orcs took from me when they caught me out in the Faydarks. Interested in helping me out?"); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,13850,5000); -- Unfinished Blade Mold + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 9307}, 0)) then -- Shiny Brass Shield + e.self:Say("MY SHIELD!! Excellent, laddie! Next item on the list is my ringmail. Once I have my [ringmail], I am out of here for good. I will finally be able to leave!"); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,13851,6000); -- Unfinished Blade Mold + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3301}, 0)) then + e.self:Say("AHA!! My ringmail!! My, you ARE a resourceful one! Here is your reward as promised. It is exquisite, if I do say so myself. You might also wish to tell the priest in the cell over there that the king is dead. I am sure he will be pleased to hear that and might even be able to help you further. Farewell! It's time for me to make my escape!"); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,6315,10000); -- Item: Dwarven Mace + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EOF a dwarven smith \ No newline at end of file diff --git a/crushbone/an_elven_priest.lua b/crushbone/an_elven_priest.lua new file mode 100644 index 0000000..1517bb2 --- /dev/null +++ b/crushbone/an_elven_priest.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("king is dead")) then + e.self:Say("Dead you say? My goodness! Did you manage to slay the warlord too? If you provide me with proof of his death, I can enchant the mace the dwarf gave you as payment. But, I will require the proof first!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Have you the other item I require?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2301})) then + e.self:Say("Erollisi be praised! You slew the orc lord! Well, here is a token of my appreciation! Should you wish to have that mace enchanted, just hand me the mace and my token and I shall uphold my end of the bargain!"); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,1900,6000); -- Item: Prayer Cloth of Tunare + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 6315,item2 = 1900},1,text)) then + e.self:Say("As promised, here is your mace. Let it not fall into dark hands as its power is hidden until combat when it will reveal its true nature. Fare thee well!"); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,6305,6000); -- Item: Screaming Mace + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EOF an elven priest \ No newline at end of file diff --git a/crushbone/an_elven_slave.lua b/crushbone/an_elven_slave.lua new file mode 100644 index 0000000..d171dcd --- /dev/null +++ b/crushbone/an_elven_slave.lua @@ -0,0 +1,82 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Slavedrivers are just lackeys for the [taskmaster]. He is the real orc in charge."); + elseif(e.message:findi("taskmaster")) then + e.self:Say("The taskmaster?? He is that large orc who runs around with that [bronze earring] in his ear."); + elseif(e.message:findi("bronze earring")) then + e.self:Say("Yeah, a bronze earring; He wears it like a newly crowned king. If I ever had that earring I know I would stand a chance at escape."); + end +end + +function event_trade(e) + local item_lib = require("items"); + -- All Confirmed Live Experience + + if(e.self:GetRace() == 5 and e.self:GetGender() == 0) then -- male high elf slave + if(item_lib.check_turn_in(e.self, e.trade, {copper = 1})) then + e.self:Say("Not that!! I need key number 20!!"); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20020})) then + e.self:Say("Good work!! I shall be on my way. Farewell my friend!!"); + e.other:Faction(e.self,275,2,0); -- Faction: Keepers of the Art + e.other:Faction(e.self,279,1,0); -- Faction: King Tearis Thex + e.other:Faction(e.self,246,1,0); -- Faction: Faydarks Champions + e.other:Faction(e.self,239,-1,0); -- Faction: The Dead + e.other:QuestReward(e.self,math.random(0,5),math.random(0,5),math.random(0,2),0,0,800); + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10351})) then + e.self:Say("You killed the taskmaster?! Absolutely amazing! The orcs will be fighting among themselves for power now and I can disappear in the commotion. Thanks, friend! Take this for your deeds!"); + e.other:QuestReward(e.self,0,0,0,0,18901,5000); -- Item: A Ragged Cloth Note + eq.depop_with_timer(); + end + elseif(e.self:GetRace() == 5 and e.self:GetGender() == 1) then -- female high elf slave + if(item_lib.check_turn_in(e.self, e.trade, {copper = 1})) then + e.self:Say("Please!! I need a key with a number 21!!"); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20021})) then + e.self:Say("Good work!! I shall be on my way. Farewell my friend!!"); + e.other:Faction(e.self,275,2,0); -- Faction: Keepers of the Art + e.other:Faction(e.self,279,1,0); -- Faction: King Tearis Thex + e.other:Faction(e.self,246,1,0); -- Faction: Faydarks Champions + e.other:Faction(e.self,239,-1,0); -- Faction: The Dead + e.other:QuestReward(e.self,math.random(0,5),math.random(0,5),math.random(0,2),0,0,800); + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10351})) then + e.self:Say("You killed the taskmaster?! Absolutely amazing! The orcs will be fighting among themselves for power now and I can disappear in the commotion. Thanks, friend! Take this for your deeds!"); + e.other:QuestReward(e.self,0,0,0,0,18902,5000); -- Item: A Torn Drawing + eq.depop_with_timer(); + end + elseif(e.self:GetRace() == 4 and e.self:GetGender() == 0) then -- male wood elf slave + if(item_lib.check_turn_in(e.self, e.trade, {copper = 1})) then + e.self:Say("Not that!! I need key number 18!!"); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20018})) then + e.self:Say("Good work!! I shall be on my way. Farewell my friend!!"); + e.other:Faction(e.self,326,2); -- Faction: Emerald Warriors + e.other:Faction(e.self,270,-1); -- Faction: Indigo Brotherhood + e.other:Faction(e.self,325,1); -- Faction: Merchants of Felwithe + e.other:Faction(e.self,276,1); -- Faction: Kelethin Merchants + e.other:QuestReward(e.self,math.random(0,5),math.random(0,5),math.random(0,2),0,0,800); + e.other:GiveCash(0,7,3,0); + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10351})) then + e.self:Say("You killed the taskmaster?! Absolutely amazing! The orcs will be fighting among themselves for power now and I can disappear in the commotion. Thanks, friend! Take this for your deeds!"); + e.other:QuestReward(e.self,0,0,0,0,18903,5000); -- Item: A Tattered Cloth Note + eq.depop_with_timer(); + end + elseif(e.self:GetRace() == 4 and e.self:GetGender() == 1) then -- female wood elf slave + if(item_lib.check_turn_in(e.self, e.trade, {copper = 1})) then + e.self:Say("Please!! I need a key with a number 19!!"); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20019})) then + e.self:Say("Good work!! I shall be on my way. Farewell my friend!!"); + e.other:Faction(e.self,326,2); -- Faction: Emerald Warriors + e.other:Faction(e.self,270,-1); -- Faction: Indigo Brotherhood + e.other:Faction(e.self,325,1); -- Faction: Merchants of Felwithe + e.other:Faction(e.self,276,1); -- Faction: Kelethin Merchants + e.other:QuestReward(e.self,math.random(0,5),math.random(0,5),math.random(0,2),0,0,800); + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10351})) then + e.self:Say("You killed the taskmaster?! Absolutely amazing! The orcs will be fighting among themselves for power now and I can disappear in the commotion. Thanks, friend! Take this for your deeds!"); + e.other:QuestReward(e.self,0,0,0,0,18904,5000); -- Item: A Faded Wedding Cloth + eq.depop_with_timer(); + end + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/crushbone/orc_centurion.lua b/crushbone/orc_centurion.lua new file mode 100644 index 0000000..588de21 --- /dev/null +++ b/crushbone/orc_centurion.lua @@ -0,0 +1,12 @@ +function event_combat(e) + if(e.joined) then + random_say = math.random(100); + if(random_say <= 30) then + e.self:Say("Death!! Death to all who oppose the Crushbone orcs!!"); + elseif(random_say <= 65) then + e.self:Say("Hail, Emperor Crush!!"); + else + e.self:Say("Fall before the might of Clan Crushbone!!"); + end + end +end \ No newline at end of file diff --git a/crushbone/orc_emissary.lua b/crushbone/orc_emissary.lua new file mode 100644 index 0000000..588de21 --- /dev/null +++ b/crushbone/orc_emissary.lua @@ -0,0 +1,12 @@ +function event_combat(e) + if(e.joined) then + random_say = math.random(100); + if(random_say <= 30) then + e.self:Say("Death!! Death to all who oppose the Crushbone orcs!!"); + elseif(random_say <= 65) then + e.self:Say("Hail, Emperor Crush!!"); + else + e.self:Say("Fall before the might of Clan Crushbone!!"); + end + end +end \ No newline at end of file diff --git a/crushbone/orc_slaver.lua b/crushbone/orc_slaver.lua new file mode 100644 index 0000000..588de21 --- /dev/null +++ b/crushbone/orc_slaver.lua @@ -0,0 +1,12 @@ +function event_combat(e) + if(e.joined) then + random_say = math.random(100); + if(random_say <= 30) then + e.self:Say("Death!! Death to all who oppose the Crushbone orcs!!"); + elseif(random_say <= 65) then + e.self:Say("Hail, Emperor Crush!!"); + else + e.self:Say("Fall before the might of Clan Crushbone!!"); + end + end +end \ No newline at end of file diff --git a/crushbone/orc_taskmaster.lua b/crushbone/orc_taskmaster.lua new file mode 100644 index 0000000..588de21 --- /dev/null +++ b/crushbone/orc_taskmaster.lua @@ -0,0 +1,12 @@ +function event_combat(e) + if(e.joined) then + random_say = math.random(100); + if(random_say <= 30) then + e.self:Say("Death!! Death to all who oppose the Crushbone orcs!!"); + elseif(random_say <= 65) then + e.self:Say("Hail, Emperor Crush!!"); + else + e.self:Say("Fall before the might of Clan Crushbone!!"); + end + end +end \ No newline at end of file diff --git a/crushbone/orc_trainer.lua b/crushbone/orc_trainer.lua new file mode 100644 index 0000000..588de21 --- /dev/null +++ b/crushbone/orc_trainer.lua @@ -0,0 +1,12 @@ +function event_combat(e) + if(e.joined) then + random_say = math.random(100); + if(random_say <= 30) then + e.self:Say("Death!! Death to all who oppose the Crushbone orcs!!"); + elseif(random_say <= 65) then + e.self:Say("Hail, Emperor Crush!!"); + else + e.self:Say("Fall before the might of Clan Crushbone!!"); + end + end +end \ No newline at end of file diff --git a/crushbone/orc_warlord.lua b/crushbone/orc_warlord.lua new file mode 100644 index 0000000..588de21 --- /dev/null +++ b/crushbone/orc_warlord.lua @@ -0,0 +1,12 @@ +function event_combat(e) + if(e.joined) then + random_say = math.random(100); + if(random_say <= 30) then + e.self:Say("Death!! Death to all who oppose the Crushbone orcs!!"); + elseif(random_say <= 65) then + e.self:Say("Hail, Emperor Crush!!"); + else + e.self:Say("Fall before the might of Clan Crushbone!!"); + end + end +end \ No newline at end of file diff --git a/crushbone/royal_guard.lua b/crushbone/royal_guard.lua new file mode 100644 index 0000000..588de21 --- /dev/null +++ b/crushbone/royal_guard.lua @@ -0,0 +1,12 @@ +function event_combat(e) + if(e.joined) then + random_say = math.random(100); + if(random_say <= 30) then + e.self:Say("Death!! Death to all who oppose the Crushbone orcs!!"); + elseif(random_say <= 65) then + e.self:Say("Hail, Emperor Crush!!"); + else + e.self:Say("Fall before the might of Clan Crushbone!!"); + end + end +end \ No newline at end of file diff --git a/crystal/Ghost_of_Burdael.lua b/crystal/Ghost_of_Burdael.lua new file mode 100644 index 0000000..a295505 --- /dev/null +++ b/crystal/Ghost_of_Burdael.lua @@ -0,0 +1,25 @@ +function event_spawn(e) + eq.set_timer("depop",600000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("says, in an unknown tongue, 'Hgidf! Hsdh je shafoin jsjsi!... Frundlpap gnut hfna iiongio... Woha?! Yiond?'"); + elseif(e.message:findi("Yiond") or e.message:findi("gurintop")) then + e.self:Emote("says, in an unknown tongue, 'Yiond?!?!? Yohodfnon jf awhicin fhnn fhgou vu ganferdefli sahbfnfn. Yexsf asfsdfupoi xubeni gindas hguj quetsrrop. Pliuhghtn gurintop noe?'"); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/crystal/Historian_Baenek.lua b/crystal/Historian_Baenek.lua new file mode 100644 index 0000000..e96e669 --- /dev/null +++ b/crystal/Historian_Baenek.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("As I am the remaining priest of Brell in Froststone, it is my humble duty to preserve the history of the Coldain. Do you wish to listen to our history?"); + elseif(e.message:findi("history")) then + e.self:Say("Very well. You are wise to seek knowledge for it is power. Shall I start from the beginning?"); + elseif(e.message:findi("beginning")) then + e.self:Say("In the early days, when Brell created his children, our ancestors were chosen to seek out materials for our first city on the mainland. It was during one such voyage that a fleet of dwarven explorers became lost when Prexus set upon them such a storm of ferocity that when it was done, days later, the dwarves had no idea where they were. Colin Dain, with his great leadership and a vision from Brell, led the remaining ships that survived the storms, toward land. In those early times, many a dwarf was found frozen to death on the decks of the ships on this arduous journey but with [Colin]'s determination and encouragement, our people pressed on."); + elseif(e.message:findi("colin")) then + e.self:Say("The fleet eventually landed but the landing did not fare better than the voyage. Prexus was always jealous of Brell, and sent both large and small icebergs to deter us from our mission. The ships were battered and torn apart and many of our brethren sank to the ocean floor. What remained of our people, followed Colin from the shore to find shelter from the bone chilling wind in nearby caves in a great mountain of ice and snow in what is now called the [Eastern Wastes]"); + elseif(e.message:findi("eastern waste")) then + e.self:Say("The Eastern Wastes is where the Coldain established their first settlement. It was then that we discovered the hard packed ice was as strong as any stone or wood. With this ice, we were able to carve out structures, right out of the ice. Through time, the settlement grew into a town, and then into a keep. The keep was then named Froststone for the stone-like ice it had been built of and with this, we realized our stay was permanent. Up until that point, we had only encountered animals, wolves and walrus' for their skins and meat and all was good. Then we encountered the [frost giants]."); + elseif(e.message:findi("frost giant")) then + e.self:Say("The frost giants were the first intelligent life, if you could call them that, the Coldain encountered. Those behemoths did not take kindly to our settlement upon their lands and so, as with all that are jealous of Brell's finest creation, they waged war. They thought they had caught us by surprise but we knew they were coming. We were just fooling them into thinking we were unaware! The battle lasted for many [days]."); + elseif(e.message:findi("days")) then + e.self:Say("It lasted for many days. Didn't you hear me the first time? Where was I? Oh, yes, the battle. Colin Dain, Brell rest his soul, decided that the giants were not worth our time so he gathered our people and lead us deeper into the mountains to seek another [place]. And the stubborn beasts followed us! It was then that Colin, Brell rest his soul, stayed behind with a small band of volunteers and led a suicide ambush to buy the others time to escape. He paid with his life, and so in honor of this exemplary dwarf, we called ourselves the Coldain and our leader bears the title of Dain."); + elseif(e.message:findi("place")) then + e.self:Emote("gestures toward the surrounding area and says 'The area known as the Crystal Caverns, which you see before you, was created in little more than four score years. A vision from Brell was granted to a Coldain miner by the name of Glight Snowchipper, who presented his proposal to Dain Frostreaver the First and the Dain, seeing the soundness of this plan, began construction immediately. A test came three decades later, when a giant scout followed one of our hunting parties back to our caverns and reported the location to the [chieftain] of the ice giants.'"); + elseif(e.message:findi("chieftain")) then + e.self:Emote("spits on the ground 'Slagd Frozentoe was its name. He led a small party of giants, only 250 or so. Glight was given the honor of leading the defense of the caverns and using his magical pickaxe, aptly named Snowchipper, he led his forces using hit and run tactics, felling many giants. With over half its forces dispatched, Slagd still managed to penetrate his way further into the cavern and would have made it to the city proper if not for the courageous act of [Glight].'"); + elseif(e.message:findi("glight")) then + e.self:Say("Glight led them on a wild chase, using false passageways and such, until he finally went down a passageway with no chance of escape. It was then that Glight triggered the cave-in of the passage burying the remaining giant forces and Glight's as well under tons of ice and snow. To honor this act of self-sacrifice, Brell rest his soul, the cavern is known as Glight's Fall. As a result of the cave-in, there looks to be a waterfall frozen in time. It is said his [ghost] still remains somewhere in the caverns. Peace was at hand for some time, but as with all things, it did not [last]."); + elseif(e.message:findi("ghost")) then + e.self:Emote("shivers slightly. 'Glight's ghost still roams these caverns. He can be heard wailing sometimes in the dead of night. We think it is near the place of his death but we do not know for sure. None who have seen him dare speak of it.'"); + elseif(e.message:findi("last")) then + e.self:Say("Strange [creatures] began to migrate into the caves. We do not know why they came, they just did. They turned out to be some of the most dangerous foes we have ever encountered as they used stealth and camouflage to attack their prey. Many a kin has fallen prey to them with only their shrieks of agony and terror to echo throughout the halls as notice of their deaths. This did not bode well for the remaining Coldain, so it was decided that this keep was to be abandoned. All but a few who refused to leave stayed. And those are our ancestors. We are the only Coldain left on this land. We have heard no word from the others and assume them gone."); + elseif(e.message:findi("creature")) then + e.self:Say("We call them crystal widows. You will understand when you see them. Then there are the stalagterrors. You may not realize they are there until they open their great maw to devour you as they wrap their frosty tentacles around you. A recent arrival have been the Ry'Gorr. They had started mining the tunnels and have not yet discovered our presence here for we kill all who wander too close. There may be others we have not seen before, so be wary."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18237}, 0)) then + e.self:Say("You found one of our lost tomes! A lost volume of the Book of Grudges, quite a find! Oh, dear Brell! This evidence proves that the legend of Burdael is true! Thank you, " .. e.other:GetCleanName() .. ". And now I suppose you wish to meet his ghostly form. I have sensed him from time to time. I will call to him now. Go and wait for him in the lower halls. His spirit sometimes calls to me from the fearsome stalagterrors' lair. Be wary though, undeath may have twisted his mind beyond reason."); + e.other:Faction(e.self,460,5); -- citizen of frostone + e.other:QuestReward(e.self,0,0,0,0,0,1000); + eq.spawn2(121015,0,0,-308,-151,-554,0); -- NPC: Ghost_of_Burdael + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/crystal/a_geonid.lua b/crystal/a_geonid.lua new file mode 100644 index 0000000..a70556a --- /dev/null +++ b/crystal/a_geonid.lua @@ -0,0 +1,10 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1693}, 0)) then + e.self:Emote("seems as if it doesn't recognize you as anything of importance. You attempt to speak with the geonid through your velium focus but all you are able to hear is the same though over and over.., Eat. You have gained no knowledge from these creatures but you notice your focus has been altered slightly."); + e.other:Faction(e.self,458,10); -- Faction: Geonid Collective + e.other:QuestReward(e.self,0,0,0,0,1701,0); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/cshome/Asherah_the_Torch_Bearer.lua b/cshome/Asherah_the_Torch_Bearer.lua new file mode 100644 index 0000000..fe71106 --- /dev/null +++ b/cshome/Asherah_the_Torch_Bearer.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings! Welcome to Sunset House, enjoy your stay, and the solace that our home provides. I am Asherah the Torch Bearer guardian of this realm, if you ever need me or want to chat I can be found patrolling the grounds, I stand watch over all who come to this place, and my special friends who live within this house."); + elseif(e.message:findi("your story"))then + e.self:Say("Asherah had the unfortunate distinction of being the first memorial NPC. While she was Asherah in EverQuest, in real life she was known as Grace, though her friends just called her Gams. She had earned her PhD from the University of Florida and worked as a research chemist. She hoped that this would assist her in finding a cure to a genetic metabolic disorder she had been born with. Unfortunately, it was not to be and on September 24th, 1999, at the age of 25, she lost her life to it. Asherah was promoted to Guide in June of 1999 and was assigned to Rallos Zek. When Vallon Zek opened, she transferred to it, so as to help get it off to a great start. She spent almost 35 hours a week between Guiding and playing, and always loved to spend time with the people that make EverQuest run behind the scenes, the Guides. She showed us that there is a lot more to life, and why spend time self-absorbed when you can make other people happy, and in turn become truly happy yourself, even when all odds are against you. Asher"); + --The text from Allah's cuts off here, unfortunately. Will complete it if it is ever updated fully + end +end + +--Submitted by: Jim Mills +--Converted to LUA by Speedz diff --git a/cshome/Llara_the_Mysterious.lua b/cshome/Llara_the_Mysterious.lua new file mode 100644 index 0000000..e80e4d4 --- /dev/null +++ b/cshome/Llara_the_Mysterious.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail"))then + e.self:Say("Might you be an [apprentice] or a [guide]?' Llara then grins evilly..."); + elseif(e.message:findi("apprentice"))then + e.self:Say("Welcome to the Guide Program, " .. e.other:GetCleanName() .. ". I am sure you will enjoy your time here. Do not worry about being only an apprentice right now, I'm sure that in time you will be ready for promotion. This is truly the best place to be in the world. Good luck to you, " .. e.other:GetCleanName() .. "!"); + elseif(e.message:findi("guide"))then + e.self:Emote("cracks her whip in " .. e.other:GetCleanName() .. "'s direction and says, 'Well, if you are a guide, then what the heck are you doing here!?! Get to work on the queue, it's not going to be under 20 all day!.'"); + elseif(e.message:findi("miss you"))then + e.self:Say("I miss you, too, " .. e.other:GetCleanName() .. "! But don't worry about me. I am in a good place now, watching over all of you."); + elseif(e.message:findi("Valtron"))then + e.self:Say("I am Llara. I was a guide on Erollisi Marr some time ago. I passed away shortly after becoming an apprentice trainer. My rebirth came from the help of Valtron. He is that stinky little dorf always running around Norrath. Valtron held a memorial service on Erollisi Marr shortly after I passed away. It was truly a beautiful event. Many people showed up to honor my passage.' Llara smiles..."); + elseif(e.message:findi("your story"))then + e.self:Say("Llara was a Guide on Erollisi Marr server. She was there for 6 months and was also the training Co-Ordinator. David, her controller, was a private person but we did learn that he was married with a family and had a dry sense of humour that tickled us all. Llara was one of those Guides, who hardly ever missed a shift and if she did, she never missed posting it. She never complained, not about a petitioner, a peer or the weather. On one Sunday while waiting for new candidates for buffing Llara hadn't been in touch with us like she always was. The Guide Board was checked and it was noticed that she hadn't guided since Wednesday and for someone who was -always- around it seemed very strange. GM Valtron was called to ask when he might be in to buff the new apprentices and if he had heard anything from Llara. While talking to him, an email from Heather, David's daughter arrived. She explained that David had a heart attack on the Tuesday night and had sadly not survived."); + end +end + +--Submitted by: Jim Mills +--Converted to LUA by Speedz \ No newline at end of file diff --git a/cshome/Starzin_the_Sweet_One.lua b/cshome/Starzin_the_Sweet_One.lua new file mode 100644 index 0000000..ea84efe --- /dev/null +++ b/cshome/Starzin_the_Sweet_One.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail"))then + e.self:Say("A warm hello to you. " .. e.other:GetCleanName() .. "! Please make yourself at home here in the serene locale of Sunset Home. Here you can forget about the [queue]. and enjoy the company of your fellow guides!"); + elseif(e.message:findi("What queue?"))then + e.self:Say("Queue? What queue? We don't need no stinkin' QUEUE!' Starzin glances around and giggles gleefully. then whispers. 'Just don't tell anyone else!"); + end +end + +--Converted to LUA by Speedz diff --git a/dalnir/Haggle_Baron_Dalnir.lua b/dalnir/Haggle_Baron_Dalnir.lua new file mode 100644 index 0000000..e211500 --- /dev/null +++ b/dalnir/Haggle_Baron_Dalnir.lua @@ -0,0 +1,23 @@ +--Haggle Baron Dalnir is spawned from the Tormented Tradesman, and sticks around long enough to give us the final piece of the Greenmist puzzle that we need. +--After we get the design from him, we can forge the Greenmist Khukri in the Always Works forge in the same room. +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I have little time to speak. I can feel this facade weakening already. A Scaled Mystic came to me during my time of torment. He spoke to me. He said that a new time was hiding behind the darkness of the horizon. You seek Master Rile's Khukri. I can diagram it for you... Arrrgh! I feel the pull of torment upon me! Return to me with a piece of parchment, a quill, and Rile's Shattered Blade. Use your mirror again to bring me back and I will try to remember the design. Please be quick!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13051, item2 = 13063, item3 = 3888})) then --Crusaders of Greenmist (Greenmist Quest 8/8) + e.self:Emote("stares at the broken blade for some time. After a few moments of studying, the apparition begins to draw and scribble on the parchment. He works with amazing speed as the memories from his past flood from his quill. The diagrams and runes that etch the surface of the parchment begin to glow. The legendary Haggle Baron rolls the parchment and hands it to you. Smiling, he bows deeply and quickly fades away."); + e.other:QuestReward(e.self,0,0,0,0,3890); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/dalnir/The_undead_entity.lua b/dalnir/The_undead_entity.lua new file mode 100644 index 0000000..4c66a6b --- /dev/null +++ b/dalnir/The_undead_entity.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Emote("looks in the mirror and appears to be stunned by the memory of his former self. He drops the mirror, which causes it to crack slightly. You immediately grab it and place it back in your bag. The spirit looks at you and begins to transform. Ethereal strands of muscle, blood, and flesh come together and the Haggle Baron Dalnir appears."); + end +end \ No newline at end of file diff --git a/dalnir/a_coerced_channeler.lua b/dalnir/a_coerced_channeler.lua new file mode 100644 index 0000000..2de13a2 --- /dev/null +++ b/dalnir/a_coerced_channeler.lua @@ -0,0 +1,21 @@ +--Shaman Skull Quest 6 +function event_death_complete(e) + e.self:Shout("the river of Xinth..."); +end + +function event_trade(e) + local item_lib = require("items"); + --Turn in the a potion of swirling liquid + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12752})) then + e.other:QuestReward(e.self,0,0,0,0,12750);--give the player on of the Iksar skulls of the sisters... + e.self:Shout("Go to where the pines have been smashed. Must reach great heights!"); + eq.depop_with_timer(); + -- an npc named, Friend Vagnar the Channeler, is supposed to spawn and shout that text while running away, figure this would b easier on the server... + end + item_lib.return_items(e.self, e.other, e.trade) --return items if not the ones required +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/dalnir/a_coerced_smith.lua b/dalnir/a_coerced_smith.lua new file mode 100644 index 0000000..a1ce90f --- /dev/null +++ b/dalnir/a_coerced_smith.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks up at you. You can tell his spirit is broken. His scars speak of a severe beating."); + elseif(e.message:findi("hammer")) then + e.self:Emote("blinks a few times. 'The hammer my friend did have. He became sick and they took him away. Where he is I do not know.' "); + elseif(e.message:findi("forge")) then + e.self:Emote("stares at you blankly and beings to mumble. 'I work this for for Master Kly. To use this forge, you must have the hammer of Dalnir.'"); + end +end \ No newline at end of file diff --git a/dalnir/a_spectral_crusader.lua b/dalnir/a_spectral_crusader.lua new file mode 100644 index 0000000..6143615 --- /dev/null +++ b/dalnir/a_spectral_crusader.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("greenmist")) then --Test of the Hero (Greenmist Quest 6/8) + e.self:Say("Mighty was the mist which covered the land. Mighty is the blade wielded by a crusader."); + elseif(e.message:findi("golin")) then --Test of the Hero (Greenmist Quest 6/8) + e.self:Emote("swipes his hand toward his own head in a chopping motion. 'Stuck between crypt and dust.'"); + elseif(e.message:findi("visceral dagger")) then --Test of the Hero (Greenmist Quest 6/8) + e.self:Say("Shattered!! Three within the crypt. A master must go. To the [grand forge] they must go. Three become one with the spirit hammer."); + elseif(e.message:findi("grand forge")) then --Test of the Hero (Greenmist Quest 6/8) + e.self:Emote("points to the ground. 'Beyond the doors lies a forge unlike any other.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/dalnir/a_tormented_tradesman.lua b/dalnir/a_tormented_tradesman.lua new file mode 100644 index 0000000..86e1bc6 --- /dev/null +++ b/dalnir/a_tormented_tradesman.lua @@ -0,0 +1,29 @@ +--The tormented tradesman is actually the skeleton/spirit of the Haggle Baron, Dalnir. Giving this skeleton the Mirror of Self Loathing will spawn Haggle Baron Dalnir so you can finish the Greenmist quest. +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("End my suffering... I cannot think beyond this pain! Why am I in this place? What have I done?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3889})) then --Crusaders of Greenmist (Greenmist Quest 8/8) + eq.signal(104072,1); -- NPC: The_undead_entity + e.other:QuestReward(e.self,0,0,0,0,3896); + eq.spawn2(104075,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3896})) then --Crusaders of Greenmist (Greenmist Quest 8/8) + eq.signal(104072,1); -- NPC: The_undead_entity + e.other:Ding(); + eq.spawn2(104075,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/dalnir/an_Iksar_prisoner.lua b/dalnir/an_Iksar_prisoner.lua new file mode 100644 index 0000000..9cd614c --- /dev/null +++ b/dalnir/an_Iksar_prisoner.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("squints at you and gasps when he recognizes notoriety within Iksar society. He scrambles to his feet and says, 'Please, brother! Get me out of these chains so that I may escape back to Cabilis! They intend to coerce me like the others. A more tragic fate no Iksar should endure. I implore you to [help] me!'"); + elseif(e.message:findi("help")) then + e.self:Say("Well some of the brainwashed short ones seem to know much of mechanical devices and such. Perhaps they have a tool that can get me out of these chains. If they have anything that looks useful bring it to me. I'm sure your help will be rewarded once I reach Cabilis."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14812}, 0)) then + e.self:Emote(" takes the wire and quickly saws through the rusted shackles. He hands you an icon and says as he runs off, 'Show that to the Arch Duke in Cabilis! He will reward you. Now I'm off to escape!'"); + e.other:QuestReward(e.self,{itemid = 14814, exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/dawnshroud/#Carre_Harger.lua b/dawnshroud/#Carre_Harger.lua new file mode 100644 index 0000000..999f5a6 --- /dev/null +++ b/dawnshroud/#Carre_Harger.lua @@ -0,0 +1,14 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31781}, 0)) then + e.self:Say("There's been four wolves that have been ravaging the forest. We need them killed. When you are done bring me back their pelts. I know one to be bloodthristy, while the other is enraged. The other two I haven't even seen. But I can hear 'em."); + eq.unique_spawn(174034,0,0,1097,1598,93,0):AddToHateList(e.other,1); + eq.unique_spawn(174035,0,0,1287,1531,93,0):AddToHateList(e.other,1); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31783,item2 = 31784,item3 = 31785,item4 = 31786}, 0)) then + e.self:Say("I'm still in shock. I can't believe those pesky wolves are finally gone. Bring this note to Wils, he should have something for you."); + e.other:QuestReward(e.self,0,0,0,0,31782,5000); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/dawnshroud/#a_fungi_shroom.lua b/dawnshroud/#a_fungi_shroom.lua new file mode 100644 index 0000000..8b08f8a --- /dev/null +++ b/dawnshroud/#a_fungi_shroom.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop",95000); +end + +function event_timer(e) + eq.depop(); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end \ No newline at end of file diff --git a/dawnshroud/#a_ravenous_beast.lua b/dawnshroud/#a_ravenous_beast.lua new file mode 100644 index 0000000..ffa6e17 --- /dev/null +++ b/dawnshroud/#a_ravenous_beast.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.unique_spawn(174036,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); +end diff --git a/dawnshroud/#an_enraged_beast.lua b/dawnshroud/#an_enraged_beast.lua new file mode 100644 index 0000000..6cd4fd7 --- /dev/null +++ b/dawnshroud/#an_enraged_beast.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.unique_spawn(174037,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); +end diff --git a/dawnshroud/174042.lua b/dawnshroud/174042.lua new file mode 100644 index 0000000..42b6810 --- /dev/null +++ b/dawnshroud/174042.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if(e.joined) then + eq.spawn2(174116,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end +end \ No newline at end of file diff --git a/dawnshroud/A_Tribal_Prowler.lua b/dawnshroud/A_Tribal_Prowler.lua new file mode 100644 index 0000000..3954f9a --- /dev/null +++ b/dawnshroud/A_Tribal_Prowler.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.unique_spawn(174033,0,0,1180,1502,98,13); -- spawn Carre Harger +end \ No newline at end of file diff --git a/dawnshroud/Anario_Dirkog.lua b/dawnshroud/Anario_Dirkog.lua new file mode 100644 index 0000000..0c0c703 --- /dev/null +++ b/dawnshroud/Anario_Dirkog.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ". Might you be interested in helping us make a [delivery]?"); + elseif(e.message:findi("delivery")) then + e.self:Say("We have a barrel of brew that we must deliver to Ryann Desgrey. We've been meaning to deliver it, but haven't been able to, because Caelin's been feeling ill. But before you can deliver it I have to know that you're able to make the trek across these lands. Bring me back a Fungus Mushroom."); + end +end diff --git a/dawnshroud/Antoni_McCorley.lua b/dawnshroud/Antoni_McCorley.lua new file mode 100644 index 0000000..555455f --- /dev/null +++ b/dawnshroud/Antoni_McCorley.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. "."); + end +end diff --git a/dawnshroud/Artah_Medrino.lua b/dawnshroud/Artah_Medrino.lua new file mode 100644 index 0000000..075099e --- /dev/null +++ b/dawnshroud/Artah_Medrino.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Don't mind the gnome. He's been acting a little strange lately."); + end +end diff --git a/dawnshroud/Atruelin_Nobilis.lua b/dawnshroud/Atruelin_Nobilis.lua new file mode 100644 index 0000000..a8d2cc9 --- /dev/null +++ b/dawnshroud/Atruelin_Nobilis.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". What brings you here to [Dawnshroud]?"); + elseif(e.message:findi("dawnshroud")) then + e.self:Say("Dawnshroud is a crazy place. I suggest you travel with a good group here, it can get dangerous."); + end +end diff --git a/dawnshroud/Bryce_McFadden.lua b/dawnshroud/Bryce_McFadden.lua new file mode 100644 index 0000000..6524e1d --- /dev/null +++ b/dawnshroud/Bryce_McFadden.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What are you doing here? Can't you see we're trying to get some rest. It's not easy trying to find [Gant's Remains]."); + elseif(e.message:findi("gant")) then + e.self:Say("We're looking for Gant's Remains. We've heard that they can be found somewhere in the caves not to far from here. Though. it's not easy getting into those caves. Those dawnhoppers are a vicious bunch. Maybe you'd like to help us. If you can find Gant's Remains bring it back to me and you'll get a handsome reward."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30173}, 0)) then + e.self:Say("No way! You're telling me you were able to recover Gant's Remains?! Gant will finally be able to rest in peace now. Here take this."); + e.other:QuestReward(e.self,0,0,0,0,29897,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/dawnshroud/Caelin_Shayle.lua b/dawnshroud/Caelin_Shayle.lua new file mode 100644 index 0000000..efedac1 --- /dev/null +++ b/dawnshroud/Caelin_Shayle.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("groans, 'I'm sorry, but I can't talk right now. I'm not feeling too well."); + end +end diff --git a/dawnshroud/Centurion_Peran.lua b/dawnshroud/Centurion_Peran.lua new file mode 100644 index 0000000..3fb1007 --- /dev/null +++ b/dawnshroud/Centurion_Peran.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey there, come to take a swim?"); + elseif(e.message:findi("mission")) then + e.self:Say("Well, since you are so inquisitive I will tell you. The orders say to go to Maiden's Eye and investigate reports of Vampyres in the area. Vampyres! Are they kidding?! I am just a Centurion! I know, I will continue to keep this area secure while you go investigate. Bring me sufficient proof of their existence in the area. Four piles of vampyre ashes should cover it. Well, get going! This mission isn't going to finish itself."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2692,item2 = 2692,item3 = 2692,item4 = 2692}, 0)) then + e.self:Say("Hah! I knew that we could do it! Oh, you can take my weapon for helping me out again. I will just tell the Hand it was lost in battle. I guess that I better take this evidence back to the Hand, right after one more lap!."); + -- verified live faction + e.other:Faction(e.self,1483,5); -- Seru + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(5303,5304,5305,5313,6303,6311,6312,7300,7301,7311,7499),5000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 6514}, 0)) then + e.self:Say("Bah, why do I always get stuck with the hard jobs. Here I am, out here patrolling the area in all this danger! They send me to even more threatening conditions? The life of a soldier is a hard one I tell ya! Oh well, off to do these orders I suppose. A shame no one will help me I am sure there is fame and fortune in the [mission]. More for me I suppose."); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/dawnshroud/Denns_Rootenpaw.lua b/dawnshroud/Denns_Rootenpaw.lua new file mode 100644 index 0000000..e0433f5 --- /dev/null +++ b/dawnshroud/Denns_Rootenpaw.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Can I help you? Can't you see that I'm busy right now."); + end +end diff --git a/dawnshroud/Dragen_Faux.lua b/dawnshroud/Dragen_Faux.lua new file mode 100644 index 0000000..2f00f67 --- /dev/null +++ b/dawnshroud/Dragen_Faux.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I've been told that you may be the wolf slayer. I don't know though. You look a little scrawny to be the one. I suggest you prove it and bring me the Wolf Slayer. Once I've seen it we shall speak again."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 32170}, 0)) then + e.self:Say("I'm sorry to have doubted you before. Please forgive me. My mind is not what it used to be. Since you are the wolf slayer perhaps you cn help us find something. We've been unable to find it. If you can combine the Centerstone along with the Wolf Slayer in this box and bring back what you have. I should be able to reward you once we are through here."); + e.other:QuestReward(e.self,{items = {17073,32170},exp = 10000}); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 32300}, 0)) then + e.self:Say("I knew you'd come through. This is going to make someone really happy. Take this for your troubles."); + e.other:QuestReward(e.self,0,0,0,0,32189,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/dawnshroud/Faulen_Hein.lua b/dawnshroud/Faulen_Hein.lua new file mode 100644 index 0000000..41dd5b2 --- /dev/null +++ b/dawnshroud/Faulen_Hein.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("If you wish to stay here by all means go ahead. Most of the animals who roam in this area are afraid of fire. They tend to stay away from it, but the courageous ones do tend to get close. And they're always venturing into the [ponds]."); + elseif(e.message:findi("pond")) then + e.self:Say("The ponds are known as the Ponds of Influence. It carries a special power. All the animals here can feel it. Just take notice and see how the animals are always swimming into the water."); + end +end diff --git a/dawnshroud/Fungi_Trap.lua b/dawnshroud/Fungi_Trap.lua new file mode 100644 index 0000000..fffeb3c --- /dev/null +++ b/dawnshroud/Fungi_Trap.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if(e.joined) then + eq.spawn2(174117,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end +end \ No newline at end of file diff --git a/dawnshroud/Gaines_Benry.lua b/dawnshroud/Gaines_Benry.lua new file mode 100644 index 0000000..f16dc33 --- /dev/null +++ b/dawnshroud/Gaines_Benry.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Leave me be. I'm trying to get some rest."); + end +end diff --git a/dawnshroud/Glenda_Melonfus.lua b/dawnshroud/Glenda_Melonfus.lua new file mode 100644 index 0000000..f6f6b0d --- /dev/null +++ b/dawnshroud/Glenda_Melonfus.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ". Did Kanthek send you to me?"); + elseif(e.message:findi("yes")) then + e.self:Say("Ahh, so you're interested in the Galorians then? Good to hear. The Galorians seem to be at war with the [Dawnhoppers]. The Galorians are known as the Sambata Tribe. I heard that they once lived in the caves behind us, but that all changed when the Dawnhoppers grew in numbers."); + elseif(e.message:findi("dawnhopper")) then + e.self:Say("The Dawnhoppers are the rockhoppers who inhabited Dawnshroud. They are a cruel bunch of hoppers. I swear, if I didn't know any better I'd think that the hoppers were out to kill every last galorian they encountered. They don't like 'em very much."); + end +end diff --git a/dawnshroud/Holrik_Falyn.lua b/dawnshroud/Holrik_Falyn.lua new file mode 100644 index 0000000..12b8a9d --- /dev/null +++ b/dawnshroud/Holrik_Falyn.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Whadda you want? Can't you see I'm trying to keep warm and drink my mug of Valtron's Pale Ale? Leave me be."); + end +end diff --git a/dawnshroud/Jon_Otton.lua b/dawnshroud/Jon_Otton.lua new file mode 100644 index 0000000..ac93be3 --- /dev/null +++ b/dawnshroud/Jon_Otton.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello " .. e.other:GetCleanName() .. ". Don't mind us. We're just passing through. We decided to rest before we head on. My brother Wils may have something you're interested in. Ask him about [forest ravagers]."); + eq.signal(174073,1); + end +end diff --git a/dawnshroud/Kanthek_Ogrebane.lua b/dawnshroud/Kanthek_Ogrebane.lua new file mode 100644 index 0000000..f5edd5a --- /dev/null +++ b/dawnshroud/Kanthek_Ogrebane.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ". Welcome my friend! Please sit and rest yourself. There are many [predators] around. I suggest you rest a bit before continuing your journey."); + elseif(e.message:findi("predator")) then + e.self:Say("Just take a look around and see what's around you. There's [galorians], [lightcrawlers], [zelniaks], and [rockhoppers] everywhere. They usually let us be, but I've seen 'em kill. It's not something you want to see."); + elseif(e.message:findi("galorian")) then + e.self:Say("It's been a while since I've seen the Tribal Council, but they have been known to show up unexpectedly. I'm sure if you find Glenda Melonfus, she'll be able to tell you more about them."); + elseif(e.message:findi("lightcrawler")) then + e.self:Say("Lightcrawlers are the biggest bugs I've ever seen. I've heard of bigger, but I've never seen 'em myself. If you're interested in getting some [armor] made out of their shells let me know and I'll see if we can work something out."); + elseif(e.message:findi("zelniak")) then + e.self:Say("Zelniaks don't tend to mess with the likes of others, unless provoked."); + elseif(e.message:findi("rockhopper")) then + e.self:Say("Rockhoppers took over the cave system near Maiden's Eye. They are a crazy bunch of lizards. I suggest stay out of their way. The galorians are even scared of them and they're not scared of much."); + elseif(e.message:findi("armor")) then + e.self:Say("My cousin can make you some armor, but it'll cost ya. What exactly are you looking for? You looking for a [breastplate], [greaves], [helm], [bracers], [arms]? You tell me and I'll see what I can do. The only problem is I only have enough material to make a small set. So you might not be able to fit in 'em."); + elseif(e.message:findi("breastplate")) then + e.self:Say("Faber Rugon can make a fine breastplate for you, but it'll require two Pristine Lightcrawler Shells."); + elseif(e.message:findi("greave")) then + e.self:Say("Give Faber Rugon back two sets of Lightcrawler Legs and two Shimmering Lightcrawler Shells."); + elseif(e.message:findi("helm")) then + e.self:Say("Interested in a new helm, eh? All right. Bring Faber Rugon two Ardent Lightcrawler Shells and he'll be able to help you out."); + elseif(e.message:findi("bracer")) then + e.self:Say("Faber Rugon can only make one bracer for you, but one will be enough. Bring him back two Stripped Lightcrawler Shells and you'll be set."); + elseif(e.message:findi("arm")) then + e.self:Say("All right. Bring my cousin, Faber Rugon, back two Spotted Lightcrawler Shell and he'll be able fashion up a fine pair of arms for you."); + end +end diff --git a/dawnshroud/Kenta_Renlas.lua b/dawnshroud/Kenta_Renlas.lua new file mode 100644 index 0000000..807b150 --- /dev/null +++ b/dawnshroud/Kenta_Renlas.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Careful of those dawnhoppers. I heard they spit a venom that can cause blindness."); + end +end diff --git a/dawnshroud/Kirthor_Faldyr.lua b/dawnshroud/Kirthor_Faldyr.lua new file mode 100644 index 0000000..e04ea6e --- /dev/null +++ b/dawnshroud/Kirthor_Faldyr.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Would you mind backing away from me please. I can smell the ale on your breathe. It's not very pleasant."); + end +end diff --git a/dawnshroud/Lendal_Roble.lua b/dawnshroud/Lendal_Roble.lua new file mode 100644 index 0000000..f3db3ae --- /dev/null +++ b/dawnshroud/Lendal_Roble.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I got the great job of being flag boy. I'm so happy. Can't you tell by the look on my face.' Lendal Robles grins."); + end +end diff --git a/dawnshroud/Lieutenant_Broansas.lua b/dawnshroud/Lieutenant_Broansas.lua new file mode 100644 index 0000000..92433af --- /dev/null +++ b/dawnshroud/Lieutenant_Broansas.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, stranger. Is there something I can help you with? I would love to chat with you but I'm afraid I have to stay focused on the [case] I am investigating."); + elseif(e.message:findi("case")) then + e.self:Say("Well, " .. e.other:GetCleanName() .. ". I'm monitoring a possible smugglers ring down there ahead of us in the distance. That group down there sure has a large shipment of goods and I intend to find out why."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4760}, 0)) then + e.self:Say("You are sent from Lady Mistala I see? Ah of course she needs my reports. I trust you will return these documents to Mistala at once. Here you are, and thank you for your help. I shall have more reports soon."); + e.other:Faction(e.self,1510,5); -- house of fordel + e.other:Faction(e.self,1509,5); -- haven defenders + e.other:Faction(e.self,1508,1); -- traders of the haven + e.other:QuestReward(e.self,0,0,0,0,4761,2500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/dawnshroud/Mikhal_Young.lua b/dawnshroud/Mikhal_Young.lua new file mode 100644 index 0000000..555455f --- /dev/null +++ b/dawnshroud/Mikhal_Young.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. "."); + end +end diff --git a/dawnshroud/Reiker_Rikes.lua b/dawnshroud/Reiker_Rikes.lua new file mode 100644 index 0000000..c32a1f9 --- /dev/null +++ b/dawnshroud/Reiker_Rikes.lua @@ -0,0 +1,22 @@ +-- Fungus covered mushrooms hand in +-- Pt. 2 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I be Reiker Rikes! The fastest gnome in the woods!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local mushroom = item_lib.count_handed_item(e.self, e.trade, {31479}); + + if(mushroom > 0) then + repeat + e.self:Emote("grins. 'These should go nicely in my stew.'"); + e.other:QuestReward(e.self,{exp = 15000}); + mushroom = mushroom - 1; + until mushroom == 0 + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/dawnshroud/Ryann_Desgrey.lua b/dawnshroud/Ryann_Desgrey.lua new file mode 100644 index 0000000..1222756 --- /dev/null +++ b/dawnshroud/Ryann_Desgrey.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What brings to our outpost " .. e.other:GetCleanName() .. "? Did you run into [Anario] by any chance?"); + elseif(e.message:findi("anario")) then + e.self:Say("Anario was supposed to make a delivery some time ago, but he hasn't shown up yet."); + end +end diff --git a/dawnshroud/Ryklo_Rikes.lua b/dawnshroud/Ryklo_Rikes.lua new file mode 100644 index 0000000..77b7bb3 --- /dev/null +++ b/dawnshroud/Ryklo_Rikes.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What are you doing here? Get outta my tent! It's my tent!"); + end +end diff --git a/dawnshroud/Sedona_Raines.lua b/dawnshroud/Sedona_Raines.lua new file mode 100644 index 0000000..c27cc8b --- /dev/null +++ b/dawnshroud/Sedona_Raines.lua @@ -0,0 +1,10 @@ +-- Fungus covered mushrooms hand in +-- Pt. 1 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Don't be bothered by that crazy gnome. He won't hurt you. He's just a little out of it today. I'm sure if he had some [mushrooms] it'd calm him down."); + elseif(e.message:findi("mushroom")) then + e.self:Say("Reiker and his brother are always looking for fungus covered shrooms. They love to mix it into their stew. I must admit, it is very tasty."); + end +end diff --git a/dawnshroud/Thariza_Spiritis.lua b/dawnshroud/Thariza_Spiritis.lua new file mode 100644 index 0000000..080069f --- /dev/null +++ b/dawnshroud/Thariza_Spiritis.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ". Be sure to speak to Kanthek if you're in need of any armor."); + end +end diff --git a/dawnshroud/The_ground.lua b/dawnshroud/The_ground.lua new file mode 100644 index 0000000..fffeb3c --- /dev/null +++ b/dawnshroud/The_ground.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if(e.joined) then + eq.spawn2(174117,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end +end \ No newline at end of file diff --git a/dawnshroud/Tribal_Shaman.lua b/dawnshroud/Tribal_Shaman.lua new file mode 100644 index 0000000..38f85df --- /dev/null +++ b/dawnshroud/Tribal_Shaman.lua @@ -0,0 +1,8 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31475}, 0)) then + e.other:QuestReward(e.self,0,0,0,0,29900); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/dawnshroud/Wils_Otton.lua b/dawnshroud/Wils_Otton.lua new file mode 100644 index 0000000..d778a0f --- /dev/null +++ b/dawnshroud/Wils_Otton.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("forest ravager")) then + e.self:Say("I can't believe Jon mentioned that to you. I'll deal with him myself. If you want to help us kill the forest ravagers then you must first find Carre Harger. Bring this note to him. He'll get you started."); + e.other:SummonCursorItem(31781); -- summon note + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31782}, 0)) then + e.self:Say("We've been hunting those wolves for a long time now. They killed many of my men. I'm glad to see that they are gone. Take this Hunter's Pike and get some good use out of it."); + e.other:QuestReward(e.self,0,0,0,0,32170,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + e.self:Say("Quiet yourself little brother!"); +end diff --git a/dawnshroud/Yharrv_Valorus.lua b/dawnshroud/Yharrv_Valorus.lua new file mode 100644 index 0000000..2f5481b --- /dev/null +++ b/dawnshroud/Yharrv_Valorus.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", and welcome to Dawnshroud."); + end +end diff --git a/dawnshroud/a_blood_starved_wolf.lua b/dawnshroud/a_blood_starved_wolf.lua new file mode 100644 index 0000000..8b08f8a --- /dev/null +++ b/dawnshroud/a_blood_starved_wolf.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop",95000); +end + +function event_timer(e) + eq.depop(); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end \ No newline at end of file diff --git a/dawnshroud/encounters/RockGarn.lua b/dawnshroud/encounters/RockGarn.lua new file mode 100644 index 0000000..d70f9ce --- /dev/null +++ b/dawnshroud/encounters/RockGarn.lua @@ -0,0 +1,44 @@ +function RockGarnSpawn(e) + eq.set_timer("SetGarn",5000); +end + +function RockGarnTimer(e) + if(e.timer == "SetGarn") then + eq.stop_timer("SetGarn"); + eq.spawn_condition("dawnshroud",2,0); + eq.spawn_condition("dawnshroud",2,1); + eq.spawn_condition("dawnshroud",1,0); + elseif(e.timer == "Sambata") then + eq.stop_timer("Sambata"); + eq.spawn_condition("dawnshroud",1,1); + elseif(e.timer == "Rock") then + eq.stop_timer("Rock"); + eq.spawn_condition("dawnshroud",2,1); + end +end + +function RockGarnSignal(e) + if(e.signal == 1) then + eq.set_timer("Sambata",300000); -- 5 minutes to change cycle to Sambata + eq.spawn_condition("dawnshroud",2,0); + elseif(e.signal == 2) then + eq.set_timer("Rock",300000); -- 5 minutes to change cycle to Rockhoppers + eq.spawn_condition("dawnshroud",1,0); + end +end + +function RockDeath(e) + eq.signal(174266,1); +end + +function SambataDeath(e) + eq.signal(174266,2); +end + +function event_encounter_load(e) + eq.register_npc_event("RockGarn", Event.spawn, 174266, RockGarnSpawn); + eq.register_npc_event("RockGarn", Event.timer, 174266, RockGarnTimer); + eq.register_npc_event("RockGarn", Event.signal, 174266, RockGarnSignal); + eq.register_npc_event("RockGarn", Event.death, 174027, RockDeath); + eq.register_npc_event("RockGarn", Event.death, 174032, SambataDeath); +end diff --git a/dawnshroud/script_init.lua b/dawnshroud/script_init.lua new file mode 100644 index 0000000..6d254f7 --- /dev/null +++ b/dawnshroud/script_init.lua @@ -0,0 +1 @@ +eq.load_encounter("RockGarn"); diff --git a/dreadlands/Baldric_Slezaf.lua b/dreadlands/Baldric_Slezaf.lua new file mode 100644 index 0000000..49e88bd --- /dev/null +++ b/dreadlands/Baldric_Slezaf.lua @@ -0,0 +1,33 @@ +--NPC ID: 86097 +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". Don't you think this would be a wonderful place to perform a symphony?"); + elseif(e.message:findi("symphony")) then + e.self:Say("It has been my dream for years to perform a symphony that would be remembered for ages to come. I have run into a few minor snags, however."); + elseif(e.message:findi("snags")) then + e.self:Say("Several years ago I bought sheets of the most beautiful sounding music from a traveling merchant. He did not know the author of the work as it was simply signed 'the Maestro'. The melody I played from them was wondrous and invoked feelings in me I have never felt before. However, as I reached the middle of the music, I discovered it was missing two pages!"); + elseif(e.message:findi("pages")) then + e.self:Say("The pages that were missing were pages 24 and 25. I have been searching the world for a spot to hold my symphony and I have finally found it. Without the music and a new lute crafted by the famous instrument maker Forpar Fizfla, I do not think I can pull it off."); + elseif(e.message:findi("lute") or e.message:findi("forpar")) then + e.self:Say("Forpar Fizfla is an eccentric instrument maker from Ak'Anon. He makes enchanted instruments that enhance the sound of the music. If I am to perform the concert of all concerts, I must have one of his instruments. I went to Ak'Anon, seeking to purchase an instrument from him but he wouldn't even speak to me."); + elseif(e.message:findi("music")) then + e.self:Say("It makes me sad to know that the pages of this music may be spread across the world or destroyed. If you find and bring me the two missing sheets as well as a new lute, I would be happy to repay you in some way."); + elseif(e.message:findi("repay")) then + e.self:Emote("pulls a fantastic looking sword from its scabbard and says, 'I might be willing to part with this wonderful sword if I were able to perform this symphony. You would also gain recognition at the opening of the symphony.' Baldric sheathes his sword and begins to hum a haunting melody."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20376, item2 = 20383, item3 = 20377, item4 = 20538})) then + e.self:Emote("looks shocked as you hand him the pages and the mystical lute. 'I will put on a symphony the likes of which the gods have never seen. Thank you so much, " .. e.other:GetCleanName() .. ". Please take this sword as a token of my gratitude."); + e.other:QuestReward(e.self,0,0,0,0,20542,350000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/dreadlands/Brother_Balatin.lua b/dreadlands/Brother_Balatin.lua new file mode 100644 index 0000000..6c7d607 --- /dev/null +++ b/dreadlands/Brother_Balatin.lua @@ -0,0 +1,31 @@ +--Brother Balatin is for both the monk epic and the iksar-centric Whistling Fists. The monk epic work for this quest file has been done by Senzo, with the later Whistling Fists additions by Jim Mills. +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("turns toward you. A transparent human face materializes upon the skull. As he speaks the smells of rotted rat corpses rushes into your face. You must fight the urge to vomit. 'What discipline do you [follow]?'"); + elseif(e.message:findi("lost circle")) then + e.self:Say("Then we are one. The rebirth of our circle shall start with you. I have waited decades for your arrival. You should seek the living brothers within Tunaria. When you have earned your garb then you will be ready for the [true drape]."); + elseif(e.message:findi("true drape")) then + e.self:Say("Seek the broken flute of our master. Taken from us by the Iksar twins of Vistrei. To me they will come and to me your robe and you will come the dawning of the new brotherhood."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "May you have the correct items or lost forever will be all."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12979, item2 = 12980, item3 = 12256},1,text)) then -- A Metal Pipe & A Metal Pipe & Robe of the Lost Circle + e.self:Emote("holds his arms out and a fine robe materializes before your eyes. You grab it just in time to see the skeleton fade from existence."); + e.other:QuestReward(e.self,0,0,0,0,12970); -- Robe of the Whistling Fist + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12429})) then + e.self:Emote("quickly stashes the flute inside of his ribcage, where it joins another. 'If you want the true Flute of Zan-Fi, you'll have to take it from me!'"); --Made this up, no text available + eq.spawn2(86004,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Quest: The Robe of the Whistling Fist (Submitted By: Senzo) +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/dreadlands/Veltar.lua b/dreadlands/Veltar.lua new file mode 100644 index 0000000..4090626 --- /dev/null +++ b/dreadlands/Veltar.lua @@ -0,0 +1,34 @@ +--Velter gives us the last shackle in the line, the Shackle of Tynonnium. +--Since players must turn in their Shackle of Steel to the tome keeper in Kaesora to complete Veltar's quest, there is no requirement to check for it here. +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("'s body has scars all about it, looking as though beaten with whips. One wrist bares a unique looking bracer, the other is bare. 'Leave me be! I did not come up here because I wanted company.'"); + elseif(e.message:findi("tynnonium shackle")) then + e.self:Say("So it is the one that has freed me before! You seek the ways of Tynn I see. You must be on the true path of the monk to accomplish what is needed. The path will test the [three virtues] most important to becoming a true vessel for Cazic Thule's power."); + elseif(e.message:findi("three virtues")) then + e.self:Say("The three virtues are [patience], [agility], and [peace of mind]. Patience is important in knowing in when to strike your opponent, too soon and you may crushed, too late and your opportunity may pass. Agility is very important in showing your ability to avoid blows sent your way, and then returning what was sent to you. Without striking quickly you are no monk at all. Peace of mind will allow you to concentrate on the situation you are in. With it you can control your actions and make decisive strikes at critical times. Without peace of mind you may attack out of rage and will surely fall for your mind is clouded. You must complete these three trials to earn the shackle of the Grandmaster."); + elseif(e.message:findi("patience")) then + e.self:Say("Patience shall be tested by the one whom has the greatest patience. Seek Master Rinmark, and ask him of this trial."); + elseif(e.message:findi("agility")) then + e.self:Say("To show agility you must be tested by the most swift of us. Grandmaster Glox will provide your test for this. Ask him of the trial of agility."); + elseif(e.message:findi("peace of mind")) then + e.self:Say("To show peace of mind you must decipher a tome found in the library of Kaesora. An undead tome keeper will wait for you to come, ask him of the trial of peace of mind. The tome will tell you what you shall seek. Do with the tome the same as you would with the item you seek. Show you have clarity of mind in solving this."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7879, item2 = 7880, item3 = 7881})) then + e.self:Say("So you are finally ready for the final rung. Here it is, you shall receive mine for I quest for the fists of Cazic Thule no longer."); + e.other:QuestReward(e.self,0,0,0,0,4199,60000); + e.other:Faction(e.self,444,100); -- Faction: Swift Tails + e.other:Faction(e.self,441,25); -- Faction: Legion of Cabilis + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/dreadlands/gem_cutter_skeleton.lua b/dreadlands/gem_cutter_skeleton.lua new file mode 100644 index 0000000..3f615e3 --- /dev/null +++ b/dreadlands/gem_cutter_skeleton.lua @@ -0,0 +1,46 @@ +--Quest Name: A dufrenite for a boon +--This mob, usually KoS had to be charmed by an enchanter/bard before he would talk. +--Text is completely improvised. Yes, I know its actually the drumming anim, but its close. +--Quest for Guard Elron in North Qeynos +function event_say(e) + if(e.message:findi("Hail")) then + e.self:DoAnim(39); + e.self:Emote("appears to be busy cutting a green gem; upon your greeting, it jumps, fleshless hands slipping carelessly and breaking the gem into powder."); + eq.set_timer("distracted",2000); + elseif(e.message:findi("green gem")) then + e.self:Say("The greenest of gems I seek! Jade too brittle, emerald too hard, but [dufrenite]! Ahh, now there is a gem amongst gems."); + elseif(e.message:findi("dufrenite")) then + e.self:Say("Yes, dufrenite! Find me a dufrenite to replace the one you made me break. Now go!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10073})) then + e.self:Emote("eyes sparkle as you hand it the gem."); + e.self:Say("Yes! Yes! This is the greenest of gems!"); + e.other:QuestReward(e.self,0,0,0,0,12946,3000); + e.self:Say("Worth more to you crushed, that is! Find a spectral pestle, and crush it to dust!"); + eq.set_timer("cutting",4000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + if(e.timer == "distracted") then + e.self:DoAnim(20); + e.self:Say("Blast it! Distracted me you have! Now I need a new [green gem]!"); + eq.stop_timer("distracted"); + end + if(e.timer == "cutting") then + e.self:Emote("carries on cutting gems, oblivious to your presence."); + e.self:DoAnim(39); + eq.stop_timer("cutting"); + end +end + +--Author: BWStripes +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/droga/81003.lua b/droga/81003.lua new file mode 100644 index 0000000..5802760 --- /dev/null +++ b/droga/81003.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("seems to have lost all hope. He sadly looks to the ground. His shackles are different than the others you see in this cell. One is definitely steel and not of goblin design. The other is made of an unfamiliar metal."); + elseif(e.message:findi("veltar")) then + e.self:Emote("'s soiled face shines with a glint of hope. 'You know my name? Who has [sent] you to find me?'"); + elseif(e.message:findi("rinmark sent me")) then + e.self:Say("Then word has gotten to him!! If you be a monk of the third rung I will accept your aid. You must find the [coppernickel key]. It is required to release me from this goblin shackle. I have no reward to offer other than the shackle of steel. Give me both your shackles of the third rung along with the key and I shall reward you the first shackle of the fourth rung."); + elseif(e.message:findi("coppernickel")) then + e.self:Say("The key is split into three parts. Part one is the base and must be combined with the two remainder pieces. One piece is in here and the other was lost. I overheard the goblins chattering and recognized the goblin phrase, 'lair of flying mouths'!! As for the base, I do not know."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I made a pact to reward the shackle of steel to one who could deliver the coppernickel key and the shackles of copper and bronze."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12839,item2 = 4195,item3 = 4194},1,text)) then -- A coppernickel Key, Shackle of Bronze, Shackle of Copper. + e.self:Emote("hands you a shackle and removes the coppernickel shackle so he may flee. He places your shackles on his wrists and darts into the darkness."); + e.other:QuestReward(e.self,0,0,0,0,4196,10000); -- shackle of steel + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/droga/81469.lua b/droga/81469.lua new file mode 100644 index 0000000..0e9d568 --- /dev/null +++ b/droga/81469.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("peers up at you. His face is covered with grime and he shows scars from goblin whips. He shakes his head and goes back to his thoughts"); + elseif(e.message:findi("name")) then + e.self:Say("I am Digalis"); + elseif(e.message:findi("veltar")) then + e.self:Say("It has been a long time since I have been asked that. I am Digalis, mystic of Cabilis."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/droga/Jeren_Manri.lua b/droga/Jeren_Manri.lua new file mode 100644 index 0000000..046c848 --- /dev/null +++ b/droga/Jeren_Manri.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Shhh, be quiet! The goblins may hear you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 15959})) then + e.self:Emote("Oh! Thank you, I assume this means that Thiran sent you. I ran off with the incorrect book without thinking to check. Would you be kind enough to return this to him?"); + e.other:QuestReward(e.self,{itemid = 15960}); --The Reflecting Pools of Tanaan + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/droga/Warlord_Skargus.lua b/droga/Warlord_Skargus.lua new file mode 100644 index 0000000..823dd73 --- /dev/null +++ b/droga/Warlord_Skargus.lua @@ -0,0 +1,22 @@ +-- Warlord Skargus, Frontier Mountains +-- Second part of the chardok quest, initiated by Herald Telcha +-- Regal Band of Bathezid +-- global RegalBandBathezid, needed to be sure players won't jump to the last part of the quest +-- at 1 : you gave the Signet of Service to the goblin traitor +function event_spawn(e) + eq.set_timer(1,600000); +end + +function event_timer(e) + eq.depop(); +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/droga/a_goblin_traitor.lua b/droga/a_goblin_traitor.lua new file mode 100644 index 0000000..6b8f389 --- /dev/null +++ b/droga/a_goblin_traitor.lua @@ -0,0 +1,27 @@ +-- a Goblin Traitor, somewhere in the cave, Frontier Mountains +-- Second part of the chardok quest, initiated by Herald Telcha +-- Regal Band of Bathezid + +function event_say(e) + if(e.other:GetFaction(e.self) < 3) then -- need to be warmly or better + if(e.message:findi("hail")) then + e.self:Say("Serve the Sarnak do ya? You the one they say they send? I don't know that I believe ya, show a token. Humm show me ya ring if ya got it."); + elseif(e.message:findi("plan")) then + e.self:Say("Alrighty, listen listen. Skargus used to be a low rankin' nogood. He made a fake story 'bout Gragbar who was the warlord and caused him much trouble with the chief. Gragbar was cast down, chief made Skargus the warlord now. Gragbar is very angry, would take back his position and kill Skargus if he get [evidence] of his treachery."); + elseif(e.message:findi("evidence") and e.other:HasItem(5728)) then + e.self:Emote("makes a terrible face, then spits on the ground before continuing. 'Gragbar are workin' with the Iksar, bleh Iksar. He sellin' goblin troops as slaves to Cabilis when he can, sayin' they died in battle at the lake. If we get evidence of that, we get Skargus and kill him. You find Sarnak here in the Frontier mountains, he knows where we get evidence from. Give him this note from me, and he help ya. Off with ya now, before I get seen with ya.'"); + e.other:QuestReward(e.self,0,0,0,0,6472); -- 6472 Traitor's note + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFaction(e.self) < 3) then -- need to be warmly or better + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5728})) then -- Di'zok Signet of Service + e.self:Emote("looks relieved when he sees your signet of service and eyes you with a bit more respect. 'Good! They tell'd me to wait here for ya, can't say I like it but here I sits. Itbe good to be rid of Skargus though, so I be a happy one, oh yes. Want to know the [plan] then?'"); + e.other:QuestReward(e.self,0,0,0,0,5728); -- 5728 Di'zok Signet of Service + end + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/droga/an_angry_goblin.lua b/droga/an_angry_goblin.lua new file mode 100644 index 0000000..1343206 --- /dev/null +++ b/droga/an_angry_goblin.lua @@ -0,0 +1,32 @@ +-- an angry goblin, Frontier Mountains +-- Second part of the chardok quest, initiated by Herald Telcha +-- Regal Band of Bathezid + +function event_say(e) + if(e.other:HasItem(5728)) then -- we handed the Signet of Service yet + -- the goblin won't talk to the player unless we did the beginning of the quest + if(e.message:findi("hail")) then + e.self:Say("'Go away, my life is miserable enough!' The angry goblin looks at you more closely, his rage fading for a moment. 'Are you here with the evidence I was promised? Give it to me if you have it.'"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6474})) then -- we handed Report to Skargus + eq.start(99); + e.self:Emote("howls in triumph! 'This is just what I needed! Skargus is mine now, wait until he finds out, just wait! His death is close at hand. Follow me and I'll take you to Skargus's chamber, you can wait there while I take this report to the chief!'"); + -- Confirmed Live Experience + e.other:QuestReward(e.self,{exp = 50000}); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if(e.wp == 11) then + e.self:Shout("I have you now Skargus, you traitor! Even now I'm taking this report of slave-trading to the chief! Your days here are at an end!"); + eq.unique_spawn(81006,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),125); + eq.depop_with_timer(); + end +end diff --git a/droga/an_enslaved_iksar.lua b/droga/an_enslaved_iksar.lua new file mode 100644 index 0000000..48e0e06 --- /dev/null +++ b/droga/an_enslaved_iksar.lua @@ -0,0 +1,35 @@ +--The enslaved iksar is part of the Greenmist quest line, and is for the seventh quest in the series. +--He gives a bit of flavor through most of his speech, but is also used to turn in items for a part of the Stupendous Tome. +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks up at you. You can tell his spirit is broken. His scars speak of a severe beating."); + elseif(e.message:findi("Vok Na Zov")) then --Test of the Lord (Greenmist Quest 7/8) + e.self:Say("Forget them. I believe all six scrolls lie in the [Kaesora Library] and that is no safe place for any explorer. The scrolls are not readable by any livng person, but I came here in search of a machine which may be able to decipher them, the [Stupendous Contraption]. Should you return to Cabilis, see that the Arch Duke hears of the scrolls."); + elseif(e.message:findi("kaesora library")) then --Test of the Lord (Greenmist Quest 7/8) + e.self:Say("Oh!! You heard of the ancient library I discovered in Kaesora? I think the six scrolls of [Vok Na Zov] may lie there. I have not yet actually found the location of the library and it's very dangerous to lurk within the ruins of Kaesora. I would not venture there if I were you."); + elseif(e.message:findi("stupendous contraption")) then --Test of the Lord (Greenmist Quest 7/8) + e.self:Say("I have learned it was a machine tinkered by a legendary gnome. It has many uses. It lies in the slave pens of Droga. Perhaps it may be used to decipher the [Scrolls of Vok Na Zov]. I have leearned that it will not work without a [contraption needle]. Luckily I have found one in my journies."); + elseif(e.message:findi("contraption needle")) then --Test of the Lord (Greenmist Quest 7/8) + e.self:Say("The contraption needle is a piece of the machine, the [Stupendous Contraption]. It won't operate without it and if you want it, you're going to have to bring me the [pen keys]."); + elseif(e.message:findi("pen keys")) then --Test of the Lord (Greenmist Quest 7/8) + e.self:Say("Pen keys!! I need the pen keys to get out of here! Find the ones who hold these keys. Bring me the key to pen number 1 and both keys to the pen gates. Do so and I shall give you the [contraption needle]."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "Oh no!! The bargain was, you bring me the keys to the main gates and the pen key to cell one."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12708, item2 = 12712, item3 = 12713},1,text1)) then --Test of the Lord (Greenmist Quest 7/8) + e.self:Emote("escapes with a flash, but before he goes, he speaks, 'At last!! The keys which shall bring me freedom! I thank you and here is the contraption needle. Good luck.'"); + e.other:QuestReward(e.self,0,0,0,0,12714,2000) + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/eastkarana/#Guard_Elias.lua b/eastkarana/#Guard_Elias.lua new file mode 100644 index 0000000..b05149a --- /dev/null +++ b/eastkarana/#Guard_Elias.lua @@ -0,0 +1,13 @@ +function event_waypoint_arrive(e) + if(e.wp == 2) then + e.self:Say("Hello, Milea. It is unfortunate for you that your friends have led me right to you. Soon you will join Nerissa in the afterlife. Do you have any last words?"); + eq.signal(15118,1,4000); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("I thought you would never ask."); + eq.attack_npc_type(15118); + end +end diff --git a/eastkarana/15000.lua b/eastkarana/15000.lua new file mode 100644 index 0000000..fe443c1 --- /dev/null +++ b/eastkarana/15000.lua @@ -0,0 +1,21 @@ +-- dark elf reaver - ranger/druid epic +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_waypoint_arrive(e) + if(e.wp == 2) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(15044)) then + e.self:Shout("Innoruuk claims your souls and this land!"); + end + eq.depop(15178); + eq.depop(15167); + eq.depop(15170); + eq.depop_with_timer(15043); + eq.depop_with_timer(15042); + eq.depop_with_timer(15044); + eq.depop(15153); + eq.depop(15150); + eq.depop(); + end +end diff --git a/eastkarana/15150.lua b/eastkarana/15150.lua new file mode 100644 index 0000000..31b2e2a --- /dev/null +++ b/eastkarana/15150.lua @@ -0,0 +1,21 @@ +-- dark elf reaver - ranger/druid epic +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_waypoint_arrive(e) + if(e.wp == 2) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(15044)) then + e.self:Shout("Innoruuk claims your souls and this land!"); + end + eq.depop(15178); + eq.depop(15167); + eq.depop(15170); + eq.depop_with_timer(15043); + eq.depop_with_timer(15042); + eq.depop_with_timer(15044); + eq.depop(15153); + eq.depop(15000); + eq.depop(); + end +end diff --git a/eastkarana/Althele.lua b/eastkarana/Althele.lua new file mode 100644 index 0000000..194cae7 --- /dev/null +++ b/eastkarana/Althele.lua @@ -0,0 +1,34 @@ +-- 15044 - Althele at #loc -1592, -3657, -17 - to start corruptor/reaver spawns for fleshbound tome + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, friend. Beautiful is what I would call such a day normally but lately? I sense that something is [out of balance].'"); + elseif(e.message:findi("balance")) then + e.self:Say("I sense something foreboding, young one, but you should think nothing of it. The sons and daughters of nature will be able to deal with this problem."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20448})) then + e.self:Emote("looks at the coin and nods gravely at you as she slips it into a fold of her clothing. 'I see. The story of this coin speaks much to me as do the words you have given me. Telin sent word that you would arrive. The tidings you bring are ill indeed. Here, take this amulet and find Sionae. She is nearby. We will speak more on this matter when all are present.'"); + e.other:QuestReward(e.self,{itemid = 20450}); -- Braided Grass Amulet + eq.unique_spawn(15178,0,0,-1595,-2595,4,127); -- NPC: Sionae + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20452})) then + e.self:Emote("hands the book to Tholris who reads through it with lines of concern etched on his face, then whispers into her ear. 'Dire news, indeed. This cannot be allowed. I must keep this book but you, " .. e.other:GetCleanName() .. ", must not allow Innoruuk to seed the land with his hatred and filth. You have only just begun your quest. The path you are guided upon will be difficult, if not impossible, but someone must finish it. Please, take this, read of it, follow its instructions. Tunare bless your path and Karana watch over you."); + e.other:QuestReward(e.self,0,0,0,0,18959,100000); -- Earth Stained Note + eq.depop(15178); + eq.depop(15167); + eq.depop(15170); + eq.depop_with_timer(15043); + eq.depop_with_timer(15042); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Great mother of life and father of sky, growth and spirit, Tunare and Karana. Innoruuk once again schemes and we have failed in our duties to protect our land. We give your powers in sacrifice fo ryour help. Heed our call and send us your wisdom."); + end +end diff --git a/eastkarana/Broon.lua b/eastkarana/Broon.lua new file mode 100644 index 0000000..307ea5e --- /dev/null +++ b/eastkarana/Broon.lua @@ -0,0 +1,8 @@ +function event_death_complete(e) + if(math.random(100) < 50) then + brofath = 15138; + else + brofath = 15160; + end + eq.unique_spawn(brofath,7,0,807,2105,135,0); +end diff --git a/eastkarana/Dark_Elf_Corruptor.lua b/eastkarana/Dark_Elf_Corruptor.lua new file mode 100644 index 0000000..fc0e101 --- /dev/null +++ b/eastkarana/Dark_Elf_Corruptor.lua @@ -0,0 +1,34 @@ +function event_spawn(e) + eq.set_timer("despawn",600000); + e.self:SetRunning(true); +end + +function event_timer(e) + eq.stop_timer("despawn"); + eq.depop(); +end + +function event_death_complete(e) + eq.stop_timer("despawn"); +end + +function event_waypoint_arrive(e) + if(e.wp == 2) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(15044)) then + e.self:Shout("Innoruuk claims your souls and this land!"); + end + eq.depop(15150); + eq.depop(15000); + eq.depop(15178); + eq.depop(15167); + eq.depop(15170); + eq.depop_with_timer(15043); + eq.depop_with_timer(15042); + eq.depop_with_timer(15044); + eq.depop(); + end +end +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/eastkarana/Droon.lua b/eastkarana/Droon.lua new file mode 100644 index 0000000..57d9652 --- /dev/null +++ b/eastkarana/Droon.lua @@ -0,0 +1,3 @@ +function event_spawn(e) + e.self:SetRunning(true); +end \ No newline at end of file diff --git a/eastkarana/Felodius_Sworddancer.lua b/eastkarana/Felodius_Sworddancer.lua new file mode 100644 index 0000000..33b78a5 --- /dev/null +++ b/eastkarana/Felodius_Sworddancer.lua @@ -0,0 +1,44 @@ +function event_say(e) + if(e.message:findi("hai")) then + e.self:Say(string.format("Hello, %s, I am Felodious Sworddancer. A travelling historian and storyteller. Would you care to hear a [story]?",e.other:GetName())); + elseif(e.message:findi("story")) then + e.self:Say("I could treat you to a story about an [ogre] legend! But perhaps you would like to hear a story about the [gnome] that cried kobold?"); + elseif(e.message:findi("gnome")) then + e.self:Say("Once upon a time, there was a young gnome boy. His job was to repair the clockworks outside Ak'Anon and tell the guards if there was any trouble from kobolds., one day, the boy decided to play a prank on the guards.He decided it would be fun to watch the guards, in full plate armor, run from the gates of Ak'Anon to the valley that led to the Faydark [forest]."); + elseif(e.message:findi("forest")) then + e.self:Say("The boy cried out as loud as he could, running to the guard. Kobolds! Kobolds! They are dragging off a girl into theforest! The guard sprinted off in the direction of the forest, looking to destroy the kobold menace. The boy jogged after him, laughing the whole time. When the guard arrived there were, of course, no kobolds. He trudged back to Ak'Anon waiting for some [excitement]."); + elseif(e.message:findi("ogre legend")) then + e.self:Say("Suteng was an ogre champion who walked the land long before the children of Rallos Zek were cursed. He feared no other creation of Zek and the children of the other gods were to be laughed at. It was at this time that Rallos Zek was seeking a warrior to unite all of his armies and lead them to battle against the forces of the other [gods]."); + elseif(e.message:findi("excitement")) then + e.self:Say("The next day, the boy claimed that kobolds were attacking one of the local farms. The guards all ran to save the farm and of course, no kobolds, and no sign of a battle. Angered by another prank the guards cursed the boy and went back to their stations at the [entrance] to Ak'Anon."); + elseif(e.message:findi("gods")) then + e.self:Say("Suteng was a great combatant, however, he was far too cocky to become a suitable leader and this displeased Rallos Zek. One who respected no one could not do this. In order to test Suteng, who had grown far too confident, Rallos had his twin sons craf ttwo swords to test his great ogre warrior's reaction and resolve Rallos created a great red scabbard to hold the swords as [well]."); + elseif(e.message:findi("wel")) then + e.self:Say("The swords were like no others. Each one having an ornately crafted hilt shaped like a dragon head. Sparkling diamonds, black sapphires and jacinth covered the handles as well. The razor sharp blades were covered in runes that glowed and [shimmered]."); + elseif(e.message:findi("shimmered")) then + e.self:Say("Suteng bowed in reverence to his Lord Rallos Zek as he was given the weapons. Rallos warned Suteng that these weapons might destroy him if he were not trulyworthy of leading his armies. Not heading Rallos' warning that the weapons may be too powerful for him to control, Suteng gathered up a raiding party of his finest warriors to seek [battle]."); + elseif(e.message:findi("battle")) then + e.self:Say("They traveled across the lands in search of a suitable target. Finally they came across a goblin army camped upon the plains. Suteng sounded his battle charge and his band of ogres charged down the hillsideinto the army's [encampment]."); + elseif(e.message:findi("encampment")) then + e.self:Say("With each swipe of their swords the ancient ogres slew many goblins. Suteng waded through the battle, his new weapons calling out for the blood of more powerful foes. His bloodlust grew with each kill, his blades spurring him onward. Ignoring his own wounds, he fought on until the goblin army was dead or scattered to the [winds]."); + elseif(e.message:findi("winds")) then + e.self:Say("Only the hulking ogres of old remained standing on the blood-soaked plains. Suteng felt like a god and that would be his downfall.He looked to his companions, the great and powerful ogre warriors with whom he had killed and shed blood. Suteng felt nothing but contempt for them. They, of course, were weaker then, or at least so he [thought]."); + elseif(e.message:findi("thought")) then + e.self:Say("Without a second thought, Suteng stabbed the ogre nearest to him in the neck with one of the swords. His body moved like a whirlwind of death, slaughtering his own companions. The ogres fought back valiantly, no match for Suteng with his enchanted [blades]."); + elseif(e.message:findi("blades")) then + e.self:Say("The laughter of Rallos Zek boomed across the plains as the lord of war appeared before Suteng and took the weapons from the ogre's hands. The swords slashed into Suteng swiftly, killing him where he stood. The lord of war spoke to the remaining ogres on the battlefield, explaining why he had [tested] Suteng."); + elseif(e.message:findi("tested")) then + e.self:Say("He also told them each that if they wished to wield the weapons, they would have to seek them out for they would be broken into pieces and spread across Norrath. The blades would not be whole again until a suitable warrior found the pieces, and gained the red [scabbard]."); + elseif(e.message:findi("scabbard")) then + e.self:Say("The lord of war handed the smallest ogre the great red scabbard and told him that it was his charge, and the charge of his family, to test any warrior who wished to have it."); + elseif(e.message:findi("entrance")) then + e.self:Say("The following day, the boy was fixing a small clockwork just out of view of the guards. A vicious kobold sprang at him and ripped into him with its big paws. The boy screamed and cried! Kobolds! Kobolds! But the guards did not come, they had grown tired of the boy's pranks the kobolds had a fine meal that night. The end."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +-- End of File, Zone:eastkarana NPC:15059 -- Felodius_Sworddancer \ No newline at end of file diff --git a/eastkarana/Ganelorn_Oast.lua b/eastkarana/Ganelorn_Oast.lua new file mode 100644 index 0000000..98611c8 --- /dev/null +++ b/eastkarana/Ganelorn_Oast.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Please be very quiet. I am tracking a notorious poacher."); + elseif(e.message:findi("call of flame")) then + e.self:Say("I suppose you would like to call the flame? I must know you are a dedicated forester before I would even consider teaching such a thing."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20876})) then + e.self:Say("Ah, what do we have here? A letter? Hmm? Scented with a familiar fragrance too. You must have gotten this from Lily. I do wish I had more time to spend with her, for she is a very sweet girl. If she trusts you to deliver such a letter, I must ask you to do me a favor for me. Please take these eggs. They are a very rare species of albino rattlesnakes which were thought to have been extinct due to poachers who eat them as a delicacy and griffins which prey on them. If these eggs hatch there is hope for the species. I need you to deliver them to my master, Kithicor."); + e.other:Faction(e.self,246,5,0); -- faydarks champion + e.other:Faction(e.self,279,1,0); -- king tearis thex + e.other:Faction(e.self,226,1,0); -- cleric of tunare + e.other:Faction(e.self,310,1,0); -- soldier of tunare + e.other:Faction(e.self,234,-1,0); -- crushbone orcs + e.other:QuestReward(e.self,0,0,0,0,20877,1000); -- Item: Albino Rattlesnake Eggs + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20878})) then + e.self:Say("This does speak highly of you, my friend, an award from Kithicor does not come easy. But I must see more of your skills before I can consider teaching you. Lily's brother Devin is my current pupil - I need you to gather some equipment for me so I can properly train him. I require the following items of you - a smoldering sash, an adamantine ring and a blade forged of electrum. I also need a favor. Take this credit slip to Aanina Rockfinder. She is a merchant from whom I purchased a gift for Lily; it should be ready by now."); + e.other:QuestReward(e.self,0,0,0,0,20879,1000); -- Item: A note of credit + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20881,item2 = 20880,item3 = 10151,item4 = 5408})) then + e.self:Say("You have done well. I sense the one I have been hunting in the distance. As your final test, you must track him down and destroy him."); + eq.spawn2(15183,0,0,-800,-2712,15.6,138); -- NPC: Vance_Bearstalker + e.other:Faction(e.self,246,100,0); -- faydarks champion + e.other:Faction(e.self,279,25,0); -- king tearis thex + e.other:Faction(e.self,226,25,0); -- cleric of tunare + e.other:Faction(e.self,310,25,0); -- soldier of tunare + e.other:Faction(e.self,234,-25,0); -- crushbone orcs + e.other:QuestReward(e.self,0,0,0,0,0,10000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20882})) then + e.self:Say("You, " .. e.other:GetCleanName() .. ", are a worthy forester. It brings me great pride to present you this scroll that I have only passed to the finest in all of Norrath. Now you, too, may call the flames."); + e.other:Faction(e.self,246,100,0); -- faydarks champion + e.other:Faction(e.self,279,25,0); -- king tearis thex + e.other:Faction(e.self,226,25,0); -- cleric of tunare + e.other:Faction(e.self,310,25,0); -- soldier of tunare + e.other:Faction(e.self,234,-25,0); -- crushbone orcs + e.other:QuestReward(e.self,0,0,0,0,15691,10000); -- Item: Spell: Call of Flame + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/eastkarana/Milea_Clothspinner.lua b/eastkarana/Milea_Clothspinner.lua new file mode 100644 index 0000000..ce9c654 --- /dev/null +++ b/eastkarana/Milea_Clothspinner.lua @@ -0,0 +1,57 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 0) then + if(e.message:findi("hail")) then + e.self:Say("Hail, fellow adventurer. Are you [from Qeynos] or from [somewhere else]?"); + elseif(e.message:findi("qeynos")) then + e.self:Say("A great city. I was born there. I trained in the [Hall of Steel] my whole life to become a warrior. I have a sister who still calls Qeynos home."); + elseif(e.message:findi("hall of steel")) then + e.self:Say("The Hall of Steel is the training ground for the greatest warriors of Antonica. I was trained by Ebon Strongbear. Now I travel the lands of Norrath. Maybe the bards will write songs of us both one day. To be an adventurer is the only way to truly live!"); + elseif(e.message:findi("somewhere else")) then + e.self:Say("Too bad. It is a good city to hail from. Safe from evil. I grew up there and found it quite peaceful. I trained at the [Hall of Steel]."); + elseif(e.message:findi("kane")) then + e.self:Say("Kane Bayle and I were students together at the Hall of Steel. He was quite a swordsman. The only men in Qeynos who could best him were Ebon Strongbear and his own brother, Antonius."); + elseif(e.message:findi("antonius")) then + e.self:Say("Antonius Bayle is the ruler of the kingdom of Qeynos. Many lands look to Qeynos for protection and backing. Kane is captain of the Qeynos Guards. Two brothers working hand in hand to unite a world."); + elseif(e.message:findi("nerissa")) then + e.self:Say("Nerissa Clothspinner is my sister. She is all the family I have left. I hated to leave Qeynos, but my soul yearned for adventure. I am sure she is safe, though. I had my old friend Kane Bayle promise to watch over her."); + end + else + e.self:Say("As a member of the Steel Warriors I cannot abide you. Please leave before you force me to bloody my blade."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18801})) then + e.self:Say("My sister is in danger. She is all the family I have left. I shall be on my way soon. Please take her my handkerchief, so she knows you have contacted me. Thank you. I am thankful Nerissa ran into you. I just wonder why she did not tell Kane about her suspicions."); + -- confirmed live factions + e.other:Faction(e.self,311,10,0); -- Faction: Steel Warriors + e.other:Faction(e.self,262,2,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,230,-1,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,330,-1,0); -- Faction: The Freeport Militia + e.other:Faction(e.self,281,2,0); -- Faction: Knights of Truth + e.other:QuestReward(e.self,0,0,0,0,13302,2000); -- Monogrammed Cloth + eq.unique_spawn(15193,11,0,-5521,-1870,3,226); -- NPC: #Guard_Elias + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18934})) then -- sealed letter', filename='LoveToMilea' + e.self:Say("Oh great!! I thought I'd saw that last of Plagus, or as all the women in the Steel Warriors called him, the Plague. Please do not tell him where I am. It must have been a long journey for you. Here. A little something for your wasted trip. I found it on the ground. Have fun going back to Freeport."); + -- confirmed live factions + e.other:Faction(e.self,311,5,0); -- Faction: Steel Warriors + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,230,-1,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,330,-1,0); -- Faction: The Freeport Militia + e.other:Faction(e.self,281,1,0); -- Faction: Knights of Truth + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(3040,1037,17005,13003,10008,1005,8791,1331,2910),2000); -- Item(s): Blackened Iron Coif (3040), Fur Lined Shoes (1037), Backpack (17005), Small Lantern (13003), Gold Ring (10008), Cloth Shawl (1005), Ruined Rawhide Leggings (8791), Damask Cap (1331), Grizzly Hide Cloak (2910) + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Get out of here! It is time I dealt with this traitorous guard. Okay guard, let's get it on!!"); + eq.signal(15193,1,5000); -- to Guard Elias + end +end + +-- END of FILE Zone:eastkarana ID:15055 -- Milea_Clothspinner + diff --git a/eastkarana/Nuien.lua b/eastkarana/Nuien.lua new file mode 100644 index 0000000..6eacdf1 --- /dev/null +++ b/eastkarana/Nuien.lua @@ -0,0 +1,27 @@ +function event_spawn(e) + eq.set_timer("despawn",3600000); +end + +function event_timer(e) + eq.stop_timer("despawn"); + eq.depop(); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20451})) then + e.self:Say("So be it. Do as you have done before and find the next. Teloa is the last."); + e.other:QuestReward(e.self,0,0,0,0,20451); + eq.unique_spawn(15170,0,0,-2854,-3840,126.5,61.8); -- spawn teola + eq.move_to(-1581,-3682,-18,236,true); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Emote("growls as his power seeps into the earth."); + e.self:CastSpell(790,e.self:GetID()); -- Spell: Call of the Storm + end +end diff --git a/eastkarana/Proon.lua b/eastkarana/Proon.lua new file mode 100644 index 0000000..57d9652 --- /dev/null +++ b/eastkarana/Proon.lua @@ -0,0 +1,3 @@ +function event_spawn(e) + e.self:SetRunning(true); +end \ No newline at end of file diff --git a/eastkarana/Sionae.lua b/eastkarana/Sionae.lua new file mode 100644 index 0000000..f2974f4 --- /dev/null +++ b/eastkarana/Sionae.lua @@ -0,0 +1,27 @@ +function event_spawn(e) + eq.set_timer("despawn",3600000); +end + +function event_timer(e) + eq.stop_timer("despawn"); + eq.depop(); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20450})) then + e.self:Say("I see that the time has come. Take the amulet and give it to the third of our kin, Nuien. I will meet you at the gathering."); + e.other:QuestReward(e.self,0,0,0,0,20451); + eq.unique_spawn(15167,0,0,300,-3657,3,183); -- spawn nuien + eq.move_to(-1595,-3670,-18,0,true); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Emote("shivers as her power flows into the air above the gathering."); + e.self:CastSpell(790,e.self:GetID()); -- Spell: Call of the Storm + end +end diff --git a/eastkarana/Sir_Morgan.lua b/eastkarana/Sir_Morgan.lua new file mode 100644 index 0000000..30a6dcb --- /dev/null +++ b/eastkarana/Sir_Morgan.lua @@ -0,0 +1,54 @@ +--############# +--#Quest Name: Sir Morgan's Armor +--#Author: Blaz +--#NPCs Involved: 1 +--#Items Involved: 5 Gold for a random reward +--################# + +function event_waypoint_arrive(e) + if(e.wp == 1) then + e.self:Say("Hello, Wimbley, old chap!"); + elseif(e.wp == 8) then + e.self:Say("Almost there..."); + elseif(e.wp == 9) then + e.self:Say("Well, here we are! It is just a short jaunt through the pass ahead. Just remember to take the high road. I'm off, then. Good luck!"); + e.self:SetRunning(true); + elseif(e.wp == 10) then + e.self:SetRunning(false); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then --guessing on faction level, only tested at scowls + e.self:Say("Hail, traveler! Might I escort you through to Highpass? The path ahead is filled with giants and many other hungry beasts. I assure you, you will be safe with me. I must admit, I am quite experienced in the ways of the warrior. Do you [wish an escort] or will you [travel alone]?") + else + e.self:Say("No person in Karana would speak with you. You had best leave before my sword finds your skull!") + end + elseif(e.message:findi("escort")) then + if(e.other:GetFactionValue(e.self) >= -100) then --guessing on faction level, only tested at scowls + e.self:Say("I shall be honored to escort you to Highpass, but you shall have to wait for a spell. I make trips every few hours. I also would be grateful to any who wish to donate gold coins to the upkeep of my armor. The rains in the plains cause much rusting."); + else + e.self:Say("No person in Karana would speak with you. You had best leave before my sword finds your skull!") + end + elseif(e.message:findi("travel alone")) then + if(e.other:GetFactionValue(e.self) >= -100) then --guessing on faction level, only tested at scowls + e.self:Say("Then, good luck to you! May your faith protect you. Or at the very least, guide you to a grand afterlife."); + else + e.self:Say("No person in Karana would speak with you. You had best leave before my sword finds your skull!") + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {gold = 5})) then + e.self:Say("What a grand donation!! You must be a rich noble to be making such a donation. Here, I am but a simple warrior, but I found this lying on the highway to Highpass Hold. The lifeless corpse next to it had no more need of it."); + e.other:QuestReward(e.self,{itemid = eq.ChooseRandom(2041,2904,2312,2307,8306,10006,13944,13004,2106,2112,7007,5024,6015,5021,7012,1331,17002,13829,8011,15295,15324,15380,15501,15051,10019)}); --mountain lion cape, bear-hide belt, ratskin gloves, snakeskin mask, halfling knife, silver earring, highkeep flask, large lantern, Patchwork cloak, Patchwork boots, rusty dagger, rusty halberd, rusty flail, rusty scimitar, bronze dagger, damask cap, belt pouch, drom's champagne, hunting bow, spell:mircyls animation, spell:shock of blades, spell:glimpse, spell:soothe, bloodstone + -- confirmed live, no factions no xp, no faction requirement + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:eastkarana ID:15048 -- Sir_Morgan \ No newline at end of file diff --git a/eastkarana/Squire_Wimbley.lua b/eastkarana/Squire_Wimbley.lua new file mode 100644 index 0000000..d6dca30 --- /dev/null +++ b/eastkarana/Squire_Wimbley.lua @@ -0,0 +1,16 @@ + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then --guessing on faction level, only tested at scowls + e.self:Say("Hello! Good to meet you. The road ahead is full of all sorts of nasty creatures. If I were you, I would speak with my master, [Sir Morgan].") + else + e.self:Say("I care not to speak with one who treats the people of Karana in such a vile fashion. Leave, before I call Sir Morgan!") + end + elseif(e.message:findi("morgan")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Sir Morgan is only the bravest warrior in all the plains!"); + else + e.self:Say("I care not to speak with one who treats the people of Karana in such a vile fashion. Leave, before I call Sir Morgan!") + end + end +end \ No newline at end of file diff --git a/eastkarana/Teloa.lua b/eastkarana/Teloa.lua new file mode 100644 index 0000000..c9134c9 --- /dev/null +++ b/eastkarana/Teloa.lua @@ -0,0 +1,26 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20451})) then + e.self:Say("begins walking toward the gathering spot. 'Follow, friend.'"); + eq.start(12); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if(e.wp == 2) then + eq.signal(15044,1); -- NPC: Althele + eq.signal(15167,1,2000); -- NPC: Nuien + eq.signal(15178,1,2000); -- NPC: Sionae + eq.signal(15043,1,2000); -- NPC: Tholris + elseif(e.wp == 3) then + eq.spawn2(15153,14,0,-996,-1529,354,130); -- corruptor + eq.spawn2(15150,13,0,-1090,-1529,355.4,130); -- reaver + eq.spawn2(15000,15,0,-1063,-1490,367.5,130); -- reaver + elseif(e.wp == 4) then + eq.depop(15178); + eq.depop(15167); + eq.depop(); + end +end \ No newline at end of file diff --git a/eastkarana/Tenal_Redblade.lua b/eastkarana/Tenal_Redblade.lua new file mode 100644 index 0000000..60bb0a0 --- /dev/null +++ b/eastkarana/Tenal_Redblade.lua @@ -0,0 +1,27 @@ + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("What brings you to my home, %s? Do you seek knowledge of Rallos Zek and the great wars to come?",e.other:GetName())); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18083})) then -- Redblade's Legacy + e.self:Say("So, you know my brother Kargek. He is weak and does not believe the legend that our family was chosen by Rallos Zek to bear the great scabbard. Yet he still holds it. Very well, I shall give you the first test since my 'dear' brother seems to have forgotten it. Travel to the fortress where the children of Rallos were first cursed by the Rathe and bring me the heart of one of the goblins who have made it their new home. Do not return without the heart of your foe and this war totem."); + e.other:QuestReward(e.self,0,0,0,0,20680,100000); -- Totem of the Freezing War + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20680,item2 = 10549})) then -- Totem of the Freezing War & Heart of Frost + e.self:Say("Very good, you have wreaked havoc on your foes in the ancient land of the giants. Rallos Zek must have guided your blade. (Tenal's voice is suddenly silenced and you feel as if your body is frozen. From Tenal's lips issues a voice that is not his own.) 'Bring this mortal the scales of the children of Veeshan. The red and green as well as my war totem. I will guide your blade.' Your movement returns as Tenal falls to the ground, gasping for breath."); + e.other:QuestReward(e.self,0,0,0,0,20681,100000); -- Totem of Fiery War + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20681,item2 = 11622,item3 = 11582})) then -- totem of fiery war, red/green dragons scales + e.self:Emote("looks at you oddly as you hand him the scales. 'What are..? 'You have done well, mortal, and you will be rewarded if you are truly brave. Travel to the Plane of Hatred and slay the ancient bard who lives there. Do not return without his hand and this mark or you will never be a true warlord.' Tenal drops to the ground as the last words leave his lips.'"); + e.other:QuestReward(e.self,0,0,0,0,20683,100000); -- Mark of the Sword + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20683,item2 = 20676})) then + e.self:Emote("looks horrified as you give him the hand of the Maestro of Rancor and show him the mark of the sword. The godlike voice returns, 'You have done well to acquire this. One final task must be completed before you hold the red scabbard in your mortal hands.' Tenal reaches out and hands you a note. 'Take this note and a wingblade of the spirocs to Kargek. When he receives them, I will speak to you one last time.'"); + e.other:QuestReward(e.self,0,0,0,0,20684,100000); -- Tenal's Note to Kargek + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:eastkarana ID: 15077 -- Tenal_Redblade \ No newline at end of file diff --git a/eastkarana/Theoris_Bladespur.lua b/eastkarana/Theoris_Bladespur.lua new file mode 100644 index 0000000..fe4a816 --- /dev/null +++ b/eastkarana/Theoris_Bladespur.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("sniffs and rubs the wiry stubble upon his chin in a casual manner as he dully eyes you, 'I see by your... arrogant stride and fancy clothing that you can pose only a waste of time to one as myself. Get out of here, before my dagger finds gut."); + end +end diff --git a/eastkarana/Tholris.lua b/eastkarana/Tholris.lua new file mode 100644 index 0000000..a12d0a6 --- /dev/null +++ b/eastkarana/Tholris.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares in contemplation at the landscape."); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Emote("breathes quickly and sweats as he channels his spirit into the sky."); + e.self:CastSpell(791,e.self:GetID()); -- Spell: Call of the Earth + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/eastkarana/Vance_Bearstalker.lua b/eastkarana/Vance_Bearstalker.lua new file mode 100644 index 0000000..2990aa7 --- /dev/null +++ b/eastkarana/Vance_Bearstalker.lua @@ -0,0 +1,8 @@ +function event_spawn(e) + eq.set_timer("depop",1800000); + e.self:AI_SetRoambox(300,-400,-2300,-2205,-3310); +end + +function event_timer(e) + eq.depop(); +end diff --git a/eastwastes/##Garadain_Glacierbane.lua b/eastwastes/##Garadain_Glacierbane.lua new file mode 100644 index 0000000..ea5978d --- /dev/null +++ b/eastwastes/##Garadain_Glacierbane.lua @@ -0,0 +1,15 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1092}, 0)) then + e.self:Say("Good work friend! The Dain will hear of this right away. We couldn't have defeated the Ry'gorr without your help. Take this ring as proof that you have served the Coldain well. You may wish to show it to the Seneschal should you ever stop in our fine city. Farewell, " .. e.other:GetCleanName() .. ", it has been my pleasure knowing you."); + -- Faction confirmed live + e.other:Faction(e.self,406,35); -- Coldain + e.other:Faction(e.self,405,8); -- Dain Frostreaver IV + e.other:Faction(e.self,448,-3); -- Kromzek + e.other:Faction(e.self,419,-17); -- Kromrif + e.other:QuestReward(e.self,0,0,0,0,30164,8000); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/eastwastes/#Boridain_Glacierbane.lua b/eastwastes/#Boridain_Glacierbane.lua new file mode 100644 index 0000000..ef02702 --- /dev/null +++ b/eastwastes/#Boridain_Glacierbane.lua @@ -0,0 +1,36 @@ +-- Coldain Ring: Quest 2 + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30266}, 0)) then + e.self:Say("Yes! I've done it! The vile beast is finally dead. I will at last be revered as the mighty hunter I am. Here is your axe back, I broke it on the killing blow. Take it as proof that you are a friend of the greatest hunter in the history of the Coldain!"); + e.other:QuestReward(e.self,0,0,0,0,30267,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if(e.wp == 1) then + e.self:Say("Hmmm, fresh prints. They're HUGE! This must be it! This hunting stuff is easier than I thought."); + elseif(e.wp == 2) then + e.self:Say("Hmm, that wasn't him. Let's see now, if I were a rabid tundra beast where would I go? This way!"); + elseif(e.wp == 3) then + e.self:SetAppearance(1); + elseif(e.wp == 4) then + e.self:Say("Ahh, that's better. Back to the hunt... I think I hear something over yonder. Stay low."); + elseif(e.wp == 5) then + e.self:Say("Where did that vile beast go now? Wait, what's that over there? Could it be? Only one way to find out!"); + elseif(e.wp == 6) then + e.self:SetAppearance(1); + e.self:Say("All this tracking is makin me mighty sleepy. Time for a little nap. You keep a lookout."); + elseif(e.wp == 7) then + e.self:Say("Ahh, refreshing! Back to work... I think I smell the beast! This way."); + elseif(e.wp == 8) then + e.self:Say("I just don't get it. I thought that was him for sure. I don't see any sign of him now."); + elseif(e.wp == 9) then + e.self:Say("Who am I kidding, I'm no hunter. I'll never be a hunter. I may as well give up and become a miner like dad."); + e.self:SetAppearance(1); + eq.unique_spawn(116017, 14, 0, 1510, -2532, 307, 0); -- NPC: Rabid_Tundra_Kodiak + end +end \ No newline at end of file diff --git a/eastwastes/#Captain_Berradin.lua b/eastwastes/#Captain_Berradin.lua new file mode 100644 index 0000000..54a134d --- /dev/null +++ b/eastwastes/#Captain_Berradin.lua @@ -0,0 +1,26 @@ +function event_spawn(e) + eq.set_timer("playdead",1000); +end + +function event_combat(e) + if(e.joined) then + eq.stop_timer("depop"); + else + eq.set_timer("depop",50000); + e.self:SetAppearance(3); + end +end + +function event_timer(e) + if(e.timer == "playdead") then + e.self:SetAppearance(3); + eq.stop_timer("playdead"); + eq.set_timer("depop",50000); + elseif(e.timer == "depop") then + e.self:Say("Uhhhh... I've been poisoned. Carry on the work men. Don't let me die in vain."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(116100)) then + eq.get_entity_list():GetMobByNpcTypeID(116100):Say("Heh, I never liked him anyway..."); + end + eq.depop(); + end +end diff --git a/eastwastes/#Dobbin_Crossaxe.lua b/eastwastes/#Dobbin_Crossaxe.lua new file mode 100644 index 0000000..ebdcb62 --- /dev/null +++ b/eastwastes/#Dobbin_Crossaxe.lua @@ -0,0 +1,15 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30162}, 0)) then + e.self:Say("Thank you, " .. e.other:GetCleanName() .. ". Your deeds will be mentioned to the Dain. Please take this note from Corbin to Garadain. It may help him to achieve victory over the enemy."); + e.other:Faction(e.self,406,15); -- Coldain + e.other:Faction(e.self,405,3); -- Dain Frostreaver IV + e.other:Faction(e.self,448,-1); -- Kromzek + e.other:Faction(e.self,419,-7); -- Kromrif + e.other:QuestReward(e.self,0,0,0,0,1047,5000); + eq.unique_spawn(116036,0,0,-3188,-574,158,62); -- NPC: Dobbin_Crossaxe + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/eastwastes/#Peffin_Ambersnow.lua b/eastwastes/#Peffin_Ambersnow.lua new file mode 100644 index 0000000..73dad42 --- /dev/null +++ b/eastwastes/#Peffin_Ambersnow.lua @@ -0,0 +1,20 @@ +function event_spawn(e) + eq.set_timer("depop",265000); +end + +function event_combat(e) + if(e.joined) then + e.self:Shout("Take me if you can outlander! Your hunt ends here...I hope you enjoy the taste of Kromrif steel!"); + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + e.self:Say("The cowards seem to have fled friends, thank you for your protection."); + eq.depop_all(116040); + eq.depop(); +end diff --git a/eastwastes/#You_stumble.lua b/eastwastes/#You_stumble.lua new file mode 100644 index 0000000..a948e3b --- /dev/null +++ b/eastwastes/#You_stumble.lua @@ -0,0 +1,15 @@ +-- proximity trigger to spawn Tanik Greskil for 4th coldain prayer shawl + +function event_spawn(e) + eq.set_proximity(e.self:GetX() - 50, e.self:GetX() + 50, e.self:GetY() - 50, e.self:GetY() + 50); +end + +function event_enter(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(116010)) then + e.self:Emote("in the snow."); + else + e.self:Emote("and uncover the body of an injured coldain."); + eq.unique_spawn(116010,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + eq.depop_with_timer(); + end +end diff --git a/eastwastes/116177.lua b/eastwastes/116177.lua new file mode 100644 index 0000000..e760880 --- /dev/null +++ b/eastwastes/116177.lua @@ -0,0 +1,18 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30136}, 0)) then + e.self:Say("Aahhh.. You're too late! They're upon us! To arms, men! Death to Scarbrow!"); + e.other:Faction(e.self,406,5); -- Coldain + e.other:Faction(e.self,405,1); -- Dain Frostreaver IV + e.other:Faction(e.self,448,-1); -- Kromzek + e.other:Faction(e.self,419,-2); -- Kromrif + eq.unique_spawn(116020, 0, 0, -110, -2715, 152, 200); -- Scarbrow Ga'Thruk + eq.spawn2(116021, 0, 0, -93, -2696, 149, 200); -- a Ry'Gorr oracle + eq.spawn2(116021, 0, 0, -91, -2731, 150, 200); -- a Ry'Gorr oracle + eq.spawn2(116022, 0, 0, -115, -2687, 150, 200); -- a Ry'Gorr invader + eq.spawn2(116022, 0, 0, -91, -2727, 150, 200); -- a Ry'Gorr invader + eq.spawn2(116022, 0, 0, -97, -2716, 150, 200); -- a Ry'Gorr invader + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/eastwastes/Boridain_Glacierbane.lua b/eastwastes/Boridain_Glacierbane.lua new file mode 100644 index 0000000..1076759 --- /dev/null +++ b/eastwastes/Boridain_Glacierbane.lua @@ -0,0 +1,18 @@ +-- Coldain Ring: Quest 2 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello stranger, I am Boridain, master hunter of the Coldain. Glad to meet you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30265}, 0)) then + e.self:Say("Say! This looks just like the axe my uncle uses. With this I can kill the beast for sure! Now please, be very quiet, I must track my prey. I won't return to Thurgadin without the hide of the rabid tundra kodiak!"); + eq.unique_spawn(116016, 13, 0, e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/eastwastes/Captain_Berradin.lua b/eastwastes/Captain_Berradin.lua new file mode 100644 index 0000000..84f9029 --- /dev/null +++ b/eastwastes/Captain_Berradin.lua @@ -0,0 +1,23 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1459}, 0)) then -- tainted avalanche ale + e.self:Say("You gotta be kiddin me, Avalanche Ale? Haven't had a bottle a this stuff in ages. Brell bless you, " .. e.other:GetCleanName() .. "! Glug, glug, glug..."); + eq.set_timer("doanim",53000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + if(e.timer == "doanim") then + e.self:DoAnim(15); + eq.stop_timer("doanim"); + eq.set_timer("depop",5000); + elseif(e.timer == "depop") then + e.self:Say("Uhhh... I'm not feeling so good. Someone call for a cleric."); + -- confirmed respawn at spawnpoint even if pulled out of hut. + eq.unique_spawn(116037,0,0,2365,-61,150,119); -- NPC: #Captain_Berradin + eq.stop_timer("depop"); + eq.depop_with_timer(); + end +end diff --git a/eastwastes/Corbin_Blackwell.lua b/eastwastes/Corbin_Blackwell.lua new file mode 100644 index 0000000..3161d9a --- /dev/null +++ b/eastwastes/Corbin_Blackwell.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hurry! There's not much time. Give me the key and show me proof that you are a friend sent to rescue me..."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1046,item2 = 30162}, 0)) then + e.self:Say("I thought I was a dwarfskin rug there for a minute! Thank Brell for your help stranger! Now cover me while I make good my escape. I am weakened and cannot endure much more."); + e.other:QuestReward(e.self,0,0,0,0,30162); + eq.unique_spawn(116034,17,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(116035)) then + eq.depop(116035); + eq.unique_spawn(116036,0,0,-3188,-574,158,62); -- NPC: Dobbin_Crossaxe + end + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/eastwastes/Fjloaren_Icebane.lua b/eastwastes/Fjloaren_Icebane.lua new file mode 100644 index 0000000..a91f48d --- /dev/null +++ b/eastwastes/Fjloaren_Icebane.lua @@ -0,0 +1,39 @@ +-- The Supply Run +-- author - robregen +-- date - 4/10/12 + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("What is it you want, " .. e.other:Race() .. "? I have no time to speak with your kind."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("supplies")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("If you have supplies give them to me fool. Do not keep me waiting!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("coldain")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("The Coldain have created several small outposts within these wastes. They hunt the same beasts we do for food and have made this season unbearable. Our war bands will crush them yet though!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 25266}, 0)) then -- Giant Sack of Supplies + e.self:Say("Thank you for bringing the supplies, " .. e.other:GetCleanName() .. ". This season has not treated my clan well. The winds have grown colder and the Coldain are now brazen enough to hunt the same animals we do. Take this torque back to Svekk and he will repay you for the supplies."); + e.other:Faction(e.self,419,5); -- Kromrif + e.other:Faction(e.self,448,1); -- Kromzek + e.other:Faction(e.self,406,-2); -- Coldain + e.other:Faction(e.self,430,-1); -- Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,25278,500); -- Velium Torque + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/eastwastes/Garadain_Glacierbane.lua b/eastwastes/Garadain_Glacierbane.lua new file mode 100644 index 0000000..a1fa08f --- /dev/null +++ b/eastwastes/Garadain_Glacierbane.lua @@ -0,0 +1,159 @@ +function event_say(e) +-------------------------- +-- Ring 1 Quest -- +-------------------------- + if(e.message:findi("hail")) then + e.self:Say("Hrmff, what's this? A spy sent from the giant heathens, or the selfrighteous wurms perhaps? Either way, you'd be no [friend] of the great Coldain."); + elseif(e.message:findi("friend")) then + e.self:Say("A friend, you say? That remains to be seen. Much more to being a friend of the Coldain than just sayin' so. Anyway, I'm too [tired] to argue about it. I haven't slept in days."); + elseif(e.message:findi("tired")) then + e.self:Say("Did I say tired? Exhausted is more like it. Ever since that blizzard last week I haven't slept a wink. I came back from huntin' snow orcs to find that my [blanket] had blown away and now I'm just too tired to rustle up a new one."); + elseif(e.message:findi("blanket")) then + e.self:Say("Not just any old blanket, mind ye, mine was made of the finest tundra kodiak hides and snow panther skins, two of each. When I was wrapped up in it ya couldn't see me a bit, no, I blended right into the snow, I did. Say, if you be a friend, here's yer chance to prove it. Sew me up a new blanket so I can get some rest."); +--------------------------- +-- Ring 2 Quest -- +--------------------------- + elseif(e.message:findi("nephew")) then + e.self:Say("My nephew, Boridain, keeps running away from home to kill a bothersome [beast], thinking this will prove to all of Thurgadin that he is a great hunter. Every time he does this my sister gets hysterical and I am sent out to find him."); + elseif(e.message:findi("beast")) then + e.self:Say("A rabid tundra kodiak has been feeding on our people for weeks now. If Boridain ever stumbled across the critter I doubt he'd stand a chance. I have a solution, but it would require the [assistance] of an outsider."); + elseif(e.message:findi("assistance")) then + e.self:Say("I'm taking a liking to you, stranger. Your eagerness to help us will not go unnoticed. Find my nephew and give him this axe. It should keep him from hurting himself. Return to me with the ring and proof that he is safe."); + e.other:SummonCursorItem(30265); -- Item: Dull Bladed Axe +--------------------------- +-- Ring 3 Quest -- +--------------------------- + elseif(e.message:findi("hunting")) then + e.self:Say("My camp here boasts the most proficient hunters in the recorded history of the mighty Coldain empire. We alone could feed an entire clan. Things have been frustratingly [slow] lately, though."); + elseif(e.message:findi("slow")) then + e.self:Say("After years of skinning the hides of the giantmen, my hunting knife has lost its edge. The dull blade has slowed me down considerably. It has served me well, but a new [knife] would make me a much more proficient hunter."); + elseif(e.message:findi("knife")) then + e.self:Say("Hunt a wooly rhino and take his horn, then take a flawless hide from a walrus. Combine them in a forge with a skinning rock and bring me the new knife and the silver insignia ring."); +--------------------------- +-- Ring 4 Quest -- +--------------------------- + elseif(e.message:findi("smithing hammer")) then + e.self:Say("[Tain] Hammerfrost can get you one. Find him and give him this."); + e.other:SummonCursorItem(30139); -- Item: Note to Tain + elseif(e.message:findi("tain")) then + e.self:Say("Tain left a short time ago, he said he had a score to settle with a particular Kromriff."); +--------------------------- +-- Ring 5 Quest -- +--------------------------- + elseif(e.message:findi("plans")) then + e.self:Say("The bloody Ry'Gorr, friends of the frost giants, plan to raid our encampment. Their captain, Scarbrow Ga'hruk is leading the raid. I need someone to intercept his [orders] so we may prepare for the attack. Without them we could be in serious trouble."); + elseif(e.message:findi("orders")) then + e.self:Say("Find the Ry'Gorr messenger and cut him down. Bring the message he carries to my lookout. When the attack is thwarted, return to me with the head of Scarbrow and the platinum insignia ring."); +--------------------------- +-- Ring 6 Quest -- +--------------------------- + elseif(e.message:findi("favor")) then + e.self:Say("For several seasons there has been an unsolved mystery in this land. Not far from here an elite team of Coldain and their trained wolves were gathered to make a strike at the Kromrif. No one knows just what became of our strike force. Bring me proof of their fate and proof that whoever was responsible for their loss is no more."); +--------------------------- +-- Ring 7 Quest -- +--------------------------- + elseif(e.message:findi("mission")) then + e.self:Say("A Coldain... A very important Coldain, has been abducted by the Rygorr. He was gathering information that is imperative to our victory over the brainless heathens. You must find him before he is killed and escort him to safety. Return to me with proof that Corbin Blackwell is safe."); +--------------------------- +-- Ring 8 Quest -- +--------------------------- + elseif(e.message:findi("ready")) then + e.self:Say("Very well, " .. e.other:GetCleanName() .. ", give me the Adamantite ring and I will give you the marching orders. Once the orders are given to Gloradin in the next hut, we will be underway. You then must follow me to what will be our battleground. I must warn you, I will hold your ring until the head of Chief Ry`gorr is given to me. If we fail, all will be lost... for both of us."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "Excuse me, " .. e.other:GetCleanName() .. ", aren't you forgetting something?"; + +--------------------------- +-- Ring 1 Reward -- +--------------------------- + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30135}, 0)) then + e.self:Say("Ahh, that'll do fine. Take this, it is but a trinket for now, but continue to serve the Coldain and it will grow in power. I must get some rest now, for I have been told my [nephew] has disappeared again and I will need to track him down tomorrow."); + -- Faction confirmed live + e.other:Faction(e.self,406,5); -- Coldain + e.other:Faction(e.self,405,1); -- Dain Frostreaver IV + e.other:Faction(e.self,448,-1); -- Kromzek + e.other:Faction(e.self,419,-2); -- Kromrif + e.other:QuestReward(e.self,0,0,0,0,30131,1000); +--------------------------- +-- Ring 2 Reward -- +--------------------------- + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30131,item2 = 30267},1,text1)) then + e.self:Say("Well done friend! My nephew is safe at home and his thirst for adventure is quenched for now. The beast will claim no more of our people. I couldn't have handled it better myself. Now I can get back to the business of [hunting]."); + -- Faction confirmed live + e.other:Faction(e.self,406,10); -- Coldain + e.other:Faction(e.self,405,2); -- Dain Frostreaver IV + e.other:Faction(e.self,448,-1); -- Kromzek + e.other:Faction(e.self,419,-5); -- Kromrif + e.other:QuestReward(e.self,0,0,0,0,30133,2000); +--------------------------- +-- Ring 3 Reward -- +--------------------------- + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30133,item2 = 30137},1,text1)) then + e.self:Say("Hrmm, not quite the work of a Coldain. Barely functional, in fact. I'll be needing to touch this up a bit. Fetch me a Coldain [smithing hammer] and I'll be sure to tell my associates in Thurgadin of your deeds."); + -- Faction confirmed live + e.other:Faction(e.self,406,20); -- Coldain + e.other:Faction(e.self,405,5); -- Dain Frostreaver IV + e.other:Faction(e.self,448,-2); -- Kromzek + e.other:Faction(e.self,419,-10); -- Kromrif + e.other:QuestReward(e.self,0,0,0,0,30132,3000); +--------------------------- +-- Ring 4 Reward -- +--------------------------- + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30140,item2 = 30132},1,text1)) then + e.self:Say("Ahh, there we go now, that's more like it. It would be time to return to the hunt were it not for the [plans] our spies have discovered."); + -- Faction confirmed live + e.other:Faction(e.self,406,25); -- Coldain + e.other:Faction(e.self,405,6); -- Dain Frostreaver IV + e.other:Faction(e.self,448,-2); -- Kromzek + e.other:Faction(e.self,419,-12); -- Kromrif + e.other:QuestReward(e.self,0,0,0,0,30134,4000); +--------------------------- +-- Ring 5 Reward -- +--------------------------- + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30141,item2 = 30134},1,text1)) then + e.self:Say("Without your assistance, we would have lost our camp and our lives. Again, I thank you. Now that you have proven your loyalty to the throne I have a special [favor] to ask of you."); + -- Faction confirmed live + e.other:Faction(e.self,406,25); -- Coldain + e.other:Faction(e.self,405,6); -- Dain Frostreaver IV + e.other:Faction(e.self,448,-2); -- Kromzek + e.other:Faction(e.self,419,-12); -- Kromrif + e.other:QuestReward(e.self,0,0,0,0,30268,5000); +--------------------------- +-- Ring 6 Reward -- +--------------------------- + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1045,item2 = 18084,item3 = 30268},1,text1)) then + e.self:Emote("lowers his head and mutters, 'At least there will be some closure for their families, thanks to you. The Ry`gorr will pay for this with their lives! I will ask you to help us in the invasion of Ry`gorr keep, but first I have a delicate [mission] I was hoping you'd handle."); + -- Faction confirmed live + e.other:Faction(e.self,406,25); -- Coldain + e.other:Faction(e.self,405,6); -- Dain Frostreaver IV + e.other:Faction(e.self,448,-2); -- Kromzek + e.other:Faction(e.self,419,-12); -- Kromrif + e.other:QuestReward(e.self,0,0,0,0,30162,6000); +--------------------------- +-- Ring 7 Reward -- +--------------------------- + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1047},0)) then + e.self:Emote("Thank you, " .. e.other:GetCleanName() .. ", your service to our people has been most helpful. The time has come for our people to make war with the Ry`gorr. They must pay for their transgressions against our people. We are just waiting on you. Prepare yourself for glorious battle and tell me when you are [ready]."); + -- Faction confirmed live + e.other:Faction(e.self,406,25); -- Coldain + e.other:Faction(e.self,405,6); -- Dain Frostreaver IV + e.other:Faction(e.self,448,-2); -- Kromzek + e.other:Faction(e.self,419,-12); -- Kromrif + e.other:QuestReward(e.self,0,0,0,0,30163,7000); +--------------------------- +-- Ring 8 Quest -- +--------------------------- + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30163},0)) then + e.self:Emote("Give this to Gloradin and return to me immediately, it is time. May Brell be with us!"); + -- Faction confirmed live + e.other:Faction(e.self,406,15); -- Coldain + e.other:Faction(e.self,405,3); -- Dain Frostreaver IV + e.other:Faction(e.self,448,-1); -- Kromzek + e.other:Faction(e.self,419,-7); -- Kromrif + e.other:QuestReward(e.self,0,0,0,0,1093,3500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/eastwastes/Garath_the_Trader.lua b/eastwastes/Garath_the_Trader.lua new file mode 100644 index 0000000..e3c0f3e --- /dev/null +++ b/eastwastes/Garath_the_Trader.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail to ya, Traveller, and well met! My Name's Garath, a warrior by trade, though I do dabble in some merchanting on the side. My exploring brought me here, and I saw some wonderous things. I ventured inside this ancient tomb with some friends, and oh! The horrors we encountered! I barely made it out alive, but I did manage to pick up some [weapons to trade]."); + elseif(e.message:findi("weapon")) then + e.self:Say("Interested in a trade, are ya? Well, let me tell ya.. I headed into this tomb in hopes of getting a sword I could use, maybe a warhammer.. Humm, yeah a hammer woulda been good also.. Anyhow, I was unlucky in finding those, but I did manage to get a couple weapons... Sadly, they're really more suited to a [Monk] or a [Knight], not really much use to a warrior like myself at all."); + elseif(e.message:findi("monk")) then + e.self:Say("Ah, my eyes fail me lately.. Maybe the cold weather is getting to me? Well, in any case, I picked up some velium hand wraps inside the Tomb here, quite nice.. Yes indeed. I guess I would trade them to ya if you were to give me a warhammer for em. I gotta say, I'm not picky. I'd accept either a primal or a priceless warhammer, and give you these wraps in a straight trade. Heck, I'd take one of each and give you both these hand wraps."); + elseif(e.message:findi("knight")) then + e.self:Say("Knight? Yeah, I don't make much distinction, paladin or shadow knight, they're all knights to me. Well, look here, I got two swords from inside the tomb, but I'll be damned if either of em was suited for a warrior. Clearly a knight's blade, what bad luck for me. I was hopin for a good warsword. That's why I'm standin out here ya know? I was hopin I could find someone who might swap me either a primal or priceless warsword, and take one of these knightly swords in trade."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + -- Priceless Velium Battlehammer => Priceless Velium Fist Wraps + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 27301}, 0)) then + e.self:Say("Ah, excellent! Guess standin out here in the cold proved worthwhile for me after all. You take that weapon and enjoy it, I know I`ll be getting some use of this one. Safe travel to ya, friend!"); + e.other:QuestReward(e.self,0,0,0,0,5833,1000); + -- Primal Velium Battlehammer => Primal Velium Fist Wraps + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 27321}, 0)) then + e.self:Say("Ah, excellent! Guess standin out here in the cold proved worthwhile for me after all. You take that weapon and enjoy it, I know I`ll be getting some use of this one. Safe travel to ya, friend!"); + e.other:QuestReward(e.self,0,0,0,0,27320,1000); + -- Priceless Velium Warsword => Priceless Velium Knight's Sword + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 27300}, 0)) then + e.self:Say("Ah, excellent! Guess standin out here in the cold proved worthwhile for me after all. You take that weapon and enjoy it, I know I`ll be getting some use of this one. Safe travel to ya, friend!"); + e.other:QuestReward(e.self,0,0,0,0,5834,1000); + -- Primal Velium Warsword => Primal Velium Knight's Sword + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 27328}, 0)) then + e.self:Say("Ah, excellent! Guess standin out here in the cold proved worthwhile for me after all. You take that weapon and enjoy it, I know I`ll be getting some use of this one. Safe travel to ya, friend!"); + e.other:QuestReward(e.self,0,0,0,0,5835,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/eastwastes/Gloradin_Coldheart.lua b/eastwastes/Gloradin_Coldheart.lua new file mode 100644 index 0000000..0a3b3ae --- /dev/null +++ b/eastwastes/Gloradin_Coldheart.lua @@ -0,0 +1,19 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1093}, 0)) then + e.self:Say("Thank you. I will return to the Dain and inform him that the battle is underway. Please escort Garadain to the battlefield and see that he returns safely. May Brell bless you and bring you victory over these beasts."); + eq.depop_with_timer(116084); + eq.depop_with_timer(116196); + eq.depop_with_timer(116063); + eq.depop_all(116007); + eq.depop_all(116013); + eq.depop_all(116197); + eq.depop_all(116015); + eq.depop_all(116571); + eq.unique_spawn(116064,22,0,-390,-2713,181.5,19); -- NPC: #Garadain_Glacierbane + eq.unique_spawn(116058,21,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/eastwastes/Korrigain.lua b/eastwastes/Korrigain.lua new file mode 100644 index 0000000..e183cd9 --- /dev/null +++ b/eastwastes/Korrigain.lua @@ -0,0 +1,18 @@ +-- Part of Coldain Ring 6 Quest + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Who dares disturb my rest? If ye be a friend of the mighty Coldain, then show me proof and I shall tell you of my plight. If not, then be on your way."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30268}, 0)) then + e.self:Say("Many seasons ago I stood here in life with my comrades, the best warriors Thurgadin had to offer. Along with our faithful wolven army we were poised to eliminate the Kromrif presence in the region. Somehow, the enemy was made aware of our plans and just before our attack, a group of Ry'Gorr oracles charmed our wolves, forcing them to tear down their own masters. We were caught by surprise and died a savage death."); + eq.get_entity_list():GetMobByNpcTypeID(116534):CastToNPC():AssignWaypoints(16); + e.other:QuestReward(e.self,0,0,0,0,30268); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/eastwastes/Kromrif_Death_Squad.lua b/eastwastes/Kromrif_Death_Squad.lua new file mode 100644 index 0000000..628114b --- /dev/null +++ b/eastwastes/Kromrif_Death_Squad.lua @@ -0,0 +1,14 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(); + end +end + +function event_death_complete(e) + eq.stop_timer("depop"); +end diff --git a/eastwastes/Kromrif_Guard.lua b/eastwastes/Kromrif_Guard.lua new file mode 100644 index 0000000..0db3c46 --- /dev/null +++ b/eastwastes/Kromrif_Guard.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.set_timer("depop",280000) +end + +function event_timer(e) + eq.depop(); +end diff --git a/eastwastes/Peffin_Ambersnow.lua b/eastwastes/Peffin_Ambersnow.lua new file mode 100644 index 0000000..1053399 --- /dev/null +++ b/eastwastes/Peffin_Ambersnow.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh, I uh... err, hello there. Umm, thank Brelll you're here, those bloody Kromrif were going to torture me! Yes, yes, and you've saved me! How can I ever repay you?"); + elseif(e.message:findi("murdrick")) then + e.self:Emote("looks away and stammers, Ehh, ahh, Mur who?"); + elseif(e.message:findi("berradin")) then + e.self:Emote("goes even paler than usual, Hmm, Berradin you say? Sorry, but I've never even heard the name."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18171}, 0)) then + e.other:QuestReward(e.self,0,0,0,0,0,5000); + PeffinCampFire(e); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function PeffinCampFire(e) + eq.unique_spawn(116038,0,0,3413,-1742,143,194); -- NPC: #Peffin_Ambersnow + eq.spawn2(116040,0,0,3411,-1768,155,194); -- NPC: #Kromrif_Elite + eq.spawn2(116040,0,0,3382,-1754,155,194); -- NPC: #Kromrif_Elite + eq.spawn2(116040,0,0,3383,-1740,155,194); -- NPC: #Kromrif_Elite + eq.spawn2(116040,0,0,3382,-1719,155,194); -- NPC: #Kromrif_Elite + eq.spawn2(116040,0,0,3410,-1710,155,194); -- NPC: #Kromrif_Elite + -- hut spawn + eq.spawn2(116182,0,0,3323,-1557,173,47); -- NPC: Kromrif_Elite + eq.spawn2(116182,0,0,3370,-1564,173,34); -- NPC: Kromrif_Elite + eq.spawn2(116182,0,0,3375,-1616,173,23); -- NPC: Kromrif_Elite +end \ No newline at end of file diff --git a/eastwastes/Tain_Hammerfrost.lua b/eastwastes/Tain_Hammerfrost.lua new file mode 100644 index 0000000..d4fe0a1 --- /dev/null +++ b/eastwastes/Tain_Hammerfrost.lua @@ -0,0 +1,13 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30138}, 0)) then + e.self:Say("I will report your selfless actions when I return to Thurgadin. Take this for your troubles, friend. I hope you find it useful. Fare thee well."); + e.other:Faction(e.self,406,10); -- Coldain + e.other:Faction(e.self,405,2); -- Dain Frostreaver IV + e.other:Faction(e.self,448,-1); -- Kromzek + e.other:Faction(e.self,419,-5); -- Kromrif + e.other:QuestReward(e.self,0,0,0,0,30140,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/eastwastes/Tanik_Greskil.lua b/eastwastes/Tanik_Greskil.lua new file mode 100644 index 0000000..5d5ac33 --- /dev/null +++ b/eastwastes/Tanik_Greskil.lua @@ -0,0 +1,42 @@ +-- Tanik Greskil dialogue - hand him a vial of velium vapors to complete quest + +function event_spawn(e) + eq.set_timer("faint",1000); + eq.set_timer("moveloc",120000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Outlander! Thank Brell you've found me! I am the last surviving member of my unit. Our mission was somehow compromised, the bloody Kromrif knew just where to find us... I can't imagine how they knew. I was barely able to escape with my life and wandered into a trap here. I am badly hurt and need your help."); + elseif(e.message:findi("help")) then + e.self:Say("Quickly, give me a vial of Velium Vapors so I can return home, I am in desperate need of some attention from our clerics."); + elseif(e.message:findi("velium vapor")) then + e.self:Say("Drat! Are you telling me you don't have one with you? Run back to Thurgadin at once and speak with Frundle, she can make you one. I will do what I can to stay alive. I may need to move about a bit to keep from being discovered. Hurry now outlander, you're my only hope."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1553}, 0)) then + e.self:Say("Thank you, " .. e.other:GetCleanName() .. ". I shall be eternally grateful to you. Should you ever require my assistance I pledge to you my aid. Please deliver this to Borannin, it is imperative that he deliver this to the Dain at once. Farewell for now outlander...."); + e.other:QuestReward(e.self,0,0,0,0,1560); + eq.stop_timer("moveloc"); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + if(e.timer == "faint") then + eq.stop_timer("faint"); + e.self:SetAppearance(3); + elseif(e.timer == "moveloc") then + eq.stop_timer("moveloc"); + eq.depop(); + end +end + +function event_death_complete(e) + eq.stop_timer("moveloc"); +end diff --git a/eastwastes/Warden_Bruke.lua b/eastwastes/Warden_Bruke.lua new file mode 100644 index 0000000..293d18b --- /dev/null +++ b/eastwastes/Warden_Bruke.lua @@ -0,0 +1,20 @@ +function event_combat(e) + if(e.joined) then + Guards = math.random(0,4); + if(Guards == 4) then + eq.spawn2(116031,0,0,-381,430,-3,0):CastToNPC():MoveTo(-360,313,15,0,true); + eq.spawn2(116031,0,0,-373,431,-3,0):CastToNPC():MoveTo(-360,313,15,0,true); + eq.spawn2(116031,0,0,-355,428,-3,0):CastToNPC():MoveTo(-360,313,15,0,true); + eq.spawn2(116031,0,0,-343,410,-3,0):CastToNPC():MoveTo(-360,313,15,0,true); + elseif(Guards == 3) then + eq.spawn2(116031,0,0,-373,431,-3,0):CastToNPC():MoveTo(-360,313,15,0,true); + eq.spawn2(116031,0,0,-355,428,-3,0):CastToNPC():MoveTo(-360,313,15,0,true); + eq.spawn2(116031,0,0,-343,410,-3,0):CastToNPC():MoveTo(-360,313,15,0,true); + elseif(Guards == 2) then + eq.spawn2(116031,0,0,-373,431,-3,0):CastToNPC():MoveTo(-360,313,15,0,true); + eq.spawn2(116031,0,0,-355,428,-3,0):CastToNPC():MoveTo(-360,313,15,0,true); + elseif(Guards == 1) then + eq.spawn2(116031,0,0,-373,431,-3,0):CastToNPC():MoveTo(-360,313,15,0,true); + end + end +end diff --git a/eastwastes/You_have.lua b/eastwastes/You_have.lua new file mode 100644 index 0000000..3679850 --- /dev/null +++ b/eastwastes/You_have.lua @@ -0,0 +1,15 @@ +-- proximity trigger to spawn Kromrif Death Squad + +function event_spawn(e) + eq.set_proximity(e.self:GetX() - 20, e.self:GetX() + 20, e.self:GetY() - 20, e.self:GetY() + 20); +end + +function event_enter(e) + e.self:Emote("been ambushed!"); + eq.spawn2(116014,0,0,e.self:GetX()+5,e.self:GetY()-5,e.self:GetZ(),0); + eq.spawn2(116014,0,0,e.self:GetX()-5,e.self:GetY()+5,e.self:GetZ(),0); + eq.spawn2(116014,0,0,e.self:GetX()+10,e.self:GetY()-5,e.self:GetZ(),0); + eq.spawn2(116014,0,0,e.self:GetX()-5,e.self:GetY()+10,e.self:GetZ(),0); + eq.depop_with_timer(); +end + diff --git a/eastwastes/a_Ry-Gorr_messenger.lua b/eastwastes/a_Ry-Gorr_messenger.lua new file mode 100644 index 0000000..a503976 --- /dev/null +++ b/eastwastes/a_Ry-Gorr_messenger.lua @@ -0,0 +1,12 @@ +function event_spawn(e) + e.self:SetRunning(true); + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(5); +end + +function event_death(e) + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(14400); +end diff --git a/eastwastes/an_ogre_mercenary.lua b/eastwastes/an_ogre_mercenary.lua new file mode 100644 index 0000000..785fada --- /dev/null +++ b/eastwastes/an_ogre_mercenary.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("This better be good, " .. e.other:Race() .. "! Well? Spit it OUT!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1724}, 0)) then + e.self:Say("It's about time, whelp. Take your payment and leave, you're scaring away my... clients."); + e.other:Faction(e.self,448,3); -- Faction: Kromzek + e.other:Faction(e.self,419,1); -- Faction: Kromrif + e.other:Faction(e.self,429,1); -- Faction: King Tormax + e.other:Faction(e.self,430,-1); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,math.random(10),math.random(10),math.random(10),0,0,500); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/eastwastes/encounters/ringeight.lua b/eastwastes/encounters/ringeight.lua new file mode 100644 index 0000000..89ca3af --- /dev/null +++ b/eastwastes/encounters/ringeight.lua @@ -0,0 +1,722 @@ +local RWolven00 = nil; +local RWolven01 = nil; +local RWolven02 = nil; +local RWolven03 = nil; +local RArcher00 = nil; +local RArcher01 = nil; +local RArcher02 = nil; +local RArcher03 = nil; +local RArcher04 = nil; +local RArcher05 = nil; +local RArcher06 = nil; +local RArcher07 = nil; +local RPaladin00 = nil; +local RPaladin01 = nil; +local RPaladin02 = nil; +local RPaladin03 = nil; +local RPriest00 = nil; +local RPriest01 = nil; +local RPriest02 = nil; +local RPriest03 = nil; +local RChipper00 = nil; +local RChipper01 = nil; +local RChipper02 = nil; +local RChipper03 = nil; +local RDain00 = nil; +local RDain01 = nil; +local RDain02 = nil; +local RDain03 = nil; + +function GaradainWaypoint(e) + if(e.wp == 1) then + e.self:Say("Follow me closely, friend, time is of the essence. I will describe our situation as we walk."); + ArcherWolvenSpawn(e); + elseif(e.wp == 3) then + e.self:Say("The Dain's own royal troops will be at our disposal for the battle. This is good news, they are hardened, experienced soldiers. The bad news is that our sources indicate that the Ry`gorr have been alerted to our presence and will be ready for an attack. This is most unfortunate... They will not go down without a fierce fight."); + RoyalBrellSpawn(e); + GiantOrcSpawns1(e); + elseif(e.wp == 5) then + e.self:Say("It is of utmost importance that you stay with me throughout the fight. Your focus must be on killing Chief Rygorr and keeping me alive, mind that you do not become distracted. If I fall the Dain's men will retreat and you'll definitely be cut down."); + GiantOrcSpawn2(e); + elseif(e.wp == 7) then + e.self:Say("It is worse than I thought. Not only are they prepared for an attack, but they have the Kromrif here to help them. Our steel will be tested today. Be sure not to show the troops any fear."); + elseif(e.wp == 9) then + e.self:Say("TROOPS! FALL IN!"); + FirstMove(e); + eq.spawn2(116067,23,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop(); + end +end + +function Garadain2Waypoint(e) + if(e.wp == 1) then + e.self:Say("Listen up men!"); + FaceHeading(e); + elseif(e.wp == 2) then + e.self:Say("You all know why we're here. For decades these savages have menaced our people. Recent events have been too much to bear and the Dain has declared war! We will stop at nothing short of the Ry`gorr's annihilation!"); + elseif(e.wp == 3) then + e.self:Say("No longer will we tolerate their heathen presence in our lands! Never again will we mourn the loss of a Coldain to these pawns of the Kromrif! Our deeds here today shall make this land safe for Coldain for all time!"); + elseif(e.wp == 4) then + e.self:Say("Today the Ry`gorr fall! Tomorrow the Kromrif!"); + DoAnimation(e); + elseif(e.wp == 5) then + e.self:Say("Fall out men!"); + SecondMove(e); + elseif(e.wp == 6) then + e.self:Say("Stay back from the initial charge, my friend. We will go directly for the chief once the troops are engaged. Follow me closely!"); + elseif(e.wp == 8) then + e.self:Shout("For the Glory of Thurgadin! CHARGE!"); + ThirdMove(e); + elseif(e.wp == 9) then + eq.depop_all(116042); + SecondArcherSpawn(e); + end +end + +function GiantOrcSpawns1(e) + eq.depop_with_timer(116165); + eq.depop_with_timer(116006); + eq.spawn2(116057,0,0,440,-3630,147,0); -- Firbrand the Black + eq.spawn2(116066,0,0,420,-3630,147,0); -- Oracle of Ry'Gorr + eq.spawn2(116056,0,0,430,-3640,147,0); -- Chief Ry'Gorr + eq.spawn2(116054,0,0,450,-3640,155,0); -- Kromrif Commander + eq.spawn2(116054,0,0,410,-3640,155,0); -- Kromrif Commander + eq.spawn2(116050,0,0,275,-3476,155,0); -- Kromrif Soldier + eq.spawn2(116050,0,0,255,-3476,155,0); -- Kromrif Soldier + eq.spawn2(116050,0,0,275,-3496,155,0); -- Kromrif Soldier +end + +function GiantOrcSpawn2(e) + eq.spawn2(116050,0,0,595,-3476,155,0); -- Kromrif Soldier + eq.spawn2(116050,0,0,575,-3496,155,0); -- Kromrif Soldier + eq.spawn2(116050,0,0,595,-3496,155,0); -- Kromrif Soldier + eq.spawn2(116050,0,0,575,-3476,155,0); -- Kromrif Soldier + eq.spawn2(116053,0,0,515,-3496,147,0); -- Ry'Gorr Oracle + eq.spawn2(116053,0,0,495,-3496,147,0); -- Ry'Gorr Oracle + eq.spawn2(116053,0,0,475,-3496,147,0); -- Ry'Gorr Oracle + eq.spawn2(116053,0,0,455,-3496,147,0); -- Ry'Gorr Oracle + eq.spawn2(116053,0,0,395,-3496,147,0); -- Ry'Gorr Oracle + eq.spawn2(116053,0,0,375,-3496,147,0); -- Ry'Gorr Oracle + eq.spawn2(116053,0,0,355,-3496,147,0); -- Ry'Gorr Oracle + eq.spawn2(116053,0,0,315,-3496,147,0); -- Ry'Gorr Oracle + eq.spawn2(116051,0,0,315,-3476,147,0); -- Ry'Gorr Elite + eq.spawn2(116051,0,0,355,-3476,147,0); -- Ry'Gorr Elite + eq.spawn2(116051,0,0,375,-3476,147,0); -- Ry'Gorr Elite + eq.spawn2(116051,0,0,395,-3476,147,0); -- Ry'Gorr Elite + eq.spawn2(116051,0,0,455,-3476,147,0); -- Ry'Gorr Elite + eq.spawn2(116051,0,0,475,-3476,147,0); -- Ry'Gorr Elite + eq.spawn2(116051,0,0,495,-3476,147,0); -- Ry'Gorr Elite + eq.spawn2(116051,0,0,515,-3476,147,0); -- Ry'Gorr Elite + eq.spawn2(116051,0,0,535,-3476,147,0); -- Ry'Gorr Elite +end + +function ArcherWolvenSpawn(e) + RArcher00 = eq.spawn2(116042,0,0,776,-2953,188,0); -- Royal Archer00 + RArcher01 = eq.spawn2(116042,0,0,876,-2711,191,0); -- Royal Archer01 + RArcher02 = eq.spawn2(116042,0,0,497,-2905,163,0); -- Royal Archer02 + RArcher03 = eq.spawn2(116042,0,0,1305,-2775,172,0); -- Royal Archer03 + RArcher04 = eq.spawn2(116042,0,0,1180,-3069,226,0); -- Royal Archer04 + RArcher05 = eq.spawn2(116042,0,0,875,-2687,187,0); -- Royal Archer05 + RArcher06 = eq.spawn2(116042,0,0,539,-2861,157,0); -- Royal Archer06 + RArcher07 = eq.spawn2(116042,0,0,1287,-2753,170,0); -- Royal Archer07 + RWolven00 = eq.spawn2(116043,0,0,1157,-3009,222,0); -- Royal Wolven Guard00 + RWolven01 = eq.spawn2(116043,0,0,793,-2947,188,0); -- Royal Wolven Guard01 + RWolven02 = eq.spawn2(116043,0,0,887,-2730,195,0); -- Royal Wolven Guard03 + RWolven03 = eq.spawn2(116043,0,0,887,-2730,195,0); -- Royal Wolven Guard04 +end + +function RoyalBrellSpawn(e) + RDain00 = eq.spawn2(116045,0,0,844,-2727,190,0); -- Royal Guard of the Dain00 + RDain01 = eq.spawn2(116045,0,0,762,-2915,182,0); -- Royal Guard of the Dain01 + RDain02 = eq.spawn2(116045,0,0,524,-2895,161,0); -- Royal Guard of the Dain02 + RDain03 = eq.spawn2(116045,0,0,1287,-2795,177,0); -- Royal Guard of the Dain03 + RChipper00 = eq.spawn2(116046,0,0,848,-2699,187,0); -- Coldain_Icechipper00 + RChipper01 = eq.spawn2(116046,0,0,1199,-3089,227,0); -- Coldain_Icechipper01 + RChipper02 = eq.spawn2(116046,0,0,1197,-2974,223,0); -- Coldain_Icechipper02 + RChipper03 = eq.spawn2(116046,0,0,758,-2940,183,0); -- Coldain_Icechipper03 + RPriest00 = eq.spawn2(116047,0,0,520,-2870,158,0); -- Priest_of_Brell00 + RPriest01 = eq.spawn2(116047,0,0,780,-2927,186,0); -- Priest_of_Brell01 + RPriest02 = eq.spawn2(116047,0,0,1173,-2986,222,0); -- Priest_of_Brell02 + RPriest03 = eq.spawn2(116047,0,0,495,-2872,158,0); -- Priest_of_Brell03 + RPaladin00 = eq.spawn2(116049,0,0,1333,-2783,172,0); -- Paladin_of_Brell00 + RPaladin01 = eq.spawn2(116049,0,0,1330,-2755,167,0); -- Paladin_of_Brell01 + RPaladin02 = eq.spawn2(116049,0,0,1214,-3074,227,0); -- Paladin_of_Brell02 + RPaladin03 = eq.spawn2(116049,0,0,1178,-2965,222,0); -- Paladin_of_Brell03 +end + +function FirstMove(e) + if(eq.get_entity_list():IsMobSpawnedByEntityID(RWolven00:GetID())) then + RWolven00:CastToNPC():MoveTo(695,-2440,162,0,true); -- + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RWolven01:GetID())) then + RWolven01:CastToNPC():MoveTo(710,-2440,163,0,true); -- + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RWolven02:GetID())) then + RWolven02:CastToNPC():MoveTo(725,-2440,164,0,true); -- + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RWolven03:GetID())) then + RWolven03:CastToNPC():MoveTo(740,-2440,165,0,true); -- + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher00:GetID())) then + RArcher00:CastToNPC():MoveTo(695,-2455,162,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher01:GetID())) then + RArcher01:CastToNPC():MoveTo(710,-2455,163,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher02:GetID())) then + RArcher02:CastToNPC():MoveTo(725,-2455,164,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher03:GetID())) then + RArcher03:CastToNPC():MoveTo(740,-2455,165,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher04:GetID())) then + RArcher04:CastToNPC():MoveTo(695,-2470,162,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher05:GetID())) then + RArcher05:CastToNPC():MoveTo(725,-2470,164,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher06:GetID())) then + RArcher06:CastToNPC():MoveTo(740,-2470,165,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher07:GetID())) then + RArcher07:CastToNPC():MoveTo(710,-2470,163,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPaladin00:GetID())) then + RPaladin00:CastToNPC():MoveTo(740,-2485,165,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPaladin01:GetID())) then + RPaladin01:CastToNPC():MoveTo(725,-2485,164,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPaladin02:GetID())) then + RPaladin02:CastToNPC():MoveTo(695,-2485,162,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPaladin03:GetID())) then + RPaladin03:CastToNPC():MoveTo(710,-2485,163,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPriest00:GetID())) then + RPriest00:CastToNPC():MoveTo(695,-2500,162,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPriest01:GetID())) then + RPriest01:CastToNPC():MoveTo(710,-2500,163,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPriest02:GetID())) then + RPriest02:CastToNPC():MoveTo(725,-2500,164,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPriest03:GetID())) then + RPriest03:CastToNPC():MoveTo(740,-2500,165,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RChipper00:GetID())) then + RChipper00:CastToNPC():MoveTo(695,-2515,162,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RChipper01:GetID())) then + RChipper01:CastToNPC():MoveTo(710,-2515,163,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RChipper02:GetID())) then + RChipper02:CastToNPC():MoveTo(725,-2515,164,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RChipper03:GetID())) then + RChipper03:CastToNPC():MoveTo(740,-2515,165,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RDain00:GetID())) then + RDain00:CastToNPC():MoveTo(710,-2530,163,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RDain01:GetID())) then + RDain01:CastToNPC():MoveTo(740,-2530,165,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RDain02:GetID())) then + RDain02:CastToNPC():MoveTo(725,-2530,164,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RDain03:GetID())) then + RDain03:CastToNPC():MoveTo(695,-2530,162,0,true); + end +end + +function SecondMove(e) + if(eq.get_entity_list():IsMobSpawnedByEntityID(RWolven00:GetID())) then + RWolven00:CastToNPC():MoveTo(305,-3140,189,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RWolven01:GetID())) then + RWolven01:CastToNPC():MoveTo(325,-3140,189,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RWolven02:GetID())) then + RWolven02:CastToNPC():MoveTo(525,-3140,194,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RWolven03:GetID())) then + RWolven03:CastToNPC():MoveTo(545,-3140,196,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher00:GetID())) then + RArcher00:CastToNPC():MoveTo(315,-3160,185,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher01:GetID())) then + RArcher01:CastToNPC():MoveTo(335,-3160,185,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher02:GetID())) then + RArcher02:CastToNPC():MoveTo(355,-3160,185,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher03:GetID())) then + RArcher03:CastToNPC():MoveTo(375,-3160,185,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher04:GetID())) then + RArcher04:CastToNPC():MoveTo(475,-3160,188,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher05:GetID())) then + RArcher05:CastToNPC():MoveTo(515,-3160,190,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher06:GetID())) then + RArcher06:CastToNPC():MoveTo(535,-3160,192,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher07:GetID())) then + RArcher07:CastToNPC():MoveTo(495,-3160,188,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPaladin00:GetID())) then + RPaladin00:CastToNPC():MoveTo(505,-3140,193,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPaladin01:GetID())) then + RPaladin01:CastToNPC():MoveTo(345,-3140,190,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPaladin02:GetID())) then + RPaladin02:CastToNPC():MoveTo(325,-3125,190,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPaladin03:GetID())) then + RPaladin03:CastToNPC():MoveTo(545,-3125,194,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPriest00:GetID())) then + RPriest00:CastToNPC():MoveTo(305,-3125,162,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPriest01:GetID())) then + RPriest01:CastToNPC():MoveTo(365,-3125,189,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPriest02:GetID())) then + RPriest02:CastToNPC():MoveTo(485,-3125,190,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPriest03:GetID())) then + RPriest03:CastToNPC():MoveTo(525,-3125,192,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RChipper00:GetID())) then + RChipper00:CastToNPC():MoveTo(345,-3125,189,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RChipper01:GetID())) then + RChipper01:CastToNPC():MoveTo(465,-3125,189,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RChipper02:GetID())) then + RChipper02:CastToNPC():MoveTo(465,-3125,189,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RChipper03:GetID())) then + RChipper03:CastToNPC():MoveTo(505,-3125,191,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RDain00:GetID())) then + RDain00:CastToNPC():MoveTo(385,-3140,189,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RDain01:GetID())) then + RDain01:CastToNPC():MoveTo(485,-3140,192,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RDain02:GetID())) then + RDain02:CastToNPC():MoveTo(465,-3140,191,128,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RDain03:GetID())) then + RDain03:CastToNPC():MoveTo(365,-3140,189,128,true); + end +end + +function ThirdMove(e) + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher00:GetID())) then + RArcher00:CastToNPC():MoveTo(315,-3400,145,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher01:GetID())) then + RArcher01:CastToNPC():MoveTo(315,-3400,145,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher02:GetID())) then + RArcher02:CastToNPC():MoveTo(355,-3400,145,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher03:GetID())) then + RArcher03:CastToNPC():MoveTo(375,-3400,145,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher04:GetID())) then + RArcher04:CastToNPC():MoveTo(475,-3400,145,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher05:GetID())) then + RArcher05:CastToNPC():MoveTo(515,-3400,145,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher06:GetID())) then + RArcher06:CastToNPC():MoveTo(535,-3400,145,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher07:GetID())) then + RArcher07:CastToNPC():MoveTo(495,-3400,145,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPaladin00:GetID())) then + RPaladin00:CastToNPC():MoveTo(505,-3465,145,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPaladin01:GetID())) then + RPaladin01:CastToNPC():MoveTo(345,-3465,145,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPriest01:GetID())) then + RPriest01:CastToNPC():MoveTo(365,-3465,145,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPriest02:GetID())) then + RPriest02:CastToNPC():MoveTo(485,-3465,145,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RChipper00:GetID())) then + RChipper00:CastToNPC():MoveTo(345,-3465,145,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RChipper01:GetID())) then + RChipper01:CastToNPC():MoveTo(465,-3465,145,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RChipper02:GetID())) then + RChipper02:CastToNPC():MoveTo(465,-3465,145,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RChipper03:GetID())) then + RChipper03:CastToNPC():MoveTo(505,-3465,145,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RDain00:GetID())) then + RDain00:CastToNPC():MoveTo(385,-3465,145,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RDain01:GetID())) then + RDain01:CastToNPC():MoveTo(485,-3465,145,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RDain02:GetID())) then + RDain02:CastToNPC():MoveTo(465,-3465,145,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RDain03:GetID())) then + RDain03:CastToNPC():MoveTo(365,-3465,145,0,true); + end +end + +function SecondArcherSpawn(e) + eq.spawn2(116068,0,0,315,-3400,145,128); -- Royal Archer00 + eq.spawn2(116068,0,0,335,-3400,145,128); -- Royal Archer01 + eq.spawn2(116068,0,0,355,-3400,145,128); -- Royal Archer02 + eq.spawn2(116068,0,0,375,-3400,145,128); -- Royal Archer03 + eq.spawn2(116068,0,0,495,-3400,146,128); -- Royal Archer04 + eq.spawn2(116068,0,0,515,-3400,146,128); -- Royal Archer05 + eq.spawn2(116068,0,0,535,-3400,146,128); -- Royal Archer06 +end + +function FaceHeading(e) + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher00:GetID())) then + RArcher00:CastToNPC():MoveTo(695,-2456,162,155,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher01:GetID())) then + RArcher01:CastToNPC():MoveTo(710,-2456,163,164,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher02:GetID())) then + RArcher02:CastToNPC():MoveTo(725,-2456,164,172,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher03:GetID())) then + RArcher03:CastToNPC():MoveTo(740,-2456,165,175,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher04:GetID())) then + RArcher04:CastToNPC():MoveTo(695,-2471,162,168,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher05:GetID())) then + RArcher05:CastToNPC():MoveTo(725,-2471,164,181,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher06:GetID())) then + RArcher06:CastToNPC():MoveTo(740,-2471,165,182,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RArcher07:GetID())) then + RArcher07:CastToNPC():MoveTo(710,-2471,163,176,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPaladin00:GetID())) then + RPaladin00:CastToNPC():MoveTo(740,-2484,165,192,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPaladin01:GetID())) then + RPaladin01:CastToNPC():MoveTo(725,-2484,164,192,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPaladin02:GetID())) then + RPaladin02:CastToNPC():MoveTo(695,-2484,162,192,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPaladin03:GetID())) then + RPaladin03:CastToNPC():MoveTo(710,-2484,163,192,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPriest00:GetID())) then + RPriest00:CastToNPC():MoveTo(695,-2501,162,212,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPriest01:GetID())) then + RPriest01:CastToNPC():MoveTo(710,-2501,163,206,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPriest02:GetID())) then + RPriest02:CastToNPC():MoveTo(725,-2501,164,202,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RPriest03:GetID())) then + RPriest03:CastToNPC():MoveTo(740,-2501,165,199,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RChipper00:GetID())) then + RChipper00:CastToNPC():MoveTo(695,-2516,162,227,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RChipper01:GetID())) then + RChipper01:CastToNPC():MoveTo(710,-2516,163,217,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RChipper02:GetID())) then + RChipper02:CastToNPC():MoveTo(725,-2516,164,211,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RChipper03:GetID())) then + RChipper03:CastToNPC():MoveTo(740,-2516,165,208,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RDain00:GetID())) then + RDain00:CastToNPC():MoveTo(710,-2531,163,225,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RDain01:GetID())) then + RDain01:CastToNPC():MoveTo(740,-2531,165,215,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RDain02:GetID())) then + RDain02:CastToNPC():MoveTo(725,-2531,164,218,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(RDain03:GetID())) then + RDain03:CastToNPC():MoveTo(695,-2531,162,235,true); + end +end + +function DoAnimation(e) + local Coldain_List = Set {116042,116049,116047,116046,116045}; -- Archer, Paladin, Priest, Chipper, Guard + local npc_list = eq.get_entity_list():GetNPCList(); + + if (npc_list ~= nil) then + for npc in npc_list.entries do + if (Coldain_List[npc:GetNPCTypeID()] ~= nil) then + -- npc.valid will be true if the NPC is actually spawned + if (npc.valid) then + npc:CastToNPC():DoAnim(27); + end + end + end + end +end + +-- Set function example from Programming In Lua +-- http://www.lua.org/pil/11.5.html +function Set (list) + local set = {} + for _, l in ipairs(list) do set[l] = true end + return set +end + +function RWolvenSpawn(e) + e.self:SetRunning(true); + eq.set_timer("depop",1200000); +end + +function RArcherSpawn(e) + e.self:SetRunning(true); + eq.set_timer("depop",1200000); +end + +function RPaladinSpawn(e) + e.self:SetRunning(true); + eq.set_timer("depop",1200000); +end + +function RPriestSpawn(e) + e.self:SetRunning(true); + eq.set_timer("depop",1200000); +end + +function RChipperSpawn(e) + e.self:SetRunning(true); + eq.set_timer("depop",1200000); +end + +function RDainSpawn(e) + e.self:SetRunning(true); + eq.set_timer("depop",1200000); +end + +function RArcher2Spawn(e) + eq.set_timer("depop",900000); +end + +function ChiefSpawn(e) + eq.set_timer("depop",1200000); +end + +function CommanderSpawn(e) + eq.set_timer("depop",1200000); +end + +function OracleSpawn(e) + eq.set_timer("depop",1200000); +end + +function FirbrandSpawn(e) + eq.set_timer("depop",1200000); +end + +function SoldierSpawn(e) + eq.set_timer("depop",1200000); +end + +function RyOracSpawn(e) + eq.set_timer("depop",1200000); +end + +function EliteSpawn(e) + eq.set_timer("depop",1200000); +end + +function RWolvenTimer(e) + eq.depop(); +end + +function RArcherTimer(e) + eq.depop(); +end + +function RPaladinTimer(e) + eq.depop(); +end + +function RPriestTimer(e) + eq.depop(); +end + +function RChipperTimer(e) + eq.depop(); +end + +function RDainTimer(e) + eq.depop(); +end + +function RArcher2Timer(e) + eq.depop(); +end + +function ChiefTimer(e) + eq.depop(); +end + +function CommanderTimer(e) + eq.depop(); +end + +function OracleTimer(e) + eq.depop(); +end + +function FirbrandTimer(e) + eq.depop(); +end + +function SoldierTimer(e) + eq.depop(); +end + +function RyOracTimer(e) + eq.depop(); +end + +function EliteTimer(e) + eq.depop(); +end + +function RWolvenCombat(e) + combat(e); +end + +function RArcherCombat(e) + combat(e); +end + +function RPaladinCombat(e) + combat(e); +end + +function RPriestCombat(e) + combat(e); +end + +function RChipperCombat(e) + combat(e); +end + +function RDainCombat(e) + combat(e); +end + +function RArcher2Combat(e) + combat(e); +end + +function ChiefCombat(e) + combat(e); +end + +function CommanderCombat(e) + combat(e); +end + +function OracleCombat(e) + combat(e); +end + +function FirbrandCombat(e) + combat(e); +end + +function SoldierCombat(e) + combat(e); +end + +function RyOracCombat(e) + combat(e); +end + +function EliteCombat(e) + combat(e); +end + +function combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("ringeight", Event.waypoint_arrive, 116064, GaradainWaypoint); + eq.register_npc_event("ringeight", Event.waypoint_arrive, 116067, Garadain2Waypoint); + eq.register_npc_event("ringeight", Event.spawn, 116043, RWolvenSpawn); + eq.register_npc_event("ringeight", Event.spawn, 116042, RArcherSpawn); + eq.register_npc_event("ringeight", Event.spawn, 116049, RPaladinSpawn); + eq.register_npc_event("ringeight", Event.spawn, 116047, RPriestSpawn); + eq.register_npc_event("ringeight", Event.spawn, 116046, RChipperSpawn); + eq.register_npc_event("ringeight", Event.spawn, 116045, RDainSpawn); + eq.register_npc_event("ringeight", Event.spawn, 116068, RArcher2Spawn); + eq.register_npc_event("ringeight", Event.spawn, 116056, ChiefSpawn); + eq.register_npc_event("ringeight", Event.spawn, 116054, CommanderSpawn); + eq.register_npc_event("ringeight", Event.spawn, 116066, OracleSpawn); + eq.register_npc_event("ringeight", Event.spawn, 116057, FirbrandSpawn); + eq.register_npc_event("ringeight", Event.spawn, 116050, SoldierSpawn); + eq.register_npc_event("ringeight", Event.spawn, 116053, RyOracSpawn); + eq.register_npc_event("ringeight", Event.spawn, 116051, EliteSpawn); + eq.register_npc_event("ringeight", Event.timer, 116043, RWolvenTimer); + eq.register_npc_event("ringeight", Event.timer, 116042, RArcherTimer); + eq.register_npc_event("ringeight", Event.timer, 116049, RPaladinTimer); + eq.register_npc_event("ringeight", Event.timer, 116047, RPriestTimer); + eq.register_npc_event("ringeight", Event.timer, 116046, RChipperTimer); + eq.register_npc_event("ringeight", Event.timer, 116045, RDainTimer); + eq.register_npc_event("ringeight", Event.timer, 116068, RArcher2Timer); + eq.register_npc_event("ringeight", Event.timer, 116056, ChiefTimer); + eq.register_npc_event("ringeight", Event.timer, 116054, CommanderTimer); + eq.register_npc_event("ringeight", Event.timer, 116066, OracleTimer); + eq.register_npc_event("ringeight", Event.timer, 116057, FirbrandTimer); + eq.register_npc_event("ringeight", Event.timer, 116050, SoldierTimer); + eq.register_npc_event("ringeight", Event.timer, 116053, RyOracTimer); + eq.register_npc_event("ringeight", Event.timer, 116051, EliteTimer); + eq.register_npc_event("ringeight", Event.combat, 116043, RWolvenCombat); + eq.register_npc_event("ringeight", Event.combat, 116042, RArcherCombat); + eq.register_npc_event("ringeight", Event.combat, 116049, RPaladinCombat); + eq.register_npc_event("ringeight", Event.combat, 116047, RPriestCombat); + eq.register_npc_event("ringeight", Event.combat, 116046, RChipperCombat); + eq.register_npc_event("ringeight", Event.combat, 116045, RDainCombat); + eq.register_npc_event("ringeight", Event.combat, 116068, RArcher2Combat); + eq.register_npc_event("ringeight", Event.combat, 116056, ChiefCombat); + eq.register_npc_event("ringeight", Event.combat, 116054, CommanderCombat); + eq.register_npc_event("ringeight", Event.combat, 116066, OracleCombat); + eq.register_npc_event("ringeight", Event.combat, 116057, FirbrandCombat); + eq.register_npc_event("ringeight", Event.combat, 116050, SoldierCombat); + eq.register_npc_event("ringeight", Event.combat, 116053, RyOracCombat); + eq.register_npc_event("ringeight", Event.combat, 116051, EliteCombat); +end diff --git a/eastwastes/encounters/ringfive.lua b/eastwastes/encounters/ringfive.lua new file mode 100644 index 0000000..ca97baa --- /dev/null +++ b/eastwastes/encounters/ringfive.lua @@ -0,0 +1,84 @@ +-- Coldain Ring: Quest 5 + +function ScarbrowSpawn(e) + e.self:SetRunning(true); + eq.set_timer("gogo",1000); +end + +function oracleSpawn(e) + e.self:SetRunning(true); + eq.set_timer("gogo",20000); +end + +function invaderSpawn(e) + e.self:SetRunning(true); + eq.set_timer("gogo",15000); +end + +function ScarbrowTimer(e) + if(e.timer == "gogo") then + eq.move_to(-350,-2653,174,0,true); + eq.stop_timer("gogo"); + end + if(e.timer == "depop") then + eq.depop(); + eq.stop_timer("depop"); + end +end + +function oracleTimer(e) + if(e.timer == "gogo") then + eq.ChooseRandom(eq.move_to(-346,-2630,172,0,true),eq.move_to(-409,-2670,179,0,true)); + eq.stop_timer("gogo"); + end + if(e.timer == "depop") then + eq.depop(); + end +end + +function invaderTimer(e) + if(e.timer == "gogo") then + eq.ChooseRandom(eq.move_to(-391,-2623,176,0,true),eq.move_to(-374,-2664,176,0,true),eq.move_to(-407,-2647,178,0,true)); + eq.stop_timer("gogo"); + end + if(e.timer == "depop") then + eq.depop(); + eq.stop_timer("depop"); + end +end + +function ScarbrowCombat(e) + if(e.joined) then + eq.stop_timer("depop"); + else + eq.set_timer("depop",5000); + end +end + +function oracleCombat(e) + if(e.joined) then + eq.stop_timer("depop"); + else + eq.set_timer("depop",20000); + end +end + +function invaderCombat(e) + if(e.joined) then + eq.stop_timer("depop"); + else + eq.set_timer("depop",20000); + end +end + +function event_encounter_load(e) + eq.register_npc_event("ringfive", Event.spawn, 116020, ScarbrowSpawn); + eq.register_npc_event("ringfive", Event.spawn, 116021, oracleSpawn); + eq.register_npc_event("ringfive", Event.spawn, 116022, invaderSpawn); + eq.register_npc_event("ringfive", Event.timer, 116020, ScarbrowTimer); + eq.register_npc_event("ringfive", Event.timer, 116021, oracleTimer); + eq.register_npc_event("ringfive", Event.timer, 116022, invaderTimer); + eq.register_npc_event("ringfive", Event.combat, 116020, ScarbrowCombat); + eq.register_npc_event("ringfive", Event.combat, 116021, oracleCombat); + eq.register_npc_event("ringfive", Event.combat, 116022, invaderCombat); +end \ No newline at end of file diff --git a/eastwastes/encounters/ringfour.lua b/eastwastes/encounters/ringfour.lua new file mode 100644 index 0000000..6d223cc --- /dev/null +++ b/eastwastes/encounters/ringfour.lua @@ -0,0 +1,97 @@ +-- Coldain Ring: Quest 4 +local hailtimer = 0; + +function TainSpawn(e) + eq.set_timer("passout",30000); + hailtimer = 0; +end + +function GhrekSpawn(e) + eq.set_timer("attack",1000); +end + +function FrostSpawn(e) + eq.set_timer("attack",2000); +end + +function GhrekCombat(e) + if(e.joined) then + eq.stop_timer("depop"); + else + eq.set_timer("depop",30000); + e.self:SaveGuardSpot(); + end +end + +function FrostCombat(e) + if(e.joined) then + eq.stop_timer("depop"); + else + eq.set_timer("depop",30000); + e.self:SaveGuardSpot(); + end +end + +function FrostTimer(e) + if(e.timer == "depop") then + eq.depop(); + eq.stop_timer("depop"); + elseif(e.timer == "attack") then + eq.attack_npc_type(116005); + eq.stop_timer("attack"); + end +end + +function GhrekTimer(e) + if(e.timer == "depop") then + eq.depop(); + eq.stop_timer("depop"); + elseif(e.timer == "attack") then + eq.attack_npc_type(116005); + eq.stop_timer("attack"); + end +end + +function TainSay(e) + if(e.message:findi("hail")) then + e.self:Say("The bloody Kromrif ambushed me! I escaped, but I am near death. They'll be tracking me down to finish me off at any moment. Without [help], I'm as good as dead."); + e.self:SetAppearance(0); + elseif(e.message:findi("help") and hailtimer == 0) then + eq.unique_spawn(116018, 0, 0, -3260, -4819, 190, 65); -- NPC: Ghrek_Squatnot + eq.spawn2(116019, 0, 0, -3260, -4793, 190, 65); -- NPC: #a_frost_giant + eq.spawn2(116019, 0, 0, -3260, -4859, 190, 65); -- NPC: #a_frost_giant + eq.spawn2(116019, 0, 0, -3260, -4881, 190, 65); -- NPC: #a_frost_giant + e.self:SetAppearance(3); + hailtimer = 1; + eq.set_timer("hailing",600000); + end +end + +function TainTimer(e) + if(e.timer == "passout") then + e.self:SetAppearance(3); + elseif(e.timer == "hailing") then + hailtimer = 0; + end +end + +function TainCombat(e) + if(e.joined) then + eq.stop_timer("passout"); + else + eq.set_timer("passout",30000); + end +end + +function event_encounter_load(e) + eq.register_npc_event("ringfour", Event.say, 116005, TainSay); + eq.register_npc_event("ringfour", Event.timer, 116005, TainTimer); + eq.register_npc_event("ringfour", Event.spawn, 116005, TainSpawn); + eq.register_npc_event("ringfour", Event.combat, 116005, TainCombat); + eq.register_npc_event("ringfour", Event.spawn, 116018, GhrekSpawn); + eq.register_npc_event("ringfour", Event.spawn, 116019, FrostSpawn); + eq.register_npc_event("ringfour", Event.combat, 116019, FrostCombat); + eq.register_npc_event("ringfour", Event.combat, 116018, GhrekCombat); + eq.register_npc_event("ringfour", Event.timer, 116018, GhrekTimer); + eq.register_npc_event("ringfour", Event.timer, 116019, FrostTimer); +end \ No newline at end of file diff --git a/eastwastes/encounters/ringseven.lua b/eastwastes/encounters/ringseven.lua new file mode 100644 index 0000000..9adf63a --- /dev/null +++ b/eastwastes/encounters/ringseven.lua @@ -0,0 +1,88 @@ + +function CorbinWaypoint(e) + if(e.wp == 2) then + e.self:Say("Almost there now, just a bit further..."); + elseif(e.wp == 3) then + e.self:Say("Uh oh, looks like they were tipped off somehow... I hope you can handle them."); + eq.spawn2(116029,18,0,-2366,-428,205,0); -- Commander_Bahreck + eq.spawn2(116030,19,0,-2364,-448,205,0); -- Ry`Gorr_Basher + eq.spawn2(116030,19,0,-2392,-436,205,0); -- Ry`Gorr_Basher + eq.spawn2(116129,19,0,-1756,-951,220,0); -- Kromrif_Soldier + eq.spawn2(116129,19,0,-1780,-935,220,0); -- Kromrif_Soldier + eq.spawn2(116030,19,0,-1808,-952,215,0); -- Ry`Gorr_Basher + eq.spawn2(116030,19,0,-1512,-244,186,0); -- Ry`Gorr_Basher + eq.spawn2(116030,19,0,-1487,-262,188,0); -- Ry`Gorr_Basher + elseif(e.wp == 5) then + e.self:Say("Well, you're a bit tougher than I had given you credit for. I owe you my life, friend. The camp is right over here."); + elseif(e.wp == 6) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(116118) or eq.get_entity_list():IsMobSpawnedByNpcTypeID(116036)) then + eq.depop(116036); + eq.depop_with_timer(116118); + eq.unique_spawn(116035,0,0,-3188,-574,158,62); -- NPC: #Dobbin_Crossaxe + end + elseif(e.wp == 7) then + e.self:Say("I have escaped! With the help of our friends here I was saved from certain death. We are in their debt."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(116035)) then + eq.get_entity_list():GetMobByNpcTypeID(116035):Say("We thought it was too late, the Dain will be very pleased!"); + end + elseif(e.wp == 8)then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(116035)) then + eq.get_entity_list():GetMobByNpcTypeID(116035):Say("Please friend, show me your Mithril ring and I will show you our gratitude."); + end + end +end + +function DobbinSpawn(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(116036)) then + eq.depop(116036); + elseif(eq.get_entity_list():IsMobSpawnedByNpcTypeID(116035)) then + eq.depop_with_timer(); + end +end + +function CommanderSpawn(e) + e.self:SetRunning(true); +end + +function SoldierSpawn(e) + e.self:SetRunning(true); +end + +function BasherSpawn(e) + e.self:SetRunning(true); +end + +function CommanderWaypoint(e) + if(e.wp == 1) then + e.self:SetRunning(false); + elseif(e.wp == 8) then + e.self:SetRunning(true); + end +end + +function SoldierWaypoint(e) + if(e.wp == 1) then + e.self:SetRunning(false); + elseif(e.wp == 9) then + e.self:SetRunning(true); + end +end + +function BasherWaypoint(e) + if(e.wp == 1) then + e.self:SetRunning(false); + elseif(e.wp == 9) then + e.self:SetRunning(true); + end +end + +function event_encounter_load(e) + eq.register_npc_event("ringseven", Event.waypoint_arrive, 116034, CorbinWaypoint); + eq.register_npc_event("ringseven", Event.spawn, 116118, DobbinSpawn); + eq.register_npc_event("ringseven", Event.spawn, 116029, CommanderSpawn); + eq.register_npc_event("ringseven", Event.spawn, 116129, SoldierSpawn); + eq.register_npc_event("ringseven", Event.spawn, 116030, BasherSpawn); + eq.register_npc_event("ringseven", Event.waypoint_arrive, 116029, CommanderWaypoint); + eq.register_npc_event("ringseven", Event.waypoint_arrive, 116129, SoldierWaypoint); + eq.register_npc_event("ringseven", Event.waypoint_arrive, 116030, BasherWaypoint); +end diff --git a/eastwastes/encounters/ringsix.lua b/eastwastes/encounters/ringsix.lua new file mode 100644 index 0000000..1d30e5b --- /dev/null +++ b/eastwastes/encounters/ringsix.lua @@ -0,0 +1,68 @@ +function IcefangWaypoint(e) + if(e.wp == 2) then + e.self:Emote("whimpers as he approaches."); + elseif(e.wp == 3) then + e.self:SetRunning(true); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(116024)) then + eq.get_entity_list():GetMobByNpcTypeID(116024):Say("All that remains from that battle is my loyal Icefang. He will not rest until I am avenged. Follow and watch after him. He alone knows where our attackers lie and he cannot overcome them by himself. May Brell bless you with success, farewell."); + end + elseif(e.wp == 7) then + eq.unique_spawn(116026,0,0,-4495,-3319,148,0); -- NPC: Poxbreath_Yellowfang + eq.spawn2(116027,0,0,-4396,-3380,148,0); -- NPC: an_oracle_of_Ry`Gorr + eq.spawn2(116027,0,0,-4432,-3323,148,0); -- NPC: an_oracle_of_Ry`Gorr + eq.spawn2(116027,0,0,-4355,-3363,148,0); -- NPC: an_oracle_of_Ry`Gorr + end +end + +function PoxSpawn(e) + eq.set_timer("depop",120000); +end + +function OracleSpawn(e) + eq.set_timer("depop",120000); +end + +function PoxCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function PoxTimer(e) + if(e.timer == "depop") then + eq.depop(); + eq.stop_timer("depop"); + end +end + +function OracleCombat(e) + if(e.joined) then + eq.get_entity_list():GetMobByNpcTypeID(116026):AddToHateList(e.other,1); + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function OracleTimer(e) + if(e.timer == "depop") then + eq.depop(); + eq.stop_timer("depop"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("ringsix", Event.waypoint_arrive, 116534, IcefangWaypoint); + eq.register_npc_event("ringsix", Event.spawn, 116026, PoxSpawn); + eq.register_npc_event("ringsix", Event.spawn, 116027, OracleSpawn); + eq.register_npc_event("ringsix", Event.combat, 116026, PoxCombat); + eq.register_npc_event("ringsix", Event.combat, 116027, OracleCombat); + eq.register_npc_event("ringsix", Event.timer, 116026, PoxTimer); + eq.register_npc_event("ringsix", Event.timer, 116027, OracleTimer); +end diff --git a/eastwastes/encounters/rodrick.lua b/eastwastes/encounters/rodrick.lua new file mode 100644 index 0000000..663c8d7 --- /dev/null +++ b/eastwastes/encounters/rodrick.lua @@ -0,0 +1,96 @@ +local ThreadManager = require("thread_manager"); +local Emissary = nil; + +function EmissaryConversation() + Emissary:Say("Ahh, good to see you my little friend, I was beginning to think something had happened to you."); + ThreadManager:Wait(0.65); + + local Rodrick = eq.get_entity_list():GetMobByNpcTypeID(116141); + if(Rodrick.valid) then + Rodrick:Say("I had to take extra measures to be sure I wasn't followed. I sense that someone is on to me. You know I am risking my life for this.") + end + Emissary:Say("You are just a paranoid little man, Rodrick. That's not your fault, it's in your blood. It's what makes your kind weak and unworthy. As for the risk, that's what you're paid so well for."); + ThreadManager:Wait(0.65); + + if(Rodrick.valid) then + Rodrick:Say("Yes, the rewards have been most generous... But what good is money if I am discovered by the Dain? After the massacre he is already suspicious and...") + end + Emissary:Emote("interrupts Rodrick, 'Chief Ry`gorr himself told me to assure you that the time draws near. When the Kromrif invade Thurgadin there will be no more Dain. The citizens will be enslaved and you will be placed upon the throne to govern over them.'"); + ThreadManager:Wait(0.65); + + if(Rodrick.valid) then + Rodrick:Say("Okay, okay, please do not tell the chief of my anxiety") + end + Emissary:Say("You have my word, now what news do you bring?"); + ThreadManager:Wait(0.65); + + if(Rodrick.valid) then + Rodrick:Say("You have taken a prisoner, one that is very dear to the Dain. His name is Corbin Blackwell.") + end + Emissary:Say("Yes, our interrogators are working with him now. He is sure to have some valuable information forthcoming any time now."); + ThreadManager:Wait(0.65); + + if(Rodrick.valid) then + Rodrick:Say("You had better hurry with him, the Dain has made his recovery a top priority. A team of elite Coldain will be attempting to rescue him in a matter of hours.") + end + Emissary:Say("Very well, we will be prepared. Again you have come through for the chief. This will not be forgotten. We will contact you again soon."); + +end + +function EmissaryWaypoint(e) + Emissary = e.self; + if(e.wp == 1) then + Emissary:Say("Where is that sniveling little worm?"); + elseif(e.wp == 2) then + Emissary:Say("He was supposed to be here hours ago!"); + elseif(e.wp == 3) then + Emissary:Say("I don't know why the chief tolerates this insolent fool. If he is discovered he'll betray us for sure."); + elseif(e.wp == 4) then + Emissary:Say("If he makes me wait another minute I'll gut him myself..."); + elseif(e.wp == 5) then + eq.unique_spawn(116141,0,0,1056,-3405,150,199); -- NPC: Rodrick_Tardok + elseif(e.wp == 6) then + ThreadManager:Create("EmissaryConversation", EmissaryConversation); + end +end + +function EmissaryHeartbeat(e) + Emissary = e.self; + if(e.timer == "Emissary_hb") then + ThreadManager:GarbageCollect(); + ThreadManager:Resume("EmissaryConversation"); + end +end + +function EmissarySpawn(e) + eq.set_timer("Emissary_hb", 4000); +end + +function RodrickSpawn(e) + eq.set_timer("depop",200000); +end + +function RodrickCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function RodrickTimer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_encounter_load(e) + eq.register_npc_event("rodrick", Event.waypoint_arrive, 116025, EmissaryWaypoint); + eq.register_npc_event("rodrick", Event.timer, 116025, EmissaryHeartbeat); + eq.register_npc_event("rodrick", Event.spawn, 116025, EmissarySpawn); + eq.register_npc_event("rodrick", Event.spawn, 116141, RodrickSpawn); + eq.register_npc_event("rodrick", Event.combat, 116141, RodrickCombat); + eq.register_npc_event("rodrick", Event.timer, 116141, RodrickTimer); +end diff --git a/eastwastes/script_init.lua b/eastwastes/script_init.lua new file mode 100644 index 0000000..eb20280 --- /dev/null +++ b/eastwastes/script_init.lua @@ -0,0 +1,6 @@ +eq.load_encounter("ringfour"); +eq.load_encounter("ringfive"); +eq.load_encounter("ringsix"); +eq.load_encounter("ringseven"); +eq.load_encounter("ringeight"); +eq.load_encounter("rodrick"); \ No newline at end of file diff --git a/echo/#Murph_Cobblestone.lua b/echo/#Murph_Cobblestone.lua new file mode 100644 index 0000000..cd597c5 --- /dev/null +++ b/echo/#Murph_Cobblestone.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Who are ye? Did they send ye to find me? Eh, no, I guess not. Well, I won't let 'em get me, ye just wait an' see I'll get them, yes I will."); + end +end diff --git a/echo/Amscray_the_Historian.lua b/echo/Amscray_the_Historian.lua new file mode 100644 index 0000000..b6f9949 --- /dev/null +++ b/echo/Amscray_the_Historian.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ahh, a new student perhaps? Have you come to [learn] the history of our wonderful kingdoms?"); + elseif(e.message:findi("learn")) then + e.self:Say("Why the Kingdoms of Above and Below! Would you like to learn more about the [Kingdom of Above] or the [Kingdom of Below.] Or perhaps you want to hear about our [humble beginnings.]"); + elseif(e.message:findi("kingdom of above")) then + e.self:Say("Ahh, yes, the Kingdom of Above. We discovered these tunnels shortly after arriving here on Luclin and King Grery in his infinite wisdom recognized immediately the importance this place. It was foretold in ancient prophecies that we would one day find our promised lands and from there rule over all the universe. King Grery wisely noted that we had reached a place as far Above as we ever would and from this highly enlightened place we would be able to rule over Norath and all of the universe."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(153073)) then + eq.get_entity_list():GetMobByNpcTypeID(153073):Say("Of course King Gromklin had some very convincing counter arguments, else we would not also have the Kingdom of Below."); + e.self:Say("True and that's what led to that minor disagreement that had us all fighting amongst ourselves for a while, but we [worked it all out] and everything has been wonderful ever since."); + end + elseif(e.message:findi("kingdom of below")) then + e.self:Say("Of course, the Kingdom of Below. You see once we had arrived here and King Grery had first made his discovery, King Gromklin had wisely and correctly noted that the prophecy said nothing about ruling Above only that we would rule 'over'. As you may have noticed these tunnels go fairly deep into the center of Luclin. From here everything is above us, not just the surface of Luclin but also Norath and all of the universe. Therefore this must be the Kingdom of Below, for are we not rightfully 'below' everything? And from here we rule over everything."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(153073)) then + eq.get_entity_list():GetMobByNpcTypeID(153073):Say("But never forget King Grery had first recognized this as our promised lands and the prophecies did specifically say we would rule 'over' the universe so should this not truly be the Kingdom of Above?"); + e.self:Say("True and that's what led to that minor disagreement that had us all fighting amongst ourselves for a while, but we [worked it all out] and everything has been wonderful ever since."); + end + elseif(e.message:findi("humble beginnings")) then + e.self:Say("Long ago many of us gnomes became frustrated with the goings on around Akanon. You see we felt that the true greatness of us Gnomes was being held back because of the constant religious bickering. If we could just unite ourselves we would be capable of anything. So several of us decided to leave Akanon and headed out to find our [promised lands.]"); + elseif(e.message:findi("worked it all out")) then + e.self:Say("Well, as you can see there are very convincing arguments for both the Kingdom of Above and the Kingdom of Below. We did get a little caught up there for a while as to which Kingdom was the true Kingdom, but as Crates here will constantly point out both philosophies are sound and the prophecies never mention what we should call our Kingdom once we reached the promised lands. So we finally agreed that both Kingdoms can exist together and we have peacefully and mutually ruled the universe ever since. Long live King Grery of the Kingdom of Above and King Gromklin of the Kingdom of Below."); + elseif(e.message:findi("promised land")) then + e.self:Say("We had in our possession an ancient prophecy that foretold of the coming greatness of gnomes. This prophecy said that from our promised land we would rule over all the universe. Of course the prophecy mentioned nothing of where we could find this promised land. We started by seeking out the assistance of the Combine Empire in our search. For the Combine controlled a great many lands and knew of places we had never heard about. We were beginning to lose hope that we would ever find our promised land when the first [gate to Luclin] was opened."); + elseif(e.message:findi("gate to luclin")) then + e.self:Say("We knew at once that we needed to continue our search up here on Luclin and agreed to be amongst the first to travel here. It wasn't long until we discovered these caverns and knew that our long search was over. We had found our promised land. Ever since we have been carefully controlling the destiny of the universe."); + end +end diff --git a/echo/Blademaster_Kelsitch.lua b/echo/Blademaster_Kelsitch.lua new file mode 100644 index 0000000..65d2d42 --- /dev/null +++ b/echo/Blademaster_Kelsitch.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Did Duke Norfin send you? Good I really need to teach these two better control of their blades. Stand over there next to one of the target dummies and if you are hit with a missed throw then you can do what you wish to them. Perhaps that will properly motivate them."); + else + e.self:Say("You have a lot of nerve wandering in here. We'll be watching you carefully. Try anything and it will be the last thing you ever try."); + end + end +end \ No newline at end of file diff --git a/echo/Bowmaster_Staniel.lua b/echo/Bowmaster_Staniel.lua new file mode 100644 index 0000000..5c47276 --- /dev/null +++ b/echo/Bowmaster_Staniel.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Ahh, a new trainee perhaps? Just stand with the others."); + else + e.self:Say("We know who you are. Give me the slightest reason and I will call the scounds upon your head."); + end + end +end \ No newline at end of file diff --git a/echo/Court_Jester.lua b/echo/Court_Jester.lua new file mode 100644 index 0000000..92d4339 --- /dev/null +++ b/echo/Court_Jester.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Above or Below? Does it truly matter? We rule all either way."); + end +end diff --git a/echo/Court_Sage.lua b/echo/Court_Sage.lua new file mode 100644 index 0000000..50bbb57 --- /dev/null +++ b/echo/Court_Sage.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Please, " .. e.other:GetCleanName() .. ", I'm a little busy right now. Perhaps I can chat with you later."); + end +end diff --git a/echo/Crates_the_Philosopher.lua b/echo/Crates_the_Philosopher.lua new file mode 100644 index 0000000..900c47b --- /dev/null +++ b/echo/Crates_the_Philosopher.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi there " .. e.other:GetCleanName() .. ". Have you come to discuss the merits of the Kingdoms of Above and Below?"); + elseif(e.message:findi("kingdom")) then + e.self:Say("Have you not heard of our glorious kingdom? Do you not realize that all the universe is ruled from these humble caverns? If you need a history lesson you should talk to Amscray, though if you wish to discuss our philosophies than you have come to the right gnome."); + end +end diff --git a/echo/Crazy_Pete.lua b/echo/Crazy_Pete.lua new file mode 100644 index 0000000..9f8dfdb --- /dev/null +++ b/echo/Crazy_Pete.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("The mushrooms! They will save us. I must protect and nurture the mushrooms..."); + end +end diff --git a/echo/Crew_Chief_Doyle.lua b/echo/Crew_Chief_Doyle.lua new file mode 100644 index 0000000..e69876c --- /dev/null +++ b/echo/Crew_Chief_Doyle.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Arggh! Can ye believe me luck? Just when we were starting to get ahead of schedule this goes and happens."); + elseif(e.message:findi("happen")) then + e.self:Say("Durin a routine fissure break in main shaft one down the lift over there we broke into a colony of the little beasts. Nasty rock burrowers they are, took out three of our crew before we had a chance to evacuate the rest. Now if'n ye'll excuse me, the loss of that shaft has got us workin twenty four seven ta ensure that we make our gold delivery date."); + end +end diff --git a/echo/Crew_Chief_Grinn.lua b/echo/Crew_Chief_Grinn.lua new file mode 100644 index 0000000..907311b --- /dev/null +++ b/echo/Crew_Chief_Grinn.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Can't ye see we're busy here? I don' 'ave time for yer yammerin'."); + end +end diff --git a/echo/Crew_Chief_Tarin.lua b/echo/Crew_Chief_Tarin.lua new file mode 100644 index 0000000..eec90b2 --- /dev/null +++ b/echo/Crew_Chief_Tarin.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("'nstead of chitchattin', why'n't you grab a pick over there and put yerself to some use?"); + end +end diff --git a/echo/Crewman_Pete.lua b/echo/Crewman_Pete.lua new file mode 100644 index 0000000..881bffa --- /dev/null +++ b/echo/Crewman_Pete.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Sorry, but I don't really have time ta chitchat right now. We're way behind schedule what with the underbulks breakin' through the main shaft 'n all."); + end +end diff --git a/echo/Defender_Antorin.lua b/echo/Defender_Antorin.lua new file mode 100644 index 0000000..4bd958b --- /dev/null +++ b/echo/Defender_Antorin.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("grins, 'Excellent, fresh blood. I hope you brought plenty of cash, I'm on a winning streak tonight."); + end +end diff --git a/echo/Defender_Birk.lua b/echo/Defender_Birk.lua new file mode 100644 index 0000000..6c10875 --- /dev/null +++ b/echo/Defender_Birk.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Halt. I wouldn't proceed any further " .. e.other:GetCleanName() .. ". An underbulk swarm has broken through the cavern walls and it's not safe down there."); + end +end diff --git a/echo/Defender_Oram.lua b/echo/Defender_Oram.lua new file mode 100644 index 0000000..4d7ad9c --- /dev/null +++ b/echo/Defender_Oram.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". Be careful beyond this point. The poor degenerate souls that live in this area don't care much for outsiders. Unless they bring some hope of a cure for their afflictions."); + end +end diff --git a/echo/Defender_Pauls.lua b/echo/Defender_Pauls.lua new file mode 100644 index 0000000..5e2d89e --- /dev/null +++ b/echo/Defender_Pauls.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Argh. I can't take being posted here in these blasted caverns anymore. Even these card games are getting boring."); + end +end diff --git a/echo/Defender_Siltan.lua b/echo/Defender_Siltan.lua new file mode 100644 index 0000000..b35675f --- /dev/null +++ b/echo/Defender_Siltan.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi " .. e.other:GetCleanName() .. ". You here to join the game? I'm sure you can join in a little bit. I need to quit soon, before I lose all my money."); + end +end diff --git a/echo/Defender_Siman.lua b/echo/Defender_Siman.lua new file mode 100644 index 0000000..b21d854 --- /dev/null +++ b/echo/Defender_Siman.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Did you hear? Underbulks came swarming through the walls while some dwarves were digging down there. I don't think they all made it out."); + end +end diff --git a/echo/Defender_Stavros.lua b/echo/Defender_Stavros.lua new file mode 100644 index 0000000..aa3ab1e --- /dev/null +++ b/echo/Defender_Stavros.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I had better not catch you trying to smuggle goods through Shadow Haven. Everything must go through the trade commission."); + end +end diff --git a/echo/Defender_Urik.lua b/echo/Defender_Urik.lua new file mode 100644 index 0000000..a948ee3 --- /dev/null +++ b/echo/Defender_Urik.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", watch yourself when wandering these caverns. Many of the undesirables who were forced out of Shadow Haven have decided to set up residence here."); + end +end diff --git a/echo/Drible_Telakeri.lua b/echo/Drible_Telakeri.lua new file mode 100644 index 0000000..40b4e12 --- /dev/null +++ b/echo/Drible_Telakeri.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("I've got some of the finest tasties around. Try one you'll see."); + else + e.self:Say("We know who you are. Give me the slightest reason and I will call the scounds upon your head."); + end + end +end \ No newline at end of file diff --git a/echo/Duke_Norfin.lua b/echo/Duke_Norfin.lua new file mode 100644 index 0000000..035eba0 --- /dev/null +++ b/echo/Duke_Norfin.lua @@ -0,0 +1,33 @@ +-- Duke Norfin's Delivery + +function event_say(e) + if(e.other:GetFactionValue(e.self) >= -100) then + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". My guards seem to find you harmless enough, but I have yet to determine if you are trustworthy. We are always on the lookout for additional hands to assist in our work. Perhaps you are... sympathetic to our situation."); + elseif(e.message:findi("situation")) then + e.self:Say("Those blasted Houses in Shadow Haven. They think they have the right to own all trade going through the Haven. Well it's about time they learn that trade will continue with or without their consent. I know a few people on the Trade Commission who understand the way things really work and they don't care who does the trading as long as they get their cut."); + elseif(e.message:findi("work")) then + e.self:Say("Excellent! We like to keep changing who we use for deliveries. Keeps those dumb Defenders guessing and reduces the chances of goods not reaching their destination."); + elseif(e.message:findi("destination")) then + e.self:Say("I have an important shipment coming from Katta Castellum that's late. The courier who was picking up the shipment should still be there. I'd like for you to go over there and see what the hold up is. Take this note and show it to Jarin Lorean so he knows you're on official business. Report back to me with news. Better yet, return with the shipment if you can."); + e.other:SummonCursorItem(19841); -- Item: Note to Jarin + end + else + e.self:Say("You have a lot of nerve wandering in here. We'll be watching you carefully. Try anything and it will be the last thing you ever try."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 19840}, 0)) then + e.self:Say("Excellent work. I'm glad you were able to collect this shipment. The buyers were getting anxious to have it delivered. Come back later and I may have another job for you."); + e.other:Faction(e.self,1542,25); -- haven smugglers + e.other:Faction(e.self,1559,2); -- lake recondite bandits + e.other:Faction(e.self,1510,-12); -- house of fordel + e.other:Faction(e.self,1511,-12); -- house of midst + e.other:Faction(e.self,1512,-12); -- house of stout + e.other:QuestReward(e.self,0,0,0,0,0,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/echo/Engineer_Palin.lua b/echo/Engineer_Palin.lua new file mode 100644 index 0000000..8525173 --- /dev/null +++ b/echo/Engineer_Palin.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Please, can'a ye see I'm busy? I need ta find a new direction ta start minin'. Ever since we lost the lower tunnel to those damned bugs we've been fallin' behind."); + end +end diff --git a/echo/Falos_Ginranes.lua b/echo/Falos_Ginranes.lua new file mode 100644 index 0000000..172c053 --- /dev/null +++ b/echo/Falos_Ginranes.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("If you have no need of scrolls that contain spells meant to serve only the most focused knights of darkness, then begone with you!"); + else + e.self:Say("We know who you are. Give me the slightest reason and I will call the scounds upon your head."); + end + end +end \ No newline at end of file diff --git a/echo/General_Jared_Blaystich.lua b/echo/General_Jared_Blaystich.lua new file mode 100644 index 0000000..6437361 --- /dev/null +++ b/echo/General_Jared_Blaystich.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Leave me be. I have much work to do and cannot be distracted right now."); + else + e.self:Say("You have a lot of nerve wandering in here. We'll be watching you carefully. Try anything and it will be the last thing you ever try."); + end + end +end \ No newline at end of file diff --git a/echo/Guard_Alfast.lua b/echo/Guard_Alfast.lua new file mode 100644 index 0000000..c608411 --- /dev/null +++ b/echo/Guard_Alfast.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("This is where King Grery watches over all the kingdom. If you ask politely I'm sure he'd grant you an audience. But don't take up too much of his time, he's a very busy gnome."); + end +end diff --git a/echo/Guard_Cyren.lua b/echo/Guard_Cyren.lua new file mode 100644 index 0000000..12e6083 --- /dev/null +++ b/echo/Guard_Cyren.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome, " .. e.other:GetCleanName() .. ", to the Kingdom of Above."); + end +end diff --git a/echo/Guard_Mirick.lua b/echo/Guard_Mirick.lua new file mode 100644 index 0000000..0718752 --- /dev/null +++ b/echo/Guard_Mirick.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Proceed on back to King Gromklin's throne room. But mind your manners or I'll have to teach you a lesson."); + end +end diff --git a/echo/Guard_Tork.lua b/echo/Guard_Tork.lua new file mode 100644 index 0000000..6a8c9ed --- /dev/null +++ b/echo/Guard_Tork.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome, " .. e.other:GetCleanName() .. ", to the Kingdom of Below."); + end +end diff --git a/echo/Harold_the_Herald.lua b/echo/Harold_the_Herald.lua new file mode 100644 index 0000000..0e3ed7b --- /dev/null +++ b/echo/Harold_the_Herald.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("All hail " .. e.other:GetCleanName() .. ", who wishes an audience with our glorious kings."); + end +end diff --git a/echo/Horoal_Deathdealer.lua b/echo/Horoal_Deathdealer.lua new file mode 100644 index 0000000..70e3ba8 --- /dev/null +++ b/echo/Horoal_Deathdealer.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". Only those that call upon the dark arts of necromancy may glean use from the spells which I carry."); + else + e.self:Say("We know who you are. Give me the slightest reason and I will call the scounds upon your head."); + end + end +end \ No newline at end of file diff --git a/echo/Jake_the_Shoveler.lua b/echo/Jake_the_Shoveler.lua new file mode 100644 index 0000000..9337b6b --- /dev/null +++ b/echo/Jake_the_Shoveler.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("There's nothin' more satisfyin' then loadin' a good haul after a long days work."); + end +end diff --git a/echo/Kacheoa_Dariwlan.lua b/echo/Kacheoa_Dariwlan.lua new file mode 100644 index 0000000..8d8239a --- /dev/null +++ b/echo/Kacheoa_Dariwlan.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("All your research needs can be taken care of here. Quills? Parchment? I have it all."); + else + e.self:Say("We know who you are. Give me the slightest reason and I will call the scounds upon your head."); + end + end +end \ No newline at end of file diff --git a/echo/King_Grery_of_Above.lua b/echo/King_Grery_of_Above.lua new file mode 100644 index 0000000..51af804 --- /dev/null +++ b/echo/King_Grery_of_Above.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ahh, yes " .. e.other:GetCleanName() .. ". I always have time for one of my loyal subjects. Oh... wait, the Court Sage is signaling me that there is an important matter that needs my immediate attention. Please come back a little later on and I should have some more time for you."); + end +end diff --git a/echo/Lieutenant_Arathur.lua b/echo/Lieutenant_Arathur.lua new file mode 100644 index 0000000..ba1f021 --- /dev/null +++ b/echo/Lieutenant_Arathur.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met, " .. e.other:GetCleanName() .. ". The protection of the Haven Defenders ends here at this door. We won't be able to help you if you get into trouble in the deeper caverns."); + end +end diff --git a/echo/Lineol_Teropalig.lua b/echo/Lineol_Teropalig.lua new file mode 100644 index 0000000..64d95d6 --- /dev/null +++ b/echo/Lineol_Teropalig.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Would you happen to be a dark priest? I am willing to teach all I know of pain, life and death to those who are inclined to learn."); + else + e.self:Say("We know who you are. Give me the slightest reason and I will call the scounds upon your head."); + end + end +end \ No newline at end of file diff --git a/echo/Marshall_Galeron.lua b/echo/Marshall_Galeron.lua new file mode 100644 index 0000000..a6444e5 --- /dev/null +++ b/echo/Marshall_Galeron.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Are you here for training? We have some of the best instructors around."); + else + e.self:Say("You have a lot of nerve wandering in here. We'll be watching you carefully. Try anything and it will be the last thing you ever try."); + end + end +end \ No newline at end of file diff --git a/echo/Master_Assassin_Prasor.lua b/echo/Master_Assassin_Prasor.lua new file mode 100644 index 0000000..49e09d9 --- /dev/null +++ b/echo/Master_Assassin_Prasor.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Emote("tests the razor sharp edge of his blade on his thumb while smirking slightly at you. 'Do your skills need sharpening?"); + else + e.self:Say("We know who you are. Give me the slightest reason and I will call the scounds upon your head."); + end + end +end \ No newline at end of file diff --git a/echo/Master_Celerik.lua b/echo/Master_Celerik.lua new file mode 100644 index 0000000..5042987 --- /dev/null +++ b/echo/Master_Celerik.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("I can teach those that follow the Wizardly arts. If you do not, then stop wasting my time."); + else + e.self:Say("You have a lot of nerve wandering in here. We'll be watching you carefully. Try anything and it will be the last thing you ever try."); + end + end +end \ No newline at end of file diff --git a/echo/Master_Nochtar.lua b/echo/Master_Nochtar.lua new file mode 100644 index 0000000..0502116 --- /dev/null +++ b/echo/Master_Nochtar.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("If you are not a practitioner of the dark arts then I cannot help you. Leave my presence."); + else + e.self:Say("You have a lot of nerve wandering in here. We'll be watching you carefully. Try anything and it will be the last thing you ever try."); + end + end +end \ No newline at end of file diff --git a/echo/Master_Wirgus.lua b/echo/Master_Wirgus.lua new file mode 100644 index 0000000..6034cb0 --- /dev/null +++ b/echo/Master_Wirgus.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Enchanters know only the bounds of their own mind. If yours Is open than I may be able to show you how to expand your horizons."); + else + e.self:Say("You have a lot of nerve wandering in here. We'll be watching you carefully. Try anything and it will be the last thing you ever try."); + end + end +end \ No newline at end of file diff --git a/echo/Master_Yurian.lua b/echo/Master_Yurian.lua new file mode 100644 index 0000000..0c996cc --- /dev/null +++ b/echo/Master_Yurian.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("I may be a Magician of small stature, but that belies my not so small power. If you are worthy I may be able to teach you."); + else + e.self:Say("You have a lot of nerve wandering in here. We'll be watching you carefully. Try anything and it will be the last thing you ever try."); + end + end +end \ No newline at end of file diff --git a/echo/Miner_Buritch.lua b/echo/Miner_Buritch.lua new file mode 100644 index 0000000..ea81ad6 --- /dev/null +++ b/echo/Miner_Buritch.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Where's your pick? How you gonna dig without a pick?"); + end +end diff --git a/echo/Miner_Corin.lua b/echo/Miner_Corin.lua new file mode 100644 index 0000000..952d15f --- /dev/null +++ b/echo/Miner_Corin.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("The boss catches me slackin' and I'm dead meat. I'm already behind on my quota fer the day."); + end +end diff --git a/echo/Miner_Dirkins.lua b/echo/Miner_Dirkins.lua new file mode 100644 index 0000000..3c2fab6 --- /dev/null +++ b/echo/Miner_Dirkins.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("groans in pain 'Ach, I've never seen so many underbulks all at once. They came pouring outta the walls. I barely made it out, but I took quite the beating. And poor Daven never did make it. Once my leg is healed I'm gonna go back down there and teach those bugs a thing or two."); + end +end diff --git a/echo/Miner_Neville.lua b/echo/Miner_Neville.lua new file mode 100644 index 0000000..3e07f1b --- /dev/null +++ b/echo/Miner_Neville.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Whew, just catchin' me breath. I'll be back to diggin' in just a sec. No need to tell the boss about this."); + end +end diff --git a/echo/Miner_Perrin.lua b/echo/Miner_Perrin.lua new file mode 100644 index 0000000..275a111 --- /dev/null +++ b/echo/Miner_Perrin.lua @@ -0,0 +1,8 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You know I think they set us goals they know we can't meet just so we'd work harder."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(153070)) then + eq.get_entity_list():GetMobByNpcTypeID(153070):Say("What's that Perrin? Need more work do ye?"); + end + end +end diff --git a/echo/Miner_Skorn.lua b/echo/Miner_Skorn.lua new file mode 100644 index 0000000..c706464 --- /dev/null +++ b/echo/Miner_Skorn.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks up from his digging, 'Eh, quitin' time yet?"); + end +end diff --git a/echo/Miner_Tager.lua b/echo/Miner_Tager.lua new file mode 100644 index 0000000..5d38054 --- /dev/null +++ b/echo/Miner_Tager.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("grumbles something incoherent while he continues to dig."); + end +end diff --git a/echo/Miner_Zelitz.lua b/echo/Miner_Zelitz.lua new file mode 100644 index 0000000..cf05af3 --- /dev/null +++ b/echo/Miner_Zelitz.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ah, good, I needed a break. Here take this and dig for a while. No, well then what are ye wastin' my time fer?"); + end +end diff --git a/echo/Nightmaster_Kelador.lua b/echo/Nightmaster_Kelador.lua new file mode 100644 index 0000000..81f061c --- /dev/null +++ b/echo/Nightmaster_Kelador.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Are you brave or foolish? You must be one to venture so far into the lair of the unknown. If you are the former than I may be able to assist you."); + else + e.self:Say("You have a lot of nerve wandering in here. We'll be watching you carefully. Try anything and it will be the last thing you ever try."); + end + end +end \ No newline at end of file diff --git a/echo/Olowakn_Telrok.lua b/echo/Olowakn_Telrok.lua new file mode 100644 index 0000000..37f8081 --- /dev/null +++ b/echo/Olowakn_Telrok.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("I carry only the finest tools of the trade. We wouldn't want any of your 'special' concoctions to go bad, or even leak at an inopportune moment."); + else + e.self:Say("We know who you are. Give me the slightest reason and I will call the scounds upon your head."); + end + end +end \ No newline at end of file diff --git a/echo/Pelinor_the_Arms_Merchant.lua b/echo/Pelinor_the_Arms_Merchant.lua new file mode 100644 index 0000000..6cc14d5 --- /dev/null +++ b/echo/Pelinor_the_Arms_Merchant.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("You need weapons, " .. e.other:GetCleanName() .. "? I have a whole collection of acquired Fordel weapons for sale. Not the best craftsmanship, but about as good as you'll find in the area."); + else + e.self:Say("We know who you are. Give me the slightest reason and I will call the scounds upon your head."); + end + end +end \ No newline at end of file diff --git a/echo/Priestess_Tarafol.lua b/echo/Priestess_Tarafol.lua new file mode 100644 index 0000000..20989bf --- /dev/null +++ b/echo/Priestess_Tarafol.lua @@ -0,0 +1,35 @@ +-- Helping the Forsaken + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh, these poor forsaken souls. We must do whatever we can to help them. So far I've been unable to find anything that can cure their afflictions. I'm not even certain there is a cure. The least I've been able to do is ease some of their suffering."); + elseif(e.message:findi("cure")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("I'm not certain what causes the disease that inflicts most of these people. I believe it's from living down in these caverns for so long. It seems most people have a natural immunity, but the few who are stricken are cursed to slowly rot to death. A most horrible and painful way to die. I wish I could do more than just ease their pain."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("help")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("You would be willing to do that? That would be great! I've heard of the possible curative powers of many things here on Luclin. I've been so busy here that I haven't been able to go out and search for any of the needed compounds. If you would be so kind as to collect some things for me I would be very appreciative."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("collect")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Ok, I need you to find these things... Underbulk Bile, Razorfungus Spores and Saprophyte Spores. You should be able to be find them within the nearby cavern systems. Please return to me once you have acquired all the ingredients. Thank you very much for assisting. Good luck."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 32403,item2 = 32510,item3 = 19836})) then + e.self:Say("Thank you so much!! These will help so much in trying to find a cure for these people. Here, take this as a token of my gratitude."); + e.other:QuestReward(e.self,0,0,0,0,19842); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/echo/Pugidlar_Vermot.lua b/echo/Pugidlar_Vermot.lua new file mode 100644 index 0000000..a6c61a1 --- /dev/null +++ b/echo/Pugidlar_Vermot.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Looking to make some pretty baubles? Check out my wares."); + else + e.self:Say("We know who you are. Give me the slightest reason and I will call the scounds upon your head."); + end + end +end diff --git a/echo/Rasl_Lerosac.lua b/echo/Rasl_Lerosac.lua new file mode 100644 index 0000000..720b150 --- /dev/null +++ b/echo/Rasl_Lerosac.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("I may only carry basic supplies, but try surviving long in these caverns without them. You need what I have to offer eventually. Everyone always does."); + else + e.self:Say("We know who you are. Give me the slightest reason and I will call the scounds upon your head."); + end + end +end \ No newline at end of file diff --git a/echo/Ronald_the_Shoveler.lua b/echo/Ronald_the_Shoveler.lua new file mode 100644 index 0000000..2eec83c --- /dev/null +++ b/echo/Ronald_the_Shoveler.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Look at all this ore. I swear we produce more each day and still it's not enough. The bosses won't be happy 'til they work us all t' death."); + end +end diff --git a/echo/Royal_Guardian_of_Above.lua b/echo/Royal_Guardian_of_Above.lua new file mode 100644 index 0000000..bed6143 --- /dev/null +++ b/echo/Royal_Guardian_of_Above.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("My life for the King of Above!"); + end +end diff --git a/echo/Royal_Guardian_of_Below.lua b/echo/Royal_Guardian_of_Below.lua new file mode 100644 index 0000000..3c7b5e2 --- /dev/null +++ b/echo/Royal_Guardian_of_Below.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("My life for the King of Below!"); + end +end diff --git a/echo/Saerlsam_Monrols.lua b/echo/Saerlsam_Monrols.lua new file mode 100644 index 0000000..d30eae8 --- /dev/null +++ b/echo/Saerlsam_Monrols.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Have a parched throat? I have just the cure."); + else + e.self:Say("We know who you are. Give me the slightest reason and I will call the scounds upon your head."); + end + end +end \ No newline at end of file diff --git a/echo/Scound_Dralin.lua b/echo/Scound_Dralin.lua new file mode 100644 index 0000000..2677f9c --- /dev/null +++ b/echo/Scound_Dralin.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Emote("glares at you and shakes his head slightly."); + else + e.self:Say("You have a lot of nerve wandering in here. We'll be watching you carefully. Try anything and it will be the last thing you ever try."); + end + end +end \ No newline at end of file diff --git a/echo/Scound_Trevor.lua b/echo/Scound_Trevor.lua new file mode 100644 index 0000000..9920e9d --- /dev/null +++ b/echo/Scound_Trevor.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("The Duke is upstairs, but he doesn't like being disturbed for trivial things."); + else + e.self:Say("You have a lot of nerve wandering in here. We'll be watching you carefully. Try anything and it will be the last thing you ever try."); + end + end +end \ No newline at end of file diff --git a/echo/Solsain_Paslinor.lua b/echo/Solsain_Paslinor.lua new file mode 100644 index 0000000..a6629ca --- /dev/null +++ b/echo/Solsain_Paslinor.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Check out these beauties. These are the finest gems you can find on all of Luclin."); + else + e.self:Say("We know who you are. Give me the slightest reason and I will call the scounds upon your head."); + end + end +end \ No newline at end of file diff --git a/echo/Trace_the_Tinker.lua b/echo/Trace_the_Tinker.lua new file mode 100644 index 0000000..374d6cd --- /dev/null +++ b/echo/Trace_the_Tinker.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi " .. e.other:GetCleanName() .. ", can I interest you in some tinkering supplies? Some of the most amazing things can be made if you just have the know-how."); + end +end diff --git a/echo/Trademaster_Korvesh.lua b/echo/Trademaster_Korvesh.lua new file mode 100644 index 0000000..64fba16 --- /dev/null +++ b/echo/Trademaster_Korvesh.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("There are those who might say that If all trade eventually goes through me then it must be I who controls all the trade. Heehee, I would never say that of course. I value my neck too much and Duke Norfin Is not known for his sense of humor."); + else + e.self:Say("We know who you are. Give me the slightest reason and I will call the scounds upon your head."); + end + end +end diff --git a/echo/Trainee_Barkis.lua b/echo/Trainee_Barkis.lua new file mode 100644 index 0000000..4364b94 --- /dev/null +++ b/echo/Trainee_Barkis.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Argh, that Kelsitch is such a slave driver. Nothing pleases him. If Marshall Galeron wasn't watching I'd show Kelsitch just how accurate I can be."); + else + e.self:Say("We know who you are. Give me the slightest reason and I will call the scounds upon your head."); + end + end +end \ No newline at end of file diff --git a/echo/Trainee_Durvich.lua b/echo/Trainee_Durvich.lua new file mode 100644 index 0000000..b126186 --- /dev/null +++ b/echo/Trainee_Durvich.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("I just can't seem to get the handle of these little knives. My hands are too big, give me a good sword and I'll show you how skilled I can be with a blade."); + else + e.self:Say("We know who you are. Give me the slightest reason and I will call the scounds upon your head."); + end + end +end \ No newline at end of file diff --git a/echo/Trainee_Kelwyn.lua b/echo/Trainee_Kelwyn.lua new file mode 100644 index 0000000..3a83719 --- /dev/null +++ b/echo/Trainee_Kelwyn.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Shh, I'm trying to listen to Bowmaster Staniel."); + else + e.self:Say("We know who you are. Give me the slightest reason and I will call the scounds upon your head."); + end + end +end \ No newline at end of file diff --git a/echo/Trainee_Robert.lua b/echo/Trainee_Robert.lua new file mode 100644 index 0000000..e5d4ae1 --- /dev/null +++ b/echo/Trainee_Robert.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Pay close attention to Bowmaster Staniel, he's the best archer around."); + else + e.self:Say("We know who you are. Give me the slightest reason and I will call the scounds upon your head."); + end + end +end \ No newline at end of file diff --git a/echo/a_Haven_Defender.lua b/echo/a_Haven_Defender.lua new file mode 100644 index 0000000..f894375 --- /dev/null +++ b/echo/a_Haven_Defender.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Be careful " .. e.other:GetCleanName() .. ". The mines aren't safe since the underbulks broke through."); + end +end diff --git a/echo/a_scound.lua b/echo/a_scound.lua new file mode 100644 index 0000000..3fdb4a4 --- /dev/null +++ b/echo/a_scound.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("I got a close eye on you. Better watch your step."); + else + e.self:Say("You have a lot of nerve wandering in here. We'll be watching you carefully. Try anything and it will be the last thing you ever try."); + end + end +end diff --git a/echo/a_wormspore.lua b/echo/a_wormspore.lua new file mode 100644 index 0000000..a525ac7 --- /dev/null +++ b/echo/a_wormspore.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 35, ez + 35); +end + +function event_enter(e) + e.self:CastSpell(2985,e.other:GetID()); -- Spell: Wormspore Stick +end diff --git a/echo/an_archer.lua b/echo/an_archer.lua new file mode 100644 index 0000000..b1dfe32 --- /dev/null +++ b/echo/an_archer.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Bug off. I'm on watch."); + else + e.self:Say("You have a lot of nerve wandering in here. We'll be watching you carefully. Try anything and it will be the last thing you ever try."); + end + end +end \ No newline at end of file diff --git a/echo/an_assassin_protector.lua b/echo/an_assassin_protector.lua new file mode 100644 index 0000000..0dc276a --- /dev/null +++ b/echo/an_assassin_protector.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Emote("snarls at you, 'Stand back and keep your hands where I can see them."); + else + e.self:Say("You have a lot of nerve wandering in here. We'll be watching you carefully. Try anything and it will be the last thing you ever try."); + end + end +end \ No newline at end of file diff --git a/echo/an_outcast_mutant.lua b/echo/an_outcast_mutant.lua new file mode 100644 index 0000000..292ad18 --- /dev/null +++ b/echo/an_outcast_mutant.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What do you want? I've had enough of your kind. If you won't help me at least let me die in peace."); + end +end diff --git a/echo/encounters/thoughthorror.lua b/echo/encounters/thoughthorror.lua new file mode 100644 index 0000000..8e4c779 --- /dev/null +++ b/echo/encounters/thoughthorror.lua @@ -0,0 +1,69 @@ +local lecture = 0; + +function HorrorSpawn(e) + eq.set_timer("Horror",math.random(9000000,12600000)); +end + +function HorrorSpawnTimer(e) + if(e.timer == "Horror") then + eq.spawn2(153004,0,0,1107,-450,130,64); + eq.set_timer("Horror",math.random(9000000,12600000)); + end +end + +function ThoughtHorrorSpawn(e) + eq.set_timer("move",10000); +end + +function ThoughtHorrorSpawnTimer(e) + if(e.timer == "move") then + eq.stop_timer("move"); + eq.set_timer("lecture",16000); + eq.move_to(1196,-485,134,157,true); + elseif(e.timer == "lecture") then + lecture = lecture + 1; + if(lecture == 1) then + e.self:Emote("stares at you as you feel a slight tingling in your head. You feel a flash of pain from deep within your eye sockets as a booming voice fills your mind seeming to come from the inside of your ears rather than out.'Are these the pathetic worms that destroyed my playthings? Fools, it took weeks for me to reach the mind of that witless slave, and even longer for me to fill his mind with visions of escape and freedom into the deep.'"); + elseif(lecture == 2) then + e.self:Emote("'s tendrils flair about and you feel the strange sensation that a small worm is digging through your brain. 'Ah, I sense you seek to know the fate of these former scaled wretches. Once I lured the slaves into our realm it was much easier to plant the visions of their escape into that taskmaster's sight. He followed of course, how could he not and risk failing his precious emperor. All of their deaths were swift and sweet but, you see, that is where the fun just began"); + elseif(lecture == 3) then + e.self:Emote("'s eyes gleam as a horrible pounding pulses through your mind which you quickly identify, much to your horror, as laughter. The sudden image of a white temple with marble sculptures and ancient runes covering the walls flashes before your eyes. A serpent's tail flickers to the left, a whip cracks to your right. An Iksar is kneeling before you begging for forgiveness when suddenly, as quickly as they began, the images fade."); + elseif(lecture == 4) then + e.self:Emote("'s mouth twists into a cruel version of what can only be a smile.'Reanimating them was an easy thing as well, the real trick came in wiping their most recent memories and convincing them that they were still alive. Yesss, now you understand. What you saw was the decomposing remains of their bodies mindlessly set about useless tasks. But what they saw was themselves still within their temple, reliving the same trials over and over. Beautiful, yes?'"); + elseif(lecture == 5) then + e.self:Emote("'s grip within your mind begins to slip as your will strengthens and your resolve to expel this being from your mind grows stronger.'Interesting, I sense your resistance growing. Perhaps it is time to end this game then. Whether you are the ones that destroyed my playthings or not matters little. I need replacements, and you will do just fine. Come to me fleshlings, come to Xilniov!'"); + eq.stop_timer("lecture"); + eq.spawn2(153002,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + lecture = 0; + eq.depop(); + end + end +end + +function XilniovSpawn(e) + eq.set_timer("depop",720000); +end + +function XilniovTimer(e) + eq.depop(); +end + +function XilniovCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("thoughthorror", Event.spawn, 153181, HorrorSpawn); + eq.register_npc_event("thoughthorror", Event.timer, 153181, HorrorSpawnTimer); + eq.register_npc_event("thoughthorror", Event.spawn, 153004, ThoughtHorrorSpawn); + eq.register_npc_event("thoughthorror", Event.timer, 153004, ThoughtHorrorSpawnTimer); + eq.register_npc_event("thoughthorror", Event.spawn, 153002, XilniovSpawn); + eq.register_npc_event("thoughthorror", Event.timer, 153002, XilniovTimer); + eq.register_npc_event("thoughthorror", Event.combat, 153002, XilniovCombat); +end \ No newline at end of file diff --git a/echo/script_init.lua b/echo/script_init.lua new file mode 100644 index 0000000..20fc0c2 --- /dev/null +++ b/echo/script_init.lua @@ -0,0 +1 @@ +eq.load_encounter("thoughthorror"); diff --git a/ecommons/Altunic_Jartin.lua b/ecommons/Altunic_Jartin.lua new file mode 100644 index 0000000..177a26b --- /dev/null +++ b/ecommons/Altunic_Jartin.lua @@ -0,0 +1,43 @@ +function event_waypoint_arrive(e) + if(e.wp == 2) then + e.self:SetRunning(true); + elseif(e.wp == 3) then + e.self:SetRunning(false); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, traveler! Have you need of provisions or perhaps other wares? I sell what I find upon the battlegrounds of the Commonlands."); + elseif(e.message:findi("Where is your house")) then + e.self:Say("Follow me."); + eq.move_to(4791.06,-83.55,-51.47); + eq.unique_spawn(22196, 0, 0, 4707.63, -105.49, -51.47); -- NPC: Squire_Narl + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18896})) then + e.self:Say("You are the one they have sent? A squire?!! I hope you can help me. I gather items strewn upon the grounds of the Commonlands. I sell them at good prices. Lately, I have been terrorized by a human rogue named Narl. He will no doubt appear at my [house] soon. Bring his head to me."); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13867})) then + e.self:Say("You have performed a great service to me, but I fear others will attack me while I stroll the countryside. It would be very noble of you to fetch me a cloth shirt for protection from wicked creatures. It is not much, but it will help."); + e.other:Faction(e.self,281,5); -- Faction: Knights of Truth + e.other:Faction(e.self,271,-1); -- Faction: Dismal Rage + e.other:Faction(e.self,330,-1); -- Faction: The Freeport Militia + e.other:Faction(e.self,362,1); -- Faction: Priests of Marr + e.other:Faction(e.self,311,1); -- Faction: Steel Warriors + e.other:QuestReward(e.self,math.random(10),0,0,0,0,500); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1004})) then + e.self:Say("Thank you. You are very noble for a squire. I can see you becoming a very valuable asset to the Hall of Truth. Take this token. Tell Merko that you have [earned the Token of Generosity]."); + e.other:Faction(e.self,281,5); -- Faction: Knights of Truth + e.other:Faction(e.self,271,-1); -- Faction: Dismal Rage + e.other:Faction(e.self,330,-1); -- Faction: The Freeport Militia + e.other:Faction(e.self,362,1); -- Faction: Priests of Marr + e.other:Faction(e.self,311,1); -- Faction: Steel Warriors + e.other:QuestReward(e.self,0,0,0,0,13865,500); -- Item: Token of Generosity + end +end + +-- END of FILE Zone:ecommons ID:22058 -- Altunic_Jartin diff --git a/ecommons/Bubar.lua b/ecommons/Bubar.lua new file mode 100644 index 0000000..ba2daac --- /dev/null +++ b/ecommons/Bubar.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, friend! I am Bubar, merchant from the burning sands. You must be thirsty or, perhaps, hungry. Please look over my goods."); + elseif(e.message:findi("gem case")) then + e.self:Say("Talking of containers? I do not make containers any longer. Provisions are much more profitable. Do you have one of my containers? Most likely you have locked yourself out then. My specialty was the three-lock case. They always lose one of the keys. Hand me the case and at least two of the keys and I can open it for you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I need at least two of the case keys and the gem case."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12351,item2 = 12352,item3 = 12350},1,text)) then + e.self:Say("Mmmph!!.. *Pop!!* Ouch, my thumb!! Here you are. You had a gem inside."); + e.other:QuestReward(e.self,0,0,0,0,12349,15000); -- Item: A Sparkling Sapphire + end + item_lib.return_items(e.self, e.other, e.trade); +end + + -- ZONE: ecommons -- NAME: Bubar -- ID: 22033 \ No newline at end of file diff --git a/ecommons/Guard_Reskin.lua b/ecommons/Guard_Reskin.lua new file mode 100644 index 0000000..b7ab765 --- /dev/null +++ b/ecommons/Guard_Reskin.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1 and e.self:GetX() == 159 and e.self:GetY() == 143) then + e.self:Say("All quiet, Sergeant."); + end +end diff --git a/ecommons/Guard_Tolus.lua b/ecommons/Guard_Tolus.lua new file mode 100644 index 0000000..06bbf6e --- /dev/null +++ b/ecommons/Guard_Tolus.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1 and e.self:GetX() == 3016 and e.self:GetY() == -289) then + e.self:Say("All quiet, Sergeant."); + end +end diff --git a/ecommons/Jimble_Woodentoe.lua b/ecommons/Jimble_Woodentoe.lua new file mode 100644 index 0000000..3b562f5 --- /dev/null +++ b/ecommons/Jimble_Woodentoe.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail! I'd love to stop and chat with ya but I'm running late to an appointment in Freeport with a fletcher interested in my superior wooden shafts."); + end +end diff --git a/ecommons/Pardor_the_Blessed.lua b/ecommons/Pardor_the_Blessed.lua new file mode 100644 index 0000000..6b8b062 --- /dev/null +++ b/ecommons/Pardor_the_Blessed.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh please! You must help me! Please tell me you are sent from Edwardian, I fear for the worst from these Militia soldiers."); + end +end diff --git a/ecommons/Sergeant_Slate.lua b/ecommons/Sergeant_Slate.lua new file mode 100644 index 0000000..b64d37f --- /dev/null +++ b/ecommons/Sergeant_Slate.lua @@ -0,0 +1,9 @@ +function event_waypoint_arrive(e) + if(e.wp==2 or e.wp==4 or e.wp==6) then + e.self:Say("condition report soldier!"); + eq.signal(22066,1); -- NPC: Guard_Reskin + elseif(e.wp==3 or e.wp==7) then + e.self:Say("condition report soldier!"); + eq.signal(22035,1); -- NPC: Guard_Tolus + end +end diff --git a/emeraldjungle/#Scout_Vyrak.lua b/emeraldjungle/#Scout_Vyrak.lua new file mode 100644 index 0000000..62d4136 --- /dev/null +++ b/emeraldjungle/#Scout_Vyrak.lua @@ -0,0 +1,20 @@ +function event_spawn(e) + eq.set_timer("depop",3600000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9038})) then + e.self:Say("Excellent work, " .. e.other:GetCleanName() .. "! Judging by the speed with which it altered that spirit, this totem must be extremely powerful. I've wrapped it, so you should be safe from its magic. Just be sure to keep it in the case. Once you have all of the totems, seal the case and make your way back to Shar Vahl. They will be waiting for you there. I'll continue to look for the person that perpetrated this vile act."); + e.other:QuestReward(e.self,{items = {9039,9031}}); -- Item: Official Seal of the Khati Sha + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/emeraldjungle/#The_Spirit_of_Rage.lua b/emeraldjungle/#The_Spirit_of_Rage.lua new file mode 100644 index 0000000..9cb4647 --- /dev/null +++ b/emeraldjungle/#The_Spirit_of_Rage.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + eq.set_timer("roar",1000); +end + +function event_timer(e) + if(e.timer == "roar") then + eq.stop_timer("roar"); + eq.set_timer("depop",1800000); + eq.zone_emote(0,"You here a massive creature roar, as if awakened from a deep sleep."); + elseif(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_death_complete(e) + eq.unique_spawn(94017,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end diff --git a/emeraldjungle/#tainted_gorilla.lua b/emeraldjungle/#tainted_gorilla.lua new file mode 100644 index 0000000..c12c719 --- /dev/null +++ b/emeraldjungle/#tainted_gorilla.lua @@ -0,0 +1,13 @@ +function event_death_complete(e) + eq.spawn2(94008,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/emeraldjungle/Omakin_the_Stalker.lua b/emeraldjungle/Omakin_the_Stalker.lua new file mode 100644 index 0000000..feb4589 --- /dev/null +++ b/emeraldjungle/Omakin_the_Stalker.lua @@ -0,0 +1,9 @@ +function event_spawn(e) + eq.set_timer("depop",20000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end diff --git a/emeraldjungle/Scout_Vyrak.lua b/emeraldjungle/Scout_Vyrak.lua new file mode 100644 index 0000000..13dba5d --- /dev/null +++ b/emeraldjungle/Scout_Vyrak.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("It is a pleasure to meet you, but I do not have time to speak. I am waiting on official word from Shar Vahl. If you have been sent to assist me, please show me the Official Seal of the Khati Sha at this time. If you are not such a person, please carry on with your business and leave me to tend to mine."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9031})) then + e.self:Say("Well met, " .. e.other:GetCleanName() .. ", well met indeed I find comfort in the fact that the jungle permitted your passage to me! Maybe there is still hope we can stop this disturbance before any more damage can be done to the balance of the spirit realm I have spent several weeks tracking the corrupted spirit. It seems to have made a home of the ruins just south of here. The spirit no longer resembles he entity that it once was. It is quickly becoming something foul and savage. Let us hope that you are not too late."); + eq.spawn2(94126,0,0,4054,-690,-44,0); -- NPC: The_Spirit_of_Rage + eq.unique_spawn(94015,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/emeraldjungle/Spirit_Sentinel.lua b/emeraldjungle/Spirit_Sentinel.lua new file mode 100644 index 0000000..bb30e76 --- /dev/null +++ b/emeraldjungle/Spirit_Sentinel.lua @@ -0,0 +1,59 @@ +--Spirit Sentinel is for Shaman Epic 1.0 and administers the Test of Might and the completion of the epic. + +function event_say(e) + if(e.message:findi("hail")) then --Part of Shaman Epic 1.0 + -- no response + end + if(e.other:GetFaction(e.self) <= 3) then + if(e.other:GetFactionValue(e.self) >= 400) then + if(e.message:findi("continue what")) then --Part of Shaman Epic 1.0 + e.self:Say("This brings happiness to our hearts and we are grateful. However, we must ask you to walk one more path before you can become a true Heyokah. With trust, one can focus on what is important. With patience, one can perceive what is harmful. With wisdom, one can know what must be done. These, you have learned, yet without the might to carry out what must be done, all is for naught. Are you [prepared to walk the path of might]?"); + elseif(e.message:findi("walk the path of might")) then --Part of Shaman Epic 1.0 + e.self:Say("Good, good, Do you know this place, " .. e.other:GetCleanName() .. ", this forest? The wasichu call it the Emerald Jungle, but we know it only as the terrible place. Where there is no spirituality, we are weak. The lost city in the middle of this jungle is a great void of belief not only absent of spirituality, but actually draining it from others. We are here to neutralize that void. The void is like the sky, and nothing escapes its gaze. If it senses us, it will drain us away and sometimes it turns our minds, making us [like the wasichu], crazy for things with no meaning."); + elseif(e.message:findi("like the wasichu")) then --Part of Shaman Epic 1.0 + e.self:Say("Yes, there are some of us who have turned their backs on our world and struggle for possesions and power over others. These lost ones are our brothers and we cry for them. Our hearts are in pain like bleeding wounds when we think of them. The path of might will lead you to one of our lost brothers. We are afraid there is nothing we can do for him now, so you must eliminate him when you [find him]."); + elseif(e.message:findi("find him")) then --Part of Shaman Epic 1.0 + e.self:Say("He left us long ago and walked the land for ages. He soon met a man, one of the pointy-ears that live underground. This man was like a void just like the one over that terrible place now. Our Brother-Friend was attracted to this man's desire and ambition. He no doubt thought that he could get what he wanted in service of this [dark point ear] who denied his own creator."); + elseif(e.message:findi("dark point ear")) then --Part of Shaman Epic 1.0 + e.self:Say("After our brother began traveling with this point-ear, they became shrouded in a darkness we could not peer through. The point-ear was a powerful being and we soon lost their trail. We have no idea where he could be now. Although, after all these centuries, he has no doubt been gathering and cultivating his wealth and power. He must be an incredibly influential being at this point. Find this point-ear and draw our brother out, then destroy him and bring us proof. We await your return in somber mourning."); + end + elseif(e.message:findi("continue what I have started") or e.message:findi("walk the path of might") or e.message:findi("like the wasichu") or e.message:findi("find him") or e.message:findi("dark point ear")) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + end + if(e.other:GetFactionValue(e.self) >= 500) then + if(e.message:findi("Heyokah")) then --Part of Shaman Epic 1.0 + e.self:Say("Yes, you have walked the Path of the Heyokah to its end. You have become what few have and we will now call to you as Heyokah " .. e.other:GetCleanName() .. ". From now on, you are a direct link between the spirits and man. Whether your goals are to help us or master us, you are welcomed. Though there is little time for celebration. Do you feel the darkness of this place, the forest? To eyes not trained to see beyond physical appearances, it seems like any other forest. But you know, as do we, of the mantle over the city threatening all of us. We must [rub it out]."); + elseif(e.message:findi("rub it out")) then --Part of Shaman Epic 1.0 + e.self:Say("There are many such mantles scarring the universe and each is very different from the last. Removing them requires that we learn how they were created and go about reversing the damage done. We cannot enter under the mantle for long which is why we search out Heyokah such as yourself. We need you to enter the city and find out what you can about the [city's demise]. We hope you will do this for the cause of balance but if you desire none but your own power, we shall grant that as well."); + elseif(e.message:findi("city's demise")) then --Part of Shaman Epic 1.0 + e.self:Say("It was known as Torsis. During its history it amassed great wealth and power yet it eventually crumbled. No one understands what happened. The men of the world ask themselves how a nation as successful as Torsis could ever fall. Some blame plague, internal unrest, the constant encroachment of the forest, and marauding bands of monsters but we alone know what happened. Just as Tabien and Glaron lost sight of their spiritual paths, so did Torsis. Without the awe and inspiration of that which was greater than themselves, they eventually withered away. The mantle was born long before the last days, though, and what we need to learn is [how it all began]."); + elseif(e.message:findi("how it all began")) then --Part of Shaman Epic 1.0 + e.self:Say("Excellent! Go into the city and gather what evidence you can. The ghosts who still walk the streets may hoard precious memories that will aid us. Take this booklet and combine what you find in it. Then bring me the completed report. From there, we will know where to look next."); + e.other:SummonCursorItem(17805); -- Item: Ancient Journal + end + elseif(e.message:findi("Heyokah") or e.message:findi("rub it out") or e.message:findi("city's demise") or e.message:findi("how it all began")) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 300 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1668})) then --Part of Shaman Epic 1.0 Item: Sparkling Gem + e.self:Say("Ahh, you live, shaman! I am glad the beasts of this jungle haven't torn your body asunder. Tell me, do you still walk the path? Are you willing to [continue what you have started]?"); + e.other:Faction(e.self,404,100); -- Faction: True Spirit + elseif(e.other:GetFactionValue(e.self) >= 400 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1672})) then --Part of Shaman Epic 1.0 Item: Black Dire Pelt + e.self:Emote("begins to weep softly as he sees the pelt, battered and bloody. After a few moments, he says, 'We can only hope his passing was quick and painless. The Dire was powerful and yet you overcame him. Always remember that when you became [Heyokah], it was the passing of a noble, yet misguided being that allowed you to do so. You should hold a special place in your heart for him and what he was in life. To help you remember him, we will fashion this pelt into a pair of boots and give them to you. With every step you take, you must think on the Dire, else his death be in vain forever."); + e.other:Faction(e.self,404,100); -- Faction: True Spirit + e.other:QuestReward(e.self,0,0,0,0,1678,50000); + elseif(e.other:GetFactionValue(e.self) >= 500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 3599})) then --Part of Shaman Epic 1.0 Item: Completed Report + e.self:Emote("Ahhh good, let us hope what you have found will point us in the right direction. Hmmm...this is interesting. It appears the disappearance of the first queen may have caused Rak'Ashiir's faith to decline. From there, the first King Rak laid down the groundwork for the city's eventual demise. We need to learn what happened to the queen. Perhaps bringing this knowledge to the King's now cursed form will lift the mantle. We've learned that the last lord of Torsis, Ghiosk, was a bit of a historian. Find him and see what you can learn about the queen. Take what you find to my brother here in the jungle beneath the murky waters of a pond."); + e.other:Faction(e.self,404,100); -- Faction: True Spirit + e.other:QuestReward(e.self,0,0,0,0,0,75000); + end + local returned = item_lib.return_items(e.self, e.other, e.trade, false) + if ( returned ) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + end +end diff --git a/emeraldjungle/Spirit_Sentinel_.lua b/emeraldjungle/Spirit_Sentinel_.lua new file mode 100644 index 0000000..8c4624f --- /dev/null +++ b/emeraldjungle/Spirit_Sentinel_.lua @@ -0,0 +1,38 @@ +--Spirit Sentinel is for Shaman Epic 1.0 and administers the Final Test and the completion of the epic. + +function event_say(e) + if(e.message:findi("is lost")) then --Part of Shaman Epic 1.0 + e.self:Say("The mantle was the product of thousands of faithless individuals. Not the single shroud we believed existed. Torsis is now truly cursed for all eternity as a great stain upon the universe. Today is a sad day, indeed. However, some good can still come of this. Your sacrifice and spiritual devotion in this matter have become legendary. You have waited for us at the bottom of the ocean. You have rubbed out a mighty rogue spirit. You have endured the black hole of Torsis and entered the abode of Fear itself to save a child from eternal suffering. It is only fitting that we reward you with our greatest treasure, the [Spear of Fate]."); + elseif(e.message:findi("Spear of Fate")) then --Part of Shaman Epic 1.0 + e.self:Say("The spear was constructed millennia ago by Thalger, the first human Heyokah. One of the most destructive wasichu of Norrath, Miragul, as he is known, had been traveling the world searching out all known magic. Wherever he went, he discovered and experimented with all forms of dangerous magic. Most of the world cannot even fathom what the Arch Necromancer was capable of. He had haphazardly discovered a way to directly create a mantle of negative spiritual energy similar to what curses Torsis. He himself had willed into existence one of these [black holes]."); + elseif(e.message:findi("black hole")) then --Part of Shaman Epic 1.0 + e.self:Say("Miragul often retreated to the frigid northlands to experiment in solitude. It was here that he created a black hole. Unfortunately for the small tribes of men who made the northlands their home, this new black hole threatened not only their livelihood but their entire existence. The mantle was so powerful it not only drained the spiritual energy of everything within its gaze, it also drained the life force as well. The tribes were threatened with complete annihilation. But one [powerful shaman] stepped forward and struck against Miragul's mantle."); + elseif(e.message:findi("powerful shaman")) then --Part of Shaman Epic 1.0 + e.self:Say("Thalger had been the first to pass our tests and the timing was lucky indeed. We supplied him with materials needed to construct a weapon that could pierce the very fabric of the [cosmos]. First, was the sharpened shoulder blade of an ancient lion matriarch. Then Thalger found a young sapling for the shaft and shaped it over the course of 45 days using nothing but his fingernails. He then split the top of the flexible shaft, lodged the blade into place and bound them together with the tanned entrails of an ox. Finally, he adorned the spear with the magical feathers of an aviak elder."); + elseif(e.message:findi("cosmos")) then --Part of Shaman Epic 1.0 + e.self:Say("Miragul's casting was strong but it was a force brought into existence. This force was positive in nature, the opposite of nothingness. Even though it worked like a void, it was still created by an imposition of will. We figured that if we could rupture the planar boundary and create enough anti-existence or non-matter, the mantle might destroy itself. Thalger volunteered immediately to pierce the mantle as no spirits could even get close to it. In one act of devotion and singular purpose, Thalger rode the wind far above the land and with one colossal arch ripped a [breach] across the planes."); + elseif(e.message:findi("breach")) then --Part of Shaman Epic 1.0 + e.self:Say("The tear in the fabric of existence created enough negative material to cancel out Miragul's abomination. Thalger's strike was so perfect that he cut just enough planar material to destroy the mantle and nothing else. Unfortunately, Thalger himself was lost in the process. All that was left was the spear that fell from the heavens to the ground where we recovered it. We have kept it since then and now we wish you to have it. When you strike with it, you must have the same singularity of purpose as did Thalger when he defeated Miragul's mantle. Thank you, Heyokah " .. e.other:GetCleanName() .. "."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 600 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18456,item2 = 18457,item3 = 18458})) then --Part of Shaman Epic 1.0 + e.self:Say("Hmmm, it appears the queen's disappearance wasn't as random as we thought. It also looks as if this High Scale was having some sort of affair with Neh. We have little but speculation at this point so making it known to Nak'Ashiir would do nothing. Perhaps finding the resting place of the High Scale will show us more in the way of what really happened. We suspect the icon mentioned in this log could now be located in the city's old temple. Find the icon and bring it to Kirn, wherever he is. Tell me what you learn afterwards."); + e.other:Faction(e.self,404,100); -- Faction: True Spirit + elseif(e.other:GetFactionValue(e.self) >= 900 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18459})) then --Part of Shaman Epic 1.0 + e.self:Say("So, the truth is found! Nak mourned over the loss of his child instead of relishing the blessing of his god, Cazic-Thule. His wife and the High Scale then abandoned him in disgust, but even that was an aftereffect of what caused the king to turn his back on his faith. The child is the key! If we put the child to rest, Nak may repent of what he has done and the mantle may be lifted. The most difficult task is now at hand. Find the child, then take proof of her passing to Nak. I can feel the mantle's foundation crumbling! Now, go!"); + e.other:Faction(e.self,404,1000); -- Faction: True Spirit + e.other:QuestReward(e.self,0,0,0,0,0,75000); + elseif(e.other:GetFactionValue(e.self) >= 1900 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1674})) then --Part of Shaman Epic 1.0 + e.self:Emote("What is this? The scale of Rak'Ashiir's father? Then Rak has repented his mistake? But why is the mantle still in place? If Rak has repented, then the mantle should have dissolved since he was the one who initiated its construction. But is its initiation the key? How could we have been so blind? Kirn said Rak'Ashiir had the blood of his people on his hands but that is false. Rak merely pointed to a path that would lead them to destruction. It was the people who chose to follow. Now all [is lost]."); + e.other:Faction(e.self,404,-2000); -- Faction: True Spirit + e.other:QuestReward(e.self,0,0,0,0,10651,75000); + end + local returned = item_lib.return_items(e.self, e.other, e.trade, false) + if ( returned ) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + end +end diff --git a/erudnext/Beth_Breadmaker.lua b/erudnext/Beth_Breadmaker.lua new file mode 100644 index 0000000..16d1aef --- /dev/null +++ b/erudnext/Beth_Breadmaker.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there " .. e.other:GetCleanName() .. "! You'll be happy to see that I am fully stocked with all my usual goods. Have a look around!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("Ah yes! This is exactly what I am looking for, dear. Let me put these on the shelf right away. Here is some coin for your trouble. Perhaps we can do business again sometime."); + e.other:Faction(e.self,289,2); -- Faction: Merchants of Erudin + e.other:Faction(e.self,266,1); -- Faction: High Council of Erudin + e.other:Faction(e.self,267,1); -- Faction: High Guard of Erudin + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("Oh, wonderful fresh bread! Thank you for making the trip, that is such a long way. Here, I hope this covers your travel expenses. You have my deepest thanks."); + e.other:Faction(e.self,289,4); -- Faction: Merchants of Erudin + e.other:Faction(e.self,266,3); -- Faction: High Council of Erudin + e.other:Faction(e.self,267,3); -- Faction: High Guard of Erudin + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/erudnext/Breya_Nostulia.lua b/erudnext/Breya_Nostulia.lua new file mode 100644 index 0000000..6f5f6d3 --- /dev/null +++ b/erudnext/Breya_Nostulia.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares off into the distance in meditation. Her eyes are a light blue, much like the tropical waters of the ocean between Odus and the mainland. She ignores your greeting."); + elseif(e.message:findi("tiam sent me") or e.message:findi("instrument") or e.message:findi("other item")) then + if(e.other:GetFaction(e.self) < 5) then -- requires amiably + if(e.message:findi("tiam sent me")) then + e.self:Say("Seems you've slain quite a few kobolds, then. This is good. You will need to kill many more to fulfill your quest. While the kobolds are fairly primitive, they are an ancient race and have learned to wield the powers of the spirits. This ability is the only thing that has kept us from eradicating them completely. We need you to find instruments of their craft."); + elseif(e.message:findi("instrument")) then + e.self:Say("There are two items we seek. The shamans carry medicine pouches in which they hold the materials of their craft. Only the more adept shamans are allowed to carry the pouches; seek them out. The other item we seek is of greater importance."); + elseif(e.message:findi("other item")) then + e.self:Say("The other is a magical bowl from which a highly skilled shaman may divine the future or diagnose illness. Only the wisest of the kobold shamans have the intelligence to use the bowls, or perhaps an outcast with powers that the other, larger kobolds fear. Bring me a kobold medicine pouch and the diviner's bowl and you shall be rewarded with the armor of our trusted knights and priests."); + end + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you.") + else + e.self:Say("Is that your BREATH, or did something die in here? Now go away!") + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I'll need both the kobold medicine pouch and the diviner's bowl before I can reward you, " .. e.other:GetCleanName() .. ". Good luck."; + + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 17056,item2 = 1766},1,text)) then -- requires amiably + e.self:Say("Well done, " .. e.other:GetCleanName() .. ". I had a feeling you would return victorious. Here is your reward, the Leggings of Midnight Sea. Wear them with pride for the Ocean Lord. If you are interested in aiding us further, you may want to ask Gans about his brother."); + -- Confirmed Live Factions + e.other:Faction(e.self,242,25,0); -- Faction: Deepwater Knights + e.other:Faction(e.self,266,3,0); -- Faction: High Council of Erudin + e.other:Faction(e.self,265,-3,0); -- Faction: Heretics + e.other:QuestReward(e.self,0,0,0,0,1762,1000); + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/erudnext/Camin.lua b/erudnext/Camin.lua new file mode 100644 index 0000000..f9dc94e --- /dev/null +++ b/erudnext/Camin.lua @@ -0,0 +1,39 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Go away! I have no time for you!"); + elseif(e.message:findi("What are you searching for")) then + e.self:Say("Ah! A smart one, I see! If you really wish to know about such a thing, you will have to help me finance my studies. The knowledge I have acquired and researched did not come cheaply."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local qglobals = eq.get_qglobals(e.self,e.other); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18088})) then + e.self:Say("So you have met Solomen, eh? He is a man with a wealth of knowledge. It is good to hear he is well."); + e.other:QuestReward(e.self,0,0,0,0,0,500); + eq.set_global("wizepic","1",0,"D30"); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14330})) then + if(qglobals["wizepic"] == "2") then + e.self:Say("Very interesting... I've seen this work before. Yes, yes! It's the work of Arantir Karondor! Give this back to the person you got it from. Maybe they will have a clue to Arantir's Location."); + e.other:Faction(e.self,404,10,0); -- Truespirit + e.other:QuestReward(e.self,0,0,0,0,14331,10000); + eq.delete_global("wizepic"); + else + e.self:Say("I have no need for this item " .. e.other:GetCleanName() .. ", you can have it back."); + e.other:QuestReward(e.self,0,0,0,0,14330); -- Item: Ro's Breath + end + elseif(item_lib.check_turn_in(e.self, e.trade, {platinum = 1000})) then + if(qglobals["wizepic"] == "1") then + e.self:Say("Good, good, you show a willingness to learn of this with your offer. What I can tell you is that Solusek Ro had four followers who had shown exceptional aptitude in the arts of wizardry. Solusek Ro himself tutored them. He considered them to be like his own children. I know of one who still exists. He goes by the name of Arantir Karondor. He used to specialize in the storing of magic into physical objects. Arantir has been hiding for many, many years and will most assuredly be going by another name, so keep your eyes open. Anyway, be off, I need to continue my research. Return to me if you ever find Arantir Karondor."); + e.other:Faction(e.self,404,10,0); -- Truespirit + e.other:QuestReward(e.self,0,0,0,0,0,500); + eq.set_global("wizepic","2",0,"D30"); + else + e.self:Say("I have no need for this item " .. e.other:GetCleanName() .. ", you can have it back."); + e.other:GiveCash(0,0,0,1000); + end + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/erudnext/Cipse_Tospyr.lua b/erudnext/Cipse_Tospyr.lua new file mode 100644 index 0000000..0afa552 --- /dev/null +++ b/erudnext/Cipse_Tospyr.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". I welcome you to the Temple of Divine Light. I am the resident healer. If you should ever require the power of Quellious to [bind wounds], [cure disease] or [cure poison], speak with me and I shall help you."); + elseif(e.message:findi("bind wounds")) then + e.self:Say("I shall be pleased to help you with your wounds. The Temple of Divine Light requires a tribute of four gold before I may perform the service."); + elseif(e.message:findi("cure disease")) then + e.self:Say("Your malady will be nothing more than a memory, but before that can be, we ask that a donation of two gold coins be offered."); + elseif(e.message:findi("cure poison")) then + e.self:Say("You must pay the tribute of three gold before I cast the toxin from your body."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {gold = 4})) then + e.self:CastSpell(12,e.other:GetID()); -- Spell: Healing + elseif(item_lib.check_turn_in(e.self, e.trade, {gold = 3})) then + e.self:CastSpell(203,e.other:GetID()); -- Spell: Cure Poison + elseif(item_lib.check_turn_in(e.self, e.trade, {gold = 2})) then + e.self:CastSpell(213,e.other:GetID()); -- Spell: Cure Disease + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:erudnext \ No newline at end of file diff --git a/erudnext/Collier.lua b/erudnext/Collier.lua new file mode 100644 index 0000000..390b564 --- /dev/null +++ b/erudnext/Collier.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Make it a habit of walking into peoples rooms now do ya? Well seeing as I'm here on business I may have a [proposition] for you."); + elseif(e.message:findi("proposition")) then + e.self:Say("I'm in the employment of an alchemist that desires some rare venom from this region of Norrath. I will reward you with a special weapon treatment if you can return to me with a venomous spikefish poison sac, an ancient poison sac, an ancient snake fang, and the blood of a necromancer."); + elseif(e.message:findi("special weapon treatment")) then + e.self:Say("My employer has uncovered the secrets of the Bloodclaw and can reproduce the weapon treatment used in the forging of the legendary Stiletto of the Bloodclaw."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31828,item2 = 22570, item3 = 6949,item4 = 6950})) then + e.self:Say("There is the weapon treatment I promised you. Use it in a forge with either a Long Sword or a Scimitar. Choose which weapon you prefer carefully as there is only enough of the substance for a single treatment."); + e.other:QuestReward(e.self,0,0,0,0,22571,500); -- Item: Thick Caustic Liquid + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/erudnext/Depnar_Bulrious.lua b/erudnext/Depnar_Bulrious.lua new file mode 100644 index 0000000..aebc81b --- /dev/null +++ b/erudnext/Depnar_Bulrious.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail. " .. e.other:GetCleanName() .. "! I am the master of the paladins among the Peacekeepers. Have you joined the harmony of the Peacekeepers or are you merely a visitor?"); + elseif(e.message:findi("joined")) then + e.self:Say("Then go and speak with the other Peacekeepers. Do your part to promote the words of Quellious."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18726})) then -- Tattered Note + e.self:Say("Welcome to the Temple of Divine Light. I am Master Bulrious. Here. we study and spread the will of Quellious. Here is your guild tunic. Go find Jras Solsier. he will get you started with your first lesson."); + e.other:Faction(e.self,298,100,0); -- Peace Keepers + e.other:Faction(e.self,266,25,0); -- High Council of Erudin + e.other:Faction(e.self,265,-25,0); -- Heretics + e.other:QuestReward(e.self,0,0,0,0,13546,20); -- Faded Silver Tunic* + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:erudnext ID:98062 -- Depnar_Bulrious diff --git a/erudnext/Dleria_Mausrel.lua b/erudnext/Dleria_Mausrel.lua new file mode 100644 index 0000000..5218da7 --- /dev/null +++ b/erudnext/Dleria_Mausrel.lua @@ -0,0 +1,43 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail! You appear to be a [new priest]. Ah, I so enjoy the presence of youth within Deepwater Temple. I am sure Prexus is smiling upon us as we speak."); + elseif(e.message:findi("new priest") or e.message:findi("protect the depth") or e.message:findi("convert fishermen in qeynos")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- requires amiably + if(e.message:findi("new priest")) then + e.self:Say("As I suspected. I shall assist you with your training and you shall assist the temple with your service. A young priest can help out by asking to [convert fishermen in Qeynos] or maybe even something truly great such as requesting to [protect the depths]."); + elseif(e.message:findi("protect the depth")) then + e.self:Say("We have heard of zombies inhabiting the depths of Erud's Crossing. Go and seek them out. Destroy them. This evil should not exist within the realm of the Ocean Lord. Take this bag. Fill it with their rotting flesh. combine it and return it to me. May Prexus guide you."); + e.other:SummonCursorItem(17939); -- Item: Empty Bag + elseif(e.message:findi("convert fishermen in qeynos")) then + e.self:Say("So you wish to journey to Qeynos? So be it. Go to Qeynos and find me a willing convert. Ask them if they wish the blessing of Prexus. If so, they should snap their pole in two and you will return it to me. Do this and be rewarded."); + end + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("There is no reason to dislike you, but we of the Deepwater Knights must see more done for our cause before we truly accept you."); + else + e.self:Say("We, the Deepwater Knights, know of your vile ways. You had best leave while you can."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13922})) then -- requires amiably + e.self:Say("Good work, young priest. Soon you shall carry the word of the Ocean Lord to distant lands. For now, continue your training. As for your reward, I have this which has been sitting in our vault. I hope it can be of use to a young priest such as yourself."); + -- Confirmed Live Factions + e.other:Faction(e.self,242,5,0); -- Faction: Deepwater Knights + e.other:Faction(e.self,266,1,0); -- Faction: High Council of Erudin + e.other:Faction(e.self,265,-1,0); -- Faction: Heretics + e.other:QuestReward(e.self,0,math.random(20),math.random(10),0,eq.ChooseRandom(2144,2146,2147,17005),2000); -- Item(s): Raw-hide Sleeves (2144), Raw-hide Gloves (2146), Raw-hide Leggings (2147), Backpack (17005) + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13880})) then -- requires amiably + e.self:Say("Peeuww!! That most certainly is zombie flesh!! Here is your reward. You have done a fine service in the name of Prexus. Soon you shall advance and we may tell you of greater dangers lurking in the depths."); + -- Confirmed Live Factions + e.other:Faction(e.self,242,10,0); -- Faction: Deepwater Knights + e.other:Faction(e.self,266,1,0); -- Faction: High Council of Erudin + e.other:Faction(e.self,265,-1,0); -- Faction: Heretics + e.other:QuestReward(e.self,0,math.random(20),math.random(10),0,eq.ChooseRandom(2144,2146,2147,17005,15205,15203,15207,15201,15208,15209),5000); -- Item(s): Raw-hide Sleeves (2144), Raw-hide Gloves (2146), Raw-hide Leggings (2147), Backpack (17005), Spells: Cure Poison, Lull, True North, Spook the Dead, Flash of Light, Divine Aura + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:erudnext ID:24050 -- Dleria_Mausrel diff --git a/erudnext/Galbasi_Weaver.lua b/erudnext/Galbasi_Weaver.lua new file mode 100644 index 0000000..fcffc96 --- /dev/null +++ b/erudnext/Galbasi_Weaver.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("%s, well met! Perhaps you would care to peruse my wares.' Galbasi smiles gently and shows you a number of cloth pieces. 'Or maybe you would care to learn of my hand-made [Woven Platinum] or [Steelweave] armors?", e.other:GetCleanName())); + elseif(e.message:findi("woven platinum")) then + e.self:Say("Woven platinum is a hard-wearing, yet flexible, compound which I use to make protective clothing for the city's learned scholars. It allows magic to be focused fully, unlike other harder-wearing armors.' Galbasi peers intently at your clothing. 'Perhaps you'd care to know the [method] of its creation?"); + elseif(e.message:findi("method")) then + e.self:Say("I was curious at your age too.' Galbasi smiles warmly. 'I use enchanted platinum thread as the basic weave, made by smithing platinum thread with a large enchanted brick of high quality ore, gently using a smithing hammer. With this thread, in an Erudite Sewing Kit, use your embroidering needle, silver thread, a pattern, an imbued gem and some [infused silk]."); + elseif(e.message:findi("infused silk")) then + e.self:Say("The Terrorantula Silk is the most appropriate for a construction of this kind, and actually aids in the focus of magic for the silk's wearer. Simply place a swatch of this silk into your sewing kit, with a small measure of [celestial temper]."); + elseif(e.message:findi("celestial temper")) then + e.self:Say("This is an unusual compound. A stranger was attempting to sell me some recently, just before he was removed from the city for... certain offences.' Galbasi's eyes become firm. 'It seems to be the dust from a blue diamond, dissolved in water - though water more pure than I have encountered. I can only speculate."); + elseif(e.message:findi("steelweave")) then + e.self:Say("Steelweave! The armor of those in the midst of battle! With two lengths of [special thread], your embroidering needle, a pattern, an imbued gem, and a few [infused silk] swatches, your Erudite sewing kit can produce a rigid weave the likes of which you have never seen!"); + elseif(e.message:findi("special thread")) then + e.self:Say("Take a large brick of enchanted high quality ore, some gold thread, and gently use your smithing hammer upon it. All of my work is performed in the special Erudin Forge, its unique temperature is required for my purposes."); + end +end diff --git a/erudnext/Gans_Paust.lua b/erudnext/Gans_Paust.lua new file mode 100644 index 0000000..cbca5ff --- /dev/null +++ b/erudnext/Gans_Paust.lua @@ -0,0 +1,46 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("glances at you and hurriedly makes a gesture of religious meaning before you and says, 'Yes, yes, I hereby bless you in the name of Prexus. May your catch be plentiful and your nets never snag. Are there any other fishermen seeking a blessing? I'm very busy.'"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("your brother")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("What? How do you know fo my brother? Ahh I assume Breya told you. He's been gone for quite some time with no word sent on his progress or his wellbeing. I need to find someone to [check on him]."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("check on him")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Thank you, " .. e.other:GetCleanName() .. ". He's one of our people's most knowledgeable geologists and has left to survey an island out in Erud's Crossing. He was sending monthly reports until two weeks ago when his report never showed up. I'm worried something may have happened to him. Take this note to Yelesom and bring back something to assure me of his safety. A reward fitting a Deepwater Knight shall be yours upon your success."); + e.other:SummonCursorItem(18173); -- Item: Ganss note to Yelesom + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you.") + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18724})) then -- Tattered Note + e.self:Say("Yes. welcome friend! Here is your guild tunic. You'll make a fine addition to the Deepwater Knights. Go see Dleria, she will get you started in your studies."); + e.other:Faction(e.self,242,100,0); -- Deepwater Knights + e.other:Faction(e.self,266,15,0); -- High Council of Erudin + e.other:Faction(e.self,265,-15,0); -- Heretics + e.other:QuestReward(e.self,0,0,0,0,13544,20); -- Old Blue Tunic* + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1771})) then + e.self:Say("Ahhh, thank you for your effort, " .. e.other:GetCleanName() .. ". I'm glad he's doing ok despite the theft. I now award you the Sleeves of Midnight Sea. May they protect you until the time of our glorious redemption."); + -- Confirmed Live Factions + e.other:Faction(e.self,242,25,0); -- Deepwater Knights + e.other:Faction(e.self,266,3,0); -- High Council of Erudin + e.other:Faction(e.self,265,-3,0); -- Heretics + e.other:QuestReward(e.self,0,0,0,0,1763,2500); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:erudnext ID:98061 -- Gans_Paust diff --git a/erudnext/Geoard_Bluehawk.lua b/erudnext/Geoard_Bluehawk.lua new file mode 100644 index 0000000..1b03291 --- /dev/null +++ b/erudnext/Geoard_Bluehawk.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. adventurer! After all those months of sweaty. hot and dirty battling of beasts untold. it is time to treat yourself to a tall. cool grog!"); + elseif(e.message:findi("about a Erud's Tonic")) then + e.self:Say("Long ago, the great Erud found that excessive indulgence in spirits led to diminished mental awareness. His love of Kaladim brandy led him to concoct Erud's Tonic. The tonic blocked the effects of all spirits. Unfortunately, it is made from our precious Vasty Deep water and therefore is not permitted to be exported or given to non-Erudites or adventuring Erudites."); + elseif(e.message:findi("have some Erud's Tonic")) then + e.self:Say("The sale or provision of Erud's Tonic to travelers is prohibited!"); + eq.signal(24039,1); -- NPC: Phloatin_Highbrow + elseif(e.message:findi("Vasty Deep")) then + e.self:Say("The Vasty Deep is a lake located on Odus. It contains the purest water in Norrath. Some say it is magical in nature. The High Council does not allow it to be taken by outsiders and those who try are usually converted to chum for the sharks."); + end +end + +-- END of FILE Zone:erudnext ID:98066 -- Geoard_Bluehawk \ No newline at end of file diff --git a/erudnext/Golden_Maiden.lua b/erudnext/Golden_Maiden.lua new file mode 100644 index 0000000..8fefe4e --- /dev/null +++ b/erudnext/Golden_Maiden.lua @@ -0,0 +1,46 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Boat spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + if(e.wp == 7) then + eq.signal(24056,1); -- NPC: Sabrina + elseif(e.wp == 8) then + eq.signal(24056,2); -- NPC: Sabrina + eq.signal(24085,1); -- NPC: Reko_Saltamer + elseif(e.wp == 10) then + eq.debug("Boat to Erudsxing has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.spawn_condition("erudnext",1,0); + eq.spawn_condition("erudnext",2,0); + eq.get_entity_list():ForeachClient( + function(ent) + ent:Signal(2); + end, + function(ent) + -- Server thinks we're on Sabrina and are about to zone. + if(ent:GetBoatID() == 24056 and ent:GetY() > 500) then + return true; + end + return false; + end + ); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(98,2337,418,-22,-1); + end, + function(ent) + if(ent:GetBoatID() == 773 and ent:GetY() > 500) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/erudnext/Helia_BlueHawk.lua b/erudnext/Helia_BlueHawk.lua new file mode 100644 index 0000000..322537b --- /dev/null +++ b/erudnext/Helia_BlueHawk.lua @@ -0,0 +1,12 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there. adventurer! I am sure you are thirsty after that long boat ride from Qeynos!"); + eq.signal(24039,2); -- NPC: Phloatin_Highbrow + end +end + +function event_signal(e) + e.self:Say("Pipe down, Phloatin! Treat the new clientele with respect."); +end + +-- END of FILE Zone:erudnext ID:98065 -- Helia_BlueHawk \ No newline at end of file diff --git a/erudnext/Illithi_Nollith.lua b/erudnext/Illithi_Nollith.lua new file mode 100644 index 0000000..30765e5 --- /dev/null +++ b/erudnext/Illithi_Nollith.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Shhhh... Greetings, " .. e.other:GetCleanName() .. ". Welcome to the Library of Erudin. Please respect the other patrons and speak softly."); + elseif(e.message:findi("testament of vanear")) then + e.self:Say("Oh my!! You have not heard?! The Testament of Vanear was stolen from the library! It was checked out by a man named Moodoro. He is an Erudite, but I believe he was executed for some crime. Now the book is lost forever. You should speak with Tol Nicelot. He used to know Moodoro. Tol is most likely upstairs."); + end +end + +-- End of FILE Zone:erudnext ID:98061 -- Illithi_Nollith \ No newline at end of file diff --git a/erudnext/Jras_Solsier.lua b/erudnext/Jras_Solsier.lua new file mode 100644 index 0000000..baa4111 --- /dev/null +++ b/erudnext/Jras_Solsier.lua @@ -0,0 +1,40 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Temple of Divine Light. We are the Peacekeepers. followers of Quellious. If you are a paladin of this temple. you can assist us by showing a desire to [protect the peace]."); + elseif(e.message:findi("protect the peace") or e.message:findi("catch the poachers")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- requires amiably + if(e.message:findi("protect the peace")) then + e.self:Say("It was a fine decision. We are in need of your services. It seems there is a disturbance in Toxxulia Forest. There are poachers from other nations who have sought to cause turbulence among the creatures there. Will you help us [catch the poachers] or are you skeptical about this mission?"); + elseif(e.message:findi("catch the poachers")) then + e.self:Say("The infidels are in Toxxulia Forest. They have begun hunting the kobolds. We have no love of the kobolds. but cannot allow the lands of Odus to be overrun by outsiders. The ways of tranquility are balanced with harmony. We will not allow chaos to take hold of our land. Go and find these poachers. Bring me their heads!!"); + end + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You have not done much to upset the Peacekeepers of this temple, but we must ask you to prove yourself to us before we may discuss things such as this.") + else + e.self:Say("Leave my sight at once! You are no friend to the Peacekeepers of the Temple of Divine Light.") + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13825})) then -- requires amiably, Poachers Head + e.self:Say("You have served us well. The harmony of the forest shall be preserved. I have word that theses infidels were all working for one man. Find me evidence pertaining to this man. Surely one of these poachers has something which could aid in finding this man. We must stop him to stop the poachers. Go in peace."); + -- Confirmed Live Factions + e.other:Faction(e.self,298,5,0); -- Faction: Peace Keepers + e.other:Faction(e.self,266,1,0); -- Faction: High Council of Erudin + e.other:Faction(e.self,265,-1,0); -- Faction: Heretics + e.other:QuestReward(e.self,0,math.random(10),math.random(5),0,eq.ChooseRandom(10004,13003,10015,7009),3000); -- Item: Copper Band , Small Lantern, Malachite, Rusty Spear + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13913})) then -- requires amiably, Barbarian Head (Talym's Head) + e.self:Say("It is done! Quellious will look favorably upon our church and we will look favorably upon you. Go in peace."); + -- Confirmed Live Factions + e.other:Faction(e.self,298,10,0); -- Faction: Peace Keepers + e.other:Faction(e.self,266,2,0); -- Faction: High Council of Erudin + e.other:Faction(e.self,265,-2,0); -- Faction: Heretics + e.other:QuestReward(e.self,0,math.random(10),math.random(5),0,eq.ChooseRandom(15202,15011),5000); -- Item: Spell: Courage, Spell: Holy Armor + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:erudnext ID:98041 -- Jras_Solsier diff --git a/erudnext/Laoni_Reista.lua b/erudnext/Laoni_Reista.lua new file mode 100644 index 0000000..30a6c0e --- /dev/null +++ b/erudnext/Laoni_Reista.lua @@ -0,0 +1,37 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Very good to make your acquaintance. " .. e.other:GetCleanName() .. ". If you are a [new knight]. then let it be known. for I am seeking young knights of Deepwater."); + elseif(e.message:findi("new knight")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- requires amiably + e.self:Say("You do seem a bit young. We shall have to test your mettle. Within this temple. you shall learn to swim as fast as the swordfish and attack with the bravery and skill of the shark. Are you willing to [assist with the cleansing of the ocean]?"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("There is no reason to dislike you, but we of the Deepwater Knights must see more done for our cause before we truly accept you."); + else + e.self:Say("We, the Deepwater Knights, know of your vile ways. You had best leave while you can."); + end + elseif(e.message:findi("assist.* cleansing.* ocean")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- requires amiably + e.self:Say("Go to the waters near the harbor. We have heard of Qeynos' rogue guild attempting to smuggle our valuable Vasty Deep water from Odus by way of swimmers. We require proof of their involvement. It is said they often carry special coins. Return one of these coins to me."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("There is no reason to dislike you, but we of the Deepwater Knights must see more done for our cause before we truly accept you."); + else + e.self:Say("We, the Deepwater Knights, know of your vile ways. You had best leave while you can."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13881})) then --requires amiably + e.self:Say("Good work. You have shown these rogues who are the better swimmers. Now we have proof of their involvement. You are a fine addition to the temple. Take this small reward. Go, and serve Prexus."); + -- Confirmed Live Factions + e.other:Faction(e.self,242,10,0); -- Faction: Deepwater Knights + e.other:Faction(e.self,266,1,0); -- Faction: High Council of Erudin + e.other:Faction(e.self,265,-1,0); -- Faction: Heretics + e.other:QuestReward(e.self,math.random(10),0,0,0,0,2000); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:erudnext ID:98052 -- Laoni_Reista diff --git a/erudnext/Leraena_Shelyrak.lua b/erudnext/Leraena_Shelyrak.lua new file mode 100644 index 0000000..31cc3bf --- /dev/null +++ b/erudnext/Leraena_Shelyrak.lua @@ -0,0 +1,83 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome. my child. I am Leraena Shelyrak. overseer of the Temple of Divine Light. Inside this temple. you may find the path to inner peace. Introduce yourself to each of the priests and priestesses of the temple as well as the paladins. Together we shall put an end to such disruptive influences as the [kobold shamans]."); + elseif(e.message:findi("guild coin") or e.message:findi("kobold shaman") or e.message:findi("slay") or e.message:findi("powerful") or e.message:findi("greater kobold")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- requires amiably + if(e.message:findi("guild coin")) then + e.self:Say("Yes, of course. Here it is. Remember that it is not a form of currency."); + e.other:SummonCursorItem(13989); -- Item: Peacekeeper Token + elseif(e.message:findi("kobold shaman")) then + e.self:Say("The primitive kobold race has begun to show signs of healing ability. No doubt this was granted by some evil deity. Since they are of little power compared to a much more superior race such as ours. we only require the talents of young priests to [slay the kobold shaman]."); + elseif(e.message:findi("slay")) then + e.self:Say("You are so young... Go to Toxxulia and find these kobold shamans. Cut off their paws and return them to me. I require three paws as proof of your worth to our temple."); + elseif(e.message:findi("powerful")) then + e.self:Say("There are obviously other shaman with greater healing ability than those we have yet seen. Take this pouch and collect some of their odd necklaces so that we may study them."); + e.other:SummonCursorItem(17090); -- Item: Small Embroidered Sack + elseif(e.message:findi("greater kobold")) then + e.self:Say("Return to the Warrens and obtain eight of the bronze symbols worn by the kobolds greater shaman. Place them in this sack that has been blessed by the powers of Quellious to protect you from the evil influence of the evil symbols. Return the full sack with your initiate symbol of Quellious."); + e.other:SummonCursorItem(17090); -- Item: Small Embroidered Sack + end + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You have not done much to upset the Peacekeepers of this temple, but we must ask you to prove yourself to us before we may discuss things such as this."); + else + e.self:Say("Leave my sight at once! You are no friend to the Peacekeepers of the Temple of Divine Light."); + end + elseif(e.message:findi("ready to advance")) then + e.self:Say("You are ready to strike at the body of the kobold shamans power. There is no reasoning with the Kobolds thus there shall be no peace in our beloved lands until their devotion to their wicked deity ceases. Return once again to the Warrens and bring me the unholy symbol worn by the High Shaman."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I require the hieroglyph translations, the doctrine of Rolfron Zek, and your disciple symbol of Quellious."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18723},0)) then -- Tattered Note + e.self:Say("Greetings. and welcome to the Temple of Divine Light! Here is your guild tunic. Serve Quellious well. Please see Lumi Stergnon - he has a task for you."); + -- Confirmed Live Factions + e.other:Faction(e.self,298,100); -- Peace Keepers. + e.other:Faction(e.self,266,25); -- High Council of Erudin. + e.other:Faction(e.self,265,-25); -- Heretics. + e.other:QuestReward(e.self,0,0,0,0,13546,20); -- Faded Silver Tunic* + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 14585},0)) then -- requires amiably + e.self:Say("It is imperative that we discern the nature of these symbols and the source of the kobolds shamanistic powers. There is a citizen of Erudin residing in Freeport named Glyssa Sonshaw. She is quite possibly the most knowledgeable individual in the field of heraldic and hieroglyphic studies. Take the high shamans necklace and this note to her. When you have discovered the nature of the symbols return to me with the documentation and your Disciple Symbol of Quellious."); + e.other:QuestReward(e.self,{items = {1772,14585}}); -- Item: Odd Cold Iron Necklace + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 2049},0)) then -- rolled up strip of cloth + e.self:Say("This is important news indeed. It seems there is a tribe of cat men in the Stonebrunt Mountains that wishes to form an alliance with Erudin. I must alert the High Council of this immediately, thank you for your services."); + -- Confirmed Live Factions + e.other:Faction(e.self,298,2); -- Peace Keepers. + e.other:Faction(e.self,266,1); -- High Council of Erudin. + e.other:Faction(e.self,265,-1); -- Heretics. + e.other:QuestReward(e.self,math.random(10),math.random(5),0,0,0,1000); + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 14582},0)) then -- requires amiably + e.self:Say("I am unfamiliar with the markings that adorn these necklaces. You have done well thus far in hindering the kobolds worship of their evil deity. I award you the Initiate Symbol of Quellious. Return to me when you feel you are ready to deal with the [greater kobold shaman]."); + -- Confirmed Live Factions + e.other:Faction(e.self,298,25); -- Peace Keepers. + e.other:Faction(e.self,266,6); -- High Council of Erudin. + e.other:Faction(e.self,265,-6); -- Heretics. + e.other:QuestReward(e.self,0,0,0,0,1564,1000); -- Initiate Symbol of Quellious + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13883,item2 = 13883,item3 = 13883},0)) then -- requires amiably, 3x kobold shaman paw + e.self:Say("Fine work. They shall never lay hands upon another kobold again. I mean paws. Here is a small reward for a fine job. Unfortunatly we have recently learned that the shamen in the forest are merely underlings to [more powerful kobold shamen] that reside in the kobold warrens. Continue the work of Quellious."); + -- Confirmed Live Factions + e.other:Faction(e.self,298,20); -- Faction: Peace Keepers + e.other:Faction(e.self,266,5); -- Faction: High Council of Erudin + e.other:Faction(e.self,265,-5); -- Faction: Heretics + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(15213, 15011),500); + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 14583,item2 = 1564})) then -- requires amiably + -- Confirmed Live Factions + e.self:Say("Your service to this temple is commendable. I award you the rank of Disciple for your devotions to The Tranquil. When you are [ready to advance] return to me and I will set you upon another task."); + e.other:Faction(e.self,298,30); -- Faction: Peace Keepers + e.other:Faction(e.self,266,7); -- Faction: High Council of Erudin + e.other:Faction(e.self,265,-7); -- Faction: Heretics + e.other:QuestReward(e.self,0,0,0,0,1565,1000); + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1780,item2 = 1781,item3 = 1565},1,text)) then -- requires amiably + e.self:Say("You have done well yet again, young disciple. I award you the rank of Regent of the Peacekeepers. With this information we can hopefully gain some insight into the workings of the kobolds' religion."); + -- Confirmed Live Factions + e.other:Faction(e.self,298,70); -- Faction: Peace Keepers + e.other:Faction(e.self,266,17); -- Faction: High Council of Erudin + e.other:Faction(e.self,265,-17); -- Faction: Heretics + e.other:QuestReward(e.self,0,0,0,0,1566,2000); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:erudnext ID:98079 -- Leraena_Shelyrak diff --git a/erudnext/Lumi_Stergnon.lua b/erudnext/Lumi_Stergnon.lua new file mode 100644 index 0000000..82dccf2 --- /dev/null +++ b/erudnext/Lumi_Stergnon.lua @@ -0,0 +1,54 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("hail")) then + e.self:Say("Peace and tranquility be with you. " .. e.other:GetCleanName() .. ". Are you a [new acolyte of peace] or are you [here to pay homage] to the child of tranquility?"); + elseif(e.message:findi("new acolyte of peace") or e.message:findi("retrieve the peacekeeper staffs") or e.message:findi("battle the undead") or e.message:findi("important missions") or e.message:findi("track down the staff")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- requires amiably + if(e.message:findi("new acolyte of peace")) then + e.self:Say("Then you shall learn the ways of Quellious and learn to do as you are told by higher ranking members. It is time for you to do the lesser duties of a young priest. Which will it be? [Retrieve the Peacekeeper staffs] or [battle the undead]?") + elseif(e.message:findi("retrieve the Peacekeeper staffs")) then + e.self:Say("Then take this note to the woodworker in Toxxulia Forest. His name is Emil Parsini. He shall have the staff to be returned to the temple."); + e.other:SummonCursorItem(18833); -- A Sealed Letter for Emil Parsini + elseif(e.message:findi("battle the undead")) then + e.self:Say("Then you shall venture to Toxxulia Forest. There has been an increase in skeleton sightings lately. I do not know their origin, but I believe that your efforts will reduce their numbers! Take this box. Return it to me when you have filled it with the bones of these undead creatures and combined it. May Quellious' light guide you."); + e.other:SummonCursorItem(17941); -- Box for Bones + elseif(e.message:findi("important missions")) then + e.self:Say("We have need of skilled priests. We have learned that a High Guard battle staff has been stolen. We require a priest to [track down the staff].") + elseif(e.message:findi("track down the staff")) then + e.self:Say("In the mountain keep called High Hold, we have heard there is a person hiring mercenaries for an attempt to obtain a High Guard battle staff. We are missing one of our staffs and believe this person has it. Go to Highpass Hold and find this person. Return the High Guard battle staff to me!") + end + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You have not done much to upset the Peacekeepers of this temple, but we must ask you to prove yourself to us before we may discuss things such as this."); + else + e.self:Say("Leave my sight at once! You are no friend to the Peacekeepers of the Temple of Divine Light."); + end + elseif(e.message:findi("here to pay homage")) then + e.self:Say("Then respect our temple and keep your prayers silent."); + end +end + + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13882})) then -- requires amiably, A Box of Bones + e.self:Say("This is fabulous work, my friend! You have served your people well. Take this as a gift. I hope it can be of use to you. We need proof of these skeletons' origins. Continue the eradication of the undead and find out who creates them. Once you know, bring their head to me."); + -- Confirmed Live Factions + e.other:Faction(e.self,298,10,0); -- Peace Keepers (Quellious temple) + e.other:Faction(e.self,266,2,0); -- High Council of Erudin + e.other:Faction(e.self,265,-2,0); -- Heretics + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,math.random(20),math.random(5),0,eq.ChooseRandom(17005,17002,10018,2144,2145,2146,6011,6016,15203,15207,15201,15208,15209,15014,15205,15210,6012),500); -- Item(s): Backpack (17005), Belt Pouch (17002), Hematite (10018), Raw-hide Sleeves (2144), Raw-hide Wristbands (2145), Raw-hide Gloves (2146), Rusty Mace (6011), Rusty Morning Star (6016) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13816})) then -- The completed Peacekeeper Staff + e.self:Say("You have done well, neophyte.Let me add the touch of harmony to finish the job.. Here, then. Take these supplies. I am sure you'll need them. Soon you may be able to assist us in [important missions]."); + -- Confirmed Live Factions + e.other:Faction(e.self,298,10,0); -- Peace Keepers (Quellious temple) + e.other:Faction(e.self,266,2,0); -- High Council of Erudin + e.other:Faction(e.self,265,-2,0); -- Heretics + e.other:QuestReward(e.self,math.random(20),math.random(10),0,0,eq.ChooseRandom(17005,17002,10018,2144,2145,2146,6011,6016,6012,2109,2101,2106),2500); -- Item(s): Backpack (17005), Belt Pouch (17002), Hematite (10018), Raw-hide Sleeves (2144), Raw-hide Wristbands (2145), Raw-hide Gloves (2146), Rusty Mace (6011), Rusty Morning Star (6016), Worn Great Staff (6012), Tattered Wristband, Tattered Skullcap, Patchwork Cloak + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:erudnext ID:98045 -- Lumi_Stergnon diff --git a/erudnext/Nolusia_Finharn.lua b/erudnext/Nolusia_Finharn.lua new file mode 100644 index 0000000..9b60555 --- /dev/null +++ b/erudnext/Nolusia_Finharn.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good evening. Are not the stars beautiful? Somewhere out there, I imagine there is another world and another person staring right back at me. If you have business with me, please save it for the morning in the palace."); + elseif(e.message:findi("moodoro")) then + e.self:Say("Moodoro Finharn is my brother. He was a good boy up until he met that accursed halfling named [Flynn] Merrington."); + elseif(e.message:findi("flynn")) then + e.self:Say("Flynn Merrington talked my brother into stealing waters from the [Vasty Deep] and selling them to any buyers they could find. The waters from the Vasty Deep are sacred. That is why they started their [business]."); + elseif(e.message:findi("vasty deep")) then + e.self:Say("The Vasty Deep waters are said to be magical. Of course this is rumor, but it does not stop magic users from all over Norrath from trying to obtain some of the waters."); + elseif(e.message:findi("business")) then + e.self:Say("Flynn had talked Moodoro into delivering the waters to him in Qeynos. Eventually Moodoro was caught. He was sentenced to death, but a few spells from yours truly helped him escape death by replacing him with a [doppelganger]."); + elseif(e.message:findi("doppelganger")) then + e.self:Say("The doppelganger's innards were pulled out its esophagus and Moodoro went to Qeynos to start a new life. Unfortunately, he found Flynn there also. Now they have started up again somehow! My guildmaster is aware of this and fears what the High Council will do to our guild when they find this out. Will you [help] me?"); + elseif(e.message:findi("help")) then + e.self:Say("Find out how they get the water. Get me the water and I shall put a poison on the seal of the container. Then you carefully carry the container back to Flynn, not to my brother, and we shall put an end to this"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13118})) then + e.self:Say("Good work! Now, hold the bottle by the label! When you hand Flynn the bottle, the label will slide off. Bring me the label as proof of the deed."); + -- Confirmed Live Faction + e.other:Faction(e.self,231,20,0); -- Craftkeepers + e.other:Faction(e.self,266,2,0); -- High Council of Erudin + e.other:Faction(e.self,265,-3,0); -- Heretics + e.other:Faction(e.self,267,3,1); -- High Guard of Erudin + e.other:QuestReward(e.self,0,0,0,0,13122,20000); -- Item: Eruds Tonic + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13123})) then + e.self:Say("Fantastic. Now I can rest assured that my brother stands a better chance of finding the right path without that manipulating little man around. Master Lanken can rest assured that the waters are safe from abuse."); + -- Confirmed Live Faction + e.other:Faction(e.self,231,30,0); -- Craftkeepers + e.other:Faction(e.self,266,3,0); -- High Council of Erudin + e.other:Faction(e.self,265,-4); -- Heretics + e.other:Faction(e.self,267,4,0); -- High Guard of Erudin + e.other:QuestReward(e.self,math.random(20),0,0,0,eq.ChooseRandom(13122,5019,6017,5021,5013),100); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:erudnext ID:98002 -- Nolusia_Finharn diff --git a/erudnext/Phloatin_Highbrow.lua b/erudnext/Phloatin_Highbrow.lua new file mode 100644 index 0000000..23d37e7 --- /dev/null +++ b/erudnext/Phloatin_Highbrow.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ahoy there. [sailor]!"); + elseif(e.message:findi("not a sailor")) then + e.self:Say("What do you mean?! After all that time you spent sailing to Erudin, you have to be a sailor by now!"); + elseif(e.message:findi("sinnkin")) then + e.self:Say("Hey! I am trying to enjoy myself here. Now take yourself and the dead rat in your mouth outta here."); + end +end + +function event_signal(e) + + if(e.signal == 1) then + e.self:Say("Ha! The closest you will get to tonic is in the library. That's assuming you know how to spell tonic. Bwaha ha! When you see the bookworm give her a KISS for me! HAHA!!"); + eq.signal(24067,51); -- NPC: Helia_BlueHawk + elseif(e.signal == 2) then + e.self:Say("Don't worry, Helia. I don't think you need to push that one to drink."); + end +end + +-- END of FILE Zone:erudnext ID:98037 -- Phloatin_Highbrow \ No newline at end of file diff --git a/erudnext/Raine_Beteria.lua b/erudnext/Raine_Beteria.lua new file mode 100644 index 0000000..9609044 --- /dev/null +++ b/erudnext/Raine_Beteria.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFaction(e.self) <= 5) then + e.self:Say("Welcome. I am Raine Beteria."); + else + e.self:Say("You are lucky to be standing. Leave here immediately or suffer grave consequences! You are not welcome amongst the Craftkeepers."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) <= 5) then + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6339,gold = 50})) then + e.self:Say("Your silver wand has been fully enchanted. Take it and the pouch of silver dust back to the temple of Ro."); + e.other:QuestReward(e.self,0,0,0,0,6340,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10792})) then + e.self:Say("Thank you very much. I have always wanted one of these! Hehehe? Just kidding. I see that you have enchanted this coin. I have placed the final enchantment on it - take it back to Romar."); + e.other:QuestReward(e.self,0,0,0,0,10793,1000); + end + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/erudnext/Rarnan_Lapice.lua b/erudnext/Rarnan_Lapice.lua new file mode 100644 index 0000000..84ce583 --- /dev/null +++ b/erudnext/Rarnan_Lapice.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It is good to meet you. " .. e.other:GetCleanName() .. ". To enter the Temple of Divine Light is to invite Quellious into your body and soul. Tranquility is our way and. as such. we do all we can to uphold it. Are you a [cleric of Quellious]. or am I mistaken?"); + elseif(e.message:findi("cleric of Quellious")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I have a small task for you then. Go to the city library and ask the librarian for the book 'The Testament of Vanear'. I shall require it for further studies. Do not return empty-handed or you shall know my rage."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You have not done much to upset the Peacekeepers of this temple. but we must ask you to prove yourself to us before we may discuss things such as this."); + else + e.self:Say("Leave my sight at once! You are no friend to the Peacekeepers of the Temple of Divine Light."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13991})) then + e.self:Say("I sent you after that book ages ago! What took you so long? I have already completed my studies. Luckily I found the original manuscript under my bedroll. I forgot I had kept it there. Take this as a token of my apology. Maybe it will aid you in your next book hunt. I know how cunning those books can be."); + e.other:Faction(e.self,298,50,0); -- Faction: Peace Keepers + e.other:Faction(e.self,265,12,0); -- Faction: Heretics + e.other:Faction(e.self,266,-12,0); -- Faction: High Council of Erudin + e.other:QuestReward(e.self,0,0,20,3,15302,12500); -- Item: Spell: Languid Pace + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- End of FILE Zone:erudnext ID:98046 -- Rarnan_Lapice diff --git a/erudnext/Reklon_Gnallen.lua b/erudnext/Reklon_Gnallen.lua new file mode 100644 index 0000000..db90a58 --- /dev/null +++ b/erudnext/Reklon_Gnallen.lua @@ -0,0 +1,47 @@ +-- Paladin Epic 1.0 +-- Zone: erudnext + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail to you, friend. Seek you knowledge or atonement in this temple of peace?"); + elseif(e.message:findi("seek knowledge")) then + e.self:Say("Many are the things I could speak to you of. Have you any specific interest?"); + elseif(e.message:findi("seek atonement")) then + e.self:Say("Yes. Many are those who enter these halls seeking the forgiveness, the atonement of a god. By turning their spirit against whatever wrong they have committed they may be able to receive redemption in the eyes of their diety. Many seek such a thing, but few truly have the strength of spirit to attain it."); + elseif(e.message:findi("temple of peace")) then + e.self:Say("Dedicated to the god of peace, Quellious, is this temple. It is here that her clerics and paladins pray and receive inspiration."); + elseif(e.message:findi("paladins")) then + e.self:Say("As the clerics are the warm hand of healing, the paladins are the stalwart shield of protection, and in times of grave need the sharp sword of justice. To our post must we always remain vigilant, else dishonor might befall us."); + elseif(e.message:findi("remain vigilant")) then + e.self:Say("To a paladin the upholding of his duty, or honor to his temple is foremost. To fail in his duty to stand at his assigned post in time of need is a great disgrace. Few are the paladins who have done so, and their spirits have been outcast from the god of peace."); + elseif(e.message:findi("outcast")) then + e.self:Say("Harsh though it seems, a true paladin must always remain vigilant and dedicated to his cause. If he does not then he might find himself fallen from grace."); + elseif(e.message:findi("fallen from grace")) then + e.self:Say("here are a few who have done so. Only a few that come to mind. Such stories are useful to remember as reminders of our beliefs."); + elseif(e.message:findi("stories")) then + e.self:Say("One is the story of the paladin who fell due to his weakness in the duty of his guard post. He let himself be seduced by a peasant woman"); + elseif(e.message:findi("peasant woman")) then + e.self:Say("Many hundreds of years ago did this story begin. There was a paladin, whose name is lost to all but our oldest leaders, who was among the greatest examples of honor. It was his post to guard the chambers to our most important halls. His fall was a creature in the guise of a poor peasant woman."); + -- I couldn't find any further text here + elseif(e.message:findi("sacrifice")) then + e.self:Say("Only this crest and the sacrifice of something that symbolizes your strength and purity will release his spirit into the cleansing flames of our lady Quellious. Go now."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29001,item2 = 29006})) then + e.self:Emote("presses the gem of purity against the breastplate. Its dark gleam softens and then glows bright once again. 'Compassion is strong in you. Few so called heroes would sacrifice their time for such a menial task as you performed. Continue your work. Hold this ancient breastplate until you have completed your task."); + e.other:QuestReward(e.self,0,0,0,0,29004); -- Item: Gleaming Crested Breastplate + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29000,item2 = 29009})) then + e.self:Emote("washes the sword's blade in the water of purity. Its dark surface begins to shine, as true as the day it was forged. 'Such a sacrifice is rare among the poor. Truly, the woman must have loved her brother. Remember the lesson you have learned from her. Keep the sword until your work is done.'"); + e.other:QuestReward(e.self,0,0,0,0,29003); -- Item: Gleaming Crested Sword + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29003,item2 = 29004,item3 = 29005})) then + e.self:Say("I never thought our order would see these artifacts again. With the return of these relics we can now put at ease a scar upon the history of our order. This cleansing will atone for his failure. Your soul must be pure to have given so freely of yourself. Go now, take this crested token of our order. If you wish to free his soul you must undertake another sacrifice."); + e.other:QuestReward(e.self,0,0,0,0,29010); -- Item: Mark of Atonement + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:erudnext ID:24044 -- Reklon_Gnallen \ No newline at end of file diff --git a/erudnext/Reko_Saltamer.lua b/erudnext/Reko_Saltamer.lua new file mode 100644 index 0000000..0c32eb8 --- /dev/null +++ b/erudnext/Reko_Saltamer.lua @@ -0,0 +1,3 @@ +function event_signal(e) + e.self:Shout("The ship to Antonica is now departing the Erudin docks. It will be some time before it makes call here again, we will keep you informed."); +end \ No newline at end of file diff --git a/erudnext/Sabrina.lua b/erudnext/Sabrina.lua new file mode 100644 index 0000000..e2b0413 --- /dev/null +++ b/erudnext/Sabrina.lua @@ -0,0 +1,12 @@ +function event_signal(e) + if(e.signal == 1) then + eq.start(21); + elseif(e.signal == 2) then + eq.stop(); + end + end + +function event_spawn(e) + eq.spawn_condition("erudnext",1,0); + eq.spawn_condition("erudnext",2,0); +end \ No newline at end of file diff --git a/erudnext/Sea_King.lua b/erudnext/Sea_King.lua new file mode 100644 index 0000000..8a52d0b --- /dev/null +++ b/erudnext/Sea_King.lua @@ -0,0 +1,46 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Boat spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + if(e.wp == 7) then + eq.signal(24056,1); -- NPC: Sabrina + elseif(e.wp == 8) then + eq.signal(24056,2); -- NPC: Sabrina + eq.signal(24085,1); -- NPC: Reko_Saltamer + elseif(e.wp == 10) then + eq.debug("Boat to Erudsxing has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.spawn_condition("erudnext",1,0); + eq.spawn_condition("erudnext",2,0); + eq.get_entity_list():ForeachClient( + function(ent) + ent:Signal(1); + end, + function(ent) + -- Server thinks we're on Sabrina and are about to zone. + if(ent:GetBoatID() == 24056 and ent:GetY() > 500) then + return true; + end + return false; + end + ); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(98,2337,418,-22,-1); + end, + function(ent) + if(ent:GetBoatID() == 772 and ent:GetY() > 500) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/erudnext/Sentinel_Adrial.lua b/erudnext/Sentinel_Adrial.lua new file mode 100644 index 0000000..f99779d --- /dev/null +++ b/erudnext/Sentinel_Adrial.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Vasty Deep Inn can accommodate you. It is on the lower tier of the city."); + elseif(e.message:findi("tavern")) then + e.self:Say("The only establishment in Erudin of that sort is called Bluehawk's. It was primarily made to cater to travelers."); + elseif(e.message:findi("bank")) then + e.self:Say("The bank can be found in the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You can find provisions in the port district."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + end +end + diff --git a/erudnext/Sentinel_Aegeo.lua b/erudnext/Sentinel_Aegeo.lua new file mode 100644 index 0000000..f99779d --- /dev/null +++ b/erudnext/Sentinel_Aegeo.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Vasty Deep Inn can accommodate you. It is on the lower tier of the city."); + elseif(e.message:findi("tavern")) then + e.self:Say("The only establishment in Erudin of that sort is called Bluehawk's. It was primarily made to cater to travelers."); + elseif(e.message:findi("bank")) then + e.self:Say("The bank can be found in the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You can find provisions in the port district."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + end +end + diff --git a/erudnext/Sentinel_Belario.lua b/erudnext/Sentinel_Belario.lua new file mode 100644 index 0000000..f99779d --- /dev/null +++ b/erudnext/Sentinel_Belario.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Vasty Deep Inn can accommodate you. It is on the lower tier of the city."); + elseif(e.message:findi("tavern")) then + e.self:Say("The only establishment in Erudin of that sort is called Bluehawk's. It was primarily made to cater to travelers."); + elseif(e.message:findi("bank")) then + e.self:Say("The bank can be found in the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You can find provisions in the port district."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + end +end + diff --git a/erudnext/Sentinel_Cymbelin.lua b/erudnext/Sentinel_Cymbelin.lua new file mode 100644 index 0000000..f99779d --- /dev/null +++ b/erudnext/Sentinel_Cymbelin.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Vasty Deep Inn can accommodate you. It is on the lower tier of the city."); + elseif(e.message:findi("tavern")) then + e.self:Say("The only establishment in Erudin of that sort is called Bluehawk's. It was primarily made to cater to travelers."); + elseif(e.message:findi("bank")) then + e.self:Say("The bank can be found in the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You can find provisions in the port district."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + end +end + diff --git a/erudnext/Sentinel_Demitri.lua b/erudnext/Sentinel_Demitri.lua new file mode 100644 index 0000000..f99779d --- /dev/null +++ b/erudnext/Sentinel_Demitri.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Vasty Deep Inn can accommodate you. It is on the lower tier of the city."); + elseif(e.message:findi("tavern")) then + e.self:Say("The only establishment in Erudin of that sort is called Bluehawk's. It was primarily made to cater to travelers."); + elseif(e.message:findi("bank")) then + e.self:Say("The bank can be found in the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You can find provisions in the port district."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + end +end + diff --git a/erudnext/Sentinel_Gressio.lua b/erudnext/Sentinel_Gressio.lua new file mode 100644 index 0000000..f99779d --- /dev/null +++ b/erudnext/Sentinel_Gressio.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Vasty Deep Inn can accommodate you. It is on the lower tier of the city."); + elseif(e.message:findi("tavern")) then + e.self:Say("The only establishment in Erudin of that sort is called Bluehawk's. It was primarily made to cater to travelers."); + elseif(e.message:findi("bank")) then + e.self:Say("The bank can be found in the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You can find provisions in the port district."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + end +end + diff --git a/erudnext/Sentinel_Malvol.lua b/erudnext/Sentinel_Malvol.lua new file mode 100644 index 0000000..f99779d --- /dev/null +++ b/erudnext/Sentinel_Malvol.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Vasty Deep Inn can accommodate you. It is on the lower tier of the city."); + elseif(e.message:findi("tavern")) then + e.self:Say("The only establishment in Erudin of that sort is called Bluehawk's. It was primarily made to cater to travelers."); + elseif(e.message:findi("bank")) then + e.self:Say("The bank can be found in the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You can find provisions in the port district."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + end +end + diff --git a/erudnext/Sentinel_Mercutil.lua b/erudnext/Sentinel_Mercutil.lua new file mode 100644 index 0000000..f99779d --- /dev/null +++ b/erudnext/Sentinel_Mercutil.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Vasty Deep Inn can accommodate you. It is on the lower tier of the city."); + elseif(e.message:findi("tavern")) then + e.self:Say("The only establishment in Erudin of that sort is called Bluehawk's. It was primarily made to cater to travelers."); + elseif(e.message:findi("bank")) then + e.self:Say("The bank can be found in the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You can find provisions in the port district."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + end +end + diff --git a/erudnext/Sentinel_Phylos.lua b/erudnext/Sentinel_Phylos.lua new file mode 100644 index 0000000..f99779d --- /dev/null +++ b/erudnext/Sentinel_Phylos.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Vasty Deep Inn can accommodate you. It is on the lower tier of the city."); + elseif(e.message:findi("tavern")) then + e.self:Say("The only establishment in Erudin of that sort is called Bluehawk's. It was primarily made to cater to travelers."); + elseif(e.message:findi("bank")) then + e.self:Say("The bank can be found in the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You can find provisions in the port district."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + end +end + diff --git a/erudnext/Sentinel_Polix.lua b/erudnext/Sentinel_Polix.lua new file mode 100644 index 0000000..f99779d --- /dev/null +++ b/erudnext/Sentinel_Polix.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Vasty Deep Inn can accommodate you. It is on the lower tier of the city."); + elseif(e.message:findi("tavern")) then + e.self:Say("The only establishment in Erudin of that sort is called Bluehawk's. It was primarily made to cater to travelers."); + elseif(e.message:findi("bank")) then + e.self:Say("The bank can be found in the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You can find provisions in the port district."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + end +end + diff --git a/erudnext/Sentinel_Silvis.lua b/erudnext/Sentinel_Silvis.lua new file mode 100644 index 0000000..f99779d --- /dev/null +++ b/erudnext/Sentinel_Silvis.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Vasty Deep Inn can accommodate you. It is on the lower tier of the city."); + elseif(e.message:findi("tavern")) then + e.self:Say("The only establishment in Erudin of that sort is called Bluehawk's. It was primarily made to cater to travelers."); + elseif(e.message:findi("bank")) then + e.self:Say("The bank can be found in the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You can find provisions in the port district."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + end +end + diff --git a/erudnext/Sentinel_Tybal.lua b/erudnext/Sentinel_Tybal.lua new file mode 100644 index 0000000..f99779d --- /dev/null +++ b/erudnext/Sentinel_Tybal.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Vasty Deep Inn can accommodate you. It is on the lower tier of the city."); + elseif(e.message:findi("tavern")) then + e.self:Say("The only establishment in Erudin of that sort is called Bluehawk's. It was primarily made to cater to travelers."); + elseif(e.message:findi("bank")) then + e.self:Say("The bank can be found in the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You can find provisions in the port district."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + end +end + diff --git a/erudnext/Sentinel_Ursulo.lua b/erudnext/Sentinel_Ursulo.lua new file mode 100644 index 0000000..f99779d --- /dev/null +++ b/erudnext/Sentinel_Ursulo.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Vasty Deep Inn can accommodate you. It is on the lower tier of the city."); + elseif(e.message:findi("tavern")) then + e.self:Say("The only establishment in Erudin of that sort is called Bluehawk's. It was primarily made to cater to travelers."); + elseif(e.message:findi("bank")) then + e.self:Say("The bank can be found in the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You can find provisions in the port district."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + end +end + diff --git a/erudnext/Sentinel_Venci.lua b/erudnext/Sentinel_Venci.lua new file mode 100644 index 0000000..f99779d --- /dev/null +++ b/erudnext/Sentinel_Venci.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Vasty Deep Inn can accommodate you. It is on the lower tier of the city."); + elseif(e.message:findi("tavern")) then + e.self:Say("The only establishment in Erudin of that sort is called Bluehawk's. It was primarily made to cater to travelers."); + elseif(e.message:findi("bank")) then + e.self:Say("The bank can be found in the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You can find provisions in the port district."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + end +end + diff --git a/erudnext/Sinnkin_Highbrow.lua b/erudnext/Sinnkin_Highbrow.lua new file mode 100644 index 0000000..88a88de --- /dev/null +++ b/erudnext/Sinnkin_Highbrow.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Why. hello there fellow scholar! Don't you just love books? I am quite a bookworm myself. I could read forever! I am currently working my way through the 'T's."); + elseif(e.message:findi("erud's tonic")) then + e.self:Say("Erud's Tonic! That is none of your concern!"); + elseif(e.message:findi("phloatin")) then + e.self:Say("Phloatin Highbrow is my brother. He spends his time grogging it up."); + elseif(e.message:findi("kiss")) then + e.self:Say("Hey! What do think you are doing?! Help!"); + eq.attack(e.other:GetName()); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13121})) then + e.self:Say("It's about time you figured it out, genius! Maybe you should spend more time in the library. Here, take this tonic and get out of here before they see me giving it to you and turn us both inside out."); + -- confirmed live faction + e.other:Faction(e.self,694,5,0); -- Faction: Erudite Citizen + e.other:QuestReward(e.self,0,0,0,0,13118,500); -- Item: Eruds Tonic + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:erudnext ID:98036 -- Sinnkin_Highbrow diff --git a/erudnext/Soulbinder_Altira_Mamar.lua b/erudnext/Soulbinder_Altira_Mamar.lua new file mode 100644 index 0000000..80c75f8 --- /dev/null +++ b/erudnext/Soulbinder_Altira_Mamar.lua @@ -0,0 +1,15 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID(),0,1); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/erudnext/Stofo_Olan.lua b/erudnext/Stofo_Olan.lua new file mode 100644 index 0000000..b423a76 --- /dev/null +++ b/erudnext/Stofo_Olan.lua @@ -0,0 +1,33 @@ +-- Enchanter epic weapon Staff of the Serpent lead-in quest + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day, I have discovered something truly wonderful! If I only had the materials required so I can copy my notes and send them to my teacher."); + elseif(e.message:findi("discover")) then + e.self:Say("I was researching a new spell, and discovered new information concerning the history of the Serpent."); + elseif(e.message:findi("material")) then + e.self:Say("The materials I need are a mechanical pen, ink of the dark, and white paper. Bring me those and I will give you a copy of this information."); + elseif(e.message:findi("teacher")) then + e.self:Say("My teacher is Jeb Lumsed. He was last seen in the regions of the newly discovered lands of Kunark. If you wish to find him that is where you must seek him out."); + elseif(e.message:findi("ink of the dark")) then + e.self:Say("Dark illusions, thievery, and the plague of the living will guide you. These are the only hints I can provide. Safe travels and may you be protected from all maladies."); + elseif(e.message:findi("mechanical pen")) then + e.self:Say("The answer you seek is in your question. If you are unable to figure it out, then perhaps you are not ready to travel along this path."); + elseif(e.message:findi("white paper")) then + e.self:Say("It may seem like ordinary paper at first. However, this paper was enchanted by a friend of mine. This paper was given to a lass in the Karanas to help with her writings. The paper will guide her hands and draw forth the thoughts in her mind. I no longer have any and I have not had contact with my friend in some time. Search them out."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + -- check for ink of the dark, mechanical pen and white paper + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10600,item2 = 10601,item3 = 10602})) then + e.self:Say("Yes, that is what I wanted. Here, take these notes. My teacher will be very interested if he is shown what I have found."); + e.other:Faction(e.self,404,100); -- Faction: True Spirit + e.other:QuestReward(e.self,0,0,0,0,10603,5000); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EOF Zone: erudnext ID: 24013 NPC: Stofo_Olan diff --git a/erudnext/Tiam_Khonsir.lua b/erudnext/Tiam_Khonsir.lua new file mode 100644 index 0000000..c2ad052 --- /dev/null +++ b/erudnext/Tiam_Khonsir.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". Are you a follower of our order, the Deepwater Knights, servants of the Ocean Lord, Prexus?"); + elseif(e.message:findi("yes")) then + e.self:Say("That is good, " .. e.other:GetCleanName() .. ". Our followers are few but our faith is strong. With the efforts of those few, our destiny may be reached in time. We must walk with perseverence and devotion, much like the tides that, over time, can destroy a mighty stone cliff. Have you [come to serve our Lord], " .. e.other:GetCleanName() .. "?"); + elseif(e.message:findi("come to serve our lord")) then + e.self:Say("Then I shall send you on a quest to prove your devotion. No doubt you have seen the vermin kobolds scuttling about the land as fleas upon a mangy dog. The kobolds have a lair on our continent from which they launch their wantonly destructive raids. You are to enter that lair and destroy as many of these dogs as you can. For each molar you bring me, you will receive praise, admiration, and perhaps some coin."); + elseif(e.message:findi("quest of greater importance")) then + e.self:Say("Very well then, " .. e.other:GetCleanName() .. ", you may be able to help us. Go to Breya and tell her I sent you. She will brief you.") + elseif(e.message:findi("harpoon no more")) then + e.self:Say("Well, " .. e.other:GetCleanName() .. ", that is unfortunate. Quite a pity, indeed.") + end +end + +function event_trade(e) + local item_lib = require("items"); + local ranitem = 0; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1761})) then -- Kobold Molar + e.self:Say("Wonderful work, friend " .. e.other:GetCleanName() .. ". One less land dwelling, flea ridden, primitive for our wondrous lord to sweep aside when the apocalypse is upon us. Here is your reward. Perhaps if you gather enough molars, we can offer you a [quest of greater importance]."); + if(math.random(4) == 1) then + ranitem = eq.ChooseRandom(3120,3123,3115,3117,3122,3113,3116,3118,3121,3124,3119,3108,3107,3111,3103,3105,3110,3101,3104,3106,3109,3112,3132,3135,3127,3129,3134,3125,3128,3130,3133,3136,3131); -- Item(s): Small Ringmail Sleeves (3120), Small Ringmail Pants (3123), Small Ringmail Neckguard (3115), Small Ringmail Mantle (3117), Small Ringmail Gloves (3122), Small Ringmail Coif (3113), Small Ringmail Coat (3116), Small Ringmail Cape (3118), Small Ringmail Bracelet (3121), Small Ringmail Boots (3124), Small Ringmail Belt (3119), Ringmail Sleeves (3108), Ringmail Skirt (3107), Ringmail Pants (3111), Ringmail Neckguard (3103), Ringmail Mantle (3105), Ringmail Gloves (3110), Ringmail Coif (3101), Ringmail Coat (3104), Ringmail Cape (3106), Ringmail Bracelet (3109), Ringmail Boots (3112), Large Ringmail Sleeves (3132), Large Ringmail Pants (3135), Large Ringmail Neckguard (3127), Large Ringmail Mantle (3129), Large Ringmail Gloves (3134), Large Ringmail Coif (3125), Large Ringmail Coat (3128), Large Ringmail Cape (3130), Large Ringmail Bracelet (3133), Large Ringmail Boots (3136), Large Ringmail Belt (3131) + end + e.other:Faction(e.self,242,7,0); -- Deepwater Knights + e.other:Faction(e.self,266,1,0); -- High Council of Erudin + e.other:Faction(e.self,265,-1,0);-- Heretics + e.other:QuestReward(e.self,0,0,0,0,ranitem,2000); + e.other:GiveCash(12,14,5,0); -- Copper x 12, Silver x 14, Gold x 5 + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:erudnext ID:98051 -- Tiam_Khonsir diff --git a/erudnext/Ticar_Lorestring.lua b/erudnext/Ticar_Lorestring.lua new file mode 100644 index 0000000..fb3c468 --- /dev/null +++ b/erudnext/Ticar_Lorestring.lua @@ -0,0 +1,14 @@ +--Quest Name: Bard Mail Quest + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. " - Are you [interested] in helping the League of Antonican Bards by delivering some [mail]?"); + elseif(e.message:findi("mail") and not e.message:findi("deliver") and not e.message:findi("Qeynos")) then + e.self:Say("The League of Antonican Bards has a courier system made up of travelers and adventurers. We pay good gold to anyone who will take messages from bards such as myself to one of our more central offices. Are you [interested]?"); + elseif(e.message:findi("interested")) then + e.self:Say("I have messages that need to go to - well, right now I have one that needs to go to Qeynos. Will you [deliver] mail to [Qeynos] for me?"); + elseif(e.message:findi("deliver") and e.message:findi("Qeynos")) then + e.self:Say("Take this letter to Tralyn Marsinger in Qeynos. You can find him at the bard guild hall. I am sure he will compensate you for your troubles."); + e.other:SummonCursorItem(18151); -- Item: A Bardic Letter (Qeynos) + end +end diff --git a/erudnext/Tol_Nicelot.lua b/erudnext/Tol_Nicelot.lua new file mode 100644 index 0000000..6e5f938 --- /dev/null +++ b/erudnext/Tol_Nicelot.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I have no time to waste with strangers!"); + elseif(e.message:findi("moodoro")) then + e.self:Say("Yes, I knew Moodoro Finharn. He used to be a good friend until he started visiting Qeynos and indulging in human vices. He was executed for crimes against the state. Not even his sister Nolusia could get the charge dropped. There have been some who say he escaped execution and lives in Qeynos. That is insane babbling."); + elseif(e.message:findi("nolusia")) then + e.self:Say("Nolusia is a member of the Craftkeepers. She lives as a guildmaster in Erudin Palace."); + end +end + +-- END of FILE Zone:erudnext ID:98035 -- Tol_Nicelot \ No newline at end of file diff --git a/erudnext/Tomekeeper_Danl.lua b/erudnext/Tomekeeper_Danl.lua new file mode 100644 index 0000000..d3a6f60 --- /dev/null +++ b/erudnext/Tomekeeper_Danl.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day, citizen. Please remember to keep your voice down in our library. Feel free to browse the extensive collection of books we have on display. Learning is all about you. Our library is the greatest collection of educational literature in the world, as you can no doubt see. If you come across any [rare finds] we may be interested in purchasing them."); + elseif(e.message:findi("rare find")) then + e.self:Say("Yes, any rare books, tomes, essays, or other literature you find may be of interest to me. Although the finds I am interested in are quite high profile and would most likely only be found in the possession of very powerful or influential beings. Give me what you find and I will pay you what it is worth to us."); + elseif(e.message:findi("lheao")) then + e.self:Say("Lheao was my predecessor here at the library of Erudin. He has since retired, just a few years ago. Im sure he would be most impressed with your find and other insightful conversation on the subject. Although Im not sure one of your profession would be interested in such a scholarly endeavor, no offense. If you are interested, find him and tell him you found the book Immortals. Im not sure where he has retired to, but I hear it is near an ocean somewhere."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18195})) then + e.self:Emote("gasps at the sight of the rare book. 'This is a great find indeed! I can only imagine who you had to.. persuade to give you the book. Our library would be very interested in acquiring this and I am prepared to give you this referral that marks you as a friend of the library. If only [Lheao] could see this.'"); + e.other:QuestReward(e.self,3,0,0,0,1682); -- Danl's Reference + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- End of File \ No newline at end of file diff --git a/erudnext/Vynon_Estaliun.lua b/erudnext/Vynon_Estaliun.lua new file mode 100644 index 0000000..15267bf --- /dev/null +++ b/erudnext/Vynon_Estaliun.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I welcome you to the temple of the Peacekeepers. The ways of peace and tranquility are ours to uphold. May you find a place among us. We have much work to do. If you are a paladin of this temple. you must [desire to face fear]."); + elseif(e.message:findi("desire to face fear")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- requires amiably + e.self:Say("Very well. You shall face it. In Toxxulia Forest. you shall seek out Kerra Ridge. Once found. you will bring me the tail of a catfisher. Somehow. you shall find a way. They are weak. but they only work near the opposite side of the bridge. along the water's edge."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You have not done much to upset the Peacekeepers of this temple, but we must ask you to prove yourself to us before we may discuss things such as this."); + else + e.self:Say("Leave my sight at once! You are no friend to the Peacekeepers of the Temple of Divine Light."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13884})) then -- requires amiably + e.self:Say("Good work. I knew you could do it. Take this as reward."); + -- Confirmed Live Factions + e.other:Faction(e.self,298,5,0); -- Faction: Peace Keepers + e.other:Faction(e.self,266,1,0); -- Faction: High Council of Erudin + e.other:Faction(e.self,265,-1,0); -- Faction: Heretics + e.other:QuestReward(e.self,math.random(10),0,0,0,eq.ChooseRandom(13002,13053),2000); -- Item: Torch, Brass Ring + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:erudnext ID:98043 -- Vynon_Estaliun diff --git a/erudnext/Weligon_Steelherder.lua b/erudnext/Weligon_Steelherder.lua new file mode 100644 index 0000000..5cef5c1 --- /dev/null +++ b/erudnext/Weligon_Steelherder.lua @@ -0,0 +1,104 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! This is the Deepwater Temple. Here you shall find the wisdom and courage of Prexus, the Ocean Lord. I am glad to see you have an interest. Forgive me if I cut our conversation short, but I have many [Deepwater tasks] to complete."); + elseif(e.message:findi("deepwater task")) then + if(e.other:GetFactionValue(e.self) >= 200) then + e.self:Say("We here at the Deepwater Temple must tend to the [Peacekeeper battlestaff] and the [Deepwater harpoon] as well as other duties such as [ocean protection]. There is always something we must do."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("There is no reason to dislike you, but we of the Deepwater Knights must see more done for our cause before we truly accept you."); + else + e.self:Say("We, the Deepwater Knights, know of your vile ways. You had best leave while you can."); + end + elseif(e.message:findi("peacekeeper.* staff")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Every sentinel in Erudin carries a High Guard battlestaff. The creation of these weapons is the duty of the Deepwater Temple and the Temple of Divine Light. Our portion of the task is to send young members to [collect the Pearls of Odus]. These are imbedded into the staff and used to store mystical power."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("There is no reason to dislike you, but we of the Deepwater Knights must see more done for our cause before we truly accept you."); + else + e.self:Say("We, the Deepwater Knights, know of your vile ways. You had best leave while you can."); + end + elseif(e.message:findi("prove allegiance.* erudin")) then + if(e.other:GetFactionValue(e.self) >= 350) then + e.self:Say("Yes, you are ready. We have heard rumors of a great bridge which will connect Antonica with Odus!! This must not happen! We must shield ourselves from the savage and evil ways of the other races. They say that a list exists. A list of three grand architects who wish to see this bridge erected. You will venture to Qeynos and find the list, then exterminate these three men. Return the list along with their heads and the Deepwater Harpoon is yours. Go!!"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("There is no reason to dislike you, but we of the Deepwater Knights must see more done for our cause before we truly accept you."); + else + e.self:Say("We, the Deepwater Knights, know of your vile ways. You had best leave while you can."); + end + elseif(e.message:findi("ocean protection")) then + if(e.other:GetFactionValue(e.self) >= 150) then + e.self:Say("In the name of Prexus, we are sworn to protect all ocean creatures. We have heard reports of a shark carrying a deadly malady. We believe she is pregnant. If she delivers her young to the ocean, it will endanger all other creatures. We need to find a young paladin to [hunt the diseased shark]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("There is no reason to dislike you, but we of the Deepwater Knights must see more done for our cause before we truly accept you."); + else + e.self:Say("We, the Deepwater Knights, know of your vile ways. You had best leave while you can."); + end + elseif(e.message:findi("hunt.* diseased shark")) then + if(e.other:GetFactionValue(e.self) >= 150) then + e.self:Say("Ah, yes! Take this bag with you. When you have collected the remains of the diseased shark and no fewer than three of her young in it, combine them in it and return it to me. Then, you shall get your reward."); + e.other:SummonCursorItem(17938); -- Item: Empty Shark Bag + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("There is no reason to dislike you, but we of the Deepwater Knights must see more done for our cause before we truly accept you."); + else + e.self:Say("We, the Deepwater Knights, know of your vile ways. You had best leave while you can."); + end + elseif(e.message:findi("collect.* pearls.* odus")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Then venture to the harbor of Erudin. There, you shall dive into the shark-infested water and search for the Pearls of Odus. They lie upon the grounds of our waters. Fill the bag I have given you, combine it, and return it to me. Good luck."); + e.other:SummonCursorItem(17939); -- Item: Empty Bag + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("There is no reason to dislike you, but we of the Deepwater Knights must see more done for our cause before we truly accept you."); + else + e.self:Say("We, the Deepwater Knights, know of your vile ways. You had best leave while you can."); + end + elseif(e.message:findi("honored member")) then + if(e.other:GetFactionValue(e.self) >= 50) then + e.self:Say("Yes. The light of righteousness shines from within you."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("There is no reason to dislike you, but we of the Deepwater Knights must see more done for our cause before we truly accept you."); + else + e.self:Say("We, the Deepwater Knights, know of your vile ways. You had best leave while you can."); + end + elseif(e.message:findi("harpoon no more")) then + e.self:Say("The Deepwater harpoon's distribution has been restricted by order of the High Council. The last one awarded was to an outsider, the brave and noble paladin, Sentry Xyrin. She hailed from the Temple of Marr."); + elseif(e.message:findi("deepwater harpoon")) then + e.self:Say("We do not award the Deepwater harpoon to just any paladin. Nobility is all well and good, but you must still prove yourself. We have heard rumors of a very distressing matter. Perhaps it is your calling. Are you ready to [prove allegiance to Erudin] and earn the Deepwater harpoon?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "I called for the list of engineers and all three of their heads!"; + + if(e.other:GetFactionValue(e.self) >= 150 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13876})) then -- requires amiably + e.self:Say("Very good, my dear young follower of Prexus. You will learn that swimming is a strong skill among the Deepwater Knights. Keep this up and you may wield a Deepwater harpoon soon enough. For now, you shall wear this barnacle breastplate. It is strong enough to aid a young knight in his quest for perfection."); + -- Confirmed Live Factions + e.other:Faction(e.self,242,20,0); -- Deepwater Knights + e.other:Faction(e.self,266,3,0); -- High Council of Erudin + e.other:Faction(e.self,265,-3,0); -- Heretics + e.other:QuestReward(e.self,0,0,0,0,12194,2500); -- Item: Barnacle Breastplate + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13879})) then -- requires amiably, Pearls of Odus Handin: full bag of pearls + e.self:Say("Fine work, Deepwater Knight. You have proven yourself an excellent addition to our ranks. These shall be used to create more Peacekeeper staffs. Oh yes, I almost forgot your reward. Here you are. Now, go, and serve Prexus."); + -- Confirmed Live Factions + e.other:Faction(e.self,242,5,0); -- Deepwater Knights + e.other:Faction(e.self,266,1,0); -- High Council of Erudin + e.other:Faction(e.self,265,-1,0); -- Heretics + e.other:QuestReward(e.self,9,3,1,0,eq.ChooseRandom(2104, 2106, 2108, 2111, 2112),1000);-- Item(s): Patchwork Tunic (2104) + elseif(e.other:GetFactionValue(e.self) >= 350 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18835,item2 = 13838,item3 = 13839,item4 = 13840},1,text1)) then -- requires amiably, Bridge Quest Handin: 3 heads + sealed list + e.self:Say("It is done!! I pray to Prexus that the knowledge of the bridge's design has departed from this world with the passing of these intelligent men. A pity they had to die. As for you, the other states may not tolerate your presence any longer, but you have proven that allegiance to Erudin is paramount among all Erudites. I am afraid the [harpoon is no more]!! I bestow upon you Deep Six, my personal cutlass!! May you wield it in the name of Erudin."); + -- Confirmed Live Factions + e.other:Faction(e.self,242,25,0); -- Deepwater Knights + e.other:Faction(e.self,266,3,0); -- High Council of Erudin + e.other:Faction(e.self,265,-3,0); -- Heretics + e.other:QuestReward(e.self,0,0,0,0,5377,100); -- Item: Deep Six Cutlass + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18725})) then -- Tattered Note + e.self:Say("Greetings and welcome to the Deepwater Knights. Here is your guild tunic. Wear it with pride, and Prexus will keep a watchful eye on you. Go find sister Laoni, she will help you get started with your studies."); + e.other:Faction(e.self,242,100,0); -- Deepwater Knights + e.other:Faction(e.self,266,15,0); -- High Council of Erudin + e.other:Faction(e.self,265,-15,0); -- Heretics + e.other:QuestReward(e.self,0,0,0,0,13544,20); -- Old Blue Tunic* + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:erudnext ID:24065 -- Weligon_Steelherder diff --git a/erudnext/Weltria_Ostriss.lua b/erudnext/Weltria_Ostriss.lua new file mode 100644 index 0000000..36d3932 --- /dev/null +++ b/erudnext/Weltria_Ostriss.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day. " .. e.other:GetCleanName() .. ". I assist in maintaining an accurate collection of historical tomes here in the great library of Erudin. One of our citizens recently escaped the dungeons of the Kobold warrens and tells of a Kobold lore keeper who keeps a collection of scrolls detailing the history of their kind. Are you capable of obtaining those scrolls for our library?"); + elseif(e.message:findi("am capable")) then + e.self:Say("Take this case and return it to me when you have collected all of the scrolls."); + e.other:SummonCursorItem(17058); -- Item: Large Scroll Case + end +end + + function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31825})) then + e.self:Say("You have my gratitude, " .. e.other:GetCleanName() .. "! This will make a valuable addition to our historical volumes and perhaps offer some insight into the workings of Kobold society."); + e.other:Faction(e.self,289,5); -- Faction: Merchants of Erudin + e.other:Faction(e.self,266,3); -- Faction: High Council of Erudin + e.other:Faction(e.self,267,3); -- Faction: High Guard of Erudin + e.other:QuestReward(e.self,0,0,0,50,0,1500); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:erudnext ID:98015 -- Weltria_Ostriss diff --git a/erudnext/a_diseased_shark.lua b/erudnext/a_diseased_shark.lua new file mode 100644 index 0000000..82d407a --- /dev/null +++ b/erudnext/a_diseased_shark.lua @@ -0,0 +1,6 @@ +function event_death_complete(e) + -- spawn 3 young sharks for Barnacle Breastplate quest combine + eq.spawn2(24121,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.spawn2(24121,0,0,e.self:GetX()+10,e.self:GetY()+10,e.self:GetZ(),e.self:GetHeading()); + eq.spawn2(24121,0,0,e.self:GetX()-10,e.self:GetY()-10,e.self:GetZ(),e.self:GetHeading()); +end diff --git a/erudnext/player.lua b/erudnext/player.lua new file mode 100644 index 0000000..b725e35 --- /dev/null +++ b/erudnext/player.lua @@ -0,0 +1,33 @@ +function event_enter_zone(e) + if(e.self:GetBoatID() == 772 or e.self:GetBoatID() == 773) then + eq.signal(24056,3); -- NPC: Sabrina + else + eq.signal(24056,4); -- NPC: Sabrina + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:SetBoatID(772); + e.self:SetBoatName("Sea_King000"); + eq.debug("Setting boat to Sea_King000 for " .. e.self:GetName() .. " at " .. e.self:GetX() .. "," .. e.self:GetY() .. "," .. e.self:GetZ() .. "", 1); + + elseif(e.signal == 2) then + e.self:SetBoatID(773); + e.self:SetBoatName("Golden_Maiden000"); + eq.debug("Setting boat to Golden_Maiden000 for " .. e.self:GetName() .. " at " .. e.self:GetX() .. "," .. e.self:GetY() .. "," .. e.self:GetZ() .. "", 1); + end +end + +function event_board_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug(" At: " .. hour .. ":" .. minute .. " BoatID: " .. e.boat_id .. " was boarded. Its name is: " .. e.self:GetBoatName() .. ".", 1); +end + +function event_leave_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + eq.debug(" At: " .. hour .. ":00 I left BoatID: " .. e.boat_id .. ".", 1); +end \ No newline at end of file diff --git a/erudnint/Agryn_Moonfield.lua b/erudnint/Agryn_Moonfield.lua new file mode 100644 index 0000000..e675ddc --- /dev/null +++ b/erudnint/Agryn_Moonfield.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Bank of Erudin. I am Agryn, the bank manager. How may I be of service to you?"); + elseif(e.message:findi("guild coin")) then + e.self:Say("If you do not have your guild coin, you must go and ask the guildmaster for one.") + elseif(e.message:findi("vasty deep water")) then + e.self:Say("You must have been sent by one of the guilds. All you need to do is give me your guild coin and I shall exchange it for the Vasty Deep water."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13989})) then + e.self:Say("Ah!! A Peacekeeper. I have some Vasty Deep water sitting out already. Here you are. Do not let it fall into the wrong hands."); + e.other:QuestReward(e.self,0,0,0,0,13939,100); -- Item: Clear Water + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/erudnint/Akbaq_Salid.lua b/erudnint/Akbaq_Salid.lua new file mode 100644 index 0000000..8677875 --- /dev/null +++ b/erudnint/Akbaq_Salid.lua @@ -0,0 +1,52 @@ +-- Quest for Akbaq_Salid in erudnint - Titan Samples (good) + + +function event_say(e) + if (e.other:GetFaction(e.self) <= 5) then --Require indifferent or greater faction + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I have recently returned to Erudin since hearing word of the titan spirits that inhabit the Stonebrunt Mountains. Should you be heading in that direction there are some [samples] that I am interested in acquiring."); + elseif(e.message:findi("sample")) then + e.self:Say("The titan spirits of the Stonebrunt Mountains appear in several various animal forms seemingly with different areas of influence in the spirit world. I am interested in conducting some experiments on the hides of the giant leopard titan and the giant sabretooth titan. Once I have acquired those hides I will seek to conduct experiments on the [others]."); + elseif(e.message:findi("other")) then + e.self:Say("Once I have finished my studies of the feline titans pelts I am interested in experimenting with the hides of the strongest of the stonebrunt titans. the gigantic gorilla and the gargantuan panda. The [ancient snake] that inhabits those mountains is another matter that you may be interested in as well."); + elseif(e.message:findi("ancient snake")) then + e.self:Say("I believe I have uncovered a process with which to harness the mystical properties of the scales of the snake titan so that they can be fashioned into a powerful robe. If you bring me the ancient snake skin and some platinum thread I am sure there will be enough material to craft multiple robes and I shall reward you with one for your assistance."); + end + else + if(e.message:findi("hail")) then + e.self:Say("I do not know you well enough to entrust you with such a quest, yet."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if (e.other:GetFaction(e.self) <= 5) then -- Require indifferent or greater faction + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6960,item2 = 6946})) then -- astral cloak of the titans + e.self:Say("These are the pelts of the most powerful of the known Titan spirits. You have done well, " .. e.other:GetCleanName() .. ", and you will be rewarded for your services."); + e.other:Faction(e.self,233,5); -- Crimson hands + e.other:Faction(e.self,266,1); -- High Council of Erudin + e.other:Faction(e.self,265,-1); -- Heretics decreased + e.other:Faction(e.self,267,1); -- High Guards of Erudin + e.other:QuestReward(e.self,0,0,0,0,2573,500); -- Item: Astral Cloak of the Titans + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 6958,item2 = 6964})) then -- astral leggings of the titans + e.self:Say("Excellent! These pelts are in fine condition. I was unsure what would happen to the physical forms of the titans when slain in this realm."); + e.other:Faction(e.self,233,5); -- Crimson hands + e.other:Faction(e.self,266,1); -- High Council of Erudin + e.other:Faction(e.self,265,-1); -- Heretics decreased + e.other:Faction(e.self,267,1); -- High Guards of Erudin + e.other:QuestReward(e.self,0,0,0,0,2575,500); -- Item: Astral Leggings of the Titans + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 6947,item2 = 12097})) then -- scaled robe of the elder serpent + e.self:Say("Ah! I have been anxiously awaiting the oppurtunity to craft some powerful robes from these mystical scales."); + e.other:Faction(e.self,233,5); -- Crimson hands + e.other:Faction(e.self,266,1); -- High Council of Erudin + e.other:Faction(e.self,265,-1); -- Heretics decreased + e.other:Faction(e.self,267,1); -- High Guards of Erudin + e.other:QuestReward(e.self,0,0,0,0,2574,500); -- Item: Scaled Robe of the Elder Serpent + end + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:erudnint ID:23077 -- Akbaq_Salid diff --git a/erudnint/Chief_Adair.lua b/erudnint/Chief_Adair.lua new file mode 100644 index 0000000..44a3012 --- /dev/null +++ b/erudnint/Chief_Adair.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail. citizen!! Have you business with me? If so. please speak quickly and be on your way."); + end +end + +-- END of FILE Zone:erudnint ID:24051 -- Chief_Adair \ No newline at end of file diff --git a/erudnint/Ghanlin_Skyphire.lua b/erudnint/Ghanlin_Skyphire.lua new file mode 100644 index 0000000..9896be3 --- /dev/null +++ b/erudnint/Ghanlin_Skyphire.lua @@ -0,0 +1,15 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18727})) then -- Tattered Note + e.self:Say("Greetings. I am Ghanlin Skyphire, Master Wizard of the Crimson Hands. All of us here have devoted our lives to the studies of the arcane and mystical. Let's get you started. Here's your training robe. Now, go find Raskena. She'll help train you and give you your first lesson."); + e.other:Faction(e.self,233,100,0); --Crimson Hands + e.other:Faction(e.self,266,10,0); --High Council of Erudin + e.other:Faction(e.self,265,-15,0); --Heretics + e.other:Faction(e.self,267,15,0); --High Guard of Erudin + e.other:QuestReward(e.self,0,0,0,0,13550,20); --Old Used Robe* + end + item_lib.return_items(e.self, e.other, e.trade); +end + +--END of FILE Zone:erudnint ID:24040 -- Ghanlin_Skyphire diff --git a/erudnint/Josper_Kenshed.lua b/erudnint/Josper_Kenshed.lua new file mode 100644 index 0000000..91dec1b --- /dev/null +++ b/erudnint/Josper_Kenshed.lua @@ -0,0 +1,45 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Come forward and speak. What is it you seek within these walls? Let it be the knowledge of wizardry. for that is what we are. Only a [servant of wizardry] should be within these walls."); + elseif(e.message:findi("servant of wizardry")) then + e.self:Say("A servant. you say? If you be a young apprentice. perhaps you might assist me? I could use you to [collect components]. If you believe yourself to be beyond such things. you may wish to assist me with a [special matter]."); + elseif(e.message:findi("collect component") or e.message:findi("special matter")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- requires amiably + if(e.message:findi("collect component")) then + e.self:Say("Of course you may assist me!! We have much need of a certain item which can only be found in the frigid peaks of Everfrost. There you shall find creatures called ice goblins. Take this bag and fill it with ice goblin beads and be sure to combine them before you return them. Well, then... Off with you!! And be quick about it and I shall give you a fine wizard's weapon. None of this rust-covered garbage offered by our associates!"); + e.other:SummonCursorItem(17944); -- Item: Empty Bag + elseif(e.message:findi("special matter")) then + e.self:Say("It seems my last apprentice was sent into Toxxulia to test a spell I call Ice Capade, well, everyone else calls it Column of Frost, how droll! Anyway... he never returned. I fear he is nothing more than BONES, though I hope I'm wrong. Could you find good old Ilanic and ask him, [where is the scroll]?! I do not wish it to fall into enemy hands. Return it and I shall let you keep the scroll. Oh yes, It is only half of a spell. I forgot to send him the full scroll. I imagine that is why he was not victorious."); + end + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Crimson Hands have no quarrel with you, but we cannot truly trust you as yet.") + else + e.self:Say("The Crimson Hands will have nothing to do with you. Perhaps only your death shall improve our relations.") + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13898})) then -- bag of ice necklaces + e.self:Say("Well done, my young apprentice. I call you apprentice for you are nothing but a spark to my fire. This is the final component for my greatest creation. AHA!! I call it - iced tea!! Never again shall I boil under the hot sun. As for you, take this. It should serve you well. Now go away. There is no iced tea for you."); + -- Confirmed Live Factions + e.other:Faction(e.self,233,15); --faction with Crimson hands increased + e.other:Faction(e.self,266,1); --faction with High Council of Erudin increased + e.other:Faction(e.self,265,-2); --faction with Heretics decreased + e.other:Faction(e.self,267,2); --faction with High Guards of Erudin increased + e.other:QuestReward(e.self,0,7,0,0,12208,1000); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12207})) then -- Half of a Spell + e.self:Say("I see you found Ilanic. How is he doing? I hope he is well. As for you, you may have the spell Ice Capa... err, I mean Column of Frost. Don't go and lose it now."); + -- Confirmed Live Factions + e.other:Faction(e.self,233,5); --faction with Crimson hands increased + e.other:Faction(e.self,266,1); --faction with High Council of Erudin increased + e.other:Faction(e.self,265,-1); --faction with Heretics decreased + e.other:Faction(e.self,267,1); --faction with High Guards of Erudin increased + e.other:QuestReward(e.self,0,0,0,0,15380,1000); -- Spell: Column of Frost + end + item_lib.return_items(e.self, e.other, e.trade); +end + +--END of FILE Zone:erudnint ID:24072 -- Josper_Kenshed diff --git a/erudnint/Lanken_Rjarn.lua b/erudnint/Lanken_Rjarn.lua new file mode 100644 index 0000000..95121a3 --- /dev/null +++ b/erudnint/Lanken_Rjarn.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks up irritably. 'I do not have time to speak with thee. I have a problem on my hands. Feel free to speak with any of my trainers.'"); + elseif(e.message:findi("problem")) then + e.self:Say("My problems are of no concern of yours. but if you must know it deals with Nolusia's brother. I can tell you no more. Leave me be."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18729})) then + e.self:Say("Welcome to the Craft Keepers! You have much to learn. and I'm sure you are anxious to get started. Here's your training robe. Go see Nolusia. she'll give you your first lesson."); + e.other:Faction(e.self,231,100,0); -- Craftkeepers + e.other:Faction(e.self,266,10,0); -- High Council of Erudin + e.other:Faction(e.self,265,-15,0); -- Heretics + e.other:Faction(e.self,267,15,0); -- High Guard of Erudin + e.other:QuestReward(e.self,0,0,0,0,13549,20); -- Item: Old Patched Robe* + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:erudnint ID:24032 -- Lanken_Rjarn diff --git a/erudnint/Mairee_Silentone.lua b/erudnint/Mairee_Silentone.lua new file mode 100644 index 0000000..fbe5cc6 --- /dev/null +++ b/erudnint/Mairee_Silentone.lua @@ -0,0 +1,24 @@ +-- Hammer of the Ancients - ranger epic + +function event_say(e) + if(e.message:findi("ancient hammer")) then + e.self:Say("Yes, the ancient hammer. I heard something about that. Do you mind if I take a look at it?"); + end +end + + + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20478})) then + e.self:Emote("makes a few marks on the hammer, and all the while you can hear a muffled cursing coming from the hammer head. 'Yes, it is an ancient dwarf's hammer. Interesting artifact. I've marked it to keep it stable while you retrieve something for me. You need to travel to the Plane of Sky and find a swirling sphere of color. Bring it and the hammer back to me.'"); + e.other:QuestReward(e.self,0,0,0,0,20479); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20479,item2 = 20494})) then + e.self:Emote("holds the sphere and makes intricate marks and patterns on it, eventually turning the entire crystal clear. She rolls it across the hammer, raising a ringing sound in the room. 'There. Now take the hammer back to Kinlo. He'll know what to do from here. Good luck to you.'"); + e.other:QuestReward(e.self,0,0,0,0,20485); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EOF zone: erudnint ID: 23019 NPC: Mairee_Silentone \ No newline at end of file diff --git a/erudnint/Markus_Jaevins.lua b/erudnint/Markus_Jaevins.lua new file mode 100644 index 0000000..b687d2a --- /dev/null +++ b/erudnint/Markus_Jaevins.lua @@ -0,0 +1,47 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am the overseer of the great city of Erudin. You will address me in proper manner. HAIL!!"); + elseif(e.message:findi("crime")) then + e.self:Say("Oh, yes. We here in Erudin have no crime. Actually, it is a very low crime rate. Most of those crimes are committed by the defective brains of [heretics] or inferior, non-Erudite races."); + elseif(e.message:findi("heretic")) then + e.self:Say("The heretics are our sworn enemies. Their ancient origins are our own, however, they are the mad Erudites who chose the dark side of magic called necromancy. We, the magicians, caught one snooping in the palace just last week. He is now our [prisoner]."); + elseif(e.message:findi("prisoner")) then + e.self:Say("The infidel was memorizing our spells to take to the rest of the heretic scum. He will finally be [purged] today. Could you please go to the cells here in the palace and ask Jail Master Lius to give you the heretic's remains?"); + elseif(e.message:findi("purged")) then + e.self:Say("To be purged is to take all the evil from ones body and set your soul free. Through magical means, the Erudite Cleansers pull the accused's organs out through the mouth. When all is done, you can be assured the body is cleansed of all evil."); + elseif(e.message:findi("escaped")) then + e.self:Say("Escaped!! This is not good. The sentinels will not find him in time. You must find him. When you find him, release his soul and rid his body of evil any way you can. Bring me proof and all will be well."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18728})) then -- Tattered Note + e.self:Say("Welcome. young one! I see you show interest in the circle of magic. Nowhere upon Norrath will you find a greater school than this - the Gatecallers. You shall wear this tunic as a sign that you have begun the training of this circle. Remember. the power of the Gatecaller is the power of summoning. Go find Vasile. he will help teach you the basics of summoning. Good luck, friend!"); + e.other:Faction(e.self,254,100,0); -- gate callers + e.other:Faction(e.self,267,15,0); -- high guard of erudin + e.other:Faction(e.self,266,10,0); -- high council of erudin + e.other:Faction(e.self,265,-15,0); -- heretics + e.other:QuestReward(e.self,0,0,0,0,13548,20); -- Old Torn Robe* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13127})) then -- Bones (Magician) + e.self:Say("This is fine work, young one. You keep this up and you shall be knighted before long."); + -- Confirmed Live Factions + e.other:Faction(e.self,254,25,0); -- gate callers + e.other:Faction(e.self,267,3,0); -- high guard of erudin + e.other:Faction(e.self,266,2,0); -- high council of erudin + e.other:Faction(e.self,265,-3,0); -- heretics + e.other:QuestReward(e.self,0,math.random(5),0,0,0,5000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13128})) then -- Bones (Heretic) + e.self:Say("This is fine work, young one. You keep this up and you shall be knighted before long."); + -- Confirmed Live Factions + e.other:Faction(e.self,254,50,0); -- gate callers + e.other:Faction(e.self,267,7,0); -- high guard of erudin + e.other:Faction(e.self,266,5,0); -- high council of erudin + e.other:Faction(e.self,265,-7,0); -- heretics + e.other:QuestReward(e.self,0,math.random(5),0,0,0,5000); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EOF zone: erudnint ID: 23037 npc: Markus_Jaevins diff --git a/erudnint/Nolusia_Finharn.lua b/erudnint/Nolusia_Finharn.lua new file mode 100644 index 0000000..d3a8581 --- /dev/null +++ b/erudnint/Nolusia_Finharn.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "! Has Lanken sent you to see me? Are you a [visitor or citizen of Erudin]?"); + elseif(e.message:findi("visitor") or e.message:findi("moodoro")) then + e.self:Say("Then, remember, inside the palace walls, never speak the names of those defilers who have passed on. I shall be at the Vasty Inn later tonight. I can answer your questions there."); + elseif(e.message:findi("citizen")) then + e.self:Say("Well, then, you should know better than to speak the names of defilers inside the palace walls! I must get back to my work, or I shall be late to the inn this evening."); + elseif(e.message:findi("prexus")) then + e.self:Say("Prexus is the Oceanlord. It is He who gave us the great oceans of our world. It is He who created the Vasty Deep, the most sacred of all waters."); + elseif(e.message:findi("quellious")) then + e.self:Say("Quellious the Tranquil has brought peace to the land. Within that peace we find and enter the hidden doorways of our minds."); + end +end diff --git a/erudnint/Raskena_Djor.lua b/erudnint/Raskena_Djor.lua new file mode 100644 index 0000000..68d2cc3 --- /dev/null +++ b/erudnint/Raskena_Djor.lua @@ -0,0 +1,23 @@ +-- Quest for Raskena Djor in erudnint - Wizards first assignment + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. What brings you to Raskena? Did Ghanlin send you?"); + elseif(e.message:findi("ghanlin")) then + e.self:Say("Then let us begin your first task. I require some components for an experiment I have been meaning to conduct. If you could [gather] them for me, I will make sure that you are rewarded."); + elseif(e.message:findi("gather")) then + e.self:Say("In Toxxulia Forest you should be able to find some fire beetles. I require two fire beetle legs and two fire beetle eyes. Once you have collected them, bring them to me for your reward."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10307,item2 = 10307,item3 = 13250,item4 = 13250})) then -- random level 1 spell and experience + e.self:Say("You have passed your first task. Nice work. Take this spell as your payment."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(15373, 15054, 15205, 15288, 15372, 15374),150); -- Item(s): Spell: Sphere of Light (15373) + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:erudnint ID:23041 -- Raskena_Djor \ No newline at end of file diff --git a/erudnint/Sentinel_Balthar.lua b/erudnint/Sentinel_Balthar.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Balthar.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Sentinel_Charin.lua b/erudnint/Sentinel_Charin.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Charin.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Sentinel_Cholis.lua b/erudnint/Sentinel_Cholis.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Cholis.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Sentinel_Colm.lua b/erudnint/Sentinel_Colm.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Colm.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Sentinel_Corin.lua b/erudnint/Sentinel_Corin.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Corin.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Sentinel_Dadil.lua b/erudnint/Sentinel_Dadil.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Dadil.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Sentinel_Desde.lua b/erudnint/Sentinel_Desde.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Desde.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Sentinel_Edan.lua b/erudnint/Sentinel_Edan.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Edan.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Sentinel_Golas.lua b/erudnint/Sentinel_Golas.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Golas.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Sentinel_Hylin.lua b/erudnint/Sentinel_Hylin.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Hylin.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Sentinel_Jeast.lua b/erudnint/Sentinel_Jeast.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Jeast.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Sentinel_Knox.lua b/erudnint/Sentinel_Knox.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Knox.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Sentinel_Laphis.lua b/erudnint/Sentinel_Laphis.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Laphis.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Sentinel_Lixen.lua b/erudnint/Sentinel_Lixen.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Lixen.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Sentinel_Nolbain.lua b/erudnint/Sentinel_Nolbain.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Nolbain.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Sentinel_Ogen.lua b/erudnint/Sentinel_Ogen.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Ogen.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Sentinel_Phis.lua b/erudnint/Sentinel_Phis.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Phis.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Sentinel_Rysin.lua b/erudnint/Sentinel_Rysin.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Rysin.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Sentinel_Thron.lua b/erudnint/Sentinel_Thron.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Thron.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Sentinel_Tigonus.lua b/erudnint/Sentinel_Tigonus.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Tigonus.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Sentinel_Vanil.lua b/erudnint/Sentinel_Vanil.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Vanil.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Sentinel_Wren.lua b/erudnint/Sentinel_Wren.lua new file mode 100644 index 0000000..0874131 --- /dev/null +++ b/erudnint/Sentinel_Wren.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is found halfway between Erudin and Qeynos. There is a pride of cat people living on the small island. Unlike their cousins in Kerra Ridge, they are peaceful."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All circles of magic are headquartered within the Palace of Erud."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("You can find the Erudite paladins at the Temple of Divine Light and the Deepwater Temple. If you achieve great awareness among them you may be accepted into the High Guard."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The only warriors in Erudin are the paladins of the High Guard and the members of the two temples, Deepwater and Divine Light."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("All thieves in Erudin can be found in the city prison. We do not tolerate such behavior."); + elseif(e.message:findi("bard guild")) then + e.self:Say("We have no bard organization in Erudin. Many Erudites find this an oddity. Such a beautiful art form would be right at home in our lovely city."); + elseif(e.message:findi("monk guild")) then + e.self:Say("We have no monks in Erudin."); + elseif(e.message:findi("temple")) then + e.self:Say("You may find a healer in either the Temple of Divine Light or the Deepwater Temple."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("There is no place for you to rest inside the palace. You will have to go to the Vasty Deep Inn. It is located on the lower tier outside these walls."); + elseif(e.message:findi("tavern")) then + e.self:Say("There is no tavern within the palace walls. May I suggest Bluehawk's. It can be found in the lower tier outside the palace."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Erudin is located on the lower level of the Palace of Erud."); + elseif(e.message:findi("supplies")) then + e.self:Say("You must go outside the Palace of Erud to find a shop which can help you."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("Within the palace you shall find the High Council which is the governing body of Erudin. The overseer of this council is the guildmaster of the Gatecallers, Markus Jaevins."); + elseif(e.message:findi("weapons")) then + e.self:Say("Look outside the palace for the City Armory. It will be near the gate gems when you leave the Palace of Erud."); + elseif(e.message:findi("jail") or e.message:findi("prison")) then + e.self:Say("The prison is on the lower level of the palace inside the City Office."); + elseif(e.message:findi("who.* chief")) then + e.self:Say("Chief Adair is the highest ranking sentinel. He oversees our operations."); + end +end + diff --git a/erudnint/Shondo_Billin.lua b/erudnint/Shondo_Billin.lua new file mode 100644 index 0000000..c48b495 --- /dev/null +++ b/erudnint/Shondo_Billin.lua @@ -0,0 +1,29 @@ +-- Heretic remains + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh, Brell!! Help me get out of here. I did nothing wrong!! I did not know you could not take that [tonic] out of the city."); + elseif(e.message:findi("tonic")) then + e.self:Say("Oh, why did I have to try and help that Erudite in Qeynos? He was sick and vomiting and needed something called Erud's Tonic!! Now just because I wanted to help, I am going to be vomiting up my insides!! Oh, Brell!!! GET ME OUT OF HERE!!"); + elseif(e.message:findi("where is the heretic")) then + e.self:Say("Why are you asking me about the heretic?! I am going to die! DO YOU HEAR ME?!! Oh, I need a drink. Please... honor a dying man's last request, a bottle of Vasty Deep Ale. If you get me that, I will tell you what I know of the heretic."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13126})) then + e.self:Say("Gulp.. Gulp.. Aaahhh!!! That hits the spot. All I can tell you is that the heretic's name was E'lial B'rook. He mumbled something about a rendezvous and he would be floating down a river, smooth sailing back to something called Paineel. That's all I know."); + -- Confirmed Live Factions + e.other:Faction(e.self,255,10,0); -- Faction: Gem Choppers + e.other:Faction(e.self,288,2,0); -- Faction: Merchants of Ak'Anon + e.other:Faction(e.self,333,2,0); -- Faction: King Ak'Anon + e.other:Faction(e.self,238,-2,0); -- Faction: Dark Reflection + e.other:Faction(e.self,1604,-1,0); -- Faction: Clan Grikbar + e.other:QuestReward(e.self,0,0,0,0,0,100); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EOF zone: erudnint ID: 23021 NPC: Shondo_Billin diff --git a/erudnint/Slansin.lua b/erudnint/Slansin.lua new file mode 100644 index 0000000..a42210a --- /dev/null +++ b/erudnint/Slansin.lua @@ -0,0 +1,35 @@ +-- Inert Potion + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings and welcome! Please feel free to look around"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13983})) then + if(e.self:GetClass() == 41) then + e.self:Say("Thank you. I have been expecting this. We require it for mixing."); + -- Confirmed Live Factions + e.other:Faction(e.self,231,-1); -- Faction: Craftkeepers + e.other:Faction(e.self,266,-1); -- Faction: High Council of Erudin + e.other:Faction(e.self,265,1); -- Faction: Heretics + e.other:Faction(e.self,267,-1); -- Faction: High Guard of Erudin + e.other:QuestReward(e.self,0,math.random(5),0,0,0,300); + eq.depop(); + elseif(e.self:GetClass() == 14) then + e.self:Say("Ha!! What a fool!! I have stolen another potion to add to the crate. I shall make a fortune!! The real Slansin is in back. Now it is time for me to leave."); + e.other:Faction(e.self,336,2); -- +Coalition of Tradefolk Underground + e.other:Faction(e.self,229,2); -- +Coalition of Tradefolk + e.other:Faction(e.self,329,1); -- +Carson McCabe + e.other:Faction(e.self,230,1); -- +Corrupt Qeynos Guards + e.other:Faction(e.self,330,1); -- +Freeport Militia + e.other:QuestReward(e.self,0,0,0,0,0,300); + end + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:erudnint ID:23001 -- Slansin diff --git a/erudnint/Sparlus_Penfold.lua b/erudnint/Sparlus_Penfold.lua new file mode 100644 index 0000000..3b2777b --- /dev/null +++ b/erudnint/Sparlus_Penfold.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You look like someone that has a nose for knowledge. You ought to buy a copy of the Odus Chronicle today and further your knowledge about current events."); + end +end + +-- END of FILE Zone:erudnint ID:24015 -- Sparlus_Penfold \ No newline at end of file diff --git a/erudnint/Toresian_Fhabel.lua b/erudnint/Toresian_Fhabel.lua new file mode 100644 index 0000000..75d859f --- /dev/null +++ b/erudnint/Toresian_Fhabel.lua @@ -0,0 +1,34 @@ +-- Inert Potion + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome. my friend! We are the Craftkeepers. We study the circle of magic called enchantment. What circle do you [study]?"); + elseif(e.message:findi("study enchantment")) then + e.self:Say("Then I welcome you into our circle. It is good to see new blood."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(23078) == false or eq.get_entity_list():IsMobSpawnedByNpcTypeID(23001) == false) then + eq.unique_spawn(eq.ChooseRandom(23078,23001),0,0,575,683,-12.13,78); -- NPC(s): Slansin (23078), Slansin (23001) + end + elseif(e.message:findi("study wizard")) then + e.self:Say("Then you should visit with the Crimson Hands. They are also found within the Palace of Erud."); + elseif(e.message:findi("study magic")) then + e.self:Say("The ways of magic are not ours. You should speak with the Gatecallers. They will assist you."); + elseif(e.message:findi("study heretic")) then + e.self:Say("What?! Do not jest. Every Erudite knows better than to speak of the forbidden black arts. Do not contemplate studying those arts. You do not want to go the way of the black-hearted heretics."); + elseif(e.message:findi("assist")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- requires amiably + e.self:Say("Ahhhhh " .. e.other:GetCleanName() .. ". Slansin used to have need of those potions, however he mysteriously disappeared long ago. The only person I know of who still wants them is a cleric of the Church of Marr in Freeport."); + e.other:SummonCursorItem(13983); -- Item: Inert Potion + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You are most welcome to the circle of the Craftkeepers, but I require more service before we can discuss such things.") + else + e.self:Say("You are lucky to be standing. Leave here immediately or suffer grave consequences! You are not welcome amongst the Craftkeepers."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:erudnint ID:23073 -- Toresian_Fhabel \ No newline at end of file diff --git a/erudnint/Trilani_Parlone.lua b/erudnint/Trilani_Parlone.lua new file mode 100644 index 0000000..e078316 --- /dev/null +++ b/erudnint/Trilani_Parlone.lua @@ -0,0 +1,36 @@ +-- Tunare Warden +-- Missing The Mystic Cloak + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail. good adventurer! Do you bring word from my [husband]?"); + elseif(e.message:findi("husband")) then + e.self:Say("Tolkar is his name. My beloved husband. He still lives in Felwithe while I study here. It must be hard on him."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1598})) then -- Black Stone Candlestick + e.self:Say("I sense a great evil power in this candlestick. I will need you to concoct a divinatory aid for me before I can discern more. Take this suspension and brew it in a brew barrel with one white hellebore, a pouch of the red dust created by the Fire Peak Goblin Wizards, and the caustic substance used by the werebats in Unrest."); + e.other:QuestReward(e.self,0,0,0,0,1596); -- Magical Suspension Fluid + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1597})) then -- Divinatory Concoction + e.self:Emote("performs a subtle divinatory ritual. 'This is a powerful evil indeed. The smoke from special candles crafted by the Teir'Dal and burned in this candlestick allows the creation of undead of unordinary might. The Ghasts are only one of its many possible creations. I will concoct a powder for you to take back to Yeolarn that will assist in defeating the monstrosities the candle has produced. The candlestick itself will remain here within the High Tower of Erudin for the time being.'"); + e.other:Faction(e.self,246,15,0); -- Faction: Faydarks Champions + e.other:Faction(e.self,275,3,0); -- Faction: Keepers of the Art + e.other:Faction(e.self,279,2,0); -- Faction: King Tearis Thex + e.other:Faction(e.self,239,-3,0); -- Faction: The Dead + e.other:QuestReward(e.self,0,0,0,0,1599,1500); -- Powder of Unanimation + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1056})) then --Faded Cloak + e.self:Say("Oh my lord Tunare! I did not know my daughter was in trouble. I thank you for saving her. Here, I have returned the once lost power to this cloak. Wear it with my humblest gratitude."); + e.other:Faction(e.self,246,15,0); -- Faction: Faydarks Champions + e.other:Faction(e.self,275,3,0); -- Faction: Keepers of the Art + e.other:Faction(e.self,279,2,0); -- Faction: King Tearis Thex + e.other:Faction(e.self,239,-3,0); -- Faction: The Dead + e.other:QuestReward(e.self,0,0,0,0,1057); --Mystic Cloak + end + item_lib.return_items(e.self, e.other, e.trade); +end + +--END of FILE Zone:erudnint ID:23020 -- Trilani_Parlone diff --git a/erudnint/Vasile_Jahnir.lua b/erudnint/Vasile_Jahnir.lua new file mode 100644 index 0000000..3a50749 --- /dev/null +++ b/erudnint/Vasile_Jahnir.lua @@ -0,0 +1,46 @@ +-- The Power of the Gatecallers +-- Rungupp + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings! You seek knowledge of our ways. You shall find knowledge and you shall offer knowledge you have been taught. What is the power of the Gatecallers?"); + elseif(e.message:findi("slight problem") or e.message:findi("summoning")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- requires amiably + if(e.message:findi("slight problem")) then + e.self:Say("We have heard rumor of an troll who has taken residence within the forest of Toxxulia. During your travels in Toxxulia, we command you to keep a watchful eye out for the beast. Slay it on sight and return its head to me. To do so will earn you the spell Fire Flux or Burn, whichever may be available at the time."); + elseif(e.message:findi("summoning")) then + e.self:Say("Yes. We are the true summoners of Norrath. We are the power supreme. You will learn more and we shall test you. You will go forth and learn the art of summoning. Let your first test be to master the summoning of the dagger and of food. Return to me two summoned daggers and two of the food source you learn to call forth. Do so, and I shall give you the gloves of the Gatecaller."); + end + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("A foe of the Gatecallers you are not, but you must do more to earn our respect and trust."); + else + e.self:Say("You dare to approach any of the Gatecallers! You have summoned forth my rage! Leave at once!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Your proof lies in TWO summoned daggers and two summoned loaves of black bread."; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13078,item2 = 13078,item3 = 7305,item4 = 7305},1,text)) then -- requires amiably, 2x summoned bread, 2x summoned daggers + e.self:Say("You have mastered these spells quickly. You shall now wear the gloves of the Gatecaller. Cumbersome they may feel, but they protect the hands of a young magician. In your young days of magic they will protect you from harm. They are not valued much by merchants, but they are prized by other circles. Nevertheless, we offer them only to our young Gatecallers. You may now be of assistance with a [slight problem]."); + -- Confirmed Live Factions + e.other:Faction(e.self,254,5); --faction with Gate Callers increased + e.other:Faction(e.self,266,1); --faction with High Council of Erudin increased + e.other:Faction(e.self,267,1); --faction with High Guards of Erudin increased + e.other:Faction(e.self,265,-1); --faction with Heretics decreased + e.other:QuestReward(e.self,0,0,0,0,12209,175); -- Item: Gloves of the Gatecaller + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13895})) then -- requires amiably, Rungupp + e.self:Say("So the rumor shows true. Good work. You are an excellent student and a noble Erudite. Here is your spell as I promised. Go forth and fill your brain with knowledge."); + -- Confirmed Live Factions + e.other:Faction(e.self,254,10); --faction with Gate Callers increased + e.other:Faction(e.self,266,1); --faction with High Council of Erudin increased + e.other:Faction(e.self,267,1); --faction with High Guards of Erudin increased + e.other:Faction(e.self,265,-1); --faction with Heretics decreased + e.other:QuestReward(e.self,0,0,math.random(20),0,15313,250); -- Item: Spell: Fire Flux + end + item_lib.return_items(e.self, e.other, e.trade); +end + +--END of FILE Zone:erudnint ID:24073 -- Vasile_Jahnir diff --git a/erudnint/Warden_Lius.lua b/erudnint/Warden_Lius.lua new file mode 100644 index 0000000..010ab5a --- /dev/null +++ b/erudnint/Warden_Lius.lua @@ -0,0 +1,13 @@ +-- Heretic remains + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, citizen! This is no place for you. Make sure you keep it that way. We do not need any more [hollow men]."); + elseif(e.message:findi("hollow men")) then + e.self:Say("There is only one sentence in Erudin, death!! And death by purging is the most common. The insides of the criminal are literally pulled out chunk by chunk through the mouth. Then the hollow man is set adrift to float the seas of Erud's Crossing, his body cleansed of all anarchy."); + elseif(e.message:findi("heretic's remain")) then + e.self:Say("I am afraid the heretic prisoner has escaped. There was a skirmish on the palace grounds so I went to assist. When I returned to my post he was gone! I don't know how... he was locked away in the first cell, across from that no-good, thieving gnome, and it is impossible to break the lock with or without magic. We will find him soon. Tell Guildmaster Markus he has escaped."); + end +end + +-- EOF zone: erudnint ID: 23022 NPC: Warden_Lius \ No newline at end of file diff --git a/erudsxing/98000.lua b/erudsxing/98000.lua new file mode 100644 index 0000000..bde6b7f --- /dev/null +++ b/erudsxing/98000.lua @@ -0,0 +1,4 @@ +function event_spawn(e) + eq.spawn_condition("erudsxing",1,0); + eq.spawn_condition("erudsxing",2,0); +end \ No newline at end of file diff --git a/erudsxing/Abe_the_Abandoned.lua b/erudsxing/Abe_the_Abandoned.lua new file mode 100644 index 0000000..8eb37dc --- /dev/null +++ b/erudsxing/Abe_the_Abandoned.lua @@ -0,0 +1,42 @@ +local counting; + +function event_spawn(e) + eq.set_timer("letbegin",60000); + counting = 0; +end + +function event_say(e) + if(e.message:findi("hail")) then -- Part of Shaman Epic 1.0 + e.self:Emote("turns his head slowly toward you but his eyes never come into focus. You can't tell if he's looking at you, behind you, or right in front of his own face. Then, suddenly, he shouts at the top of his lungs, 'HOOOOKAAAHEEEEYYYY! I AM [ABE]!"); + elseif(e.message:findi("Abe")) then -- Part of Shaman Epic 1.0 + e.self:Say("Nothing is hidden. All is discernible if you only know where to look and you have the right [eyes]. Don't be angry with me if you can't get your eyes right to see what you're looking for. I'd lend you mine but I don't wear the same size."); + elseif(e.message:findi("eyes")) then -- Part of Shaman Epic 1.0 + e.self:Emote("begins to draw a picture in the mud with his finger although it doesn't seem to make any sense at all. He points to his picture and nods approvingly at you, saying, 'You see? The curtains fell and it was naught but a dream upon a landscape that we thought we knew. The dream of the [Combine] fulfilled when we finally trimmed our fingernails and looked into the mud. And now we are abandoned, in a world that none can see, no one has the eyes."); + elseif(e.message:findi("combine")) then -- Part of Shaman Epic 1.0 + e.self:Emote("shakes his head in amusement and says, 'Heheheh, yeah, you'd think so, wouldn't you? But I guess not."); + elseif(e.message:findi("broken arrow")) then -- Part of Shaman Epic 1.0 + e.self:Emote("'s eyes suddenly come into focus, looking deep into your own and says, 'There was a time when we cared for the world and trod with the spirits along the paths of the cosmos. We built many great things and worked to preserve what was. I came here to wait for an answer when we began to die off. We could not figure why this was and I was chosen to come here and commune with our friends. We carved an arrow, and everyone who was left shaved a sliver of wood from it. We let it drop to hallowed ground and our highest shaman stepped on it, breaking it. I've been waiting here for so long. So, so long, to give it to the spirits, and thank them."); + elseif(e.message:findi("give them the arrow")) then -- Part of Shaman Epic 1.0 + e.self:Emote("removes a quiver slung across his shoulder and solemnly hands it to you without a word."); + e.other:SummonCursorItem(1680); -- Item: A Broken Arrow + end +end + +function event_timer(e) + if(e.timer == "letbegin") then + counting = counting + 1; + end + + if (counting == 1) then + e.self:Say("Shaman? My time will soon be at hand and I fear I will never see our friends again. But the arrow must be given, our holy broken arrow. Shaman, will you bear our obligation and [give them the arrow]? You will know who to give it to when it is time."); + elseif (counting == 2) then + e.self:Emote("suddenly gasps and says, 'I have found it! I know the answer! Come with me and I will tell you. Eyes are everywhere and this knowledeg is not for everyone. Finally my centuries of waiting are over hahahaha! Follow me Shaman!"); + eq.start(34); + elseif (counting == 3) then + eq.spawn2(98052,0,0,4175,-1587,-280,115.3); -- NPC: a_greater_spirit + eq.depop(); + eq.stop_timer("letbegin"); + end +end + +-- Abe_the_Abandoned \ No newline at end of file diff --git a/erudsxing/Dillon_the_Drowned.lua b/erudsxing/Dillon_the_Drowned.lua new file mode 100644 index 0000000..7aec183 --- /dev/null +++ b/erudsxing/Dillon_the_Drowned.lua @@ -0,0 +1,38 @@ +function event_spawn(e) + e.self:Say("Well met again, Srafen. How goes it?"); + eq.signal(98046,0); -- NPC: Srafen_the_Soaked +end + +function event_say(e) + if(e.message:findi("hail")) then -- Part of Shaman Epic 1.0 + e.self:Say("Hey Srafen, who is this weirdo talking to me? Or is it another one of those funny illusions Froham keeps talking about?"); + eq.signal(98046,1); -- NPC: Srafen_the_Soaked + elseif(e.message:findi("bore")) then -- Part of Shaman Epic 1.0 + e.self:Say("Well ok, I was sent here a long time ago to wait. When I got here, I couldn't believe all the violence going on. Why would the spirits send me here to wait when all this fighting and commotion was going on, I wondered. There were great battles on the ocean in splendid ships made of pine and shining with [magical enhancements]. While I was waiting below, blasted, bloody body parts were floating down to the bottom of the ocean all around me."); + elseif(e.message:findi("magical enhancements")) then -- Part of Shaman Epic 1.0 + e.self:Say("Yes, their ships were very strange, constructed in very unusual designs and all seemed to shine with a multicolored glow. I heard there was even a ship that could stay completely underwater for long periods of time. It had huge steel spikes protruding from the top of its hull used to 'swim' under enemy ships and puncture their hulls. I always thought that someday all this magic would cause something [disastrous] and eventually, it did."); + elseif(e.message:findi("disastrous")) then -- Part of Shaman Epic 1.0 + e.self:Say("Well, one time, I was here waiting as usual. The fighting was particularly heavy up top, lots of banging and rumbling around. And suddenly there was a tremendous screech! I had to cover my ears, it was so loud, even down here. It felt like the water itself was being torn asunder; I could imagine what was happening above. After a few seconds of the screeching came a terrible tremor and rumbling. Great cracks opened up around me and water rushed to fill them, almost dragging me down into the gods know what. It calmed down a little while after that and there hasn't been any real fighting ever since. I suspect they're all dead now. For weeks afterwards, the water had a kind of dead taste to it. I became ill during that time."); + end +end + +function event_timer(e) + if (e.timer == "DillonDepop") then + eq.depop(); + eq.stop_timer("DillonDepop"); + end +end + +function event_signal(e) + if(e.signal == 0) then + e.self:Say("Again? Oh I don't know Srafen, I don't want to [bore] our company, even if it is an illusion."); + elseif(e.signal == 1) then + e.self:Say("Whatever."); + elseif(e.signal == 2) then + e.self:Say("Hey wait! I'm coming with!"); + eq.start(34); + eq.set_timer("DillonDepop",20000); + end +end + +-- Dillon_the_Drowned \ No newline at end of file diff --git a/erudsxing/Froham_the_Forgotten.lua b/erudsxing/Froham_the_Forgotten.lua new file mode 100644 index 0000000..5a2b529 --- /dev/null +++ b/erudsxing/Froham_the_Forgotten.lua @@ -0,0 +1,39 @@ +local counting; + +function event_spawn(e) + eq.set_timer("FrohamDepart",140000); + counting = 0; +end + +function event_say(e) + if(e.message:findi("hail")) then -- Part of Shaman Epic 1.0 + e.self:Emote("looks up at you and mumbles a brief greeting. He appears uncomfortable around others."); + elseif(e.message:findi("who are you")) then -- Part of Shaman Epic 1.0 + e.self:Emote("glances up at you, fiddling with his bony fingers and mumbles, 'Mmmm me name's Froham..I'm 'ere [waitin]."); + elseif(e.message:findi("waitin")) then -- Part of Shaman Epic 1.0 + e.self:Say("Just waitin' . . . it'll [be ere soon], I s'pose."); + elseif(e.message:findi("be here soon")) then -- Part of Shaman Epic 1.0 + e.self:Emote("obviously has trouble communicating. He shifts uncomfortably and says, 'Well I'm not sure, but it's real important. I been 'ere fer a [long time], a real long time. So I'll keep waitin' til it comes."); + elseif(e.message:findi("long time")) then -- Part of Shaman Epic 1.0 + e.self:Say("Been 'ere since Erud sailed over with his friends. They let me catch a ride on their ship after I told them I needed to come 'ere to wait. He was a nice fella, real smart. Though I'm thinkin' he's dead by now. Maybe [Abe] knows fer sure. Abe's been here longer'n me, even."); + elseif(e.message:findi("abe")) then -- Part of Shaman Epic 1.0 + e.self:Say("Yeah, Abe's an old guy. Well, he's kinda beyond bein' old if ye know what I mean. Not all together either. His mind floats all over like the sea around us. But he's got enough sense to wait here like he's done fer, well, fer dang near ever. If ye see him, and he ain't much fer talkin' straight, ask him about [a broken arrow]. Not sure what it means to him but it seems to bring him around."); + end +end + +function event_timer(e) + + if (e.timer == "FrohamDepart") then + counting = counting + 1; + end + if(counting == 2) then + e.self:Emote("sighs heavily and says, 'Looks like it's not comin'. You know, Abe told me of a great treasure a ways away from here, guarded by one o' them girls with fish tails. I always wanted to go but those two jokers, Dillon and the other young one, never had the guts. Why don't ye come with me, shaman? We'll split the treasure fifty-fifty, fair and square."); + eq.start(34); + elseif (counting == 5) then + eq.spawn2(98050,0,0,4169,-1585,-284,181); -- NPC: Abe_the_Abandoned + eq.depop(); + eq.stop_timer("FrohamDepart"); + end +end + +-- Froham_the_Forgotten \ No newline at end of file diff --git a/erudsxing/Golden_Maiden.lua b/erudsxing/Golden_Maiden.lua new file mode 100644 index 0000000..e2ea4bd --- /dev/null +++ b/erudsxing/Golden_Maiden.lua @@ -0,0 +1,41 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Boat spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + -- Qeynos + if(e.self:GetGrid() == 5 and e.wp == 3) then + eq.debug("Boat to Qeynos (5) has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(1,775,260,22,192); + end, + function(ent) + if(ent:GetBoatID() == 773) then + return true; + end + return false; + end + ); + -- Erud + elseif(e.self:GetGrid() == 7 and e.wp == 20) then + eq.debug("Boat to Erud (7) has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(24,-1606,-584,0,-1); + end, + function(ent) + if(ent:GetBoatID() == 773) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/erudsxing/Nifta.lua b/erudsxing/Nifta.lua new file mode 100644 index 0000000..1d72c30 --- /dev/null +++ b/erudsxing/Nifta.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("lights glory")) then + e.self:Say("The Light's Glory? Yes I know of that ship. I have seen it many times. Many ships come through here on their way to Erudin. I hear many stories, many tales of the ocean. [Bad news] is all I have for you this day however."); + elseif(e.message:findi("bad news")) then + e.self:Say("Your ship left our dock almost a week ago. I watched the ocean that night, as I do every night. Your ship was attacked as it left the dock. There was a big battle. I saw many Erudites thrown overboard. The ship was captured and taken away with the pirate vessel. What became of your ship, I do not know. You could perhaps swim out and take a look for any clues."); + end +end \ No newline at end of file diff --git a/erudsxing/Ooglyn.lua b/erudsxing/Ooglyn.lua new file mode 100644 index 0000000..9dac81a --- /dev/null +++ b/erudsxing/Ooglyn.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ooooh, it you, " .. e.other:GetCleanName() .. ". Me's been waitin for you cuz our frenz say you comin an need da test. So's I gib you da test. Hmm, now where me put it? Ooglyn been waiting for sign for so long dat me forget where me put test. Keep your eyes out for sign while me look for test. Oh, hey, " .. e.other:GetCleanName() .. ", they gib you gem? I need dat gem, please, heheh."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1666})) then -- Part of Shaman Epic 1.0 + e.self:Say("Ahhh, tank you, now me can...OH LOOK!! DA SIGN!!!! Oh, sorry you missed it. The sign show you where to wait for da test. Follow me...I like you so I take you there. We goin for a swim, " .. e.other:GetCleanName() .. "!"); + e.other:Faction(e.self,404,100,0); -- Faction: True Spirit + e.other:QuestReward(e.self,0,0,0,0,0,1000); + e.self:Say("Ok shaman, let us be off."); + eq.start(4); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +function event_waypoint_arrive(e) + if(e.wp == 17) then + e.self:Say("Ok, here is place for you to for waiting. Hab fun shaman!"); + eq.set_timer("depop",60000); + end +end + +function event_timer(e) + eq.spawn2(98046,0,0,4196,-1586,-280,181); -- NPC: Srafen_the_Soaked + eq.depop_with_timer(); +end + +-- Ooglyn diff --git a/erudsxing/Sea_King.lua b/erudsxing/Sea_King.lua new file mode 100644 index 0000000..4849676 --- /dev/null +++ b/erudsxing/Sea_King.lua @@ -0,0 +1,41 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Boat spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + -- Qeynos + if(e.self:GetGrid() == 5 and e.wp == 3) then + eq.debug("Boat to Qeynos (5) has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(1,775,260,22,192); + end, + function(ent) + if(ent:GetBoatID() == 772) then + return true; + end + return false; + end + ); + -- Erud + elseif(e.self:GetGrid() == 7 and e.wp == 20) then + eq.debug("Boat to Erud (7) has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(24,-1606,-584,0,-1); + end, + function(ent) + if(ent:GetBoatID() == 772) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/erudsxing/Srafen_the_Soaked.lua b/erudsxing/Srafen_the_Soaked.lua new file mode 100644 index 0000000..5941a0b --- /dev/null +++ b/erudsxing/Srafen_the_Soaked.lua @@ -0,0 +1,53 @@ +local counting; + +function event_spawn(e) + eq.set_timer("DillonSpawn",170000); + counting = 0; +end + +function event_say(e) + if(e.message:findi("hail")) then -- Part of Shaman Epic 1.0 + e.self:Say("Why hello there! Ahh, it's good to see a new face down [here]. So you've come to [wait] with [us] eh? That is splendid! It's been getting very boring lately."); + elseif(e.message:findi("here")) then -- Part of Shaman Epic 1.0 + e.self:Say("Oh! Well this is where [we wait]. It's not much for looks but if you're lucky, a pretty fish will swim by. Oh, and once Dillon said he saw one of those fish women, a mermaid, he called it! Although, I'm not so sure of his state of mind, hehehe. He's been waiting here much longer than I."); + elseif(e.message:findi("us")) then -- Part of Shaman Epic 1.0 + e.self:Say("Well, there's me, Srafen. I've been down here for, can't quite remember, a number of years, I guess. If my wife saw the condition my clothes are in, she'd whack me, I'm sure, heheh. Although I'd bet she's long since dead, probably. Then there's Dillon. He says he's been here since those people up top in Erud blew that big hole in the ground. Not sure what happened but I guess it was a long time ago. Hmmmm, who [else]?"); + elseif(e.message:findi("wait")) then -- Part of Shaman Epic 1.0 + e.self:Say("We've been waiting quite some time, really. I have been here the least amount of time, but that doesn't help keep the boredom away, heheh. What are we waiting for, you ask? HehehHAahahah! What are we waiting for?? Heheheh, what a silly question! It's quite obvious if you take the time to think about it. Heh. Ummm.. I'm really not sure."); + elseif(e.message:findi("else")) then -- Part of Shaman Epic 1.0 + e.self:Say("Ahh, yes, there's also a really old guy I've only seen a couple times, name's Froham. Whew, he is really old, and not much of a talker. Mostly mumbles from time to time. Dillon says he's been here since Erud first took his people across the sea. Not sure who this Erud feller is but Froham isn't in the best of shape, so it must have been a LONG time ago. Froham did mention there's one other guy but we've never seen him. He apparently had something to do with the Combine Empire, no idea what that is though."); + elseif(e.message:findi("an illusion")) then -- Part of Shaman Epic 1.0 + e.self:Say("Awww, well that's too bad. Although illusions and real people don't seem to be much different at times, so, please stay and keep Dillon and me company. We could use it, right Dillon?"); + eq.signal(98051,1); -- NPC: Dillon_the_Drowned + end +end + +function event_signal(e) + if(e.signal == 0) then + e.self:Say("Hey there, Dillon! Good to see you again, I think."); + elseif(e.signal == 1) then + e.self:Emote("looks around frantically a moment then laughs and says, 'Ohhh, them! Hehehe! This is a friend of mine come to wait with us. Isn't that exciting, Dillon? And it's not just an illusion, I don't think! Say, are you [an illusion], shaman?"); + end +end + +function event_timer(e) + if (e.timer == "DillonSpawn") then + counting = counting + 1; + end + if(counting == 1) then + eq.spawn2(98051,0,0,4186,-1562,-280,152); -- NPC: Dillon_the_Drowned + elseif(counting == 4) then + e.self:Say("Hey Dillon, why don't you tell us again about what happened up top? You know, where they blew that big hole into the ground."); + eq.signal(98051,0); -- NPC: Dillon_the_Drowned + elseif(counting == 5) then + eq.start(33); + e.self:Say("Okay, well, I've had enough. Yet again, we've waited for nothing. Sometimes I really wonder if the spirits are real after all. Well I for one am going to go find something fun to do - this is obviously a waste of time. Come with me, shaman, it'll be great fun! Fairwell Dillon."); + eq.signal(98051,2); -- NPC: Dillon_the_Drowned + elseif(counting == 7) then + eq.spawn2(98047,0,0,4170,-1584,-286,205); -- NPC: Froham_the_Forgotten + eq.stop_timer("DillonSpawn"); + eq.depop(); + end +end + +-- Srafen_the_Soaked \ No newline at end of file diff --git a/erudsxing/Yelesom_Paust.lua b/erudsxing/Yelesom_Paust.lua new file mode 100644 index 0000000..f791157 --- /dev/null +++ b/erudsxing/Yelesom_Paust.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ahh salutations young adventurer. I'd love to chat, but I have much studying to do. Farewell."); + elseif(e.message:findi("help")) then + e.self:Say("Wonderful. The beast took my tool kit whilst I slept at camp. I awoke only to see him paddling frantically out into the ocean in a small boat. He couldn't have gone very far. If you stand at my [camp] and look towards the next closest head stone, you will be facing the direction in which the Kerran thief fled. Swim straight out from there and you should see his cunning little boat."); + elseif(e.message:findi("camp")) then + e.self:Say("My camp is next to the head stone on the eastern most portion of this island. The Kerran may have dropped some of my tools inot the ocean as it fled. Please return the complete tool kit and I'll make sure my brother rewards you"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18173})) then + e.self:Say("Gans sent you to check on me did he? Well you can tell my dear brother that the surveying has been halted. One of those furballs has stolen my tools, making my job impossible. Kerrans, kobolds, gnolls, we're constantly under siege by these primitives. Anyway, perhaps you could [help me]?"); + e.other:QuestReward(e.self,0,0,0,0,0,150); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1768})) then + e.self:Say("Thank you for recovering my tools, please take this to my brother for your reward."); + e.other:QuestReward(e.self,0,0,0,0,1771,150); -- Item: Yelesoms Reports + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EndFile: erudsxing\Yelesom_Paust \ No newline at end of file diff --git a/erudsxing/a_greater_spirit.lua b/erudsxing/a_greater_spirit.lua new file mode 100644 index 0000000..275e715 --- /dev/null +++ b/erudsxing/a_greater_spirit.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop",600000); +end + +function event_say(e) + if(e.message:findi("hail")) then --Part of Shaman Epic 1.0 + e.self:Say("You have walked the path of patience and you now know what to expect. We are watchers. Our eyes are everywhere and we must be patient and quiet else we may miss what could be harmful. Can you sit still quietly and wait for just the right moment, then open your eyes with a fury and act with all the energy you have cultivated? Timing is everything, and without patience you cannot be sensitive to timing. You have shown your patience here and we believe you are ready to walk the [next path]."); + elseif(e.message:findi("next path")) then --Part of Shaman Epic 1.0 + e.self:Say("You know trust and patience. But before we can allow you to act in our name, we must know that when you do decide to act, you will make the right choices. We must ask that you now walk the path of wisdom. You must walk to the great plains and search out one of us. He is a wanderer, and it is his nature to drift with the winds and weather doing what he can to ensure understanding and longevity to all that respect their home. He will not be easy to find, though, and you must remember what you have learned down here to succeed in finding him. When you do, give him this gem and follow his instructions."); + e.other:QuestReward(e.self,0,0,0,0,1667); + eq.depop(); + end +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/erudsxing/player.lua b/erudsxing/player.lua new file mode 100644 index 0000000..20f3149 --- /dev/null +++ b/erudsxing/player.lua @@ -0,0 +1,20 @@ +function event_enter_zone(e) + if(e.self:GetBoatID() == 772 or e.self:GetBoatID() == 773) then + eq.signal(98036,1); -- NPC: Monala + else + eq.signal(98036,2); -- NPC: Monala + end +end + +function event_board_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug(" At: " .. hour .. ":" .. minute .. " BoatID: " .. e.boat_id .. " was boarded. Its name is: " .. e.self:GetBoatName() .. ".", 1); +end + +function event_leave_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + eq.debug(" At: " .. hour .. ":00 I left BoatID: " .. e.boat_id .. ".", 1); +end \ No newline at end of file diff --git a/everfrost/Arnis_McLish.lua b/everfrost/Arnis_McLish.lua new file mode 100644 index 0000000..f139e30 --- /dev/null +++ b/everfrost/Arnis_McLish.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("My word!! I cannot believe how cold it is out here. I must keep running around just to keep warm."); + elseif(e.message:findi("megan")) then + if(e.other:GetFaction(e.self) < 5) then + e.self:Say("I heard she got lost on the plains. You should go ask her dog, Snowflake, where she is. I hear she is somewhere around the pass to Halas."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("The Wolves o' the North show ye no ill will, but there's much ye must do t' earn our trust. Perhaps ye should speak with Lysbith and inquire o' the [gnoll bounty]."); + else + e.self:Say("Run while ye still can!! The Wolves o' the North will not tolerate yer presence!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13243})) then -- requires amiably, One Half Bottle of Elixir + e.self:Say("Mmmm.. Thank you stranger. I feel a lot warmer now. You should now go and find [Megan] O'Reilly."); + -- Confirmed Live Factions + e.other:Faction(e.self,320,5,0); -- Wolves of the North + e.other:Faction(e.self,327,1,0); -- Shaman of Justice + e.other:Faction(e.self,328,1,0); -- Merchants of Halas + e.other:Faction(e.self,311,1,0); -- Steel Warriors + e.other:QuestReward(e.self,0,0,0,0,13244,150); -- One Quarter of Elixir + end + item_lib.return_items(e.self, e.other, e.trade); +end + +function event_spawn(e) + e.self:SetRunning(true); +end + +-- END of FILE Zone:everfrost ID:30049 -- Arnis_McLish diff --git a/everfrost/Bryndin_McMill.lua b/everfrost/Bryndin_McMill.lua new file mode 100644 index 0000000..c59dd24 --- /dev/null +++ b/everfrost/Bryndin_McMill.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("H-ha.. H-hai.. Hail!! It is v-v-very.. C-cold out here. You sh-sh-should light a c-c-campfire."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13242})) then -- requires amiably, Three Quarters of Elixir + e.self:Say("Ahhh!! I feel warm all over. Thanks. You should go give Arnis McLish a drink of this elixir. Last time I saw him he was headed toward Blackburrow."); + -- Confirmed Live Factions + e.other:Faction(e.self,320,5,0); -- Wolves of the North + e.other:Faction(e.self,327,1,0); -- Shaman of Justice + e.other:Faction(e.self,328,1,0); -- Merchants of Halas + e.other:Faction(e.self,311,1,0); -- Steel Warriors + e.other:QuestReward(e.self,0,0,0,0,13243,150); -- One Half Full Bottle of Elixir + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:everfrost ID:30065, 30115 -- Bryndin_McMill diff --git a/everfrost/Eichvul.lua b/everfrost/Eichvul.lua new file mode 100644 index 0000000..7b25907 --- /dev/null +++ b/everfrost/Eichvul.lua @@ -0,0 +1,11 @@ +function event_combat(e) + if(e.joined) then + eq.unique_spawn(30004,0,0,-6302,2842,-53,92); + end +end + +function event_trade(e) + local item_lib = require("items"); + + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/everfrost/Iceberg.lua b/everfrost/Iceberg.lua new file mode 100644 index 0000000..6106025 --- /dev/null +++ b/everfrost/Iceberg.lua @@ -0,0 +1,48 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Rrrroarrrrr..."); + end +end + +function event_spawn(e) + eq.set_timer("follow",1000); +end + +function event_timer(e) + if(e.timer == "follow") then + local mobtypeID = eq.get_entity_list():GetMobByNpcTypeID(30061); + + if(mobtypeID) then + local follow_mob = mobtypeID:GetID(); + eq.follow(follow_mob); + eq.stop_timer("follow"); + end + end +end + +function event_combat(e) + if(e.joined == true) then + e.self:Say("Grrroarrr !!"); + eq.signal(30061,1); -- NPC: Tundra_Jack + else + eq.signal(30061,3); -- NPC: Tundra_Jack + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12221})) then + e.self:Emote("growls with happiness and licks your face. Just enough time to swipe the sweaty shirt from his collar!! Iceberg then runs off to enjoy his lion delight!!"); + eq.signal(30061,2); -- NPC: Tundra_Jack + -- Confirmed Live Factions + e.other:Faction(e.self,320,2,0); -- Faction: Wolves of the North + e.other:Faction(e.self,327,1,0); -- Faction: Shamen of Justice + e.other:Faction(e.self,328,1,0); -- Faction: Merchants of Halas + e.other:Faction(e.self,311,1,0); -- Faction: Steel Warriors + e.other:QuestReward(e.self,0,0,0,0,12226,1000); -- Item: Sweaty Shirt + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:everfrost ID:30046 -- Iceberg diff --git a/everfrost/Karg_IceBear.lua b/everfrost/Karg_IceBear.lua new file mode 100644 index 0000000..fb77205 --- /dev/null +++ b/everfrost/Karg_IceBear.lua @@ -0,0 +1,44 @@ +function event_spawn(e) + eq.set_timer("depop",3600000); +end + +function event_timer(e) + eq.depop_with_timer(); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, traveller! I am Karg of Clan Icebear, lone hunter of the Everfrost Peaks. Have you seen any polar bears about?"); + elseif(e.message:findi("yes")) then + e.self:Say("I hunt polar bears and furnish cloaks from their [pelts]. They keep you warm in this cold weather."); + elseif(e.message:findi("pelt")) then + e.self:Say("Have you some polar bear pelts? You know I can furnish warm cloaks from them, and for you I will do it for the measly sum of 5 platinum pieces."); + elseif(e.message:findi("werewolf")) then + e.self:Say("Werewolf?! I have not seen a werewolf in years. Have you slain one and collected its [skin] or [claws]?"); + elseif(e.message:findi("skin")) then + e.self:Say("You have managed to procure a werewolf skin?? Amazing! Well then, I will let you know that for a fee of 100 platinum, I can craft a hearty cloak for you if you leave the skin and the coin with me."); + elseif(e.message:findi("claw")) then + e.self:Say("Oh, a werewolf claw? If you were to give me the claw and 75 platinum, I could craft excellent gauntlets."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "OK! Now, where is the rest?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13761,platinum = 5},1,text)) then -- Polar Bear Skin and 5 plat + e.self:Say("Here is your polar bear cloak! It will serve you well and keep you warm even in the coldest conditions. Farewell, friend"); + e.other:QuestReward(e.self,0,0,0,0,2912); -- Polar Bear Cloak + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13714,platinum = 100},1,text)) then -- Werewolf Pelt and 100 plat + e.self:Say("It has been a long time since I crafted items from werewolves. I hope this aids you in your journeys. Farewell, friend, until we meet again."); + e.other:QuestReward(e.self,0,0,0,0,2401); -- Werewolf Skin Cloak + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13715,platinum = 75},1,text)) then -- Werewolf Claws and 75 plat + e.self:Say("It has been a long time since I crafted items from werewolves. I hope this aids you in your journeys. Farewell, friend, until we meet again."); + e.other:QuestReward(e.self,0,0,0,0,2402); -- Lupine Claw Gauntlets + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- End of Karg_Icebear \ No newline at end of file diff --git a/everfrost/Lich_of_Miragul.lua b/everfrost/Lich_of_Miragul.lua new file mode 100644 index 0000000..addb5bd --- /dev/null +++ b/everfrost/Lich_of_Miragul.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Areeeeewwwww"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19072})) then -- handin phlactery + eq.spawn2(30094, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); -- Spawn Miragul + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:everfrost ID:3233 -- Lich_of_Miragul \ No newline at end of file diff --git a/everfrost/Megan_OReilly.lua b/everfrost/Megan_OReilly.lua new file mode 100644 index 0000000..cde1b80 --- /dev/null +++ b/everfrost/Megan_OReilly.lua @@ -0,0 +1,47 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Brrrr.. It.. Is sooo.. c-cold!! I never.. sh-should've j-joined.. the.. the W-wolves of the N-north!!"); + elseif(e.message:findi("ivan's remains")) then + if(e.other:GetFaction(e.self) < 5) then -- requires amiably + e.self:Say("You were sent to retrieve the remains? I am sorry, I lost them. It was not my fault! There was no escort as I was told. I got lost returning to Halas and ended up on a frozen river. The ice broke and the remains were scattered into the freezing water. Will you [dive for the remains]?"); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("The Wolves o' the North show ye no ill will, but there's much ye must do t' earn our trust. Perhaps ye should speak with Lysbith and inquire o' the [gnoll bounty]."); + elseif(e.other:GetFaction(e.self) > 5) then + e.self:Say("Run while ye still can!! The Wolves o' the North will not tolerate yer presence!"); + end + elseif(e.message:findi("dive for the remains")) then + if(e.other:GetFaction(e.self) < 5) then -- requires amiably + e.self:Say("Thank the Tribunal!! I would have, but I cannot swim. Take this chest. Fill it with the four pieces which fell below the surface. I know not what else lies within. When you fill the box and combine the items, return it to Renth. Good luck, " .. e.other:GetCleanName() .. "."); + e.other:SummonCursorItem(17945); -- Item: Empty Box + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("The Wolves o' the North show ye no ill will, but there's much ye must do t' earn our trust. Perhaps ye should speak with Lysbith and inquire o' the [gnoll bounty]."); + elseif(e.other:GetFaction(e.self) > 5) then + e.self:Say("Run while ye still can!! The Wolves o' the North will not tolerate yer presence!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13244})) then -- requires amiably, One Quarter Bottle of Elixir + e.self:Say("Oh thank you. Sorry, but the bottle is empty now. I hope you did't need any. Take the empty bottle back to Dargon. He may refill it for you."); + -- Confirmed Live Factions + e.other:Faction(e.self,320,5,0); -- Wolves of the North + e.other:Faction(e.self,327,1,0); -- Shaman of Justice + e.other:Faction(e.self,328,1,0); -- Merchants of Halas + e.other:Faction(e.self,311,1,0); -- Steel Warriors + e.other:QuestReward(e.self,0,0,0,0,13245,150); -- Empty Bottle of Elixir + end + item_lib.return_items(e.self, e.other, e.trade); +end + +function event_waypoint_arrive(e) + if(e.wp == 3) then + e.self:SetRunning(true); + elseif(e.wp == 6) then + e.self:SetRunning(false); + end +end + +-- END of FILE Zone:everfrost ID:30029, 30096, 30119 -- Megan_OReilly diff --git a/everfrost/Snowflake.lua b/everfrost/Snowflake.lua new file mode 100644 index 0000000..67d1e59 --- /dev/null +++ b/everfrost/Snowflake.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Grrrrrr!!"); + elseif(e.message:findi("megan")) then + if(e.other:GetFaction(e.self) < 5 and e.self:GetX() == -1160 and e.self:GetY() == 2022) then + e.self:Say("Ruff... Ruff... Woof..."); + eq.start(195); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Emote("apparently responds only to one who follows the Wolves of the North."); + else + e.self:Emote("growls at you. It can sense you are an enemy of the Wolves of the North."); + end + end +end + diff --git a/everfrost/Sulgar.lua b/everfrost/Sulgar.lua new file mode 100644 index 0000000..0c39dd2 --- /dev/null +++ b/everfrost/Sulgar.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. I am searching for the [wheel of Tarton]. If you will assist me I will provide you with [runes] to create a powerful spell."); + elseif(e.message:findi("runes")) then + e.self:Say("I have these runes, Rune of Frost and Rune of the Astral, which can be combined to produce a powerful spell that can call down destruction from the heavens. I will give them to you in exchange for the Staff of the Wheel and Star of Eyes"); + elseif(e.message:findi("case")) then + e.self:Say("You can use this case to reassemble the wheel. It has been infused with energy to combine the spokes. You will need to work quickly though or it will consume itself."); + e.other:SummonCursorItem(17510); -- a glowing chest - quest combiner + elseif(e.message:findi("wheel")) then + e.self:Say("The wheel was broken into several pieces and scattered throughout the world. This book will give you clues as to their whereabouts. Once you gather all the pieces, they can be reassembled in a special [case]"); + e.other:SummonCursorItem(18031); -- Tome of the Wheel + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14360,item2 = 14361})) then -- Staff of the Wheel / Star of Eyes + e.self:Say("Wonderful, you have brought me the Wheel. Here is the reward I promised you."); + e.other:QuestReward(e.self,{items = {11881,11880},exp = 100000}); -- Rune of the Astral, Rune of Frost + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EOF Sulgar \ No newline at end of file diff --git a/everfrost/Talin_ODonal.lua b/everfrost/Talin_ODonal.lua new file mode 100644 index 0000000..794b999 --- /dev/null +++ b/everfrost/Talin_ODonal.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("'Brrrrrr! Grr... Grreetings. It is freezing out here!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13241})) then -- requires amiably, Full Bottle of Elixir + e.self:Say("Mmmm.. I feel much warmer. Thank you. You should now find Bryndin McMill. He could use a swig also. I saw him hanging around two other guards."); + -- Confirmed Live Factions + e.other:Faction(e.self,320,5,0); -- Wolves of the North + e.other:Faction(e.self,327,1,0); -- Shaman of Justice + e.other:Faction(e.self,328,1,0); -- Merchants of Halas + e.other:Faction(e.self,311,1,0); -- Steel Warriors + e.other:QuestReward(e.self,0,0,0,0,13242,150); -- 3/4 Full Bottle of Elixir + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:everfrost ID:30072 -- Talin_O`Donal diff --git a/everfrost/Trankia.lua b/everfrost/Trankia.lua new file mode 100644 index 0000000..ca17710 --- /dev/null +++ b/everfrost/Trankia.lua @@ -0,0 +1,28 @@ +-- Part of the quest for Tishan's Kilt + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hmmph."); + elseif(e.message:findi("avenge your brother")) then + e.self:Say("My brother was part of a raiding party that adventured into the Caverns of Guk. Somewhere within he was betrayed and left for dead by the dastardly brother of Karg IceBear - Martar. I want you to find me what remains of my brothers body and bring it back to me. I am told that he died within a mine shaft."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Wait, " .. e.other:GetCleanName() .. ", are you not forgetting something?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10528})) then + e.self:Say("You must be another one from Vilissia. I will tell you what I tell all the others--you must help me [avenge] my [brother] before I will help you attain Tishan's Kilt."); + e.other:QuestReward(e.self,0,0,0,0,18797,500); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10556})) then + e.self:Say("Oh Wulfthan, look what has become of you. I told you that you should not have trusted Martar. " .. e.other:GetCleanName() .. ", as a final service, I want you to kill Martar IceBear for me. He is known to roam these parts. Bring me the Warthread Kilt that he wears and my two reminder notes, and I will give to you Tishan's Kilt."); + e.other:QuestReward(e.self,0,0,0,0,18798,500); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1347,item2 = 18797,item3 = 18798},1,text)) then + e.self:Say("Ah, Wulfthan, you are at last avenged. Thank you, " .. e.other:GetCleanName() .. "- please take this kilt as a reward for services well done."); + e.other:QuestReward(e.self,0,0,0,0,2365,1500); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- Trankia \ No newline at end of file diff --git a/everfrost/Tundra_Jack.lua b/everfrost/Tundra_Jack.lua new file mode 100644 index 0000000..03f2639 --- /dev/null +++ b/everfrost/Tundra_Jack.lua @@ -0,0 +1,52 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good mining to you, kid! What are you doing way out here? You're gonna catch frostbite. The name's Tundra Jack, prospector supreme. Trained by the finest miners in Kaladim!! Me 'n [Iceberg] have been out here for three years now, searchin' fer fortune."); + elseif(e.message:findi("iceberg")) then + e.self:Say("Iceberg used to be a beast. He terrorized Halas for some time, then he met me. I tamed the beast and now he watches my back. You never know when the ice giants may go for a stroll from [Permafrost]."); + elseif(e.message:findi("permafrost")) then + e.self:Say("If I knew that, I would be swinging my picks inside it already! The entrance is said to be somewhere out here in Everfrost Peaks."); + elseif(e.message:findi("sweaty shirt")) then + e.self:Say("Looking fer that blasted shirt, huh? Well, as you can smell, I didn't get to washing it, but I wrapped it onto Iceberg's collar. I'd say you can have it, but Iceberg kind of likes it now. The only way you're gonna be able to grab it from him is to feed him his [favorite meal]."); + elseif(e.message:findi("favorite meal")) then + e.self:Say("Iceberg has some picky eating habits. If he can't catch any goblins, he prefers [Lion Delight]. Lion Delight is his favorite."); + elseif(e.message:findi("lion delight")) then + e.self:Say("I usually get Lion Delight from Teria O'Danos in Halas."); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("On my way, Iceberg!!"); + local mobtypeID = eq.get_entity_list():GetMobByNpcTypeID(30062); + + if(mobtypeID) then + local follow_mob = mobtypeID:GetID(); + eq.follow(follow_mob); + eq.stop_timer("follow"); + end + elseif(e.signal == 2) then + e.self:Say("Ha!! Looks like old Iceberg likes you. Either that or he's tasting you."); + elseif(e.signal == 3) then + eq.stop_follow(); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 14 or e.wp == 45) then + e.self:Say("Come on, Iceberg! Time to do a little mining."); + elseif(e.wp == 16 or e.wp == 17 or e.wp == 18 or e.wp == 47 or e.wp == 48) then + e.self:Say("Silver and Gold!!.. Silver and Gold!!"); + elseif(e.wp == 19 or e.wp == 49) then + e.self:Say("Nothin'!!"); + end +end + + + + + +-- END of FILE Zone:everfrost ID:30069 -- Tundra_Jack diff --git a/everfrost/goblin_lackey.lua b/everfrost/goblin_lackey.lua new file mode 100644 index 0000000..2563318 --- /dev/null +++ b/everfrost/goblin_lackey.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.set_timer("depop",600000); +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/everfrost/tainted_wooly_mammoth.lua b/everfrost/tainted_wooly_mammoth.lua new file mode 100644 index 0000000..c47572f --- /dev/null +++ b/everfrost/tainted_wooly_mammoth.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(30090,0,0,e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); +end \ No newline at end of file diff --git a/fearplane/Amygdalan_knight.lua b/fearplane/Amygdalan_knight.lua new file mode 100644 index 0000000..7898f2d --- /dev/null +++ b/fearplane/Amygdalan_knight.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end diff --git a/fearplane/Amygdalan_warrior.lua b/fearplane/Amygdalan_warrior.lua new file mode 100644 index 0000000..7898f2d --- /dev/null +++ b/fearplane/Amygdalan_warrior.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end diff --git a/fearplane/Cazic_Thule.lua b/fearplane/Cazic_Thule.lua new file mode 100644 index 0000000..d057e91 --- /dev/null +++ b/fearplane/Cazic_Thule.lua @@ -0,0 +1,127 @@ +-- Call All mobs to aid Cazic Thule if they're still alive + +function event_spawn(e) + eq.set_timer("Shout",600000); + -- use a timer for the zone repop so that the entire zone is not popping twice immediately on zone bootup. + eq.set_timer("RepopZone",5000); -- Uncomment this to Enabled zone repop on CT spawn. +end + +function event_say(e) + if(e.message:findi("gandan has failed in his task")) then + e.self:Emote("'s thoughts begin to pervade your own, they creep into your mind with great force. You feel pressure as if your head will explode. You see his thoughts becoming your own. You see in these visions a tome bound in flesh dropped to the ground. You then open your eyes to see that same book, and take it knowing that it was meant for you."); + e.other:SummonCursorItem(18898); -- Item: Flayed Skin Tome + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 8226, item2 = 18898, item3 = 18899})) then + e.self:Emote("seems pleased with the amount of pain that you have been able to inflict. Cazic Thule then grabs your hands and begins to infuse them with his power. Your hands burn like they were placed in lava for a moment, then feel cool as ice. You can feel the sheer power flowing through your new weapons of pain."); + e.other:QuestReward(e.self,0,0,0,0,7836,100000); -- Item: Whistling Fists + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_combat(e) + if (e.joined) then + -- call all mobs to assist + e.self:Shout("Denizens of Fear, your master commands you to come forth to his aid!!"); + call_zone_to_assist(e.self,e.other); + eq.stop_timer("Shout"); + eq.set_timer("come",300000); + else + eq.stop_timer("come"); + eq.set_timer("Shout",600000); + end +end + +function event_timer(e) + if(e.timer == "Shout" and eq.get_entity_list():GetClientList() ~= nil) then + e.self:Shout("Beware all infidels who dare to taint my plane, for I shall rend your minds with fright, dread, and terror!"); + -- most mobs have an answer to my shout + -- leave out broken golem, The Tempest Reaver, and Irak_Altil + send_signal_to_all_npc_in_zone(1, {72078,72074,72012}); + elseif(e.timer == "come") then + e.self:Shout("Denizens of Fear, your master commands you to come forth to his aid!!"); + call_zone_to_assist(e.self,e.other); + elseif(e.timer == "RepopZone") then + eq.spawn_condition("fearplane",1,0); + eq.spawn_condition("fearplane",1,1); + eq.stop_timer("RepopZone"); + end +end + +function event_death_complete(e) + eq.stop_timer("come"); +end + +function call_zone_to_assist(e_self,e_other) + -- set to true to enable debug messages + local show_debug = false; + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- aggro the zone onto whoever attacked me. + -- leave out broken golem, The Tempest Reaver, and Irak_Altil + local exclude_npc_list = Set {72078,72074,72012}; + local npc_list = entity_list:GetNPCList(); + if (npc_list ~= nil) then + for npc in npc_list.entries do + if (exclude_npc_list[npc:GetNPCTypeID()] == nil) then + -- npc.valid will be true if the NPC is actually spawned + if (npc.valid) then + if(npc:GetNPCTypeID() == 72000 or npc:GetNPCTypeID() == 72004 or npc:GetNPCTypeID() == 72002 or npc:GetNPCTypeID() == 72090) then + npc:CastToNPC():GMMove(e_self:GetX(),e_self:GetY(),e_self:GetZ(),0,true); + npc:CastToNPC():SaveGuardSpot(); + else + npc:CastToNPC():MoveTo(e_self:GetX(),e_self:GetY(),e_self:GetZ(),0,false); + end + if (show_debug) then e_other:Message(4,"NPCID: " .. npc:GetNPCTypeID() .. " is valid, adding hate on " .. npc:GetName() .. "."); end + else + if (show_debug) then e_other:Message(4,"NPCID: " .. npc:GetNPCTypeID() .. " is invalid, unable to add hate on " .. npc:GetName() .. "."); end + end + else + if (show_debug) then e_other:Message(4,"NPCID: " .. npc:GetNPCTypeID() .. " is excluded, not adding hate on " .. npc:GetName() .. "."); end + end + end + end +end + +function send_signal_to_all_npc_in_zone(signal_to_send,exclude_table) + -- set to true for debugging messages + local show_debug = false; + -- create list of NPCID that will not be signalled. + local exclude_npc_list = Set(exclude_table); + -- create empty table to track the NPCID that have had signals sent already + local signal_sent_to = {}; + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- get the list of npcs currently spawned in the zone + local npc_list = entity_list:GetNPCList(); + -- do not do anything if there are no NPC's spawned. should be an impossible check because this is in an NPC script + if(npc_list ~= nil) then + for npc in npc_list.entries do + if (exclude_npc_list[npc:GetNPCTypeID()] == nil and signal_sent_to[npc:GetNPCTypeID()] == nil) then + -- make sure the npc is valid (again, should never fail, but better to be certain. + if (npc.valid) then + if (show_debug) then eq.zone_emote(4,"NPCID: " .. npc:GetNPCTypeID() .. " is being sent signal " .. tostring(signal_to_send) .. "."); end + -- send signal to this NPCID + eq.signal(npc:GetNPCTypeID(),signal_to_send); + -- add this NPCID to the list of NPCID that we have already signalled + signal_sent_to[npc:GetNPCTypeID()] = true; + end + elseif(signal_sent_to[npc:GetNPCTypeID()] == true) then + if (show_debug) then eq.zone_emote(4,"NPCID: " .. npc:GetNPCTypeID() .. " has already been sent signal " .. tostring(signal_to_send) .. "."); end + elseif(exclude_npc_list[npc:GetNPCTypeID()] == true) then + if (show_debug) then eq.zone_emote(4,"NPCID: " .. npc:GetNPCTypeID() .. " is excluded and will not be sent signal " .. tostring(signal_to_send) .. "."); end + end + end + end +end + +-- Set function example from Programming In Lua +-- http://www.lua.org/pil/11.5.html +function Set (list) + local set = {} + for _, l in ipairs(list) do set[l] = true end + return set +end diff --git a/fearplane/Dread.lua b/fearplane/Dread.lua new file mode 100644 index 0000000..8ac6da4 --- /dev/null +++ b/fearplane/Dread.lua @@ -0,0 +1,13 @@ +--Spawns an iksar broodling on the death of the golems 75% of the time. + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end + +function event_death_complete(e) + if(math.random(100) > 24) then + eq.spawn2(72105,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + end +end diff --git a/fearplane/Fright.lua b/fearplane/Fright.lua new file mode 100644 index 0000000..8ac6da4 --- /dev/null +++ b/fearplane/Fright.lua @@ -0,0 +1,13 @@ +--Spawns an iksar broodling on the death of the golems 75% of the time. + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end + +function event_death_complete(e) + if(math.random(100) > 24) then + eq.spawn2(72105,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + end +end diff --git a/fearplane/Irak_Altil.lua b/fearplane/Irak_Altil.lua new file mode 100644 index 0000000..b56c5c0 --- /dev/null +++ b/fearplane/Irak_Altil.lua @@ -0,0 +1,46 @@ +-- Paladin Epic 1.0 +-- NPCID: 72078 +-- Zone: fearplane + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("turns its head upon its dried, cracked spine to look at you with a rictus grin. After staring through you it continues to walk on."); + end + if(e.message:findi("what are you mumbling about")) then + e.self:Emote("turns its rotted eyesockets towards you. 'Fallen light, upon this ground I fell. Left to rot, cast out. My holy arms stripped and my soul cast out of the halls. Twisted, failed, disgraced.'"); + end + if(e.message:findi("disgraced")) then + e.self:Say("Disgrace upon my soul for failing in my duties. Disgrace of my brethren."); + end + if(e.message:findi("duties")) then + e.self:Emote("breathes his words from his skeletal mouth as if wind through a valley. 'Sword, shield, breastplate. Twisted to Innoruuks foul will. Must be retrieved and cleansed else my soul is to wander for all time.'"); + end + if(e.message:findi("sword")) then + e.self:Say("Hands of a twisted brother no longer living."); + end + if(e.message:findi("shield")) then + e.self:Say("Earthly children of the god of hate. Keeping stand over his dark brothers and sisters."); + end + if(e.message:findi("breastplate")) then + e.self:Emote("lets loose an unearthly howl as it gleams with sickly light. 'Upon she who lured me from my post. In that place where hatred festers. Painful corruption.'"); + end + if(e.message:findi("cleansed")) then + e.self:Say("The sword must be dipped in water pure. Light of clean spirit to cleanse the shield. A gem of clarity unlike any other for the breastplate. All must be cleansed and returned to the temple for my soul to be freed. Only the temple can cleanse, only they can touch the artifacts. Take the sets of two to the temple. When they are all three cleansed separately take them to him who will grant me atonement."); + end +end + +function event_trade(e) + local item_lib = require("items"); + -- fiery avenger + mark of atonement + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29010, item2 = 11050})) then + e.self:Emote("screams so loudly it echoes across the valley as the mark and flames of your holy sword touch his rotted bones. As his body twists he quiets and then speaks. 'Your selflessness has made it possible to redeem my honor. With the cleansing of my corruption your own soul has been strengthened. Your power comes from your devotion to your god and with this you have been rewarded. Remember always your purity, devotion, and why you have sacrificed. I must go now to sacrifice myself upon the spear of pain.'"); + e.other:QuestReward(e.self,0,0,0,0,10099); --fiery defender + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:fearplane ID:72078 -- Irak_Altil +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/fearplane/Terror.lua b/fearplane/Terror.lua new file mode 100644 index 0000000..8ac6da4 --- /dev/null +++ b/fearplane/Terror.lua @@ -0,0 +1,13 @@ +--Spawns an iksar broodling on the death of the golems 75% of the time. + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end + +function event_death_complete(e) + if(math.random(100) > 24) then + eq.spawn2(72105,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + end +end diff --git a/fearplane/Wraith_of_a_Shissar.lua b/fearplane/Wraith_of_a_Shissar.lua new file mode 100644 index 0000000..7898f2d --- /dev/null +++ b/fearplane/Wraith_of_a_Shissar.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end diff --git a/fearplane/a_boogeyman.lua b/fearplane/a_boogeyman.lua new file mode 100644 index 0000000..7898f2d --- /dev/null +++ b/fearplane/a_boogeyman.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end diff --git a/fearplane/a_broken_golem.lua b/fearplane/a_broken_golem.lua new file mode 100644 index 0000000..d8cf75a --- /dev/null +++ b/fearplane/a_broken_golem.lua @@ -0,0 +1,10 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14319})) then + e.self:Say("Error! Malfunction! Destroy!"); + e.self:Say("A " .. e.other:Class() .. " like you always bring out the worst in me."); + eq.spawn2(72106,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end +end diff --git a/fearplane/a_decrepit_warder.lua b/fearplane/a_decrepit_warder.lua new file mode 100644 index 0000000..7898f2d --- /dev/null +++ b/fearplane/a_decrepit_warder.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end diff --git a/fearplane/a_dracoliche.lua b/fearplane/a_dracoliche.lua new file mode 100644 index 0000000..7898f2d --- /dev/null +++ b/fearplane/a_dracoliche.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end diff --git a/fearplane/a_fetid_fiend.lua b/fearplane/a_fetid_fiend.lua new file mode 100644 index 0000000..7898f2d --- /dev/null +++ b/fearplane/a_fetid_fiend.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end diff --git a/fearplane/a_frightfinger.lua b/fearplane/a_frightfinger.lua new file mode 100644 index 0000000..7898f2d --- /dev/null +++ b/fearplane/a_frightfinger.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end diff --git a/fearplane/a_glare_lord.lua b/fearplane/a_glare_lord.lua new file mode 100644 index 0000000..7898f2d --- /dev/null +++ b/fearplane/a_glare_lord.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end diff --git a/fearplane/a_gorgon.lua b/fearplane/a_gorgon.lua new file mode 100644 index 0000000..7898f2d --- /dev/null +++ b/fearplane/a_gorgon.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end diff --git a/fearplane/a_nightmare.lua b/fearplane/a_nightmare.lua new file mode 100644 index 0000000..7898f2d --- /dev/null +++ b/fearplane/a_nightmare.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end diff --git a/fearplane/a_phantasm.lua b/fearplane/a_phantasm.lua new file mode 100644 index 0000000..7898f2d --- /dev/null +++ b/fearplane/a_phantasm.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end diff --git a/fearplane/a_samhain.lua b/fearplane/a_samhain.lua new file mode 100644 index 0000000..7898f2d --- /dev/null +++ b/fearplane/a_samhain.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end diff --git a/fearplane/a_scareling.lua b/fearplane/a_scareling.lua new file mode 100644 index 0000000..7898f2d --- /dev/null +++ b/fearplane/a_scareling.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end diff --git a/fearplane/a_shiverback.lua b/fearplane/a_shiverback.lua new file mode 100644 index 0000000..7898f2d --- /dev/null +++ b/fearplane/a_shiverback.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end diff --git a/fearplane/a_spinechiller_spider.lua b/fearplane/a_spinechiller_spider.lua new file mode 100644 index 0000000..7898f2d --- /dev/null +++ b/fearplane/a_spinechiller_spider.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end diff --git a/fearplane/a_tentacle_tormentor.lua b/fearplane/a_tentacle_tormentor.lua new file mode 100644 index 0000000..7898f2d --- /dev/null +++ b/fearplane/a_tentacle_tormentor.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end diff --git a/fearplane/a_turmoil_toad.lua b/fearplane/a_turmoil_toad.lua new file mode 100644 index 0000000..7898f2d --- /dev/null +++ b/fearplane/a_turmoil_toad.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end diff --git a/fearplane/a_worry_wraith.lua b/fearplane/a_worry_wraith.lua new file mode 100644 index 0000000..7898f2d --- /dev/null +++ b/fearplane/a_worry_wraith.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end diff --git a/fearplane/phoboplasm.lua b/fearplane/phoboplasm.lua new file mode 100644 index 0000000..e17c03c --- /dev/null +++ b/fearplane/phoboplasm.lua @@ -0,0 +1,17 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Such is the will of Cazic-Thule!"); + end +end + +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("absorbs a discarded item into its corrosive body."); + end + end +end \ No newline at end of file diff --git a/feerrott/#Scout_Ahlikal.lua b/feerrott/#Scout_Ahlikal.lua new file mode 100644 index 0000000..868bf75 --- /dev/null +++ b/feerrott/#Scout_Ahlikal.lua @@ -0,0 +1,20 @@ +function event_spawn(e) + eq.set_timer("depop",3600000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9032})) then + e.self:Say("Amazing work, " .. e.other:GetCleanName() .. "! We are all in your debt. I have wrapped the totem to prevent its harmful magic from affecting you. Please keep it in the box until you can return it to Elder Dumul. If you have not found the other spirits, please seek them out. If you have filled the container, please seal it and return to Shar Vahl. Here is your seal. May the spirits watch over you."); + e.other:QuestReward(e.self,{items = {9031,9033},exp = 5000}); -- Item: Official Seal of the Khati Sha, Wrapped Spider Totem + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade); +end \ No newline at end of file diff --git a/feerrott/#The_Spirit_of_Decay.lua b/feerrott/#The_Spirit_of_Decay.lua new file mode 100644 index 0000000..3b381de --- /dev/null +++ b/feerrott/#The_Spirit_of_Decay.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + eq.set_timer("roar",1000); +end + +function event_timer(e) + if(e.timer == "roar") then + eq.stop_timer("roar"); + eq.set_timer("depop",1800000); + eq.zone_emote(0,"A large yellow spider drifts down from the jungle canopy. Perhaps it senses the proximity of its next meal."); + elseif(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_death_complete(e) + eq.unique_spawn(47005,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end diff --git a/feerrott/Annaelia_Wylassi.lua b/feerrott/Annaelia_Wylassi.lua new file mode 100644 index 0000000..2f23101 --- /dev/null +++ b/feerrott/Annaelia_Wylassi.lua @@ -0,0 +1,21 @@ +-- Annaelia Wylassi is a gnome necromancer for the Whistling Fists quest line. By interacting with her, we can get one of the sets of bones that we need to combine in Cazic Thule's pack. + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("If you have nothing other than a hail to offer me you best move along, I need concentration to study these odd bones that I unearthed. Funny thing about them though, they seem to resonate a hum. Quite unusual, you probably aren't [interested] in that though."); + elseif(e.message:findi("interested")) then + e.self:Say("Are you? I didn't take you for a necromancer. I tried to reanimate these remains but due to the vibration it was too unstable and collapsed. I have given up trying to animate them. I would need more supplies if I were to try again. I am too busy with other research to care though. If you are so interested you could go fetch the supplies for me. I suspect the bone structure is of a human, so I would need a vial of human blood. A jade inlaid coffin would be needed to perform the ritual in. Also a vial of clear mana to bind the bones with strong magic, and an essence emerald to complete the ritual."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 22514,item2 = 17355,item3 = 10252,item4 = 9963})) then + e.self:Say("I will now try the reanimation.' Streams of mana surround the bones but nothing happens. Annaelia looks annoyed. 'Worthless bones! Why do they hum like this? Grah, I don't care I have too much to study. You want them? Take them!"); + e.other:QuestReward(e.self,0,0,0,0,7984,60000); -- Item: Resonant Bone Chips + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EOF Annaelia_Wylassi \ No newline at end of file diff --git a/feerrott/Aqaar_Aluram.lua b/feerrott/Aqaar_Aluram.lua new file mode 100644 index 0000000..efa546b --- /dev/null +++ b/feerrott/Aqaar_Aluram.lua @@ -0,0 +1,40 @@ +function event_say(e) + if (e.message:findi("hail") ) then + e.self:Say("Hail traveler. may I assist you with something. or are you just passing through?"); + + elseif ( e.message:findi("passing through") ) then + e.self:Say("Very well friend. please take care when passing beyond the river to the east. Several researchers and their mercenary escort passed through our camp en route to the temple. That was last week and they have yet to return. We are holding off on our expedition until we can learn more about what happened to them."); + + elseif ( e.message:findi("temple") ) then + e.self:Say("The temple of the lizardmen. The lost temple of Cazic-thule. It's just to the east of here.. across the river."); + + elseif ( e.message:findi("expedition") ) then + e.self:Say("Several weeks ago, I received the news from M'lady Morkul that the Academy was researching this temple. It had been years since I last visited this site, so naturally I was interested. Of course, that was before we set camp in this accursed place. I must be honest; I was quite ready to leave after our first night here."); + + elseif ( e.message:findi("first night") ) then + e.self:Say("After securing the site, we set sentinels to alert us to any patrols or prying jungle eyes. Unfortunately, our magic did little to provide us with a night's rest that eve. The incessant sound of drums and the screams from within the temple had little regard for our lack of rest and already nervous disposition. Several times during the course of my slumber that night, I was taunted by foul visions of an unnatural sort."); + + elseif ( e.message:findi("visions") ) then + e.self:Say("My mind was filled with images of grotesque rituals. The lizards that inhabit that place were gathered around magical portals, chanting in a tongue too wretched to recall. As they spoke and danced, the denizens of some horrid void were pouring from the shimmering rifts! I awoke to find the others in the same state of horror! When I gathered my senses, I noticed that all of our equipment has been covered in some sort of black ooze, though our sentinels displayed no signs of having been triggered."); + + elseif ( e.message:findi("ooze") ) then + e.self:Say("'I really cannot recall much about the ooze. We have noticed that our memories seem to be affected by this place as well. I know that the ooze was present when we awoke, but it seemed to have been absorbed into the ground. It moved on its own volition. That is all that I can recall"); + + elseif ( e.message:findi("others") ) then + e.self:Say("There was a story that floated about when I was a student. In summary, there was a tome of similar nature to the Phobonomicon. An ambitious mage recovered the tome from the possession of several faceless creatures in the Abysmal Sea. This mage reportedly went quite insane. The story claims that his last act of madness was to cast the tome into a living rift of matter. The rift then opened and released a creature of an unspeakable nature. This cured the mage of his problems... for good. That is why you should return all items of that sort to me."); + + elseif ( e.message:findi("phobonomicon") ) then + e.self:Say("A Phobonomicon, book of fear, is rumored to be creatable through the use of rituals and tools too disturbing to describe. Once the ritual or process is complete, the book will begin to take on its own... life, for lack of a better word. The book of fear is capable of unthinkable magic. Watch yourself, should you stumble into such a tome."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if ( item_lib.check_turn_in(e.self, e.trade, {item1 = 8720}) ) then + e.self:Say("Thank you for returning this to us. I'll secure it until it can be returned for analysis. Please take this as a sign of my appreciation."); + e.other:QuestReward(e.self, 0, 0, 0, 0, 8732, 100000); -- Item: Medallion of the Arcane Scientists + e.other:GiveCash(0, 0, 0, 1); + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/feerrott/Drizda_Tunesinger.lua b/feerrott/Drizda_Tunesinger.lua new file mode 100644 index 0000000..64622f1 --- /dev/null +++ b/feerrott/Drizda_Tunesinger.lua @@ -0,0 +1,14 @@ +--Quest Name: Bard Mail Quest + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail. " .. e.other:GetCleanName() .. " - Are you [interested] in helping the League of Antonican Bards by delivering some [mail]?"); + elseif(e.message:findi("mail") and not e.message:findi("deliver") and not e.message:findi("freeport")) then + e.self:Say("The League of Antonican Bards has a courier system made up of travelers and adventurers. We pay good gold to anyone who will take messages from bards such as myself to one of our more distant offices. Are you [interested]?"); + elseif(e.message:findi("interested")) then + e.self:Say("I have messages that need to go to - well, right now I have one that needs to go to Freeport. Will you [deliver] mail [to Freeport] for me?"); + elseif(e.message:findi("deliver") or e.message:findi("freeport")) then + e.self:Say("Take this letter to Felisity Starbright. You can find her at the bard guild hall. I'm sure she will compensate you for your trouble."); + e.other:SummonCursorItem(18157); -- Item: Bardic Letter (Freeport) + end +end diff --git a/feerrott/Eleann_Morkul.lua b/feerrott/Eleann_Morkul.lua new file mode 100644 index 0000000..5712964 --- /dev/null +++ b/feerrott/Eleann_Morkul.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome friend. you're a great leap from any sort of civilization. What brings you to this foul place? Are you an adventurer or just a connoisseur of wretched foliage and damp clothing?"); + elseif(e.message:findi("adventurer")) then + e.self:Say("Well. I gathered as much. but I try to avoid assumptions. Are you by chance heading to the temple? It seems to be quite a draw for adventurers and academics alike. Though we've yet to witness either group leave the structure once they've entered it."); + elseif(e.message:findi("to the temple")) then + e.self:Say("Well. take care and prepare for the most horrific of possibilities. my friend. Our trip has been terrifying enough and we've yet to enter the temple itself. I've seen enough from here to confirm some of the rumors that we were sent to investigate."); + elseif(e.message:findi("rumors")) then + e.self:Say("The Academy sent my colleagues and I to investigate several reports about Tae Ew tribal activity that have found their way to Freeport during the course of the last lunar cycle. The rumors stated that the primitive creatures have made several great discoveries of a necromantic nature in an incredibly short time. I was assigned to gather any artifacts and information that I could uncover. If you should learn more about their magic. please return to me before we leave and you will be rewarded."); + elseif(e.message:findi("magic")) then + e.self:Say("The Tae Ew have never been brilliant. but their capability for magic use has always existed. It was shocking to learn that they have been reported to have opened portals to Planes of existence outside of our own. The Tae Ew have also begun to display a metamorphic progression as well. Given the rate at which these changes have occurred. we can only assume that they are being directed by a will greater than their own."); + elseif(e.message:findi("connoisseur")) then + e.self:Say("Well. enjoy yourself. I know that I've had quite enough of it myself."); + elseif(e.message:findi("what temple")) then + e.self:Say("The temple of the lizardmen. The lost temple of Cazic-thule. It's just to the east of here... across the river."); + end +end + +-- END of FILE Zone:feerrott ID:47131 -- Eleann_Morkul \ No newline at end of file diff --git a/feerrott/Innkeep_Gub.lua b/feerrott/Innkeep_Gub.lua new file mode 100644 index 0000000..d824b37 --- /dev/null +++ b/feerrott/Innkeep_Gub.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Huh? Oh hi " .. e.other:GetCleanName() .. ". Youse want to buy sumthin?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("MMmmm... Deez look like gud muffins. Here's sum money. Tanks. Now meez all stocked again."); + e.other:Faction(e.self,338,2); -- Faction: Merchants of Oggok + e.other:Faction(e.self,228,1); -- Faction: Clurg + e.other:Faction(e.self,337,1); -- Faction: Oggok Guards + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("You nice for getting bread loaves for us. You take some money. Weeze happy now dat weeze got more bread for sale. You maybe check back later if weeze run out of bread again."); + e.other:Faction(e.self,338,4); -- Faction: Merchants of Oggok + e.other:Faction(e.self,228,3); -- Faction: Clurg + e.other:Faction(e.self,337,3); -- Faction: Oggok Guards + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/feerrott/Innkeep_Morpa.lua b/feerrott/Innkeep_Morpa.lua new file mode 100644 index 0000000..07bedb3 --- /dev/null +++ b/feerrott/Innkeep_Morpa.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hullo. Buy sum of my stuff."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("Nice muffins, very stinky. Weeze tank you. Here some money. Weeze need more muffins later. You check back again sum time."); + e.other:Faction(e.self,338,2); -- Faction: Merchants of Oggok + e.other:Faction(e.self,228,1); -- Faction: Clurg + e.other:Faction(e.self,337,1); -- Faction: Oggok Guards + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("You nice for getting bread loaves for us. You take some money. Weeze happy now dat weeze got more bread for sale. You maybe check back later if weeze run out of bread again."); + e.other:Faction(e.self,338,4); -- Faction: Merchants of Oggok + e.other:Faction(e.self,228,3); -- Faction: Clurg + e.other:Faction(e.self,337,3); -- Faction: Oggok Guards + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/feerrott/Klob_Pulp.lua b/feerrott/Klob_Pulp.lua new file mode 100644 index 0000000..a09acf1 --- /dev/null +++ b/feerrott/Klob_Pulp.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Just cuz we live in da swamp don't mean youse gotta stay in da dark. Da Swamp News got all da news. And it ain't go no big wurds in it like da other news'es out dair."); + end +end + +-- END of FILE Zone:feerrott ID:49071 -- Klob_Pulp \ No newline at end of file diff --git a/feerrott/Oknoggin_Stonesmacker.lua b/feerrott/Oknoggin_Stonesmacker.lua new file mode 100644 index 0000000..78f8e06 --- /dev/null +++ b/feerrott/Oknoggin_Stonesmacker.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Yoo leave me 'lone!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20673})) then + e.self:Emote("snatches the note from your hand and rips it open with his large hands. 'You take dis to Kargek. He want!'"); + e.other:QuestReward(e.self,0,0,0,0,20674,1000); -- Tiny Lute + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:feerrott ID:47126 -- Oknoggin_Stonesmacker \ No newline at end of file diff --git a/feerrott/Roror.lua b/feerrott/Roror.lua new file mode 100644 index 0000000..1446edd --- /dev/null +++ b/feerrott/Roror.lua @@ -0,0 +1,33 @@ +function event_combat(e) + if(e.joined) then + if(math.random(2) == 1) then + e.self:Say("" .. e.other:Race() .. "s like you are better left dead than alive."); + else + e.self:Say("You ssssshall know the horror of Cazic-Thule!"); + end + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greeetingsssssssssss. What brings sssssuch asssss you to the heart of the Feerrott? Do you [know fear]?"); + elseif(e.message:findi("know fear")) then + e.self:Say("Yesssss. I can tassssste the fear in your pitiful heart. I am Roror, High Priessst of Cazic-Thule! I sssseek to sssssspread terror acrossssss all of Norrath! I ssssshall let you live thisss day so you can sssshare the fear that liessss within you."); + elseif(e.message:findi("know no fear")) then + e.self:Say("YOU SSSSSSHALL! For I, Roror, High Prissst of Cazic-Thule, I sssshall teach you!"); + eq.attack(e.other:GetName()); + elseif(e.message:findi("hay")) then + e.self:Say("You sssseek the blesssssssing of the Lord of Fear?! Give me what you have and 66 gold pieces as an offering to Cazic-Thule."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Yesss. But remember, Cazic-Thule demandsssss both the item and 66 gold piecessss assssss an offering."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13990,gold = 66},1,text)) then + e.self:Say("Whatsssss thisssss? You sssseek my blessssssssing? Heh heh heh... Very well... CAZIC-THULE! Take this fruit of Karana into horror'sss dark embrace. Fear and death made manifesssssst. A harvesssst of terror! Here, take your gift of blood and sssstraw. Use its dark powersssss in the name of the Fear Lord!"); + e.other:QuestReward(e.self,0,0,0,0,14320,300); -- Item: Sack of Cursed Hay + end + item_lib.return_items(e.self, e.other, e.trade); +end \ No newline at end of file diff --git a/feerrott/Scout_Ahlikal.lua b/feerrott/Scout_Ahlikal.lua new file mode 100644 index 0000000..b1672fa --- /dev/null +++ b/feerrott/Scout_Ahlikal.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It is a pleasure to meet you, but I do not have time to speak. I am waiting on official word from Shar Vahl. If you have been sent to assist me, please show me the Official Seal of the Khati Sha at this time. If you are not such a person, please carry on with your business and leave me to tend to mine."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9031})) then + e.self:Say("Well met, I'm glad that you made it! This jungle is oppressive, with its dank earth and dark canopy. The sooner you dispatch that spirit, the sooner we can both make our way out of this vile place. Move towards the ruins that lie about two hundred feet from here. The spirit will be there. Release it from its current form and return the totem to me. I will wrap it for you, so that you may place it in the container that you should have been given. Take care and be swift!"); + eq.spawn2(47205,0,0,-2857,1133,1,0); -- NPC: The_Spirit_of_Decay + eq.unique_spawn(47004,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade); +end \ No newline at end of file diff --git a/feerrott/Spanner_Scrapsnatcher.lua b/feerrott/Spanner_Scrapsnatcher.lua new file mode 100644 index 0000000..358546c --- /dev/null +++ b/feerrott/Spanner_Scrapsnatcher.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You know, you can go greet yourself. Converse with yourself and then see yourself off while you're at it. I've had enough of this place. To be honest, I've just thought about it and I think that I've had quite enough of you as well. So mate, unless you're holding my bag of fame and fortune... as promised to me last week by our huge headed friend over there... I think that it would be best if you shambled off. Please feel free to take the Erudite with you."); + elseif(e.message:findi("fame and fortune")) then + e.self:Say("Oh dun give me the 'what fame and fortune routine'. I'm sure that you're not poking around in the dark jungle because you heard some orphans needed rescuing, you greedy looking wretch. Bah... you've heard the stories about the temple too, haven't ya? That is of course why you're here, right? Looking for your cut?"); + elseif(e.message:findi("stories")) then + e.self:Say("The lass here told me that she'd be needing me to do some poking around in that temple. Of course being the handsome gentleman that I am and all, I told her that I'd take a look or two. You know a charitable and chivalrous bloke like me would perform such a task for free, but then the Errordite has to go and pry me with stories of riches and... err... a little fame. So, I says, sure... I'll do it since you're begging me and all... now look at us. Deep in the swamp and covered in black monster mucous."); + elseif(e.message:findi("black monster mucous")) then + e.self:Say("I dunno what to tell you. I woke up our first morning here to find all of my gear covered in this nasty slime. Most of the stuff crawled off, but now our goods are ruined. I'll be happy when I can get a nice change of clothes. If you happen into some sporty gnome sized clothing let me know."); + end +end + +-- End of File zone: feerot ID: 47130 -- Spanner Scrapsnatcher \ No newline at end of file diff --git a/feerrott/Yekan_the_Weaver.lua b/feerrott/Yekan_the_Weaver.lua new file mode 100644 index 0000000..feb4589 --- /dev/null +++ b/feerrott/Yekan_the_Weaver.lua @@ -0,0 +1,9 @@ +function event_spawn(e) + eq.set_timer("depop",20000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end diff --git a/felwithea/Arrias_Arcanum.lua b/felwithea/Arrias_Arcanum.lua new file mode 100644 index 0000000..d3494aa --- /dev/null +++ b/felwithea/Arrias_Arcanum.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am sorry, young one, but I am too burdened by my own [troubles] to help you now. Please seek another of the faith to ease your soul."); + elseif(e.message:findi("trouble")) then + e.self:Say("My son Ariam, a paladin of this fair city, has been missing for many years. Now, after remaining hopeful for so long, I have given up and it has broken my heart and soul. If I could but hear news to know of his fate, then I could find comfort again. Until then, I am no good to others. I am sorry."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31493})) then + e.self:Say("This! This is the gift my daughter gave Ariam to aid his cause. This too is the piece of my soul that was missing. Your news of his fate is troubling, yet his heroism even beyond this life is cause for celebration. Here, keep this token. My heart is mended and I have no need of it. Once such as yourself who will continue to fight for the things in which my son believes ought to bear this. I am sure my daughter would agree."); + e.other:Faction(e.self,226,5,0); -- Clerics of Tunare + e.other:Faction(e.self,279,5,0); -- King Tearis Thex + e.other:Faction(e.self,5002,3,0); -- Anti-Mage + e.other:QuestReward(e.self,0,0,0,0,31495,300); -- Item: Arriallas Token + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/felwithea/Bedida_Claygrinder.lua b/felwithea/Bedida_Claygrinder.lua new file mode 100644 index 0000000..0ab716b --- /dev/null +++ b/felwithea/Bedida_Claygrinder.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. "! These are exciting times indeed! Tanalin and myself have been working on some new [mithril armor], using a few new techniques introduced to us by... A friend.' Bedida looks hesitant, then smiles again. 'Very exciting indeed!'"); + elseif(e.message:findi("mithril armor")) then + e.self:Say("Mithril is the ore used here in Felwithe for centuries, as well you may know. We've been working on a set of [chainmail] and a set of [platemail]. Either can be worked with a blessed emerald to imbue it with the Elfmother's touch. Tanalin works them in the Felwithe Forge."); + elseif(e.message:findi("chainmail")) then + e.self:Say("Much like Talalin's traditional chain armor, this is so light that it can be worn by our spellweavers, the Keepers of the Art! Using moonlight temper, silk, an elven hammer, the relevant chainmail pattern, and some [infused rings], the armor is made."); + elseif(e.message:findi("rings")) then + e.self:Say("Taking a few velium rings, work in an enchanted large brick of mithril, using your elven hammer and some [magical temper]."); + elseif(e.message:findi("platemail")) then + e.self:Say("From enchanted mithril chain jointing, moonlight temper, a plate mold, your elven hammer, leather padding, and sheets of infused mithril is it made. From a folded sheet of velium, with elven hammer and an enchanted large brick of mithril come these latter components, though you will also need some [magical temper]."); + elseif(e.message:findi("temper")) then + e.self:Say("Now, this magical temper is strange stuff, we acquired a limited quantity from our... friend. I don't know from where it comes, or from it is made, but I do know that it allows us to make amazingly light, yet strong armor!"); + end +end + + diff --git a/felwithea/Challice.lua b/felwithea/Challice.lua new file mode 100644 index 0000000..5fb74ab --- /dev/null +++ b/felwithea/Challice.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You! Remove yourself from my presence! Do you not know to whom you speak? My husband is a very powerful noble and if you do not do as I say. he will have your head!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14334})) then -- Arantir's Ring 1st version + e.self:Say("Oh yes? Arantir? What a fool he was! the man gave me everything, but for all his intelligence, he could never understand why I was truly with him. It was for his power; he could do anything. But when he mysteriously lost it, he became just another toy. I never loved him. Return this ring to him. He will understand that I have no desire to see him again."); + e.other:Faction(e.self,404, 10,0); -- Truespirit + e.other:QuestReward(e.self,0,0,0,0,14335,100000); -- Arantir's Ring 2nd version + end + item_lib.return_items(e.self, e.other, e.trade); +end + +--END of FILE Zone:felwithea ID:61006 -- Challice diff --git a/felwithea/Elia_the_Pure.lua b/felwithea/Elia_the_Pure.lua new file mode 100644 index 0000000..df77385 --- /dev/null +++ b/felwithea/Elia_the_Pure.lua @@ -0,0 +1,25 @@ +-- Paladin Epic 1.0 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail to you, friend. If you require assistance, please ask, if not I must return to my tasks."); + elseif(e.message:findi("task")) then + e.self:Say("It is here that the light shines brightest in our fair city. Here I sit, transcribing scrolls of luminescence. Spells to light the dark, to blind the evil with purity, or to heal those in pain. I find it so much easier to work with such spells if I am in the light itself."); + elseif(e.message:findi("purity")) then + e.self:Say("Cleansing and such. Often our temple will cleanse evil. If you have need of such a thing, I can help. Merely let me examine the item."); + elseif(e.message:findi("assistance")) then + e.self:Say("Our halls are nearby. The priests are happy to bless you there."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29002})) then -- tainted darksteel shield + e.self:Emote("squints and turns her head. 'By the gods, such a twisted aura this has! To see it hurts my eyes. I will help you if for no other reason than to remove such a twisted thing from existence.' She unrolls a scroll from her pack and softly chants over the dark metal shield. She hands it back to you with an exhausted smile on her face. 'Your heart seems pure. If I was able to help at all, I am honored. May the light shine warmly upon you.'"); + e.other:QuestReward(e.self,0,0,0,0,29005); -- gleaming crested shield + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:felwithea ID:61013 -- Elia_the_Pure \ No newline at end of file diff --git a/felwithea/General_Jyleel.lua b/felwithea/General_Jyleel.lua new file mode 100644 index 0000000..eb8d27f --- /dev/null +++ b/felwithea/General_Jyleel.lua @@ -0,0 +1,72 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Stand at attention!! I am General Jyleel. of the Koada'Vie. defenders of Felwithe. Do you [follow Tunare]. the Mother of All. or do you still [seek your enlightenment]?"); + elseif(e.message:findi("follow tunare")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Then you are wise indeed. Would you like to [assist the defenders] in our conflicts or have you other business to attend to?"); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("No. You have yet to prove yourself a truly faithful defender of the Clerics of Tunare. I await your return when you complete your service to the temple."); + else + e.self:Say("You have some nerve to approach a loyal member of the Paladins of Tunare! Run, while you can!"); + end + elseif(e.message:findi("seek my enlightenment")) then + e.self:Say("Then seek it within these walls. We welcome all fine upstanding Koada'Dal."); + elseif(e.message:findi("assist the defenders")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Seek out the Crushbone orcs of the Faydarks. We must have their oracle scrolls. They are illegible to you, but we will study them here in Felwithe. Only the orc oracles will carry them, so be very careful. There is also the problem with the [Crushbone runners]."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("No. You have yet to prove yourself a truly faithful defender of the Clerics of Tunare. I await your return when you complete your service to the temple."); + else + e.self:Say("You have some nerve to approach a loyal member of the Paladins of Tunare! Run, while you can!"); + end + elseif(e.message:findi("crushbone runners")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The Crushbone orcs are sending messages across the Ocean of Tears to Antonica. Why. we do not know. The runner is usually spotted on the open pathways of Butcherblock. running toward the docks. Find him. kill him. and return his note pouch."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("No. You have yet to prove yourself a truly faithful defender of the Clerics of Tunare. I await your return when you complete your service to the temple."); + else + e.self:Say("You have some nerve to approach a loyal member of the Paladins of Tunare! Run, while you can!"); + end + elseif(e.message:findi("faithful paladin")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I command you to seek out this Ambassor DVinn and rip his heart from his lifeless body. Next, find the supreme caster of the orcs and, finally, find the spot where supplies are dropped by the Teir`Dal for the orcs. There you should find the supply crate. Return all 3 items and you shall wield the falchion."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("No. You have yet to prove yourself a truly faithful defender of the Clerics of Tunare. I await your return when you complete your service to the temple."); + else + e.self:Say("You have some nerve to approach a loyal member of the Paladins of Tunare! Run, while you can!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13225})) then + e.self:Say("Very fine work. A pity you are not Koada'Vie. Here is a small reward for you. Anytime you come upon an oracle. remember to return its scroll to me. Go and find your fate on the field of battle."); + e.other:Faction(e.self,226,5,0); -- Clerics of Tunare + e.other:Faction(e.self,279,5,0); -- King Tearis Thex + e.other:Faction(e.self,5002,3,0); -- Anti Mage + e.other:QuestReward(e.self,math.random(9),math.random(9),0,0,eq.ChooseRandom(15025, 15033, 15032, 15623, 13003, 13004, 14013, 7001, 13005, 13009),500); -- Spells: Pillage Enchantment, Brilliance, Plague, Minor Conjuration:Air , Large Lantern, Small Lantern, Potion of Sustenance, Dagger, Iron Ration, Bandage + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13226})) then + e.self:Say("So, you succeeded in stopping a Crushbone runner! That is good. Now take this as reward. Keep up your fine work. The people of Felwithe are grateful."); + e.other:Faction(e.self,226,5,0); -- Clerics of Tunare + e.other:Faction(e.self,279,5,0); -- King Tearis Thex + e.other:Faction(e.self,5002,3,0); -- Anti Mage + e.other:QuestReward(e.self,math.random(9),math.random(9),0,0,eq.ChooseRandom(15025, 15033, 15032, 15623, 13003, 13004, 14013, 7001, 13005, 13009),500); -- Set same rewards as his other quest, comments showed some crossover in rewards but need to find more + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18840})) then + e.self:Say("So, the Teir'Dal are behind the recent advances of the orcs?!! Your news has shed light on their union. It is time to step forth and prove yourself a [faithful paladin of this court]."); + e.other:Faction(e.self,226,10,0); -- Clerics of Tunare + e.other:Faction(e.self,279,10,0); -- King Tearis Thex + e.other:Faction(e.self,5002,7,0); -- Anti Mage + e.other:QuestReward(e.self,0,0,0,0,0,1000); + elseif(e.other:GetFactionValue(e.self) >= 200 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12330,item2 = 12329,item3 = 13227})) then -- A Large Locked Crate, Blue Orc Head, Black Heart + e.self:Say("'A noble deed has been done and the alliance of evil has been stalled. I present you with the falchion of the Koada`Vie. You are now an honorable member of our order. Hail Felwithe, and may you defender her with honor."); + e.other:Faction(e.self,226,50,0); -- Clerics of Tunare + e.other:Faction(e.self,279,50,0); -- King Tearis Thex + e.other:Faction(e.self,5002,3,0); -- Anti Mage + e.other:QuestReward(e.self,0,0,0,0,5379,1500); -- Falchion of the Koada'Vie + end + item_lib.return_items(e.self, e.other, e.trade); +end + +--END of FILE Zone:felwithea ID:61026 -- General_Jyleel diff --git a/felwithea/Guard_Allmayn.lua b/felwithea/Guard_Allmayn.lua new file mode 100644 index 0000000..c697d64 --- /dev/null +++ b/felwithea/Guard_Allmayn.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("Looking for supplies, are we? Doing a bit of adventuring? You'd best head over to Rolyn Longwalker's shop, Beyond Faydark. It would be next to Faydark's Bane."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All three circles of magic can be found at the Keepers of the Art. They are just past the fishing shop near the lake."); + elseif(e.message:findi("forge")) then + e.self:Say("We have a pair of forges available for public use. You can find them inside the Emerald Armor."); + elseif(e.message:findi("bank")) then + e.self:Say("If you are searching for a bank, go to the center of town. There you shall find the Felwithe Keeper."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("Need to rest? Just go to the left of the paladin's temple and you can find the Traveler's Home."); + elseif(e.message:findi("tavern")) then + e.self:Say("Tovanik's Venom is what you are seeking. It is near the local inn."); + elseif(e.message:findi("weapon")) then + e.self:Say("Look to the right of the paladin's temple and you shall find Faydark's Bane. It is one of the finest weapons shops in Faydwer. Their longswords, especially, are in high demand."); + end +end \ No newline at end of file diff --git a/felwithea/Guard_Crucorn.lua b/felwithea/Guard_Crucorn.lua new file mode 100644 index 0000000..c697d64 --- /dev/null +++ b/felwithea/Guard_Crucorn.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("Looking for supplies, are we? Doing a bit of adventuring? You'd best head over to Rolyn Longwalker's shop, Beyond Faydark. It would be next to Faydark's Bane."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All three circles of magic can be found at the Keepers of the Art. They are just past the fishing shop near the lake."); + elseif(e.message:findi("forge")) then + e.self:Say("We have a pair of forges available for public use. You can find them inside the Emerald Armor."); + elseif(e.message:findi("bank")) then + e.self:Say("If you are searching for a bank, go to the center of town. There you shall find the Felwithe Keeper."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("Need to rest? Just go to the left of the paladin's temple and you can find the Traveler's Home."); + elseif(e.message:findi("tavern")) then + e.self:Say("Tovanik's Venom is what you are seeking. It is near the local inn."); + elseif(e.message:findi("weapon")) then + e.self:Say("Look to the right of the paladin's temple and you shall find Faydark's Bane. It is one of the finest weapons shops in Faydwer. Their longswords, especially, are in high demand."); + end +end \ No newline at end of file diff --git a/felwithea/Guard_Evital.lua b/felwithea/Guard_Evital.lua new file mode 100644 index 0000000..c697d64 --- /dev/null +++ b/felwithea/Guard_Evital.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("Looking for supplies, are we? Doing a bit of adventuring? You'd best head over to Rolyn Longwalker's shop, Beyond Faydark. It would be next to Faydark's Bane."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All three circles of magic can be found at the Keepers of the Art. They are just past the fishing shop near the lake."); + elseif(e.message:findi("forge")) then + e.self:Say("We have a pair of forges available for public use. You can find them inside the Emerald Armor."); + elseif(e.message:findi("bank")) then + e.self:Say("If you are searching for a bank, go to the center of town. There you shall find the Felwithe Keeper."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("Need to rest? Just go to the left of the paladin's temple and you can find the Traveler's Home."); + elseif(e.message:findi("tavern")) then + e.self:Say("Tovanik's Venom is what you are seeking. It is near the local inn."); + elseif(e.message:findi("weapon")) then + e.self:Say("Look to the right of the paladin's temple and you shall find Faydark's Bane. It is one of the finest weapons shops in Faydwer. Their longswords, especially, are in high demand."); + end +end \ No newline at end of file diff --git a/felwithea/Guard_Hutian.lua b/felwithea/Guard_Hutian.lua new file mode 100644 index 0000000..c697d64 --- /dev/null +++ b/felwithea/Guard_Hutian.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("Looking for supplies, are we? Doing a bit of adventuring? You'd best head over to Rolyn Longwalker's shop, Beyond Faydark. It would be next to Faydark's Bane."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All three circles of magic can be found at the Keepers of the Art. They are just past the fishing shop near the lake."); + elseif(e.message:findi("forge")) then + e.self:Say("We have a pair of forges available for public use. You can find them inside the Emerald Armor."); + elseif(e.message:findi("bank")) then + e.self:Say("If you are searching for a bank, go to the center of town. There you shall find the Felwithe Keeper."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("Need to rest? Just go to the left of the paladin's temple and you can find the Traveler's Home."); + elseif(e.message:findi("tavern")) then + e.self:Say("Tovanik's Venom is what you are seeking. It is near the local inn."); + elseif(e.message:findi("weapon")) then + e.self:Say("Look to the right of the paladin's temple and you shall find Faydark's Bane. It is one of the finest weapons shops in Faydwer. Their longswords, especially, are in high demand."); + end +end \ No newline at end of file diff --git a/felwithea/Guard_Jassong.lua b/felwithea/Guard_Jassong.lua new file mode 100644 index 0000000..c697d64 --- /dev/null +++ b/felwithea/Guard_Jassong.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("Looking for supplies, are we? Doing a bit of adventuring? You'd best head over to Rolyn Longwalker's shop, Beyond Faydark. It would be next to Faydark's Bane."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All three circles of magic can be found at the Keepers of the Art. They are just past the fishing shop near the lake."); + elseif(e.message:findi("forge")) then + e.self:Say("We have a pair of forges available for public use. You can find them inside the Emerald Armor."); + elseif(e.message:findi("bank")) then + e.self:Say("If you are searching for a bank, go to the center of town. There you shall find the Felwithe Keeper."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("Need to rest? Just go to the left of the paladin's temple and you can find the Traveler's Home."); + elseif(e.message:findi("tavern")) then + e.self:Say("Tovanik's Venom is what you are seeking. It is near the local inn."); + elseif(e.message:findi("weapon")) then + e.self:Say("Look to the right of the paladin's temple and you shall find Faydark's Bane. It is one of the finest weapons shops in Faydwer. Their longswords, especially, are in high demand."); + end +end \ No newline at end of file diff --git a/felwithea/Guard_Kiston.lua b/felwithea/Guard_Kiston.lua new file mode 100644 index 0000000..c697d64 --- /dev/null +++ b/felwithea/Guard_Kiston.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("Looking for supplies, are we? Doing a bit of adventuring? You'd best head over to Rolyn Longwalker's shop, Beyond Faydark. It would be next to Faydark's Bane."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All three circles of magic can be found at the Keepers of the Art. They are just past the fishing shop near the lake."); + elseif(e.message:findi("forge")) then + e.self:Say("We have a pair of forges available for public use. You can find them inside the Emerald Armor."); + elseif(e.message:findi("bank")) then + e.self:Say("If you are searching for a bank, go to the center of town. There you shall find the Felwithe Keeper."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("Need to rest? Just go to the left of the paladin's temple and you can find the Traveler's Home."); + elseif(e.message:findi("tavern")) then + e.self:Say("Tovanik's Venom is what you are seeking. It is near the local inn."); + elseif(e.message:findi("weapon")) then + e.self:Say("Look to the right of the paladin's temple and you shall find Faydark's Bane. It is one of the finest weapons shops in Faydwer. Their longswords, especially, are in high demand."); + end +end \ No newline at end of file diff --git a/felwithea/Guard_Legver.lua b/felwithea/Guard_Legver.lua new file mode 100644 index 0000000..c697d64 --- /dev/null +++ b/felwithea/Guard_Legver.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("Looking for supplies, are we? Doing a bit of adventuring? You'd best head over to Rolyn Longwalker's shop, Beyond Faydark. It would be next to Faydark's Bane."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All three circles of magic can be found at the Keepers of the Art. They are just past the fishing shop near the lake."); + elseif(e.message:findi("forge")) then + e.self:Say("We have a pair of forges available for public use. You can find them inside the Emerald Armor."); + elseif(e.message:findi("bank")) then + e.self:Say("If you are searching for a bank, go to the center of town. There you shall find the Felwithe Keeper."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("Need to rest? Just go to the left of the paladin's temple and you can find the Traveler's Home."); + elseif(e.message:findi("tavern")) then + e.self:Say("Tovanik's Venom is what you are seeking. It is near the local inn."); + elseif(e.message:findi("weapon")) then + e.self:Say("Look to the right of the paladin's temple and you shall find Faydark's Bane. It is one of the finest weapons shops in Faydwer. Their longswords, especially, are in high demand."); + end +end \ No newline at end of file diff --git a/felwithea/Guard_Lovayn.lua b/felwithea/Guard_Lovayn.lua new file mode 100644 index 0000000..c697d64 --- /dev/null +++ b/felwithea/Guard_Lovayn.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("Looking for supplies, are we? Doing a bit of adventuring? You'd best head over to Rolyn Longwalker's shop, Beyond Faydark. It would be next to Faydark's Bane."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All three circles of magic can be found at the Keepers of the Art. They are just past the fishing shop near the lake."); + elseif(e.message:findi("forge")) then + e.self:Say("We have a pair of forges available for public use. You can find them inside the Emerald Armor."); + elseif(e.message:findi("bank")) then + e.self:Say("If you are searching for a bank, go to the center of town. There you shall find the Felwithe Keeper."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("Need to rest? Just go to the left of the paladin's temple and you can find the Traveler's Home."); + elseif(e.message:findi("tavern")) then + e.self:Say("Tovanik's Venom is what you are seeking. It is near the local inn."); + elseif(e.message:findi("weapon")) then + e.self:Say("Look to the right of the paladin's temple and you shall find Faydark's Bane. It is one of the finest weapons shops in Faydwer. Their longswords, especially, are in high demand."); + end +end \ No newline at end of file diff --git a/felwithea/Guard_Meadom.lua b/felwithea/Guard_Meadom.lua new file mode 100644 index 0000000..c697d64 --- /dev/null +++ b/felwithea/Guard_Meadom.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("Looking for supplies, are we? Doing a bit of adventuring? You'd best head over to Rolyn Longwalker's shop, Beyond Faydark. It would be next to Faydark's Bane."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All three circles of magic can be found at the Keepers of the Art. They are just past the fishing shop near the lake."); + elseif(e.message:findi("forge")) then + e.self:Say("We have a pair of forges available for public use. You can find them inside the Emerald Armor."); + elseif(e.message:findi("bank")) then + e.self:Say("If you are searching for a bank, go to the center of town. There you shall find the Felwithe Keeper."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("Need to rest? Just go to the left of the paladin's temple and you can find the Traveler's Home."); + elseif(e.message:findi("tavern")) then + e.self:Say("Tovanik's Venom is what you are seeking. It is near the local inn."); + elseif(e.message:findi("weapon")) then + e.self:Say("Look to the right of the paladin's temple and you shall find Faydark's Bane. It is one of the finest weapons shops in Faydwer. Their longswords, especially, are in high demand."); + end +end \ No newline at end of file diff --git a/felwithea/Guard_Mystan.lua b/felwithea/Guard_Mystan.lua new file mode 100644 index 0000000..c697d64 --- /dev/null +++ b/felwithea/Guard_Mystan.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("Looking for supplies, are we? Doing a bit of adventuring? You'd best head over to Rolyn Longwalker's shop, Beyond Faydark. It would be next to Faydark's Bane."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All three circles of magic can be found at the Keepers of the Art. They are just past the fishing shop near the lake."); + elseif(e.message:findi("forge")) then + e.self:Say("We have a pair of forges available for public use. You can find them inside the Emerald Armor."); + elseif(e.message:findi("bank")) then + e.self:Say("If you are searching for a bank, go to the center of town. There you shall find the Felwithe Keeper."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("Need to rest? Just go to the left of the paladin's temple and you can find the Traveler's Home."); + elseif(e.message:findi("tavern")) then + e.self:Say("Tovanik's Venom is what you are seeking. It is near the local inn."); + elseif(e.message:findi("weapon")) then + e.self:Say("Look to the right of the paladin's temple and you shall find Faydark's Bane. It is one of the finest weapons shops in Faydwer. Their longswords, especially, are in high demand."); + end +end \ No newline at end of file diff --git a/felwithea/Guard_Settine.lua b/felwithea/Guard_Settine.lua new file mode 100644 index 0000000..aae5d74 --- /dev/null +++ b/felwithea/Guard_Settine.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("Looking for supplies, are we? Doing a bit of adventuring? You'd best head over to Rolyn Longwalker's shop, Beyond Faydark. It would be next to Faydark's Bane."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All three circles of magic can be found at the Keepers of the Art. They are just past the fishing shop near the lake."); + elseif(e.message:findi("forge")) then + e.self:Say("We have a pair of forges available for public use. You can find them inside the Emerald Armor."); + elseif(e.message:findi("bank")) then + e.self:Say("If you are searching for a bank, go to the center of town. There you shall find the Felwithe Keeper."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("Need to rest? Just go to the left of the paladin's temple and you can find the Traveler's Home."); + elseif(e.message:findi("tavern")) then + e.self:Say("Tovanik's Venom is what you are seeking. It is near the local inn."); + elseif(e.message:findi("weapon")) then + e.self:Say("Look to the right of the paladin's temple and you shall find Faydark's Bane. It is one of the finest weapons shops in Faydwer. Their longswords, especially, are in high demand."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18901})) then + e.self:Say("I.. but.. she.. You can take this. I guess I don't need it any more."); + e.other:QuestReward(e.self,0,0,0,0,14640,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/felwithea/Guard_Trerun.lua b/felwithea/Guard_Trerun.lua new file mode 100644 index 0000000..c697d64 --- /dev/null +++ b/felwithea/Guard_Trerun.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("Looking for supplies, are we? Doing a bit of adventuring? You'd best head over to Rolyn Longwalker's shop, Beyond Faydark. It would be next to Faydark's Bane."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All three circles of magic can be found at the Keepers of the Art. They are just past the fishing shop near the lake."); + elseif(e.message:findi("forge")) then + e.self:Say("We have a pair of forges available for public use. You can find them inside the Emerald Armor."); + elseif(e.message:findi("bank")) then + e.self:Say("If you are searching for a bank, go to the center of town. There you shall find the Felwithe Keeper."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("Need to rest? Just go to the left of the paladin's temple and you can find the Traveler's Home."); + elseif(e.message:findi("tavern")) then + e.self:Say("Tovanik's Venom is what you are seeking. It is near the local inn."); + elseif(e.message:findi("weapon")) then + e.self:Say("Look to the right of the paladin's temple and you shall find Faydark's Bane. It is one of the finest weapons shops in Faydwer. Their longswords, especially, are in high demand."); + end +end \ No newline at end of file diff --git a/felwithea/Guard_Wisnyw.lua b/felwithea/Guard_Wisnyw.lua new file mode 100644 index 0000000..c697d64 --- /dev/null +++ b/felwithea/Guard_Wisnyw.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("Looking for supplies, are we? Doing a bit of adventuring? You'd best head over to Rolyn Longwalker's shop, Beyond Faydark. It would be next to Faydark's Bane."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All three circles of magic can be found at the Keepers of the Art. They are just past the fishing shop near the lake."); + elseif(e.message:findi("forge")) then + e.self:Say("We have a pair of forges available for public use. You can find them inside the Emerald Armor."); + elseif(e.message:findi("bank")) then + e.self:Say("If you are searching for a bank, go to the center of town. There you shall find the Felwithe Keeper."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("Need to rest? Just go to the left of the paladin's temple and you can find the Traveler's Home."); + elseif(e.message:findi("tavern")) then + e.self:Say("Tovanik's Venom is what you are seeking. It is near the local inn."); + elseif(e.message:findi("weapon")) then + e.self:Say("Look to the right of the paladin's temple and you shall find Faydark's Bane. It is one of the finest weapons shops in Faydwer. Their longswords, especially, are in high demand."); + end +end \ No newline at end of file diff --git a/felwithea/Inkeeper_Freegraze.lua b/felwithea/Inkeeper_Freegraze.lua new file mode 100644 index 0000000..0b959a6 --- /dev/null +++ b/felwithea/Inkeeper_Freegraze.lua @@ -0,0 +1,8 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Traveler's Home, owned and operated by the House of Freegaze... err, I mean Freegraze, established in the year 2855. We gladly open our doors to any weary traveler. What can I do for you?"); + elseif(e.message:findi("tolon nurbyte")) then + e.self:Say("So you are inquiring about Mister Tolon Nurbyte, eh? He is on the second floor, last door on the right. You two had best not be up to any mischief. The pair of you look a little shifty for the kingdom of Felwithe."); + eq.unique_spawn(61095,0,0,-343,155,17,8); -- NPC: Tolon_Nurbyte + end +end diff --git a/felwithea/Lieutenant_Rosaed.lua b/felwithea/Lieutenant_Rosaed.lua new file mode 100644 index 0000000..19e93d6 --- /dev/null +++ b/felwithea/Lieutenant_Rosaed.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What are you doing up here? This area is for the Koada'Vie only! If you are not a [defender of Felwithe]. leave at once!!"); + elseif(e.message:findi("what defender of felwithe")) then + e.self:Say("All paladins who have been charged with the defense of Felwithe are called Defenders."); + elseif(e.message:findi("am a defender of felwithe")) then + e.self:Say("Hmmph!! You are a little short to be a guard. Let us get to work then. There is much to do. I have news of a [frightening development] of late."); + elseif(e.message:findi("frightening development")) then + e.self:Say("Felwithe weeps!! Our beautiful flower. Princess Lenya Thex. has been reported missing! Lord Tynkale says he is looking into the matter. but I fear he is taking far too long. I have heard that a man named Tolon Nurbyte has been seen in the city lately. He looks like a shady one. I would seek him out for answers to her disappearance."); + end +end + +-- END of FILE Zone:felwithea ID:61029 -- Lieutenant_Rosaed \ No newline at end of file diff --git a/felwithea/Lord_Nethryn.lua b/felwithea/Lord_Nethryn.lua new file mode 100644 index 0000000..8486560 --- /dev/null +++ b/felwithea/Lord_Nethryn.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote(" bows at the waist, his manner sincere and regal with the soft smile upon his lips. ''Greetings and good day " .. e.other:GetCleanName() .. ", I trust that [you are well]?"); + elseif(e.message:findi("am well")) then + e.self:Say("Excellent! It is quite a pleasant day. indeed. However. I am curious. and I do not mean [to pry]. but by what grace of Tunare have I the pleasure of your company? Perhaps you merely [travel]. or is it [me] you truly seek?"); + elseif(e.message:findi("to pry")) then + e.self:Say("Very well, I do apologize if I did offend. May your travels be rewarding and Tunare's good grace upon you, " .. e.other:GetCleanName() .. ""); + elseif(e.message:findi("you that I seek")) then + e.self:Emote("blinks in surprise, a sense of pride lighting is face. ''I see. It has been some time since I have been called upon in [this realm]. I am afraid that I cannot leave [my post], however, I shall pray for Tunare?s guidance to the answers you seek."); + elseif(e.message:findi("council")) then + e.self:Say("The council I served upon was a council of five priests and a single knight, all of which were devout in the most sincere meaning of the word to the Earth Mother. With the rising [activities] of the most vile [Lord Mistmoore], the council was placed as a judge and jury for all who had become infected with the [disease]."); + elseif(e.message:findi("activities")) then + e.self:Say("The Vampire Lord, Mayong Mistmoore, who continues his tyrannical and monstrous rise in power within our neighboring forest had begun to manifest is power in attempts to further his rule and dominion over the continent of Faydwer. In the Lord's attempts, he unleashed the Lycanthropy virus upon the forests, infecting many of our nation's people. In time, the virus had been eliminated and was no longer a threat, but the [souls] of those who were unfortunate enough to meet the council did not survive, but were avenged."); + elseif(e.message:findi("souls")) then + e.self:Say("There were too many to count. . . Far too many condemned souls. There was nothing we could do for them but ease their pain and assist to keep the virus from spreading to the other inhabitants of our nation. No cure existed, and to this day, a cure continues to evade us. I still remember the [last] victim that I had to condemn before Tunare chose me for ascension."); + elseif(e.message:findi("last")) then + e.self:Say("A young girl by the name of Khasra, was the youngest that our council had to attend and judge. I will never forget her face, nor the voice of her pleading mother. Forever I shall regret that decision, and regret our ignorance to her [threat]."); + elseif(e.message:findi("threat")) then + e.self:Say("The young girl's mother had threatened to take Khasra to the Lord's domain and seek a cure there if we did not further our search for one. She would not allow her daughter to fall to the same fate as all the others had. We ignored her threat, and in turn, the girl now walks as a servant of Mistmoore, eternally embraced as one of his monstrous creations. I pray with every waking energy of my being for her, and still I know not why Tunare has chosen me for this [task and glory]."); + elseif(e.message:findi("task and glory")) then + e.self:Say("'I am a herald, a harbinger, and a judge of the Earth Mother. I have been charged with the duty of [accepting] those who have won the eyes and favor of the gods and returning to them recognition and reward for their deeds."); + elseif(e.message:findi("accepted")) then + e.self:Say("Those who have been found worthy in their deeds to accept recognition from the gods are given a [coin] that they mayl give to one of the many [heroes and servants] that the gods have recently returned to this realm."); + elseif(e.message:findi("travel")) then + e.self:Say("A traveler then? Perhaps for adventure and fame. Indeed. I do remember those days. It has been. . . quite some time. so much that I can hardly remember. In any case. my reminiscence must be of no consequence to you. and I do not wish to keep you. Please. do be well and may Tunare's grace kindly guide you through your path."); + elseif(e.message:findi("realm")) then + e.self:Say("I am Lord Nethryn the Arbitrator. once a devout priest of Tunare. and now a most loyal servant. I once resided within the Realm of Heroes. but she has called upon me to [serve] again as I once did within my mortal form."); + elseif(e.message:findi("serve")) then + e.self:Emote("sighs heavily, a look of trouble and sorrow upon his brow. ''Several centuries past, within the first years of [his majesty's] rise to the throne, I served as the High Priest of Tunare and was head of the [council], that most dreadful council. I do not regret my past work, as I did [what needed to be done] then. It was all for the benefit of our people, both Fier'Dal and Koada'Dal alike.''"); + elseif(e.message:findi("coin") or e.message:findi("heroes and servants")) then + e.self:Say("There are five coins. five very specific coins. each of which contains a divine light and essence. Even the hand and eye of the most crafted rogue or artist cannot forge Honor. Insight. Gallantry. Tranquility. or Faith."); + end +end + +-- END of FILE Zone:felwithea ID:61066 -- Lord_Nethryn \ No newline at end of file diff --git a/felwithea/Merchant_Irontree.lua b/felwithea/Merchant_Irontree.lua new file mode 100644 index 0000000..4ddc9b3 --- /dev/null +++ b/felwithea/Merchant_Irontree.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met. " .. e.other:GetCleanName() .. "! I am a master craftsman of both steel and [mithril plate] armors. I am also the creator of the [woodlanders shields]. light shields perfect for those who spend much time under the canopy of the All Mothers forests."); + elseif(e.message:findi("mithril plate")) then + e.self:Say("Mithril plate armor is an enduring light weight armor that can only be crafted in our unique Koada'Dal Forge. It is perfect for those who wish to battle the enemies of the All Mother in protection and comfort. It is the most silent of all plate armors. a definite advantage for gaining the upper hand on those who would dare invade our forests. All pieces of mithril plate will require the appropriate Plate section Mold, some Moonlight Temper, an Elven Smithy Hammer, Mithril Chain Jointing and Leather Padding. Visors, Collars, Bracers and Boots require one Folded Sheet of Mithril. Helms, Pauldrons, Girdles, Vambraces and Gauntlets require two Folded Sheets of Mithril. Breastplates, Cloaks and Greaves require three Folded Sheets of Mithril."); + elseif(e.message:findi("woodlanders shield")) then + e.self:Say("Woodlanders shields can only be crafted in our unique Koada'Dal Forge. In order to successfully craft such a shield you will require a Kite Shield Mold, two Sheets of Mithril, an Elven Smithy Hammer and some Moonlight Temper. If you are a faithful subject of the All Mother than you may attempt to craft a magical woodlanders shield by forging an emerald that has been imbued by a cleric into the shield at the time of its creation."); + end +end + +-- END of FILE Zone:felwithea ID:61057 -- Merchant_Irontree \ No newline at end of file diff --git a/felwithea/Merchant_Nora.lua b/felwithea/Merchant_Nora.lua new file mode 100644 index 0000000..820b034 --- /dev/null +++ b/felwithea/Merchant_Nora.lua @@ -0,0 +1,13 @@ +-- ancient pattern subquest -- ranger/druid epic + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20458})) then + e.self:Say("You hardly look like the type of errand runner Farios usually sends out to fetch his groceries but here they are. I hope he chokes on them. Oh, and tell him he still owes me five gold for his last order!"); + e.other:QuestReward(e.self,3,0,0,0,20459); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EOF zone: felwithea ID: 61034 NPC: Merchant_Nora \ No newline at end of file diff --git a/felwithea/Opal_Leganyn.lua b/felwithea/Opal_Leganyn.lua new file mode 100644 index 0000000..c31cfc3 --- /dev/null +++ b/felwithea/Opal_Leganyn.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome, good " .. e.other:GetCleanName() .. ". We carry the finest in smithing supplies. Do you care to view my wares? Or have you come for instructions on how to craft a [Koada Dal Falchion]?"); + elseif(e.message:findi("koada dal falchion")) then + e.self:Say("Koada'Dal Falchions are highly specialized weapons crafted of the finest mithril. The weapon must be forged in the unique Koada'Dal Forge and you will need a curved blade mold. a hilt and a pommel Mold. some morning dew. and a folded sheet of mithril. If you are a faithful follower of the All Mother then you may craft a magical falchion using moonlight temper instead of the morning dew and forging an emerald imbued by a cleric into the weapon at the time of its creation."); + elseif(e.message:findi("wares")) then + e.self:Say("The various molds that I have for sale are used in the smithing of weapons. Simply use the necessary molds with a sheet of metal, a forge, and a water flask. Weapons with hilts and pommels will also need molds for those pieces and weapons such as pole-arms and axes require an oak shaft."); + end +end + +-- END of FILE Zone:felwithea ID:61048 -- Opal_Leganyn \ No newline at end of file diff --git a/felwithea/Seria_Woodwind.lua b/felwithea/Seria_Woodwind.lua new file mode 100644 index 0000000..aa85ea1 --- /dev/null +++ b/felwithea/Seria_Woodwind.lua @@ -0,0 +1,60 @@ +function event_say(e) + if(e.other:Class()== "Paladin" and (e.other:Race() == "High Elf" or e.other:Race() == "Half Elf")) then + if(e.message:findi("hail")) then + e.self:Say("Hail friend. I am Seria Woodwind of the Royal Order of the Koada'Vie, the defenders of Felwithe. I assist young Koada'Dal that are called into Tunare's service as a paladin in learning the ways of the Koada'Vie so that one day they too may bear that noble title. Do you [wish to become a member] of the Koada'Vie?"); + elseif(e.message:findi("become a member")) then + e.self:Say("As a defender of Felwithe you will be required to face much of the evil that inhabits the lands of Norrath. We do not sit idle and wait for the enemy to arrive at our gates before taking action towards the safety of our citizens. Every Koada'Vie initiate should acquire a [suit of armor] to aid in protecting themselves from the weapons of our [enemies]."); + elseif(e.message:findi("enemies")) then + e.self:Say("There are sinister creatures in Norrath that threaten the safety and prosperity of the Koada'Dal. The Crushbone Clan of Orcs often emerge from their citadel to the North to murder and pillage the Fier'Dal and Koada'Dal. hoping to expand their territory into the Faydarks. The Arboreans. a species of destructive sentient weeds has returned from ages of slumbering beneath the soil of the Faydarks. Despite these evil forces that are close to our home the greatest threat to both the Koada'Dal and the Fier'Dal are the twisted and wicked Teir'Dal. the dark elf children of Innoruuk."); + elseif(e.message:findi("suit of armor")) then + e.self:Say("You require this special Mail Assembly Kit in order to fashion your Felwithe Defender's Armor. The materials necessary for the armor's construction vary according to the piece you are attempting to craft. Once you have been properly outfitted return to me and I will provide you with [further instruction]. Do you plan on crafting [Felwithe Defender Gauntlets], [Felwithe Defender Boots], an [Felwithe Defender Bracer]. an [Felwithe Defender Helm], [Felwithe Defender Greaves], [Felwithe Defender Vambraces], or an [Felwithe Defender Breastplate]?"); + e.other:SummonCursorItem(17124); -- Item: Mail Assembly Kit + elseif(e.message:findi("felwithe defender gauntlets")) then + e.self:Say("To assemble felwithe defender gauntlets you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this crude Gauntlet Mold. Once that is done combine the Crude Bronze Gauntlets with a Large Sylvan Bat Fur and two Giant Wasp Worker Tarsi in the Mail Assembly Kit."); + e.other:SummonCursorItem(19633); -- Item: Crude Gauntlets Mold + elseif(e.message:findi("felwithe defender boots")) then + e.self:Say("To assemble felwithe defender boots you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this crude Boot Mold. Once that is done combine the Crude Bronze Boots with two Large Sylvan Bat Fur and two Giant Wasp Worker Tarsi in the Mail Assembly Kit."); + e.other:SummonCursorItem(19634); -- Item: Crude Boot Mold + elseif(e.message:findi("felwithe defender bracer")) then + e.self:Say("To assemble a felwithe defender bracer you will need to obtain a brick of crude bronze and smelt it in a forge with a Water Flask and this Crude Bracer Mold. Once that is done, combine the Crude Bronze Bracer with a Large Sylvan Bat Fur and a Giant Wasp Drone Sternite in the Mail Assembly Kit."); + e.other:SummonCursorItem(19632); -- Item: Crude Bracer Mold + elseif(e.message:findi("felwithe defender helm")) then + e.self:Say("To assemble a felwithe defender helm you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Helm Mold. Once that is done combine the Crude Bronze Helm with a Large Sylvan Bat Fur and a Giant Wasp Worker Tergite in the Mail Assembly Kit."); + e.other:SummonCursorItem(19631); -- Item: Crude Helm Mold + elseif(e.message:findi("felwithe defender greaves")) then + e.self:Say("To assemble felwithe defender greaves you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Greaves Mold. Once that is done combine the Crude Bronze Greaves with two Giant Sylvan Bat Furs and two Giant Wasp Warrior Sternites in the Mail Assembly Kit."); + e.other:SummonCursorItem(19636); -- Item: Crude Greaves Mold + elseif(e.message:findi("felwithe defender vambraces")) then + e.self:Say("To assemble felwithe defender vambraces you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Vambrace mold. Once that is done combine the Crude Bronze Vambraces with a Giant Sylvan Bat Fur and two Giant Wasp Warrior Tergites in the Mail Assembly Kit."); + e.other:SummonCursorItem(19635); -- Item: Crude Vambrace Mold + elseif(e.message:findi("felwithe defender breastplate")) then + e.self:Say("To assemble a felwithe defender breastplate you will need to obtain four bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Breastplate Mold. Once that is done combine the Crude Bronze Breastplate with a Giant Sylvan Bat Fur, and a Giant Wasp Warrior Thorax in the Mail Assembly Kit."); + e.other:SummonCursorItem(19637); -- Item: Crude Breastplate Mold + elseif(e.message:findi("further instruction")) then + e.self:Say("Our diviner in the Keepers of the Art have discovered that a Teir`Dal agent of the Ebon Mask, the spies and assassins of the Teir`Dal has been lurking around the Faydarks and communicating intelligence to the orcs of Clan Crushbone. We believe the spy can be lured out of hiding if his primary orc contact, a crushbone centurion by the name of Relgle. is eliminated on route to their rendezvous location. Find this Centurion Relgle, slay him for his crimes against the Koada`Dal, then do the same to his Teir`Dal ally. Bring me both their heads when the deed is done."); + end + else + if(e.message:findi("hail")) then + e.self:Say("Hail friend. I am Seria Woodwind of the Royal Order of the Koada'Vie, the defenders of Felwithe. I assist young Koada'Dal that are called into Tunare's service as a paladin in learning the ways of the Koada'Vie so that one day they too may bear that noble title."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20288,item2 = 20289})) then + e.self:Say("Good work " .. e.other:GetCleanName() .. ". King Tearis Thex and the Royal Order of the Koada'Vie shall be pleased. Take the Dull Felwithe Defenders Sword to a forge and sharpen it with a sharpening stone. It may take you several attempts if you are unfamiliar with the process. Once that is accomplished bring me the Sharp Felwithe Defenders Sword, a Pristine Forest Drakeling Scale, and an Arborean Amber and I will put the finishing touches on the weapon."); + e.other:Faction(e.self,226,10,0); -- Clerics of Tunare + e.other:Faction(e.self,279,10,0); -- King Tearis Thex + e.other:Faction(e.self,5002,7,0); -- Anti-Mage + e.other:QuestReward(e.self,0,0,0,0,20295,1000); -- Item: Dull Felwithe Defenders Sword + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20299,item2 = 20271,item3 = 20274})) then + e.self:Emote("fashions a grip from the pristine forest drakeling scales, fastens the arborean amber to the pommel of the hilt and polishes the blade of the sword with a luminescent substance. 'Here is your new weapon young defender. May it serve you well in your service to the Koada'Vie.'"); + e.other:Faction(e.self,226,5,0); -- Clerics of Tunare + e.other:Faction(e.self,279,5,0); -- King Tearis Thex + e.other:Faction(e.self,5002,3,0); -- Anti-Mage + e.other:QuestReward(e.self,0,0,0,0,20329,75000); -- Item: Felwithe Defenders Falchion + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/felwithea/Soulbinder_Elendalira.lua b/felwithea/Soulbinder_Elendalira.lua new file mode 100644 index 0000000..80c75f8 --- /dev/null +++ b/felwithea/Soulbinder_Elendalira.lua @@ -0,0 +1,15 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID(),0,1); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/felwithea/Tacar_Tissleplay.lua b/felwithea/Tacar_Tissleplay.lua new file mode 100644 index 0000000..06ee6b6 --- /dev/null +++ b/felwithea/Tacar_Tissleplay.lua @@ -0,0 +1,14 @@ +--Quest Name: Bard Mail Quest + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail. " .. e.other:GetCleanName() .. " -Are you [interested] in helping the League of Antonican Bards by delivering some [mail]?"); + elseif(e.message:findi("mail") and not e.message:findi("deliver") and not e.message:findi("Kelethin")) then + e.self:Say("The League of Antonican Bards has a courier system made up of travelers and adventurers. We pay good gold to anyone who will take messages from bards such as myself to one of our more central offices. Are you [interested]?"); + elseif(e.message:findi("interested")) then + e.self:Say("I have messages that need to go to - well. right now I have one that needs to go to Kelethin. Will you [deliver] mail to [Kelethin] for me?"); + elseif(e.message:findi("deliver") or e.message:findi("Kelethin")) then + e.self:Say("Take this letter to Jakum Webdancer in Kelethin. You can find him at the bard guild hall. I am sure he will compensate you for your troubles."); + e.other:SummonCursorItem(18161); -- Item: A Bardic Letter (Kelethin) + end +end diff --git a/felwithea/Tanalin_Silverkale.lua b/felwithea/Tanalin_Silverkale.lua new file mode 100644 index 0000000..4209e32 --- /dev/null +++ b/felwithea/Tanalin_Silverkale.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met. " .. e.other:GetCleanName() .. "! I am Tanalin Silverkale, provider of the finest [mithril ore] and master craftsman of [mithril chainmail]!"); + elseif(e.message:findi("mithril ore")) then + e.self:Say("Mithril ore is a special variation of silver. We Koada'Dal have developed specialized techniques in working the ore to produce the finest quality armors and weapons in all of Norrath. Mithril can only be worked in our unique Koada'Dal Forge. It is worked in the same manner as standard ores but must be tempered with Morning Dew instead of Water. and Folded Mithril Sheets must be hammered with our Elven Smithy Hammers instead of the crude standard Smithy Hammer. Powerful enchanters have also successfully developed the means to enchant small bricks of mithril ore that can be worked in our Koada'Dal Forge."); + elseif(e.message:findi("mithril chainmail")) then + e.self:Say("Mithril Chainmail is a beautiful chain armor that is light enough to be worn comfortably even by those who practice the mystical arts. Mithril Chain may only be crafted in our unique Koada'Dal Forge. All pieces of the chainmail require an Elven Smithy Hammer, the appropriate Chain Pattern for the desired piece, a Silk Swatch and Moonlight Temper. Veils, Neckguards and Bracelets require one set of Mithril Rings. Coifs, Mantles, Skirts, Sleeves and Gloves require two sets of Mithril Rings. Tunics, Capes, and Leggings require three sets of Mithril Rings. If ever you master the technique of crafting mithril chain you may desire to pursue crafting some [enchanted mithril] chainmail."); + elseif(e.message:findi("enchanted mithril")) then + e.self:Say("Enchanted mithril chainmail is highly prized by the royalty of Felwithe and invaluable to all masters of the mystical arts. Like standard mithril chain it can only be crafted in our unique Koada'Dal Forge. but the rings must be crafted from enchanted mithril."); + end +end + +-- END of FILE Zone:felwithea ID:61027 -- Tanalin_Silverkale + diff --git a/felwithea/Terren_Starwatcher.lua b/felwithea/Terren_Starwatcher.lua new file mode 100644 index 0000000..c8cd33c --- /dev/null +++ b/felwithea/Terren_Starwatcher.lua @@ -0,0 +1,56 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome friend! Have you come to the Temple of Tunare to give praise or are you a young Cleric seeking [guidance] from your elders?"); + elseif(e.message:findi("further guidance")) then + e.self:Say("If you are ready to put your life on the line for the citizens of our homeland than hear my words. The Crushbone Clan of Orcs are evil and strong adversaries of we Koada`Dal. Recently an orc scout assaulted a merchant from our city carrying a valuable amulet from the Fier`Dal city of Kelethin. Our seers have divined the name of the orc that is in possession of the amulet. Gurleg Bribgok. Find this despicable creature and return the amulet to me so that I may return it to its proper owner."); + elseif(e.message:findi("guidance")) then + e.self:Say("Tunare shall be pleased to have a new disciple amongst her Koada`Dal children. We Clerics of Tunare offer spiritual guidance to the citizens of Felwithe and when needed aid the Paladins of Tunare and the Keepers of the Art in the defense of our people and forest from those [creatures] that seek to cause us harm. Every young cleric should pursue acquiring a [suit of armor] to protect themselves when aiding those in need outside of the safety of Felwithes walls."); + elseif(e.message:findi("creatures")) then + e.self:Say("There are many evil creatures in Norrath. Some are evil by nature. others have chosen evil by their devotion to evil deities. Even the Faydarks are not safe for young Koada`Dal. The orcs of Clan Crushbone seek to expand their territory from their citadel to the north. The brownies viciously guard their hidden communities. pixies play mischievous and sometimes deadly pranks on travelers. and the arboreans have returned to the Faydarks after centuries of slumber."); + elseif(e.message:findi("suit of armor")) then + e.self:Say("You will need this Mail Assembly Kit to craft your Sylvan Initiate Armor. The materials required for the armor vary according to which piece you desire to craft. Once you have been suitably outfitted return to me and I will offer [further guidance]. Do you desire to craft [Sylvan Initiate Gauntlets]. [Sylvan Initiate Boots]. a [Sylvan Initiate Bracer]. a [Sylvan Initiate Helm]. [Sylvan Initiate Greaves]. [Sylvan Initiate Vambraces]. or a [Sylvan Initiate Breastplate]?"); + e.other:SummonCursorItem(17124); -- Item: Mail Assembly Kit + elseif(e.message:findi("gauntlets")) then + e.self:Say("To assemble sylvan initiate gauntlets you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this crude Gauntlet Mold. Once that is done combine the Crude Bronze Gauntlets with a Large Sylvan Bat Fur and two Arborean Sprout Twigs in the Mail Assembly Kit."); + e.other:SummonCursorItem(19633); -- Item: Crude Gauntlets Mold + elseif(e.message:findi("boots")) then + e.self:Say("To assemble sylvan initiate boots you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this crude Boot Mold. Once that is done combine the Crude Bronze Boots with two Large Sylvan Bat Fur. and two Arborean Sprout Roots in the Mail Assembly Kit."); + e.other:SummonCursorItem(19634); -- Item: Crude Boot Mold + elseif(e.message:findi("bracer")) then + e.self:Say("To assemble a sylvan initiate bracer you will need to obtain a brick of crude bronze and smelt it in a forge with a Water Flask and this Crude Bracer Mold. Once that is done. combine the Crude Bronze Bracer with a Large Sylvan Bat Fur and an Arborean Sprout Bark in the Mail Assembly Kit."); + e.other:SummonCursorItem(19632); -- Item: Crude Bracer Mold + elseif(e.message:findi("helm")) then + e.self:Say("To assemble a sylvan initiate helm you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Helm Mold. Once that is done combine the Crude Bronze Helm with a Large Sylvan Bat Fur and an Arborean Sapling Bark in the Mail Assembly Kit."); + e.other:SummonCursorItem(19631); -- Item: Crude Helm Mold + elseif(e.message:findi("greaves")) then + e.self:Say("To assemble sylvan initiate greaves you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Greaves Mold. Once that is done combine the Crude Bronze Greaves with two Giant Sylvan Bat Furs and two Arborean Sapling Barks in the Mail Assembly Kit."); + e.other:SummonCursorItem(19636); -- Item: Crude Greaves Mold + elseif(e.message:findi("vambraces")) then + e.self:Say("To assemble sylvan initiate vambraces you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Vambrace Mold. Once that is done combine the Crude Bronze Vambraces with a Giant Sylvan Bat Fur and two Arborean Sapling Barks in the Mail Assembly Kit."); + e.other:SummonCursorItem(19635); -- Item: Crude Vambrace Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("To assemble a sylvan initiate breastplate you will need to obtain four bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Breastplate Mold. Once that is done combine the Crude Bronze Breastplate with a Giant Sylvan Bat Fur. and two Mature Arborean Barks in the Mail Assembly Kit."); + e.other:SummonCursorItem(19637); -- Item: Crude Breastplate Mold + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20280})) then + e.self:Say("You have done well young " .. e.other:GetCleanName() .. ". If you continue to show such devotion to your people and your faith then perhaps one day you will serve in the chambers of King Tearis Thex himself. Take this Rusty Sylvan Morning Star and scrape the rust from it in a forge with a sharpening stone. It may take several attempts if you are unfamiliar with the process. Once that is done bring me the Refined Sylvan Morning Star, a Pristine Drakeling Scales, and an Arborean Amber."); + e.other:Faction(e.self,226,5,0); -- Faction: Clerics of Tunare + e.other:Faction(e.self,279,5,0); -- Faction: King Tearis Thex + e.other:Faction(e.self,5002,3,0); -- Faction: Anti-mage + e.other:QuestReward(e.self,0,0,0,0,20297,36450); -- Item: Rusty Sylvan Morning Star + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20300,item2 = 20271,item3 = 20274})) then + e.self:Say("Terren Starwatcher fashions a grip out of the pristine forest drakeling scales, fastens the arborean amber to the pommel, and polishes the head of the morning star with a luminescent substance. 'I grant you a Sylvan Initiate Morning Star. May it serve you well in your service to The All Mother."); + e.other:Faction(e.self,226,5,0); -- Faction: Clerics of Tunare + e.other:Faction(e.self,279,5,0); -- Faction: King Tearis Thex + e.other:Faction(e.self,5002,3,0); -- Faction: Anti-mage + e.other:QuestReward(e.self,0,0,0,0,20330,36450); -- Item: Sylvan Initiate Morningstar + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:felwithea ID:61010 -- Terren_Starwatcher diff --git a/felwithea/Tolkar_Parlone.lua b/felwithea/Tolkar_Parlone.lua new file mode 100644 index 0000000..e2eec0b --- /dev/null +++ b/felwithea/Tolkar_Parlone.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail. good adventurer! I am afraid that my services are not available at the moment. I am too worried about my [daughter]."); + elseif(e.message:findi("daughter")) then + e.self:Say("My daughter's name is Lenara. I have not seen her in several months. and I fear the worst. She went off adventuring. even though I told her how dangerous it was."); + elseif(e.message:findi("Where did she go")) then + e.self:Say("'I do not know where she went, but I thought she mentioned something about lava. It still sends shivers down my spine just thinking about it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5573})) then -- folded note + e.self:Say("Oh, my, she did get herself into some trouble! I thank you for rescuing her, my friend. Here, take this old cloak. I am afraid its power has faded, but if you bring it to my wife, she might be able to do something for you. She is currently studying in Erudin."); + e.other:Faction(e.self,275,15,0); -- Keepers of the Art + e.other:Faction(e.self,279,3,0); -- King Tearis Thex + e.other:Faction(e.self,246,2,0); -- Faydark's Champions + e.other:Faction(e.self,239,-3,0); -- The Dead + e.other:QuestReward(e.self,0,0,0,0,1056); -- Faded Cloak + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:felwithea ID:61017 -- Tolkar_Parlone diff --git a/felwithea/Tolon_Nurbyte.lua b/felwithea/Tolon_Nurbyte.lua new file mode 100644 index 0000000..e289330 --- /dev/null +++ b/felwithea/Tolon_Nurbyte.lua @@ -0,0 +1,42 @@ +function event_spawn(e) + eq.set_timer("visit",150000); +end + +function event_timer(e) + if(e.timer == "visit") then + eq.depop(); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Didn't your mother teach you not to walk in other people's rooms without knocking?! You didn't even have the courtesy to close the door behind you!!"); + elseif(e.message:findi("princess lenya thex")) then + e.self:Say("What?!! You have word of the Princess? She has been missing for quite a while. I sent Tearon to Tunaria to search for her, but he has not reported back. If you wish to help, you'd better prove yourself worthy first. I believe you should talk to Tynkale."); + end + + if(e.other:GetFaction(e.self) < 5) then + if(e.message:findi("the glory of the mother shines bright")) then + e.self:Say("So you're the slayer of Jojongua. Funny, I thought you would be taller. I guess you will have to do. I am Tolon Nurbyte of the Silent Watch. We do all the dirty work of King Tearis Thex. No one knows of us. So I hope you accept this mission or I will have to kill you. Do you [accept the mission] or do you [wish to leave]?"); + elseif(e.message:findi("wish to leave")) then + e.self:Say("There is only insufferable labor and merciless torment here, stranger. Kaya Rishareth has condemned her eternal self to servitude in the War Forge -- her selfless act malignantly repaid by the gods with this existence. Her spirit died here long ago and her life's [effort and struggles] were ultimately for naught."); + eq.attack(e.other:GetName()); + end + else + if(e.message:findi("the glory of the mother shines bright") or e.message:findi("wish to leave")) then + e.self:Say("When you have furthered your service to the Paladins of Tunare. we shall make conversation."); + end + end + + if(e.other:GetFaction(e.self) < 4) then + if(e.message:findi("accept the mission")) then + e.self:Say("In her mortal life, Kaya Rishareth was a keeper of tranquility and served her beloved child-like goddess with every fiber of her being. A native to the free city of Freeport, Kaya found herself traveling on her own as soon as her master would allow. Erudin was the destination she chose and it was the temples dedicated to The Tranquil where she sought to learn more about her goddess and perhaps share philosophies and knowledge with the High Men. Erudin received her graciously and for nearly a year, she studied the High Men's way of worship and reverence to their shared deity. However, tranquility is easily disrupted and those who seek it, must also [defend it]."); + elseif(e.message:findi("silent watcher")) then + e.self:Say("The Silent Watch was established in the early years of Felwithe. King Tearis Thex had many cruel deeds to do. The regular Koad'Vie were too righteous to carry out any of the necessary missions and we dare not bring in the Fier'Dal. After all, some of the operations were against Kelethin. King Tearis formed our group from Koada'Dal not of such prim and proper breeding. Now we act as his secret guard and report only to him."); + end + else + if(e.message:findi("accept the mission") or e.message:findi("silent watcher")) then + e.self:Say("When you have furthered your service to the Paladins of Tunare. we shall make conversation."); + end + end +end diff --git a/felwithea/Tynkale.lua b/felwithea/Tynkale.lua new file mode 100644 index 0000000..675466c --- /dev/null +++ b/felwithea/Tynkale.lua @@ -0,0 +1,57 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail noble, " .. e.other:GetCleanName() .. "! Can you be of [service to the Clerics of Tunare] or are you not from our order?"); + elseif(e.message:findi("service to the clerics of tunare")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("That is good. Prove yourself, then. Are you [new to Felwithe] or have I been conversing with a [veteran of the good fight]?"); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("When you have furthered your service to the Paladins of Tunare, we shall make conversation."); + else + e.self:Say("You have some nerve to approach a loyal member of the Paladins of Tunare! Run, while you can!"); + end + elseif(e.message:findi("new to felwithe")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Then stand at attention when I speak. I want you to venture to Kelethin and seek out Tandan Nybright. He is an old member of ours. He had some hardships and he fell from Tunare's grace, yet he is still a member of our family. He will be the one who reeks of elven wine. Greet him by name. We are worried for him."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("When you have furthered your service to the Paladins of Tunare, we shall make conversation."); + else + e.self:Say("You have some nerve to approach a loyal member of the Paladins of Tunare! Run, while you can!"); + end + elseif(e.message:findi("veteran of the good fight")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I command you to venture to Innothule and seek a beast called Jojongua, a name penned by the trolls. It is said to be ten feet tall and nothing but fury. Some say it resembles a kobold, but how can that be? You bring this beast's hide to me and then I will believe you to be a veteran. Beware! Innothule is a very dangerous place even for a noble veteran."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("When you have furthered your service to the Paladins of Tunare, we shall make conversation."); + else + e.self:Say("You have some nerve to approach a loyal member of the Paladins of Tunare! Run, while you can!"); + end + elseif(e.message:findi("honored member")) then + if(e.other:GetFactionValue(e.self) >= 50) then + e.self:Say("Yes. The light of righteousness shines from within you."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you have furthered your service to the Paladins of Tunare, we shall make conversation."); + else + e.self:Say("You have some nerve to approach a loyal member of the Paladins of Tunare! Run, while you can!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18781})) then -- Tattered Note + e.self:Say("Greetings. young paladin! I am Master Tynkale of the Clerics of Tunare. Here. we shall teach and train you in the skills needed to defeat our evil and diseased enemies. Take this, our guild tunic - it will help protect you. Wear it with pride, for you are now one of us."); + e.other:Faction(e.self,226,100,0); --Clerics of Tunare + e.other:Faction(e.self,279,100,0); --King Tearis Thex + e.other:Faction(e.self,5002,75,0); --Anti-mage + e.other:QuestReward(e.self,0,0,0,0,13591,20); -- Used Gold Training Tunic* + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13351})) then + e.self:Say("So you have proven yourself to be a great slayer of beasts.Now it is time to prove yourself to be an asset to the Crown. You are to meet a man named Tolon Nurbyte. He will be at the local inn. Go to him and repeat the phrase, 'The glory of the Mother shines bright.' I can say no more. Oh.. and here. This may help you on your upcoming adventure."); + e.other:Faction(e.self,226,20,0); --Clerics of Tunare + e.other:Faction(e.self,279,20,0); --King Tearis Thex + e.other:QuestReward(e.self,0,0,0,0,0,250); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +--END of FILE Zone:felwithea ID:61018 -- Tynkale diff --git a/felwithea/Wela_Muselender.lua b/felwithea/Wela_Muselender.lua new file mode 100644 index 0000000..dc3d03e --- /dev/null +++ b/felwithea/Wela_Muselender.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("curtseys and says, 'Welcome to our fine tavern! Our relaxing atmosphere and pleasant wines are excellent for assisting an artist or poet in finding their muse."); + e.self:DoAnim(61); + end +end \ No newline at end of file diff --git a/felwithea/Yeolarn_Bronzeleaf.lua b/felwithea/Yeolarn_Bronzeleaf.lua new file mode 100644 index 0000000..2c033c5 --- /dev/null +++ b/felwithea/Yeolarn_Bronzeleaf.lua @@ -0,0 +1,63 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! We of Tunare are charged with protecting the Great Mother from the forces of Innoruuk. Even now, the evil minions of this foul deity are despoiling our great forest. Will you help us [protect the Mother]?"); + else + e.self:Say("One such as yourself has nothing to offer the Clerics of Tunare. Remove yourself from this sacred temple!"); + end + elseif(e.message:findi("protect")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Just outside the gates of Felwithe, the forces of Innoruuk gather in the guise of decaying skeletons. Bring me four sets of bone chips as proof of your vigilance. I assure you, your faith shall not go unrewarded."); + else + e.self:Say("One such as yourself has nothing to offer the Clerics of Tunare. Remove yourself from this sacred temple!"); + end + elseif(e.message:findi("initiate of tunare")) then -- no faction requirement for these 3 lines below -- or at least apprehensive worked + e.self:Say("The Teir'Dal behind the undead plague in our forest have discovered a means of creating a terrible undead called a Ghast. These Ghasts have been sighted in the Lesser Faydark and must be destroyed. Bring me four of the vile creatures hearts."); + elseif(e.message:findi("slay the necromancer")) then + e.self:Say("The Fier'Dal rangers that inhabit the Lesser Faydark have spotted a courier making deliveries to the Teir'Dal camp near Castle Mistmoore and to a necromancer that lingers near the ancient obelisk. We believe that the crates he carries are supplies needed for the creation of more Ghasts. Another shipment should be arriving soon. Seek out the necromancer at the obelisk and take his head then take the head of the courier and return them to me with the crate that the courier carries and your Initiate Symbol of Tunare."); + elseif(e.message:findi("warden of tunare")) then + e.self:Say("The crate that the you recovered from the Courier contained this black candlestick that radiates an aura of great magical power. I request that you deliver the candlestick to Lady Trilani who is studying with the High Men in Erudin. Perhaps she can divine the nature of the candlestick and offer aid in defeating its power. The remaining contents of the crate have been given to Crusader Swiftmoon to be delivered to a gnome in steamfont that is purchasing them on behalf of the Eldrich Collective. When you return be sure to present your Disciple Symbol to me with anything that Trilani may ask you to deliver."); + e.other:SummonCursorItem(1598); -- Black Stone Candlestick + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13073,item2 = 13073,item3 = 13073,item4 = 13073})) then --Bone Chips x 4 + e.self:Say("Praise Tunare! I knew you would be victorious. I reward you with this spell, and pray that it will help you in your fight against the unholy forces of Innoruk. When you are ready you will make a fine [Initiate of Tunare]."); + e.other:Faction(e.self,226,2,0); --Clerics of Tunare + e.other:Faction(e.self,279,2,0); --King Tearis Thex + e.other:Faction(e.self,5002,1,0); --Anti-mage + e.other:QuestReward(e.self,0,0,0,0,15014,250); --Spell: Strike , Verified experience reward live data + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10199,item2 = 10199,item3 = 10199,item4 = 10199})) then --Putrescent Heart x 4 + e.self:Say("Praise Tunare!! You have done well young Initiate. Here the symbol of your station within our faith. Return to me when you are ready to [slay the necromancer] that has been creating the undead."); + e.other:Faction(e.self,226,15,0); --Clerics of Tunare + e.other:Faction(e.self,279,15,0); --King Tearis Thex + e.other:Faction(e.self,5002,11,0); --Anti-mage + e.other:QuestReward(e.self,0,0,0,0,1570,3250); --Initiate Symbol of Tunare + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1570,item2 = 12514,item3 = 19065,item4 = 12513})) then --Initiate Symbol of Tunare, Larik Z`Vole's Head, Teir`Dal Couriers Head, Teir`Dal Crate + e.self:Say("Praise Tunare! The Mother smiles on you this day Disciple Angelsyn! I present you with the symbol of your new station among the Priests of Tunare. Return to me when you are ready to become a [Warden of Tunare]?"); + e.other:Faction(e.self,226,30,0); --Clerics of Tunare + e.other:Faction(e.self,279,30,0); --King Tearis Thex + e.other:Faction(e.self,5002,22,0); --Anti-mage + e.other:QuestReward(e.self,0,0,0,0,1571,4000); -- Disciple Symbol of Tunare + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1571,item2 = 1599})) then --Disciple Symbol of Tunare, Powder of Unanimation + e.self:Say("Praise Tunare!! I will have our sorcerers examine this power immediately to see if we can reproduce it in quantities enough to eliminate the undead plague. I award you the rank of Warden of Tunare, the All Mother smiles upon you, " .. e.other:GetCleanName() .. "!"); + e.other:Faction(e.self,226,40,0); --Clerics of Tunare + e.other:Faction(e.self,279,40,0); --King Tearis Thex + e.other:Faction(e.self,5002,30,0); --Anti-mage + e.other:QuestReward(e.self,0,0,0,0,1572,5000); -- Warden Symbol of Tunare + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18780})) then --Tattered Note + e.self:Say("Welcome, friend, to the Clerics of Tunare. I am Yeolarn Bronzeleaf, head of the guild and devout follower of Tunare. Here is your guild tunic - it will help to protect you against this world's evils."); + e.other:Faction(e.self,226,100,0); --Clerics of Tunare + e.other:Faction(e.self,279,100,0); --King Tearis Thex + e.other:Faction(e.self,5002,75,0); --Anti-mage + e.other:QuestReward(e.self,0,0,0,0,13590,20); --Faded Gold Training Tunic* + else + e.self:Say("Your faith has not grown strong enough to undertake that task young one."); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +--END of FILE Zone:felwithea ID:61025 -- Yeolarn_Bronzeleaf.pl diff --git a/felwitheb/Elishia_Leafrunner.lua b/felwitheb/Elishia_Leafrunner.lua new file mode 100644 index 0000000..834e21e --- /dev/null +++ b/felwitheb/Elishia_Leafrunner.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("letter back to him")) then + e.other:SummonCursorItem(8970); -- Letter to Jeremy + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 8969})) then -- Letter to Elishia + e.self:Say("Oh, a letter from my grandson? Thank you very much. I haven't been able to talk to him recently. Would you mind taking a [letter back to him] for me?"); + e.other:Ding(); + e.other:Faction(e.self,275,10,0); -- Keepers of the Art + e.other:Faction(e.self,279,2,0); -- King Tearis Thex + e.other:Faction(e.self,246,1,0); -- Faydarks Champions + e.other:Faction(e.self,239,-2,0); -- The Dead + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- Elishia_Leafrunner diff --git a/felwitheb/Farios_Elianos.lua b/felwitheb/Farios_Elianos.lua new file mode 100644 index 0000000..45bdd88 --- /dev/null +++ b/felwitheb/Farios_Elianos.lua @@ -0,0 +1,20 @@ +-- ancient pattern subquest -- ranger epic + +function event_trade(e) + local item_lib = require("items"); + + if (e.other:GetFaction(e.self) < 5) then -- amiable or better Keepers of the Art + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20457})) then + e.self:Say("Eh? What is this? A cracked earthen pot? Why in the nine hells would I need a crushed pot? Perhaps I could use it to not hold water! Why did you even bother me with this? Are you mentally deficient? Apparently. Oh, well, you're just a servant boy. Well, then, we'll make you useful, if just a little. Take this shopping list and go get my groceries. Take it to Nora in the tavern. She'll know what I need."); + e.other:QuestReward(e.self,0,0,0,0,20458); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20459})) then + e.self:Say("Ah, good. Here's a few copper and a receipt for services rendered. Now be off, I'm sure citizens across the land are in dire need of broken pots at right this moment."); + e.other:QuestReward(e.self,3,0,0,0,20474); + -- e.other:GiveCash(3,0,0,0); + end + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EOF zone: felwitheb ID: 62018 NPC: Farios_Elianos \ No newline at end of file diff --git a/felwitheb/Guard_Golyn.lua b/felwitheb/Guard_Golyn.lua new file mode 100644 index 0000000..c697d64 --- /dev/null +++ b/felwitheb/Guard_Golyn.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("Looking for supplies, are we? Doing a bit of adventuring? You'd best head over to Rolyn Longwalker's shop, Beyond Faydark. It would be next to Faydark's Bane."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All three circles of magic can be found at the Keepers of the Art. They are just past the fishing shop near the lake."); + elseif(e.message:findi("forge")) then + e.self:Say("We have a pair of forges available for public use. You can find them inside the Emerald Armor."); + elseif(e.message:findi("bank")) then + e.self:Say("If you are searching for a bank, go to the center of town. There you shall find the Felwithe Keeper."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("Need to rest? Just go to the left of the paladin's temple and you can find the Traveler's Home."); + elseif(e.message:findi("tavern")) then + e.self:Say("Tovanik's Venom is what you are seeking. It is near the local inn."); + elseif(e.message:findi("weapon")) then + e.self:Say("Look to the right of the paladin's temple and you shall find Faydark's Bane. It is one of the finest weapons shops in Faydwer. Their longswords, especially, are in high demand."); + end +end \ No newline at end of file diff --git a/felwitheb/Guard_Mystan.lua b/felwitheb/Guard_Mystan.lua new file mode 100644 index 0000000..c697d64 --- /dev/null +++ b/felwitheb/Guard_Mystan.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("Looking for supplies, are we? Doing a bit of adventuring? You'd best head over to Rolyn Longwalker's shop, Beyond Faydark. It would be next to Faydark's Bane."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All three circles of magic can be found at the Keepers of the Art. They are just past the fishing shop near the lake."); + elseif(e.message:findi("forge")) then + e.self:Say("We have a pair of forges available for public use. You can find them inside the Emerald Armor."); + elseif(e.message:findi("bank")) then + e.self:Say("If you are searching for a bank, go to the center of town. There you shall find the Felwithe Keeper."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("Need to rest? Just go to the left of the paladin's temple and you can find the Traveler's Home."); + elseif(e.message:findi("tavern")) then + e.self:Say("Tovanik's Venom is what you are seeking. It is near the local inn."); + elseif(e.message:findi("weapon")) then + e.self:Say("Look to the right of the paladin's temple and you shall find Faydark's Bane. It is one of the finest weapons shops in Faydwer. Their longswords, especially, are in high demand."); + end +end \ No newline at end of file diff --git a/felwitheb/Guard_Plage.lua b/felwitheb/Guard_Plage.lua new file mode 100644 index 0000000..c697d64 --- /dev/null +++ b/felwitheb/Guard_Plage.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("Looking for supplies, are we? Doing a bit of adventuring? You'd best head over to Rolyn Longwalker's shop, Beyond Faydark. It would be next to Faydark's Bane."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All three circles of magic can be found at the Keepers of the Art. They are just past the fishing shop near the lake."); + elseif(e.message:findi("forge")) then + e.self:Say("We have a pair of forges available for public use. You can find them inside the Emerald Armor."); + elseif(e.message:findi("bank")) then + e.self:Say("If you are searching for a bank, go to the center of town. There you shall find the Felwithe Keeper."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("Need to rest? Just go to the left of the paladin's temple and you can find the Traveler's Home."); + elseif(e.message:findi("tavern")) then + e.self:Say("Tovanik's Venom is what you are seeking. It is near the local inn."); + elseif(e.message:findi("weapon")) then + e.self:Say("Look to the right of the paladin's temple and you shall find Faydark's Bane. It is one of the finest weapons shops in Faydwer. Their longswords, especially, are in high demand."); + end +end \ No newline at end of file diff --git a/felwitheb/Guard_Psape.lua b/felwitheb/Guard_Psape.lua new file mode 100644 index 0000000..c697d64 --- /dev/null +++ b/felwitheb/Guard_Psape.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("Looking for supplies, are we? Doing a bit of adventuring? You'd best head over to Rolyn Longwalker's shop, Beyond Faydark. It would be next to Faydark's Bane."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All three circles of magic can be found at the Keepers of the Art. They are just past the fishing shop near the lake."); + elseif(e.message:findi("forge")) then + e.self:Say("We have a pair of forges available for public use. You can find them inside the Emerald Armor."); + elseif(e.message:findi("bank")) then + e.self:Say("If you are searching for a bank, go to the center of town. There you shall find the Felwithe Keeper."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("Need to rest? Just go to the left of the paladin's temple and you can find the Traveler's Home."); + elseif(e.message:findi("tavern")) then + e.self:Say("Tovanik's Venom is what you are seeking. It is near the local inn."); + elseif(e.message:findi("weapon")) then + e.self:Say("Look to the right of the paladin's temple and you shall find Faydark's Bane. It is one of the finest weapons shops in Faydwer. Their longswords, especially, are in high demand."); + end +end \ No newline at end of file diff --git a/felwitheb/Guard_Spioko.lua b/felwitheb/Guard_Spioko.lua new file mode 100644 index 0000000..c697d64 --- /dev/null +++ b/felwitheb/Guard_Spioko.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("Looking for supplies, are we? Doing a bit of adventuring? You'd best head over to Rolyn Longwalker's shop, Beyond Faydark. It would be next to Faydark's Bane."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All three circles of magic can be found at the Keepers of the Art. They are just past the fishing shop near the lake."); + elseif(e.message:findi("forge")) then + e.self:Say("We have a pair of forges available for public use. You can find them inside the Emerald Armor."); + elseif(e.message:findi("bank")) then + e.self:Say("If you are searching for a bank, go to the center of town. There you shall find the Felwithe Keeper."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("Need to rest? Just go to the left of the paladin's temple and you can find the Traveler's Home."); + elseif(e.message:findi("tavern")) then + e.self:Say("Tovanik's Venom is what you are seeking. It is near the local inn."); + elseif(e.message:findi("weapon")) then + e.self:Say("Look to the right of the paladin's temple and you shall find Faydark's Bane. It is one of the finest weapons shops in Faydwer. Their longswords, especially, are in high demand."); + end +end \ No newline at end of file diff --git a/felwitheb/Guard_Tistan.lua b/felwitheb/Guard_Tistan.lua new file mode 100644 index 0000000..c697d64 --- /dev/null +++ b/felwitheb/Guard_Tistan.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("Looking for supplies, are we? Doing a bit of adventuring? You'd best head over to Rolyn Longwalker's shop, Beyond Faydark. It would be next to Faydark's Bane."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All three circles of magic can be found at the Keepers of the Art. They are just past the fishing shop near the lake."); + elseif(e.message:findi("forge")) then + e.self:Say("We have a pair of forges available for public use. You can find them inside the Emerald Armor."); + elseif(e.message:findi("bank")) then + e.self:Say("If you are searching for a bank, go to the center of town. There you shall find the Felwithe Keeper."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("Need to rest? Just go to the left of the paladin's temple and you can find the Traveler's Home."); + elseif(e.message:findi("tavern")) then + e.self:Say("Tovanik's Venom is what you are seeking. It is near the local inn."); + elseif(e.message:findi("weapon")) then + e.self:Say("Look to the right of the paladin's temple and you shall find Faydark's Bane. It is one of the finest weapons shops in Faydwer. Their longswords, especially, are in high demand."); + end +end \ No newline at end of file diff --git a/felwitheb/Guard_Tynthal.lua b/felwitheb/Guard_Tynthal.lua new file mode 100644 index 0000000..c697d64 --- /dev/null +++ b/felwitheb/Guard_Tynthal.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("Looking for supplies, are we? Doing a bit of adventuring? You'd best head over to Rolyn Longwalker's shop, Beyond Faydark. It would be next to Faydark's Bane."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("All three circles of magic can be found at the Keepers of the Art. They are just past the fishing shop near the lake."); + elseif(e.message:findi("forge")) then + e.self:Say("We have a pair of forges available for public use. You can find them inside the Emerald Armor."); + elseif(e.message:findi("bank")) then + e.self:Say("If you are searching for a bank, go to the center of town. There you shall find the Felwithe Keeper."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("Need to rest? Just go to the left of the paladin's temple and you can find the Traveler's Home."); + elseif(e.message:findi("tavern")) then + e.self:Say("Tovanik's Venom is what you are seeking. It is near the local inn."); + elseif(e.message:findi("weapon")) then + e.self:Say("Look to the right of the paladin's temple and you shall find Faydark's Bane. It is one of the finest weapons shops in Faydwer. Their longswords, especially, are in high demand."); + end +end \ No newline at end of file diff --git a/felwitheb/Joren_Nobleheart.lua b/felwitheb/Joren_Nobleheart.lua new file mode 100644 index 0000000..42b1f05 --- /dev/null +++ b/felwitheb/Joren_Nobleheart.lua @@ -0,0 +1,24 @@ +-- Test of Illusion - enchanter epic - Chalice of Kings + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I hope you have been sent by the King. There is an urgent matter at hand."); + elseif(e.message:findi("sent by the king")) then + e.self:Say("Our sources at the outpost have learned that the Chardokian royal family had a part in the disappearance of Firiona Vie. I have been ordered by King Tearis Thex to locate individuals familiar with the new lands and to order them to the gates of Chardok Mountain. Do you accept the king's order?"); + elseif(e.message:findi("accept")) then + e.self:Say("Gather your forces and march on the gates of Chardok. You are to strike deep into the home of Overking Bathezid. Your goal is not the overking himself, but his only living heir. His son's head will be the price to pay for their involvement in this kidnapping."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10627})) then + e.self:Say("Vengeance has been fufilled! However, the King still has a heavy heart. Not until Firiona has been returned can this sadness be lifted. But in appreciation of your efforts, I am honored to present to you the King's Chalice."); + e.other:QuestReward(e.self,0,0,0,0,10608,10000); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EOF Zone: felwitheb ID: 62000 NPC: Joren_Nobleheart + diff --git a/felwitheb/Kinool_Goldsinger.lua b/felwitheb/Kinool_Goldsinger.lua new file mode 100644 index 0000000..a8f948a --- /dev/null +++ b/felwitheb/Kinool_Goldsinger.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail and welcome. I am sure you have much to do, but could I ask a [favor] of you?"); + elseif(e.message:findi("favor")) then + e.self:Say("Oh, um, on second thought, never mind. I should really just do it myself. Thank you anyway."); + elseif(e.message:findi("enchanted bow")) then + e.self:Say("Alas... Another ranger in search of the [Rain Caller]. She is no more"); + elseif(e.message:findi("rain caller")) then + e.self:Say("Rain Caller is the name we give each Trueshot longbow once it is enchanted. Unfortunately, I am unable to enchant them any longer. One of the components is no longer available. Someone would have to strike a [deal with the fairie folk]. Once I have that and the [remaining components] I can create the Rain Caller, a ranger's bow"); + elseif(e.message:findi("fairie folk")) then + e.self:Say("The fairie princess, Joleena, used to have a metal gnome deliver [fairie gold dust] to the Keepers every month. She has stopped this and now refuses to offer it to any nation of Faydwer. What she is angry about, we do not know."); + elseif(e.message:findi("gold dust")) then + e.self:Say("Fairie gold dust is an enchanted powder which only a fairie princess can create."); + elseif(e.message:findi("remaining component")) then + e.self:Say("The remaining components are the Trueshot longbow and a treant heart. There will also be the guild donation in the amount of 3000 gold coins. These and the [fairie gold dust] will merit a ranger the Rain Caller enchanted bow."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "There will be no Rain Caller until I have the fairie gold dust and the [remaining components]."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18778})) then -- Enrollment Letter + e.self:Say("Greetings and welcome aboard! My name's Kinool. Master Enchanter of the Keepers of the Art. Here is your guild tunic. Make us proud, young pupil!"); + e.other:Faction(e.self,275,100,0); -- Keepers of the Art + e.other:Faction(e.self,279,25,0); -- King Tearis Thex + e.other:Faction(e.self,246,15,0); -- Faydark's Champions + e.other:Faction(e.self,239,-25,0); -- The Dead + e.other:QuestReward(e.self,0,0,0,0,13593,20); -- Torn Training Robe* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12333,item2 = 12334,item3 = 8401, gold = 3000},1,text)) then + e.self:Say("Fine work!! I now reward you with The Rain Caller."); + e.other:Faction(e.self,275,25,0); -- Keepers of the Art + e.other:Faction(e.self,279,6,0); -- King Tearis Thex + e.other:Faction(e.self,246,3,0); -- Faydark's Champions + e.other:Faction(e.self,239,-6,0); -- The Dead + e.other:QuestReward(e.self,0,0,0,0,8402,5000); -- Item: Rain Caller + end + item_lib.return_items(e.self, e.other, e.trade); +end + +--END of FILE Zone:felwitheb ID:62020 -- Kinool_Goldsinger + diff --git a/felwitheb/Niola_Impholder.lua b/felwitheb/Niola_Impholder.lua new file mode 100644 index 0000000..e7a9ee8 --- /dev/null +++ b/felwitheb/Niola_Impholder.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". Welcome to the home of the Keepers of the Art. I am in need of spell components. Would you be willing to [fetch] some for me?"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("fetch")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("What I need are some bat wings for a spell I am researching. If you bring me back four bat wings, I would be willing to reward you with a scroll."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.count_handed_item(e.self, e.trade, {13068}, 4) > 0) then + e.self:Say("Ah yes. These are exactly what I need. Thank you very much."); + e.other:Faction(e.self,275,2,0); -- Faction: Keepers of the Art + e.other:Faction(e.self,279,1,0); -- Faction: King Tearis Thex + e.other:Faction(e.self,246,1,0); -- Faction: Faydarks Champions + e.other:Faction(e.self,239,-1,0); -- Faction: The Dead + -- Confirmed Live Experience + e.other:QuestReward(e.self,{itemid = eq.ChooseRandom(15310,15310,15310,15310,15310,15310,15310,15310,15310,15332),exp = 20}); -- Item(s): Spell: Flare (15310), Spell: Shield of Fire (15332) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18777},0)) then -- Enrollment Letter + e.self:Say("Welcome. I am Niola Impholder. Master Magician of the Keepers of the Art. Here is our guild tunic. You have much to learn, so let's get started."); + e.other:Faction(e.self,275,100,0); -- Keepers of the Art + e.other:Faction(e.self,279,25,0); -- King Tearis Thex + e.other:Faction(e.self,246,15,0); -- Faydark's Champions + e.other:Faction(e.self,239,-25,0); -- The Dead + e.other:QuestReward(e.self,0,0,0,0,13592,20); -- Faded Training Robe* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18902})) then + e.self:Say("What? Not as supposed? What can he... Well, that's all well and good. You, I assume, wish a reward for your 'valiant work'? Well, here you go, adventurer."); + e.other:QuestReward(e.self,0,0,0,0,1307,500); -- Item: Gossamer Robe + end + item_lib.return_items(e.self, e.other, e.trade); +end + +--END of FILE Zone:felwitheb ID:62021 -- Niola_Impholder diff --git a/felwitheb/Tarker_Blazetoss.lua b/felwitheb/Tarker_Blazetoss.lua new file mode 100644 index 0000000..4497da4 --- /dev/null +++ b/felwitheb/Tarker_Blazetoss.lua @@ -0,0 +1,38 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hail and well met, " .. e.other:GetCleanName() .. "! Have you come to study. or can you [perform a task] for me this day?"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("perform a task")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("That is the spirit. There are many black wolves wandering Faydark these days. One of my brethren needs a black wolf skin as a component for his magic. Bring me a black wolf skin. and I shall reward you for your efforts."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18779})) then -- Enrollment Letter + e.self:Say("Welcome to the wizards' guild of the Keepers of the Art. My name's Tarker, and I run this guild. You've got a lot of training ahead of you, so let's get started. Here, take this - it's our guild tunic. Wear it with honor, friend."); + e.other:Faction(e.self,275,100,0); -- Keepers of the Art + e.other:Faction(e.self,279,25,0); -- King Tearis Thex + e.other:Faction(e.self,246,15,0); -- Faydark's Champions + e.other:Faction(e.self,239,-25,0); -- The Dead + e.other:QuestReward(e.self,0,0,0,0,13594,20); -- Singed Training Robe* + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13758})) then + e.self:Say("This is just what I needed.. and with hardly a mark on it! You have my thanks. Here is a something that you might find useful."); + e.other:Faction(e.self,275,1); -- Keepers of the Art + e.other:Faction(e.self,279,1); -- King Tearis Thex + e.other:Faction(e.self,246,1); -- Faydark's Champions + e.other:Faction(e.self,239,-1); -- The Dead + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(7007,13009,6012,15374,10004,6018),350); -- Item(s): Rusty Dagger (7007), Bandages (13009), Worn Great Staff (6012), Spell: Numbing Cold (15374), Copper Band (10004), Cracked Staff (6018) + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:felwitheb ID:62019 -- Tarker_Blazetoss diff --git a/felwitheb/Yuin_Starchaser.lua b/felwitheb/Yuin_Starchaser.lua new file mode 100644 index 0000000..dd20f8c --- /dev/null +++ b/felwitheb/Yuin_Starchaser.lua @@ -0,0 +1,57 @@ +-- Quest: Art Keepers NPC: Yuin Starchaser Zone: Felwithe B + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Keepers of the Art friend " .. e.other:GetCleanName() .. ". I am Yuin Starchaser and it is my pleasure to assist new scholars wishing to study the arts of Enchantment, Wizardry, and Magery. Although much can be learned within these halls there is no substitute for experiences gained in the world outside Felwithe. The Koada'Dal have many enemies however, and it is wise to be prepared to face them. If you are new to the Keepers of the Art I will assist you in obtaining a [robe and clothing] suitable for study in the wilds."); + elseif(e.message:findi("robe and clothing")) then + e.self:Say("You will need this specially prepared Curing Kit to craft the Art Keepers clothing. The materials required vary depending on the piece of clothing you desire to craft. Once you have been outfitted in the garments return to me and you may be assistance with another [task]. Do you desire to craft a art keepers [cap], [wristband], [gloves], [boots], [sleeves], [pantaloons], or [robe]?"); + e.other:SummonCursorItem(17125); -- Curing Kit + elseif(e.message:findi("boots")) then + e.self:Say("To craft Art Keepers Boots you require two [silk thread], giant wasp worker pollen, a woven spider silk, and two ruined forest drakeling scales. Once you have the necessary components combine them in your Curing Kit with this Tattered Boot Pattern."); + e.other:SummonCursorItem(19561); -- Tattered Boot Pattern + elseif(e.message:findi("cap")) then + e.self:Say("To craft an Art Keepers Cap you will require two [silk thread], giant wasp worker pollen, and a woven spider silk. Once you have the necessary components combine them in your Curing Kit with this Tattered Cap Pattern."); + e.other:SummonCursorItem(19555); -- Tattered Cap Pattern + elseif(e.message:findi("gloves")) then + e.self:Say("To craft Art Keepers Gloves you require two [silk thread], giant wasp worker pollen, two woven spider silks, and a ruined forest drakeling scales. Once you have the necessary components combine them in your Curing Kit with this Tattered Glove Pattern."); + e.other:SummonCursorItem(19559); -- Tattered Glove Pattern + elseif(e.message:findi("pantaloons")) then + e.self:Say("To craft Art Keepers Pantaloons you require two [silk thread], giant wasp warrior pollen, two woven spider silks, and two forest drakeling scales. Once you have the necessary components combine them in your Curing Kit with this Tattered Leggings Pattern."); + e.other:SummonCursorItem(19560); -- Tattered Pant Pattern + elseif(e.message:findi("robe")) then + e.self:Say("To craft an Art Keepers Robe you will require three [silk thread], giant wasp warrior pollen, two woven spider silks, and a pristine forest drakeling scales. Once you have the necessary components combine them in your Curing Kit with this Tattered Robe Pattern."); + e.other:SummonCursorItem(11395); -- Tattered Robe Pattern + elseif(e.message:findi("sleeves")) then + e.self:Say("To craft Art Keepers Sleeves you require two [silk thread], giant wasp warrior pollen, a woven spider silk, and a forest drakeling scales. Once you have the necessary components combine them in your Curing Kit with this Tattered Sleeves Pattern."); + e.other:SummonCursorItem(19557); -- Tattered Sleeves Pattern + elseif(e.message:findi("wristband")) then + e.self:Say("To craft an Art Keepers Wristband you require a [silk thread], giant wasp drone pollen, and a woven spider silk. Once you have the necessary components combine them in your Curing Kit with this Tattered Wristband Pattern."); + e.other:SummonCursorItem(19558); -- Tattered Wristband Pattern + elseif(e.message:findi("task")) then + e.self:Say("One of the responsibilities of the Keepers of the Art is to weave and maintain powerful magic wards that help protect Felwithe from enemy magic. An understanding of the magic wielded by Felwithes many foes is vital to the success of our protective wards. With the help of the paladins of the Koada'Vie we have discovered many of the secrets of the orcish shaman that reside in the citadel of Clan Crushbone to the north of the Faydarks but there is still much to learn. The task I have to present you will take you into the [Crushbone Citadel] itself."); + elseif(e.message:findi("crushbone citadel")) then + e.self:Say("The entrance to the Citadel can be found on the northern edge of the Greater Faydark. Once within the citadel seek out the Orc Thaumaturgist and obtain his book of spells. Once you are in possession of the Orc Thaumaturgists Spell Book return it to me so that the masters of the Keepers of the Art may study its contents."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20293})) then -- Orc Thaumaturgists Spell Book + e.self:Say("Well done young Art Keeper. Take this Rough Art Keepers Initiate Staff and go forth and gather a Pristine Forest Drakeling Scales and an Arborean Amber. When you have acquired those two items return them to me with the Rough Art Keepers Initiate Staff and I will put the final touches on the staff."); + e.other:Faction(e.self,275,5); -- Keepers of the Art + e.other:Faction(e.self,279,1); -- King Tearis Thex + e.other:Faction(e.self,246,1); -- Faydark's Champions + e.other:Faction(e.self,239,-1); -- The Dead + e.other:QuestReward(e.self,0,0,0,0,20296,250); -- Rough Art Keepers Initiate Staff + -- Handin: Rough Artkeepers Initiate Staff, Pristine Forest Drakeling Scales, Arborean Amber + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20296,item2 = 20271,item3 = 20274})) then + e.self:Emote("fashions a grip for the staff from the pristine forest drakeling scales, places the arborean amber into a mithril fixture and attaches the fixture to one end of the staff. 'Here is your new staff young Art Keeper may it serve you well in the pursuit of your studies.'"); + e.other:Faction(e.self,275,5); -- Keepers of the Art + e.other:Faction(e.self,279,1); -- King Tearis Thex + e.other:Faction(e.self,246,1); -- Faydark's Champions + e.other:Faction(e.self,239,-1); -- The Dead + e.other:QuestReward(e.self,0,0,0,0,20332,250); -- Art Keepers Initiate Staff + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/fieldofbone/Crusader_Quarg.lua b/fieldofbone/Crusader_Quarg.lua new file mode 100644 index 0000000..c532aa6 --- /dev/null +++ b/fieldofbone/Crusader_Quarg.lua @@ -0,0 +1,40 @@ +--Quests covered in this file: +--Shaman Skull Quest 3 +--Shaman Skull Quest 4 +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stands at attention and salutes you. It would seem that he takes his job quite seriously. 'Do not fear, feeble soul. The Crusaders of Greenmist are on duty."); + elseif(e.message:findi("collect.* rok nilok")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Take this chest. Inside, you shall combine the skull of their leader and at least five of the caste members. You must then go to the swamp garrison and deliver the full chest along with your iron cudgel of the mystic to Mystic Dovan. Go to him now and inquire of the crusaders of Rok Nilok."); + e.other:SummonCursorItem(17035); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Show greater devotion to the Crusaders of Greenmist and you will obtain that which you seek."); + else + e.self:Emote("eye's glare red and gnashes his teeth. 'You had best avoid all members of the Temple of Terror."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + --give Crusader Quarg the note that Hierphant Zand gave to you + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18054})) then + e.self:Say("Ah, i see you have proven yourself to Zand and he wishes to see more of your prowess. go to the Tower of Kurn and bring him the Skulls of the Caste of Bone Brethren, a caste of powerful shamans who perished fighting undead in the Field of Bone several decades ago."); + e.other:Faction(e.self,445, 10); --Scaled Mystics + e.other:Faction(e.self,441, 10); --Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,17034,10000); --Give the player a six slot container to combine the 5 skulls with an "X" in + --turn in the Full C.O.B.B. Chest and your Iron Cudgel of the Seer + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12735, item2 = 5142})) then + e.self:Say("The temple shall be pleased. As instructed by the Hierophants, here is your Iron Cudgel of the Mystic. You have done well that I must ask you to [collect the Crusaders of Rok Nilok]."); + e.other:Faction(e.self,445, 10); --Scaled Mystics + e.other:Faction(e.self,441, 10); --Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,5143,20000); --Give the player the Iron Cudgel of the Mystic and A Skull Chest (C.O.R.N. Chest) to combine Tiny Glowing Skulls in + end + item_lib.return_items(e.self, e.other, e.trade) --return items if not the ones required +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/fieldofbone/Oracle_Qulin.lua b/fieldofbone/Oracle_Qulin.lua new file mode 100644 index 0000000..c01e754 --- /dev/null +++ b/fieldofbone/Oracle_Qulin.lua @@ -0,0 +1,24 @@ +--Shaman Skull Quest 7 +function event_trade(e) + local item_lib = require("items"); + + --Turn in the a dusty iksar skull + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30984})) then + e.self:Emote("runs his scaled fingers slowly over the cracked, brittle skull. 'Granix did well to send you to me, I may yet be able to recover the spirit of this ancient and set it free. Come! I shall need your help with this ritual.'"); + e.self:Emote("dips the skull in the crystal waters. He lifts the skull over his head and stands completely still, allowing the water to drip down off the skull down over his body and finally on to the parched sand.'"); + e.self:Emote("begins to chant. Quietly at first but then louder and faster. He speaks a language you only vaguely recognize. It is the voice and language of the ancient oracles. His voice booms out over the water filling your mind with images of the ancient Sebilisian empire and the great Iksar rulers of old."); + e.self:Emote("'s voice stops suddenly, leaving the air completely silent. Even the waves seem to have stopped for a moment. You begin to move toward him, but he raises a hand toward you motioning for you to stay still."); + e.self:Say("Suddenly without warning the skull flies from Quilin's hands and flies into the murky waters. It stays submerged for a moment and then flies toward you, but this time an entire corpse is attached to it."); + eq.spawn2(78000,0,0,e.self:GetX() + 5,e.self:GetY(),e.self:GetZ(),e.self:GetHeading());--spawn An Arisen Iksar + --Turn in the Wet Skull Fragments + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30985})) then + e.self:Say("It seems this particular ancient does not wish to be put to rest. Return this note to Hierophant Granix and tell him what happened. He will surely wish this skull to be disposed of properly, but I do not have the power to do it myself."); + e.other:QuestReward(e.self,0,0,0,0,30986); --note to Hierophant Granix + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/fieldofbone/Oracle_Vauris.lua b/fieldofbone/Oracle_Vauris.lua new file mode 100644 index 0000000..1b614f2 --- /dev/null +++ b/fieldofbone/Oracle_Vauris.lua @@ -0,0 +1,59 @@ +--Shaman Skull Quest 8 +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Emote("Oracle Vauris motions for silence and points at the shifting sands below him without a word."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("rile")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Have you learned nothing in all your years of service to the hall of Terror? The skulls on that necklace were the bones of the traitorous Iksar who defiled Rile's Relics. Their final moments were spent in Charasis, destroyed by their own dark magics. Rile was the son of the most powerful and terrible [emperor] the Iksar have ever known. Not since the days of Ssrae... 'His voice trails off and his eyes glaze over a bit. You sense that Vauris has been touched by some unmentionable terror."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("emperor") or e.message:findi("xalgoz")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("At last you see " .. e.other:GetCleanName() .. ". The one you speak of is indeed a servant of Rile's father. His presence on this world has disrupted the spirits of the ancients. This disruption must be put to an end. Slaying him will do little good unfortunately. We will have to make use of other powers to truly banish him from this world. If we are to do this we shall need a true relic of Rile, and the soul of his father. Only with these items can we hope to free Rile's soul from the void between death and life. But first there are others that serve the risen emperor that must be destroyed."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("other")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The servants of the emperor wear many faces. One in particular is know to wear several himself. Of Serpents and Iksar is his current incarnation, a twisted vision of a dark union. Bring me his essence, for I will need a vessel to siphon the emperor's soul into. Bring me these 3 items along with the pouch of bone dust and we shall see what fate the ancients have chosen for us."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("venril")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Emote("smiles coldly. So you have learned a thing or two about your ancestors, that is good. But what do you know of the present young mystic? A true Oracle's power is in his ability to entwine past present and future into a single entity. You have already encountered the emperor's servants, although you may not have know it. Show me that you have the clarity of mind to discern this riddle and we shall embark on a journey of enlightenment you and I."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + --Turn in the Shrunken Iksar Skull Necklace + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 30989},0)) then + e.self:Emote("takes the necklace from you without a word. He looks into your eyes for a moment. He seems to be searching for something. Apparently he finds whatever he was looking for as he pulls an empty bag from his belt. He takes the necklace and snaps the cord with his teeth allowing the skulls to fall into the bag. He looks you square in the eyes again and motions for you to put out your hand. You do so and almost immediately regret it. Vauris takes the knife from his belt and slices open your forearm allowing your blood to fall into the bag. He uses the cord to tie the bag and hands it back to you. 'You now share the mark of Rile, " .. e.other:GetCleanName() .. ". Your fates are intertwined.'"); + e.other:QuestReward(e.self,0,0,0,0,30990); --give the player Bag of Iksar Skull Dust + --Turn in the Changeling Essence, Bag of Iksar Skull Dust, Glowing Kunzar Amulet, Blackened Iksar Bones + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 30991, item2 = 30990, item3 = 30993, item4 = 30992})) then + e.self:Say("You have done well " .. e.other:GetCleanName() .. ". Now it is time for the true test of your clairvoyance. Only a true Scaled mystic will be able to put these spirits to rest. Be warned, these souls will not go quietly into the next world. They have strong ties to this land, and it is these ties we must break. Take them to the City of the Kunzar, the birthplace of the emperor. Only there will you be able to tear asunder the dark rituals that have twisted the souls of our ancient heroes. I will await you in that place " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,30994); --give the player Iksar Relics + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/fieldofbone/Pendle_Dashinger.lua b/fieldofbone/Pendle_Dashinger.lua new file mode 100644 index 0000000..d0d1d18 --- /dev/null +++ b/fieldofbone/Pendle_Dashinger.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, have you come to visit the [Ruins of Kaesora]?"); + elseif(e.message:findi("kaesora")) then + e.self:Say("The ancient libraries and temples of Kaesora can be found among these ruins as well as the lost city itself. Among these ruins the magic of the Iksar Empire still holds the power to bind lost souls, something that may prove useful to an adventurer such as yourself."); + end +end \ No newline at end of file diff --git a/fieldofbone/Trooper_Chikzik.lua b/fieldofbone/Trooper_Chikzik.lua new file mode 100644 index 0000000..0828d97 --- /dev/null +++ b/fieldofbone/Trooper_Chikzik.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("The ruined city of Kaesora lies in the Field of Bone. Death walks the grounds surrounding the ruins. I have heard of many young sorcerers of the Brood of Kotiz dying within its towers, trying to uncover the location of Kaesora's legendary library."); + end +end \ No newline at end of file diff --git a/fieldofbone/Trooper_Grouko.lua b/fieldofbone/Trooper_Grouko.lua new file mode 100644 index 0000000..eb1bc3e --- /dev/null +++ b/fieldofbone/Trooper_Grouko.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Veer far from the Field of Bone. Within its evil grounds lies nothing but death. Even the treasures which may lie within structures are not enough to risk one's life. Many crypt raiders have met their final fate within Kurn's Tower."); + end +end \ No newline at end of file diff --git a/fieldofbone/Trooper_Gummin.lua b/fieldofbone/Trooper_Gummin.lua new file mode 100644 index 0000000..604caaa --- /dev/null +++ b/fieldofbone/Trooper_Gummin.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Beware the bone field beyond the path. It is said that the bones of a thousand fallen warriors walk its grounds at night."); + elseif(e.message:findi("sign the restraining order")) then + e.self:Say("Blast! The masters have condemned me to a life of sobriety and bloodshed! At least I still have bloodshed. But I would like one last drink. I would like a bottle of Legion Lager from Cabilis. Bring me the lager and the legion order and then I shall sign it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "What?! I need the Legion Lager and the legion order."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18242, item2 = 12463},1,text)) then --Legion Order (2 signed), Legion Lager + e.self:Emote("slowly signs the order. '...Love, Innoruuk. There you go. Now run along. Let me enjoy my last brew alone.'"); + -- confirmed faction hits + e.other:Faction(e.self,441,1); --Legion of Cabilis + e.other:Faction(e.self,440,1); --Cabilis Residents + e.other:Faction(e.self,445,1); --Scaled Mystics + e.other:Faction(e.self,442,1); --Crusaders of Greenmist + e.other:Faction(e.self,444,1); --Swift Tails + e.other:QuestReward(e.self,0,0,0,0,18243,500); --Legion Order (3 signed) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/fieldofbone/Trooper_Harpin.lua b/fieldofbone/Trooper_Harpin.lua new file mode 100644 index 0000000..796d27a --- /dev/null +++ b/fieldofbone/Trooper_Harpin.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Beware, citizen! This is a dangerous place for the inexperienced. Only within the walls of Cabilis are you truly safe. Should you encounter any trouble, run toward the gates. We troopers can deal with it."); + end +end \ No newline at end of file diff --git a/fieldofbone/Trooper_Mozo.lua b/fieldofbone/Trooper_Mozo.lua new file mode 100644 index 0000000..d107499 --- /dev/null +++ b/fieldofbone/Trooper_Mozo.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("look's upon you smugly."); + e.self:Say("And what are you, some sort of adventurer? Bah!! You will be shaken by the first undead you come across. Wetting your pant's you shall be. Ha Ha!! I doubt you could even [kill the decaying skeletons]!"); + elseif(e.message:findi("kill the decaying skeletons")) then --Bone Chips (fieldofbone)(START) + e.self:Say("You kill skeletons?!! I think not!! They will bounce you with no trouble at all. Ten silvers says you cannot collect four bone chips!! When Velious melts!! Hah!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I don't see four bone chips."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13073, item2 = 13073, item3 = 13073, item4 = 13073},1,text)) then --Handin: 4x Bone chips + e.self:Emote("gasp's in astonishment."); + e.self:Say("Wha...? This!! But... I... Why you... I oughta.. All right!! A bet is a bet. Here you go. A few silver piece's for your achievement. What?!! You thought I would give you ten? Fat chance! Now get lost or I will haul you in for impersonating a froglok."); + e.other:Faction(e.self,441,1); -- +Legion of Cabilis + e.other:Faction(e.self,440,1); -- +Cabilis Residents + e.other:Faction(e.self,445,1); -- +Scaled Mystics + e.other:Faction(e.self,442,1); -- +Crusaders of Greenmist + e.other:Faction(e.self,444,1); -- +Swifttails + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,math.random(10),0,0,0,250); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/fieldofbone/Trooper_Taer.lua b/fieldofbone/Trooper_Taer.lua new file mode 100644 index 0000000..3dfc005 --- /dev/null +++ b/fieldofbone/Trooper_Taer.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail! I suggest you stay within the walls of Cabilis. This is no place for you. The Field of Bone is far too close."); + elseif(e.message:findi("sign the restraining order")) then + e.self:Say("Oh, no! My good times have come to an end. Hand me the note and I shall sign it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18249})) then --Legion Order (9 signed) + e.self:Say("Ha ha! Look at all the names. Ozlot and Frogzin. What lushes. Here you are. I can't imagine there being any others to sign. This is the entire Cabilis brew brigade. Alas... Disbanded forever."); + -- confirmed faction hits + e.other:Faction(e.self,441,2); --Legion of Cabilis + e.other:Faction(e.self,440,1); --Cabilis Residents + e.other:Faction(e.self,445,1); --Scaled Mystics + e.other:Faction(e.self,442,1); --Crusaders of Greenmist + e.other:Faction(e.self,444,1); --Swift Tails + e.other:QuestReward(e.self,0,0,0,0,18250,200); --Legion Order (all signed) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/fieldofbone/Warlord_Zyzz.lua b/fieldofbone/Warlord_Zyzz.lua new file mode 100644 index 0000000..7d9ae63 --- /dev/null +++ b/fieldofbone/Warlord_Zyzz.lua @@ -0,0 +1,37 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("There is little time for talk. There are plenty of [tiny invaders]. Do your part and exterminate as many as you can. All of Cabilis shall look favorably upon you in the long run."); + elseif(e.message:findi("tiny invaders")) then + e.self:Say("The small scorpions have been turning up everywhere!! One can hardly sleep when thinking of the little monsters. Please crush as many as you can for the greater good. I will even pay a bounty for every four Scorpion Pincers you return."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "The bounty is awarded to one who can return four scorpion pincers."; + + if(e.other:GetFaction(e.self) < 6) then + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12650, item2 = 12650, item3 = 12650, item4 = 12650},1,text)) then --Handin: 4x Scorpion Pincers + e.self:Say("Magnificent!! The more pincers I get the lesser scorpions there are. Here. Take the bounty."); + -- confirmed live faction and experience reward + e.other:Faction(e.self,441,3); -- +Legion of Cabilis + e.other:Faction(e.self,440,1); -- +Cabilis Residents + e.other:Faction(e.self,445,1); -- +Scaled Mystics + e.other:Faction(e.self,442,1); -- +Crusaders of Greenmist + e.other:Faction(e.self,444,1); -- +Swifttails + e.other:QuestReward(e.self, {copper = math.random(0,5),silver = math.random(0,5),exp = 2500}); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18213})) then + e.self:Say("Ah!! Good to have you on board. We lack strong young recruits such as yourself. Take this box. Your task is to seek milita skeletons near this gate. Apparently, someone or something has been raising militia corpses and they now walk the land not knowing the difference between friend or foe. They even continue using their old call, 'Halt Who goes there?'. Fill and combine within the box their charred bone shards and return the filled box to me for your geozite tool."); + e.other:QuestReward(e.self,0,0,0,0,17996); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12668})) then + e.self:Say("Very fine work, young " .. e.other:GetCleanName() .. ". You will make a fine trooper, should you survive long enough. As promised, here is your geozite tool. Be sure to visit the legion weaponsmith to learn how to use it. Farewell."); + e.other:Faction(e.self,441,5); -- +Legion of Cabilis + e.other:Faction(e.self,440,1); -- +Cabilis Residents + e.other:Faction(e.self,445,1); -- +Scaled Mystics + e.other:Faction(e.self,442,1); -- +Crusaders of Greenmist + e.other:Faction(e.self,444,1); -- +Swifttails + e.other:QuestReward(e.self,0,0,0,0,12657); + end + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/fieldofbone/a_lesser_spirit.lua b/fieldofbone/a_lesser_spirit.lua new file mode 100644 index 0000000..c8df90d --- /dev/null +++ b/fieldofbone/a_lesser_spirit.lua @@ -0,0 +1,37 @@ +--This will start Shaman Epic 1.0 +function event_spawn(e) + eq.set_timer("depop",600000); +end + +function event_say(e) + local randomize = math.random(100); + + if(e.other:GetFaction(e.self) < 6) then + if(e.message:findi("hail")) then --Part of Shaman Epic 1.0 + e.self:Say("Did you take this person's life, shaman?"); + elseif(e.message:findi("yes")) then --Part of Shaman Epic 1.0 + e.self:Say("Why have you taken this person's life, " .. e.other:GetCleanName() .. "? Did he threaten your life? Did you dislike him? Or was his death a profit to you in some way?"); + elseif(e.message:findi("threatened my life")) then --Part of Shaman Epic 1.0 + e.self:Say("I see. It brings me sadness to see another die, but his heart was black and a great nothingness. His body will become the grass now. Thank you for what you have done, shaman."); + elseif(e.message:findi("what are you") or e.message:findi("who are you")) then --Part of Shaman Epic 1.0 + e.self:Say("What, or who, I am isn't as important as what, or who, WE are. Do you wish to know more, shaman?"); + elseif(e.message:findi("know more")) then --Part of Shaman Epic 1.0 + e.self:Say("That is good, " .. e.other:GetCleanName() .. ". Take this gem. It is a part of us like the clouds to the sky and is a wonderful gift from the grandfather. Take this gem to where the humans gather to spoil the land and water. Some call it a port. There you will find one of us, a shaman like yourself. Give him the gem and perhaps he will tell you more of the spirits."); + e.other:SummonCursorItem(1665); -- Item: Tiny Gem + end + elseif(randomize > 50) then + e.self:Say("I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself."); + else + e.self:Say("Oh look, a talking lump of refuse. How novel!"); + end +end + +function event_timer(e) + eq.depop(); +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/fieldofbone/an_Iksar_manslayer.lua b/fieldofbone/an_Iksar_manslayer.lua new file mode 100644 index 0000000..b8d44f7 --- /dev/null +++ b/fieldofbone/an_Iksar_manslayer.lua @@ -0,0 +1,15 @@ +-- This is to spawn a lesser spirit upon an_iksar_marauder's death for Shaman epic 1.0 +function event_death_complete(e) + eq.spawn2(78211,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/#Hero_Goxnok.lua b/firiona/#Hero_Goxnok.lua new file mode 100644 index 0000000..2400444 --- /dev/null +++ b/firiona/#Hero_Goxnok.lua @@ -0,0 +1,23 @@ +--This version of Hero Goxnok spawns after the Drachnid Spy is killed. Once confronted by hailing him, he will attack. Both versions of Hero Goxnok are for the fifth quest in the Greenmist line. +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("sighs slowly, seeing the confusion on your face. He says, 'Yes, " .. e.other:GetCleanName() .. ", I am the traitor. What I can gain by giving up this tome outweighs any patriotic obligations I may have once had. That city is dead, it is now time for us to grasp at our own destinies. I now give you two choices, " .. e.other:Race() .. ". You can walk away and never speak of this to anyone......or you can die. What will it be?'"); + end +end + +function event_combat(e) + if(e.joined == true) then + e.self:Say("Die by the power of Greenmist!!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/#Kwinn_the_Outlander.lua b/firiona/#Kwinn_the_Outlander.lua new file mode 100644 index 0000000..864c076 --- /dev/null +++ b/firiona/#Kwinn_the_Outlander.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, adventurer! Kwinn's the name. Hunting is my game. I have been all over this continent. Seen many things and found [odd trinkets]. I have no quarrel with any race. I judge a person or critter by their actions. Heck, my best friend is a troll!!"); + elseif(e.message:findi("odd trinkets")) then + e.self:Say("Blast!! I found some strange thingamajigs!! Most of it I toss or sell to vendors and crazy sages. I am on my way to sell this [iron tail] to a tinkerer."); + elseif(e.message:findi("iron tail")) then + e.self:Say("Found the thing washed up on the shore in Timorous Deep. Looks like a metal lizardman tail. It is all rusted and covered with barnacles. Probably can't get much for it, but I'll try. Why do you ask? Are you looking to [trade for the mechanical thing]?"); + elseif(e.message:findi("trade for the mechanical thing")) then + e.self:Emote("takes out an extra pack. 'Thought you might be interested. I don't want to take a loss and I only trade for things I am hunting, so here!! Inside this pack you need to combine the following items; a sabertooth tiger mane, a pair of pygmy brute choppers, a lime plume and a war bone fist. Return the full sack to me and the tail is yours.'"); + e.other:SummonCursorItem(17038); -- Item: Empty Pack from Kwinn + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12828})) then + e.self:Say("Kackling Quellious!! This will bring a fortune on the black market!! Well, a deal is a deal. Here is the tail."); + e.other:QuestReward(e.self,0,0,0,0,12822,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/#Realla_Segoan.lua b/firiona/#Realla_Segoan.lua new file mode 100644 index 0000000..a68b3c8 --- /dev/null +++ b/firiona/#Realla_Segoan.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Realla Segoan from the city of Erudin. I cannot spend time chatting with you now. I have [official tasks] to perform."); + elseif(e.message:findi("official tasks")) then + e.self:Say("I have been sent to this continent by the High Council of Erudin to find information about the disappearance of [Al'Kabor]."); + elseif(e.message:findi("al'kabor")) then + e.self:Say("Al'Kabor is believed to be the most powerful living wizard on Norrath. In addition, he is also one of Erudin's oldest citizens. The High Council is very interested in receiving information about his disappearance. So far, from the [reports] that I have collected, there appears to have been a [troublemaking gnome] involved."); + elseif(e.message:findi("reports")) then + e.self:Say("I have received many reports regarding the disappearance. Adventurers upon this continent have reported sightings of some of Al'Kabor's [missing research notes]."); + elseif(e.message:findi("troublemaking gnome")) then + e.self:Say("Yes, a gnome. I have received reports that the gnomish wizard, Ognit Eznertob, was near Al'Kabor when he disappeared. I have attempted to contact him about it, however, he seems to be avoiding me and the city of Erudin. This is not the first time that this gnome has caused trouble for the Erudites. He was arrested a while back for tampering with hatch in the Hole, releasing evil denizens from the Underfoot. If he is responsible for the disappearance, great lengths will be taken to assure the citizens of Erudin that the gnome will no longer be trouble for them."); + elseif(e.message:findi("missing research notes")) then + e.self:Say("It appears that through his travels, the great wizard has misplaced some of his research notes. Perhaps if I can find someone to [help collect the research notes], the High Council may be able to determine what caused Al'Kabor's disappearance. However, only those who truly know the path the great wizard's research has taken him will know where to find the missing research notes."); + elseif(e.message:findi("help collect the research notes")) then + e.self:Say("Excellent! Take this Research Binder and fill it with the research notes when you find them. Once it is filled, seal it and take it to Noilgin Mindtune here at the outpost, so that he may deliver it to Erudin. Be forewarned though, it will be a dangerous path to follow. Most likely, the research notes have fallen into possession of some very dangerous beings."); + e.other:SummonCursorItem(17088); -- Item: Research Binder + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/#Sir_Hobble.lua b/firiona/#Sir_Hobble.lua new file mode 100644 index 0000000..30a8b64 --- /dev/null +++ b/firiona/#Sir_Hobble.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("holds a cracked monocle up to his squinty eye. 'I say!! A talking bear!! Squire Fuzzmin, come and take a gander at this rare find. The wonders never cease in the land of Kunark!!'"); + eq.unique_spawn(84007,23,0,2884,-3028,-77,128); -- Spawn Squire_Fuzzmin for Wurmslayer quest + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_death_complete(e) + eq.depop(84007); +end +-- For Wurmslayer quest +-- Quest depends on Squire_Fuzzmin in Firiona for complete functionality +-- Qadar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Ailerina_the_Gentle.lua b/firiona/Ailerina_the_Gentle.lua new file mode 100644 index 0000000..da2c55a --- /dev/null +++ b/firiona/Ailerina_the_Gentle.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("blinks her eyes, as if emerging from a trance. 'Oh... my greetings, good " .. e.other:GetCleanName() .. ". Please, do forgive my languor, but the ocean is so serene, so entrancing at times in its calm, soothing motions. I do find myself lost within it each time I am allowed to return.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/firiona/Alex_McDarnin.lua b/firiona/Alex_McDarnin.lua new file mode 100644 index 0000000..afe2c46 --- /dev/null +++ b/firiona/Alex_McDarnin.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail! Do you by chance bring news from the North? I sure do miss the cold. It is just a bit too warm for me down here. Well, I wish you the best of luck in your travels. Tomorrow is a new day and I am off in search of [new writings] to take back to the Tribunal."); + elseif(e.message:findi("new writings")) then + e.self:Say("There have been tales of new writings being found in some of the ancient ruins that abound outside of this outpost. These writings will be very valuable to my church. The sooner I can return with the writings, the sooner the Tribunal can put the teachings to work. I am always in need of aides so if [you want to help], just say so."); + elseif(e.message:findi("I want to help")) then + e.self:Say("We won't be traveling together, but here is what I need. There are four writings that still elude me. Return one of these and I'll spare one of the four extra writings I have. I am looking for the writings called Talisman of Jasinth, Spirit of Scale, Cripple, and Cannibalize III. Be off, and may your travels be safe!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {19269, 19238, 19264, 19272}); + if(count > 0) then + repeat + e.self:Say("Here is the scroll that I promised. We have both gained much knowledge today. I hope to do business with you again soon. Farewell!"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(19267,19271,19274,19266),1000); + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Allaria_Sneakyfeet.lua b/firiona/Allaria_Sneakyfeet.lua new file mode 100644 index 0000000..d35b619 --- /dev/null +++ b/firiona/Allaria_Sneakyfeet.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well hello, " .. e.other:GetCleanName() .. ". What brings you to me? Are you one of the sneaky folk in search of the plans for the Whistler?"); + elseif(e.message:findi("plans for the whistler")) then + e.self:Say("I must tell you first off, there was much bloodshed in getting these plans. Three of Rivervale's bravest warrior were killed by Rozzut's brother, Neezee in order to keep the plans out of the hands of the Goblins. Allaria sighs deeply. There was much sorrow over this. The only positive that seemed to come out of the whole ordeal, was the finding of the plans to make the weapon that Rozzut, Chief Zambooz's main assassin uses so effectively. I have now made it my calling to give a copy of these plans to those that are worthy of such knowledge. Do you believe yourself to be worthy of such an honor?"); + elseif(e.message:findi("i am worthy")) then + e.self:Say("Very well then. Here are the plans for the weapon that is said to cut holes into the enemy without much effort. Legend has it that if the wind is blowing, your enemy will be whistling after the fight. But they won't be whistling voluntarily.' Allaria smiles. 'Good luck to you friend."); + e.other:SummonCursorItem(18347); -- Item: Rozzuts plans + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Barnal_Flamehand.lua b/firiona/Barnal_Flamehand.lua new file mode 100644 index 0000000..4ea2590 --- /dev/null +++ b/firiona/Barnal_Flamehand.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("And a fine day to you, too, " .. e.other:GetCleanName() .. "! What is it that brings you here? Fortune? Adventure? In either case. it will be more fun than the duty I have. I am to acquire what scrolls I can for the High Council of Erudin. And you're also in luck, as I seek the services of a mighty adventurer like yourself. Do you wish to [aid me in my duty]?"); + elseif(e.message:findi("aid you in your duty")) then + e.self:Say("Then you will do this for me. Venture beyond this outpost to the most distant lands and the darkest dungeons. Within them. the creatures with the greatest power will have scrolls. The residents here will be able to give you general locations of the most dangerous places. I wish to obtain the scrolls of Atol's Spectral Shackles, Tears of Druzzil, Inferno of Al'Kabor, and lastly, Pillar of Frost. Make haste, as the High Council cannot be kept waiting! Fear not. I shall [reward] you well."); + elseif(e.message:findi("reward")) then + e.self:Say("I am not empty-handed. I have already located some of the most rare scrolls. I'll part with one of my four for what you return to me. Fare thee well!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {19315, 19322, 19318, 19319}); + if(count > 0) then + repeat + e.self:Say("Here is the scroll that I promised. We have both gained much knowledge today. I hope to do business with you again soon. Farewell!"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(19329,19320,19324,19317),1000); + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Brisha_Fyrestone.lua b/firiona/Brisha_Fyrestone.lua new file mode 100644 index 0000000..aaa6a6b --- /dev/null +++ b/firiona/Brisha_Fyrestone.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("special fire emerald")) then + e.self:Say("Why would you want one of those? Not many people request them, except in special cases. Even you with all your powers can't tell the difference between them. Simply give Drake any fire emerald that you may have and he will make sure you get the special one."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Bronto_Thudfoot.lua b/firiona/Bronto_Thudfoot.lua new file mode 100644 index 0000000..dccacca --- /dev/null +++ b/firiona/Bronto_Thudfoot.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("What's a kid like you doing in a dangerous place like this? Shouldn't you be at home having bread. cakes and milk?"); + e.self:DoAnim(69); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Emote("puts his head over your head as if measuring you. 'Heh!! Going to have to grow up before the General lets him out to play in Kunark!'"); + e.self:DoAnim(64); + eq.signal(84130,1); -- NPC: Lenka_Stoutheart + elseif(e.signal == 2) then + e.self:Say("No way, Lenka! This place is too dangerous for this kid. Why don't you just stay here and drink it up with us? The Samson couldn't even brew bog juice right, but every once in a while a bashed-up explorer comes in carrying [Cabby Pale Ale]."); + e.self:DoAnim(59); + elseif(e.signal == 3) then + e.self:Emote("takes a bottle from his pack and shows you. 'This is Cabby Pale Ale. CPA for short or, as they say in lizardtown, Cabilis Pale Ale. I got it off a drunken dwarf. He said he bought it off a dark elf. Where he really got it, I am not sure.'"); + eq.signal(84130,2); -- NPC: Lenka_Stoutheart + elseif(e.message:findi("lizardtown")) then + e.self:Say("Just like it sounds. A town full of those lizardmen called Iksar. I thought they were extinct along with raptors, the Combine Empire, and cheap booze."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Captain_Keatar.lua b/firiona/Captain_Keatar.lua new file mode 100644 index 0000000..78a662a --- /dev/null +++ b/firiona/Captain_Keatar.lua @@ -0,0 +1,38 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail! Beware of the [goblin raiders] roaming the plains outside of Firiona Vie. They ahve caused much trouble and continue to assault this outpost."); + elseif(e.message:findi("goblin raider")) then + e.self:Say("The goblin raiders have been quite a nuisance to my trackers. I implore you to aid my men and lessen teh presence of the vile beasts. Bring me proof that you ahve taken at least four of these raiders down. You shall earn the respect of this outpost and insure your own well-being."); + elseif(e.message:findi("goblin battlemaster")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The goblin battlemasters are formidable fighters. They have defeated many of the patrols I sent into the plains. Bring me proof of four of these fallen goblins and I shall reward you with a piece of Faydark ringmail armor."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I cannot trust you fully. When you have performed more deeds in the name of the Union of Vie, then and only then shall I trust you."); + else + e.self:Say("You are no ally of the Union of Vie! Leave my sight before I incarcerate you."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12922,item2 = 12922,item3 = 12922,item4 = 12922})) then + e.self:Say("You serve this outpost well. Here is a small reward. You should try to hunt down [goblin battlemasters]. I have very few resources to send into the plains to track them down. Perhaps you can help us."); + e.other:Faction(e.self,248,5); -- Faction: Inhabitants of Firiona Vie + e.other:Faction(e.self,326,3); -- Faction: Emerald Warriors + e.other:Faction(e.self,312,3); -- Faction: Storm Guard + e.other:Faction(e.self,441,-1); -- Faction: Legion of Cabilis + e.other:Faction(e.self,313,-1); -- Faction: Pirates of Gunthak + e.other:QuestReward(e.self,0,8,0,0,0,1000); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12923,item2 = 12923,item3 = 12923,item4 = 12923})) then + e.self:Say("Good work! Please accept this piece of armor. It was crafted in Felwithe for the swiftly moving rangers of this outpost."); + e.other:Faction(e.self,248,10); -- Faction: Inhabitants of Firiona Vie + e.other:Faction(e.self,326,6); -- Faction: Emerald Warriors + e.other:Faction(e.self,312,6); -- Faction: Storm Guard + e.other:Faction(e.self,441,-2); -- Faction: Legion of Cabilis + e.other:Faction(e.self,313,-2); -- Faction: Pirates of Gunthak + e.other:QuestReward(e.self,0,8,0,0,eq.ChooseRandom(12924,12925,12926,12927,12928,12929,12930,12931,12932,12933),5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/firiona/Captain_Nealith.lua b/firiona/Captain_Nealith.lua new file mode 100644 index 0000000..7723592 --- /dev/null +++ b/firiona/Captain_Nealith.lua @@ -0,0 +1,37 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail. adventurer!! Stand tall and fight for the forest folk and all good races of Norrath. We shall claim this land for the kingdom of Thex! My warriors shall not fail. Already we patrol deep in the wilds of Kunark. We welcome all mercenaries and urge adventurers to [join the defense of the outpost]."); + e.self:DoAnim(60); + elseif(e.message:findi("join the defense")) then + e.self:Say("I salute you!! Join the hunt. Reports from the front line indicate a rise in the drolvarg population. Abandon your fear and slay these beasts for the greater good. Already. they have taken far too many lives. even my sibling's!! I shall pay you your wages upon the return of four drolvarg teeth."); + e.self:DoAnim(67); + elseif(e.message:findi("sibling")) then --Captain Nealith's Brother quest + e.self:Emote("appears saddened by the mention of his sibling. 'My brother Marltek has been missing for quite some time. I found coarse Drolvarg hair inside his tent which leads me to believe he has become a meal for the dogs. CURSE THE EVIL DOGS!! I shall see them all dead!!'"); + e.self:DoAnim(28); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "holds the canine in his palm. 'Good work, but you will have to slay more than this to earn your wages."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12977, item2 = 12977, item3 = 12977, item4 = 12977},1,nil,text)) then + e.self:Emote("tosses the teeth into a very large cask full of similar teeth. 'Fine work, " .. e.other:GetCleanName() .. ". I wish all my own troops showed the same tenacity. I salute you. This will keep you well fed during your long patrols. Use your wages to better equip yourself. Continue the fight!! The General is pleased.'"); + -- verified live experience and faction + e.other:Faction(e.self,248,5); -- +Inhabitants of Firiona Vie + e.other:Faction(e.self,326,3); -- +Emerald Warriors + e.other:Faction(e.self,312,3); -- +Storm Guard + e.other:Faction(e.self,441,-1); -- -Legion of Cabilis + e.other:Faction(e.self,313,-1); -- -Pirates of Gunthak + e.other:QuestReward(e.self,{copper = math.random(5),silver = math.random(15),gold = math.random(10),itemid = 13155,exp = 10000}); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18076})) then --blood soaked note Captain Nealith's Brother quest + e.self:Emote("nearly faints after reading the letter. 'Dear Marltek!! I shall miss you. There is more evil in this land!! Madness beyond description. Thank you " .. e.other:GetCleanName() .. ". You put my soul at ease and give me new direction. Please accept my brothers blade. He found it in the wilds. May you use it to slay many Drolvarg!!'"); + e.other:Faction(e.self,248,5); -- +Inhabitants of Firiona Vie + e.other:Faction(e.self,326,3); -- +Emerald Warriors + e.other:Faction(e.self,312,3); -- +Storm Guard + e.other:Faction(e.self,441,-1); -- -Legion of Cabilis + e.other:Faction(e.self,313,-1); -- -Pirates of Gunthak + e.other:QuestReward(e.self,0,0,0,14,12978,25580); --Glaive of Marltek + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/firiona/Despondo.lua b/firiona/Despondo.lua new file mode 100644 index 0000000..3c84a9b --- /dev/null +++ b/firiona/Despondo.lua @@ -0,0 +1,53 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("looks a bit troubled. 'Welcome, Welcome adventurer, I am the wizard tutor Despondo, although few need tutorage around here. It would seem that this is no place for a student of any sorts. The lands of Kunark are quite deadly.'"); + e.self:DoAnim(28); + elseif(e.message:findi("wrong")) then + e.self:Say("I was bound to this post by General Veredeth. I came to find the lost souls of my friends, but am needed here. I must find a fellow wizard to [rescue their souls]."); + elseif(e.message:findi("rescue their souls")) then + e.self:Say("You will need the [three bottles of entrapment]. If you can find their remains in Kunark then you will give the bottle to the body and the soul shall enter. Return all three bottles and I shall give you the wizard spell [Brain Bite]."); + elseif(e.message:findi("three bottles of entrapment")) then + e.self:Say("I will need three gems to prepare the bottles. I am afraid I left my currency within the Freeport Vault. You will have to get the gems I need: a peridot, an onyx and a star rose quartz then I will give you the bottles."); + elseif(e.message:findi("brain bite")) then + e.self:Say("Brain Bite is a concussion spell created by my former friends whose souls are now lost to Kunark. The blow to the inner brain of an enraged foe may just cause the loss of memory and lower their rage. If you want a copy you have to [rescue their souls]."); + elseif(e.message:findi("where are their souls")) then + e.self:Say("I have had visions of their sourroundings. Hampton is in a forest of trees which rain oranges. Ryla fell within a great fortress of armored dog men. Mardon met his fate high in a palace above the jungle leaves."); + elseif(e.message:findi("ryla") or e.message:findi("hampton") or e.message:findi("mardon")) then + e.self:Say("Alas, the souls of my friends Ryla, Hampton and Mardon are lost in Kunark. I need a wizard to [rescue their souls]."); + end +end + +function event_trade(e) + local item_lib = require("items"); + -- Onyx Hand in + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10027})) then + e.other:QuestReward(e.self,7,12,3,0,12962); -- Hampton's bottle + e.self:Say("This bottle is for the one called Hampton. If you look well, you can see his name. "); + -- Star Rose Quartz Hand in + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10021})) then + e.other:QuestReward(e.self,7,12,3,0,12964); -- Ryla's bottle + e.self:Say("Identify this when the time comes. It is Ryla's prison."); + -- Peridot Hand in + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10028})) then + e.self:Say("This bottle is for Mardon. You may be able to identify his name upon it. "); + e.other:QuestReward(e.self,7,12,3,0,12963); -- Mardon's bottle + -- Souls hand in + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12967, item2 = 12966, item3 = 12965})) then + e.self:Emote("embraces the bottles as if they were babes. 'Rejoice my friends!! Your souls are safe. " .. e.other:GetCleanName() .. ", you are a good wizard. You deserve to know the secret of concussion.'"); + e.other:Faction(e.self,248,5); -- +Inhabitants of Firiona Vie + e.other:Faction(e.self,326,3); -- +Emerald Warriors + e.other:Faction(e.self,312,3); -- +Storm Guard + e.other:Faction(e.self,441,-1); -- -Legion of Cabilis + e.other:Faction(e.self,313,-1); -- -Pirates of Gunthak + e.other:QuestReward(e.self,7,12,3,0,12968,100000); -- Scroll of Brain Bite + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Dionin_Needlespin.lua b/firiona/Dionin_Needlespin.lua new file mode 100644 index 0000000..9cc12a8 --- /dev/null +++ b/firiona/Dionin_Needlespin.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("sets down a needle and thread and a bolt of cloth. 'Greetings, my friend! I am the tailor of this outpost. We have limited supplies. I often have to reserve my tailoring supplies to [mend very large items].'"); + e.self:DoAnim(29); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Dom_Pathfinder.lua b/firiona/Dom_Pathfinder.lua new file mode 100644 index 0000000..b3fb70b --- /dev/null +++ b/firiona/Dom_Pathfinder.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Whoa!! Hold up there. adventurer! Gaze upon the fine packs and containers I have available. Such fine items could only be crafted by a Fier'Dal tailor. And lucky you!! You made it here just as I lowered my prices. How can you resist these bargains? I am taking a loss here!! Last day!! Buy now!!"); + e.self:DoAnim(49); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Drake_Mountainstorm.lua b/firiona/Drake_Mountainstorm.lua new file mode 100644 index 0000000..191a785 --- /dev/null +++ b/firiona/Drake_Mountainstorm.lua @@ -0,0 +1,21 @@ +-- special gemstone for paladin quest spell divine might +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome, welcome! Buy some gems or sell some gems. I have flawless merchandise. I have the finest miners scouring Kunark for its precious gems. Kunark has many rare minerals. The gnomes even say some of the rocks are from high up in the sky. From an orb floating so far away we cannot see it. Bah!! Those gnomes are insane."); + e.self:DoAnim(48); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10033})) then --fire emerald + e.self:Emote("examines the fire emerald, reaches into his pouch and hands you another. 'There you go, it doesn't look special but it is. If you don't believe me I'll take another look at it. Just remember this special fire emerald only has one purpose!'"); + e.other:QuestReward(e.self,0,0,0,0,10013); --A Special Fire Emerald + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Dune.lua b/firiona/Dune.lua new file mode 100644 index 0000000..f32b4f1 --- /dev/null +++ b/firiona/Dune.lua @@ -0,0 +1,22 @@ +function event_spawn(e) + eq.set_timer("follow", 1000); +end + +function event_timer(e) + if(e.timer == "follow") then + local getmobbynpctype = eq.get_entity_list():GetMobByNpcTypeID(84131); + local follow_target = getmobbynpctype:GetID(); + eq.follow(follow_target); + eq.stop_timer("follow"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Foloal_Stormforest.lua b/firiona/Foloal_Stormforest.lua new file mode 100644 index 0000000..1146ba2 --- /dev/null +++ b/firiona/Foloal_Stormforest.lua @@ -0,0 +1,24 @@ +-- warmly glowing stone quest -- ranger epic +function event_say(e) + if(e.message:findi("are you one such as myself")) then + e.self:Emote("stares at you and whispers. 'You must be the one that has been spoken of. Yes, yes I am one of the circle. There are many of us in the lands right now, all seeking answers to the ills that have befallen our homes.'"); + elseif(e.message:findi("answers")) then + e.self:Say("I have heard whispers of new Iksar movements in the land. The name of Venril Sathir is on the scaled lips and sharp tongues of every cold blooded lizard in this place."); + elseif(e.message:findi("venril sathir")) then + e.self:Say("All I've heard are whispers of connections between the undead lizards and the dark god of hate. There's some kind of history behind the two. It might be that Venril is the main focus of Innoruuk's will in the land. Then again, maybe not, but this is the best we've gotten so far. If you think you can do it, then find him and remove him from the face of this earth. Bring me the half of the stone I know you have and whatever conduit of power you find on his rotting corpse."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20462, item2 = 20461})) then + e.self:Emote("blinks and carefully takes the stones from you, cautiously scratching the jagged green stone against the other. Its skin seems to shiver and flake at the contact and eventually begins to shine brightly. 'With the gem nature's balance is complete. Take the stone and walk your path. Blade or lightning caller, burning sword or the mother's walk.'"); + e.other:QuestReward(e.self,0,0,0,0,20468); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Frist_Furtun.lua b/firiona/Frist_Furtun.lua new file mode 100644 index 0000000..ec443d9 --- /dev/null +++ b/firiona/Frist_Furtun.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail to thee, adventurer! I have been sent to this new land by the Clerics of Tunare in search of the new arcane magiks said to exist beyond this outpost. I myself once searched the nearby Outlands, but to go any further would lead to my certain death. Lately, the dangers have proven to be too much for adventurers and ones like myself. Have you also ventured to this land in search of these [new magiks?]"); + elseif(e.message:findi("new magiks")) then + e.self:Say("Ahh, wonderful! The more souls who search for these scrolls, the sooner I'll be able to return home and share this knowledge. The magiks are in the form of scrolls held by the strongest creatures of the Outlands. You will probably have the best luck searching in the darkest depths of the dungeons beyond this outpost. You might want to talk to the residents of this outpost for locations of these dreadful places. If you should happen to [have] any [duplicate scrolls], please come speak to me. I might be interested in working out a trade for a scroll you do not yet have."); + elseif(e.message:findi("duplicate scroll")) then + e.self:Say("Great! The scrolls I am interested in are those of Death Pact, Upheaval, Yaulp IV, and Reckoning. If you bring me any one of these scrolls, I'll let you reach into my bag and pull out one of the four very rare scrolls that have come into my possession."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {19203, 19205, 19209, 19212, 19233}); + if(count > 0) then + repeat + e.self:Say("Here is the scroll that I promised. We have both gained much knowledge today. I hope to do business with you again soon. Farewell!"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(19210,19224,19420,19206),1000); + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/firiona/Frode.lua b/firiona/Frode.lua new file mode 100644 index 0000000..7008151 --- /dev/null +++ b/firiona/Frode.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.set_timer("depop",2100000); +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/firiona/Frothy.lua b/firiona/Frothy.lua new file mode 100644 index 0000000..e52c853 --- /dev/null +++ b/firiona/Frothy.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("what jungle city")) then + e.self:Say("I've heard adventurers talk of a city deep in the jungles. They say the dead walk its streets. Many have claimed to discover great treasures there as well as to lose many friends. I also heard it may have a working brew barrel."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Gearin_Gaxx.lua b/firiona/Gearin_Gaxx.lua new file mode 100644 index 0000000..70861ee --- /dev/null +++ b/firiona/Gearin_Gaxx.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome. friend! If armor is what you seek. let the house of Gaxx provide you with the finest. Our metalwork is second to none. Every now and again we may even create [rare armor] for the general public to purchase."); + e.self:DoAnim(29); + elseif(e.message:findi("rare armor?")) then + e.self:Say("I have found many exotic materials in Kunark with which I can create rare armor. I currently am working on the [Guard of Ik] and the [Hate Tail Guard] shields. I have no armor as of yet. but I am experimenting with new designs."); + elseif(e.message:findi("guard of ik")) then + e.self:Say("The Guards of Ik are made from shields found in the jungles. I would be selling them if it were not for the unfortunate fact that the shields are spectral and vanish overnight. Another bit of bad news is that the formula I was working on to stabilize the essence of the metal was stolen by local pirates. I need two more shields and my formula. Bring these to me and I shall not charge you."); + elseif(e.message:findi("hate tail guard")) then + e.self:Say("I can create the Hate Tail Guard using both metal and scorpion carapaces. I have the metal. I will make you one for the price of 100 gold coins - I accept only gold. I will also need two flawless carapaces from giant hate tail scorpions."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "Hey?! We had a deal! I get two ik shields and my ik formula!"; + local text2 = "Like this is going to get you anything. I can't work with this! The going rate is 100 gold pieces and you supply the two flawless hate tail carapaces."; -- broken quest, but that's the partial hand-in dialogue + + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12883, item2 = 12883, item3 = 12971},1,text1)) then + e.self:Emote("places the formula in a box which appears to have similar copies in it. Thank you! I can now reward you with this Guard of Ik shield I had lying around.") + e.other:Faction(e.self,248,5); -- +Inhabitants of Firiona Vie + e.other:Faction(e.self,326,3); -- +Emerald Warriors + e.other:Faction(e.self,312,3); -- +Storm Guard + e.other:Faction(e.self,441,-1); -- -Legion of Cabilis + e.other:Faction(e.self,313,-1); -- -Pirates of Gunthak + e.other:QuestReward(e.self,0,0,0,0,12972,1500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Gillia_Brissok.lua b/firiona/Gillia_Brissok.lua new file mode 100644 index 0000000..9188061 --- /dev/null +++ b/firiona/Gillia_Brissok.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings friend, it is good to be freed from the clutches of those evil creatures. Tell me are you willing to help me bring some [justice] to them?"); + elseif(e.message:findi("justice")) then + e.self:Say("For justice to be brought to them you will need to strike at some of the most powerful goblins found there. Seek out the goblin cave lords deep within the Temple of Droga and bring me back three Sashes of the Cave Lords. Also I will need the Earring of King Dronan. Do this and you will be well rewarded."); + end +end +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 62093, item2 = 62092, item3 = 62092, item4 = 62092})) then + e.other:QuestReward(e.self,0,0,0,0,62202); + end + item_lib.return_items(e.self, e.other, e.trade) -- return unused items +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Glinya_Sweetpie.lua b/firiona/Glinya_Sweetpie.lua new file mode 100644 index 0000000..9c6a637 --- /dev/null +++ b/firiona/Glinya_Sweetpie.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("is covered with flour. She reaches out to shake your hand. 'Pleased to meet you. Ooops!! Teehee!! I have gotten flour on your hand. Please forgive me. I have been quite busy baking bread for the soldiers - even that braggart, Treekill. Look around. I even have a few items shipped from the Faydwer.'"); + e.self:DoAnim(54); + end +end \ No newline at end of file diff --git a/firiona/Gracie_F-Liler.lua b/firiona/Gracie_F-Liler.lua new file mode 100644 index 0000000..753af1e --- /dev/null +++ b/firiona/Gracie_F-Liler.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It's so good to see new faces, not to mention more adventurers in this area. On some nights, the sounds that come from the nearby hills will scare even the hardiest of travelers. I volunteered in the name of the Keepers of the Art to help locate any [new spell scrolls] that might surface. Maybe you will have a successful journey and find some of these scrolls yourself."); + elseif(e.message:findi("new spell scrolls")) then + e.self:Say("I have recently come into possession of some of these scrolls. They seem to be very promising in adding to the strengths of our occupation. Some more good news is that I have a few extra of these scrolls. Perhaps you might have or find an extra of your own and be willing to trade? In case you are interested, I am looking for the scrolls Theft of Thought, Color Slant, Cripple, and lastly Dementia. Bring me one of these and I'll make an even trade."); + elseif(e.message:findi("fyrefly")) then + e.self:Say("Do you like her? I found her injured one day just outside the outpost. She just seems to hang around now. I don't blame her though. It's much safer in here than out there."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {19378, 19269, 19384, 19374}); + if(count > 0) then + repeat + e.self:Say("Here is the scroll that I promised. We have both gained much knowledge today. I hope to do business with you again soon. Farewell!"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(19386,19379,19381,19215),1000); + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Guard_Andile.lua b/firiona/Guard_Andile.lua new file mode 100644 index 0000000..efb9d15 --- /dev/null +++ b/firiona/Guard_Andile.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings! Are you a mercenary? If so, I urge you to go and speak with one of the officers of this outpost. We can always use help in suppressing the goblins and clearing out a killing zone."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Guard_Eldarn.lua b/firiona/Guard_Eldarn.lua new file mode 100644 index 0000000..96ebf34 --- /dev/null +++ b/firiona/Guard_Eldarn.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail!! This is the tunnel to the borderland. We prefer that only the soldiers use it but, if you must, do so at your own risk.'"); + e.self:DoAnim(67); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Guard_Figwynn.lua b/firiona/Guard_Figwynn.lua new file mode 100644 index 0000000..593bb0a --- /dev/null +++ b/firiona/Guard_Figwynn.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Halt!! This tunnel is no longer operational. The walls have given way to the pressures of the sea."); + e.self:DoAnim(67); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/firiona/Guard_Frandan.lua b/firiona/Guard_Frandan.lua new file mode 100644 index 0000000..68b7e54 --- /dev/null +++ b/firiona/Guard_Frandan.lua @@ -0,0 +1,12 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Glad to see you made it to the outpost in one piece! Now you can test your mettle against the giants of Kunark. They sometimes carry [odd items] which can fetch a coin or two on the market."); + elseif(e.message:findi("odd item")) then + e.self:Say("I once spoke with a ranger who tried to sell me a mountain giant toothpick he recovered. Looked like it would make a fine weapon, but it smelled of decayed flesh!! I do not even care to think about what kind of flesh it was used to pick."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/firiona/Guard_Grizma.lua b/firiona/Guard_Grizma.lua new file mode 100644 index 0000000..a4d13c3 --- /dev/null +++ b/firiona/Guard_Grizma.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Bah!! A powerful knight such as myself confined to a post! My heart yearns for battle. I yearn to return to the [tunnels beneath] and face evil once again!"); + elseif(e.message:findi("tunnels beneath")) then + e.self:Say("Aye!! The tunnels beneath the land. The location escapes me, but I do remember the evil beasts within!! Slime and even [madmen] from the races of Antonica. Hah!! What am I saying? That is all that inhabits Antonica!"); + elseif(e.message:findi("madmen")) then + e.self:Say("Madmen, indeed! I must admit that I even saw a few of my own among their numbers. They fought with no fear. They fell before our swords. Some carried weapons the likes of which I have never seen. I myself own a [trophy] from that battle."); + elseif(e.message:findi("trophy")) then + e.self:Say("My trophy from the tunnels is some sort of baton. I cannot seem to get the hang of wielding it. A monk once showed me the proper way to use it, but I quickly dismissed him. Hah!! I need not take instructions from men who do not understand the beauty of the blade."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/firiona/Guard_Ivak.lua b/firiona/Guard_Ivak.lua new file mode 100644 index 0000000..0f30529 --- /dev/null +++ b/firiona/Guard_Ivak.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Blast!! Hundreds of goblins to slay and [great treasure] to be had and I am stuck at my post!"); + elseif(e.message:findi("great treasure?")) then + e.self:Say("A fellow paladin who was a member of an expedition into the jungles of Kunark returned with a jade green broadsword. He said he came across it while they were fighting their way out of some ancient city filled with golems. They lost many strong troops on that expedition."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Guard_Legolin.lua b/firiona/Guard_Legolin.lua new file mode 100644 index 0000000..474e47b --- /dev/null +++ b/firiona/Guard_Legolin.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Beware of the sea wall at night. We are quite undermanned and cannot patrol every place at once. Oftentimes, a few pirates or goblins manage to scale the wall and attempt to lessen our might."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/firiona/Guard_Lithomin.lua b/firiona/Guard_Lithomin.lua new file mode 100644 index 0000000..58f5d84 --- /dev/null +++ b/firiona/Guard_Lithomin.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Halt!! This is General Veredeth's keep. It is currently under construction and is off limits to adventurers. Only those with important business may enter."); + e.self:DoAnim(67); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Guard_Meyana.lua b/firiona/Guard_Meyana.lua new file mode 100644 index 0000000..2d947bf --- /dev/null +++ b/firiona/Guard_Meyana.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Halt!! Enter only if you have business with the General or his aides."); + e.self:DoAnim(67); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Guard_Opano.lua b/firiona/Guard_Opano.lua new file mode 100644 index 0000000..04d2c25 --- /dev/null +++ b/firiona/Guard_Opano.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("has large scars on the right side of his face. He is missing one eye and wears no patch. 'Another adventurer? If you think you will find fame and fortune in this land, you are sadly mistaken. Only death awaits you out there in the wilds of Kunark. Just when you think you are raiding a [tomb], you will find it becomes your own final resting place.'"); + elseif(e.message:findi("tomb")) then + e.self:Say("Do not contemplate raiding tombs. I was once sent with a unit to find a relative of a human noble lost in Kunark. With the help of the Fier'Dal trackers, we found them in a hidden tomb. It was filled with [great evil] and [great deceit]."); + elseif(e.message:findi("great deceit")) then + e.self:Say("Within that tomb laid a pitfall to doom. We found ourselves trapped. We had to creep through dark halls, fearing death. Every time hope sprang forth, we would find ourselves trapped again. Be it by pitfall, hidden passage or locked door... hope mocked us at every turn."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/firiona/Guard_Tobiah.lua b/firiona/Guard_Tobiah.lua new file mode 100644 index 0000000..18ab9c7 --- /dev/null +++ b/firiona/Guard_Tobiah.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail. I urge you not to venture too far from the outpost. We may not hear your cries for help."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Guard_Vitar.lua b/firiona/Guard_Vitar.lua new file mode 100644 index 0000000..c2adfb6 --- /dev/null +++ b/firiona/Guard_Vitar.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("waves you away. 'I have no time for conversation!! Can't you see I am on duty?!'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Guard_Winis.lua b/firiona/Guard_Winis.lua new file mode 100644 index 0000000..aa618f7 --- /dev/null +++ b/firiona/Guard_Winis.lua @@ -0,0 +1,12 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("swats at the mosquitoes flying around his head. 'Greetings! The sea wall is no place for you. Head back to the mainland. You may find a party of adventurers to join up with and venture into the outlands. I hear reports of [strange weapons] being found. An adventurer could make quite a haul and you could help the outpost by decreasing the goblin population.'"); + elseif(e.message:findi("strange weapon")) then + e.self:Say("I have seen and heard many tales of weapons of strange design. I personally own a warhammer made by some other race, no doubt. I found it in an ancient city hidden deep in a forest that was crawling with giant raptors!! Many others in my unit found staffs, armor and blades, to say the least. Alas, we were unable to find the city in later expeditions."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/firiona/Hero_Goxnok.lua b/firiona/Hero_Goxnok.lua new file mode 100644 index 0000000..3c9fb34 --- /dev/null +++ b/firiona/Hero_Goxnok.lua @@ -0,0 +1,40 @@ +--This version of Hero Goxnok will lead us to the drachnid spy and the traitor. When the spy is killed, a second version of Goxnok will spawn, and he will reveal that he is in fact the traitor. This is all part of Greenmist quest number five. +function event_say(e) + if(e.message:findi("charasis tome")) then + e.self:Say("The Charasis Tome has been scribed and now another copy exists. The traitor obviously wants to keep a copy for himself. I am told you will deliver both copies to Lord Qyzar along with your zealot khukri and you shall be awarded that of a crusader. Let us rest for a minute and then I shall show you the meeting place."); + eq.move_to(-1856,589,146,36,true); + e.self:SetAppearance(1); + e.self:Say("Come along. If we get separated, look for the humanoid wolf camp and beyond the tunnel, you shall find the meeting place of the spider riders and the traitor."); + eq.set_timer("Talk1",180000); + end +end + +function event_signal(e) + if(e.signal == 1) then + eq.spawn2(84401,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop(); + end +end + +function event_timer(e) + if(e.timer == "Talk1") then + e.self:Emote("stops abruptly and shudders with fear. 'Look!! There, past the wolf people. Near an ancient tunnel can be found the meeting place. I fear we may be too late. I thought I saw a shadow dash from the tunnels, but I did not see any spider riders. We'll see when we reach it.'"); + eq.stop_timer("Talk1"); + eq.set_timer("Talk2",30000); + end + if(e.timer == "Talk2") then + e.self:Emote("looks over at you and sizes you up before continuing on. He says, 'We should continue, follow me.'"); + eq.stop_timer("Talk2"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Hiptal_Frizzleboth.lua b/firiona/Hiptal_Frizzleboth.lua new file mode 100644 index 0000000..fb78af7 --- /dev/null +++ b/firiona/Hiptal_Frizzleboth.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Bah!! It's not been a good day! Reports from the Outlands are even worse than I was led to believe. Many would-be adventurers have turned up missing of late. One of them was one of my messenger. He was out collecting some of the various new and [interesting scrolls] that have been surfacing in the farthest reaches of this land. I fear for his safety and that of the others searching for the lost travelers. I wish there was more I could do."); + elseif(e.message:findi("interesting scrolls")) then + e.self:Emote("reaches into his pouch. 'Well, let's see what I have in here. Ah, yes. The scrolls are definitely worth finding. Possibly even dangerous if they should fall into the wrong hands. But that is why the Collective sent me here. To procure all of the scrolls so that they may be studied at the Library of Mechanimagica. Bah!! But my messenger is missing! I can't fail them. Would you be willing to [help locate] some of the scrolls I am missing?"); + elseif(e.message:findi("help locate")) then + e.self:Say("You would do that for me? Of course you would, you realize how important my work is here. Your task is quite simple, really. I'll part with one of my rare scrolls if you bring me one of the common ones from the surrounding areas. To be more precise, I am looking for the scrolls Gift of Xev and Bristlebane's Bundle. Oh, my nephew is going to love these! I can't wait to get my hands on them! I'm also looking for the scrolls Quiver of Marr and Scars of Sigil. Bring them back to me as soon as you find one."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {19351, 19347, 19354, 19358}); + if(count > 0) then + repeat + e.self:Say("Here is the scroll that I promised. We have both gained much knowledge today. I hope to do business with you again soon. Farewell!"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(19368,19346,19355,19357),1000); + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Kaydin_Gaxx.lua b/firiona/Kaydin_Gaxx.lua new file mode 100644 index 0000000..9159320 --- /dev/null +++ b/firiona/Kaydin_Gaxx.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("smells of rust. He sets down a chain of linked rings. 'Greetings! Come looking for some protection from the beasts, eh? Wise, indeed. Kunark is a much more dangerous place than one might think. And once you enter its dense jungle territories, you may not see civilization again for months.'"); + e.self:DoAnim(48); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Lenka_Stoutheart.lua b/firiona/Lenka_Stoutheart.lua new file mode 100644 index 0000000..40f022a --- /dev/null +++ b/firiona/Lenka_Stoutheart.lua @@ -0,0 +1,41 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("sips on her ale. 'Look what we have here, Bronto! A would be hero!'"); + e.self:DoAnim(39); + eq.signal(84129,1); -- NPC: Bronto_Thudfoot + elseif(e.message:findi("interesting")) then + e.self:Emote("takes a jagged scimitar out of a wrap and lets you hold it. You feel as though it is linked to the spirit world. Lenka grabs it back. 'No, no! You can't keep it. But I can tell you there are plenty more weapons and armor like this. Just have to do a little dragon slaying.'"); + eq.signal(84129,2); -- NPC: Bronto_Thudfoot + e.self:DoAnim(57); + elseif(e.message:findi("cabby pale ale")) then + eq.signal(84129,3); -- NPC: Bronto_Thudfoot + eq.set_timer("hobble",math.random(900000,1800000)); + elseif(e.message:findi("lizardtown")) then + e.self:Say("The trackers of Firiona Vie have come back with reports that the Iksar are back in force and have a city somewhere in the heart of Kunark. There goes the neighborhood...again."); + end +end + +function event_timer(e) + if(e.timer == "hobble") then + eq.unique_spawn(84005,22,0,-3148,-1305,256,0); -- NPC: #Sir_Hobble + eq.stop_timer("hobble"); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("We're just kidding with you, kid. Heh. Although they are making heroes kinda small these days. Hey, you [want to see something interesting]?"); + elseif(e.signal == 2) then + e.self:Say("I hear they sell the stuff in only two places. Lizardtown and Neriak. Hmmm. Now, why is that?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Lieutenant_Darakor.lua b/firiona/Lieutenant_Darakor.lua new file mode 100644 index 0000000..ba41ce6 --- /dev/null +++ b/firiona/Lieutenant_Darakor.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, adventurer, and welcome to the outpost of Firiona Vie. You should find just about everything you need in this outpost from supplies to information. But beware if you travel outside our patrol region, as the [drolvargs] and other minions of evil will be quick to end your adventuring days."); + elseif(e.message:findi("drolvarg")) then + e.self:Say("The Drolvarg are a race of bloodthirsty werewolves. It's said they can smell a traveler from a mile away so be cautious. They are reputedly led by a powerful sorcerer, but of him I'm afraid I know nothing else. [General Veredeth] has left us strict orders to slay the beasts on sight."); + elseif(e.message:findi("general veredeth")) then + e.self:Say("General Galeth Veredeth is the leader and founder of this outpost. His exploits in the [Bloody Kithicor] war are infamous and his skill in tactics is legendary. He is currently traveling about this new land, assessing it for hostility and further colonization."); + elseif(e.message:findi("bloody kithicor")) then + e.self:Say("Surely you've heard about the battle of Bloody Kithicor! It was only a few years ago that the dark elves attempted to conquer Highkeep and from there all of Antonica. Legend has it they were led by the the daughter of Innoruuk herself, Lanys T'Vyl. It was only through the heroics of Firiona Vie and her companions that the threat was put to an end in Kithicor Forest. Many brave souls were sent to Tunare that day when Innoruuk bestowed his wrath upon the battlefield."); + end +end \ No newline at end of file diff --git a/firiona/Luminare_Pasinia.lua b/firiona/Luminare_Pasinia.lua new file mode 100644 index 0000000..fbf8980 --- /dev/null +++ b/firiona/Luminare_Pasinia.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("waves her hands as if to cast a spell. 'GREETINGS!! I am the Luminare of Firiona. By decree of his royal highness, King Thex, I am here to research spells and artifacts. I have much to do. I welcome any enchanter who offers to [assist the great Luminare].'"); + e.self:DoAnim(43); + elseif(e.message:findi("assist")) then + e.self:Say("And great I am, indeed!! Alas, not great enough to be everywhere at once. I would gladly reward you if you would [collect] components for me."); + e.self:DoAnim(42); + elseif(e.message:findi("collect")) then + e.self:Say("Then go into the wilds beyond the outpost and upon your return, you shall give me one Nok Shaman Powder, one Heart of Ice, one Ton Warrior Totem, and one Sabertooth Tiger Mane. This shall earn you knowledge of an enchanter spell I recently scribed."); + e.self:DoAnim(64); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Do you not remember that I asked for powder of Nok, a Ton warrior totem, a heart of ice and a sabertooth tiger mane? Incomplete deeds shall fetch no enchanter reward."; + + --Handin: Nok Shaman Powder, Heart of Ice, Ton Warrior Totem, Sabertooth Tiger Mane + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12948, item2 = 12834, item3 = 12743, item4 = 12824},1,text)) then + e.self:Emote("places the items into a sack and removes a scroll from her robe. This is yours. A spell I discovered and translated for one with less intelligence than the great Luminare of Firiona Vie. You may kiss my feet now."); + e.other:Faction(e.self,248,3); -- +Inhabitants of Firiona Vie + e.other:Faction(e.self,326,2); -- +Emerald Warriors + e.other:Faction(e.self,312,2); -- +Storm Guard + e.other:Faction(e.self,441,-1); -- -Legion of Cabilis + e.other:Faction(e.self,313,-1); -- -Pirates of Gunthak + e.other:QuestReward(e.self,0,0,0,0,12949,250); --Summon: Vision of Sebilite + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Maidens_Voyage.lua b/firiona/Maidens_Voyage.lua new file mode 100644 index 0000000..9ef09de --- /dev/null +++ b/firiona/Maidens_Voyage.lua @@ -0,0 +1,30 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Boat spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + if(e.wp == 12) then + eq.debug("Boat to timorous (18) has reached the docks. Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + elseif(e.wp == 17) then + eq.debug("Boat to timorous (18) has reached waypoint 17. Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + elseif(e.wp == 18) then + eq.debug("Boat to timorous (18) has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(96,-2098,-2260,57,17); + end, + function(ent) + if(ent:GetBoatID() == 838) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/firiona/Marlyn_McMerin.lua b/firiona/Marlyn_McMerin.lua new file mode 100644 index 0000000..d51d22d --- /dev/null +++ b/firiona/Marlyn_McMerin.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings hearty adventurer. Searching for the components necessary for fine shaman spells are we? I have come to Kunark in search of [rare alchemy components], but I have found the dangers of Kunark are far too great for me."); + e.self:DoAnim(69); + elseif(e.message:findi("rare alchemy components") or e.message:findi("four rare components")) then + e.self:Say("I have heard word of four rare components - the clay of Ghiosk, crushed dread diamonds and powder of Yun. Most rare are chips from the bones of one who has touched the Bath of Obulus."); + e.self:DoAnim(27); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I requested the bone chips which touched the Bath of Obulus, clay of Ghiosk, powder of Yun and crushed dread diamonds."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12942, item2 = 12945, item3 = 12944, item4 = 12943},1,text)) then + e.self:Say("What's this? This is amazing - you collected them all! To think, the power that these items hold if properly used. Never mind that now, here, take the scroll. You've certainly earned it."); + e.other:Faction(e.self,248,5); --inhabitants of firiona + e.other:Faction(e.self,326,3); --emerald warriors + e.other:Faction(e.self,312,3); --storm guard + e.other:Faction(e.self,441,-1); --legion of cabilis + e.other:Faction(e.self,313,-1); --pirates of gunthak + e.other:QuestReward(e.self,0,0,0,0,12941,45000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Author: BWStripes +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Nadia_Starfeast.lua b/firiona/Nadia_Starfeast.lua new file mode 100644 index 0000000..9aae55c --- /dev/null +++ b/firiona/Nadia_Starfeast.lua @@ -0,0 +1,40 @@ +-- Test of Charm - enchanter epic - start of quest +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello my dear. I am quite pleased to make your acquaintance. Perhaps even charmed!"); + elseif(e.message:findi("sack")) then + e.self:Say("Before I provide the item, you must show me that you have spoken to Jeb."); + elseif(e.message:findi("gems")) then + e.self:Say("I have prepared some gems that you will need to trap the essence. You will need to force a diamond, sapphire, ruby and emerald onto special creatures to obtain their essence."); + elseif(e.message:findi("diamond")) then + e.self:Say("Here is the diamond that I have prepared for you. Its only purpose is to trap the essence of a particular book worm. If you should fail in your first attempt, do not worry. I will provide you with another."); + e.other:SummonCursorItem(10631); --Dull Diamond + elseif(e.message:findi("sapphire")) then + e.self:Say("Here is the sapphire that I have prepared for you. Take it and give it to the one referred to as the Golden Faerie."); + e.other:SummonCursorItem(10632); --Dull Sapphire + elseif(e.message:findi("ruby")) then + e.self:Say("Blood red is the ruby that I have given you. The city that you must travel to has no sun, but still a day and night. And at night, the mist could suffocate one. Tis the fate of poor Jaxion."); + e.other:SummonCursorItem(10633); --Dull Ruby + elseif(e.message:findi("emerald")) then + e.self:Emote("jumps. Eeekk... a scorpion. I thought they rid this area of these critters. Those things give me the creepers. Take this emerald and be on your way."); + e.other:SummonCursorItem(10634); --Dull Emerald + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10604})) then --Jeb's Seal + e.self:Say("Oh it must be time to reveal the staff! The piece I will help you craft is encrusted with magical gems. These gems contain the essence of various creatures. Alone they have very little power. Combined together they are much more powerful. They must be combined in a sack. Just ask if you don't have one."); + e.other:QuestReward(e.self,{items = {17861,10604}}); --Jeb's Seal and An Enchanters Sack + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10637})) then --A Sack For Nadia + e.self:Say("Lovely! You are indeed quite the charmer. Here, take the third part, and seek out the last master. The time draws near."); + e.other:Faction(e.self,404,100); --True Spirit + e.other:QuestReward(e.self,0,0,0,0,10612,10000); --3rd Piece of Staff + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Noilgin_Mindtune.lua b/firiona/Noilgin_Mindtune.lua new file mode 100644 index 0000000..7c854c0 --- /dev/null +++ b/firiona/Noilgin_Mindtune.lua @@ -0,0 +1,20 @@ +-- Al'Kabor's Research - Ring of the Messenger +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. "! I hope you are enjoying your visit to the outpost. I know I sure am."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6067})) then + e.self:Say("Oh no! I have been tracked down. Can't I have a moment's peace? I'm sorry you went through all the trouble to get this to me, but I'm not delivering mail right now. I'm trying to take a vacation. You'll have to deliver it to Lanivon Baxer in the Toxxulia Forest yourself. Here, take it back. I have packaged it up nicely for the journey."); + e.other:QuestReward(e.self,0,0,0,0,6069); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Quegmor_O-Cranic.lua b/firiona/Quegmor_O-Cranic.lua new file mode 100644 index 0000000..db52812 --- /dev/null +++ b/firiona/Quegmor_O-Cranic.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings traveler! There are many strange beasts that inhabit these lands with behavioral patterns different than those of the antonican beasts I have trained with. I hope to one day have mastered these foreign beasts so that my wisdom and spirit may be expanded."); + e.self:DoAnim(67); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Quizan_Gaxx.lua b/firiona/Quizan_Gaxx.lua new file mode 100644 index 0000000..c25b280 --- /dev/null +++ b/firiona/Quizan_Gaxx.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("brandishes his fist at you. 'You'll get this if you even think of attempting to use our forge!! Find your own! Go off looking in the dungeons of Kunark. Maybe you will even find a magical forge. Bah!! You adventurers think you can have free run of everything!'"); + e.self:DoAnim(30); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Samitha_Lightheart.lua b/firiona/Samitha_Lightheart.lua new file mode 100644 index 0000000..bf9b8fa --- /dev/null +++ b/firiona/Samitha_Lightheart.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("And a good day to you, too! I have traveled here in the name of the Jaggedpine Treefolk to search out any new and [wonderful powers] that would aid us in preserving the wildlife back home. I have not been able to venture far from this outpost as the inhabitants of the nearby woods pose a great danger. I have decided to wait for more of my Treefolk to arrive before adventuring further. There's safety in numbers, they always say."); + elseif(e.message:findi("wonderful powers")) then + e.self:Say("From what I have gathered from the residents of this outpost and from others like myself, there are a fair number of scrolls to be found in the outlying areas. These scrolls are said to contain new and powerful magic. I myself have found a few of these scrolls. But the problem is, I don't believe I have a complete collection. If you would care to [help] me, I'd be willing to trade some of the extra ones I have for some of the extras you may run across."); + elseif(e.message:findi("help")) then + e.self:Say("I am still looking for four scrolls that I have not been able to locate. They are the scrolls of Circle of Winter, Circle of Summer, Spirit of Scale, and Form of the Howler. If you bring any of these back, I'll give you one of four very rare scrolls in my possession."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {19238, 19244, 19232, 19234}); + if(count > 0) then + repeat + e.self:Say("Here is the scroll that I promised. We have both gained much knowledge today. I hope to do business with you again soon. Farewell!"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(19235,19233,19236,19240),1000); + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Samson.lua b/firiona/Samson.lua new file mode 100644 index 0000000..3d84c1f --- /dev/null +++ b/firiona/Samson.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("begins to stroke the nearby brew barrel. 'What will it be? Me and Old Gertie here make the finest brew this side of the Timorous Deep. Afraid I am the only one who is allowed to touch her - she's very special to me. If you want to brew yourself, you can start looking for that [jungle city].'"); + e.self:DoAnim(59); + elseif(e.message:findi("jungle city")) then + e.self:Say("I've heard adventurers talk of a city deep in the jungles. They say the dead walk its streets. Many have claimed to discover great treasures there as well as to lose many friends. I also heard it may have a working brew barrel."); + e.self:DoAnim(48); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Scout_Bladethorn.lua b/firiona/Scout_Bladethorn.lua new file mode 100644 index 0000000..e778188 --- /dev/null +++ b/firiona/Scout_Bladethorn.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings! Keep an eye out for invaders. We may patrol the outpost, but every now and then a goblin or two manages to sneak in."); + e.self:DoAnim(67); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Scout_Bowfist.lua b/firiona/Scout_Bowfist.lua new file mode 100644 index 0000000..5b24fba --- /dev/null +++ b/firiona/Scout_Bowfist.lua @@ -0,0 +1,24 @@ +function event_waypoint_arrive(e) + if(e.wp == 8) then + e.self:SetRunning(true); + end + if(e.wp == 16) then + e.self:SetRunning(false); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Halt!! This tunnel is used primarily for the forces of the Union of Vie. Citizens and adventurers are to use the main entrance."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Scout_Treekill.lua b/firiona/Scout_Treekill.lua new file mode 100644 index 0000000..0e99ae0 --- /dev/null +++ b/firiona/Scout_Treekill.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("has a massive scar on his face. 'Hail, and welcome to the outpost of Firiona Vie! If you plan on exploring, I suggest you get well equipped. There are no cities beyond here. I would also suggest joining the next group heading out on an expedition. This is no place to travel alone.'"); + e.self:DoAnim(67); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Sergeant_Daelione.lua b/firiona/Sergeant_Daelione.lua new file mode 100644 index 0000000..f78c791 --- /dev/null +++ b/firiona/Sergeant_Daelione.lua @@ -0,0 +1,9 @@ +function event_waypoint_arrive(e) + if(e.wp == 16) then + e.self:Shout("We march Onward!"); + end +end + +function event_death_complete(e) + eq.unique_spawn(84017,0,0,2490,-518,-24,135); -- NPC: Vekis +end \ No newline at end of file diff --git a/firiona/Shrub_Marwood.lua b/firiona/Shrub_Marwood.lua new file mode 100644 index 0000000..4533f2b --- /dev/null +++ b/firiona/Shrub_Marwood.lua @@ -0,0 +1,44 @@ +-- Handy Shillelagh & Beguile Plants +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("brushes pollen off of his tunic. 'Aachoo!! Oh!! Hello. Please look around. Unless you are a [druid looking for work].'"); + e.self:DoAnim(55); + elseif(e.message:findi("druid looking for work")) then + e.self:Say("Good. I need a stout adventurer to go to the wilds and find me a few items. I need some tump stumps - one Kromdul and one Kromdek type. I also need a mantrap root. Get me those three things and I will give you this handy shillelagh I found in the forest."); + e.self:DoAnim(48); + elseif(e.message:findi("fertile crop")) then + e.self:Say("Looking to get hold of my family druid spell, ehh? It doesn't come without a price. Lucky for you all I need is for you to run a small errand for me. Go fetch me a Sarnak farsight crystal, some Sarnak nightdust, some strathebone heal silk and some powder of Tsu. Do that and I will give you a copy of my family secret."); + e.self:DoAnim(60); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "Hey!! Trying to pull a fast one?!! I said I wanted tump stumps of Kromdek and Kromdul type and a mantrap root!!"; + local text2 = "If you want the [Fertile Crop] druid spell, I must insist that you complete your small task."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12960, item2 = 12955, item3 = 12958},1,text1)) then + e.self:Emote("tosses the mantrap root out the window.. SPLASH!! 'I made a mistake. I didn't need that one. Here is the shillelagh I told you about. I found it in some burned out woods far from here. I cleaned it up and found it had a spark of mana so I had it enchanted with a few charges of my spell, [Fertile Crop]. Hope you like it.'"); + e.other:Faction(e.self,248,5); --inhabitants of firiona + e.other:Faction(e.self,326,3); --emerald warriors + e.other:Faction(e.self,312,3); --storm guard + e.other:Faction(e.self,441,-1); --legion of cabilis + e.other:Faction(e.self,313,-1); --pirates of gunthak + e.other:QuestReward(e.self,0,0,0,0,12953,25000); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 11579, item2 = 12753, item3 = 12957, item4 = 12959},1,text2)) then + e.self:Say("Great work! I wish I had the coin to hire you on permanently. Maybe I will, when I find the lost trade city of Torsis. Here is the spell I copied for you. Careful, the ink is still drying."); + e.other:Faction(e.self,248,5); --inhabitants of firiona + e.other:Faction(e.self,326,3); --emerald warriors + e.other:Faction(e.self,312,3); --storm guard + e.other:Faction(e.self,441,-1); --legion of cabilis + e.other:Faction(e.self,313,-1); --pirates of gunthak + e.other:QuestReward(e.self,0,0,0,0,12954,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Soulbinder_Tardon.lua b/firiona/Soulbinder_Tardon.lua new file mode 100644 index 0000000..27d20f5 --- /dev/null +++ b/firiona/Soulbinder_Tardon.lua @@ -0,0 +1,14 @@ +-- Converted to .lua by Speedz +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID(),0,1); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/firiona/Squire_Fuzzmin.lua b/firiona/Squire_Fuzzmin.lua new file mode 100644 index 0000000..8000f1d --- /dev/null +++ b/firiona/Squire_Fuzzmin.lua @@ -0,0 +1,55 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_waypoint_arrive(e) + if(e.wp == 9) then + e.self:SetRunning(false); + local mobtypeID = eq.get_entity_list():GetMobByNpcTypeID(84005); + local follow_hobble = mobtypeID:GetID(); + eq.follow(follow_hobble); + eq.stop(23); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("awakens from a quick shuteye."); + e.self:Say("Yawn.. Oh!! Hello. Don't mind the rusty old tin can. Sir Hobble is on a [quest] of sorts. I tell you, I would leave if he did not pay good wages to carry his equipment."); + elseif(e.message:findi("quest")) then + e.self:Say("Sir Hobble is searching for [three special dragons]. For all I know they are not even dragons. He can't see or hear very well. He still thinks I am the only troll squire around."); + elseif(e.message:findi("three special dragon")) then + e.self:Say("Apparently he is after three dragons which are supposedly named Azdalin, Gylton, and Xyfl. He will not rest until he holds their scales. I wish you could [find the dragons]."); + elseif(e.message:findi("find the dragon")) then + e.self:Say("If you bring me the three scales I will be able to place them upon the next three victims of Sir Hobble. Then we can part from this accursed isle. He would never know the difference. Do this and I will give you a warrior weapon out of the old knight's armory."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I need the three dragon scales of Azdalin, Gylton and Xyfyl."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12950, item2 = 12951, item3 = 12952},1,text)) then + e.self:DoAnim(20); + e.self:Emote("tumbles around and stands on his hands. With his feet he pulls a long polearm from a nearby weapons cache!! 'Woohoo!! I can taste the brew in Freeport already. Here you are my friend. A real Wurmslayer!!'"); + e.other:Faction(e.self,248,10); -- Firiona Vie better + e.other:Faction(e.self,326,7); -- Emerald Warriors better + e.other:Faction(e.self,312,7); -- Storm Guard better + e.other:Faction(e.self,441,-1); -- Legion of Cabilis worse + e.other:Faction(e.self,313,-1); -- Pirates of Gunthak worse + e.other:QuestReward(e.self,0,0,0,0,5057,700000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Turn-ins: +-- 12950 = dragon scale (Azdalin) +-- 12951 = dragon scale (Gylton) +-- 12952 = dragon scale (Xyfl) +-- Quest reward = Wurmslayer (5057) +-- Quest depends on Sir_Hobble.pl in Firiona for proper spawn of Squire_Fuzzmin +-- by Qadar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Tiblner_Milnik.lua b/firiona/Tiblner_Milnik.lua new file mode 100644 index 0000000..9fa96d9 --- /dev/null +++ b/firiona/Tiblner_Milnik.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Huh? What? Oh, you speak so fast, it took me a moment. I have become used to the slow and stately conversation the Earth holds, where a thought can span aeons. I am the Master of Earth, you know. Though I'm usually too humble to say this, that makes me the most powerful mortal in Norrath, as everyone knows that Earth is the only REAL Element, all else must give way before its power. Water is absorbed by it, Air is ignored by it, and Fire is contained in it. But you know all these things, I am sure. Are you interested in obtaining the Element of Earth? I know Magi'kot was, but we know what happened to him, don't we?"); + end + if(e.message:findi("element of earth")) then + e.self:Say("Combining the following items can bring the Element of Earth together. Obtain the Staff of Elemental Mastery: Earth, held by the minions of the Prince of Hate, The Dirt of Underfoot found on Slix something or the other, and of course, I shall need the Broom of Trilon and the Shovel of Ponz. Bring all these things, and I shall show you what a true Master of Earth can do, and gift you with the Element of Earth."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 11567, item2 = 28042, item3 = 6360, item4 = 6361})) then + e.self:Say("Take this Element and keep it with you. I wish you the best in your journey, but I must ask you to leave me now. This frantic pace you set makes me nervous."); + e.other:QuestReward(e.self,0,0,0,0,28032,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Tracker_Azeal.lua b/firiona/Tracker_Azeal.lua new file mode 100644 index 0000000..8b13fad --- /dev/null +++ b/firiona/Tracker_Azeal.lua @@ -0,0 +1,19 @@ +--Tracker Azeal is actually Hero Goxnok in disguise. He is part of the fifth quest in the Greenmist line. +--He will check the zone time every 30 seconds, and if it's 9 PM, he will respawn as a wandering form of himself that will path off and meet whoever is doing the quest. + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks over at you and gives you an awkward smile, then quickly looks away. You notice he isn't like most of the elves you've seen. You can't quite put your finger on it, but for one thing he smells like he hasn't bathed in weeks."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Tracker_Azeal_.lua b/firiona/Tracker_Azeal_.lua new file mode 100644 index 0000000..14bd21c --- /dev/null +++ b/firiona/Tracker_Azeal_.lua @@ -0,0 +1,29 @@ +--Tracker Azeal is actually Hero Goxnok in disguise. This version of him has been triggered to spawn at 9 PM game time, and will then path out of the outpost. +--After a time, he will pause on his normal pathing and kneel and we can give him an item to spawn Hero Goxnok. All of this is for the fifth Greenmist quest. + +function event_trade(e) + local item_lib = require("items"); + + if(e.self:GetX() == -1548 and e.self:GetY() == -2559) then + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12691})) then --Test of Betrayal (Greenmist Quest 5/8) + e.self:Emote("begins to pull his face off.. it is a disguise!! 'Aha!! You have made it!! I cannot see well in this disguise, but I thought I smelled you. I have [news of the Charasis tome].'"); + e.other:Ding(); + eq.spawn2(84319,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.spawn2(84311,0,0,-1822,617,142.5,103); -- NPC: a_drachnid_spy + eq.depop_with_timer(); + end + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if(e.wp == 7) then + e.self:DoAnim(36); + end +end + +--Submitted by Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/Vekis.lua b/firiona/Vekis.lua new file mode 100644 index 0000000..894c9ec --- /dev/null +++ b/firiona/Vekis.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",600000); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14815})) then + e.self:Say("I believe Streaven and his buddy Frode is waiting on the bridge, Please get his head and return to Grik and 3 rubies for your reference."); + eq.unique_spawn(84026,26,0,2945,-3812,-49,0); -- NPC: Commander_Streaven + eq.unique_spawn(84029,0,0,2140,-2589,-78,108); -- NPC: Frode + end + item_lib.return_items(e.self, e.other, e.trade) +end + + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/firiona/Wellford_Fargin.lua b/firiona/Wellford_Fargin.lua new file mode 100644 index 0000000..a8fb82e --- /dev/null +++ b/firiona/Wellford_Fargin.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("turns his frown around and begins to smile. 'Oh!! Hello. It has been quite some time that someone has been polite and greeted me. Most adventurers are quite rude. To think I gave up my [hobby] to work day and night here!!"); + elseif(e.message:findi("hobby")) then + e.self:Say("I used to collect rare coins and gems. I came to Firiona Vie just to do that, but I never have the time to [collect rare coins] when I am always here at the bank."); + elseif(e.message:findi("collect rare coins")) then + e.self:Say("If you want to help, you can begin by replacing my prized Star of Odus which was taken from my vault when I stepped out to dine. Do so, and I may trust you to collect coins. I will also reward you with an item a composer left here."); + end +end + +function event_trade(e) + local item_lib = require("items"); + -- You can purchase a Star of Odus for about 115pp in the jewel shop under the Erudin palace. + -- Giving it to Wellford Fargin results in a "Tin Box" with 6 slots. + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10059})) then + e.self:Say("Thank you!! I never could have gone to Odus to replace this. Perhaps now you can collect some rare coins."); + e.other:QuestReward(e.self,0,0,0,0,17045); + end + -- put the 6 coins into the tin box, combine, and return it to Wellford Fargin, get Nostrolo Tambourine + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12829})) then + e.self:Say("Wow!! I never thought I would ever see these in my entire life. Please take this and Thank you!!!!"); -- text made up + e.other:QuestReward(e.self,0,0,0,0,12940); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/firiona/a_drachnid_spy.lua b/firiona/a_drachnid_spy.lua new file mode 100644 index 0000000..3ee4e8e --- /dev/null +++ b/firiona/a_drachnid_spy.lua @@ -0,0 +1,23 @@ +--The drachnid spy is for the fifth quest in the Greenmist line. Once killed, he'll drop the Charasis Tome that we need. +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks upon you with evil eyes and you hear a horrid chatter. Hairs rise from the spider's thorax. 'Greetings, creature. What a fine meal you would make!'"); + eq.attack(e.other:GetName()); + e.self:Say("You shall not take the tome from me!! I shall snack upon your blood-drained corpse."); + end +end + +function event_death_complete(e) + eq.signal(84319,1); -- NPC: Hero_Goxnok +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/firiona/player.lua b/firiona/player.lua new file mode 100644 index 0000000..f8390a8 --- /dev/null +++ b/firiona/player.lua @@ -0,0 +1,12 @@ +function event_board_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug(" At: " .. hour .. ":" .. minute .. " BoatID: " .. e.boat_id .. " was boarded. Its name is: " .. e.self:GetBoatName() .. ".", 1); +end + +function event_leave_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + eq.debug(" At: " .. hour .. ":00 I left BoatID: " .. e.boat_id .. ".", 1); +end \ No newline at end of file diff --git a/freporte/10000.lua b/freporte/10000.lua new file mode 100644 index 0000000..91ae73a --- /dev/null +++ b/freporte/10000.lua @@ -0,0 +1,12 @@ +-- Orc hand-in NPC for Final Task Rogue + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19930})) then + e.self:Say("Arg"); + e.other:QuestReward(e.self,0,0,0,0,19918); -- Item: Rough Blue Gem + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freporte/10183.lua b/freporte/10183.lua new file mode 100644 index 0000000..ff5ac9a --- /dev/null +++ b/freporte/10183.lua @@ -0,0 +1,14 @@ +function event_waypoint_arrive(e) + if(e.wp == 3) then + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + eq.set_proximity(xloc - 45, xloc + 45, yloc - 45, yloc + 45); + elseif(e.wp == 4) then + eq.clear_proximity(); + end +end + +function event_enter(e) + e.self:Emote("'s spirit moves you to another land ..."); + eq.SelfCast(2279); +end diff --git a/freporte/Beur_Tenlah.lua b/freporte/Beur_Tenlah.lua new file mode 100644 index 0000000..22dc817 --- /dev/null +++ b/freporte/Beur_Tenlah.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Heya. " .. e.other:GetCleanName() .. "! I've been on watch duty all night. Kinda makes a man thirsty. ya know? Why don't you be a good little scamp and run up to the bar and get me a [dwarven ale]? That sure would hit the spot right about now."); + elseif(e.message:findi("dwarven ale")) then + e.self:Say("Ahhh.. Dwarven ale is the best. You gotta hand it to those stinky little dirt diggers. they know how to make a good brew. Now if they could just learn to shower. huh. Harkin? Ha ha ha!"); + end +end + +function event_signal(e) + -- Signal from Harkin Duskfoot + e.self:Say("Heh, I got something that reminds you of home.. My armpit! Bwa haha!!!"); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13036})) then -- Dwarven Ale + e.self:Say("Well, well, well.. It's about time. Whatta ya got, boots fulla stones? Or maybe yer just part turtle? Bah, anyways, thanks for the ale. Maybe I'll buy you one sometime, eh? Bwahaha!"); + e.other:QuestReward(e.self,0,0,0,0,0,15); + eq.signal(10107,1); -- Signal to Harkin Duskfoot + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:freporte ID:10106 -- Beur_Tenlah \ No newline at end of file diff --git a/freporte/Biggle_Limbokker.lua b/freporte/Biggle_Limbokker.lua new file mode 100644 index 0000000..fffd233 --- /dev/null +++ b/freporte/Biggle_Limbokker.lua @@ -0,0 +1,43 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Good day to you, " .. e.other:GetCleanName() .. "! Learn to mind your own business in this place. If a fight breaks out, do not get in the way."); + end +end + +function event_signal(e) + if ( e.self:IsEngaged() ) then + return; + end + + local turn, bard; + + if ( e.signal == 1 ) then + e.self:Say("Yes! Send more high elf ladies to Freeport."); + turn = true; + elseif ( e.signal == 4 ) then + e.self:Say("Qeynos is a great city. Their troops have aided Rivervale many times."); + turn = true; + elseif ( e.signal == 5 ) then + e.self:Say("Those Erudites are no fun at all."); + turn = true; + elseif ( e.signal == 6 ) then + e.self:Say("That voice must have scared him away."); + turn = true; + elseif ( e.signal == 7 ) then + e.self:Say("Biggle Limbokker for ruler of Qeynos!! A vote for Biggle is a vote for grub, grog and song."); + turn = true; + end + + if ( turn ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10141); -- NPC: Trolon_Lightleer + if ( not bard.valid ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10158); -- NPC: Branis_Noolright + end + if ( not bard.valid ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10165); -- NPC: Palana_Willin + end + if ( bard.valid ) then + e.self:FaceTarget(bard); + end + end +end diff --git a/freporte/Branis_Noolright.lua b/freporte/Branis_Noolright.lua new file mode 100644 index 0000000..225c844 --- /dev/null +++ b/freporte/Branis_Noolright.lua @@ -0,0 +1,70 @@ +local signal = 0; +local lastSong = 0; + +function event_spawn(e) + eq.set_timer("ready",300000); +end + +function event_timer(e) + if ( e.timer == "ready" ) then + e.self:Say("What a cheerful crowd."); + eq.stop_timer("ready"); + + elseif ( e.timer == "bar" ) then + eq.stop_timer("bar"); + eq.set_timer("table", 1000); + eq.signal(10186, signal); -- NPC: Tlin_Bowfright + eq.signal(10157, signal); -- NPC: Tykar_Renlin + eq.signal(10163, signal); -- NPC: Plnorrick_Spinecracker + eq.signal(10160, signal); -- NPC: Biggle_Limbokker + + elseif ( e.timer == "table" ) then + eq.stop_timer("table"); + eq.signal(10199, signal); -- NPC: Sir_Edwin_Motte + eq.signal(10182, signal); -- NPC: Talym_Shoontar + eq.signal(10012, signal); -- NPC: Imxil_Tbrow + eq.signal(10195, signal); -- NPC: Groflah_Steadirt + end +end + +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Good day to you! Sit and have a drink. I shall be playing soon enough."); + end +end + +function event_signal(e) + song = math.random(1, 6); + while ( song == lastSong ) do + song = math.random(1, 6); + end + lastSong = song; + + if ( song == 1 ) then + e.self:Say("Look around you. Stand up tall!! Feel for the poor and never have a cold heart. Because we are all in this. We are not like the rest. We're all here together and know we are the best. So Norrath, can't you see the error in your ways? You're living separated each and every day. Don't be thinking that we don't want you, because, Norrath, we do. Freeport is the only place where your friend can be from afar. I hope you enjoyed that one."); + eq.set_timer("bar", 1000); + signal = 1; + elseif ( song == 2 ) then + e.self:Say("Within my head and inside my brain, I hold the key. It is not much more than the size of a pea. With it, I have the power to set free Oggok city. Open up its doors to all that is pretty. Instead, here I am in a pile of my own dug, smelling quite dingy. Drinking ogre swill with which I am stingy. I may have the key, but the point is quite moot. For you see, I am nothing more than a dumb, smelly, ogre brute. Thank you. I hope you enjoyed that one."); + eq.set_timer("bar", 1000); + signal = 2; + elseif ( song == 3 ) then + e.self:Say("All clap and pass the ale. Sir Lucan is in charge so don't set sail. All clap and pass the ale. Sir Lucan is in charge and he shall never fail. He saved our fair city when the others had fled. Off on a crusade, or so they said. All clap and pass the ale, Sir Lucan is in charge so don't you bail. All clap and pass the ale, Sir Lucan is in charge so sing or go to jail. All clap and pass the ale, Sir Lucan beat the orcs and next is Bayle. Thank you. I hope the Freeport citizens liked that one."); + eq.set_timer("bar", 1000); + signal = 3; + elseif ( song == 4 ) then + e.self:Say("My city is mighty and all shall learn to cower. We are nothing less than the ultimate power. My city is pure and filled with beautiful charm. I shall conquer you to save you from harm. My city shall first send its guards to back you in times of need. Soon you shall learn to live under my laws, indeed. So bow down when you see me and give out my favorite cheer, 'All Hail Antonius Bail!' My city is Qeynos and there is nothing to fear."); + eq.set_timer("bar", 1000); + signal = 4; + elseif ( song == 5 ) then + e.self:Say("Life is dull and dreary when you know it all. To the planes of the gods, is their next call. An Erudite, an Erudite has come to drink. All the knowledge in the world, or so they think. One drink, two drinks, grab and down the ale! Then they step off their stools and their faces begin to pale. For all their love of music and their great schools of magic, up come their lunches, how very tragic. So let all sit back and be ready with hijinks, an Erudite has come to the Seafarer to down a few drinks."); + eq.set_timer("bar", 1000); + signal = 5; + elseif ( song == 6 ) then + e.self:Say("Here's one for Sir Lucan... He's just a ruler. In a long line of rulers. Looking for a few more orcs to slay. They say that he fights them with one hand tied to his back. And he won't leave Freeport till you remember his name. Thank you."); + eq.set_timer("bar", 1000); + signal = 7; + end +end + +-- END of FILE Zone:freporte -- Branis_Noolright \ No newline at end of file diff --git a/freporte/Bronto_Thudfoot.lua b/freporte/Bronto_Thudfoot.lua new file mode 100644 index 0000000..cb279bd --- /dev/null +++ b/freporte/Bronto_Thudfoot.lua @@ -0,0 +1,23 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("hail") and (fac <= 5)) then + e.self:Say("How ya doin', bub? Seein' as how you just joined the conversation, I think you need to buy us a round!"); + elseif(e.message:findi("hail") and (fac > 5)) then + e.self:Say("I didn't know Slime could speak common. Go back to the sewer before I lose my temper."); + elseif(e.message:findi("blue beast")) then + e.self:Say("The Blue Beast is our ship. It is most likely the fastest ship sailing the seas of Norrath. It is a design all my own. Lenka says it is best to anchor it far from shore to keep the rogues from it.") + elseif(e.message:findi("Lenka")) then + e.self:Say("Lenka Stoutheart is my friend. She is of barbarian blood. If it were not for her, I would never have survived [Guk]. After Guk, we made a quick alliance and have traveled the world of Norrath aboard the [Blue Beast].") + elseif(e.message:findi("Guk")) then + e.self:Say("In the swamps of Innothule, you will find the kingdom of the frogloks, Guk. It was in Guk that Lenka and I met. Side by side, we fought the hordes of living frogloks to find a world of undead frogloks and much treasure.") + elseif(e.message:findi("rogue")) then + e.self:Say("I had quite a bit of grog that night and it was very dark. What I do remember was seeing a tall woman in a dress run from the docks. She sort of smelled, too. Like fish. I know it was the docks, but this woman had a real stench to her. Like dried fish baking in the sun. That is all I remember. It was too dark to see anything but her [silhouette].") + elseif(e.message:findi("silhouette")) then + e.self:Say("Yeah! The silhouette looked like a very brawny woman. It had to be a woman. The silhouette was surely that of one with a short skirt and long hair.") + end +end + +function event_signal(e) + e.self:Say("You said it, boss! Stay clear of taking sides and you should be just fine, young one."); +end diff --git a/freporte/Brunar_Rankin.lua b/freporte/Brunar_Rankin.lua new file mode 100644 index 0000000..2a19fda --- /dev/null +++ b/freporte/Brunar_Rankin.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("How are you? Please excuse my stench. I fish all day and night just to feed my large family. You look like an adventurer. That must be exciting. I am but a humble fisherman. Maybe someday we shall both be rich. You by your treasure and me by my catch."); + elseif(e.message:findi("steal")) then + e.self:Say("How dare you accuse me of being a thief!? I labor hour after hour trying to catch one fish which will bring me one copper piece to buy one slice of bread which I will split into five pieces to feed me, my sick wife and three little children, one of whom has the plague!! Poor little Repi. Now please, leave this humble little fisherman alone!"); + elseif(e.message:findi("Gregor")) then + e.self:Say("Gregor Nasin is the barkeep at the Seafarer's Roost. He is the man who pays me for the fish I catch. A really good man."); + end +end + + +function event_waypoint_arrive(e) + if(e.wp == 13) then + e.self:Say("Here is my catch for today, Gregor"); + eq.signal(10171,1); -- NPC: Gregor_Nasin + elseif(e.wp == 34) then + e.self:Say("Ho hum, what a lovely day !"); + e.self:SetRunning(true); + elseif(e.wp == 39) then + e.self:SetRunning(false); + elseif(e.wp == 44) then + e.self:SetRunning(true); + elseif(e.wp == 59) then + e.self:SetRunning(false); + end +end + +-- END of FILE Zone:freporte -- Brunar Rankin \ No newline at end of file diff --git a/freporte/Brutol_Rhaksen.lua b/freporte/Brutol_Rhaksen.lua new file mode 100644 index 0000000..f4ee092 --- /dev/null +++ b/freporte/Brutol_Rhaksen.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh, hello down there, puny one. I'm Brutol Rhaksen. Commmander of warriors who [serve] the Dismal Rage, and that's really all you need to know..for now."); + elseif(e.message:findi("serve")) then + e.self:Say("You must become strong to survive amongst the ranks of the Dismal Rage. Take this note to Rolfic Gohar and he will help you get a suit of armor to protect your scrawny hide from the weapons of our enemies. Once you have been properly outfitted return to me and will give you your [next orders]."); + e.other:SummonCursorItem(19843); -- Note to Rolfic Gohar + elseif(e.message:findi("next orders")) then + e.self:Say("Ready to make yourself useful " .. e.other:GetCleanName() .. " ? Beneath West Freeport are sewer tunnels leading to North Freeport being used by the Knights of Truth and the Sentries and Passion that have gained too much notoriety with the Freeport Militia and the Dismal Rage to pass safely through the eastern and western quarters of Freeport. We believe a sympathizer of the Sentries of Passion, Tarsa Yovar, is hiding somewhere in the western tunnel system. The sympathizer is a Steel Warrior faithful to Erollisi and although she is only a minor nuisance must be dealt with. Find her and bring me her head."); + end +end + + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18857})) then -- A tattered note + e.self:Say("Hahaha.. I sure hope you prove more valuable than you look, little one."); + e.other:Faction(e.self,271,100,0); -- Dismal Rage + e.other:Faction(e.self,281,-15,0); -- Knights of Truth + e.other:Faction(e.self,296,20,0); -- Opal Dark Briar + e.other:QuestReward(e.self,0,0,0,0,13561,20); -- Faded Crimson Tunic + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19932})) then -- Tarsa Yovar's Head + e.self:Say("Take this and get it sharpened. Bring it back to me with a Giant Rattlesnake Skin and you will have proven yourself able to wield a Dismal Rage Battle Axe, to help teach the way of Innoruuk!"); + e.other:QuestReward(e.self,0,0,0,0,19921,100); -- Dull Dismal Battleaxe + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19926,item2 = 19852})) then -- Sharpened Dismal Battleaxe - Giant Rattlesnake Skin + e.self:Say("You have proven your faith " .. e.other:GetCleanName() .. ". Take this to vanquish any and all whom question the absolute power of Innoruuk!"); + e.other:QuestReward(e.self,0,0,0,0,19938,100); -- Dismal Rage BattleAxe + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:freporte -- Brutol_Rhaksen diff --git a/freporte/Elisi_Nasin.lua b/freporte/Elisi_Nasin.lua new file mode 100644 index 0000000..6b68842 --- /dev/null +++ b/freporte/Elisi_Nasin.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Listen, this is a pretty busy [operation] I run here. I certainly don't have any spare time to sit around and chit-chat with you all day, got it?"); + elseif(e.message:findi("operation")) then + e.self:Say("Look, " .. e.other:GetCleanName() .. ". I don't have time for this. Let's just say importing exotic goods is our main interest, along with a few other profitable ventures. Now quit pestering me, or you'll force me to sic Grenny here on ya."); + eq.signal(10122,10); -- NPC: Gren_Frikniller + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18745})) then -- A tattered note + e.self:Say("Welcome to the Coalition of Tradesfolk underground. We like to keep a low profile around here and not draw any unneeded attention to our operations, you following me? I hope so, for your sake. Anyways, Nestral T'Gaza is in charge with helping out our newest members. Go see her as soon as you get a chance."); + e.other:Faction(e.self,336,100,0); --Coalition of TradeFolk Underground + e.other:Faction(e.self,229,100,0); --Coalition of Trade Folk + e.other:Faction(e.self,329,10,0); --Carson McCabe + e.other:Faction(e.self,230,5,0); --Corrupt Qeynos Guards + e.other:Faction(e.self,330,15,0); --The Freeport Militia + e.other:QuestReward(e.self,0,0,0,0,13568,20); -- Brown Faded Tunic + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:freporte ID:10108 -- Elisi_Nasin diff --git a/freporte/Fabian.lua b/freporte/Fabian.lua new file mode 100644 index 0000000..a600bbb --- /dev/null +++ b/freporte/Fabian.lua @@ -0,0 +1,46 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFaction(e.self) < 4) then + e.self:Say("Greetings, merry gentlefolk! If you enjoy the music, please feel free to cross my palm with gold."); + else + e.self:Say("Oh look, a talking lump of refuse. How novel!") + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local etched = 0; + + if(item_lib.check_turn_in(e.self, e.trade, {gold = 2})) then + e.self:Say("Rat spittle! Busted another string! You seem like a good music loving citizen, could you please run to the Wind Spirit's Song and grab me a fresh set of lute strings?"); + e.other:Ding(); + -- confirmed live factions + e.other:Faction(e.self,284, 2,0); -- Faction: League of Antonican Bards + e.other:Faction(e.self,281, 1,0); -- Faction: Knights of Truth + e.other:Faction(e.self,262, 1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,304, -1,0); -- Faction: Ring of Scale + e.other:Faction(e.self,285, -1,0); -- Faction: Mayong Mistmoore + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13709})) then -- Lute Strings + e.self:Say("'Many thanks, merry gentlefolk! Let me cross your palm in gratitude for your kindness. Hmmmm where did my lucky coin go?"); + -- confirmed live factions + e.other:Faction(e.self,284, 2,0); -- Faction: League of Antonican Bards + e.other:Faction(e.self,281, 1,0); -- Faction: Knights of Truth + e.other:Faction(e.self,262, 1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,304, -1,0); -- Faction: Ring of Scale + e.other:Faction(e.self,285, -1,0); -- Faction: Mayong Mistmoore + if(math.random(3) == 3) then -- you only get the coin sometimes + etched = 13710; -- Etched Silver Coin + end + e.other:QuestReward(e.self,0,math.random(20),math.random(10),1,etched,5000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13710})) then -- Etched Silver Coin + e.self:Say("'My lucky coin! How did it get in there? Well, never mind that. You are an honest person and although honesty is its own reward, I feel obligated to return the favor. Take this to Dionna if you enjoy music. Farewell friend!"); + e.other:Faction(e.self,284, 2); -- Faction: League of Antonican Bards + e.other:Faction(e.self,281, 1); -- Faction: Knights of Truth + e.other:Faction(e.self,262, 1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,304, -1); -- Faction: Ring of Scale + e.other:Faction(e.self,285, -1); -- Faction: Mayong Mistmoore + e.other:QuestReward(e.self,0,0,0,0,13708,5000); -- Note From Fabian + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freporte/Giz_Dinree.lua b/freporte/Giz_Dinree.lua new file mode 100644 index 0000000..50a360d --- /dev/null +++ b/freporte/Giz_Dinree.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Excuse me! I came here in hopes of being alone!"); + elseif(e.message:findi("sent by tani")) then + if(e.other:GetFaction(e.self) <= 4) then + e.self:Say("You're a new rogue, then! Your mission is to kill the young daughter of the owner of the Seafarer's Roost. Wait for the right time. Why? You don't need to know. Do it and return Lyda's head to Tani in Neriak. I hope you can make it back to Neriak alive. Good hunting!"); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("You have done nothing to upset the Ebon Mask, but there is much more which you must do before we do business. Perhaps a task from Master Hekzin shall set things right."); + else + e.self:Say("You are quite bold to approach a member of the Ebon Mask. Now be smart and run away."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.trade, {item1 = 18844})) then -- Sealed Letter + e.self:Say("I am glad to see you. We have a problem. The last runner and I attempted to carry the chest from a boat. It fell overboard! He went in after it, but the sharks made a meal of him. If you want to try and get it, it is down below in the water in the harbor. Be careful."); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/freporte/Gord_Smith.lua b/freporte/Gord_Smith.lua new file mode 100644 index 0000000..cbb4e7b --- /dev/null +++ b/freporte/Gord_Smith.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Gord's Smithy! What brings you to our shop this good day? Is it our lavish assortment of weapons? Or perhaps it is to learn the art of the [seafarers' buckler] and [seafarers' weapons]?"); + e.self:DoAnim(49); + elseif(e.message:findi("buckler")) then + e.self:Say("Seafarers' bucklers are light shields, perfect for sailors, pirates, and anyone who frequently spends time on the seas. The bucklers can only be crafted in the unique forge here in Freeport. If you're interested in attempting a seafarers' buckler, you will need a buckler mold, a flask of water, a smithy hammer, and a high quality sheet of metal."); + elseif(e.message:findi("weapon")) then + e.self:Say("Seafarers' dirks, cutlasses, and harpoons are specially designed for the corrosive salt air and unsteady footing of life at sea. They can only be crafted at the unique forge here in Freeport. If you're interested in attempting to craft seafarers' weapons you will need a flask of water, the appropriate molds for the blade, hilt, and pommel, or a spear head mold and oak shaft for the harpoon, and the appropriate metals. Daggers and harpoons require medium quality sheets of metal, and cutlasses require a medium quality folded sheet of metal. There are also ways to craft magical types!"); + end +end diff --git a/freporte/Gregor_Nasin.lua b/freporte/Gregor_Nasin.lua new file mode 100644 index 0000000..f1d14d5 --- /dev/null +++ b/freporte/Gregor_Nasin.lua @@ -0,0 +1,46 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Sit down and name your poison! I know we are lacking in originality. but I intend to create some [exotic drinks]."); + elseif(e.message:findi("exotic drinks")) then + e.self:Say("Interested in exotic drinks. are we? I am attempting to create some of these drinks I read about in this book I found. It was called the [Barkeep's Compendium]. I will first need to get my hands on a few [exotic ingredients]."); + elseif(e.message:findi("barkeep's compendium")) then + e.self:Say("I found the book amongst some garbage littering the ground in Freeport East. It appears to have been created by an ogre named [Clurg]. I am sure he wants it returned. but I will never part with it. That is... unless I get a few [exotic ingredients] I need to experiment with."); + elseif(e.message:findi("exotic ingredients")) then + e.self:Say("I desire a [kiola nut]. [Erud's Tonic]. [honey jum] and a [Koalindl fish]. If I could get those. I would no longer need to hold on to the [Barkeep's Compendium]. Whoever returned the ingredients to me could have it!!"); + elseif(e.message:findi("kiola nut")) then + e.self:Say("The kiola nut usually grows only in humid territories. I hear there are some such lands between Qeynos and Erudin. Some also have been found on the islands of the Ocean of Tears."); + elseif(e.message:findi("erud's Tonic")) then + e.self:Say("Now that is an ingredient that is hard to obtain. Found only in the city of Erudin. it is a crime for anyone to attempt to smuggle it out of the city. If caught. a horrid death is assured. though I hear there is a frequent customer of the taverns of Qeynos who has a way to obtain the forbidden liquid."); + elseif(e.message:findi("honey jum")) then + e.self:Say("Honey jum can be found in the halfling community of Rivervale. I hear it is used in many of their potions. I am sure it can be purchased somewhere in Rivervale. If it is not on the shelf it is surely known by the shopkeeper."); + elseif(e.message:findi("koalindl fish")) then + e.self:Say("Some rare drinks call for ground up fish. I intend to use the Koalindl fish of Qeynos. It is said to be magical in nature. The problem with obtaining them is that you must get them from Jahnda's Pool near the Temple of Life and I hear that the members protect these fish with great ferocity."); + elseif(e.message:findi("clurg")) then + e.self:Say("I do not know. Ask an ogre. Maybe they have heard of him."); + elseif(e.message:findi("Brunar")) then + e.self:Say("Brunar is just a humble fisherman. He stea... I mean catches, fish and I pay him for them. How else do you think I keep the bar supplied with bowls of tasty hunks of dried halibut?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + -- Erud's Tonic - Koalindl Fish - Honey Jum - Kiola Nut + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13118,item2 = 13383,item3 = 13952,item4 = 13340})) then + e.self:Say("Now I have every ingredient mentioned in the Barkeep Compendium. Here. You take it. <..click!.> Whoops!! I just closed it. It's magically sealed, I never closed it before. It's useless to you. I have no need for it any longer. Maybe you can return it to [Clurg] for some type of reward."); + -- confirmed live factions + e.other:Faction(e.self,336,5,0); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,229,5,0); -- Coalition of Trade Folk + e.other:Faction(e.self,329,1,0); -- Carson McCabe + e.other:Faction(e.self,230,1,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,330,1,0); -- Freeport Militia + e.other:QuestReward(e.self,0,0,0,2,13379,200); -- Barkeep Compendium + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + e.self:Say("Thank you, Brunar. You are some kind of fisherman! I better take this down to the storeroom with your earlier catches before it spoils.. hmm.. a little later."); +end + +-- END of FILE Zone:freporte -- Gregor_Nasin diff --git a/freporte/Gren_Frikniller.lua b/freporte/Gren_Frikniller.lua new file mode 100644 index 0000000..b0f1ddb --- /dev/null +++ b/freporte/Gren_Frikniller.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Aya, howdy there, " .. e.other:GetCleanName() .. ". The name's Gren Frikniller. 'Niller the Killer' The only person who can give me a run for my money is my [sister]."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("sister") or e.message:findi("falia")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Ah, my sister Falia has traveled here all the way from Rivervale. I hear that she's been staying up in North Freeport, but I haven't had a chance to find her yet. If you get some spare time, could you take this letter to her for me? Thanks, " .. e.other:GetCleanName() .. ", you're really not so bad after all."); + e.other:SummonCursorItem(18925); -- Letter to Falia + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("rivervale")) then + e.self:Say("Rivervale? Well, it's far from here, thank Fizzlethorpe. They got more wanted posters with my face on 'em than they got trees there. I mean, 'tweren't my fault either. Just a friendly game of cards, and this little weasel catches me with an extra ace up my sleeve. Can you believe this kid calls ol' Grenny here a cheater, right in front of the whole bar?!! So, you know, I gave him a quick cut, ear to ear, with me dagger... just to shut him up, you know. Suddenly, I'm a murderer? For simply defending myself?! Go figure!"); + elseif(e.message:findi("elisi")) then + e.self:Say("Elisi runs the show around here. She's usually a pretty busy lady. Dang smart, too. And it's my sworn duty to protect her at any cost, even with my very own life."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13159})) then + e.self:Say("What's this? Oh, ol' Grandpa Frikniller's lucky necklace, huh? I'll bet this broken piece of junk won't even get me a sip of ale up at the bar. And lucky? How lucky could this thing be? Poor gramps was lonely and copperless his whole life. Bah!! Oh, well. Here's some coin for your efforts, thanks, " .. e.other:GetCleanName() .. "."); + -- HK Confirmed Live Factions + e.other:Faction(e.self,336,10,0); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,229,10,0); -- Coalition of Trade Folk + e.other:Faction(e.self,329,1,0); -- Carson McCabe + e.other:Faction(e.self,230,1,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,330,1,0); -- Freeport Militia + e.other:QuestReward(e.self,math.random(10),math.random(5),0,0,0,200); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + e.self:Say("Yea.. Bite that tongue of yours, there shorty, or I might just have to cut it off to shut you up for good."); +end + + diff --git a/freporte/Grendig.lua b/freporte/Grendig.lua new file mode 100644 index 0000000..81a2ebf --- /dev/null +++ b/freporte/Grendig.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there! If ya don't mind I'd like to get some rest in my room here. I just arrived from Kaladim and need some rest to recover from the journey. Dwarves were'nt meant to sail the ocean ya know. It's a good thing we've got strong stomachs though or I'd be a few pounds lighter!"); + end +end + +-- END of FILE Zone:freporte -- Grendig \ No newline at end of file diff --git a/freporte/Groflah_Steadirt.lua b/freporte/Groflah_Steadirt.lua new file mode 100644 index 0000000..cfa947c --- /dev/null +++ b/freporte/Groflah_Steadirt.lua @@ -0,0 +1,82 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "! Join in the [celebration]! Have a few drinks. Alas, there are no [Tumpy Tonics]."); + elseif(e.message:findi("celebration")) then + e.self:Say("The Freeport Militia now has a bar to themselves. Luckily, it is not this one. Ahh.. I tell you, I just don't feel up to much right now. I have had so much grog, my great grandma could best me!!"); + elseif(e.message:findi("ariska")) then + e.self:Say("Ariska Zimel was my best friend. He and I learned our knowledge of metal from such places as Halas and Kaladim. When he disappeared, it seemed to involve foul play. He must be alive somewhere in the city. I pray this is not the work of [Pietro Zarn]."); + elseif(e.message:findi("pietro zarn")) then + e.self:Say("While we were traveling through the Lavastorm Mountains, we happened upon a caravan. They wore emblems in honor of the evil god, Innoruuk. They did not see us, but we saw them. And most importantly of all, Ariska saw the apparent leader's sword. It was glowing with great energy. Suddenly, the evil knights were in a battle. The knights gave chase, leaving their camp unattended. The knight who owned the sword left it behind, opting to fight with another, leading me to believe it was not his to begin with. It was at this point that Ariska ran down and grabbed the sword. A few weeks later, we were to learn that the knight was a powerful man by the name of Pietro Zarn and that he was looking for a sword stolen from him. He called it .. Soulfire. I believe Zarn must have finally found Ariska."); + elseif(e.message:findi("tumpy tonics")) then + e.self:Say("Ah a tumpy tonic, good drink indeed. They are made. Lets see if I can rememeber how to make them. Ahh yes, ye take a kiola nut and stir it with water, wait a while and ya got it. If you plan to make some then please by all means bring me one to try as I sure do miss them."); + end +end + +function event_trade(e) + local Tumpy_Tonic = 0; + local item_lib =require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18818})) then + e.self:Say("This used to be hanging in Zimel's Blades. It is the price list. It is badly faded though. There was a fire in Zimel's Blades and I was on the scene just afterward. I did not see this hanging. I wonder who took it . . . Hmmmm.. oh, yes.. the markings on the list! It is a code! Here. I will fill it in. Read it. You probably do not even know who Ariska is."); + e.other:QuestReward(e.self,0,0,0,0,18819); -- Item: A tattered flier + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12114,item2 = 12114,item3 = 12114,item4 = 12114}, 0)) then + Tumpy_Tonic = 4; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12114,item2 = 12114,item3 = 12114}, 0)) then + Tumpy_Tonic = 3; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12114,item2 = 12114}, 0)) then + Tumpy_Tonic = 2; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12114}, 0)) then + Tumpy_Tonic = 1; + end + + if(Tumpy_Tonic > 0) then + repeat + e.self:Say(" Ahh! I missed those. I was just telling myself the other... Uh oh! I have to use the little dwarf's facilities. Excuse me"); + e.other:Faction(e.self,229,1,0); -- Faction: Coalition of Tradefolk + e.other:Faction(e.self,336,1,0); -- Faction: Coalition of Tradefolk Underground + e.other:Faction(e.self,281,1,0); -- Faction: Knights of Truth + e.other:Faction(e.self,291,1,0); -- Faction: Merchants of Qeynos + e.other:QuestReward(e.self,0,0,0,0,0,15); + Tumpy_Tonic = Tumpy_Tonic - 1; + until Tumpy_Tonic == 0 + end + + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + if ( e.self:IsEngaged() ) then + return; + end + + local turn, bard; + + if ( e.signal == 1 ) then + e.self:Say("Aye!! We shall show the world that the races can live together."); + turn = true; + elseif ( e.signal == 2 ) then + e.self:Say("That's right. Them smelly ogres can't even count to one."); + turn = true; + elseif ( e.signal == 4 ) then + e.self:Say("No need to speak badly of Antonius Bayle. He is a great man."); + turn = true; + elseif ( e.signal == 7 ) then + e.self:Say("Sing it, lass! Sir Lucan D'Lere is no friend of the people."); + turn = true; + end + + if ( turn ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10141); -- NPC: Trolon_Lightleer + if ( not bard.valid ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10158); -- NPC: Branis_Noolright + end + if ( not bard.valid ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10165); -- NPC: Palana_Willin + end + if ( bard.valid ) then + e.self:FaceTarget(bard); + end + end +end + +-- END of FILE Zone:freportn -- Groflah_Steadirt diff --git a/freporte/Guard_Bribbely.lua b/freporte/Guard_Bribbely.lua new file mode 100644 index 0000000..8ae646c --- /dev/null +++ b/freporte/Guard_Bribbely.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("nadox")) then + e.self:Say("How am I supposed to know? Sounds like some darn troll lair. You're the adventurer, why don't you go investigate it. I will stay here to look for more clues."); + end +end + + + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 55003})) then + e.self:Say("Yes, what is it, citizen?' Bribbely reads the note from Jasmine. 'Great, just what I need.' Guard Bribbely sighs. 'I have been a member of the guard for twenty years, investigating countless thefts and other crimes against Freeport and you think you can just waltz in here and solve this? You adventurers are all the same. Ok, 'investigator', if you think you are so smart, here is what we know so far: After the trolls attacked the ship, one of them was left behind and captured by us. After being beat, er questioned, the troll eventually told us that they were from Broken Skull Rock and that is probably where they took our captured ship. He didn't know about any mail, but says that any loot onboard was most likely taken to the [Crypts of Nadox] to await distribution by treasure sorters to the trolls there as payment. Further questioning revealed that a ship on the shores of Stonebrunt can take people to Broken Skull."); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freporte/Gunex_Eklar.lua b/freporte/Gunex_Eklar.lua new file mode 100644 index 0000000..60625ba --- /dev/null +++ b/freporte/Gunex_Eklar.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Begone lest you seek instruction, I am very busy. I teach those who [follow the path of rage] as a Shadowknight, the leaders of the Dismal Rage."); + elseif(e.message:findi("follow the path of rage")) then + e.self:Say("As the leaders of the Dismal Rage we Shadowknights forefront of our struggles. We use the spiritual guidance of our Clerics, the Dark Arts of our Necromancers, and the tactics of our Warriors to advance the causes and secure the needs of our followers. If you aspire to be of importance to your colleagues you must first obtain a suit of armor to defend you from the aggressions of our enemies. Take this note to Quan Nektogo here in the eastern quarter of Freeport. He will aid you in the construction of your armor. When you are properly outfitted return to me and I will present you with an [important task]."); + e.other:SummonCursorItem(19845); -- Note to Quan Nektogo + elseif(e.message:findi("important task")) then + e.self:Say("It has come to our attention that a paladin of the Sentries of Passion, Raenna Griff, has been aiding sympathizers and wanted members of the Sentries of Passion and the Knights of Truth in the sewer tunnels beneath the western quarter of Freeport. The incompetent Freeport Militia has yet to capture these wanted followers of the Mar twins. We will wait for their capture no longer. Seek this Raenna Griff individual and slay her. I want her head presented to me this very night!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19934})) then -- Raenna Griff's Head + e.self:Say("It took you long enough. I wonder if the Militia will be able to identify the body minus its head. Take this Dull Dismal Long Sword and sharpen it in a forge with a sharpening stone. It may take you several attempts if you are unfamiliar with the process. Once that is accomplished deliver the Sharpened Dismal Long Sword and a Giant Rattlesnake Skin to Quan Nektogo. He will make the final preparations on your weapon."); + e.other:Faction(e.self,271,10); --Dismal Rage + e.other:Faction(e.self,281,-1); --Knights of Truth + e.other:Faction(e.self,296,2); --Opal Dark Briar + e.other:QuestReward(e.self,0,0,0,0,19923,200); --Dull Dismal Longsword + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:freporte ID:10099 -- Gunex_Eklar diff --git a/freporte/Harkin_Duskfoot.lua b/freporte/Harkin_Duskfoot.lua new file mode 100644 index 0000000..9bf78f0 --- /dev/null +++ b/freporte/Harkin_Duskfoot.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("HA! Greetings there, " .. e.other:GetCleanName() .. "! How are ya this fine day? Me? I'm doing all right. Guard duty down here always reminds me of home."); + eq.signal(10106,1); -- Signal to Beur_Tenlah + elseif(e.message:findi("message")) then + e.self:Say("Ok, " .. e.other:GetCleanName() .. ", I need you to take this message to Janam in West Freeport. He is usually hanging out in front of the Theater of the Tranquil with that good-for-nothing Rebby. Anyway, give this note to Janam and bring his reply back to me."); + e.other:SummonCursorItem(18015); -- Note to Janam + end +end + +function event_signal(e) + -- Signal from Beur_Tenlah + e.self:Say("Bah! Don't listen to this fool. Listen, I've something a little more important for you to do than buy ales. I need you to take a [message] to my friend Janam over in West Freeport."); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18016})) then -- Note to Harkin + e.self:Say("Ah, good work, " .. e.other:GetCleanName() .. ". And quick too, I'll makes sure that Elisi hears of your loyal work. Here... take this for your efforts.. it's not much, but it's all I have on me right now."); + e.other:Faction(e.self,336,20,0); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,229,20,0); -- Coalition of Trade Folk + e.other:Faction(e.self,329,2,0); -- Carson McCabe + e.other:Faction(e.self,230,1,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,330,3,0); -- Freeport Militia + e.other:QuestReward(e.self,math.random(10),math.random(5),0,0,1054,1500); -- Used Merchants Gloves + end + item_lib.return_items(e.self, e.other, e.trade); +end + +--END of FILE Zone:freporte ID:10107 -- Harkin_Duskfoot diff --git a/freporte/Heneva_Jexsped.lua b/freporte/Heneva_Jexsped.lua new file mode 100644 index 0000000..746dc43 --- /dev/null +++ b/freporte/Heneva_Jexsped.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Yes, yes, yes. Hail to you, too, " .. e.other:GetCleanName() .. ". Now, quit bugging me!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18855})) then + e.self:Say("Welcome, friend. I see more than a slight glimmer of hate in your eyes. Good... for we have much work to do."); + e.other:Faction(e.self,271,100,0); -- Dismal Rage + e.other:Faction(e.self,281,-15,0); -- Knights of Truth + e.other:Faction(e.self,296,20,0); -- Opal Dark Briar + e.other:QuestReward(e.self,0,0,0,0,13565,20); -- Item: Old Stained Robe* + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freporte ID:10121 -- Heneva_Jexsped + + diff --git a/freporte/Henna_Treghost.lua b/freporte/Henna_Treghost.lua new file mode 100644 index 0000000..00c5367 --- /dev/null +++ b/freporte/Henna_Treghost.lua @@ -0,0 +1,38 @@ +function event_spawn(e) + eq.set_timer("sing",1040000); +end + +function event_timer(e) + local song; + + if (e.timer == "sing") then + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(10141) -- NPC: Trolon_Lightleer; + and not eq.get_entity_list():IsMobSpawnedByNpcTypeID(10158) -- NPC: Branis_Noolright + and not eq.get_entity_list():IsMobSpawnedByNpcTypeID(10165) -- NPC: Palana_Willin + ) then + return; + end + + song = math.random(1, 7); + if (song == 1) then + e.self:Say("Let's hear some music."); + elseif (song == 2) then + e.self:Say("Music!! Music!!"); + elseif (song == 3) then + e.self:Say("Play us some music bard!!"); + elseif (song == 4) then + e.self:Say("Let's liven this pub up!"); + elseif (song == 5) then + e.self:Say("Try to cheer this place up, bard."); + elseif (song == 6) then + e.self:Say("Where is the music? I don't pay you bards to drink all the grog!!"); + elseif (song == 7) then + e.self:Say("Sing us a melody."); + end + + eq.signal(10141,1); -- NPC: Trolon_Lightleer + eq.signal(10158,1); -- NPC: Branis_Noolright + eq.signal(10165,1); -- NPC: Palana_Willin + end +end diff --git a/freporte/Ikthar_Fireheart.lua b/freporte/Ikthar_Fireheart.lua new file mode 100644 index 0000000..4cc4ee5 --- /dev/null +++ b/freporte/Ikthar_Fireheart.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You look like the type who needs a suit of sturdy plate mail! I've got plenty of steel plate in stock but if you're looking for field plate we've been out of the [necessary ores] for quite some time."); + elseif(e.message:findi("necessary ore")) then + e.self:Say("Field plate is stronger than steel or fine steel plate and offers more protection to certain areas of the body. Unfortunately. it can only be crafted with high quality ores from those goblin infested mines. If you are planning on getting some ore I can instruct you in the [techniques of crafting field plate]."); + elseif(e.message:findi("techniques of crafting field plate")) then + e.self:Say("Field plate may only be crafted in the special Freeport forge located in West Freeport. All pieces will require the appropriate plate mold. sea temper. a smithy hammer. leather backing. and chain jointing. Different amounts of ore will be needed for the various pieces of armor and the ore must be worked into [folded sheets]."); + elseif(e.message:findi("folded sheet")) then + e.self:Say("Folded sheets of high quality ore can be crafted only in the special Freeport forge or Qeynos Royal Forge in the same fashion that regular folded sheets are fashioned in a standard forge. Field plate visors. collars. and bracers require only one folded sheet of high quality ore. Helms. pauldrons. girdles. vambraces. gauntlets. and boots require two folded sheets of high quality ore. Breastplates. greaves. and cloaks require three folded sheets of high quality ore."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/freporte/Imxil_Tbrow.lua b/freporte/Imxil_Tbrow.lua new file mode 100644 index 0000000..fdf5bb8 --- /dev/null +++ b/freporte/Imxil_Tbrow.lua @@ -0,0 +1,64 @@ +local factionId = 0; + +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("I have no desire to speak with anyone. That includes you!"); + end +end + +function event_combat(e) + if ( not e.joined and factionId ~= 0 ) then + e.self:CastToNPC():SetNPCFactionID(factionId); -- restore faction if Plnorrick doesn't kill + end +end + + +function event_signal(e) + if ( e.self:IsEngaged() ) then + return; + end + + local turn, bard; + + if ( e.signal == 1 ) then + -- This NPC text is not precise. It was put together from these alla comments: + -- http://everquest.allakhazam.com/db/npc.html?id=985#m107866514287264 + -- http://everquest.allakhazam.com/db/npc.html?id=896#m107866603072607 + -- I just really wanted this bar fight in, which does happen + e.self:Say("Go ahead and unite, fools. It will make it easier for the Teir'Dal to conquer you."); + eq.signal(10163, 10); -- Plnorrick_Spinecracker + elseif ( e.signal == 2 ) then + e.self:Say("Those halfwit ogres make good pets. If they are housebroken."); + turn = true; + elseif ( e.signal == 4 ) then + e.self:Say("The Teir'Dal cower to no one. We are the only true force to be reckoned with."); + turn = true; + elseif ( e.signal == 5 ) then + e.self:Say("There are no greater circles of magic than those of the Teir'Dal."); + turn = true; + elseif ( e.signal == 7 ) then + e.self:Say("Let Sir Lucan D'Lere seek glory while we Teir'Dal seek great destiny."); + turn = true; + elseif ( e.signal == 10 ) then + factionId = e.self:CastToNPC():GetNPCFactionID(); + e.self:CastToNPC():SetNPCFactionID(0); -- remove faction to prevent NPCs from assisting + end + + if ( turn ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10141); -- NPC: Trolon_Lightleer + if ( not bard.valid ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10158); -- NPC: Branis_Noolright + end + if ( not bard.valid ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10165); -- NPC: Palana_Willin + end + if ( bard.valid ) then + e.self:FaceTarget(bard); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/freporte/Innkeep_Hunter.lua b/freporte/Innkeep_Hunter.lua new file mode 100644 index 0000000..b846250 --- /dev/null +++ b/freporte/Innkeep_Hunter.lua @@ -0,0 +1,21 @@ + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("These are quality muffins! You are obviously quite a skilled baker. Here is your payment as promised. Now I can get back to business again."); + e.other:Faction(e.self,63,2); -- coalition of tradefolk + e.other:Faction(e.self,281,2); -- knights of truth + e.other:Faction(e.self,291,1); -- merchants of qeynos + e.other:Faction(e.self,336,2); -- coalition of tradefolk underground + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("Oh, wonderful fresh bread! Thank you for making the trip, that is such a long way. Here, I hope this covers your travel expenses. You have my deepest thanks."); + e.other:Faction(e.self,63,4); -- coalition of tradefolk + e.other:Faction(e.self,281,4); -- knights of truth + e.other:Faction(e.self,291,3); -- merchants of qeynos + e.other:Faction(e.self,336,4); -- coalition of tradefolk underground + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/freporte/Innkeep_Nasumi.lua b/freporte/Innkeep_Nasumi.lua new file mode 100644 index 0000000..c661a08 --- /dev/null +++ b/freporte/Innkeep_Nasumi.lua @@ -0,0 +1,21 @@ + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("Ah yes! This is exactly what I am looking for, dear. Let me put these on the shelf right away. Here is some coin for your trouble. Perhaps we can do business again some time."); + e.other:Faction(e.self,63,2); -- coalition of tradefolk + e.other:Faction(e.self,281,2); -- knights of truth + e.other:Faction(e.self,291,1); -- merchants of qeynos + e.other:Faction(e.self,336,2); -- coalition of tradefolk underground + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("Oh, wonderful fresh bread! Thank you for making the trip, that is such a long way. Here, I hope this covers your travel expenses. You have my deepest thanks."); + e.other:Faction(e.self,63,4); -- coalition of tradefolk + e.other:Faction(e.self,281,4); -- knights of truth + e.other:Faction(e.self,291,3); -- merchants of qeynos + e.other:Faction(e.self,336,4); -- coalition of tradefolk underground + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/freporte/Innkeep_Paggie.lua b/freporte/Innkeep_Paggie.lua new file mode 100644 index 0000000..77200ce --- /dev/null +++ b/freporte/Innkeep_Paggie.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there " .. e.other:GetCleanName() .. "! You'll be happy to see that I am fully stocked with all my usual goods. Have a look around."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("Ah yes! This is exactly what I am looking for, dear. Let me put these on the shelf right away. Here is some coin for your trouble. Perhaps we can do business again some time."); + e.other:Faction(e.self,63,2); -- coalition of tradefolk + e.other:Faction(e.self,281,2); -- knights of truth + e.other:Faction(e.self,291,1); -- merchants of qeynos + e.other:Faction(e.self,336,2); -- coalition of tradefolk underground + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("Oh, wonderful fresh bread! Thank you for making the trip, that is such a long way. Here, I hope this covers your travel expenses. You have my deepest thanks."); + e.other:Faction(e.self,63,4); -- coalition of tradefolk + e.other:Faction(e.self,281,4); -- knights of truth + e.other:Faction(e.self,291,3); -- merchants of qeynos + e.other:Faction(e.self,336,4); -- coalition of tradefolk underground + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freporte/Innkeep_Rastle.lua b/freporte/Innkeep_Rastle.lua new file mode 100644 index 0000000..5679c62 --- /dev/null +++ b/freporte/Innkeep_Rastle.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail " .. e.other:GetCleanName() .. ". Business is going well these days. I have a full stock of baked goods and other items for sale. Have a look around!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("These are quality muffins! You are obviously quite a skilled baker. Here is your payment as promised. Now I can get back to business again."); + e.other:Faction(e.self,63,2); -- coalition of tradefolk + e.other:Faction(e.self,281,2); -- knights of truth + e.other:Faction(e.self,291,1); -- merchants of qeynos + e.other:Faction(e.self,336,2); -- coalition of tradefolk underground + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("Oh, wonderful fresh bread! Thank you for making the trip, that is such a long way. Here, I hope this covers your travel expenses. You have my deepest thanks."); + e.other:Faction(e.self,63,4); -- coalition of tradefolk + e.other:Faction(e.self,281,4); -- knights of truth + e.other:Faction(e.self,291,3); -- merchants of qeynos + e.other:Faction(e.self,336,4); -- coalition of tradefolk underground + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/freporte/Jenna_Smith.lua b/freporte/Jenna_Smith.lua new file mode 100644 index 0000000..5a2c2e3 --- /dev/null +++ b/freporte/Jenna_Smith.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("" .. e.other:GetCleanName() .. "! Well met! Come away from Sir Ranlon's forge one moment so that we may talk.' Issilyn steps away from the forge with a smile. 'We live in interesting times! Have you heard of Sir Ranlon's [armor]?"); + elseif(e.message:findi("armor")) then + e.self:Say("Ah, it is impressive indeed. Already, he has several dozen orders from the naval merchant crews, and several from... less honourable individuals. He has pioneered a [method] of creating unrusting, light and very durable armor - perfect for the sea!"); + elseif(e.message:findi("method")) then + e.self:Say("With a smithy hammer, using the Freeport Traditional Forge, he uses a leather piece of armor as the base. With a little sea temper, a chainmail pattern, and some [infused rings], the armor is constructed. Isn't it a lovely colour?"); + elseif(e.message:findi("infused ring")) then + e.self:Say("Velium rings are the basis of this armor, and with a smithy hammer, one strengthens them with a large brick of medium quality ore. However, the secret to this strengthening technique lies in the power of a [strange temper]."); + elseif(e.message:findi("strange temper")) then + e.self:Say("Well may you ask. I wish that I could answer your question, Downz, it baffles us too.' Issilyn looks around to ensure that there is no one within earshot. 'We buy it on the Freeport black market, there is very little that cannot be bought in such a bustling city as this. I do not know from where you could acquire it."); + end +end \ No newline at end of file diff --git a/freporte/Jerra_Renlock.lua b/freporte/Jerra_Renlock.lua new file mode 100644 index 0000000..7a965d4 --- /dev/null +++ b/freporte/Jerra_Renlock.lua @@ -0,0 +1,39 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Yes? What is it you want from me? I have nothing that you would be interested in. Not even money to pay the ridiculous taxes imposed by the Freeport Militia."); + elseif(e.message:findi("dismal priest boots")) then + e.self:Say("'To assemble Dismal priest Mail Boots you will need to obtain two bricks of crude iron and smelt them in a forge with a Water Flask and this crude Boot Mold. Once that is done combine the Crude Iron Boots with two Ruined Coyote Pelts, and two Large Fire Beetle Tarsi in the Mail Assembly Kit."); + e.other:SummonCursorItem(19634); -- Item: Crude Boot Mold + elseif(e.message:findi("dismal priest bracer")) then + e.self:Say("To assemble a Dismal priest Mail Bracer you will need to obtain a brick of crude iron and smelt it in a forge with a Water Flask and this Crude Bracer Mold. Once that is done, combine the Crude Iron Bracer with a Ruined Coyote Pelt and a Sand Scarab Hatchling Sternite in the Mail Assembly Kit."); + e.other:SummonCursorItem(19632); -- Item: Crude Bracer Mold + elseif(e.message:findi("dismal priest breastplate")) then + e.self:Say("To assemble a Dismal priest Breastplate you will need to obtain four bricks of crude iron and smelt them in a forge with a Water Flask and this Crude Breastplate Mold. Once that is done combine the Crude Iron Breastplate with a Coyote Pelt, a Giant Fire Beetle Carapace, and two Giant Fire Beetle Tergites in the Mail Assembly Kit."); + e.other:SummonCursorItem(19637); -- Item: Crude Breastplate Mold + elseif(e.message:findi("dismal priest gauntlets")) then + e.self:Say("To assemble Dismal priest Gauntlets you will need to obtain two bricks of crude iron and smelt them in a forge with a Water Flask and this crude Gauntlet Mold. Once that is done combine the Crude Iron Gauntlets with a Ruined Coyote Pelt and two Sand Scarab Hatchling Tarsi in the Mail Assembly Kit."); + e.other:SummonCursorItem(19633); -- Item: Crude Gauntlets Mold + elseif(e.message:findi("dismal priest greaves")) then + e.self:Say("To assemble Dismal priest Greaves you will need to obtain two bricks of crude iron and smelt them in a forge with a Water Flask and this Crude Greaves Mold. Once that is done combine the Crude Iron Greaves with two Low Quality Coyote Pelts and two Large Fire Beetle Sternites in the Mail Assembly Kit."); + e.other:SummonCursorItem(19636); -- Item: Crude Greaves Mold + elseif(e.message:findi("dismal priest helm")) then + e.self:Say("To assemble a Dismal priest Helm you will need to obtain two bricks of crude iron and smelt them in a forge with a Water Flask and this Crude Helm Mold. Once that is done combine the Crude Iron Helm with a Ruined Coyote Pelt and two Sand Scarab Hatchling Eyes in the Mail Assembly Kit."); + e.other:SummonCursorItem(19631); -- Item: Crude Helm Mold + elseif(e.message:findi("dismal priest vambraces")) then + e.self:Say("To assemble Dismal priest Vambraces you will need to obtain two bricks of crude iron and smelt them in a forge with a Water Flask and this Crude Vambrace Mold. Once that is done combine the Crude Iron Vambraces with a Low Quality Coyote Pelt and two Large Fire Beetle Patella in the Mail Assembly Kit."); + e.other:SummonCursorItem(19635); -- Item: Crude Vambrace Mold + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19844})) then -- Note to Jerra Renlock + e.self:Say("'Ah, so Zhem wants me to assist you with some armor. You will surely need it if you are an associate of the likes of him. This Mail Assembly Kit will be needed for you to construct your armor. The materials required depend on the armor section you plan to construct. Do you plan to construct a [dismal priest helm], a [dismal priest bracer], [dismal priest gauntlets], [dismal priest boots], [dismal priest vambraces], [dismal priest greaves], or a [dismal priest breastplate]."); + e.other:QuestReward(e.self,0,0,0,0,17124); -- Mail Assembly Kit + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19927,item2 = 19852})) then + e.self:Emote("fashions a grip out of the giant rattlesnake skin and polishes the head of the flail with a strange glowing substance. This will make a fine weapon for a young Priest of Rage."); + e.other:QuestReward(e.self,0,0,0,0,19939); -- Dismal Rage Flail + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/freporte/Jheron_Felkis.lua b/freporte/Jheron_Felkis.lua new file mode 100644 index 0000000..96c4dea --- /dev/null +++ b/freporte/Jheron_Felkis.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ah, greetings, traveler! Settled into one of these rooms, have you? Well, this room is mine, so get out! Hey, wait! You aren't here to deliver a [shipment of books] to me, are you?"); + elseif(e.message:findi("shipment of book")) then + e.self:Say("Oh, I typically receive monthly shipments of books from Umvera Dekash. I hear he has recently been promoted to senior librarian in Erudin. What a vaulted position! I could only aspire. I'm not going to be binding books forever, you know!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18508})) then -- Tesch Val Compilation + -- Verified Live experience + e.self:Say("So you are from Umvera! What is this? Oh my! INtersting! I'll bind them right away! A little snip here..a little snip there.. All done! That didn't take long, did it? I won't be doing this forever, you know. After the milita burned down my father's home, he could not afford to send me through proper schooling. Ah well, such is life!"); + e.other:QuestReward(e.self,{itemid = 18510,exp = 2500}); -- Pawbook + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- End of File zone:freporte -- Jheron_Felkis \ No newline at end of file diff --git a/freporte/Jyle_Windshot.lua b/freporte/Jyle_Windshot.lua new file mode 100644 index 0000000..e0dbe5d --- /dev/null +++ b/freporte/Jyle_Windshot.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, friend!! Nice to meet you. I see you enjoy barging into other people's rooms. No problem. I enjoy the company. What are you looking for?"); + elseif(e.message:findi("treant wood")) then + e.self:Say("So you want treant shards? I have them. If you want them I will trade you for them. Hmm.. I will take 2 gold and how about a nifty Faydark Champion Tunic. That is all I want. No more, no less."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13536, gold = 2})) then -- dirty green tunic and 2 gold. + e.self:Say("Thanks, friend. I have run a long way to get here in time. Mostly at night. I lost my lantern in a card game in Highkeep."); + e.other:Faction(e.self,246,1,0); -- Faydark's Champions + e.other:Faction(e.self,279,1,0); -- King Tearis Thex + e.other:Faction(e.self,226,1,0); -- Clerics of Tunare + e.other:Faction(e.self,310,1,0); -- Soldiers of Tunare + e.other:Faction(e.self,234,-1,0); -- Crushbone Orcs + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(13824, 13824, 13824, 13824, 13824, 13824, 13824, 13824, 13824, 12334),500); -- 1/10 chance of wooden heart 9/10 chance of Wooden Shards + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone: -- Jyle_Windshot *(FREPORTEAST VERSION)* diff --git a/freporte/Kargek_Redblade.lua b/freporte/Kargek_Redblade.lua new file mode 100644 index 0000000..57d70a5 --- /dev/null +++ b/freporte/Kargek_Redblade.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks up from his forge and says, 'Hello there, can I help you?' Your eyes are drawn to an extremely large red sword scabbard strapped to his back with no sword in it. Kargek speaks again, 'I said, can I help you or do you need help from Wenden?' "); + elseif(e.message:findi("wenden")) then + e.self:Emote("points to the other side of the forge and says, 'Wenden is my partner. He is standing right over there. If it is a question about a weapon, he will probably have the answers.'"); + elseif(e.message:findi("scabbard")) then + e.self:Emote("turns to look at you and says, 'It is a family heirloom. I might tell you the story behind it if you do me a little [favor].'"); + elseif(e.message:findi("favor")) then + e.self:Say("An associate of mine is wandering somewhere in the Feerrott. His name is Oknoggin Stonesmacker. If you will deliver this note to him, I would appreciate it."); + e.other:SummonCursorItem(20673); -- Wax Sealed Note + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20684,item2 = 20679})) then -- Tenal's Note to Kargek & Spiroc Wingblade + e.self:Say("What is this? A note from my brother? Thank you for the gift as well.' Kargek reads the note and hands you the huge sword hilt. Your mind is filled with the sound of battle and a voice. 'Place the ancient sword blade, ancient blade, finely crafted dragon head hilt and the jeweled dragon head hilt into the scabbard to receive your rewards. If you think you are worthy, place your rewards into the scabbard and see what havoc you can unleash on the world. Kargek addresses you as you turn to leave. 'One more thing. Gartrog over there has told me of a great discovery. Seems there are all sorts of stones being found in the recently discovered lost dungeons scattered around Antonica. The Wayfarer's Brotherhood has found a way to make items even more powerful by using the stones with existing items."); + e.other:QuestReward(e.self,0,0,0,0,17859,1000000); -- Red Scabbard + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20674})) then -- Tiny Lute + e.self:Say("Thank you for delivering the note to my associate. Take this book - it will tell you a little of the history of the old scabbard. If you would like to own the scabbard, seek out my younger brother Tenal and give him the book."); + e.other:QuestReward(e.self,0,0,0,0,18083,1000); -- Redblade's Legacy + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freporte -- Kargek_Redblade + diff --git a/freporte/Konious_Eranon.lua b/freporte/Konious_Eranon.lua new file mode 100644 index 0000000..2dd4f2c --- /dev/null +++ b/freporte/Konious_Eranon.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings! I am the mighty Konious Eranon, Master Enchanter, devoted follower of Innoruuk, and loyal assistant to the all-powerful Nexvok."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18856})) then -- A tattered Note + e.self:Say("Hey, Nex, we got another sucker.. er.. volunteer, that is, to help us out around here. Here ya go friend, put this on and let's whip you into shape."); + e.other:Faction(e.self,271,100,0); -- Dismal Rage + e.other:Faction(e.self,281,-15,0); -- Knights of Truth + e.other:Faction(e.self,296,20,0); -- Opal Dark Briar + e.other:QuestReward(e.self,0,0,0,0,13566,20); -- Blood Spotted Robe* + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freporte -- Konious_Eranon + + + diff --git a/freporte/Lenka_Stoutheart.lua b/freporte/Lenka_Stoutheart.lua new file mode 100644 index 0000000..4e9c9aa --- /dev/null +++ b/freporte/Lenka_Stoutheart.lua @@ -0,0 +1,46 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("hail") and (fac <= 5)) then + e.self:Say("Hi, kid! You seem to be a stranger in these parts. Heed my words, this city is dangerous to new blood!"); + eq.signal(10135,10); -- NPC: Bronto_Thudfoot + elseif(e.message:findi("hail") and (fac > 5)) then + e.self:Say("Run while ye still can!! The Wolves o' the North will not tolerate yer presence!"); + elseif(e.message:findi("toala sent me")) then + e.self:Say("She does not even have the courtesy to come herself. Some old friend!! Listen, some rogue in this city broke into the [Beast] and stole a pouch containing a voucher ticket for a part I need to repair the Beast. I can't get the part back without the ticket. I did not see the rogue. I did not sleep on the Beast that night. Bronto was there. Ask him if he saw the rogue."); + elseif(e.message:findi("beast")) then + e.self:Say("You're joking, right? You have never heard of the Blue Beast?!! She is the fastest ship in Norrath. She made the [Kunark run] in under three weeks. She was designed by [Bronto]."); + elseif(e.message:findi("kunark run")) then + e.self:Say("The Kunark run is the most dangerous run between Freeport and [Firiona Vie], in Kunark. If the seas don't rip your hull to splinters and the pirates and sea wyrms don't kill you, you can make a quick run back and forth, avoiding any unwanted inspections."); + elseif(e.message:findi("Firiona Vie")) then + e.self:Say("Firiona Vie is an elven outpost on the continent of Kunark. Every so often I run supplies to and from there. Do not even think about asking me to take you there. It will be months before I can make improvements on the Blue Beast to make it impervious to aerial attacks."); + elseif(e.message:findi("journal strongbox")) then + e.self:Say("You must be from the Academy of Arcane Science. Well, kid, bad news. I was docked at the isle in the Ocean of Tears when I was boarded by the Freeport Militia. To say the least, I panicked and dropped all my cargo. It is still there. Mostly illegal alcohol, but the strongbox is still out there, too. Directly out from the dock."); + eq.set_global("strongbox","1",7,"H1"); + elseif(e.message:findi("Bronto")) then + e.self:Say("My trusted friend. Together we travel the world aboard the [Beast]. He is quite skilled at boat making and other mechanical skills. He has a heart and brain far superior to any ogre I have ever met, as well as most other races."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13818})) then -- Boat Beakon can be turned in at dubious + e.self:Say("Oh!! You must work for that Erudite named Palatos. I guess he won't have to spend anymore money drinking in Freeport. Here. Here is the portrait I kept until he could get me a new boat beacon."); + -- Confirmed Live Factions + e.other:Faction(e.self,320,5,0); -- Faction: Wolves of the North + e.other:Faction(e.self,327,1,0); -- Faction: Shamen of Justice + e.other:Faction(e.self,265,1,0); -- Faction: Heretics + e.other:Faction(e.self,267,1,0); -- Faction: High Guard of Erudin + e.other:QuestReward(e.self,0,0,0,0,12146,20000); -- A'kanon's Portrait + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13814})) then -- L.S. Pouch can be turned in at dubious + e.self:Say("You found my pouch! Thanks kid. Let me buy you A drink and this is for the good work. Hmmmm. It looks as though they took my voucher. Darn it! Hey... It looks like they were using my bag to hold items they were stealing. Here you go. You can have it. It looks like junk."); + -- Confirmed Live Factions + e.other:Faction(e.self,320,5,0); -- Faction: Wolves of the North + e.other:Faction(e.self,327,1,0); -- Faction: Shamen of Justice + e.other:Faction(e.self,328,1,0); -- Faction: Merchants of Halas + e.other:Faction(e.self,311,1,0); -- Faction: Steel Warriors + e.other:QuestReward(e.self,0,math.random(10),0,0,eq.ChooseRandom(13922,13923),200); -- Snapped Pole or Moggok's Right Eye + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freporte/Lozani.lua b/freporte/Lozani.lua new file mode 100644 index 0000000..0e5381f --- /dev/null +++ b/freporte/Lozani.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, friend!! I am Lozani, Scribe Supreme of the Eldritch Collective. I have been sent forth from the great Library of Mechanimagica in the city of Ak'Anon, to study the arcane knowledge of man and beast alike. I have studied many languages and spells, from Crushbone to Kerra Ridge. I have found most languages hard to decipher. As of this date, I have learned to read only the script of the [orc oracles]. Oh well, I am on a five decade mission. Better luck next language."); + elseif(e.message:findi("orc oracles")) then + e.self:Say("Oh!! Heard of the orc oracles have you? A ghastly bunch they are!! Argh! The numerous days I spent interrogating those beasts with their foul breath. It was as if rats had gone and died in their mouths. I wished I could read minds after those days. TWENTY WEEKS of that rat-carcass breath and all I have learned is the ability to decipher [oracle scrolls] and [apprentice cantrips]. What a mess that was! I'm beginning to think I should have become a Gemchopper."); + elseif(e.message:findi("oracle scroll")) then + e.self:Say("Orc oracle scrolls? Mere shaman spells are they. I know how to decipher those illegible scrolls. I can do so, but it will cost you. Nothing is for free in this world, y'know? You give me one of those illegible scrolls and four gold coins."); + elseif(e.message:findi("apprentice cantrips")) then + e.self:Say("Orc apprentice cantrips. Child's play they are. Very difficult to decipher, mostly due to the orc sweat smearing the writing. I fill in the blanks with a second orc cantrip and my universe of knowledge, so you never know what spell is going to be scribed! Could be magic, could be wizardry, could be necromancy, golly!! Sometimes I even end up with a recipe!! If you want me to try to decipher one just hand me two illegible cantrips. No coinage necessary!! They are mostly apprentice spells. Nothing much."); + end +end + +-- END of FILE Zone:freporte ID:Not_Found -- Lozani \ No newline at end of file diff --git a/freporte/Lunce_Nasin.lua b/freporte/Lunce_Nasin.lua new file mode 100644 index 0000000..7396dc3 --- /dev/null +++ b/freporte/Lunce_Nasin.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello! Looking for a room? We have a few still empty."); + end +end \ No newline at end of file diff --git a/freporte/Marv_Orilis.lua b/freporte/Marv_Orilis.lua new file mode 100644 index 0000000..6fec84c --- /dev/null +++ b/freporte/Marv_Orilis.lua @@ -0,0 +1,51 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Yes? I am a very busy man. I assist new necromancers, wizards, magicians, and enchanters that have joined the Dismal Rage. Are you a sorcerer that has [recently joined] us? "); + elseif(e.message:findi("recently joined")) then + e.self:Say("Then I welcome you to the path of rage. We sorcerers fulfill a crucial role within the Dismal Rage. Under the guidance of Opal Darkbriar, a founder of our order, we study the darkest aspects of the various sorcerous arts so that we may aid and bring power to others who follow our patron deity, Innoruuk, the Prince of Hate. If you desire I will help you obtain a suit of [protective clothing] suitable for a practitioner of the sorcerous arts. Once you have been properly outfitted, return to me and I will aid you in obtaining a [Staff of Dismal Rage]."); + elseif(e.message:findi("protective clothing")) then + e.self:Say("You will require this Curing Kit to craft your clothing and robe. The materials required vary depending on the article of clothing you desire to craft. Do you desire to craft a [rage sorcerer cap], [rage sorcerer wristband], [rage sorcerer gloves], [rage sorcerer boots], [rage sorcerer sleeves], [rage sorcerer pantaloons], or [rage sorcerer robe]?"); + e.other:SummonCursorItem(17125); -- Item: Curing Kit + elseif(e.message:findi("rage sorcerer cap")) then + e.self:Say("To craft a Rage Sorcerer Cap you will require two [silk thread], gila monster hatchling bile, and a young gila monster skin. Once you have the necessary components combine them in your Curing Kit with this Tattered Cap Pattern."); + e.other:SummonCursorItem(19555); -- Item: Tattered Cap Pattern + elseif(e.message:findi("rage sorcerer wristband")) then + e.self:Say("To craft a Rage Sorcerer Wristband you require a [silk thread], gila monster hatchling bile, and a rattlesnake skin. Once you have the necessary components combine them in your Curing Kit with this Tattered Wristband Pattern."); + e.other:SummonCursorItem(19558); -- Item: Tattered Wristband Pattern + elseif(e.message:findi("rage sorcerer gloves")) then + e.self:Say("To craft Rage Sorcerer Gloves you require two [silk thread], gila monster hatchling bile, two desert spiderling hairs, and a young gilla monster skin. Once you have the necessary components combine them in your Curing Kit with this Tattered Glove Pattern."); + e.other:SummonCursorItem(19559); -- Item: Tattered Glove Pattern + elseif(e.message:findi("rage sorcerer boots")) then + e.self:Say("To craft Rage Sorcerer Boots you require two [silk thread], gila monster hatchling bile, and two ruined coyote pelts. Once you have the necessary components combine them in your Curing Kit with this Tattered Boot Pattern."); + e.other:SummonCursorItem(19561); -- Item: Tattered Boot Pattern + elseif(e.message:findi("rage sorcerer sleeves")) then + e.self:Say("To craft Rage Sorcerer Sleeves you require two [silk thread], young gila monster bile, and two young gilla monster skins. Once you have the necessary components combine them in your Curing Kit with this Tattered Sleeves Pattern."); + e.other:SummonCursorItem(19557); -- Item: Tattered Sleeve Pattern + elseif(e.message:findi("rage sorcerer pantaloons")) then + e.self:Say("To craft Rage Sorcerer Pantaloons you require two [silk thread], young gila monster bile, and four young gila monster skins. Once you have the necessary components combine them in your Curing Kit with this Tattered Leggings Pattern."); + e.other:SummonCursorItem(19560); -- Item: Tattered Pant Pattern + elseif(e.message:findi("rage sorcerer robe")) then + e.self:Say("To craft a Rage Sorcerer Robe you will require three [silk thread], gila monster bile, two gila monster skins, and a desert tarantula hairs. Once you have the necessary components combine them in your Curing Kit with this Tattered Robe Pattern."); + e.other:SummonCursorItem(11395); -- Item: Tattered Robe Pattern + elseif(e.message:findi("staff of dismal rage")) then + e.self:Say("The Dismal Rage has many enemies still here in Freeport that would uncover us and see us destroyed. Lately a wizard of the Arcane Scientists, Yovik Splegle, has been asking questions about Opal Darkbriar. Find this inquisitive wizard and silence him for good. When you have completed the task return to me with the wizards head."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19935})) then + e.self:Say("Poor, poor Yovik Splegle. Haha! Excellent work, " .. e.other:GetCleanName() .. ". Quickly, fetch me a giant rattlesnake skin and a giant leaf scarab eye along with your Rough Hewn Dismal Staff and I will construct you the Staff of Dismal Rage before your very eyes."); + e.other:Faction(e.self,271,10,0); -- Faction: Dismal Rage + e.other:Faction(e.self,281,-1,0); -- Faction: Knights of Truth + e.other:Faction(e.self,296,2,0); -- Faction: Opal Dark Briar + e.other:QuestReward(e.self,0,0,0,0,19924); -- Item: Rough Hewn Dismal Staff + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19924,item2 = 19852,item3 = 19936})) then + e.other:Faction(e.self,271,10,0); -- Faction: Dismal Rage + e.other:Faction(e.self,281,-1,0); -- Faction: Knights of Truth + e.other:Faction(e.self,296,2,0); -- Faction: Opal Dark Briar + e.other:QuestReward(e.self,0,0,0,0,19941,250); -- Item: Staff of Dismal Rage + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freporte/Nesin_Tapper.lua b/freporte/Nesin_Tapper.lua new file mode 100644 index 0000000..19fcca7 --- /dev/null +++ b/freporte/Nesin_Tapper.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am not here for you to make fancy with!! Just order something!"); + end +end \ No newline at end of file diff --git a/freporte/Nestral_TGaza.lua b/freporte/Nestral_TGaza.lua new file mode 100644 index 0000000..c5a7b2b --- /dev/null +++ b/freporte/Nestral_TGaza.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey, hello there, " .. e.other:GetCleanName() .. ". It's been so busy around here lately! Barely time to eat and sleep, let alone have any fun. Oh well, it keeps me employed. But, I really could use someone to [help] me out around here."); + elseif(e.message:findi("help")) then + e.self:Say("Yea and if you can help me out with A few things that'd be great. Geez and where do we Start? I need someone to run over to [Janam and Rebby's]? Can you do that for me?"); + elseif(e.message:findi("janam and rebby")) then + e.self:Say("Janam and Rebby are A couple of merchants working the area around the Theater of the Tranquil and the Ashen Order, in West Freeport. It's part of my job to keep tabs on those two rascals. I need someone to take this note to Rebby for me. Don't worry, your efforts won't go unnoticed " .. e.other:GetCleanName() .. "."); + e.other:SummonCursorItem(18923); -- Message to Rebby + elseif(e.message:findi("stanos")) then + e.self:Say("Um. Damnation. Where did you see Stanos? Certain, um, people are looking for him."); + elseif(e.message:findi("highpass")) then + e.self:Say("Well, um, I ah, I have to go now, thank you for the information, I have to make sure it goes to the right ears."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13158})) then -- Rebby's Rat Whiskers + e.self:Say("Thank you " .. e.other:GetCleanName() .. ", You have done well."); + e.other:Faction(e.self,336,10,0); -- Faction: Coalition of Tradefolk Underground + e.other:Faction(e.self,229,10,0); -- Faction: Coalition of Tradefolk + e.other:Faction(e.self,329,1,0); -- Faction: Carson McCabe + e.other:Faction(e.self,230,1,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,330,1,0); -- Faction: The Freeport Militia + e.other:QuestReward(e.self,7,0,0,0,0,62); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:freporte ID:10105 -- Nestral_TGaza diff --git a/freporte/Netuk_Phenzon.lua b/freporte/Netuk_Phenzon.lua new file mode 100644 index 0000000..458d192 --- /dev/null +++ b/freporte/Netuk_Phenzon.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome " .. e.other:GetCleanName() .. ". Let us fill your heart with hate. May you carry that hate unto your fellow citizens. Innoruuk has need of your services. We have A [mission] for you."); + elseif(e.message:findi("mission")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("There is a man called Groflah Steadirt. He frequents a bar here in Freeport during the early evening hours. Our sources tell us he was given a piece of parchment taken from one of our allies. Who that is, is none of your business. We only require you to recover the parchment, which he no doubt has on him. End his life and return the note to me. Do not let me see your miserable face again until you have the parchment."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18818})) then -- Tattered Flier + e.self:Say("It is about time you returned! Innoruuk would be proud of the red you have spread upon the land."); + e.other:Faction(e.self,271,30); -- Dismal Rage + e.other:Faction(e.self,281,-4); -- Knights of Truth + e.other:Faction(e.self,296,6); -- Opal Dark Briar + e.other:QuestReward(e.self,0,math.random(0,15),math.random(0,10),0,15343,500); -- Spell: Siphon Strengh + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:freporte ID:10101 -- Netuk_Phenzon diff --git a/freporte/Nexvok_Thirod.lua b/freporte/Nexvok_Thirod.lua new file mode 100644 index 0000000..66dfe50 --- /dev/null +++ b/freporte/Nexvok_Thirod.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am Nexvok, master wizard of the Dismal Rage. My associates Heneva and Konious and I provide our services to master Zarn on a regular basis. People of our talent are in high demand. and Pietro pays well, so we are, of course, very loyal."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18854})) then + e.self:Say("Ah ha.. Fresh meat. here, put this on.. you're one of us now. Do your best to do your worst."); + e.other:Faction(e.self,271,100,0); -- Dismal Rage + e.other:Faction(e.self,281,-15,0); -- Knights of Truth + e.other:Faction(e.self,296,20,0); -- Opal Dark Briar + e.other:QuestReward(e.self,0,0,0,0,13564,20); -- Dirty Torn Robe* + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freporte -- Nexvok_Thirod + + + diff --git a/freporte/Olunea_Miltin.lua b/freporte/Olunea_Miltin.lua new file mode 100644 index 0000000..bb5b97f --- /dev/null +++ b/freporte/Olunea_Miltin.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. It is good to meet you. Try not to scare the fish away. This is A good spot I supply fish to the Grub N' Grog. The patrons there love me!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13922})) then -- Snapped Pole + e.self:Say("Great! Thank you stranger. The rogues must have broken it. At least I could repair it. It would be seasons before I could afford another pole."); + e.other:Faction(e.self,330,5,0); -- Freeport Militia + e.other:Faction(e.self,336,1,0); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,281,-1,0); -- Knights of Truth + e.other:Faction(e.self,362,-1,0); -- Priests of Marr + e.other:QuestReward(e.self,math.random(5),math.random(5),0,0,13100,2000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + + diff --git a/freporte/Opal_Darkbriar.lua b/freporte/Opal_Darkbriar.lua new file mode 100644 index 0000000..0635c64 --- /dev/null +++ b/freporte/Opal_Darkbriar.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings! You will have to excuse me. I have no time to talk right now and I prefer to be left alone. Please leave."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18742})) then -- A tattered note + e.self:Say("Welcome to the Guild, here's your guild robe. Now, let's get to work."); + e.other:Faction(e.self,296,100,0); -- Opal Dark Briar + e.other:Faction(e.self,271,25,0); -- Dismal Rage + e.other:Faction(e.self,239,25,0); -- The Dead + e.other:Faction(e.self,238,25,0); -- Dark Reflection + e.other:Faction(e.self,221,25,0); -- Bloodsabers + e.other:QuestReward(e.self,0,0,0,0,13562,20); -- Dark Stained Robe + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freporte ID:9073 -- Opal_Darkbriar diff --git a/freporte/Palana_Willin.lua b/freporte/Palana_Willin.lua new file mode 100644 index 0000000..e612cb7 --- /dev/null +++ b/freporte/Palana_Willin.lua @@ -0,0 +1,66 @@ +local signal = 0; +local lastSong = 0; + +function event_spawn(e) + eq.set_timer("ready",300000); +end + +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Nice to meet you, " .. e.other:GetCleanName() .. ". I hope you stay to hear my fine compositions."); + end +end + +function event_timer(e) + if ( e.timer == "ready" ) then + e.self:Say("What a cheerful crowd."); + eq.stop_timer("ready"); + + elseif ( e.timer == "bar" ) then + eq.stop_timer("bar"); + eq.set_timer("table", 1000); + eq.signal(10186, signal); -- NPC: Tlin_Bowfright + eq.signal(10157, signal); -- NPC: Tykar_Renlin + eq.signal(10163, signal); -- NPC: Plnorrick_Spinecracker + eq.signal(10160, signal); -- NPC: Biggle_Limbokker + + elseif ( e.timer == "table" ) then + eq.stop_timer("table"); + eq.signal(10199, signal); -- NPC: Sir_Edwin_Motte + eq.signal(10182, signal); -- NPC: Talym_Shoontar + eq.signal(10012, signal); -- NPC: Imxil_Tbrow + eq.signal(10195, signal); -- NPC: Groflah_Steadirt + end +end + +function event_signal(e) + song = math.random(1, 6); + while ( song == lastSong ) do + song = math.random(1, 6); + end + lastSong = song; + + if ( song == 1 ) then + e.self:Say("Here's one for Sir Lucan... He's just a ruler. In a long line of rulers. Looking for a few more orcs to slay. They say that he fights them with one hand tied to his back. And he won't leave Freeport till you remember his name. Thank you."); + eq.set_timer("bar", 1000); + signal = 7; + elseif ( song == 2 ) then + e.self:Say("Yo ho, in the merry old harbor of Sir D'lere. There lived a small man who lived in fear. Fear of the pawns and fear of the fish, but most of all fear of the bottle. One day as he sailed overseas, he encountered a spat. A lovely lady being harrassed by a buccaneer, tall and fat. He hid all his fear and yelled 'Let her go!' The buccaneer said that he would do so. 'I will do so if you can drink from this bottle, oblong and of weight, for twenty whole seconds. Will you test your fate?' So as the ship did thread the needle around a quater to live, foolish Turgin drank, passed out and took a dive. Under went he and the evil bottle too. Now all should fear the bottle of ochre goo."); + elseif ( song == 3 ) then + e.self:Say("All clap and pass the ale. Sir Lucan is in charge so don't set sail. All clap and pass the ale. Sir Lucan is in charge and he shall never fail. He saved our fair city when the others had fled. Off on a crusade, or so they said. All clap and pass the ale, Sir Lucan is in charge so don't you bail. All clap and pass the ale, Sir Lucan is in charge so sing or go to jail. All clap and pass the ale, Sir Lucan beat the orcs and next is Bayle. Thank you. I hope the Freeport citizens liked that one."); + eq.set_timer("bar", 1000); + signal = 3; + elseif ( song == 4 ) then + e.self:Say("My city is mighty and all shall learn to cower. We are nothing less than the ultimate power. My city is pure and filled with beautiful charm. I shall conquer you to save you from harm. My city shall first send its guards to back you in times of need. Soon you shall learn to live under my laws, indeed. So bow down when you see me and give out my favorite cheer, 'All Hail Antonius Bail!' My city is Qeynos and there is nothing to fear."); + eq.set_timer("bar", 1000); + signal = 4; + elseif ( song == 5 ) then + e.self:Say("Life is dull and dreary when you know it all. To the planes of the gods, is their next call. An Erudite, an Erudite has come to drink. All the knowledge in the world, or so they think. One drink, two drinks, grab and down the ale! Then they step off their stools and their faces begin to pale. For all their love of music and their great schools of magic, up come their lunches, how very tragic. So let all sit back and be ready with Hijinks, an Erudite has come to the Seafarer to down a few drinks."); + eq.set_timer("bar", 1000); + signal = 5; + elseif ( song == 6 ) then + e.self:Say("Here is one for my former lover, Joffrey Clay. You took the lute. It was my favorite one. A little white lute, and went off to Qeynos. You took the songs. They were all special ones. Packed them all up. Off to Qeynos. You killed the plant. Put it in a deep freeze. Dumped it in the trunk. With the rest of the refuse. You, left to Qeynos. You, left to Qeynos. You, left to Qeynos. You, left to Qeynos."); + eq.set_timer("bar", 1000); + signal = 6; + end +end \ No newline at end of file diff --git a/freporte/Palatos_Kynarn.lua b/freporte/Palatos_Kynarn.lua new file mode 100644 index 0000000..3a434d4 --- /dev/null +++ b/freporte/Palatos_Kynarn.lua @@ -0,0 +1,48 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What do you want? Can't you see that I wish to be alone?! I have no need nor desire to speak with anyone. I have a minor dilemma to ponder and the only person I wish to speak with is the [captain]."); + elseif(e.message:findi("captain")) then + e.self:Say("If you have to ask that, you should not be in this fine establishment."); + elseif(e.message:findi("danaria sent me")) then + e.self:Say("If you are working for Danaria, you have been misguided. You will go back to her empty handed. Now leave. The [captain] and I have some business to discuss."); + elseif(e.message:findi("portrait")) then + e.self:Say("You have the portrait! Give it to me... Danaria will not get it..."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Mmmm... more... must... drown... sorrow..."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13817,item2 = 13817,item3 = 13817,item4 = 13817},1,text)) then -- 4x Capt. Orlin's Spiced Ale + e.self:Say("Ahh... I... Need help... You... take this... Go build... boat beacon. Ask gnomes about... boat beacon. They know how... Then bring back... Unnnhh! Prexus help me! I will never drink again."); + -- Confirmed live Faction + e.other:Faction(e.self,231,2,0); -- Craftkeepers + e.other:Faction(e.self,266,1,0); -- High Council of Erudin + e.other:Faction(e.self,265,-1,0); -- Heretics + e.other:Faction(e.self,267,1,0); -- High Guard of Erudin + e.other:QuestReward(e.self,0,0,0,0,12145,100); -- Beacon Mount + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13818})) then + e.self:Say("Thanks.. That saved me a lot of money. Now I can spend more time with the captain before I give this back to Lenka Stoutheart. Here is a little so...mething."); + -- Confirmed live Faction + e.other:Faction(e.self,231,10,0); -- Craftkeepers + e.other:Faction(e.self,266,1,0); -- High Council of Erudin + e.other:Faction(e.self,267,1,0); -- High Guard of Erudin + e.other:Faction(e.self,265,-1,0); -- Heretics + e.other:QuestReward(e.self,0,0,0,1,0,20000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12146})) then + e.self:Say("Wise decision!! Little reward for a large deed. Bye."); + -- Confirmed live Faction + e.other:Faction(e.self,231,5,0); -- Craftkeepers + e.other:Faction(e.self,266,1,0); -- High Council of Erudin + e.other:Faction(e.self,267,1,0); -- High Guard of Erudin + e.other:Faction(e.self,265,-1,0); -- Heretics + e.other:QuestReward(e.self,0,0,0,1,0,200); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freporte ID:10112 -- Palatos_Kynarn + + + diff --git a/freporte/Pietro_Zarn.lua b/freporte/Pietro_Zarn.lua new file mode 100644 index 0000000..0668df8 --- /dev/null +++ b/freporte/Pietro_Zarn.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Who are you that you dare to speak with the great Pietro Zarn!! I see nothing more than a whelp in front of me. Innoruuk himself speaks with me. And now you expect me to waste words on you, a common. Begone " .. e.other:GetCleanName() .. " . You have nothing to peak my interest, only my rage."); + else + e.self:Say("Blasphemer! You are no ally of the Dismal Rage. Run while you still have legs!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18743})) then -- A tattered note + e.self:Say("A new member to carry the rage of Innoruuk into the city and beyond. How wonderful. I must admit that you do not appear to carry the rage within. Hopefully you shall color the battlefields with the blood of many knights from the Hall of Truth. Here. Wear this tunic with pride. Once you are ready to begin your training please make sure that yo see Gunex Eklar, he can assist you in developing your hunting and gathering skills. Return to me when you have become more experienced in our art, I will be able to further instruct you on how to progress through your early ranks, as well as in some of the various [trades] you will have available to you."); + e.other:Faction(e.self,271,100,0); -- Dismal Rage + e.other:Faction(e.self,281,-15,0); -- Knights of Truth + e.other:Faction(e.self,296,20,0); -- Opal Dark Briar + e.other:QuestReward(e.self,0,0,0,0,13561,20); -- Faded Crimson Tunic + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18825})) then -- Bayle List + if(e.other:GetFactionValue(e.self) >= 250) then + e.self:Say("You have proven yourself truly evil. Your hatred shall shine from this day forth. Innoruuk commands that I reward you with this. It is called Rage and it serves the powers of hate. Use it to smite the forces of good. Hail Innoruuk!"); + e.other:Faction(e.self,271,100,0); -- Dismal Rage + e.other:Faction(e.self,281,-15,0); -- Knights of Truth + e.other:Faction(e.self,296,20,0); -- Opal Dark Briar + e.other:QuestReward(e.self,0,0,0,0,12153,100); -- Rage War Maul + end + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:freporte -- Pietro_Zarn diff --git a/freporte/Plnorrick_Spinecracker.lua b/freporte/Plnorrick_Spinecracker.lua new file mode 100644 index 0000000..60c4ee4 --- /dev/null +++ b/freporte/Plnorrick_Spinecracker.lua @@ -0,0 +1,48 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("What do you want? I don't have any spare change."); + end +end + +function event_signal(e) + if ( e.self:IsEngaged() ) then + return; + end + + local turn, bard; + + if ( e.signal == 1 ) then + e.self:Say("Yes. We shall live together. We shall be strong."); + turn = true; + elseif ( e.signal == 2 ) then + e.self:Say("Ha!! Dumb ogres. Plnorrick can bash any of them."); + turn = true; + elseif ( e.signal == 3 ) then + e.self:Say(".. .. .. Ahh. I love that song. "); + turn = true; + elseif ( e.signal == 5 ) then + e.self:Say("Smash Erudin!! They are weak. They should be destroyed!!"); + turn = true; + elseif ( e.signal == 10 ) then + -- This NPC text is not precise. It was put together from these alla comments: + -- http://everquest.allakhazam.com/db/npc.html?id=985#m107866514287264 + -- http://everquest.allakhazam.com/db/npc.html?id=896#m107866603072607 + -- I just really wanted this bar fight in, which does happen + e.self:Say("My fist will unite with your face."); + e.self:AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(10012),500); -- Imxil_Tbrow + eq.signal(10012, 10); + end + + if ( turn ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10141); -- NPC: Trolon_Lightleer + if ( not bard.valid ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10158); -- NPC: Branis_Noolright + end + if ( not bard.valid ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10165); -- NPC: Palana_Willin + end + if ( bard.valid ) then + e.self:FaceTarget(bard); + end + end +end diff --git a/freporte/Quan_Nektogo.lua b/freporte/Quan_Nektogo.lua new file mode 100644 index 0000000..d867b90 --- /dev/null +++ b/freporte/Quan_Nektogo.lua @@ -0,0 +1,41 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Sorry friend. I have nothing to sell at the moment. These taxes imposed by the Freeport Militia and the Coalition of Tradefolk take a heavy toll on us poor folk."); + elseif(e.message:findi("forge")) then + e.self:Say("You can find them all over Freeport. Inside and out of many of the buildings where weapons and armor are sold."); + elseif(e.message:findi("dismal knight boots")) then + e.self:Say("To assemble Dismal Knight Boots you will need to obtain two bricks of crude iron and smelt them in a [forge] with a Water Flask and this crude Boot Mold. Once that is done combine the Crude Iron Boots with two Ruined Cat Pelts, and two Large Leaf Scarab Tarsi in the Mail Assembly Kit."); + e.other:SummonCursorItem(19634); -- Item: Crude Boot Mold + elseif(e.message:findi("dismal knight bracer")) then + e.self:Say("To assemble a Dismal Knight Bracer you will need to obtain a brick of crude iron and smelt it in a [forge] with a Water Flask and this Crude Bracer Mold. Once that is done, combine the Crude Iron Bracer with a Ruined Cat Pelt and a Leaf Scarab Sternite in the Mail Assembly Kit."); + e.other:SummonCursorItem(19632); -- Item: Crude Bracer Mold + elseif(e.message:findi("dismal knight breastplate")) then + e.self:Say("To assemble a Dismal Knight Breastplate you will need to obtain four bricks of crude iron and smelt them in a [forge] with a Water Flask and this Crude Breastplate Mold. Once that is done combine the Crude Iron Breastplate with a Medium Quality Cat Pelt, a Giant Leaf Scarab Carapace, and two Giant Leaf Scarab Tergites in the Mail Assembly Kit."); + e.other:SummonCursorItem(19637); -- Item: Crude Breastplate Mold + elseif(e.message:findi("dismal knight gauntlets")) then + e.self:Say("To assemble Dismal Knight Gauntlets you will need to obtain two bricks of crude iron and smelt them in a [forge] with a Water Flask and this crude Gauntlet Mold. Once that is done combine the Crude Iron Gauntlets with a Ruined Cat Pelt and two Leaf Scarab Tarsi in the Mail Assembly Kit."); + e.other:SummonCursorItem(19633); -- Item: Crude Gauntlets Mold + elseif(e.message:findi("dismal knight greaves")) then + e.self:Say("To assemble Dismal Knight Greaves you will need to obtain two bricks of crude iron and smelt them in a [forge] with a Water Flask and this Crude Greaves Mold. Once that is done combine the Crude Iron Greaves with two Low Quality Cat Pelts and two Large Leaf Scarab Sternites in the Mail Assembly Kit."); + e.other:SummonCursorItem(19636); -- Item: Crude Greaves Mold + elseif(e.message:findi("dismal knight helm")) then + e.self:Say("To assemble a Dismal Knight Helm you will need to obtain two bricks of crude iron and smelt them in a [forge] with a Water Flask and this Crude Helm Mold. Once that is done combine the Crude Iron Helm with a Ruined Cat Pelt and two Large Leaf Scarab Eyes in the Mail Assembly Kit."); + e.other:SummonCursorItem(19631); -- Item: Crude Helm Mold + elseif(e.message:findi("dismal knight vambraces")) then + e.self:Say("To assemble Dismal Knight Vambraces you will need to obtain two bricks of crude iron and smelt them in a [forge] with a Water Flask and this Crude Vambrace Mold. Once that is done combine the Crude Iron Vambraces with a Low Quality Cat Pelt and two Large Leaf Scarab Patella in the Mail Assembly Kit."); + e.other:SummonCursorItem(19635); -- Item: Crude Vambrace Mold + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19928,item2 = 19852})) then + e.self:Emote("fashions a grip out of the giant rattlesnake skin and polishes the blade of the sword with a strange glowing substance. 'May your new sword see the deaths of many enemies!'"); + e.other:QuestReward(e.self,0,0,0,0,19940,100); -- Item: Dismal Rage Long Sword + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19845})) then + e.self:Say("Sorry buddy I didn't realize you were one of us. I've got no problem helping out an associate of Gunex. You'll need this Mail Assembly Kit to construct your new armor. The materials required depend on the section of armor you're planning on crafting. Do you plan on crafting a [dismal knight helm], a [dismal knight bracer], [dismal knight gauntlets], [dismal knight boots], [dismal knight vambraces], [dismal knight greaves], or a [dismal knight breastplate]."); + e.other:QuestReward(e.self,0,0,0,0,17124); -- Item: Mail Assembly Kit + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freporte/Raltur_Caliskon.lua b/freporte/Raltur_Caliskon.lua new file mode 100644 index 0000000..b5e92cb --- /dev/null +++ b/freporte/Raltur_Caliskon.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("May the rage of Innoruuk flow through your veins. Welcome " .. e.other:GetCleanName() .. ". Soon the Dismal Rage shall run rampant in the streets of Freeport. Our numbers grow. Like you, so many feel the rage within. It is now time to [ serve Innoruuk ]."); + elseif(e.message:findi("serve innoruuk")) then + e.self:Say("Wise choice. We of the Dismal Rage have learned of the value of incompetence. As the Teir'Dal use the ogres and the trolls so to shall the Dismal Rage have A pawn in this game. Ours is the Freeport Militia. They trust us. How unfortunate for them. I want you to go speak with Sir Lucan D'lere, the so called ruler of this city and leader of this mob of ruffians called the Freeport Militia. Tell him you are [ from the Shrine of Innoruuk ]. Do as he asks. Little favors lead to large debts. And if you should find something of importance, bring it to me not that inept warrior."); + elseif(e.message:findi("mission")) then + e.self:Say("Antonius Bayle has created a strong alliance with certain groups from four other cities. He and his allies are clearly up to no good, or rather, all good. We require more information. Visiting our fair city is a woman called Lady Shae. We have learned that she is heading to Qeynos soon, returning something called the [Bayle List]. Find her before she leaves. Bring me her Bayle List III."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18822})) then + e.self:Say("So the great Antonius Bayle wishes to ally himself with the mighty Knights of Truth. How pathetic. It would appear that the alliance has spawned infiltrators of sorts. Of course, we of the Dismal Rage are already aware of this, but I am sure Sir Lucan D'Lere knows nothing as usual. I have a [mission] for any evil shadowknight of Innoruuk."); + e.other:Faction(e.self,271,20); -- Faction: Dismal Rage + e.other:Faction(e.self,281,-3); -- Faction: Knights of Truth + e.other:Faction(e.self,296,4); -- Faction: Opal Dark Briar + e.other:QuestReward(e.self,0,0,0,0,0,5000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18810})) then + e.self:Say("You have done well. This is the Bayle List. I have heard of it. It is useless without the remaining two parts. Take the list. You must collect the other two pieces of the list and take them to a scribe by the name of Rathmana Allin. He can be found in the deserts of South Ro. First, you must go ask Venox Tarkog what the Bayle List is. He is here in the shrine and will fill you in on your mission."); + e.other:QuestReward(e.self,0,0,0,0,18810,0); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:freporte ID:10100 -- Raltur_Caliskon diff --git a/freporte/Rigg_Nostra.lua b/freporte/Rigg_Nostra.lua new file mode 100644 index 0000000..12b3a51 --- /dev/null +++ b/freporte/Rigg_Nostra.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("crate of pick head")) then + e.self:Say("I've heard that a dwarf who calls himself Grendig and has not registered with the Coalition of Tradefolk has recently arrived in Freeport and is staying at the Freeport Inn just inside the South Gate. He has brought to Freeport pick heads from his home city of Kaladim. Find Grendig and 'convince' him to 'donate' a crate of pick heads to the Coalition of Tradefolk as tax for peddling his wares in our city."); + elseif(e.message:findi("bundle of hardwood shaft")) then + e.self:Say("There is a halfling named Jimble Woodentoe that occasionally visits Freeport to peddle his woodcrafts. He can be found traveling through the Commonlands from the direction of Rivervale. Find Jimble and 'convince' him to donate a bundle of hardwood shafts to the Coalition of Tradefolk as tax for peddling his wares in our city."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19917})) then + e.self:Say("Excellent I've been waiting for the Coalition to send me some assistance. I have an associate waiting for some supplies that have not yet been collected. I need you to acquire a [crate of pick heads] and a [bundle of hardwood shafts] and bring them to me so that I may prepare them for delivery to my associate."); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19931,item2 = 19929})) then + e.self:Say("Thanks " .. e.other:GetCleanName() .. ". Now hand this crate to the fellow behind you."); + e.other:QuestReward(e.self,0,0,0,0,19930); -- Item: Large Crate of Mining Supplies + eq.spawn2(10000,0,0,-144,-456,-52,0); -- NPC: Orc_Centurion + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freporte/Rolfic_Gohar.lua b/freporte/Rolfic_Gohar.lua new file mode 100644 index 0000000..bbe1f9b --- /dev/null +++ b/freporte/Rolfic_Gohar.lua @@ -0,0 +1,38 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am but a poor peddler of trinkets living amongst the rats and beggars of these slums. Perhaps you will purchase some of my wares and help a struggling merchant?"); + elseif(e.message:findi("forge")) then + e.self:Say("You can find forges all over freeport."); + elseif(e.message:findi("dismal warrior breastplate")) then + e.self:Say("'To assemble a Dismal Warrior Breastplate you will need to obtain four bricks of crude iron and smelt them in a [forge] with a Water Flask and this Crude Breastplate Mold. Once that is done combine the Crude Iron Breastplate with a Coyote Pelt, a Dune Tarantula Thorax, and a Dune Tarantula Abdomen in the Mail Assembly Kit."); + e.other:SummonCursorItem(19637); -- Item: Crude Breastplate Mold + elseif(e.message:findi("dismal warrior helm")) then + e.self:Say("To assemble a Dismal Warrior Helm you will need to obtain two bricks of crude iron and smelt them in a [forge] with a Water Flask and this Crude Helm Mold. Once that is done combine the Crude Iron Helm with a Ruined Coyote Pelt and two Desert Tarantula Eyes in the Mail Assembly Kit."); + e.other:SummonCursorItem(19631); -- Item: Crude Helm Mold + elseif(e.message:findi("dismal warrior bracer")) then + e.self:Say("To assemble a Dismal Warrior Mail Bracer you will need to obtain a brick of crude iron and smelt it in a [forge] with a Water Flask and this Crude Bracer Mold. Once that is done, combine the Crude Iron Bracer with a Ruined Coyote Pelt and a Dune Spiderling Tibia in the Mail Assembly Kit."); + e.other:SummonCursorItem(19632); -- Item: Crude Bracer Mold + elseif(e.message:findi("dismal warrior gauntlet")) then + e.self:Say("To assemble Dismal Warrior Gauntlets you will need to obtain two bricks of crude iron and smelt them in a [forge] with a Water Flask and this crude Gauntlet Mold. Once that is done combine the Crude Iron Gauntlets with a Ruined Coyote Pelt and two Dune Spiderling Tarsi in the Mail Assembly Kit."); + e.other:SummonCursorItem(19633); -- Item: Crude Gauntlets Mold + elseif(e.message:findi("dismal warrior boot")) then + e.self:Say("To assemble Dismal Warrior Mail Boots you will need to obtain two bricks of crude iron and smelt them in a [forge] with a Water Flask and this crude Boot Mold. Once that is done combine the Crude Iron Boots with two Ruined Coyote Pelts, and two Dune Spiderling Hairs in the Mail Assembly Kit."); + e.other:SummonCursorItem(19634); -- Item: Crude Boot Mold + elseif(e.message:findi("dismal warrior vambrace")) then + e.self:Say("To assemble Dismal Warrior Vambraces you will need to obtain two bricks of crude iron and smelt them in a [forge] with a Water Flask and this Crude Vambrace Mold. Once that is done combine the Crude Iron Vambraces with a Low Quality Coyote Pelt and two Desert Tarantula Patella in the Mail Assembly Kit."); + e.other:SummonCursorItem(19635); -- Item: Crude Vambrace Mold + elseif(e.message:findi("dismal warrior greave")) then + e.self:Say("To assemble Dismal Warrior Greaves you will need to obtain two bricks of crude iron and smelt them in a [forge] with a Water Flask and this Crude Greaves Mold. Once that is done combine the Crude Iron Greaves with two Low Quality Coyote Pelts and two Desert Tarantula Femurs in the Mail Assembly Kit."); + e.other:SummonCursorItem(19636); -- Item: Crude Greaves Mold + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19843})) then + e.self:Say("I see now we have similar interests. I will help you get outfitted in an affordable suit of armor to help you in your endeavors. You will need this Mail Assembly Kit to aid you in the construction of the armor. The materials required depend on the armor section you desire to craft. Do you plan to construct a [dismal warrior helm], a [dismal warrior bracer], [dismal warrior gauntlets], [dismal warrior boots], [dismal warrior vambraces], [dismal warrior greaves], or a [dismal warrior breastplate]."); + e.other:QuestReward(e.self,0,0,0,0,17124); -- Item: Mail Assembly Kit + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freporte/Saxarivza_Zexus.lua b/freporte/Saxarivza_Zexus.lua new file mode 100644 index 0000000..5b4072e --- /dev/null +++ b/freporte/Saxarivza_Zexus.lua @@ -0,0 +1,12 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Salutations, " .. e.other:GetCleanName() .. "! I am here as a favor to my brother, High Priest Perrir. We seek loyal followers of Innoruuk to earn their place among the hierarchy of the Spires. Are you [devoted to Innoruuk]?"); + elseif(e.message:findi("devoted to innoruuk")) then + if(e.other:GetFactionValue(e.self) >= -250) then + e.self:Say("My brother requests your presence in Neriak at the Spires of Innoruuk. Take this note with you, " .. e.other:GetCleanName() .. ". It will inform Perrir of who sent you."); + e.other:SummonCursorItem(18148) -- Note of Recommendation + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look, a talking lump of refuse. How novel!")); + end + end +end diff --git a/freporte/Sir_Artanis.lua b/freporte/Sir_Artanis.lua new file mode 100644 index 0000000..0728d94 --- /dev/null +++ b/freporte/Sir_Artanis.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("befallen")) then + e.self:Say("You did well to ride swiftly with this news. I must take this directly to Valeron Dushire. If you learn more about this plot that would unleash this monster upon Norrath or wish to someday soon aid the Knights of Truth in putting down this evil, then return to speak to me again at a later time."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18474})) then + e.self:Say("By Marr, what is this? .. Burning Dead .. .. Marnek! By my blade this must be stopped! Where did you find this?"); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31492})) then + e.self:Say("It was a fine and valiant steed to serve its master beyond the grave, but it looks to be near its end. But I have a fine eye for horses, and I dare say it will serve you one more time."); + e.other:QuestReward(e.self,0,0,0,0,31496); -- Item: Bridle of Sir Ariam + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freporte/Sir_Edwin_Motte.lua b/freporte/Sir_Edwin_Motte.lua new file mode 100644 index 0000000..2014962 --- /dev/null +++ b/freporte/Sir_Edwin_Motte.lua @@ -0,0 +1,46 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "! How lucky you are to encounter the greatness of the legendary Sir Edwin Motte, slayer of cyclopes, battler of beasts, crusher of creatures, masher of monsters, eradicator of evil and champion of the third annual dart championship of Freeport."); + end +end + +function event_signal(e) + if ( e.self:IsEngaged() ) then + return; + end + + local turn, bard; + + if(e.signal == 1) then + e.self:Say("What is it with all this political revelry. Let's here more jests!"); + turn = true; + elseif(e.signal == 2) then + e.self:Say("Haha!! I shall laugh because it is true. Forgive me, ogre friends."); + turn = true; + elseif(e.signal == 3) then + e.self:Say("I say, that Sir Lucan is no man of nobility. So they say..."); + turn = true; + elseif(e.signal == 4) then + e.self:Say("I say!! I have fought side by side with the great Antonius bayle. He is a man of supreme virtue."); + turn = true; + elseif(e.signal == 5) then + e.self:Say("Bloody right, you are! Those fellows can't keep down any grog."); + turn = true; + elseif(e.signal == 7) then + e.self:Say("Bloody right!! Sir Lucan is no knight. He is nothing more than a mere warrior."); + turn = true; + end + + if ( turn ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10141); -- NPC: Trolon_Lightleer + if ( not bard.valid ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10158); -- NPC: Branis_Noolright + end + if ( not bard.valid ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10165); -- NPC: Palana_Willin + end + if ( bard.valid ) then + e.self:FaceTarget(bard); + end + end +end \ No newline at end of file diff --git a/freporte/SirensBane.lua b/freporte/SirensBane.lua new file mode 100644 index 0000000..fb0cd29 --- /dev/null +++ b/freporte/SirensBane.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Boat spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + if(e.wp == 9) then + eq.debug("Boat to OOT has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.spawn_condition("freporte",3,0); + eq.spawn_condition("freporte",4,0); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(69,-10607,-2995,20,0); + end, + function(ent) + if(ent:GetBoatID() == 771) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/freporte/Soulbinder_Grunson.lua b/freporte/Soulbinder_Grunson.lua new file mode 100644 index 0000000..af793e0 --- /dev/null +++ b/freporte/Soulbinder_Grunson.lua @@ -0,0 +1,15 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID(),0,1); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freporte/Stormbreaker.lua b/freporte/Stormbreaker.lua new file mode 100644 index 0000000..bc3ae29 --- /dev/null +++ b/freporte/Stormbreaker.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Boat spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + if(e.wp == 9) then + eq.debug("Boat to OOT has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.spawn_condition("freporte",3,0); + eq.spawn_condition("freporte",4,0); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(69,-10607,-2995,20,0); + end, + function(ent) + if(ent:GetBoatID() == 770) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/freporte/Talym_Shoontar.lua b/freporte/Talym_Shoontar.lua new file mode 100644 index 0000000..ee7db92 --- /dev/null +++ b/freporte/Talym_Shoontar.lua @@ -0,0 +1,76 @@ +local factionId = 0; + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("How are you, friend? It is a good day to be alive in Antonica! If you should happen to visit Surefall Glade, say hello to Hager Sureshot for me."); + elseif(e.message:findi("hager")) then + e.self:Say("Hager Sureshot is that know-nothing ranger in charge of the Protectors of the Pine. He thinks he can protect all of Surefall Glade. He is wrong."); + elseif(e.message:findi("poach")) then + e.self:Say("Excuse me! I am a HUNTER. A hunter of profit, not glory. Have you come to [collect the bounty] on my head? For your sake, the answer had better be [no]."); + elseif(e.message:findi("collect")) then + e.self:Say("Then do your best, whelp! I need the practice. I hope for your sake that my gypsy friends are not nearby."); + elseif(e.message:findi("no")) then + e.self:Say("Too bad. I heard there is a new market for skins of your kind."); + end +end + +function event_combat(e) + if ( not e.joined and factionId ~= 0 ) then + e.self:CastToNPC():SetNPCFactionID(factionId); -- restore faction if Tlin doesn't kill + end +end + +function event_signal(e) + if ( e.self:IsEngaged() ) then + return; + end + + local turn, bard; + + if(e.signal == 1) then + e.self:Say("What kind of girly song was that? It stank as bas as a troll's breath."); + turn = true; + elseif(e.signal == 2) then + e.self:Say("Ha!! That's right. Them ogres are as thick as they come."); + turn = true; + elseif(e.signal == 3) then + e.self:Say("I ain't clappin' for no man."); + turn = true; + elseif(e.signal == 4) then + e.self:Say("Antonius Bayle is a blithering fool."); + turn = true; + eq.signal(10186, 10); -- NPC: Tlin_Bowfright + elseif(e.signal == 5) then + e.self:Say("My grandma can outdrink any Erudite."); + turn = true; + elseif(e.signal == 6) then + e.self:Say("Get off the stage, lass! Can't ye see he left because ye can't carry a tune?!"); + turn = true; + elseif(e.signal == 7) then + e.self:Say("Yeah!! Sir Lucan is nothing more than a glorymonger."); + turn = true; + elseif(e.signal == 10) then + factionId = e.self:CastToNPC():GetNPCFactionID(); + e.self:CastToNPC():SetNPCFactionID(0); -- remove faction to prevent NPCs from assisting + e.self:Say("All right, Tlin! I am going to smash your face in!"); + e.self:AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(10186),100); -- NPC: Tlin_Bowfright + end + + if ( turn ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10141); -- NPC: Trolon_Lightleer + if ( not bard.valid ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10158); -- NPC: Branis_Noolright + end + if ( not bard.valid ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10165); -- NPC: Palana_Willin + end + if ( bard.valid ) then + e.self:FaceTarget(bard); + end + end +end + +-- END of FILE Zone:freporte ID:10182 -- Talym_Shoontar + + + diff --git a/freporte/Tlin_Bowfright.lua b/freporte/Tlin_Bowfright.lua new file mode 100644 index 0000000..11ea093 --- /dev/null +++ b/freporte/Tlin_Bowfright.lua @@ -0,0 +1,46 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Nice to meet you! Sit down! Have some food and grog. Just learn not to annoy anyone in here. This place attracts a pretty rough crowd at times. It is not uncommon to have a brawl break out"); + end +end + +function event_signal(e) + if ( e.self:IsEngaged() ) then + return; + end + + local turn, bard; + + if ( e.signal == 1 ) then + e.self:Say("Let's all live together in peace. That is, everyone except the ogres, trolls and dark elves!"); + turn = true; + elseif ( e.signal == 2 ) then + e.self:Say("Yes. Those ogres sure are dumb and smelly."); + turn = true; + elseif ( e.signal == 4 ) then + e.self:Say("I wish the Qeynos Guards would come and conquer Freeport. The Freeport Militia are nothing more than mercenaries and criminals."); + turn = true; + elseif ( e.signal == 6 ) then + e.self:Say("I shall take care of you, milady."); + turn = true; + elseif ( e.signal == 7 ) then + e.self:Say("Hey!! Keep it down! The Freeport Militia might hear that song and arrest us all."); + turn = true; + elseif ( e.signal == 10 ) then + e.self:Say("The only blithering fool in here is you, Talym Shoontar."); + eq.signal(10182, 10); -- Talym_Shoontar + end + + if ( turn ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10141); -- NPC: Trolon_Lightleer + if ( not bard.valid ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10158); -- NPC: Branis_Noolright + end + if ( not bard.valid ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10165); -- NPC: Palana_Willin + end + if ( bard.valid ) then + e.self:FaceTarget(bard); + end + end +end diff --git a/freporte/Tohsan_Hallard.lua b/freporte/Tohsan_Hallard.lua new file mode 100644 index 0000000..b96fbca --- /dev/null +++ b/freporte/Tohsan_Hallard.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings and welcome to Hallard's! You will find many aged weapons begging you to shine them up and make them great once more. We will gladly pay you top dollar for any rusty weapons you may have found littering the Commonlands. I have a [special offer] for those who have obtained orc pawn picks."); + elseif(e.message:findi("special offer")) then + e.self:Say("I will pay some silver pieces for every four orc pawn picks returned to me. I shall also throw in a ticket to the Highpass Hold lottery. It could be a winner!!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "There will be no silver nor lottery ticket until I receive four orc pawn picks."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13885,item2 = 13885,item3 = 13885,item4 = 13885},1,text)) then -- Orc Pawn Pick + e.self:Say("As I promised, some silver and of course, the Highpass lottery ticket. Oh yes, I forgot to mention the ticket was for last season's lottery. Ha Ha!! You now own a losing Highpass lottery ticket, lucky you! Ha!!"); + e.other:Faction(e.self,229,4); -- Coalition of Tradefolk + e.other:Faction(e.self,281,4); -- Knights of Truth + e.other:Faction(e.self,291,3); -- Merchants of Qeynos + e.other:Faction(e.self,336,4); -- Coalition of Tradesfolk Underground + e.other:QuestReward(e.self,0,math.random(10),0,0,eq.ChooseRandom(12264, 12265, 12261, 12262, 12263,12266),200); -- Item(s): Lottery Ticket # 14350 (12264), Lottery Ticket # 16568 (12266) + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freporte -- Tohsan_Hallard.pl + + diff --git a/freporte/Tovan_Tenlah.lua b/freporte/Tovan_Tenlah.lua new file mode 100644 index 0000000..f50e3c4 --- /dev/null +++ b/freporte/Tovan_Tenlah.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I suppose you're one of Nestrals new employees, eh? Well if that's the case I can help get you outfitted with some [gear] necessary for people in this [line of work]."); + elseif(e.message:findi("gear")) then + e.self:Say("The first thing you need is a suit of sturdy traders clothing. Take this note to Verona Rankin and she'll help you with a suit tailored to your needs. Once you have been outfitted in your traders clothing return to me and I will inform you of your [next task]."); + e.other:SummonCursorItem(19846); -- Note to Verona Rankin + elseif(e.message:findi("next task")) then + e.self:Say("Ready to get to work are you? Listen carefully. Outside Freeports South gate you will find one of our employees, Rigg Nostra, who is acting as an intermediary between the Coalition of Tradefolk and some recently acquired business associates. Give him this card so he knows I've sent you and he will give you further instructions. Do not mention any of our names in public. The Freeport Militia would likely impose high taxes on the Coalition if they found out about the goods being exchanged to us by our new associates."); + e.other:SummonCursorItem(19917); -- Bent Playing Card + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19918})) then + e.self:Say("Sharpen this dagger and take it with this gem and a rattlesnake skin to Verona Rankin."); + e.other:Faction(e.self,336,5); -- Coalition of Trade Folk Underground + e.other:Faction(e.self,229,5); -- Coalition of Trade Folk + e.other:Faction(e.self,329,1); -- Carson McCabe + e.other:Faction(e.self,230,1); -- Corrupt Qeynos Guards + e.other:Faction(e.self,330,1); -- Freeport Militia + e.other:QuestReward(e.self,{items = {19919,19920},exp = 100}); -- Item: Dull Coalition Dirk, Faceted Blue Gem + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:freporte ID:10154 -- Tovan_Tenlah diff --git a/freporte/Trolon_Lightleer.lua b/freporte/Trolon_Lightleer.lua new file mode 100644 index 0000000..0801994 --- /dev/null +++ b/freporte/Trolon_Lightleer.lua @@ -0,0 +1,67 @@ +local signal = 0; +local lastSong = 0; + +function event_spawn(e) + eq.set_timer("ready", 300000); +end + +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Greetings!! I am Trolon Lightleer. Harmonizer of the soul. Please sit and order an ale. I shall be playing soon."); + end +end + +function event_timer(e) + if ( e.timer == "ready" ) then + e.self:Say("What a cheerful crowd."); + eq.stop_timer("ready"); + + elseif ( e.timer == "bar" ) then + eq.stop_timer("bar"); + eq.set_timer("table", 1000); + eq.signal(10186, signal); -- NPC: Tlin_Bowfright + eq.signal(10157, signal); -- NPC: Tykar_Renlin + eq.signal(10163, signal); -- NPC: Plnorrick_Spinecracker + eq.signal(10160, signal); -- NPC: Biggle_Limbokker + + elseif ( e.timer == "table" ) then + eq.stop_timer("table"); + eq.signal(10199, signal); -- NPC: Sir_Edwin_Motte + eq.signal(10182, signal); -- NPC: Talym_Shoontar + eq.signal(10012, signal); -- NPC: Imxil_Tbrow + eq.signal(10195, signal); -- NPC: Groflah_Steadirt + end +end + +function event_signal(e) + song = math.random(1, 6); + while ( song == lastSong ) do + song = math.random(1, 6); + end + lastSong = song; + + if ( song == 1 ) then + e.self:Say("Look around you. Stand up tall!! Feel for the poor and never have a cold heart. Because we are all in this. We are not like the rest. We're all here together and know we are the best. So Norrath, can't you see the error in your ways? You're living separated each and every day. Don't be thinking that we don't want you, because, Norrath, we do. Freeport is the only place where your friend can be from afar. I hope you enjoyed that one."); + eq.set_timer("bar", 1000); + signal = 1; + elseif ( song == 2 ) then + e.self:Say("Within my head and inside my brain, I hold the key. It is not much more than the size of a pea. With it, I have the power to set free Oggok city. Open up its doors to all that is pretty. Instead, here I am in a pile of my own dug, smelling quite dingy. Drinking ogre swill with which I am stingy. I may have the key, but the point is quite moot. For you see, I am nothing more than a dumb, smelly, ogre brute. Thank you. I hope you enjoyed that one."); + eq.set_timer("bar", 1000); + signal = 2; + elseif ( song == 3 ) then + e.self:Say("Yo, ho, in the merry old harbor of Sir D'lere. There lived a small man who lived in fear. Fear of the pawns and fear of the fish, but most of all fear of the bottle. One day as he sailed overseas, he encountered a spat. A lovely lady being harrassed by a buccaneer, tall and fat. He hid all his fear and yelled 'Let her go!' The buccaneer said that he would do so. 'I will do so if you can drink from this bottle, oblong and of weight, for twenty whole seconds. Will you test your fate?' So as the ship did thread the needle around a quarter to five, foolish Turgin drank, passed out and took a dive. Under went he and the evil bottle too. Now all should fear the bottle of ochre goo."); + elseif ( song == 4 ) then + e.self:Say("My city is mighty and all shall learn to cower. We are nothing less than the ultimate power. My city is pure and filled with beautiful charm. I shall conquer you to save you from harm. My city shall first send its guards to back you in times of need. Soon you shall learn to live under my laws, indeed. So bow down when you see me and give out my favorite cheer, 'All Hail Antonius Bail!' My city is Qeynos and there is nothing to fear."); + eq.set_timer("bar", 1000); + signal = 4; + elseif ( song == 5 ) then + e.self:Say("Life is dull and dreary when you know it all. To the planes of the gods, is their next call. An Erudite, an Erudite has come to drink. All the knowledge in the world, or so they think. One drink, two drinks, grab and down the ale! Then they step off their stools and their faces begin to pale. For all their love of music and their great schools of magic, up come their lunches, how very tragic. So let all sit back and be ready with hijinks, an Erudite has come to the Seafarer to down a few drinks."); + eq.set_timer("bar", 1000); + signal = 5; + elseif (song == 6 ) then + e.self:Say("Here's one for Sir Lucan... He's just a ruler. In a long line of rulers. Looking for a few more orcs to slay. They say that he fights them with one hand tied to his back. And he won't leave Freeport till you remember his name. Thank you."); + eq.set_timer("bar", 1000); + signal = 7; + end + +end \ No newline at end of file diff --git a/freporte/Tykar_Renlin.lua b/freporte/Tykar_Renlin.lua new file mode 100644 index 0000000..9c39ebd --- /dev/null +++ b/freporte/Tykar_Renlin.lua @@ -0,0 +1,77 @@ +function event_say(e) + if(e.message:findi("lucan")) then + e.self:Say("That man is no just ruler. He has jailed me and my friend Zimel for merely begging."); + elseif(e.message:findi("hail")) then + e.self:Say("Do you have any spare coppers for a thirsty soul?"); + elseif(e.message:findi("tell me of zimel")) then + e.self:Say("What?! You know my friend Zimel?! I would like to speak of him, but my mouth is so parched. Maybe a fine grog would loosen my lips. I am uncertain which flavor shall do the trick."); + end +end + +function event_trade(e) + local champagne = 0; + local morechampagne = 0; + local item_lib =require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13829,item2 = 13829,item3 = 13829,item4 = 13829}, 0)) then + morechampagne = 1; + champagne = 3; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13829,item2 = 13829,item3 = 13829}, 0)) then + champagne = 3; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13829,item2 = 13829}, 0)) then + champagne = 2; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13829}, 0)) then + champagne = 1; + end + + if(champagne > 0) then + repeat + e.self:Say("Oooh!! That is the taste. My lips are almost loose. Maybe another will do the trick."); + champagne = champagne - 1; + until champagne == 0 + end + + if(morechampagne == 1) then + e.self:Say("Ahh!! That was good. Now where were we?. Oh yes. My friend Zimel is a fellow beggar. He was locked up in the arena. They were going to let him go when the Freeport Militia came for him. Ha!! He is crazy as a troll now. I took this blanket from his cell before I was released. I no longer need it and my guilt has reached its peak. I do not want crazy old Zimel to freeze. Perhaps you can return it to him."); + e.other:QuestReward(e.self,0,0,0,0,12196,10); -- Bunker Cell #1 (Zimel's Blanket) + morechampagne = 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + if ( e.self:IsEngaged() ) then + return; + end + + local turn, bard; + + if ( e.signal == 1 ) then + e.self:Say("Yes. Let us all live together in peace and tranquility. That is the only way."); + turn = true; + elseif ( e.signal == 2 ) then + e.self:Say("Ogres smell like.. .. like me!!"); + turn = true; + elseif ( e.signal == 5 ) then + e.self:Say("What a waste of grog and lunch."); + turn = true; + elseif ( e.signal == 7 ) then + e.self:Say("That man is no just ruler. He has jailed me and my friend Zimel for merely begging."); + turn = true; + end + + if ( turn ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10141); -- NPC: Trolon_Lightleer + if ( not bard.valid ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10158); -- NPC: Branis_Noolright + end + if ( not bard.valid ) then + bard = eq.get_entity_list():GetMobByNpcTypeID(10165); -- NPC: Palana_Willin + end + if ( bard.valid ) then + e.self:FaceTarget(bard); + end + end +end + +-- END if FILE Zone:freporte -- Tykar_Renlin \ No newline at end of file diff --git a/freporte/Venox_Tarkog.lua b/freporte/Venox_Tarkog.lua new file mode 100644 index 0000000..a0963c6 --- /dev/null +++ b/freporte/Venox_Tarkog.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the shrine of the Dismal Rage. May [Innoruuk] guide your every move in life. Here, we will teach you to release your rage unto the world. My priests are at your disposal."); + elseif(e.message:findi("innoruuk")) then + e.self:Say("You do not even know the name of the Prince of Hate! That is a crime in here. Our god Innoruuk speaks with Pietro Zarn himself. It was Innoruuk who told him to create the Dismal Rage. You should speak with our family. Perhaps someone will help you better understand our beliefs."); + elseif(e.message:findi("bayle list")) then + e.self:Say("Oh. You must be the shadowknight who is to return the list to [Pietro Zarn]. The Bayle List is actually three scrolls with coded words. Alone they are nonsense. Together they can be decoded and tell something of value. Antonius Bayle had them created and gave them to three of his most trusted friends. Of these, I know Lady Shae, his old love. Then there is Captain Linarius Grafe, captain of the outer Qeynos Guards. Lastly, there is Frenway Marthank, Antonius Bayle's oldest friend. He is a resident of the Jaggedpine. When you recover the scrolls, you must take them to Rathmana Allin. He is a master scribe. He will decode the scrolls for us. He can be found in the deserts of South Ro. Now you'd best be off, before some other finds the scrolls. You must get there first and return the decoded list to Pietro Zarn."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18744})) then -- A tattered note + e.self:Say("Here we find a new follower.. Here we find a tunic of the Dismal Rage. Put the two together and let the hate grow. Let it be known from now on that your soul belongs to the Prince of Hate, Innoruuk. It is his power which flows within you. Destroy all those who oppose us. Please introduce your hate to the others in this shrine."); + e.other:Faction(e.self,271,100,0); -- Dismal Rage + e.other:Faction(e.self,281,-15,0); -- Knights of Truth + e.other:Faction(e.self,296,20,0); -- Opal Dark Briar + e.other:QuestReward(e.self,0,0,0,0,13561,20); -- Faded Crimson Tunic + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/freporte/Verona_Rankin.lua b/freporte/Verona_Rankin.lua new file mode 100644 index 0000000..714930f --- /dev/null +++ b/freporte/Verona_Rankin.lua @@ -0,0 +1,55 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("If you're a new employee of the Coalition of Tradefolk I suggest you speak with Tovan Tenlah. Now if you will excuse me I have much work to do."); + elseif(e.message:findi("boot")) then + e.self:Say("To craft Coalition Trader Boots you require two [silk thread], two ruined cat pelts, two desert spiderling hairs, and a rattlesnake skin. Once you have the necessary components combine them in your Curing Kit with this Tattered Boot Pattern."); + -- Tattered Boot Pattern ID-19561 + e.other:SummonCursorItem(19561); -- Item: Tattered Boot Pattern + elseif(e.message:findi("bracer")) then + e.self:Say("To craft an Coalition Trader Bracer you require a [silk thread], a ruined cat pelt, and a desert spiderling hairs. Once you have the necessary components combine them in your Curing Kit with this Tattered Wristband Pattern."); + -- Tattered Wristband Pattern ID-19558 + e.other:SummonCursorItem(19558); -- Item: Tattered Wristband Pattern + elseif(e.message:findi("cap")) then + e.self:Say("To craft a Coalition Trader Cap you require two [silk thread], a ruined cat pelt, a dune spiderling hairs, and a rattlesnake skin. Once you have the necessary components combine them in your Curing Kit with this Tattered Coif Pattern."); + -- Tattered Cap Pattern ID-19555 + e.other:SummonCursorItem(19555); -- Item: Tattered Cap Pattern + elseif(e.message:findi("glove")) then + e.self:Say("To craft Coalition Trader Gloves you require two [silk thread], a ruined cat pelt, two desert spiderling hairs, and a rattlesnake skin. Once you have the necessary components combine them in your Curing Kit with this Tattered Glove Pattern."); + -- Tattered Glove Pattern ID-19559 + e.other:SummonCursorItem(19559); -- Item: Tattered Glove Pattern + elseif(e.message:findi("legging")) then + e.self:Say("To craft Coalition Trader Leggings you require three [silk thread], a low quality cat pelt, two dune spiderling hairs, and a large rattlesnake skin. Once you have the necessary components combine them in your Curing Kit with this Tattered Pant Pattern."); + -- Tattered Pant Pattern ID-19560 + e.other:SummonCursorItem(19560); -- Item: Tattered Pant Pattern + elseif(e.message:findi("sleeve")) then + e.self:Say("To craft Coalition Trader Sleeves you require two [silk thread], a low quality cat pelt, two dune spiderling hairs, and a large rattlesnake skin. Once you have the necessary components combine them in your Curing Kit with this Tattered Sleeves Pattern."); + -- Tattered Sleeve Pattern ID-19557 + e.other:SummonCursorItem(19557); -- Item: Tattered Sleeve Pattern + elseif(e.message:findi("tunic")) then + e.self:Say("To craft a Coalition Trader Tunic you require four [silk thread], a medium quality cat pelt, a desert tarantula hairs, and a giant rattlesnake skin. Once you have the necessary components combine them in your Curing Kit with this Tattered Tunic Pattern."); + -- Tattered Tunic Pattern ID-19556 + e.other:SummonCursorItem(19556); -- Item: Tattered Tunic Pattern + elseif(e.message:findi("silk thread")) then + e.self:Say("I'm sure you could find a tailor in town to make you some silk thread or you can make your own with 2 Spiderling Silk."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19846 })) then -- Note to Verona Rankin + e.self:Say("Ah, Tovan sent you for a suit of traders clothing. I can instruct you on how to prepare your suit of clothing but you will have to acquire the required materials yourself. Use this Curing Kit to construct the clothing once you have done so. Do you wish to prepare Coalition Trader [Gloves], Coalition Trader [Boots], a Coalition Trader [Bracer], a Coalition Trader [Cap], Coalition Trader [Leggings], Coalition Trader [Sleeves], or a Coalition Trader [Tunic]?"); + e.other:QuestReward(e.self,0,0,0,0,17125); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19919,item2 = 19925,item3 = 19850})) then + e.self:Say("You have proven yourself worthy of our cause. Take this and use it to bring down non followers of Innoruuk."); + e.other:Faction(e.self,336,5); -- Coalition of Trade Folk Underground + e.other:Faction(e.self,229,5); -- Coalition of Trade Folk + e.other:Faction(e.self,329,1); -- Carson McCabe + e.other:Faction(e.self,230,1); -- Corrupt Qeynos Guards + e.other:Faction(e.self,330,1); -- Freeport Militia + e.other:QuestReward(e.self,0,0,0,0,19937,100); --Coalition Trader Dirk + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:freporte ID:10129 -- Verona_Rankin diff --git a/freporte/Vesagar_Nekio.lua b/freporte/Vesagar_Nekio.lua new file mode 100644 index 0000000..51a3491 --- /dev/null +++ b/freporte/Vesagar_Nekio.lua @@ -0,0 +1,20 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("hail")) then + e.self:Say("Welcome into our church of rage. I am Vesagar Nekio, servant of Innoruuk. If you should need me to [cure poison], [cure disease], or if you [require healing], just let me know."); + elseif(e.message:findi("cure poison") and fac <= 4) then + e.self:Say("Ally of the Dismal Rage, Be free of poison!!"); + e.self:CastSpell(203,e.other:GetID()); -- Spell: Cure Poison + elseif(e.message:findi("cure disease") and fac <= 4) then + e.self:Say("Ally of the Dismal Rage, Be free of disease!!"); + e.self:CastSpell(213,e.other:GetID()); -- Spell: Cure Disease + elseif(e.message:findi("require healing") and fac <= 4) then + e.self:Say("Ally of the Dismal Rage, Be healed of all your wounds!!"); + e.self:CastSpell(13,e.other:GetID()); -- Spell: Complete Healing + elseif((e.message:findi("cure poison") or e.message:findi("cure disease") or e.message:findi("require healing")) and fac > 4) then + e.self:Say("Blasphemer!! You are no ally of the Dismal Rage. Run while you still have legs!!"); + end +end + +-- END of FILE Zone:freporte -- Vesagar_Nekio diff --git a/freporte/Wenden_Blackhammer.lua b/freporte/Wenden_Blackhammer.lua new file mode 100644 index 0000000..fa26b22 --- /dev/null +++ b/freporte/Wenden_Blackhammer.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What do you need? Be specific. I'm busy right now!"); + elseif(e.message:findi("severely damaged dragon head")) then + e.self:Say("Where in the world did you drag that up?!' Denken peers closely at the severely damaged dragon head hilt. 'This metal is the same material that some mages use to make powerful golems and this other metal looks like rejesiam ore. If you can find some of those materials, I can fix this hilt up easily."); + elseif(e.message:findi("unjeweled dragon head")) then + e.self:Say("That just looks like it's missing some gems. I'm not quite sure what type of gems either but I can tell you two things about them just by the settings. They were all different. and they all were very. very expensive. If I try to put the wrong kind of gems in these slots. it may be ruined forever. I'll do whatever you want though. Just bring me the three gems you want me to try and put in the hilt."); + elseif(e.message:findi("hilt")) then + e.self:Say("What is it you need to be knowing about hilts? Do you need one made or [repaired]?"); + elseif(e.message:findi("repaired")) then + e.self:Say("Well, tell me the name of the hilt you need repaired and I'll see what I can do."); + elseif(e.message:findi("golem")) then + e.self:Say("That metal is used as the 'soul' of powerful magical constructions like golems. I do not know any place in this world where you could find a golem with a living center as powerful as this once was."); + elseif(e.message:findi("rejesiam")) then + e.self:Say("Rejesiam ore is from the lands of Kunark. The mountain giants in the frontier mountains control the only known mine of this great ore. They have built a vast fortress around the mine to protect it. The giants don't particularly like to trade with us smaller folks, but there is one old miner named Mentrax Mountainbone who has traded with me in the past. Go find him and tell him Wenden sent you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20668,item2 = 10037,item3 = 10036,item4 = 10053})) then -- Unjeweled Dragon Head Hilt - Diamond - Black Sapphire - Jacinth + e.self:Emote("begins to fiddle with the hilt, gently pressing the gems into place. It seems to take forever as you watch in silence. Wenden slowly places the last gem in place and gently bends the settings to hold the gems before he hands it back to you. 'That's a very impressive looking hilt there. The material it is made out of seems strangely familiar,' Wenden says as he turns back to his forge and his other work."); + e.other:QuestReward(e.self,0,0,0,0,20671,1000); -- Jeweled Dragon Head Hilt + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20669,item2 = 20666,item3 = 20677})) then -- Severely Damaged Dragon Head Hilt ID - Rejesiam Ore - Ball of Everliving Golem + e.self:Emote("works his magic with his forge as you have never seen done quite like this. The bending and shaping to repair the hilt is only something a master of his art could even fathom to try. Once the hilt has been cooled in a near by bucket of ice cold water, he checks it for balance and resonance before handing it to you."); + e.other:QuestReward(e.self,0,0,0,0,20672,1000); -- Finely Crafted Dragon Head Hilt + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20669})) then + e.self:Say("Where in the world did you drag that up?!' He peers closely at the severely damaged dragon head hilt. 'This metal is the same material that some mages use to make powerful golems and this other metal looks like rejesiam ore. If you can find some of those materials, I can fix this hilt up easily."); + e.other:QuestReward(e.self,0,0,0,0,20669); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freporte ID:10116 -- Wenden_Blackhammer diff --git a/freporte/Winda_Lylil.lua b/freporte/Winda_Lylil.lua new file mode 100644 index 0000000..fee694e --- /dev/null +++ b/freporte/Winda_Lylil.lua @@ -0,0 +1,21 @@ + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("Ah yes! This is exactly what I am looking for, dear. Let me put these on the shelf right away. Here is some coin for your trouble. Perhaps we can do business again sometime."); + e.other:Faction(e.self,330,2); -- freeport militia + e.other:Faction(e.self,336,1); -- coalition of tradefolk underground + e.other:Faction(e.self,281,-1); -- knights of truth + e.other:Faction(e.self,362,-1); -- priests of marr + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("Oh, wonderful fresh bread! Thank you for making the trip, that is such a long way. Here, I hope this covers your travel expenses. You have my deepest thanks."); + e.other:Faction(e.self,330,4); -- freeport militia + e.other:Faction(e.self,336,1); -- coalition of tradefolk underground + e.other:Faction(e.self,281,-1); -- knights of truth + e.other:Faction(e.self,362,-1); -- priests of marr + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/freporte/Xelha_Nevagon.lua b/freporte/Xelha_Nevagon.lua new file mode 100644 index 0000000..6c76693 --- /dev/null +++ b/freporte/Xelha_Nevagon.lua @@ -0,0 +1,59 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("A new recruit to our cause. Just what I have been waiting for! How would you like to serve the great Xelha Nevagon? I need an apprentice necromancer to [assist the great Xelha]."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("assist the great xelha")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Fantastic. Stick with me and you shall ascend in our ranks quickly. I am in need of some components for new spells. Will you collect them for me? I shall need four each of the following - fire beetle eyes. bone chips and spiderling silk. Fetch these items for me at once. Well..? Did not you hear the great Xelha? Begone!"); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "Do not flame beetles have two eyes?!! This will do me no good. I will not reward you until I have two pairs!!"; + local text2 = "Oh wonderful!! A few strands of spiderling web. Aren't you quite the hunter... Despite your obviously great skills, you managed to only kill one spiderling?! Get your cowardly hide out there and get me a few more spiderling silks!."; + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13099, item2 = 13099, item3 = 13099, item4 = 13099},1,text2)) then -- Spiderling Silk + e.self:Say("Let's see here. One.. two.. three.. and.. four. Great!! Just enough for my needs. You are serving Xelha well. I give you Xelha's Sparkler. It is not much, but neither are you. You know what I really need is a cyclops eye. That would be worthy of a great reward."); + -- HK confirmed live factions + e.other:Faction(e.self,271,10); -- Dismal Rage + e.other:Faction(e.self,281,-1); -- Knights of Truth + e.other:Faction(e.self,296,2); -- Opal Dark Briar + e.other:QuestReward(e.self,math.random(9),math.random(7),0,0,12247,250); -- Xelha's Sparkler + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10307, item2 = 10307, item3 = 10307, item4 = 10307},1,text1)) then -- Fire Beetle Eye + e.self:Say("This is a good sight. I needed these to complete the current mixture. Bah!! I shall reward you for this small, very small, deed!! I pass on to you the knowledge of summoning. The more you serve, the more your faith in Innoruuk grows."); + -- HK confirmed live factions + e.other:Faction(e.self,271,10); -- Dismal Rage + e.other:Faction(e.self,281,-1); -- Knights of Truth + e.other:Faction(e.self,296,2); -- Opal Dark Briar + e.other:QuestReward(e.self,math.random(9),math.random(7),0,0,eq.ChooseRandom(15338,15331),250); -- Spell: Cavorting Bones, Spell: Reclaim Energy + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13073, item2 = 13073, item3 = 13073, item4 = 13073})) then -- Bone Chips -- worked at appre + e.self:Say("Excellent work! You are quite the little helper. Here you go, then. A little something for your little work. Your service to me has caused Innoruuk to look upon you favorably. Your faith in our group has grown. Continue the work."); + -- HK confirmed live factions + e.other:Faction(e.self,271,5); -- Dismal Rage + e.other:Faction(e.self,281,-1); -- Knights of Truth + e.other:Faction(e.self,296,1); -- Opal Dark Briar + -- Confirmed Live Experience + e.other:QuestReward(e.self,math.random(9),0,0,0,0,250); + elseif(e.other:GetFactionValue(e.self) >= 500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13927})) then -- Cyclops Eye + e.self:Say("A cyclops eye!! You are stronger than I believed. You will rise in the ranks of the Dismal Rage quickly with acts such as this!! I am most appreciative! Here, take this. It was lying around my shelves, just gettingg all dusty. I hope you can use it. And watch yourself in your journeys, the aura of your faith in Innoruuk surrounds you like a shroud. Our enemies will surely see you for what you are."); + -- HK confirmed live factions + e.other:Faction(e.self,271,25); -- Dismal Rage + e.other:Faction(e.self,281,-3); -- Knights of Truth + e.other:Faction(e.self,296,5); -- Opal Dark Briar + e.other:QuestReward(e.self,0,0,math.random(9),math.random(7),eq.ChooseRandom(15036,15491),500); -- Spell: Gate, Spell: Leering Corpse + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freporte -- Xelha_Nevagon.pl + + diff --git a/freporte/Zenita_DRin.lua b/freporte/Zenita_DRin.lua new file mode 100644 index 0000000..c3be177 --- /dev/null +++ b/freporte/Zenita_DRin.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. I would love to chat with you, but I just realized something.. I do not waste time with whelps."); + elseif(e.message:findi("lens")) then + e.self:Say("So you seek the Spare Lens. Yes. I have it. There are only two ways you can obtain it, [fight] the great Zenita or [play a game of chance]."); + elseif(e.message:findi("play a game of chance")) then + e.self:Say("Great. It is rather simple. I have five cards and only one is King Naythox. Find it. In order to get one card all you need to do is buy me a bottle of Innoruuks Kiss of Death from the barkeep in Chops N Hops. One bottle for one card. Return the King Naythox card to me and you shall get the Spare Lens."); + elseif(e.message:findi("fight")) then + e.self:Say("Darn!! I was hoping not to hear that word, fight. Oh well."); + eq.attack(e.other:GetName()); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 22298})) then + e.self:Say("Why I will be.. You got it!! I thought I took it out of the deck. Very well. You win the Spare Lens fair and square. Here you are. Now get out of my sight."); + e.other:QuestReward(e.self,0,0,0,0,13279,500); -- Phiz's lens + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13121})) then + e.self:Say("Let see what card you pulled."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(22293,22294,22295,22296,22297,22298,22299)); -- Item(s): Castle Card (22293), Beggar Card (22294), Joker Card (22295), Wild Card (22296), Queen Card (22297), King Card (22298), Knight Card (22299) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 22299} or {item1 = 22297} or {item1 = 22296} or {item1 = 22294} or {item1 = 22293})) then + e.self:Say(string.format("Bad luck must be one of your strong suits. You should have been a beggar because you sure aren't a very good %s. You lose!",e.other:Class())); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 22295})) then + e.self:Say(string.format("I see you have drawn the card that best represents a %s such as yourself. You lose!",e.other:Race())); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freporte ID:10153 -- Zenita_DRin diff --git a/freporte/Zhem_Xecia.lua b/freporte/Zhem_Xecia.lua new file mode 100644 index 0000000..498183d --- /dev/null +++ b/freporte/Zhem_Xecia.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What is it maggot? I have only time for new clerics who have chosen to [serve the Dismal Rage]. If you are looking for meaningless banter. than I suggest you find a bar wench."); + elseif(e.message:findi("serve the dismal rage")) then + e.self:Say("The clerics of the Dismal Rage must be strong and familiar with battle. There are many beings across Norrath who oppose our deity and our dogma. Take this note to Jerra Renlock and she will aid you in obtaining a suit of armor to protect you from the physical threats of our enemies and the creatures of the wild. Once you have been properly outfitted return to me and will offer you [further instruction]."); + e.other:SummonCursorItem(19844); -- Note to Jerra Renlock + elseif(e.message:findi("further instruction")) then + e.self:Say("So you think you are ready to face the enemies of the Dismal Rage? Be careful to not be blinded by your arrogance or anger. You must focus the rage in your soul and refine it into patient and insidious hatred. A cleric of the Sentries of Passion. Ulia Yovar. has been attempting to uncover our allies among the citizens of Freeport and is believed to be in hiding in the sewer tunnels under the western quarter of Freeport. Seek this enemy of the Dismal Rage and bring me her head."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19933})) then + e.self:Say("I see your mission was a success. Take this Rough Dismal Flail and refine it in forge with a sharpening stone. It may take you several attempts if you are unfamiliar with the process. Once that is done take the Refined Dismal Flail and a Giant Rattlesnake Skin to Jerra Renlock. She will put the finishing touches on your new weapon."); + e.other:Faction(e.self,271,10); -- Dismal Rage + e.other:Faction(e.self,281,-1); -- Knight of Truth + e.other:Faction(e.self,296,2); -- Opal Dark Briar + e.other:QuestReward(e.self,0,0,0,0,19922,100); -- Item: Rough Dismal Flail + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freporte -- Zhem_Xecia diff --git a/freporte/player.lua b/freporte/player.lua new file mode 100644 index 0000000..68af415 --- /dev/null +++ b/freporte/player.lua @@ -0,0 +1,21 @@ +function event_enter_zone(e) + if(e.self:GetBoatID() == 770 or e.self:GetBoatID() == 771) then + eq.signal(10016,1); -- NPC: Olunea_Miltin + else + eq.signal(10016,2); -- NPC: Olunea_Miltin + end +end + +function event_board_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug(" At: " .. hour .. ":" .. minute .. " BoatID: " .. e.boat_id .. " was boarded. Its name is: " .. e.self:GetBoatName() .. ".", 1); +end + +function event_leave_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug(" At: " .. hour .. ":" .. minute .. " I left BoatID: " .. e.boat_id .. ".", 1); +end \ No newline at end of file diff --git a/freporte/water_lily.lua b/freporte/water_lily.lua new file mode 100644 index 0000000..0b165f1 --- /dev/null +++ b/freporte/water_lily.lua @@ -0,0 +1,4 @@ +function event_spawn(e) + eq.spawn_condition("freporte",3,0); + eq.spawn_condition("freporte",4,0); +end diff --git a/freportn/Arem_Ulosia.lua b/freportn/Arem_Ulosia.lua new file mode 100644 index 0000000..1d3f731 --- /dev/null +++ b/freportn/Arem_Ulosia.lua @@ -0,0 +1,4 @@ +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade); +end \ No newline at end of file diff --git a/freportn/Bondl_Felligan.lua b/freportn/Bondl_Felligan.lua new file mode 100644 index 0000000..22d9fb4 --- /dev/null +++ b/freportn/Bondl_Felligan.lua @@ -0,0 +1,40 @@ +function event_say(e) + local qglobals = eq.get_qglobals(e.self,e.other); + + if(e.message:findi("hail")) then -- Part of Shaman Epic 1.0 + e.self:Emote("burps loudly in your face and says, 'Bah! Leave me be, fool! You have nothin' I want and I certainly have nothin' you want."); + elseif(e.message:findi("you can buy booze") and qglobals["shamanbondl"] ~= nil) then -- Part of Shaman Epic 1.0 + e.self:Emote("suddenly becomes completely sober and says, 'Very well, shaman, please come with me.'"); + eq.unique_spawn(8117,0,0,62,66,32.1,254); -- NPC: a_greater_spirit + if(e.self:GetX() == 407 and e.self:GetY() == 235) then + eq.stop(); + eq.start(14); + elseif(e.self:GetX() == 589 and e.self:GetY() == 472) then + eq.stop(); + eq.start(15); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1665})) then -- Part of Shaman Epic 1.0 + e.self:Say("WOW, thanks! This must be worth a fortune! I could drink for a month after sellin' this to one of them fool merchants. I'm going to see how much I can get for it right now!"); + e.other:Faction(e.self,404,100,0); -- Faction: True Spirit + e.other:QuestReward(e.self,0,0,0,0,0,1000); + eq.set_global("shamanbondl","1",1,"F"); + eq.start(13); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +function event_waypoint_arrive(e) + if(e.wp == 6 and e.self:GetX() == 407 and e.self:GetY() == 235) then + e.self:Say("What!? You don't approve of me buyin' some drinks with this gem? Who the heck are you to offer me a gift and order me what to do with it? Is this some kinda conditional kindness? Well? Are you gonna let me buy some booze with this or not?"); + elseif(e.wp == 12 and e.self:GetX() == 589 and e.self:GetY() == 472) then + eq.stop(); + end +end + +-- EOF Bondl_Felligan diff --git a/freportn/Caskin_Marsheart.lua b/freportn/Caskin_Marsheart.lua new file mode 100644 index 0000000..af85969 --- /dev/null +++ b/freportn/Caskin_Marsheart.lua @@ -0,0 +1,16 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18747})) then + e.self:Say("Welcome to the guild. here's your guild tunic. Now. let's get to work."); + e.other:Faction(e.self,284,100,0); -- Faction: League of Antonican Bards + e.other:Faction(e.self,281,15,0); -- Faction: Knights of Truth + e.other:Faction(e.self,262,15,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,304,-5,0); -- Faction: Ring of Scale + e.other:Faction(e.self,285,-5,0); -- Faction: Mayong Mistmoore + e.other:QuestReward(e.self,0,0,0,0,13571,20); -- Item: Colorfully Patched Tunic* + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:freportn -- Caskin_Marsheart diff --git a/freportn/Celsar_Vestagon.lua b/freportn/Celsar_Vestagon.lua new file mode 100644 index 0000000..e4e1369 --- /dev/null +++ b/freportn/Celsar_Vestagon.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("May the Truthbringer guide your path. I am Celsar Vestagon, upholder of the faith and cleric of Mithaniel Marr. Did you come to see the [minnows of marr]?"); + elseif(e.message:findi("minnows of marr")) then + e.self:Say("The Marr Minnow is unique to the Hall of Truth. It is a beautiful fish. Unfortunately, recently, reports of piranha have been heard. Due to greater concerns, I must look for assistance from noble clerics who wish to help Marr and [eradicate the piranha]."); + elseif(e.message:findi("piranha")) then + e.self:Say("Yes. You are new to the word of Marr. Go to the waters surrounding the Hall of Truth. Fill this sack with no fewer than four dead piranha. You'd best keep well fed. I do not want you to eat the fish before you fill the sack and combine it. May Marr be with you."); + e.other:SummonCursorItem(17936); -- Item: Empty Fish Sack + elseif(e.message:findi("heal")) then + e.self:Say("If you require the binding of wounds you should speak with Palious Jartan in the temple. He will be glad to help you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13872})) then + e.self:Say("You have done well. The Marr Minnow shall have a greater chance of flourishing. Please take this as a reward."); + e.other:Faction(e.self,281,20,0); -- Faction: Knights of Truth + e.other:Faction(e.self,271,-3,0); -- Faction: Dismal Rage + e.other:Faction(e.self,330,-3,0); -- Faction: The Freeport Militia + e.other:Faction(e.self,362,4,0); -- Faction: Priests of Marr + e.other:Faction(e.self,311,2,0); -- Faction: Steel Warriors + e.other:QuestReward(e.self,23,0,0,0,0,200); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportn/Edwardian_Holyblade.lua b/freportn/Edwardian_Holyblade.lua new file mode 100644 index 0000000..a56f864 --- /dev/null +++ b/freportn/Edwardian_Holyblade.lua @@ -0,0 +1,52 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings and well met " .. e.other:GetCleanName() .. ". I am Edwardian Holyblade, noble paladin of Marr. I have devoted my life and my blade to the glory of Mithaniel Marr. I am also in charge of training all new paladins of Marr to make sure that they have the best training necessary. If you are a paladin of Marr I may have some [training] for you."); + elseif(e.message:findi("training")) then + e.self:Say("I have developed a training program for all young and upcoming Paladins of Marr. My tests will enable you to learn some basic hunting, navigating and armor crafting skills. All of these abilities will be very important on your path to enlightenment. If you are [ready to begin my tests] I will explain to you how the tests will work."); + elseif(e.message:findi("ready to begin your tests")) then + e.self:Say("Very well " .. e.other:GetCleanName() .. ". I look forward to seeing you progress through your training. Here is your special mail assembly kit. In this kit you will combine a number of components that you will collect from all areas of Freeport, North Ro and the Commonlands. The components that you will gather and combine in this kit will magically create a specific armor material piece. Each of these materials will be combined in a forge with the appropriate mold that I will provide you with. I will explain to you how the [recipes] work when you are ready."); + e.other:SummonCursorItem(17266); -- Lightbringers Assembly Kit + elseif(e.message:findi("recipe")) then + e.self:Say("Once you have crafted your material from the specific recipes I give you, you will need the appropriate mold as I mentioned before. I can present you with the recipe and mold for Truthbringers [Helm], [Bracers], [Armguards], [Boots], [Greaves], [Gauntlets] and [Breastplate]. When you are ready to being collecting the components for a material recipe simply tell me what piece you [want] to craft."); + elseif(e.message:findi("helm")) then + e.self:Say("I would strongly suggest a good helm as you can see by my patch over my eye I was not so careful in my younger days. To create your helm material you will need to combine 2 Bricks of Crude Iron Ore, 1 Young Kodiak Paw, 1 Ruined Cat Pelt and 1 Hops in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Truthbringers Helm."); + e.other:SummonCursorItem(22610); -- An Enchanted Helm Mold + elseif(e.message:findi("gauntlet")) then + e.self:Say("Sooner or later you will take a tough blow to your hands. Being struck there without the right gauntlets could mean a very serious and painful injury. To create your gauntlet material you will need to combine 3 Bricks of Crude Iron Ore, 1 Giant Spider Egg Sack, 1 Ruined Bear Pelt, and 1 Armadillo Tail in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Truthbringers Gauntlets."); + e.other:SummonCursorItem(22615); -- An Enchanted Gauntlet Mold + elseif(e.message:findi("greave")) then + e.self:Say("I can't begin to tell you how important pants are " .. e.other:GetCleanName() .. ". Any injuries to them could disable you from escaping should you need to and would surely perish due to this. To create your greaves material you will need to combine 4 Bricks of Crude Iron Ore, 1 Coyote Pelt, 1 Shadow Wolf Tibia, 1 Bottle and 1 Raw Bamboo in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Truthbringers Greaves."); + e.other:SummonCursorItem(22614); -- An Enchanted Greaves Mold + elseif(e.message:findi("armguard")) then + e.self:Say("A good set of armguards will keep your arms safe from any attacks you may face while in training. It is a common tactic to go for ones arms because with them disabled it becomes impossible to defend yourself. To create your armguards material you will need to combine 2 Bricks of Crude Iron Ore, 2 Black Bear Paws, and 1 Short Beer in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Truthbringers Armguards."); + e.other:SummonCursorItem(22613); -- An Enchanted Armguard Mold + elseif(e.message:findi("bracer")) then + e.self:Say("I have seen many paladins go without the proper wrist protection and the result was never good. To create your bracer material you will need to combine 1 Brick of Crude Iron Ore, 1 Orc Prayer Beads and 1 Red Wine in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Truthbringers Bracer."); + e.other:SummonCursorItem(22611); -- An Enchanted Bracer Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("Any paladins most important armor piece is always their breastplate. Should you succeed in crafting it your Truthbringer Breastplate will guard your upper body from any serious attacks that would otherwise be quite devasting. To create your breastplate material you will need to combine 5 Bricks of Crude Iron Ore, 1 Young Plains Cat Scalp, 1 Young Puma Skin, 1 Water Flask, 1 Deathfist Orc Skull and 1 Giant Fire Beetle Carapace in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Truthbringers Breastplate. After you have completed your breastplate come back to see me for I have one [final test] for you."); + e.other:SummonCursorItem(22616); -- An Enchanted Breastplate Mold + elseif(e.message:findi("boot")) then + e.self:Say("Boots are a wise armor choice because you never know what you will have to walk across and knowing your feet are protected is one less thing to worry about. To create your boot material you will need to combine 3 Bricks of Crude Iron Ore, 1 Lion Mane and 2 Wolf Meats in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Truthbringers Boots."); + e.other:SummonCursorItem(22612); -- An Enchanted Boots Mold + elseif(e.message:findi("final test")) then + e.self:Say("Well for quite sometime the Freeport Militia has become more and more corrupt. They have been known to do any dastardly deed you can imagine which includes harming and sometimes killing followers of Marr. There is a group of Militia Soldiers in the commonlands that have been recently harassing a good friend of mine. His name is Pardor and he is a shopkeeper in the commonlands. As if it wasn�t dangerous enough in the commonlands he know has these Militia soldiers demanding he pay them a tax that does not exist. Will you travel to the commonlands to kill one of these militia soldiers? I fear for my friend's life."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9927,item2 = 9928,item3 = 9929,item4 = 9930})) then -- Fefslans Bracer, Gnoosals Bracer, Walorinags Bracer, Eridals Bracer + e.self:Say("Your dedication to the Temple of Marr is unquestioned " .. e.other:GetCleanName() .. ".You have made your house very proud. May this blade bring you the best of luck and good fortune wherever your adventures may take you."); + e.other:Faction(e.self,281,25,0); -- Faction: Knights of Truth + e.other:Faction(e.self,271,-3,0); -- Faction: Dismal Rage + e.other:Faction(e.self,330,-3,0); -- Faction: The Freeport Militia + e.other:Faction(e.self,362,5,0); -- Faction: Priests of Marr + e.other:Faction(e.self,311,2,0); -- Faction: Steel Warriors + e.other:QuestReward(e.self,0,0,0,0,9936,1000); -- Longsword of Marr + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:freportn -- Edwardian_Holyblade diff --git a/freportn/Eestyana_Naestra.lua b/freportn/Eestyana_Naestra.lua new file mode 100644 index 0000000..4a4fb4b --- /dev/null +++ b/freportn/Eestyana_Naestra.lua @@ -0,0 +1,41 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Hall of Truth! May the will of Mithaniel Marr guide you through life. We are glad to see that you have an interest in our ways. Please speak with any of my priests or knights and they shall help you find your faith."); + elseif(e.message:findi("militia")) then + e.self:Say("The Freeport Militia is nothing more than a ragtag band of mercenaries and convicts. They act as the guards of this troubled city. Be well aware that they are not the honorable guards you may think they are. They are commanded by Sir Lucan D'Lere, the self-proclaimed ruler of Freeport. We of the Hall of Truth shall set this city free from the grip of the Militia one day. It is our duty as Knights of Truth."); + elseif(e.message:findi("heal")) then + e.self:Say("If you require the binding of wounds you should speak with Palious Jartan in the temple. He will be glad to help you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18822})) then + e.self:Say("You must be the young member of the Hall of Truth who was sent by Theron. I am glad to see you avoided any interference. Please take this as a reward for your service."); + e.other:Faction(e.self,281,10,0); -- Faction: Knights of Truth + e.other:Faction(e.self,271,-1,0); -- Faction: Dismal Rage + e.other:Faction(e.self,330,-1,0); -- Faction: The Freeport Militia + e.other:Faction(e.self,362,2,0); -- Faction: Priests of Marr + e.other:Faction(e.self,311,1,0); -- Faction: Steel Warriors + e.other:QuestReward(e.self,math.random(10),0,0,0,9985,500); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18816})) then + e.self:Say("Thank you, defender of Karana! We have heard rumors of the followers of Bertoxxulous gaining knowledge of our knight who infiltrated the ranks of the [Militia]. They would have tried to sell the information to the Militia. We will inform our knight immediately. As for you, here is a donation to your journey's expenses. Stay clear of the Freeport Militia. There is no doubt they have learned of your alliance with us."); + -- Confirmed Live Factions + e.other:Faction(e.self,281,20,0); -- Faction: Knights of Truth + e.other:Faction(e.self,271,-3,0); -- Faction: Dismal Rage + e.other:Faction(e.self,330,-3,0); -- Faction: The Freeport Militia + e.other:Faction(e.self,362,4,0); -- Faction: Priests of Marr + e.other:Faction(e.self,311,2,0); -- Faction: Steel Warriors + e.other:QuestReward(e.self,0,0,math.random(10),math.random(0,2),eq.ChooseRandom(6016,13296),1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18735})) then -- Tattered Note + e.self:Say("The Truthbringer welcomes you into his life. Here is the tunic of Marr. Wear it with pride and be sure to conduct yourself with valor."); + e.other:Faction(e.self,281,100,0); -- knight of truth + e.other:Faction(e.self,271,-15,0); -- dismal rage + e.other:Faction(e.self,330,-15,0); -- freeport militia + e.other:Faction(e.self,362,20,0); -- priest of marr + e.other:Faction(e.self,311,10,0); -- steel warrior + e.other:QuestReward(e.self,0,0,0,0,13554,20); -- Faded Purple Tunic* + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportn/Falia_Frikniller.lua b/freportn/Falia_Frikniller.lua new file mode 100644 index 0000000..1bbc531 --- /dev/null +++ b/freportn/Falia_Frikniller.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Aye, hello there, friend! How are ye on this fine day? A beautiful day to be alive, I must say! Anyway, I just got into Freeport last month. Wow, is this city big! Way bigger than humble little Rivervale. That's where I'm from. I'm working on setting up my own little business here, Falia's Foot Combs and Footwear, it'll be called. But, I don't have anything to sell yet, so check back in a couple of weeks. Safe travels to ye, friend."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18925})) then + e.self:Say("Heh, that good for nothing fool. I've been here for over a month already, and I haven't seen him yet. Bah, anyway, could you take this back to him for me? It was our grandfather's lucky necklace. He passed it down to our father, and now onto my brother. Knowing that little worm, Grenny, he'll probably trade it for a mug of ale. Oh well, thanks for delivering the letter, friend. Good day to you, and safe travels."); + e.other:QuestReward(e.self,0,0,0,0,13159,500); -- Item: Broken Heirloom Necklace + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportn/Felisity_Starbright.lua b/freportn/Felisity_Starbright.lua new file mode 100644 index 0000000..d09e706 --- /dev/null +++ b/freportn/Felisity_Starbright.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Hail. %s - If you are interested in helping the League of Antonican Bards by delivering some mail you should talk to Ton Twostring.",e.other:GetName())); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18158}) or item_lib.check_turn_in(e.self, e.trade, {item1 = 18155}) or item_lib.check_turn_in(e.self, e.trade, {item1 = 18157}) or item_lib.check_turn_in(e.self, e.trade, {item1 = 18159}) or item_lib.check_turn_in(e.self, e.trade, {item1 = 18166})) then + e.self:Say("Mail from the front - thank you very much! Please take this gold for your troubles. If you are interested in more work, just ask Ton Twostring."); + -- Confirmed Live Factions + e.other:Faction(e.self,284,5,0); -- league of antonican bards + e.other:Faction(e.self,281,1,0); -- knights of truth + e.other:Faction(e.self,262,1,0); -- guards of qeynos + e.other:Faction(e.self,304,-1,0); -- ring of scale + e.other:Faction(e.self,285,-1,0); -- mayong mistmoore + e.other:QuestReward(e.self,0,0,eq.ChooseRandom(6,7,8,9,10,11,12,13,14,15),0,0,1550); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportn/Gern_Tassel.lua b/freportn/Gern_Tassel.lua new file mode 100644 index 0000000..b846250 --- /dev/null +++ b/freportn/Gern_Tassel.lua @@ -0,0 +1,21 @@ + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("These are quality muffins! You are obviously quite a skilled baker. Here is your payment as promised. Now I can get back to business again."); + e.other:Faction(e.self,63,2); -- coalition of tradefolk + e.other:Faction(e.self,281,2); -- knights of truth + e.other:Faction(e.self,291,1); -- merchants of qeynos + e.other:Faction(e.self,336,2); -- coalition of tradefolk underground + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("Oh, wonderful fresh bread! Thank you for making the trip, that is such a long way. Here, I hope this covers your travel expenses. You have my deepest thanks."); + e.other:Faction(e.self,63,4); -- coalition of tradefolk + e.other:Faction(e.self,281,4); -- knights of truth + e.other:Faction(e.self,291,3); -- merchants of qeynos + e.other:Faction(e.self,336,4); -- coalition of tradefolk underground + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/freportn/Ghonic_Erharn.lua b/freportn/Ghonic_Erharn.lua new file mode 100644 index 0000000..e7c113c --- /dev/null +++ b/freportn/Ghonic_Erharn.lua @@ -0,0 +1,12 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("May the passion of Erollisi Marr grow strong within your soul. We here in this Temple of Marr serve those who serve teh wills of Mithaniel and Erollisi Marr. If you require healing or curing, just let us know."); + elseif(e.message:findi("healing")) then + e.self:Say("It is not my duty to see to the wounded. You must seek out Plur Etinu. He is in here somewhere."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/freportn/Groflah_Steadirt.lua b/freportn/Groflah_Steadirt.lua new file mode 100644 index 0000000..7cbbec9 --- /dev/null +++ b/freportn/Groflah_Steadirt.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, adventurer! Certainly a person who looks as hardened as yourself deserves a fine blade to match your prowess. Here at Groflah's Forge, we supply you with only the finest quality weapons."); + elseif(e.message:findi("ariska zimel")) then + e.self:Say("Zimel!! I do not know who you mean. Now go away. I am very busy. I will not talk here!!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18820})) then + e.self:Say("I am afraid I have some bad news, Steel Warrior. I had one of my workers take the raw blades out to be engraved by the Rivervale craftsmen. On his return, he was killed by the orcs in the Commonlands. The orcs now have the blades in their possession. I believe they have a camp nearby in the Commonlands. You may still be able to find all four blades within their camp and return them to Larn Brugal. Good Luck."); + e.other:QuestReward(e.self,0,0,0,0,0,500); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13919})) then + e.self:Say("I heard you were on your way back. Here then. Let us sharpen that blade for you. There you are. That should be much better in a fray now."); + e.other:Faction(e.self,63,10); -- coalition of tradefolk + e.other:Faction(e.self,281,10); -- knights of truth + e.other:Faction(e.self,291,7); -- merchants of qeynos + e.other:Faction(e.self,336,10); -- coalition of tradefolk underground + e.other:QuestReward(e.self,0,0,0,0,5418,500); -- Groflar's Stoutbite + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18818})) then + e.self:Say("Where did you find this? This was the main price list of Zimel's Blades, but it should be all burnt up. I was at Zimel's right after the fire and I did not see it hanging where it should have been. The entire inside was gutted and . . . wait . . . the sequence of the dots!! Hmmm. I cannot talk with you here. Meet me at the Seafarer's by the docks at night. Give me the note when next we meet."); + e.other:QuestReward(e.self,{itemid = 18818}); -- Item: A tattered flier + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportn/Guard_Willia.lua b/freportn/Guard_Willia.lua new file mode 100644 index 0000000..8e2fe8a --- /dev/null +++ b/freportn/Guard_Willia.lua @@ -0,0 +1,31 @@ +function event_spawn(e) + eq.set_timer("depop",1200000); -- set 20 mins before despawn +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Please, let me go. I shall leave the [Freeport Militia]. I did not know they were such a vile group."); + eq.stop_timer("depop"); + eq.set_timer("cry",30000); + elseif(e.message:findi("freeport militia")) then + e.self:Say("I thought they were nothing more than the local militia. Little did I know they were so vile. Now I am stuck [here] and I ask for your forgiveness."); + elseif(e.message:findi("why are you here")) then + e.self:Say("I came here to escape the militia and ask [Merko to forgive] me."); + elseif(e.message:findi("merko to forgive")) then + e.self:Say("I had a small encounter with his wife, my aunt. She was quite red after that altercation. I guess I upset her in a great way, somehow. Could you please go ask Merko to forgive [Willia]. I shall wait here for his answer."); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + elseif(e.timer == "cry") then + e.self:Say("Please do not harm me!! I am a lady underneath this garb. I just wanted to join the [Freeport Militia] to help my people.. Please.. Please.. I am nobody. Marr have mercy. I give you the truth. Is that not what you stand for? Merko is my Uncle!!"); + eq.stop_timer("cry"); + eq.set_timer("run",60000); -- set 1 mins before she runs and despawn + elseif(e.timer == "run") then + e.self:Say("Thank you, my friend. I shall mend my ways.. maybe."); + e.self:SetRunning(true); + eq.start(14); + end +end diff --git a/freportn/Gygus_Remnara.lua b/freportn/Gygus_Remnara.lua new file mode 100644 index 0000000..7ff5584 --- /dev/null +++ b/freportn/Gygus_Remnara.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("The Temple of Marr welcomes you. I am Gygus Remnara. High Sentinel for the Sentries of Passion. We are the order of paladins within the Priests of Marr and whose charge it is to protect the holy Temple of Marr."); + elseif(e.message:findi("heal")) then + e.self:Say("It is not my duty to see to the wounded. You must seek out Plur Etinu. He is in here somewhere."); + elseif(e.message:findi("honored member")) then + if(e.other:GetFactionValue(e.self) >= 50) then + e.self:Say("Yes. The light of righteousness shines from within you."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Work on the ways of valor before we discuss such things. You are on the righteous path of the Truthbringer, but there is more work to do."); + else + e.self:Say("Leave my presence at once. Your ways of life are not acceptable to one who follows the Truthbringer."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18738})) then -- A tattered note + e.self:Say("Welcome to the Sentries of Passion. We are the protectors of the Temple of Marr. Wear our tunic with pride, young knight! Find your wisdom within these walls and in the words of our priests. And remember to aid all who follow the twin deities, Mithaniel and Erollisi Marr."); + e.other:Faction(e.self,362,100,0); -- Priests of Marr + e.other:Faction(e.self,330,-10,0); -- The Freeport Militia + e.other:Faction(e.self,281,15,0); -- Knight of Truth + e.other:QuestReward(e.self,0,0,0,0,13556,20); -- White and Blue Tunic + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:freportn ID:8028 -- Gygus_Remnara diff --git a/freportn/Innkeep_Evelona.lua b/freportn/Innkeep_Evelona.lua new file mode 100644 index 0000000..c661a08 --- /dev/null +++ b/freportn/Innkeep_Evelona.lua @@ -0,0 +1,21 @@ + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("Ah yes! This is exactly what I am looking for, dear. Let me put these on the shelf right away. Here is some coin for your trouble. Perhaps we can do business again some time."); + e.other:Faction(e.self,63,2); -- coalition of tradefolk + e.other:Faction(e.self,281,2); -- knights of truth + e.other:Faction(e.self,291,1); -- merchants of qeynos + e.other:Faction(e.self,336,2); -- coalition of tradefolk underground + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("Oh, wonderful fresh bread! Thank you for making the trip, that is such a long way. Here, I hope this covers your travel expenses. You have my deepest thanks."); + e.other:Faction(e.self,63,4); -- coalition of tradefolk + e.other:Faction(e.self,281,4); -- knights of truth + e.other:Faction(e.self,291,3); -- merchants of qeynos + e.other:Faction(e.self,336,4); -- coalition of tradefolk underground + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/freportn/Innkeep_Palola.lua b/freportn/Innkeep_Palola.lua new file mode 100644 index 0000000..4d8d465 --- /dev/null +++ b/freportn/Innkeep_Palola.lua @@ -0,0 +1,21 @@ + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("Ah yes! This is exactly what I am looking for, dear. Let me put these on the shelf right away. Here is some coin for your trouble. Perhaps we can do business again some time."); + e.other:Faction(e.self,63,2); -- coalition of tradefolk + e.other:Faction(e.self,281,2); -- knights of truth + e.other:Faction(e.self,291,1); -- merchants of qeynos + e.other:Faction(e.self,336,2); -- coalition of tradefolk underground + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("Oh, wonderful fresh bread! Thank you for making the trip, that is such a long way. Here, I hope this covers your travel expenses. You have my deepest thanks."); + e.other:Faction(e.self,63,4); -- coalition of tradefolk + e.other:Faction(e.self,281,4); -- knights of truth + e.other:Faction(e.self,291,3); -- merchants of qeynos + e.other:Faction(e.self,336,4); -- coalition of tradefolk underground + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/freportn/Innkeep_Rille.lua b/freportn/Innkeep_Rille.lua new file mode 100644 index 0000000..b846250 --- /dev/null +++ b/freportn/Innkeep_Rille.lua @@ -0,0 +1,21 @@ + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("These are quality muffins! You are obviously quite a skilled baker. Here is your payment as promised. Now I can get back to business again."); + e.other:Faction(e.self,63,2); -- coalition of tradefolk + e.other:Faction(e.self,281,2); -- knights of truth + e.other:Faction(e.self,291,1); -- merchants of qeynos + e.other:Faction(e.self,336,2); -- coalition of tradefolk underground + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("Oh, wonderful fresh bread! Thank you for making the trip, that is such a long way. Here, I hope this covers your travel expenses. You have my deepest thanks."); + e.other:Faction(e.self,63,4); -- coalition of tradefolk + e.other:Faction(e.self,281,4); -- knights of truth + e.other:Faction(e.self,291,3); -- merchants of qeynos + e.other:Faction(e.self,336,4); -- coalition of tradefolk underground + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/freportn/Jemoz_Lerkarson.lua b/freportn/Jemoz_Lerkarson.lua new file mode 100644 index 0000000..7ca8719 --- /dev/null +++ b/freportn/Jemoz_Lerkarson.lua @@ -0,0 +1,52 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("hail")) then + e.self:Say("Bless you. my friend! We always welcome new converts into our Hall of Truth. The righteous army of the twin deities must assemble. The battle draws near. The blessings of the Truthbringer are passed to all who are [devoted to truth]."); + elseif(e.message:findi("fallen knight")) then + e.self:Say("The fallen knight is Sir Lucan D'Lere. The organizer and leader of the Freeport Militia. He once stood beside us. Now he shall burn!! We will end him. We shall [crush the Freeport Militia]. Truth shall reign once again."); + elseif(e.message:findi("true organizer")) then + e.self:Say("Captain Hazran is the commander of the Freeport Militia. Lucan has no time to waste on relegating duties. Hazran is the one who keeps these brutes together as a militia. Stop him and maybe the militia will collapse. Find a way to return his head to me. That would surely bring great thanks from this temple."); + elseif(e.message:findi("devoted to truth")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("May the hand of Marr shield you from harm. Welcome to our world. The war begins here in Freeport. The [fallen knight] has masked the truth from the world, but he cannot mask his evil from the Truthbringer. He once followed our ways. Now he is our enemy and yours. We must end his rule. We must [crush the Freeport Militia]!!"); + e.self:CastSpell(11,e.other:GetID()); -- Spell: Holy Armor + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Work on the ways of valor before we discuss such things. You are on the righteous path of the Truthbringer, but there is more work to do."); + else + e.self:Say("Leave my presence at once. Your ways of life are not acceptable to one who follows the Truthbringer."); + end + elseif(e.message:findi("crush the freeport militia")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("'Our goal is to end their rule. To retake our city in the name of Marr. Let it begin with their blood!! Slay the militia!! They have no souls and hail from the back alleys and prison cells of darkness and depravity. Thieves and murderers, nothing more. Slay any you can and, as proof, return their militia helms to me. We shall see what bounty you deserve."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Work on the ways of valor before we discuss such things. You are on the righteous path of the Truthbringer, but there is more work to do."); + else + e.self:Say("Leave my presence at once. Your ways of life are not acceptable to one who follows the Truthbringer."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13921})) then + e.self:Say("Bless you, my child. Marr is grateful, as are we. Here is our thanks. Let it bring you greater strength to defeat the Militia. Go and continue the crusade. Soon you will be strong enough to slay the [true organizer]."); + e.self:CastSpell(17,e.other:GetID()); -- Spell: Light Healing + e.other:Faction(e.self,281,10,0); -- Faction: Knights of Truth + e.other:Faction(e.self,271,-1,0); -- Faction: Dismal Rage + e.other:Faction(e.self,330,-1,0); -- Faction: The Freeport Militia + e.other:Faction(e.self,362,2,0); -- Faction: Priests of Marr + e.other:Faction(e.self,311,1,0); -- Faction: Steel Warriors + e.other:QuestReward(e.self,0,0,0,0,0,5000); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12142})) then + e.self:Say("We heard of your assault. We even attempted to slay Lucan. Alas, we failed. You have done your part and as such have earned our thanks. Beware of the Freeport Militia. They will no doubt be on the lookout for you. May Marr protect you. Perhaps you should speak with Valeron Dushire, paladin of the Knights of Truth. He seeks other to slay the fallen knight."); + e.other:Faction(e.self,281,20,0); -- Faction: Knights of Truth + e.other:Faction(e.self,271,-3,0); -- Faction: Dismal Rage + e.other:Faction(e.self,330,-3,0); -- Faction: The Freeport Militia + e.other:Faction(e.self,362,4,0); -- Faction: Priests of Marr + e.other:Faction(e.self,311,2,0); -- Faction: Steel Warriors + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(15560,15230,15219,15229,15222,15012),5000); -- Item(s): Spell: Furor (15560), Spell: Root (15230), Spell: Center (15219), Spell: Fear (15229), Spell: Invigor (15222), Spell: Healing (15012) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportn/Kalatrina_Plossen.lua b/freportn/Kalatrina_Plossen.lua new file mode 100644 index 0000000..abec2b5 --- /dev/null +++ b/freportn/Kalatrina_Plossen.lua @@ -0,0 +1,43 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("hail")) then + e.self:Say("Hail! Welcome to the Hall of Truth. We, the Knights of Truth, are all the hope this city has of loosening the grip of Lucan D'lere and his militia. I seek a young knight to [serve the will of the Truthbringer]."); + elseif(e.message:findi("what.* truthbringer") or e.message:findi("who.* truthbringer")) then + e.self:Say("Shame on you. To set foot into the Hall of Truth and not know for whom it was built. Still, it is never too late to see the light. Mithaniel Marr is our deity. He is the Truthbringer. By living our lives in valor and crushing all those who suppress His beliefs. We serve Him."); + elseif(e.message:findi("who.* lucan")) then + e.self:Say("He is the self-proclaimed ruler of Freeport. He began this false rule by banding together every vagabond and brawler he could find into a militia of sorts. By protecting the city from orc raids and the frequent scuffles between travelers, he gained the city's trust and wrested control of it from the former ruler. All this took place during the Hall's Crusade of Tears. We returned to find our remaining forces murdered. The militia claimed the orcs infiltrated the city and killed our knights. How convenient that they killed no militia! Join us in crushing the defiler!"); + elseif(e.message:findi("serve.* truthbringer")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Stand tall then, knight! We have need of your services. We have sent a man to infiltrate the militia. We fear he may soon be found out. Take him this note of warning. Say the words, 'Truth is good,' and you shall find him. Be careful, young knight. The militia does not take prisoners."); + e.other:SummonCursorItem(18817); -- A Sealed Letter (To Alayle) + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Work on the ways of valor before we discuss such things. You are on the righteous path of the Truthbringer, but there is more work to do."); + else + e.self:Say("Leave my presence at once. Your ways of life are not acceptable to one who follows the Truthbringer."); + end + elseif(e.message:findi("zimel.* blades")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Why would Lucan visit a condemned building? He must be searching for something. When I last visited the local forge, I heard rumors of Lucan searching for a sword named Soulfire. If this is true, you must find it first! No more power should go his way. Seek this sword out!"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Work on the ways of valor before we discuss such things. You are on the righteous path of the Truthbringer, but there is more work to do."); + else + e.self:Say("Leave my presence at once. Your ways of life are not acceptable to one who follows the Truthbringer."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18818})) then -- A Tattered Flier + e.self:Say("Zimel's Blades?! Hmmmmm. It doesn't ring a bell and the remainder of the writing is too hard to make out. It kind of looks like a list of prices. You know, down at the Office of the People they might be able to tell us if this place exists. Go speak with Rashinda. She knows all about Freeport. If [Zimel's Blades] existed, you must report back to me what happened to it."); + e.other:Faction(e.self,281,1,0); -- Faction: Knights of Truth + e.other:Faction(e.self,271,-1,0); -- Faction: Dismal Rage + e.other:Faction(e.self,330,-1,0); -- Faction: The Freeport Militia + e.other:Faction(e.self,362,1,0); -- Faction: Priests of Marr + e.other:Faction(e.self,311,1,0); -- Faction: Steel Warriors + e.other:QuestReward(e.self,0,0,0,0,0,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportn/Lanis_Herion.lua b/freportn/Lanis_Herion.lua new file mode 100644 index 0000000..5a12f1e --- /dev/null +++ b/freportn/Lanis_Herion.lua @@ -0,0 +1,12 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "! I hope you are following the teachings of the Queen of Passion, Erollisi Marr. The ways of love are many and shall warm the souls of all."); + elseif(e.message:findi("heal")) then + e.self:Say("It is not my duty to see to the wounded. You must seek out Plur Etinu. He is in here somewhere."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade); +end \ No newline at end of file diff --git a/freportn/Marus_Kemson.lua b/freportn/Marus_Kemson.lua new file mode 100644 index 0000000..1d3f731 --- /dev/null +++ b/freportn/Marus_Kemson.lua @@ -0,0 +1,4 @@ +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade); +end \ No newline at end of file diff --git a/freportn/Merko_Quetalis.lua b/freportn/Merko_Quetalis.lua new file mode 100644 index 0000000..077439d --- /dev/null +++ b/freportn/Merko_Quetalis.lua @@ -0,0 +1,82 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, good citizen! You have entered the Hall of Truth. What is it you seek? Many citizens come to request aid in dealing with the local rogues or the oppression of our sworn enemies, the Freeport Militia. A few valiant ones have been [summoned to the Hall of Truth]."); + elseif(e.message:findi("summoned.* hall.* truth")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("You have been summoned? You do not have the look of nobility. You must be a [squire]. There are many squires who have been summoned to our Hall. Not all pass the [Test of Truth]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Work on the ways of valor before we discuss such things. You are on the righteous path of the Truthbringer, but there is more work to do."); + else + e.self:Say("Leave my presence at once. Your ways of life are not acceptable to one who follows the Truthbringer."); + end + elseif(e.message:findi("squire")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Then I welcome you, Squire. Being a squire is the first step to becoming a true knight of the Hall of Truth. Remember always to protect and serve the meek. I have a [small task] which suits a squire perfectly."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Work on the ways of valor before we discuss such things. You are on the righteous path of the Truthbringer, but there is more work to do."); + else + e.self:Say("Leave my presence at once. Your ways of life are not acceptable to one who follows the Truthbringer."); + end + elseif(e.message:findi("small task")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Venture to the Commonlands and seek out our noble friend Altunic Jartin. He lives and works out of his home. Hand him this note."); + e.other:SummonCursorItem(18896); -- Give player "A Note (Note To Altunic)". + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Work on the ways of valor before we discuss such things. You are on the righteous path of the Truthbringer, but there is more work to do."); + else + e.self:Say("Leave my presence at once. Your ways of life are not acceptable to one who follows the Truthbringer."); + end + elseif(e.message:findi("token of generosity")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Go to the deserts of North Ro. Seek out the desert tarantulas. Stand and face this dreaded creature. If you are lucky, you will find a venom sac. This is what I require. When you return, hand it to me."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Work on the ways of valor before we discuss such things. You are on the righteous path of the Truthbringer, but there is more work to do."); + else + e.self:Say("Leave my presence at once. Your ways of life are not acceptable to one who follows the Truthbringer."); + end + elseif(e.message:findi("test of truth")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Only when a squire is ready, may he tempt his fate. All he need do is hand the tokens of bravery and generosity to me. If the squire survives his ordeal, then he or she shall enter the order of the Knights of Truth. The squire will be given the Testimony of Truth and become a respected knight."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Work on the ways of valor before we discuss such things. You are on the righteous path of the Truthbringer, but there is more work to do."); + else + e.self:Say("Leave my presence at once. Your ways of life are not acceptable to one who follows the Truthbringer."); + end + elseif(e.message:findi("willia")) then + e.self:Say("She is my niece. Lucan ordered her to kill my wife.. She did. She now belongs to the Freeport Militia. As part of the militia, she must die!! Let no militia member stand in the way of nobility."); + elseif(e.message:findi("heal")) then + e.self:Say("If you require the binding of wounds you should speak with Palious Jartan in the temple. He will be glad to help you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 14018})) then -- A spider venom sac + e.self:Say("You have earned the token of bravery. Now you must ask yourself if you are ready to face true fear. You will have but one chance. If you feel you are powerful enough to easily slay that desert tarantula, then hand me both tokens earned and you shall face the Test of Truth."); + e.other:Faction(e.self,281,10); -- Knights of Truth + e.other:Faction(e.self,271,-1); -- Dismal Rage + e.other:Faction(e.self,330,-1); -- Freeport Militia + e.other:Faction(e.self,362,2); -- Priest of Marr + e.other:Faction(e.self,311,1); -- Steel Warriors + e.other:QuestReward(e.self,0,0,0,0,12144,100); -- Token of Bravery + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12144, item2 = 13865})) then -- Token of Bravery / Token of Generosity + e.self:Say("Go to the open sewer across the way. Inside you shall find your opponent. Victory shall bring your final token. Return it to me. Remember our ways and remember our foes. Send them to their judgement in the afterlife. Be swift with your thoughts. May Marr be with you."); + eq.unique_spawn(8110,0,0,-257,132,-17,120); -- spawns Guard Willia + e.other:Faction(e.self,281,10); -- Knights of Truth + e.other:Faction(e.self,271,-1); -- Dismal Rage + e.other:Faction(e.self,330,-1); -- Freeport Militia + e.other:Faction(e.self,362,2); -- Priest of Marr + e.other:Faction(e.self,311,1); -- Steel Warriors + e.other:QuestReward(e.self,0,0,0,0,0,100); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13866})) then -- Token of Truth + e.self:Say("You have performed well. You have shown your allegiance to truth and cast aside the Freeport Militia. The militia will surely despise you from now on. This is how they treat the Knights of Truth. Beware. The followers of Marr stand alone in this city."); + e.other:Faction(e.self,281,100); -- Knights of Truth + e.other:Faction(e.self,271,-15); -- Dismal Rage + e.other:Faction(e.self,330,-15); -- Freeport Militia + e.other:Faction(e.self,362,20); -- Priest of Marr + e.other:Faction(e.self,311,10); -- Steel Warriors + e.other:QuestReward(e.self,0,0,math.random(10),0,18828,100); -- Testimony + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportn/Nashia_Lanseb.lua b/freportn/Nashia_Lanseb.lua new file mode 100644 index 0000000..1d3f731 --- /dev/null +++ b/freportn/Nashia_Lanseb.lua @@ -0,0 +1,4 @@ +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade); +end \ No newline at end of file diff --git a/freportn/Onytir_Seavin.lua b/freportn/Onytir_Seavin.lua new file mode 100644 index 0000000..70d88b8 --- /dev/null +++ b/freportn/Onytir_Seavin.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Hail, %s. Do you like [riddles]?",e.other:GetName())); + elseif(e.message:findi("riddles")) then + e.self:Say("Well I don't have any riddles for you today. However I do have a [story] to tell about some adventures who were very adept at solving riddles."); + elseif(e.message:findi("story")) then + e.self:Say("Not too long ago there were a group of adventurers, some were friends and some were not. These adventurers traveled far to meet with each other, and this rag-tag crew was thrown together, united for a [common goal]."); + elseif(e.message:findi("common goal")) then + e.self:Say("What other common goal do most people in this land share? The accumulation of wealth of course, that isn't to say they didn't serve a greater good, they helped all sorts in their travels, gnomes, dancing bixies, dragons, scarecrows, pixies, elves, nearly anything you can imagine. It was quite a sight to see, they were not the only [participants] in this grand adventure, however they were the ones who finished with the most to coin show for it."); + elseif(e.message:findi("participants")) then + e.self:Say("As I said, there were all manner of participants, however our victors were, Livius Maximus, Moonglumm Riptear, Rhuigha Spirithealer, Littlun Bigheart, Jaras Loupgeist, Balshazzar Synapse, Ironking, Riverraine, Dolaf, Breezar and Wichy Wolfpup, Valthor Runefang, Niborris, and Rixma."); + end +end \ No newline at end of file diff --git a/freportn/Palious_Jarten.lua b/freportn/Palious_Jarten.lua new file mode 100644 index 0000000..7793c37 --- /dev/null +++ b/freportn/Palious_Jarten.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It is good to see you, " .. e.other:GetCleanName() .. "!! Do not forget that the clerics of Mithaniel Marr are here to help those who pay tribute to Him. Should you require me to [cure disease], just mention it."); + elseif(e.message:findi("cure disease")) then + e.self:Say("If you require me to cure disease, it will cost you 10 gold coins."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {gold = 10})) then + e.self:Say("May the valor of Mithaniel Marr burn brightly in our soul!"); + e.self:CastSpell(213,e.other:GetID()); -- Spell: Cure Disease + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportn/Plur_Etinu.lua b/freportn/Plur_Etinu.lua new file mode 100644 index 0000000..45cd56f --- /dev/null +++ b/freportn/Plur_Etinu.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Your soul is welcome in our temple. The Queen of Love, Erollisi Marr, desires more to join our ranks. This city of Freeport must not stay under the control of the Freeport Militia. I am here to [cure poison] and [cure disease], or if any [need healing]."); + elseif(e.message:findi("cure poison")) then + e.self:Say("Before the Queen of Passion can force the toxin from your system, I shall require 3 bixie stingers to perform the act."); + elseif(e.message:findi("cure disease")) then + e.self:Say("The affliction which has been cast upon you shall be purged from your body, but first I need two portions of zombie flesh to perform the act."); + elseif(e.message:findi("healing")) then + e.self:Say("If it is the power of the passion you require to bind your wounds, then lay down your tribute of 10 gold."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13074, item2 = 13074})) then -- 2x zombie skin + e.self:Say("May the unbridled passion of Erollisi Marr flow through your body."); + e.self:CastSpell(213,e.other:GetID()); -- Spell: Cure Disease + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14029, item2 = 14029, item3 = 14029})) then -- 3x bixie stingers. + e.self:Say("May the unbridled passion of Erollisi Marr flow through your body."); + e.self:CastSpell(203,e.other:GetID()); -- Spell: Cure Poison + elseif(item_lib.check_turn_in(e.self, e.trade, {gold = 10})) then + e.self:Say("May the unbridled passion of Erollisi Marr flow through your body."); + e.self:CastSpell(17,e.other:GetID()); -- Spell: Light Healing + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/freportn/Rashinda_Elore.lua b/freportn/Rashinda_Elore.lua new file mode 100644 index 0000000..cf9af6b --- /dev/null +++ b/freportn/Rashinda_Elore.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. I am Rashinda Elore. The city Landholder Manager. If you have business to discuss. please direct it to my two clerks downstairs. Good day."); + elseif(e.message:findi("blades")) then + e.self:Say("'Zimel's Blades? It used to be a fine place of rare weaponry. [Ariska Zimel] was the owner. No one knows what happened to the man. He just vanished overnight. His shop used to be in East Freeport which is now a slum, er, I mean, which now has plenty of available lots for sale with plenty of potential. As for Zimel's Blades, we [condemned] it."); + elseif(e.message:findi("ariska zimel")) then + e.self:Say("Ariska Zimel was a human blacksmith, a master when it came to making swords, I hear. He kept to himself a lot. He disappeared about one year ago. A lot of people were disappointed when we had to condemn Zimel's Blades. All the merchandise was handed over to Groflah Steadirt. Mostly charred junk."); + elseif(e.message:findi("groflah steadirt")) then + e.self:Say("Groflah Steadirt is the dwarven owner of Groflah's Forge which is right near here. He was Ariska Zimel's best friend. They were apparently avid travelers before settling down here in Freeport. I guess it was during their travels that they picked up the fine arts of the forge. You should talk to Groflah about Zimel. He can tell you more than I can."); + elseif(e.message:findi("condemned")) then + e.self:Say("About a week after Ariska Zimel's disappearance, strange noises were heard from his shop. Loud booms and rumbling as though the earth itself were exploding. When the militia got to the shop, they said the shop was badly burned by an exploding boiler. They had us condemn the building due to its unsafe structure"); + end +end \ No newline at end of file diff --git a/freportn/Salinsa_Delfdosan.lua b/freportn/Salinsa_Delfdosan.lua new file mode 100644 index 0000000..9c85d39 --- /dev/null +++ b/freportn/Salinsa_Delfdosan.lua @@ -0,0 +1,54 @@ +-- Quests for North Freeport - Salinsa Delfdosan: Ordained Armor Quests (Cleric Newbie Armor) + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Pleasure to meet you %s. I am Lady Salinsa Deifdosan of House Marr. I have spent many hours on the battlefield in service of our glorious god however these days I spend my time training new [recruits].",e.other:GetName())); + elseif(e.message:findi("recruits")) then + e.self:Say("Well you see, since I am such a well seasoned adventurer my knowledge is very helpful to the young members of our house. That is why I have developed a system of hunting and gathering assignments that reward the new recruit with a set of armor that they work very hard to craft themselves. Are you a [young cleric of House Marr]? If so I will be happy to offer my assignments to you."); + elseif(e.message:findi("young cleric of house marr")) then + e.self:Say("Great! Let me first begin by explaining how you will be creating your own armor. You will use this magical kit I have presented you with to gather numerous [recipe components]. Your magical kit will be used to gather specific materials that will form together in certain numbers and quantities to create an armor material. You must then take the material you have fashioned to a forge along with armor molds that I will supply you with to create your armor."); + e.other:SummonCursorItem(17259); --Gem Encrusted Mail Kit + elseif(e.message:findi("recipe components")) then + e.self:Say("There are many different items that you will need to collect for your material components in all areas surrounding Freeport and our temple. I will be able to supply you with the mold for any armor piece you [want] to craft. I have the molds and recipes necessary for [Helms], [Bracers], [Armguards], [Boots], [Greaves], [Gauntlets] and [Breastplates]. When you are ready to craft a piece simply tell me what piece you would like to craft. For example if you wanted to create boots you would say, 'I want to craft boots'."); + elseif(e.message:findi("helm")) then + e.self:Say("Any cleric should always be very selective about what headpiece they choose for it can mean the difference between life and death. To create your helm material you will need to combine 2 Bricks of Crude Iron Ore, 1 Leaf Scarab Carapace , 1 Armadillo Tooth and 2 Fish Scales in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Helm of the Ordained."); + e.other:SummonCursorItem(22610); --An Enchanted Helm Mold + elseif(e.message:findi("bracer")) then + e.self:Say("Bracers should be worn at all times on the battlefield. If an enemy was to wound you about the wrist area you may find it difficult to channel your spell. To create your bracer material you will need to combine 1 Bricks of Crude Iron Ore, 1 Young Puma Skin, 1 Snake Egg and 1 Malachite in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Bracer of the Ordained."); + e.other:SummonCursorItem(22611); --An Enchanted Bracer Mold + elseif(e.message:findi("armguard")) then + e.self:Say("'Armguards are a definite must when you are out training. Being wounded about the arms due to no armor protection can be quite devastating. To create your armguard material you will need to combine 2 Bricks of Crude Iron Ore, 2 Giant Fire Beetle Brains, 1 Lion Mane and 1 Wine Yeast in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Armguards of the Ordained."); + e.other:SummonCursorItem(22613); --An Enchanted Armguard Mold + elseif(e.message:findi("boot")) then + e.self:Say("Boots are one of your more important armor pieces I must say. To create your boot material you will need to combine 3 Bricks of Crude Iron Ore, 1 Large Leaf Scarab Leg , 2 Spiderling Eyes in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Boots of the Ordained."); + e.other:SummonCursorItem(22612); --An Enchanted Boot Mold + elseif(e.message:findi("greave")) then + e.self:Say("Pants are a must on the battlefield for reasons that I should not have to mention! To create your greaves material you will need to combine 4 Bricks of Crude Iron Ore, 1 Deathfist Orc Skull, 1 Zombie Skin , 1 Bottle and 1 Lion Tail in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Greaves of the Ordained."); + e.other:SummonCursorItem(22614); --An Enchanted Greaves Mold + elseif(e.message:findi("gauntlet")) then + e.self:Say("Gauntlets will be a very important part of your armor set because it is extremely important that you keep your hands free from harm or you will find yourself having troubles with your spellcasting. To create your gauntlets material you will need to combine 3 Bricks of Crude Iron Ore, 1 Black Bear Paw, 1 Giant Scarab Brain , and 2 Spider Legs in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Gauntlets of the Ordained."); + e.other:SummonCursorItem(22615); --An Enchanted Gauntlet Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("I am very proud to have seen my newest student progress through their training so fast. I have no doubt that the time has come for you to craft your Breastplate of the Ordained. To create your breastplate material you will need to combine 5 Bricks of Crude Iron Ore, 1 Preserved Snake Eye, 1 Young Kodiak Paw, 1 Snake Bile and 1 Large Leaf Scarab Leg in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Breastplate of the Ordained. Please return to me when you are finished with your breastplate for one [final mission]."); + e.other:SummonCursorItem(22616); --An Enchanted Breastplate Mold + elseif(e.message:findi("final mission")) then + e.self:Say("As you must already know the Freeport Militia has been a thorn in our side ever since they were trusted to care for our city during the crusade. Things have never been the same sense then and things are actually starting to get worse. There have been numerous reports of Freeport Militia soldiers harassing all those that do not follow their rules of tyranny. My sister was bringing me a newsletter from qeynos when she was abducted. She escaped but [Deisnak] stole the newsletter she was delivering to me."); + elseif(e.message:findi("deisnak")) then + e.self:Say("Deisnak is a high ranking officer in the Freeport Militia, some would even call him untouchable. I need you to retrieve my newsletter for me by all means necessary. It had some very important messages from Qeynos and I must have it. Return to me with my newsletter and two Pristine Scarab Eyes and I will reward you greatly for your efforts."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9931,item2 = 9932, item3 = 9932})) then -- A Torn Qeynos Newsletter and Pristine Scarab Eyes 2x + e.self:Say("'I knew that Deisnak would still have this! This has more useful information to us here at the temple then you could imagine. I am very happy to see that you were able to get it back for me. For your tireless devotion to our House I would like to present you with this mace. It has brought me good fortune in all the days that I carried it, I only wish that it can do the same for you. Good luck Knobinshu, and thank you."); + e.other:Faction(e.self,281,25); -- Faction: Knights of Truth + e.other:Faction(e.self,271,-3); -- Faction: Dismal Rage + e.other:Faction(e.self,330,-3); -- Faction: The Freeport Militia + e.other:Faction(e.self,362,5); -- Faction: Priests of Marr + e.other:Faction(e.self,311,2); -- Faction: Steel Warriors + e.other:QuestReward(e.self,0,0,0,0,9937,200); -- Mace of the Ordained + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportn/Sentry_Andlin.lua b/freportn/Sentry_Andlin.lua new file mode 100644 index 0000000..e2ad69b --- /dev/null +++ b/freportn/Sentry_Andlin.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings! I would love to converse with you, but as you cansee, I am standing my watch."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12127})) then + e.self:Say("My thanks to you. I feel much strength. You may take the bottle to the next sentry."); + e.other:Faction(e.self,362,1); -- Faction: Priests of Marr + e.other:Faction(e.self,330,-1); -- Faction: The Freeport Militia + e.other:Faction(e.self,281,1); -- Faction: Knights of Truth + e.other:QuestReward(e.self,0,0,0,0,12128,100); -- Item: Part of Potion of Marr + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportn/Sentry_Boris.lua b/freportn/Sentry_Boris.lua new file mode 100644 index 0000000..530220c --- /dev/null +++ b/freportn/Sentry_Boris.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Please seek guidance from the clerics within this temple. I am but a Sentry of Passion and my duty is to protect this temple."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12128})) then + e.self:Say("Ahhh!! That has given me back lost energy. Thank you. Please take this to the next sentry."); + e.other:Faction(e.self,362,1); -- Faction: Priests of Marr + e.other:Faction(e.self,330,-1); -- Faction: The Freeport Militia + e.other:Faction(e.self,281,1); -- Faction: Knights of Truth + e.other:QuestReward(e.self,0,0,0,0,12129,100); -- Item: Part of Potion of Marr + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportn/Sentry_Gallius.lua b/freportn/Sentry_Gallius.lua new file mode 100644 index 0000000..6fbf985 --- /dev/null +++ b/freportn/Sentry_Gallius.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I welcome you to the Temple of Marr. home to clerics of the deities Erollisi and Mithaniel Marr. Please seek guidance from the clerics."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12129})) then + e.self:Say("Excellent!! I feel quite refreshed with but a sip. You may take this to the next sentry."); + e.other:Faction(e.self,362,1); -- Faction: Priests of Marr + e.other:Faction(e.self,330,-1); -- Faction: The Freeport Militia + e.other:Faction(e.self,281,1); -- Faction: Knights of Truth + e.other:QuestReward(e.self,0,0,0,0,12130,100); -- Item: Part of Potion of Marr + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportn/Sentry_Janeal.lua b/freportn/Sentry_Janeal.lua new file mode 100644 index 0000000..8170c3b --- /dev/null +++ b/freportn/Sentry_Janeal.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome. friend! Please seek the words of the clerics of Marr. Their words are the words which will set us free from the tyranny of the Freeport Militia."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12130})) then + e.self:Say("I feel quite alert now. Thank you. You should take this to the next sentry."); + e.other:Faction(e.self,362,1); -- Faction: Priests of Marr + e.other:Faction(e.self,330,-1); -- Faction: The Freeport Militia + e.other:Faction(e.self,281,1); -- Faction: Knights of Truth + e.other:QuestReward(e.self,0,0,0,0,12131,100); -- Item: Half of Potion of Marr + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportn/Sentry_Meighan.lua b/freportn/Sentry_Meighan.lua new file mode 100644 index 0000000..a665a71 --- /dev/null +++ b/freportn/Sentry_Meighan.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Please speak no further. I am nothing more than a defender of this temple. The words of Marr lie with the masters and clerics of this temple. They await you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12131})) then + e.self:Say("Very good. Nothing more than a sip and I feel much more alert. The next sentry awaits you."); + e.other:Faction(e.self,362,1); -- Faction: Priests of Marr + e.other:Faction(e.self,330,-1); -- Faction: The Freeport Militia + e.other:Faction(e.self,281,1); -- Faction: Knights of Truth + e.other:QuestReward(e.self,0,0,0,0,12132,100); -- Item: Part of Potion of Marr + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportn/Sentry_Theo.lua b/freportn/Sentry_Theo.lua new file mode 100644 index 0000000..711dabe --- /dev/null +++ b/freportn/Sentry_Theo.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Please speak with the masters. I am on watch and have no time to converse."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12132})) then + e.self:Say("That gives me new life. Take it to the next sentry."); + e.other:Faction(e.self,362,1); -- Faction: Priests of Marr + e.other:Faction(e.self,330,-1); -- Faction: The Freeport Militia + e.other:Faction(e.self,281,1); -- Faction: Knights of Truth + e.other:QuestReward(e.self,0,0,0,0,12133,100); -- Item: Part of Potion of Marr + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportn/Sentry_Warren.lua b/freportn/Sentry_Warren.lua new file mode 100644 index 0000000..9ffca78 --- /dev/null +++ b/freportn/Sentry_Warren.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("May the words of Marr be passed on to you. Please seek knowledge from the masters of this temple."); + elseif(e.message:findi("sisterhood of erollisi")) then + e.self:Say("The Sisterhood of Erollisi is a band of female warriors. Their founders hail from Kelethin. They now train and live upon an island in the Ocean of Tears. We often check up on them. We share the same deity."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12133})) then + e.self:Say("Thank you. I believe you need to seek out Sentry Xyrin. She is not at the temple. I believe she left to speak with [Sisterhood of Erollisi]. She was to speak with Styria."); + e.other:Faction(e.self,362,1); -- Faction: Priests of Marr + e.other:Faction(e.self,330,-1); -- Faction: The Freeport Militia + e.other:Faction(e.self,281,1); -- Faction: Knights of Truth + e.other:QuestReward(e.self,0,0,0,0,12134,100); -- Item: Last of Potion of Marr + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportn/Serna_Tasknon.lua b/freportn/Serna_Tasknon.lua new file mode 100644 index 0000000..5fe0690 --- /dev/null +++ b/freportn/Serna_Tasknon.lua @@ -0,0 +1,44 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("hail")) then + e.self:Say("It is a good thing to see new faces visiting our temple. We are the source of strength within this city. Do not be fooled by the Freeport Militia. They are not warriors of valor. [Join the fight against the Freeport Militia]."); + elseif(e.message:findi("join the fight")) then + e.self:Say("You are wise. If you are a paladin, either speak with Theron of this temple or visit the Hall of Truth here in North Freeport. Clerics should concetrate on keeping the knights strong and healthy. Would you care to [assist the Temple of Marr]?"); + elseif(e.message:findi("assist")) then + if(fac < 5) then + e.self:Say("Good. Take this Potion of Marr to the Sentries of Passion. They are the protectors of this temple. Start in alphabetical order and the first shall take but a sip then you shall take it to the next in order of the alphabet. There are but eight sentries. Sentry Andlin to Sentry Xyrin. Go."); + e.other:SummonCursorItem(12127); -- Item: Full Potion of Marr + else + e.self:Say("The path you walk is correct, but you have further to travel before you need worry about this."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "The arangement was for three shark bones and 10 gold coins"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12126,item2 = 12126,item3 = 12126, gold = 10},1,text)) then + e.self:Say("I thank you for your ten gold coins. Now we can pay the weekly oxygen tax imposed by the militia. Here is the shark powder."); + -- Confirmed Live Factions + e.other:Faction(e.self,362,1,0); -- Faction: Priests of Marr + e.other:Faction(e.self,330,-1,0); -- Faction: The Freeport Militia + e.other:Faction(e.self,281,1,0); -- Faction: Knights of Truth + e.other:QuestReward(e.self,0,0,0,0,12125,100); -- Item: Shark Powder + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13983})) then + e.self:Say("I see Tonmerk has found a use for my shark powder. We agreed to this trade when last we met. Unfortunately, I am out of it. If you desire the shark powder you will have to get me three shark bones. I wish you luck. Oh. I also require a payment of ten gold pieces. The taxes in Freeport are fierce."); + -- Confirmed Live Factions + e.other:Faction(e.self,362,5); -- Faction: Priests of Marr + e.other:Faction(e.self,330,-1); -- Faction: The Freeport Militia + e.other:Faction(e.self,281,1); -- Faction: Knights of Truth + e.other:QuestReward(e.self,0,0,0,0,0,100); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12135})) then + e.self:Say("The Sentries of Passion informed me of your journey to the Ocean of Tears and the demise of Sentry Xyrin. You performed beyond the call of duty. This is what makes an exceptional person. Take this for your great deed. The twin deities would wish it so."); + e.other:Faction(e.self,362,5,0); -- Faction: Priests of Marr + e.other:Faction(e.self,330,-1,0); -- Faction: The Freeport Militia + e.other:Faction(e.self,281,1,0); -- Faction: Knights of Truth + e.other:QuestReward(e.self,0,0,0,0,15207,1000); -- Item: Spell: Divine Aura + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportn/Sir_Artanis.lua b/freportn/Sir_Artanis.lua new file mode 100644 index 0000000..39d956d --- /dev/null +++ b/freportn/Sir_Artanis.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("befallen")) then + e.self:Say("You did well to ride swiftly with this news. I must take this directly to Valeron Dushire. If you learn more about this plot that would unleash this monster upon Norrath or wish to someday soon aid the Knights of Truth in putting down this evil, then return to speak to me again at a later time."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31492})) then + e.self:Say("It was a fine and valiant steed to serve its master beyond the grave, but it looks to be near its end. But I have a fine eye for horses, and I dare say it will serve you one more time."); + e.other:QuestReward(e.self,0,0,0,0,31496,6400); -- Item: Bridle of Sir Ariam + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18474})) then + e.self:Say("By Marr, what is this? .. Burning Dead .. .. Marnek! By my blade this must be stopped! Where did you find this?"); + e.other:QuestReward(e.self,math.random(10),math.random(10),0,0,0,6400); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportn/Sir_Willam.lua b/freportn/Sir_Willam.lua new file mode 100644 index 0000000..4bbe6bc --- /dev/null +++ b/freportn/Sir_Willam.lua @@ -0,0 +1,7 @@ +function event_waypoint_arrive(e) + if(e.wp == 170) then + e.self:SetRunning(true); + elseif(e.wp == 186) then + e.self:SetRunning(false); + end +end diff --git a/freportn/Sten_Harnak.lua b/freportn/Sten_Harnak.lua new file mode 100644 index 0000000..3f15345 --- /dev/null +++ b/freportn/Sten_Harnak.lua @@ -0,0 +1,54 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings to you " .. e.other:GetCleanName() .. ". I am Sten Harnak Virtuoso of Freeport. I have lived in Freeport and studied the art of songweaving here for all of my days. I am always eager to see new faces here in our concert hall. If you are here for a performance I am afraid it does not start till a bit later but if you are a young bard in training then I might have some [work] for you."); + elseif(e.message:findi("what work")) then + e.self:Say("Well I have numerous concerts here that I must prepare for so I always must be sure that I have the best possible support as far as my fellow bards go. I am always seeking new young talent to sing in our concerts. If you are a bard I have made tasks for you to complete to see if you are a worthy songweaver. These tasks will test your determination and battle skills. I would only allow one that has completed all of my [specific tests] to sing in my concert hall."); + elseif(e.message:findi("what specific test")) then + e.self:Say("If you are ready to begin your training I will assign you a number of tests. These tests will enable you to outfit yourself with a suit of armor only worn by the most respected musicians of Freeport. First. I will present you with a Songweavers Assembly Kit. In this kit you will combine certain [recipes] that will be magically formed into an armor material. Each one of these materials will need to be combined in a forge with the appropriate mold to make your armor piece."); + e.other:SummonCursorItem(17257); -- Item: Songweavers Assembly Kit + elseif(e.message:findi("what recipe")) then + e.self:Say("I have the material recipes available for Songweavers Platemail [Helms]. [Bracers]. [Armguards]. [Boots]. [Greaves]. [Gauntlets] and [Breastplates]. When you are ready to craft a specific piece simply tell me what armor piece you [want] to craft. For example if you would wish to craft a helm tell me [I want to craft a helm]. Also please keep in mind that the components necessary for crafting your breastplate material are the most difficult to collect so you might want to collect them last."); + elseif(e.message:findi("armguard")) then + e.self:Say("Armguards will keep your arms well protected in battle from any foe you may face. To create your armguard material you will need to combine 2 Bricks of Crude Iron Ore, 1 Preserved Snake Eye, 1 Burned Out Lightstone and 1 Mead in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Songweavers Platemail Armguards."); + e.other:SummonCursorItem(22613); -- Item: An Enchanted Armguard Mold + elseif(e.message:findi("bracer")) then + e.self:Say("A bracer is a very vital part of any bards arsenal. To create your bracer material you will need to combine 1 Brick of Crude Iron Ore, 2 Chunks of Meat, 1 Black Wolf Skin and 1 Cats Eye Agate in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Songweavers Platemail Bracer."); + e.other:SummonCursorItem(22611); -- Item: An Enchanted Bracer Mold + elseif(e.message:findi("gauntlet")) then + e.self:Say("Keeping your hands safe from all wounds is a key to being an effective bard. I am sure you will find it extremely difficult to play your instruments if your hands are not in the best shape possible. To create your gauntlet material you will need to combine 3 Bricks of Crude Iron Ore, 1 Fire Beetle Eye, 1 Orc Pawn Pick and 2 Giant Scarab Brains in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Songweavers Platemail Gauntlets."); + e.other:SummonCursorItem(22615); -- Item: An Enchanted Gauntlet Mold + elseif(e.message:findi("boot")) then + e.self:Say("Boots are a very important armor piece and I am glad to hear you wish to craft them. To create your boot material you will need to combine 3 Bricks of Crude Iron Ore, 1 Ruined Bear Pelt and 1 Severed Orc Foot in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Songweavers Platemail Boots."); + e.other:SummonCursorItem(22612); -- Item: An Enchanted Boot Mold + elseif(e.message:findi("helm")) then + e.self:Say("A very important armor piece indeed " .. e.other:GetCleanName() .. ". one well placed attack to the head by an adversary could leave you in very poor condition. To create your helm material you will need to combine 2 Bricks of Crude Iron Ore, 1 Ruined Wolf Pelt, 1 Deathfist Pawn Scalp and 1 Barley in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Songweavers Platemail Helm."); + e.other:SummonCursorItem(22610); -- Item: An Enchanted Helm Mold + elseif(e.message:findi("greave")) then + e.self:Say("Greaves would be a very wise armor choice should you be able to gather the components necessary for the material. To create your greaves material you will need to combine 4 Bricks of Crude Iron Ore, 2 Spiderling Eyes, 1 Lion Tail, 1 Bottle and 1 Grizzly Bear Skin in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Songweavers Platemail Greaves."); + e.other:SummonCursorItem(22614); -- Item: An Enchanted Greaves Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("The right breastplate will defend you from most lifethreating attacks that you may endure while in training. With that said I am very happy to see that you are already set to collect your breastplate material componenets. To create your breastplate material you will need to combine 5 Bricks of Crude Iron Ore, 1 Coyote Skull, 1 Snake Bile, 1 Enlarged Fire Beetle Leg, 1 Vial of Smoke and 1 Young Plains Cat Backbone in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Songweavers Platemail Breastplate. Please return to me after you have completed your final armor piece because I have one more [important task] for you."); + e.other:SummonCursorItem(22616); -- Item: An Enchanted Breastplate Mold + elseif(e.message:findi("important task")) then + e.self:Say("There has been numerous reports lately of the Orcs in the Commonlands being up to no good. Some actually believe that they are stockpiling wood for some odd reason. Regardless of their purpose the increased number of orcs in any given area just spells trouble for all the surrounding areas. I need you to go and [collect some warbeads] from some high ranking orcs. Obtaining these warbeads will not be easy I would presume. Will you assist me in this final task?"); + elseif(e.message:findi("collect some warbead")) then + e.self:Say("I am very pleased to hear that you will be able to help us. The warbeads that I require will be found on specific Orc Chieftans. I am sure they are not alone and are well guarded so make sure you bring companions with you that are well proven on the battlefield. Bring me the warbeads of Chief Fosloas, Diedridan and Kelleru. I look forward to seeing you soon."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9924,item2 = 9925,item3 = 9926})) then + e.self:Say("I knew I could count on you " .. e.other:GetCleanName() .. "! The defeat of these high ranking orcs will definitely be a positive turn in our constant battle of ridding the commons of these vile creatures. For your dedication to the Choir of Lore I would like to present you with this blade. May it keep you safe and serve you well wherever your journeys may take you."); + e.other:Faction(e.self,284,25); -- league of antonican bards + e.other:Faction(e.self,281,3); -- knights of truth + e.other:Faction(e.self,262,3); -- guards of qeynos + e.other:Faction(e.self,304,-1); -- ring of scale + e.other:Faction(e.self,285,-1); -- mayong mistmoore + e.other:QuestReward(e.self,0,0,0,0,9935,500); -- Item: Etched Songweavers Longsword + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- End of FILE Zone:freportn - Sten_Harnak diff --git a/freportn/Svinal_Wyspin.lua b/freportn/Svinal_Wyspin.lua new file mode 100644 index 0000000..7704085 --- /dev/null +++ b/freportn/Svinal_Wyspin.lua @@ -0,0 +1,12 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome, welcome, welcome! This is the Emporium. If we don't have it, we can get it!!"); + elseif(e.message:findi("boat beacon")) then + e.self:Say("What!!? Looking for a boat beacon? We may be getting one from Ak'Anon in about a year. You can always try to make one. Find a greater lightstone, a metal disk and a copper band. If you have a beacon mount, go to a forge and combine them all. It's not that hard, but it's not that easy, either."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/freportn/Theron_Rolius.lua b/freportn/Theron_Rolius.lua new file mode 100644 index 0000000..1f97ede --- /dev/null +++ b/freportn/Theron_Rolius.lua @@ -0,0 +1,51 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "! To enter these grounds is to proclaim your faith in the Truthbringer. In this city you shall find no greater allies than the Knights of Truth. We urge all knights and clerics who oppose the hand of the Freeport Militia to [join the crusade]."); + elseif(e.message:findi("join the crusade")) then + e.self:Say("Then take arms against the Freeport Militia! They serve no one save Sir Lucan, the fallen knight. From this day forth, I put a bounty upon all militia members. For every bashed milita helm, a reward!! If you are not prepared to battle the militia just yet, you may [assist in other areas]."); + elseif(e.message:findi("assist in other areas")) then + e.self:Say("I have need of one such as you. I have been awaiting a message. I will need a young acolyte to [retrieve the message] for me or there are also some [fishing duties] I wish to delegate."); + elseif(e.message:findi("retrieve the message")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Thank you, " .. e.other:GetCleanName() .. ". Venture to the Commonlands. There, by a lake, will be a courier from the great city of Qeynos. Tell him you are from the Hall of Truth. He will have a message for you to deliver to Eestyana Naestra."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Work on the ways of valor before we discuss such things. You are on the righteous path of the Truthbringer, but there is more work to do."); + else + e.self:Say("Leave my presence at once. Your ways of life are not acceptable to one who follows the Truthbringer."); + end + elseif(e.message:findi("fishing duties")) then + e.self:Say("I have been creating shields for the crusade. Right now I work on the sharkskin shield for the knights. I require two shark skins. Unfortunately, most sharks are too dangerous for the squires. I have begun using [reef shark] skins. Will you hunt the [reef sharks]?"); + elseif(e.message:findi("reef shark")) then + e.self:Say("Reef sharks are the smallest and most docile of the sharks. Even a young acolyte can slay one. I have heard there are some in the Ocean of Tears. I need a young acolyte to [hunt] reef sharks. I require their skins."); + e.other:SummonCursorItem(17937); -- Item: Empty Shark Sack + elseif(e.message:findi("hunt")) then + e.self:Say("I thought I spied the shoulders of a swimmer upon you! Take this large sack. Travel to the Ocean of Tears. There are numerous reef sharks there. I shall require no fewer than two shark skins. When the full sack is combined and returned to me, I shall reward you."); + elseif(e.message:findi("heal")) then + e.self:Say("If you require the binding of wounds you should speak with Palious Jartan in the temple. He will be glad to help you."); + end + end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13921})) then + e.self:Say("Fantastic work, my young knight. Here is a small token of the my appreciation. I would offer you a sharkskin shield, but I have made only a few and the paladins are testing them."); + e.other:Faction(e.self,281,25,0); -- knights of truth + e.other:Faction(e.self,271,-3,0); -- dismal rage + e.other:Faction(e.self,330,-3,0); -- freeport militia + e.other:Faction(e.self,362,5,0); -- priests of marr + e.other:Faction(e.self,311,2,0); -- steel warriors + e.other:QuestReward(e.self,0,0,0,3,0,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13873})) then + e.self:Say("Thanks for the hard work, here is a shield to help you in your duties."); + e.other:Faction(e.self,281,25,0); -- knights of truth + e.other:Faction(e.self,271,-3,0); -- dismal rage + e.other:Faction(e.self,330,-3,0); -- freeport militia + e.other:Faction(e.self,362,5,0); -- priests of marr + e.other:Faction(e.self,311,2,0); -- steel warriors + e.other:QuestReward(e.self,0,0,0,0,13868,500); -- Item: Sharkskin Shield + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:freportn ID:8073 -- Theron_Rolius diff --git a/freportn/Tholius_Quey.lua b/freportn/Tholius_Quey.lua new file mode 100644 index 0000000..63eeade --- /dev/null +++ b/freportn/Tholius_Quey.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Welcome %s! This is the Temple of Marr and you must be another seeker of passion and valor. That is good. Become one with us and help us to defeat the [fallen knight]. It is he who has caused the demise of this city.",e.other:GetName())); + elseif(e.message:findi("knight")) then + e.self:Say("The fallen knight I speak of is none other than Sir Lucan D'Lere. The self proclaimed ruler of this city. He is no ruler and he never was no true Knight of Truth. If it were not for the [Crusade of Tears] this city would still be united in valor."); + elseif(e.message:findi("crusade")) then + e.self:Say("In the year of thirty one hundred fifty. the Knights of Truth were called upon by the twin gods Erollisi and Mithaniel Marr. They instructed us to go forth across the Ocean of Tears and across the lands of Faydwer and purge the lands of the undead. It was during this crusade Freeport was left in the care of Sir Lucan D'Lere. How unfortunate."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18736})) then + e.self:Say("Welcome to the Priests of Marr. Here, you will be taught how powerful passion truly is. The passion of Erollisi Marr, the Queen of Love, shall flow through you and into all those you meet. Wear this tunic in the name of Love."); + e.other:Faction(e.self,362,100,0); -- priest of marr + e.other:Faction(e.self,330,-10,0); -- freeport militia + e.other:Faction(e.self,281,15,0); -- knight of truth + e.other:QuestReward(e.self,0,0,0,0,13556,20); -- Item: White and Blue Tunic* + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportn/Thurion_Desius.lua b/freportn/Thurion_Desius.lua new file mode 100644 index 0000000..1d3f731 --- /dev/null +++ b/freportn/Thurion_Desius.lua @@ -0,0 +1,4 @@ +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade); +end \ No newline at end of file diff --git a/freportn/Ton_Twostring.lua b/freportn/Ton_Twostring.lua new file mode 100644 index 0000000..74b14be --- /dev/null +++ b/freportn/Ton_Twostring.lua @@ -0,0 +1,31 @@ +--Quest Name: Bard Mail Quest + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail. " .. e.other:GetCleanName() .. " - Are you [interested] in helping the League of Antonican Bards by delivering some [mail]?"); + elseif(e.message:findi("mail") and not e.message:findi("deliver") and not e.message:findi("Kelethin") and not e.message:findi("Highpass")) then + e.self:Say("The League of Antonican Bards has a courier system made up of travelers and adventurers. We pay good gold to anyone who will take messages from bards such as myself to one of our more distant offices. Are you [interested]?"); + elseif(e.message:findi("interested")) then + e.self:Say("I have messages that need to go to Highpass and Kelethin. Will you [deliver] mail to [Kelethin] or [Highpass] for me?"); + elseif(e.message:findi("deliver") and e.message:findi("Kelethin")) then + e.self:Say("Take this pouch to Idia in Kelethin. You can find her at the bard guild hall. I am sure she will compensate you for your troubles."); + e.other:SummonCursorItem(18167); -- Item: A Pouch of Mail (Kelethin) + elseif(e.message:findi("deliver") and e.message:findi("Highpass")) then + e.self:Say("Take this pouch to Lislia Goldtune in Highpass. You can find her at the entrance to HighKeep. I am sure she will compensate you for your troubles."); + e.other:SummonCursorItem(18156); -- Item: A Pouch of Mail (Highpass) + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18164})) then + e.self:Say("More mail - you have done us a noteworthy service! Please take this gold for your troubles. If you are interested in more work, just ask me."); + e.other:Faction(e.self,284,5); -- league of antonican bards + e.other:Faction(e.self,281,1); -- knights of truth + e.other:Faction(e.self,262,1); -- guards of qeynos + e.other:Faction(e.self,304,-1); -- ring of scale + e.other:Faction(e.self,285,-1); -- mayong mistmoore + e.other:QuestReward(e.self,0,0,math.random(9),0,0,100); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportn/Valeron_Dushire.lua b/freportn/Valeron_Dushire.lua new file mode 100644 index 0000000..3fdb68b --- /dev/null +++ b/freportn/Valeron_Dushire.lua @@ -0,0 +1,65 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am Sir Valeron Dushire, leader of the order of the Knights of Truth. If your soul shines with purity and strength, I urge you to join our order. The might of Mithaniel Marr stands behind all who join. Soon that might will help us free this city from the tyranny of the [Freeport Militia]."); + elseif(e.message:findi("freeport militia")) then + e.self:Say("The Freeport Militia took control of this city long ago. They are nothing more than a group of thugs not worthy of respect. They follow the words of [Sir Lucan] D'Lere. He has been a thorn in this city's side for too long. If you wish to aid us in the fight against tyranny, go speak with Jemoz or Sir Theron. May the Truthbringer shine upon your soul."); + elseif(e.message:findi("stop.* lucan")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("That would be good, but I doubt you can. We have been trying for years and are unable to get him apart from the militia. If you do the impossible and destroy Sir Lucan, bring me his testimony. Every knight of the Hall of Truth carries a signed testimony. Sir Lucan still holds his."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Work on the ways of valor before we discuss such things. You are on the righteous path of the Truthbringer, but there is more work to do."); + else + e.self:Say("Leave my presence at once. Your ways of life are not acceptable to one who follows the Truthbringer."); + end + elseif(e.message:findi("sir lucan")) then + e.self:Say("Lucan is a bad seed. You see, I trained Sir Lucan. He was nothing more than a street rat who was taken in by the Temple of Marr. The priests taught him and found him to be very agile and strong. They requested either the Priests of Marr or the Knights of Truth take him on as a squire. Gygus could not spare the trainers at the time and so we took the boy. The boy became a man, and a very formidable knight. Then something [went awry]."); + elseif(e.message:findi("went awry")) then + e.self:Say("During one of our crusades into the lands of Norrath, we left Sir Lucan in charge of the remaining knights. He did much good and the people respected him. He was overtaken by power. He soon began to hire mercenaries to guard the city, calling them the Freeport Militia. His true downfall began when he killed Sentry Dillius, a paladin of the Priests of Marr. His divine powers were stripped from his soul. He was a paladin no longer. He and his militia now control the city. They treat it as their playground and bully the populace. Someone must [stop Sir Lucan]."); + elseif(e.message:findi("hero")) then + e.self:Say("His name has been long lost but his legend lives on in every young knight who aspires to continue his fight. He attempted to quell an evil that resided within Kithicor, perverting nature itself. Much to his relief, it was an earthly foe he fought against and not a denizen summoned from the planes of evil. Then, suddenly, he was surrounded by dozens of dark elves. He was captured and taken to the Dead to be experimented upon and had his soul twisted by vile necromantic magics. Then the Tier'Dal cast his remains to the winds. Where they landed, no one knew, until now. You have found one of his bones. I hereby charge you with a Holy Quest to bring this Hero's bones back for a burial with honors. Do you [accept], knight?"); + elseif(e.message:findi("accept")) then + e.self:Say("Good! I knew you would. It is one of the highest honors one can receive. Your quest will not be easy for I know not where his other bones lay. A spy of ours within Neriak was able to surmise that six of his bones along with his sword and shield were scattered throughout Norrath. You must search far and wide to find the remaining pieces, as you already have one.. Do not give up. It is now your sacred duty. Once you have retrieved all eight pieces, come back to me and inform me that you [have all the bones]."); + elseif(e.message:findi("have all the bones")) then + e.self:Say("Excellent! You are indeed worthy to bear the title of Holy Knight! Now, about the coffin. I have spoken with Ping Fuzzlecutter, outside the western gates. Ask him about the coffin and once it is made, bring it to Simon Aldicott of Marr. I shall have Simon meet you by the lake in the Commonlands after Ping gives you the coffin."); + elseif(e.message:findi("who is") or e.message:findi("him") or e.message:findi("diggs")) then + e.self:Say("According to this crest on the tunic, you have recovered one of the bones of a lost Paladin [Hero]."); + elseif(e.message:findi("honored member")) then + if(e.other:GetFactionValue(e.self) >= 50) then + e.self:Say("Yes. The light of righteousness shines from within you."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Work on the ways of valor before we discuss such things. You are on the righteous path of the Truthbringer, but there is more work to do."); + else + e.self:Say("Leave my presence at once. Your ways of life are not acceptable to one who follows the Truthbringer."); + end + elseif(e.message:findi("heal")) then + e.self:Say("If you require the binding of wounds you should speak with Palious Jartan in the temple. He will be glad to help you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18737})) then --Tattered Note + e.self:Say("Welcome to the Guild, here's your guild tunic. Now, let's get to work."); + e.other:Faction(e.self,281,100,0); --Knight of Truth + e.other:Faction(e.self,271,-15,0); --Dimal Rage + e.other:Faction(e.self,330,-15,0); --The Freeport Militia + e.other:Faction(e.self,362,20,0); --Priests of Marr + e.other:Faction(e.self,311,10,0); --Steel Warriors + e.other:QuestReward(e.self,0,0,0,0,13554,20); --Faded Purple Tunic* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 6701})) then --a dusty old leg bone + e.self:Say("Hail, adventurer! I... what's this? Where did you get this? Never mind.. I.. I never thought we would find [him]!"); + e.other:QuestReward(e.self,0,0,0,0,6701,1); -- Item: A Dusty Old Leg Bone + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18827})) then --a testimony of truth + e.self:Say("Praise be to Marr!! You have done the impossible!! Sir Lucan is finally sent to the higher courts of the Tribunal. The city now has a chance to prosper. The Hall of Truth has been redeemed and gives you thanks. Take this, it is the Sword of Faith. May you wield it with righteousness. Beware of the remainder of the militia. They will be hunting for your head."); + e.other:Faction(e.self,281,100,0); --Knight of Truth + e.other:Faction(e.self,271,-15,0); --Dimal Rage + e.other:Faction(e.self,330,-15,0); --The Freeport Militia + e.other:Faction(e.self,362,20,0); --Priests of Marr + e.other:Faction(e.self,311,10,0); --Steel Warriors + e.other:QuestReward(e.self,0,0,0,0,13947,5000); -- Brilliant Sword of Faith + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EOF zone: freportn ID: 8077 NPC: Valeron_Dushire diff --git a/freportn/Zigg_Flinn.lua b/freportn/Zigg_Flinn.lua new file mode 100644 index 0000000..3dd3e46 --- /dev/null +++ b/freportn/Zigg_Flinn.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", My name is Zigg."); + end +end \ No newline at end of file diff --git a/freportn/a_greater_spirit.lua b/freportn/a_greater_spirit.lua new file mode 100644 index 0000000..dc088b1 --- /dev/null +++ b/freportn/a_greater_spirit.lua @@ -0,0 +1,45 @@ +-- This is for the second of the two greater spirits in North Freeport. +function event_spawn(e) + eq.set_timer("depop",1800000); +end + +function event_say(e) + if(e.message:findi("hail")) then -- Part of Shaman Epic 1.0 + e.self:Say("Greetings, shaman. Tell me, do you follow [Justice], [War], [Honor], [Fear], or [Hate]?"); + elseif(e.message:findi("i follow justice")) then -- Part of Shaman Epic 1.0 + e.self:Say("Ah, it does me much good to meet with one who holds respect and reverence for the spirits. [Trust] that your place in the whole is important. Rather than trying to enslave and command others with the powers the gods grant you, you live in harmony and balance with the world around you. There are times when we, the [true spirits] and those like you, can work together to achieve goals. Individuals who help us are known as [Heyokah]."); + elseif(e.message:findi("i follow fear")) then -- Part of Shaman Epic 1.0 + e.self:Say("You would be best served by speaking to my brother in the next room, " .. e.other:GetCleanName() .. "."); + eq.unique_spawn(8118,0,0,67,103,32.1,508); -- NPC: a_greater_spirit_ + elseif(e.message:findi("i follow war")) then -- Part of Shaman Epic 1.0 + e.self:Say("You would be best served by speaking to my brother in the next room, " .. e.other:GetCleanName() .. "."); + eq.unique_spawn(8118,0,0,67,103,32.1,508); -- NPC: a_greater_spirit_ + elseif(e.message:findi("i follow hate")) then -- Part of Shaman Epic 1.0 + e.self:Say("You would be best served by speaking to my brother in the next room, " .. e.other:GetCleanName() .. "."); + eq.unique_spawn(8118,0,0,67,103,32.1,508); -- NPC: a_greater_spirit_ + elseif(e.message:findi("i follow honor")) then -- Part of Shaman Epic 1.0 + e.self:Say("Ah, it does me much good to meet with one who holds respect and reverence for the spirits. [Trust] that your place in the whole is important. Rather than trying to enslave and command others with the powers the gods grant you, you live in harmony and balance with the world around you. There are times when we, the [true spirits] and those like you, can work together to achieve goals. Individuals who help us are known as [Heyokah]."); + elseif(e.message:findi("trust")) then -- Part of Shaman Epic 1.0 + e.self:Say("Trust is the glue of the universe. When one trusts others to do their part, it allows them to focus on what they must do themselves. The trust that others have in us also gives us the confidence to do our parts effectively, thus maintaining harmony. When one becomes dissatisfied with his part and pursues his own desires, this is called greed. And greed destroys the glue of the universe. This is why we wished the bandits under the grass."); + elseif(e.message:findi("true spirits")) then -- Part of Shaman Epic 1.0 + e.self:Say("As a shaman, spirits are known to you. They aid you if you pay them homage and respect the world around you. They also will bend to your will if you are powerful enough. We are a part of the entire universe and we exist because people believe and feel us. However [very few] know us in this form. To mortals we are but ideas, [wisps of consciousness] in an expanse of emptiness and as difficult to grasp as breath in Everfrost."); + elseif(e.message:findi("very few")) then -- Part of Shaman Epic 1.0 + e.self:Say("There are only a handful of mortals we've judged worthy to be friends and, reluctantly, masters. We call them the [Heyokah]. Bondl is one of them and he helps to test those we believe might be able to grasp our existence. There are many troubles that threaten us and our home. We seek those with the wisdom, patience, and might to help us ensure the health of the cosmos. Whether you seek balance or personal power, this is important to you."); + elseif(e.message:findi("wisps of consciousness")) then -- Part of Shaman Epic 1.0 + e.self:Say("It is difficult for mortals to grasp what we are for we are not material that can be held or consumed. We are the spirit that drives beings to do what beings do. The wolf lives to run and hunt. When you ask for his aid, his spirit enters your body and you 'become' wolf. The ox is the personification of endurance and when he enters your body, you do not become an ox, you become all that is ox. I myself am the spirit of understanding."); + elseif(e.message:findi("heyokah")) then -- Part of Shaman Epic 1.0 + e.self:Say("The Heyokah are our mortal counterparts. Some are our friends who seek to help us in whatever goals we deem important. Some seek nothing more than to enslave and command us to do their bidding. We accept this and often make deals with those we realize are powerful enough to accomplish what needs to be done. To judge such individuals, we have prepared a test. We ask that before we enter into these contracts, the shaman walk the [path of the Heyokah]. We see you may be worthy. Will you walk the path? You will be rewarded for your efforts, albeit grudgingly."); + e.other:QuestReward(e.self,0,0,0,0,1666); + eq.delete_global("shamanbondl"); + elseif(e.message:findi("i will walk the path")) then -- Part of Shaman Epic 1.0 + e.self:Say("That is good. You will need to walk three paths before you can reach that of the Heyokah. The paths of patience, wisdom, and might. First, you must learn patience. Take this gem and go on a pilgrimage to an island in the great water the wasichu call Erud's Crossing. The Kerrans there are our allies and can show you to our next contact, Ooglyn. Give Ooglyn the gem and do what she asks. As you walk the path, remember what you've learned about trust."); + e.other:QuestReward(e.self,0,0,0,0,0,1000); + eq.depop(); + end +end + +function event_timer(e) + eq.depop(); +end + +-- EOF a_greater_spirit \ No newline at end of file diff --git a/freportn/a_greater_spirit_.lua b/freportn/a_greater_spirit_.lua new file mode 100644 index 0000000..adf6008 --- /dev/null +++ b/freportn/a_greater_spirit_.lua @@ -0,0 +1,32 @@ +-- This is for the second of the two greater spirits in North Freeport. +function event_spawn(e) + eq.set_timer("depop",1800000); +end + +function event_say(e) + if(e.message:findi("hail")) then -- Part of Shaman Epic 1.0 + e.self:Say("It is good to see you. We're glad you trusted in our brother and did what was asked regardless of Bondl's intentions. Thi sfill us with joy, as the true spirits work in ways most people would not understand and trust is the first lesson of the Heyokah."); + elseif(e.message:findi("trust")) then -- Part of Shaman Epic 1.0 + e.self:Say("Trust is the glue of the universe. When one trusts others to do their part, it allows them to focus on what they must do themselves. The trust that others have in us also gives us the confidence to do our parts effectively, thus maintaining harmony. When one becomes dissatisfied with his part and pursues his own desires, this is called greed. And greed destroys the glue of the universe. This is why we wished the bandits under the grass."); + elseif(e.message:findi("true spirits")) then -- Part of Shaman Epic 1.0 + e.self:Say("As a shaman, spirits are known to you. They aid you if you pay them homage and respect the world around you. They also will bend to your will if you are powerful enough. We are a part of the entire universe and we exist because people believe and feel us. However [very few] know us in this form. To mortals we are but ideas, [wisps of consciousness] in an expanse of emptiness and as difficult to grasp as breath in Everfrost."); + elseif(e.message:findi("very few")) then -- Part of Shaman Epic 1.0 + e.self:Say("There are only a handful of mortals we've judged worthy to be friends and, reluctantly, masters. We call them the [Heyokah]. Bondl is one of them and he helps to test those we believe might be able to grasp our existence. There are many troubles that threaten us and our home. We seek those with the wisdom, patience, and might to help us ensure the health of the cosmos. Whether you seek balance or personal power, this is important to you."); + elseif(e.message:findi("wisps of consciousness")) then -- Part of Shaman Epic 1.0 + e.self:Say("It is difficult for mortals to grasp what we are for we are not material that can be held or consumed. We are the spirit that drives beings to do what beings do. The wolf lives to run and hunt. When you ask for his aid, his spirit enters your body and you 'become' wolf. The ox is the personification of endurance and when he enters your body, you do not become an ox, you become all that is ox. I myself am the spirit of understanding."); + elseif(e.message:findi("heyokah")) then -- Part of Shaman Epic 1.0 + e.self:Say("The Heyokah are our mortal counterparts. Some are our friends who seek to help us in whatever goals we deem important. Some seek nothing more than to enslave and command us to do their bidding. We accept this and often make deals with those we realize are powerful enough to accomplish what needs to be done. To judge such individuals, we have prepared a test. We ask that before we enter into these contracts, the shaman walk the [path of the Heyokah]. We see you may be worthy. Will you walk the path? You will be rewarded for your efforts, albeit grudgingly."); + e.other:QuestReward(e.self,0,0,0,0,1666); + eq.delete_global("shamanbondl"); + elseif(e.message:findi("i will walk the path")) then -- Part of Shaman Epic 1.0 + e.self:Say("That is good. You will need to walk three paths before you can reach that of the Heyokah. The paths of patience, wisdom, and might. First, you must learn patience. Take this gem and go on a pilgrimage to an island in the great water the wasichu call Erud's Crossing. The Kerrans there are our allies and can show you to our next contact, Ooglyn. Give Ooglyn the gem and do what she asks. As you walk the path, remember what you've learned about trust."); + e.other:QuestReward(e.self,0,0,0,0,0,1000); + eq.depop(); + end +end + +function event_timer(e) + eq.depop(); +end + +-- EOF a_greater_spirit_ \ No newline at end of file diff --git a/freportn/a_minnow.lua b/freportn/a_minnow.lua new file mode 100644 index 0000000..a3023a5 --- /dev/null +++ b/freportn/a_minnow.lua @@ -0,0 +1,14 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13861})) then + e.self:Emote("darts into the jar, or just darted past it!! The Knights of Truth do not tolerate people attempting to catch these fish!!"); + e.other:Faction(e.self,281,-2,0); -- Faction: Knights of Truth + e.other:Faction(e.self,271,1,0); -- Faction: Dismal Rage + e.other:Faction(e.self,330,1,0); -- Faction: The Freeport Militia + e.other:Faction(e.self,362,-2,0); -- Faction: Priests of Marr + e.other:Faction(e.self,311,-2,0); -- Faction: Steel Warriors + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(13861,13862)); -- Item(s): A Jar of Liquid (13861), Fish in a Jar (13862) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportw/Arinna_Trueblade.lua b/freportw/Arinna_Trueblade.lua new file mode 100644 index 0000000..fcb45e4 --- /dev/null +++ b/freportw/Arinna_Trueblade.lua @@ -0,0 +1,52 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met, "..e.other:GetName()..". I am Arianna Trueblade, Warlord of the Steel Warriors. I am personally in charge of all the training that our young warriors receive. I take pride in knowing that my teaching can help make the foundation of a Freeport Champion. If you are a [warrior] then we might just have something to talk about."); + elseif(e.other:Class() == "Warrior") then + if(e.message:findi("warrior")) then + e.self:Say("So you think you have what it takes to become one of Freeports finest? I will warn you now that we expect every single warrior that is brought into our ranks to go through a series of exercises. Rest assured you will be rewarded for your hard work with a set of armor that I will walk you though the process of making. Are you [ready to begin your testing]?"); + elseif(e.message:findi("ready to begin")) then + e.self:Say("Very well, "..e.other:GetName()..". Here is your Steel Warriors Mail Kit. This kit will be your main tool in creating your own armor. You will gather various items from all areas of Freeport from monsters and stores alike. You will use specific item combinations in this kit to fashion together armor materials that you will combine in a forge with the appropriate mold to make an armor piece. Once you are ready to attempt a piece of armor simply tell me what piece you want to craft. I will then present you with the recipe and mold for Steel Warrior [Helms], [Bracers], [Armguards], [Boots], [Greaves], [Gauntlets] and [Breastplates]."); + e.other:SummonCursorItem(17262); -- Steel Warriors Mail Kit + elseif(e.message:findi("helm")) then + e.self:Say("Any Steel Warrior that is caught not wearing a helm is usually placed on probation. We feel it is necessary sometimes to do this so that our younger ones in training will understand the importance of keeping your head well protected. To create your helm material you will need to combine two Bricks of Crude Iron Ore, one Rat Ear, one Meat Pie and one Barley in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Steel Warriors Helm."); + e.other:SummonCursorItem(22610); -- An Enchanted Helm Mold + elseif(e.message:findi("bracer")) then + e.self:Say("As you progress further through your training you will find yourself in heavy battle more and more often. Bracers will ensure that you are able to fend off your opponents blows with minimum injury. To create your bracer material you will need to combine one Brick of Crude Iron Ore, one Rotting Zombie Skull, one Snake Bile and one Tiny Dagger in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Steel Warriors Bracer."); + e.other:SummonCursorItem(22611); -- An Enchanted Bracer Mold + elseif(e.message:findi("armguards")) then + e.self:Say("A slash or gash to the arms can greatly hinder a warrior's combat abilities. Wearing these armguards will ensure that this does not happen. To create your armguard material you will need to combine two Bricks of Crude Iron Ore, two Young Kodiak Paws, one Young Plains Cat Scalp and one Freeport Stout in your assembly kit. Once you have created the proper material, take it to a forge along with this mold to fashion your very own Steel Warriors Armguards."); + e.other:SummonCursorItem(22613); -- An Enchanted Armguard + elseif(e.message:findi("boots")) then + e.self:Say("Boots are very necessary for any warrior especially when you will usually be the one leading most combat units. Being on the front line and treading across terrains first make good boots a must. To create your boots material you will need to combine three Bricks of Crude Iron Ore, one Shadow Wolf Tibia and two Spiderling Eyes in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Steel Warriors Boots."); + e.other:SummonCursorItem(22612); -- An Enchanted Boot Mold + elseif(e.message:findi("greaves")) then + e.self:Say("While most armor pieces are very vital to a young warriors survival, greaves are one of the most important armor pieces you will craft. To create your greaves material you will need to combine four Bricks of Crude Iron Ore, one Giant Fire Beetle Brain, one Lion Tail, one Bottle and one Young Puma Skin in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Steel Warriors Greaves."); + e.other:SummonCursorItem(22614); -- An Enchanted Greaves Mold + elseif(e.message:findi("gauntlets")) then + e.self:Say("Keeping your hands well guarded is without question the most important thing a warrior will do. Suffering a blow to the hands that would prevent you from defending yourself would most certainly mean death. To create your gauntlet material you will need to combine three Bricks of Crude Iron Ore, one Armadillo Tail, one Severed Orc Foot, and two Spider Legs in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Steel Warriors Gauntlets."); + e.other:SummonCursorItem(22615); -- Item: An Enchanted Gauntlet Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("Your dedication to learning everything about your class is impressive, "..e.other:GetName()..". I have no doubt that you are ready to collect the pieces for your Steel Warriors Breastplate. To create your breastplate material you will need to combine five Bricks of Crude Iron Ore, one Deathfist Orc Skull, one Woven Spider Silk, one Armadillo Carapace, one Matted Lion Pelt and one Rusty Short Sword in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Steel Warriors Breastplate. Please come back to see me after you are finished with your breastplate for your [final task]."); + e.other:SummonCursorItem(22616); -- An Enchanted Breastplate Mold + elseif(e.message:findi("final task")) then + e.self:Say("I am in need of some assistance to craft a special sword that I would like to present all graduates of my training like yourself with. However. I don't have all the pieces I need to make one. If you could retrieve a Pristine Giant Scarab Leg, one Lion Paw and one Vial of Smoke I will have all I need to create this weapon. I would have no problem presenting you with the first if I was able to create it. See you soon."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9919,item2 = 9918,item3 = 9923})) then -- Pristine Giant Scarab Leg, Lion Paw, Vial of Smoke + e.self:Say("Your determination to further your training and knowledge never ceases to amaze me. I knew I could count on you to retrieve these items for me. Luck was also on my side because I was able to craft the blade we spoke of before. May it protect you in all of your battles that await you. Excellent work "..e.other:GetName().."."); + e.other:Faction(e.self,311,25); -- Steel Warriors + e.other:Faction(e.self,262,5); -- Guards of Qeynos + e.other:Faction(e.self,230,-3); -- Corrupt Qeynos Guards + e.other:Faction(e.self,330,-3); -- Freeport Militia + e.other:Faction(e.self,281,5); -- Knights of Truth + e.other:QuestReward(e.self,0,0,0,0,9940,100); -- Jagged Blade of the Steel Warrior + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EOF Arinna_Trueblade diff --git a/freportw/Armorer_Dellin.lua b/freportw/Armorer_Dellin.lua new file mode 100644 index 0000000..b4ceeba --- /dev/null +++ b/freportw/Armorer_Dellin.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail!! If you be a new reserve member then show me your Militia Armory Token. If you are not yet initiated then I suggest you head to the Toll Gate in the Commonlands and speak with Guard Valon."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12273})) then + e.self:Say("Welcome to the Freeport Militia. As a reserve member we require you to wear this tunic and fight when, who and wherever Sir Lucan commands, no questions asked!! There is no turning back!! Remember to keep clear of North Freeport. You have made a wise decision. Hail Sir Lucan!!"); + e.other:Faction(e.self,330,15); -- freeport militia + e.other:Faction(e.self,336,2); -- coalition of tradefolk underground + e.other:Faction(e.self,281,-1); -- knights of truth + e.other:Faction(e.self,362,-1,0); -- priests of marr + e.other:QuestReward(e.self,0,0,0,0,3097,10000); -- Item: Reserve Militia Tunic + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportw/Boomba_the_Big.lua b/freportw/Boomba_the_Big.lua new file mode 100644 index 0000000..07c0a6d --- /dev/null +++ b/freportw/Boomba_the_Big.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Say("Me finds sumting. Goody!"); + end + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hullo! Me is Boomba. Me make da bestest pickles in da Norrath. Me gots da dwarfies, da halflings, da humies - me even gots da pixie pickles! Of course, all of dem were baddies from da dunjuns. Da guards say it gud ta pickle da baddies."); + end +end \ No newline at end of file diff --git a/freportw/Brena_Donyld.lua b/freportw/Brena_Donyld.lua new file mode 100644 index 0000000..1d3f731 --- /dev/null +++ b/freportw/Brena_Donyld.lua @@ -0,0 +1,4 @@ +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade); +end \ No newline at end of file diff --git a/freportw/Brina_Foxtripper.lua b/freportw/Brina_Foxtripper.lua new file mode 100644 index 0000000..1d3f731 --- /dev/null +++ b/freportw/Brina_Foxtripper.lua @@ -0,0 +1,4 @@ +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade); +end \ No newline at end of file diff --git a/freportw/Cain_Darkmoore.lua b/freportw/Cain_Darkmoore.lua new file mode 100644 index 0000000..a32a5c5 --- /dev/null +++ b/freportw/Cain_Darkmoore.lua @@ -0,0 +1,44 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! We are the Steel Warriors of Freeport. Our training disciplines have created some of the finest warriors ever to walk upon Norrath. Perhaps the bards shall sing songs of you one day. Let your first mission be the extermination of [Clan Deathfist]."); + elseif(e.message:findi("clan deathfist")) then + e.self:Say("The orcs of the Commonlands call themselves Clan Deathfist. They have committed many vile acts upon the residents of the Commonlands as well as persons traveling to and from Freeport. They must be destroyed. Go forth to slay them. I shall pay a bounty for every two Deathfist belts. If you are a true warrior of the bunker. perhaps you can begin with [the green and blue]."); + elseif(e.message:findi("bigger problem")) then + e.self:Say("The bigger problem is the Freeport Militia. Go to the Hall of Truth and speak with the Knights of Truth about that. They have already started their campaign to rid the city of the militia. The so-called Freeport Militia is not to be trusted."); + elseif(e.message:findi("green and blue")) then + e.self:Say("The green and blue was a test for all skilled warriors. But we have no more bunker battle blades to spare, and I can not offer you the green and the blue. We must prepare for war!!"); + elseif(e.message:findi("bunker battle blade")) then + e.self:Say(" The bunker battle blade was crafted and enchanted for use by warriors only. It has the power to strike down those creatures which hide behind their magic. Once bestowed upon a warrior, it cannot leave your side or it shall vanish from this realm forever. One must perform the [green and blue] to earn such a blade."); + elseif(e.message:findi("opal")) then + e.self:Say("Opal. Beautiful Opal Darkbriar. Never have I gazed upon a more beautiful creature. She works as a librarian at the Academy of Arcane Science. Some day she shall be mine. A warrior as bold as myself deserves the very best and she is truly that."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + local count = item_lib.count_handed_item(e.self, e.trade, {13916}, 2); -- Deathfist Slashed Belt x 2 + if(count > 0) then + repeat + e.self:Say("Very fine work " .. e.other:GetCleanName() .. ". With your help, we shall soon rid the commonlands of the orcs. Then we can move on to a [bigger problem]."); + e.other:Faction(e.self,311,5,0); -- Steel Warriors + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:Faction(e.self,230,-1,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,330,-1,0); -- Freeport Militia + e.other:Faction(e.self,281,1,0); -- Knights of Truth + e.other:QuestReward(e.self,0,0,8,0,0,7500); + count = count - 1; + until count == 0; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18748})) then -- A Tattered Note + e.self:Say("Welcome to the Steel Warriors, young warrior. It is time to prove your mettle. Look to the outskirts of Freeport and join the fray. Show Clan Deathfist what a warrior of the bunker can do."); + e.other:Faction(e.self,311,100,0); -- Steel Warriors + e.other:Faction(e.self,262,20,0); -- Guards of Qeynos + e.other:Faction(e.self,230,-15,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,330,-15,0); -- Freeport Militia + e.other:Faction(e.self,281,20,0); -- Knights of Truth + e.other:QuestReward(e.self,0,0,0,0,13572,20); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +--END of FILE Zone:freportw -- Cain_Darkmoore diff --git a/freportw/Captain_Hazran.lua b/freportw/Captain_Hazran.lua new file mode 100644 index 0000000..8481dac --- /dev/null +++ b/freportw/Captain_Hazran.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, citizen! Welcome to the Freeport Militia House. It is time for you to serve the state. You will assist us in our war with [Clan Deathfist] before you are truly accepted into our city. We urge you to be all we command you to be."); + elseif(e.message:findi("clan deathfist")) then + e.self:Say("Clan Deathfist are the orcs of the Commonlands. They are a nuisance and Sir Lucan has ordered their extermination. You will go forth into the Commonlands and kill these orcs. Clan Deathfist members are known to wear a clan belt. Bring a belt to me as proof of each death and you shall receive your wages and prove your allegiance to Freeport and all that is good."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + local count = item_lib.count_handed_item(e.self, e.trade, {13916}, 1); -- Deathfist Slashed Belt x 1 + if(count > 0) then + repeat + e.self:Say("Good work, warrior. You are good militia material. Beware though, there are some who dare to call us foe. You have performed so well!"); + e.other:Faction(e.self,330,5); -- Freeport Militia + e.other:Faction(e.self,336,1); -- Coalition of Tradefolks Underground + e.other:Faction(e.self,281,-1); -- Knights of Truth + e.other:Faction(e.self,362,-1); -- Priest of Marr + e.other:QuestReward(e.self,0,0,math.random(10),0,0,5000); + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:freportw ID:9109 -- Captain_Hazran diff --git a/freportw/Dooly_Jonkers.lua b/freportw/Dooly_Jonkers.lua new file mode 100644 index 0000000..a2228e0 --- /dev/null +++ b/freportw/Dooly_Jonkers.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Greetings, %s! Welcome to the Academy of Arcane Science. Nowhere on Norrath can you find a greater learning center.",e.other:GetName())); + elseif(e.message:findi("retlon brenclog")) then + e.self:Say("I'm very sorry to report that Retlon was kidnapped by some vile orcs from Crushbone. And I haven't seen him since."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freportw -- Dooly_Jonkers \ No newline at end of file diff --git a/freportw/Driana_Poxsbourne.lua b/freportw/Driana_Poxsbourne.lua new file mode 100644 index 0000000..d8af16b --- /dev/null +++ b/freportw/Driana_Poxsbourne.lua @@ -0,0 +1,20 @@ +function event_say(e) + e.self:Say("Leave before I call the guard. Don't come back, " .. e.other:Race() .. "."); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1797,item2 = 1797,item3 = 1797})) then + e.self:Say("Ahh wonderful work " .. e.other:GetCleanName() .. " Here is the substance....don't spill it HAHAHAaahhahehehe...yes......you don't want to spill that heheh."); + e.other:Faction(e.self,221,2,0); -- Bloodsabers + e.other:Faction(e.self,262,-1,0); -- Guards of Qeynos + e.other:Faction(e.self,296,1,0); -- Opal Dark Briar + e.other:Faction(e.self,341,-1,0); -- Priests of Life + e.other:Faction(e.self,230,1,0); -- Corrupt Qeynos Guards + e.other:QuestReward(e.self,0,0,0,0,1793,2000); -- Putrid substance + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:freportw -- Driana_Poxsbourne diff --git a/freportw/Glyssa_Sonshaw.lua b/freportw/Glyssa_Sonshaw.lua new file mode 100644 index 0000000..a17a324 --- /dev/null +++ b/freportw/Glyssa_Sonshaw.lua @@ -0,0 +1,18 @@ +-- no response on hail from live + +function event_trade(e) + local item_lib = require("items"); + local text = "I require the parchment from Leraena as well as the Odd Cold Iron Necklace."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1772,item2 = 14585},1,text)) then -- sealed parchment (1st), Odd Cold Iron Necklace + e.self:Say("Ah..yes, I have seen this symbol before. There is a kobold that lives among the gnomes of Ak'anon. He may be reluctant to speak with you but you have no need to fear him. He is a follower of Brell Serilis and a valuable source of information on kobold society and culture. I will construct a message for him. Deliver the message and necklace and perhaps he can enlighten you to its meaning."); + e.other:Faction(e.self,220,10); -- Faction: Arcane Scientists + e.other:Faction(e.self,281,2); -- Faction: Knights of Truth + e.other:Faction(e.self,296,-1); -- Faction: Opal Dark Briar + e.other:Faction(e.self,330,-1); -- Faction: The Freeport Militia + e.other:QuestReward(e.self,{items = {14585,1779},exp = 1000}); -- Odd Cold Iron Necklace, sealed parchment (2nd) + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freportw -- Glyssa_Sonshaw diff --git a/freportw/Guard_Alayle.lua b/freportw/Guard_Alayle.lua new file mode 100644 index 0000000..7525eb3 --- /dev/null +++ b/freportw/Guard_Alayle.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, citizen! You should not be in the Militia House. These are restricted grounds. Please leave at once unless you have business here."); + elseif(e.message:findi("truth is good")) then + e.self:Say("Ssshhh!! Pipe down. The others might hear you. You must have something for me. Kalatrina must have given you something if you serve the Hall of Truth. If you have nothing please leave. You will blow my cover."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18817})) then -- Sealed Letter + e.self:Say("This is not good news. I must leave immediately. Here. Take this to Kala.. I mean my father. I found it on the floor of Sir Lucan D'Lere's quarters. Thanks again, messenger. I got this just in time."); + e.other:Faction(e.self,311,1,0); -- Steel Warriors + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:Faction(e.self,230,-1,0); -- Corrupt Guards of Qeynos + e.other:Faction(e.self,330,-1,0); -- Freeport Militia + e.other:Faction(e.self,281,1,0); -- Knights of Truth + e.other:QuestReward(e.self,0,0,0,0,18818); -- A Tattered Flier + eq.unique_spawn(9143,87,0,-154,-55,-10,128); -- spawns Krazen Loosh + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + e.self:Say("'Oh no!! It is too late!! Run!!"); + eq.signal(9143,1,30000); -- NPC: Krazen_Loosh +end + +-- END of FILE Zone:freportw Guard_Alayle diff --git a/freportw/Guard_Lithnon.lua b/freportw/Guard_Lithnon.lua new file mode 100644 index 0000000..403e877 --- /dev/null +++ b/freportw/Guard_Lithnon.lua @@ -0,0 +1,3 @@ +function event_signal(e) + eq.attack_npc_type(9141); +end \ No newline at end of file diff --git a/freportw/Hemia_Skemner.lua b/freportw/Hemia_Skemner.lua new file mode 100644 index 0000000..461faf2 --- /dev/null +++ b/freportw/Hemia_Skemner.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("How are you? Welcome to the Academy of Arcane Science. Please feel free to roam. May knowledge be your goal. Be you a [fellow scientist] or visitor, I am sure you will find whatever you seek."); + elseif(e.message:findi("fellow scientist")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("That is good. I hope you can handle the knowledge of arcane science. Some have gone mad conducting research. Such a person is [Lydl Mastat]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The word of mouth in the Academy of Arcane Science is that you are no foe, but you have yet to prove your worth to us. Perform more tasks for the great Tara Neklene."); + else + e.self:Say("You had best leave my sight. I am a faithful member of the Academy of Arcane Science and you are no ally of ours."); + end + elseif(e.message:findi("lydl mastat")) then + e.self:Say("Lydl Mastat is nothing more than a young apprentice of mine. He went mad working on a formula for deep water breathing. He now roams the outskirts of Freeport boasting of power he does not have. Someone should [teach Lydl a lesson]."); + elseif(e.message:findi("teach lydl a lesson")) then + e.self:Say("Then go. He appears near the gates of Freeport from time to time. He is not powerful, but he has a secret. Nothing save magic can harm him. This was the result of an experimental potion he drank. Slay him and return his locked spellbook to me."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13863})) then -- A Locked Book + e.self:Say("You have done the world of magic a great justice, " .. e.other:GetCleanName() .. "."); + e.other:Faction(e.self,220,10,0); -- Arcane Scientists + e.other:Faction(e.self,281,2,0); -- Knights of Truth + e.other:Faction(e.self,296,-1,0); -- Opal Dark Briar + e.other:Faction(e.self,330,-1,0); -- Freeport Militia + e.other:QuestReward(e.self,math.random(10),math.random(10),math.random(5),0,0,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freportw -- Hemia_Skemner diff --git a/freportw/Hollish_Tnoops.lua b/freportw/Hollish_Tnoops.lua new file mode 100644 index 0000000..8da4019 --- /dev/null +++ b/freportw/Hollish_Tnoops.lua @@ -0,0 +1,3 @@ +function event_spawn(e) + e.self:SetRunning(true); +end diff --git a/freportw/Hyrill_Pon.lua b/freportw/Hyrill_Pon.lua new file mode 100644 index 0000000..55b9af7 --- /dev/null +++ b/freportw/Hyrill_Pon.lua @@ -0,0 +1,41 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What do you want? Leave me be! Can't a man drown his sorrows in peace!?"); + elseif(e.message:findi("drown.* sorrow")) then + e.self:Say("I can buy my own drinks, thank you. Now, leave me alone."); + elseif(e.message:findi("letter.* yiz")) then + e.self:Say("My brother Yiz?! That worthless hunk of orc dung... Last I heard, he was still searching for those [blasted eyes]."); + elseif(e.message:findi("blasted eye")) then + e.self:Say("That is none of your business, bub!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18010})) then -- Torn Parchment + e.self:Say("Peh! He thinks this old skull he found is a legendary skull of Wun Toque. It is said, a wizard who possesses one is granted power and intelligence far beyond those of his peers. Yiz was searching for the skulls missing ruby eyes. It seems he found the location of the first eye. Hmm.. Lynuga.. Lynuga.. I think I have heard that name before.. Yeah! Now I remember. I met her in the Foreign Quarter of Neria.. um.. Highpass Hold. She was trying to hawk some stolen gems! I think she mumbled something about going home to Grobb. I sure don't have time to track her down."); + e.other:Faction(e.self,346,10); -- Faction: Commons Residents + e.other:Faction(e.self,330,2); -- Faction: The Freeport Militia + e.other:Faction(e.self,281,2); -- Faction: Knights of Truth + e.other:Faction(e.self,362,1); -- Faction: Priests of Marr + e.other:QuestReward(e.self,0,0,0,0,0,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13987})) then -- Jeweled Skull (1st version) + e.self:Say("You found it!? My sap of a brother was right after all! I sure don't want that thing. It sends shivers down my spine just holding it. Here. Take it!"); + e.other:Faction(e.self,346,100); -- Faction: Commons Residents + e.other:Faction(e.self,330,25); -- Faction: The Freeport Militia + e.other:Faction(e.self,281,25); -- Faction: Knights of Truth + e.other:Faction(e.self,362,15); -- Faction: Priests of Marr + e.other:QuestReward(e.self,0,0,0,0,13988,2000); -- Jeweled Skull (2nd version) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13988})) then -- Jeweled Skull (2nd version) + e.self:Say("'Hmmm. On second thought, I might be able to get a good price for this in Neria... um... Highpass Hold. See ya, chum!"); + e.other:Faction(e.self,346,25); -- Faction: Commons Residents + e.other:Faction(e.self,330,6); -- Faction: The Freeport Militia + e.other:Faction(e.self,281,6); -- Faction: Knights of Truth + e.other:Faction(e.self,362,3); -- Faction: Priests of Marr + e.other:QuestReward(e.self,0,0,0,0,0,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freportw -- Hyrill_Pon.pl diff --git a/freportw/Janam_Rekish.lua b/freportw/Janam_Rekish.lua new file mode 100644 index 0000000..9af4d0d --- /dev/null +++ b/freportw/Janam_Rekish.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ah. hello there. friend! Me an' Rebby here. we're a just couple o' regular merchants. Though we've got nothin' to sell right now. we'd gladly take any donations. Them's the breaks. I suppose."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18015})) then -- Note to Janam + e.self:Emote("scribbles out a note and says, 'Please make sure that Harkin gets this right away. If you lose it, it could mean both of our heads.'"); + e.other:QuestReward(e.self,0,0,0,0,18016,375); -- Note to Harkin + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freportw -- Janam_Rekish \ No newline at end of file diff --git a/freportw/Joshua.lua b/freportw/Joshua.lua new file mode 100644 index 0000000..cb17638 --- /dev/null +++ b/freportw/Joshua.lua @@ -0,0 +1,13 @@ +-- no response to hail + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29008})) then -- bucket of water + e.self:Emote("dips his emaciated hand into the bucket and brings the water to his mouth. As he does, you hear a soft thump from outside and notice that through the window his sister has collapsed. A glimmer enfolds her body, and you notice the water in Joshua's hand gleam a pure, bright light for a moment. 'Thank you, sir. I hope my sister returns soon. I feel better for some reason.'"); + e.other:QuestReward(e.self,0,0,0,0,29009,500); -- bucket of pure water + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freportw -- Joshua \ No newline at end of file diff --git a/freportw/Jyle_Windshot.lua b/freportw/Jyle_Windshot.lua new file mode 100644 index 0000000..d140a88 --- /dev/null +++ b/freportw/Jyle_Windshot.lua @@ -0,0 +1,30 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("hail")) then + e.self:Say("Hello. Might I ask what you are looking for?"); + elseif(e.message:findi("treant wood")) then + if(fac < 6) then + e.self:Say("You are a new courier from the Faydarks. I am sorry I did not stay closer to the docks. I hear that part of Freeport is dangerous and is filled with many rogues. I shall require a new Small Lantern in trade for the Treant Wood."); + else + e.self:Say("Your ways are considered vile to Faydark's Champions. Leave before my rage overcomes my restraint."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13003})) then -- Small Lantern + e.self:Say("Thanks, friend. I have run a long way to get here in time. Mostly at night. I lost my lantern in a card game in Highkeep."); + e.other:Faction(e.self,246,1,0); -- Faydark's Champions + e.other:Faction(e.self,279,1,0); -- King Tearis Thex + e.other:Faction(e.self,226,1,0); -- Clerics of Tunare + e.other:Faction(e.self,310,1,0); -- Soldiers of Tunare + e.other:Faction(e.self,234,-1,0); -- Crushbone Orcs + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(13824, 13824, 13824, 13824, 13824, 13824, 13824, 13824, 13824, 12334),50); -- 1/10 chance of wooden heart 9/10 chance of Wooden Shards + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--eof freportw - Jyle Windshot diff --git a/freportw/Klom_Jysun.lua b/freportw/Klom_Jysun.lua new file mode 100644 index 0000000..25a7a1d --- /dev/null +++ b/freportw/Klom_Jysun.lua @@ -0,0 +1,50 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Pleasure to meet you "..e.other:GetName()..". I am Klom Jysun, Grandmaster of the Ashen Order. I have lived in the great city of Freeport for quite sometime now and have watched the city evolve and change. Nowadays though I am in charge of training new members of the Ashen Fist. If you are a young monk and are in need of some armor I might have some work for you. Are you a [monk]?"); + elseif(e.message:findi("monk")) then + e.self:Say("I am always pleased when a new disciple visits our sacred halls. If you are [interested] in crafting your own armor I have a number of gathering tasks for you to do that will test both your navigational and fighting skills."); + elseif(e.message:findi("interested")) then + e.self:Say("I am very pleased to hear about your interest in proving your worth to the Ashen Order. First let me present you with this Fistfighters Sewing Kit. Inside of it you will combine [various components] to form armor materials. Once you have a material for a certain piece of armor you will combine it in a Loom along with the appropriate pattern. When you inform me what piece of armor you [want] to craft. I will be able to present you with the component recipe and pattern needed for crafting it."); + e.other:SummonCursorItem(17261); -- Fistfighters Sewing Kit ID-17261 + elseif(e.message:findi("various components")) then + e.self:Say("The items you will need to collect are all over the Freeport area, some in stores some off vicious monsters. If you are up for the challenge though I will be able to provide you with the armor recipes and patterns for Stonehand [Cap], [Bracers], [Sleeves], [Sandals], [Trousers], [Gloves] and [Robes]. All you will need to do is tell me what piece of armor you [want to craft], and I will be able to present you with the component recipe and pattern needed for crafting it."); + elseif(e.message:findi("cap")) then + e.self:Say("A cap will almost certainly be your most important piece of armor you will craft. To create your cap material you will need to combine 2 Matted Lion Pelts, 1 Malachite, 1 Snake Scales and a Cloth Cap in your assembly kit. Once you have created the proper material take it to a Loom along with this pattern to fashion your very own Cap of the Stonehand."); + e.other:SummonCursorItem(22583); -- An Enchanted Cap Pattern ID-22583 + elseif(e.message:findi("bracer")) then + e.self:Say("In the case that you are not able to dodge a blow from an attacker a solid wristband will prevent you from getting seriously hurt. To create your bracer material you will need to combine 1 Matted Lion Pelt, 2 Rat Ears, 1 Coyote Pelt and a Cloth Wristband in your assembly kit. Once you have created the proper material take it to a Loom along with this pattern to fashion your very own Bracer of the Stonehand."); + e.other:SummonCursorItem(22584); -- An Enchanted Bracer Pattern ID-22584 + elseif(e.message:findi("sleeve")) then + e.self:Say("A monks body is a representation of all that he or she has worked so hard for. It would be a shame to see your body, especially your arms riddled with bruises. To create your sleeve material you will need to combine 2 Matted Lion Pelts, 2 Lion Tails, and Cloth Sleeves in your assembly kit. Once you have created the proper material take it to a Loom along with this pattern to fashion your very own Sleeves of the Stonehand."); + e.other:SummonCursorItem(22586); -- An Enchanted Sleeves Pattern ID-22586 + elseif(e.message:findi("sandal")) then + e.self:Say("Lightweight but effective, your Sandals of the Stoenhand will give you the appropriate foot protection without weighing you down while you are fighting. To create your sandals material you will need to combine 3 Matted Lion Pelts, 1 Giant Spider Egg Sack, 2 Severed Orc Feet, 1 Bone Chip and Cloth Sandals in your assembly kit. Once you have created the proper material take it to a Loom along with this pattern to fashion your very own Sandals of the Stonehand."); + e.other:SummonCursorItem(22585); -- An Enchanted Sandals Pattern ID-22585 + elseif(e.message:findi("trouser")) then + e.self:Say("Trousers are a definite must for any Initiate of the Ashen Fist. You will learn to generate some attacks using your legs later in your training that is why it is necessary that you keep them in as best shape as possible. To create your trouser material you will need to combine 4 Matted Lion Pelts, 1 Cutthroat Insignia Ring, 1 Spider Venom Sac and 1 Cracked Giant Scarab Carapace in your assembly kit. Once you have created the proper material take it to a Loom along with this pattern to fashion your very own Trousers of the Stonehand."); + e.other:SummonCursorItem(22587); -- An Enchanted Trousers Pattern ID-22587 + elseif(e.message:findi("glove")) then + e.self:Say("The gloves will assist you in hitting anything that might have some kind of magical barrier surrounding it preventing you from damaging it with your bare hands. To create your glove material you will need to combine 3 Matted Lion Pelts, 1 Giant Scarab Eye, 1 Rat Whisker, 1 Ale and 1 Armadillo Carapace in your assembly kit. Once you have created the proper material take it to a Loom along with this pattern to fashion your very own Gloves of the Stonehand."); + e.other:SummonCursorItem(22588); -- An Enchanted Gloves Pattern ID-22588 + elseif(e.message:findi("robe")) then + e.self:Say("Your robe is essential to your armor set and I am very pleased to hear that you are ready to craft it. To create your robe material you will need to combine 5 Matted Lion Pelts, 1 High Quality Cat Pelt, 1 Lion Mane, 1 Leaf Scarab Carapace, 1 Giant Scarab Brain and 1 Cloth Shirt in your assembly kit. Once you have created the proper material take it to a Loom along with this pattern to fashion your very own Robe of the Stonehand. Please come back to see me after you have completed your robe, I have a [favor] to ask of you."); + e.other:SummonCursorItem(22589); -- An Enchanted Robe Pattern ID-22589 + elseif(e.message:findi("favor")) then + e.self:Say("I had a student not too long ago that trained with me for quite sometime. He showed a lot of promise on his way to becoming a Grandmaster, however one day he came to tell me that he intended on joining the militia. I told him that I did not feel that was what he wanted to do but he insisted. On the day that he left he stole a headband from me that I was presented with by the Hall of Truth. This headband meant a lot to me, if you were able to find Firansad I am sure he will have it. Return it to me with two Orc Toes and I will surely reward you for your trouble."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9934,item2 = 9920,item3 = 9920})) then + e.self:Say("Your dedication to the Ashen Fist is unquestioned. I can see this by your willingness to assist me in whatever task I assigned you. I would like you to take this as a symbol of my gratitude."); + e.other:Faction(e.self,361,25); -- Ashen Order + e.other:Faction(e.self,281,3); -- Knights of Truth + e.other:Faction(e.self,309,1); -- Silent Fist Clan + e.other:QuestReward(e.self,0,0,0,0,9939,100); -- Kloms Brass Knuckles + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:freportw -- Klom_Jysun diff --git a/freportw/Krazen_Loosh.lua b/freportw/Krazen_Loosh.lua new file mode 100644 index 0000000..39f8d31 --- /dev/null +++ b/freportw/Krazen_Loosh.lua @@ -0,0 +1,25 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("The towering wall of stone is clearly unmovable at this point, being held in place by collection of magical energies."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 8) then + e.self:Say("Hello, Alayle. We just got a message from Qeynos. I think you should come with me."); + eq.signal(9141,1); -- NPC: Guard_Alayle + e.self:SetRunning(false); + end +end + +function event_signal(e) + e.self:Say("As you try to open penetrate the stone wall it is clearly being held in place by a powerful force."); + eq.attack_npc_type(9141); + eq.signal(9106,1); -- NPC: Guard_Lithnon +end + +--END of FILE Zone:freportw Krazen_Loosh diff --git a/freportw/Lady_Shae.lua b/freportw/Lady_Shae.lua new file mode 100644 index 0000000..21878b6 --- /dev/null +++ b/freportw/Lady_Shae.lua @@ -0,0 +1,40 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. It is always good to meet someone new. I am Lady Shae of the House of Dumas. And what [house] are you from?"); + elseif(e.message:findi("no house")) then + e.self:Say("Good. I care not to hang around any snobs this evening. Would you be so kind as to buy me some wine?"); + elseif(e.message:findi("steel warriors sent me")) then + e.self:Say("Thank you for checking into this matter. I told the Militia, but they just ignored me. It appears the dark elves keep coming in leaving mail for [Shintl] Lowbrew. Before I tell you more could you please buy me A white wine please."); + elseif(e.message:findi("shintl")) then + e.self:Say("Oh, please!! Do not mention that horrid little person! My stay here has turned into a nightmare because of her. She gets mail delivered to her room every so often by dark elves, of all things. I cannot stand the Teir'Dal! I wonder what is in that mail. If I just had her room key I could walk right up to the innkeeper and say, 'Mail for room two please.' That is all it would take. But enough about her. Let's talk about you buying me some drinks."); + elseif(e.message:findi("house of pancakes")) then + e.self:Say("I can tell. You look like you ATE a house of pancakes."); + elseif(e.message:findi("house of style")) then + e.self:Say("I would of never guessed by the way you look."); + elseif(e.message:findi("dyllin")) then + e.self:Say("Dyllin was the name of a Qeynos guard who was sent to pick up the list I was holding for dear, sweet Antonius. He left just yesterday. If you wish to meet up with him, I heard him say he was going to stop at Highpass Hold."); + end +end + +function event_trade(e) + local item_lib =require("items"); + local text = "Thank you... Oh my! A few more of these and I will be spilling my secrets."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13031})) then + e.self:Say("Thank you. Pandos has been telling me to try white wine forever. I mostly only drink red wine. Pardon me for getting off track. Anyway, it is a good thing you showed up. The lady in room 2 has been receiving mail from a Dark Elf. You [need the mail for room two]. The Innkeeper usually holds it for the guests."); + e.other:Faction(e.self,156,2,0); -- Faction: FelGuard + e.other:QuestReward(e.self,0,0,0,0,0,5); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13030,item2 = 13030,item3 = 13030,item4 = 13030}, 1, text)) then + e.self:Say("Oh my.. You are so kind. I can not tell you the last time I had so much fine wine. Well, there was the time Antonius Bayle told me he no longer had the time for a committed relationship. Mister big ruler of the world. Make it to the top and find someone younger. I know his plan. I hate him. I will never trust another human again. After all that, he goes and asks me to hold on to this list for him. Well I am glad it was taken from me by that [Dyllin]. Antonius Bayle has no ties to me any more!! Good riddance! Oooooh! I love him."); + e.other:Faction(e.self,156,2,0); -- Faction: FelGuard + e.other:QuestReward(e.self,0,0,0,0,0,240); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if(e.wp == 12) then + e.self:Say("I will be back soon, Pandos. Please keep an eye on my room for me."); + eq.signal(9057,3,3000); -- NPC: Pandos_Flintside + end +end diff --git a/freportw/Larn_Brugal.lua b/freportw/Larn_Brugal.lua new file mode 100644 index 0000000..2f9d7f6 --- /dev/null +++ b/freportw/Larn_Brugal.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day to you " .. e.other:GetCleanName() .. " I hope you yearn to become a Steel Warrior as we all are here in the Bunker. We are in need of more recruits to continue the [war]."); + elseif(e.message:findi("war")) then + e.self:Say("The war I speak of is the one we Steel Warriors have sworn to wage agianst [Clan Deathfist] in the Commonlands. We are doing a fine job but we require more weapons. We are expecting a shipment of blades from Groflahs Forge. We require a warrior of the bunker to [get our shipment]. Maybe you."); + elseif(e.message:findi("clan deathfist")) then + e.self:Say("If you do not know of Clan Deathfist go ask Cain who they are. He will not only tell you he will sign you up to help fight our war!"); + elseif(e.message:findi("shipment")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("We would be most thankful for your service. Please take this voucher over to Groflah at Groflahs Forge in North Freeport. He will give you the shipment of weapons."); + e.other:SummonCursorItem(18820); -- Item: Sealed Letter + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("The Steel Warriors have no cause to dislike you, but you have yet to truly prove your worth to this guild."); + else + e.self:Say("Your head shall look grand mounted on the wall of the Steel Warriors Arena!!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "This is only one sword. I requested four altogether. You shall not get your payment until I get my fourth sword." + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12241,item2 = 12242,item3 = 12243,item4 = 12244}, 1, text)) then -- Raw Short Sword 1-4 + e.self:Say("Good work, " .. e.other:GetCleanName() .. ". The bunker shall be well stocked. Here you are, my friend. Take this raw blade. You can take it to Groflah - he will sharpen and polish it for you. It should be a formidable weapon."); + e.other:Faction(e.self,311,20); -- Steel Warriors + e.other:Faction(e.self,262,4); -- Guards of Qeynos + e.other:Faction(e.self,230,-3); -- Corrupt Qeynos Guards + e.other:Faction(e.self,330,-3); -- Freeport Militia + e.other:Faction(e.self,281,4); -- Knights of Truth + e.other:QuestReward(e.self,0,math.random(10),math.random(10),0,13919,1000); + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/freportw/Linadian.lua b/freportw/Linadian.lua new file mode 100644 index 0000000..187bf59 --- /dev/null +++ b/freportw/Linadian.lua @@ -0,0 +1,36 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("hail")) then + e.self:Say("Greetings! Please look through my fine wares. I have spent most of my life practicing my skills in tailoring. I do my best to compete with the other local merchants, but I have yet to make a profit. I pray to Tunare that my [banded orc vests] will finally bring me a few extra coins."); + elseif(e.message:findi("Banded Orc Vests")) then + if(fac < 6) then + e.self:Say("Glad you are interested. I can create a leather vest I call a banded orc vest. It will aid you in repelling any disease and offers quite a bit of protection in battle. I will need some materials. For a Deathfist banded orc vest, I require two legionnaire pads worn by the clan Deathfist, one Deathfist slashed belt, and ten gold coins. For a Crushbone banded orc vest, I require two legionnaire pads worn by the Clan Crushbone, one Crushbone belt, and one silk swatch."); + else + e.self:Say("Your ways are considered vile to Faydark's Champions. Leave before my rage overcomes my restraint."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13917,item2 = 13917,item3 = 13916,item4 = 13916,gold = 10})) then -- 2x Deathfist Shoulderpads, 2x Deathfist Slashed Belt, 10 gold + e.self:Say("Grand doing business with you. Hold your nose. I can never get rid of the Orc stench of the vests. That is why the other merchants do not pay me much for them."); + e.other:Faction(e.self,276,5,0); -- Kelethin Merchants + e.other:Faction(e.self,246,1,0); -- Faydark's Champions + e.other:Faction(e.self,326,1,0); -- Emerald Warriors + e.other:Faction(e.self,5002,1,0); -- Anti-mage Faction + e.other:QuestReward(e.self,0,0,0,0,12187,150); -- Banded Orc Vest + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13319,item2 = 13319,item3 = 13318,item4 = 16482})) then -- 2x Crushbone Shoulderpads, 1x Crushbone Belt, 1x silk swatch + e.self:Say("Grand doing business with you. Hold your nose. I can never get rid of the Orc stench of the vests. That is why the other merchants do not pay me much for them."); + e.other:Faction(e.self,276,5,0); -- Kelethin Merchants + e.other:Faction(e.self,246,1,0); -- Faydark's Champions + e.other:Faction(e.self,326,1,0); -- Emerald Warriors + e.other:Faction(e.self,5002,1,0); -- Anti-mage Faction + e.other:QuestReward(e.self,0,0,0,0,12187,150); -- Banded Orc Vest + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freportw -- Linadian diff --git a/freportw/Lorme_Tredore.lua b/freportw/Lorme_Tredore.lua new file mode 100644 index 0000000..b33b0db --- /dev/null +++ b/freportw/Lorme_Tredore.lua @@ -0,0 +1,18 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18740})) then -- A Tattered Note + e.self:Say(string.format("Welcome to the Academy of Arcane Sciences. I am Lorme Tredore, Master Magician. Here is our guild robe, wear it with pride and represent us well, young %s. Now, let's get to work.",e.other:GetName())); + e.other:Faction(e.self,220,100,0); -- Arcane Scientists + e.other:Faction(e.self,281,25,0); -- Knights of Truth + e.other:Faction(e.self,296,-15,0); -- Opal Dark Briar + e.other:Faction(e.self,330,-15,0); -- The Freeport Militia + e.other:QuestReward(e.self,0,0,0,0,13559,20); -- Item: Used Violet Robe* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13951})) then -- Fleshy Orb + e.self:Say("Ah. Thank you for bringing this to me! I will make very good use of it. Here take this small token of my appreciation in return. Guard Jenkins will no longer require it as he was killed on the training field yesterday. Tsk. tsk. tsk."); + e.other:QuestReward(e.self,0,math.random(10),math.random(10),0,eq.ChooseRandom(5350,5351,5352,5353,6350,6351,6352,7350,7351,7352),10000); -- random Fine Steel Weapons + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freportw -- Lorme_Tredore diff --git a/freportw/Monia_Oakstone.lua b/freportw/Monia_Oakstone.lua new file mode 100644 index 0000000..f05ebe8 --- /dev/null +++ b/freportw/Monia_Oakstone.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Pay mind to the authorities of Freeport. Vile they may be, but powerful and many they are."); + elseif(e.message:findi("prisoner")) then + e.self:Say("Do not ponder much about the prisoners. They are mostly beggars and alley rats brought to us by the militia for use in our games. Stay clear of the [one on the end]."); + elseif(e.message:findi("on.* end")) then + e.self:Say("That one is crazy. The lantern is lit, but no one is home. Some fellow named Pietro brought him to us. He said he was in a terrible accident and now is a threat to the community. The stitches to his cranium show that it was once split wide. If you ask me, a big chunk of his brain fell out during that accident!"); + end +end \ No newline at end of file diff --git a/freportw/Nusk_Treton.lua b/freportw/Nusk_Treton.lua new file mode 100644 index 0000000..d199eab --- /dev/null +++ b/freportw/Nusk_Treton.lua @@ -0,0 +1,39 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("hail")) then + e.self:Say("Freeport!! Great trade city of Norrath!! What a wondrous place! How do you do? You are an [arcane scientist]. are you not?"); + elseif(fac < 5) then + if(e.message:findi("arcane scientist")) then + e.self:Say("Grand!! I remember my younger days within this great academy. I have spent many years of research here in Freeport. I compiled a [locked journal] of my research. Alas, I am still awaiting its return."); + elseif(e.message:findi("locked journal")) then + e.self:Say("I lent it to an old colleague of mine in Ak'Anon. He was to send it back aboard a private vessel. One Lenka Stoutheart was to return it to me. It has already been one month and counting. I wish there was a young wizard who could [seek out Lenka]."); + elseif(e.message:findi("seek out Lenka")) then + e.self:Say("What luck!! I would be most appreciative if you could find Lenka Stoutheart in Freeport and inquire where the journal strongbox might be. I do so look forward to its return."); + end + elseif(fac == 5) then + if(e.message:findi("arcane scientist") or e.message:findi("locked journal") or e.message:findi("seek out Lenka")) then + e.self:Say("The word of mouth in the Academy of Arcane Science is that you are no foe, but you have yet to prove your worth to us. Perform a tasks for the great Tara Neklene."); + end + elseif(fac > 5) then + if(e.message:findi("arcane scientist") or e.message:findi("locked journal") or e.message:findi("seek out Lenka")) then + e.self:Say("You had best leave my sight. I am a faithful member of the Academy of Arcane Science and you are no ally of ours."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13860})) then -- A Strongbox + e.self:Say("Grand and fantastic!! You have made my day complete. Here is what little I can offer. Most of my money goes into my research. Thank you."); + e.other:Faction(e.self,220,10); -- Arcane Scientists + e.other:Faction(e.self,281,2); -- Knights of Truth + e.other:Faction(e.self,296,-1); -- Opal Dark Briar + e.other:Faction(e.self,330,-1); -- The Freeport Militia + e.other:QuestReward(e.self,math.random(10),math.random(10),math.random(5),0,0,100); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freportw -- Nusk_Treton diff --git a/freportw/Opal_Darkbriar.lua b/freportw/Opal_Darkbriar.lua new file mode 100644 index 0000000..557c858 --- /dev/null +++ b/freportw/Opal_Darkbriar.lua @@ -0,0 +1,15 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18739})) then -- A tattered not + e.self:Say("Welcome to the Academy of Arcane Sciences. Here's one of our guild robes for you to wear. Now, let's get to work."); + e.other:Faction(e.self,220,100,0); -- Arcane Scientists + e.other:Faction(e.self,281,25,0); -- Knights of Truth + e.other:Faction(e.self,296,-15,0); -- Opal Dark Briar + e.other:Faction(e.self,330,-15,0); -- The Freeport Militia + e.other:QuestReward(e.self,0,0,0,0,13558,20); -- Patched Violet Robe + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freportw -- Opal_Darkbriar diff --git a/freportw/Palon_Deskeb.lua b/freportw/Palon_Deskeb.lua new file mode 100644 index 0000000..b05fa9d --- /dev/null +++ b/freportw/Palon_Deskeb.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Pleased to meet you. %s. Have you seen how clear the water is underneath the Academy? All sorts of life could flourish there. What a shame there are no [Marr Minnows] there.",e.other:GetName())); + elseif(e.message:findi("marr minnow")) then + e.self:Say("The Marr Minnow swims in the pond near the Temple of Marr. I wish I had one. Not a dead one. A live one. I need someone to [get the minnow]."); + elseif(e.message:findi("get the minnow")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Please try. Here you are. Take this jar. Offer the jar to the minnows. Maybe they will swim into it."); + e.other:SummonCursorItem(13861); -- Item: A Jar of Liquid + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The word of mouth in the Academy of Arcane Science is that you are no foe, but you have yet to prove your worth to us. Perform more tasks for the great Tara Neklene."); + else + e.self:Say("You had best leave my sight. I am a faithful member of the Academy of Arcane Science and you are no ally of ours."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13862})) then + e.self:Say("Oh! A beautiful Marr Minnow. This shall look grand in my aquarium! How lucky that you are a friend to the Academy of Arcane Science. Take your reward."); + e.other:Faction(e.self,220,5,0); -- Arcane Scientists + e.other:Faction(e.self,281,1,0); -- Knights of Truth + e.other:Faction(e.self,296,-1,0); -- Opal Dark Briar + e.other:Faction(e.self,330,-1,0); -- Freeport Militia + e.other:QuestReward(e.self,math.random(10),math.random(5),math.random(0,2),0,eq.ChooseRandom(13002,13007),100); -- Item(s): Torch (13002), Ration (13007) + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freportw -- Palon_Deskeb diff --git a/freportw/Pandos_Flintside.lua b/freportw/Pandos_Flintside.lua new file mode 100644 index 0000000..11bc5fb --- /dev/null +++ b/freportw/Pandos_Flintside.lua @@ -0,0 +1,73 @@ +local Bakery = 0; + +function event_say(e) + if(Bakery == 0) then + if(e.message:findi("hail")) then + e.self:Say("Greetings! Please move along. I am not paid to converse with strangers... unless of course you have a muffin or two..?"); + elseif(e.message:findi("brownloe bakery")) then + e.self:Say("Oh, yes! That is close by. I am sure Lady Shae will be fine for just a minute. I will just run there and run back. Thanks, friend!"); + eq.start(85); -- Move toward Brownloe Bakery + eq.set_timer("Pandos",5000); + Bakery = 1; + end + end +end + +function event_trade(e) + local muffin = 0; + local item_lib =require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13014,item2 = 13014,item3 = 13014,item4 = 13014}, 0)) then + muffin = 4; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13014,item2 = 13014,item3 = 13014}, 0)) then + muffin = 3; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13014,item2 = 13014}, 0)) then + muffin = 2; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13014}, 0)) then + muffin = 1; + end + + if(muffin > 0) then + repeat + e.self:Say("Mmmm. This smells delicious. Oh great!! No milk!! Don't you have any sense?! Just tell me the name of the bakery and I will run and get it myself. I am sure Lady Shae will be safe."); + e.other:Faction(e.self,246,1,0); -- Faydark's Champions + e.other:Faction(e.self,279,1,0); -- King Tearis Thex + e.other:Faction(e.self,226,1,0); -- Clerics of Tunare + e.other:Faction(e.self,310,1,0); -- Soldiers of Tunare + e.other:Faction(e.self,234,-1,0); -- Crushbone Orcs + e.other:QuestReward(e.self,0,0,0,0,0,5); + muffin = muffin - 1; + until muffin == 0 + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + + if(xloc == -693 and yloc == -279 and Bakery == 1) then + Bakery = 2; + eq.pause(60); + e.self:Say("I sure could use some of those famous muffins you make!"); + eq.signal(9088,1,10000); -- NPC: Pincia_Brownloe + elseif(xloc == -497 and yloc == -204 and Bakery == 2) then + eq.stop(); + eq.stop_timer("Pandos"); + Bakery = 0; + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Thank you very much! These look delicious. Well, I need to get back to duty. I'll be back tomorrow!"); + eq.signal(9088,2,10000); -- NPC: Pincia_Brownloe + elseif(e.signal == 2) then + eq.resume(); + elseif(e.signal == 3) then + e.self:Say("Yes, Lady Shae."); + eq.signal(9058,3); -- NPC: Lady_Shae + end +end + +-- End of File, Zone:freportw -- Pandos_Flintside diff --git a/freportw/Pincia_Brownloe.lua b/freportw/Pincia_Brownloe.lua new file mode 100644 index 0000000..e16c07f --- /dev/null +++ b/freportw/Pincia_Brownloe.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Brownloe Bakery. Please try our muffins. One taste and you will yearn for no other. Nothing compares to a Brownloe Muffin!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("You are in luck! I have a fresh batch that just came out of the oven!"); + eq.signal(9057, 1, 10000); -- NPC: Pandos_Flintside + elseif(e.signal == 2) then + e.self:Say("Farewell, then. I will make sure to have them ready for you tomorrow!"); + eq.signal(9057, 2, 10000); -- NPC: Pandos_Flintside + end +end + +-- END of FILE Zone:freportw -- Pincia_Brownloe \ No newline at end of file diff --git a/freportw/Ping_Fuzzlecutter.lua b/freportw/Ping_Fuzzlecutter.lua new file mode 100644 index 0000000..6c32140 --- /dev/null +++ b/freportw/Ping_Fuzzlecutter.lua @@ -0,0 +1,55 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Say("Lucky me! Someone has littered Freeport with good merchandise."); + end + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Step right up! The name's Ping Fuzzlecutter, groomer to the royal crowns of Norrath and alchemist of fine hair care products. It was I who took the grey out of Felwithe, who added curls to Kaladim and tamed the tangles of Moggok of Oggok. Step right up and find yourself a new look! Hey, is that a bald spot?!"); + elseif(e.message:findi("coffin")) then + e.self:Say("You're looking for a craftsman, are you? Well look no further! For I, Ping Fizzlecutter, am the best in all the lands! Or at lest this side of Freeport. So you're the one that Valeron was talking about, eh? Well, while you were off traipsing around the lands he and I discussed the details of the coffin. I require nothing less than these [components]. Get me them and I will gladly make you a coffin any king would be proud to be buried in!"); + elseif(e.message:findi("components")) then + e.self:Say("I require a diamond, a star ruby, a pearl, a [special fire emerald], a sapphire, a fire opal, and two enchanted platinum bars. Take this bag and combine the items once you have them all and bring it back to me."); + -- Empty Gem Bag ID-17512 + e.other:SummonCursorItem(17512); -- Item: Empty Gem Bag + elseif(e.message:findi("special fire emerald")) then + e.self:Say("Now the fire emerald I want is not the normal one you receive from most jewelers. There is one jeweler I know who has the special one I want. Last time I heard, she had traveled to the elven outpost. Just ask her about special fire emeralds."); + elseif(e.message:findi("repair the toupee")) then + e.self:Say("Ah!! You have a toupee to repair. It must be the [Mane Attraction]. I gave a one out and it seems to always fall to pieces. Seeing as it has a 100 season warranty and I only created it 5 seasons ago, I suppose I can do it. Do you want me to [make the Mane Attraction]."); + elseif(e.message:findi("what is the mane attraction")) then + e.self:Say("The Mane Attraction is a special toupee I created for a Gnome junker. He wasn't getting much attention at the taverns till I created the eye catching toupee. He became one Charismatic Gnome after that. Unfortunately, it seems to fall to pieces to easy and since it has a warranty, I have to fix it for him every time at no charge!! I will never make another. "); + elseif(e.message:findi("make the mane attraction")) then + e.self:Say("If you have the original tattered toupee then I can do it. Before you give it to me I will also need three other items. I require two clumps of hair from a Hulking Gorilla and a strand of hair from a [certain mermaid]."); + elseif(e.message:findi("certain mermaid")) then + e.self:Say("I encountered a particular mermaid with beautiful hair!! She had beautiful golden tresses. I used a lock of her hair to create the Mane Attraction. That was a while back when I was in Faydwer."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You want a Mane Attraction? Not until I get the two clumps of gorilla hair, the tattered toupee and a lock of hair from a certain mermaid."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6710})) then -- Full Gem Bag + e.self:Emote("smiles broadly as he rifles through the bag, then looks up at you and says, 'Bout time! Here is the coffin as promised.'"); + e.other:QuestReward(e.self,0,0,0,0,17080); -- Gem Encrusted Casket + -- Clumps of Hair ID- 12335 - Lock of Hair ID- 12338 - Tattered Toupee ID- 12337 + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12335,item2 = 12335,item3 = 12338,item4 = 12337},1,text)) then + e.self:Say("You are a good helper. Here you go. One genuine, charismatic, lady magnet, zero to hero making Mane Attraction!! Guaranteed to lower prices world wide. Guaranteed to last forever.. Err.. Well,.. It has a 1000 year warranty at least."); + e.other:Faction(e.self,229,5); -- Faction: Coalition of Tradefolk + e.other:Faction(e.self,281,5); -- Faction: Knights of Truth + e.other:Faction(e.self,291,3); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,336,5); -- Faction: Coalition of Tradefolk Underground + e.other:QuestReward(e.self,0,0,0,0,12254,500); -- Item: Mane Attraction + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freportw -- Ping_Fuzzlecutter + diff --git a/freportw/Plagus_Ladeson.lua b/freportw/Plagus_Ladeson.lua new file mode 100644 index 0000000..a68e42a --- /dev/null +++ b/freportw/Plagus_Ladeson.lua @@ -0,0 +1,49 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ", and welcome to the Bunker. Are you a [new warrior] or [veteran]?"); + elseif(e.message:findi("Milea")) then + e.self:Say("Milea Clothspinner. She was my one true love. She, too, is a Steel Warrior. When she left Qeynos to find adventure, my heart left also. I never saw her again, but I decided to transfer my skills to Freeport. It is probably best that I did not find her. She was in love with adventure. sigh> The women I am attracted to are always in love with another. Just like [Toala]."); + elseif(e.message:findi("Toala")) then + e.self:Say("Toala is supreme when it comes to the blade, but in the art of passion she chooses to leans toward Cain Darkmoore. I do not get it. She is a very beautiful and strong-hearted warrior. Why Cain does not like her is a mystery to me. Why does she waste her time when she could have me? After all, we men of Qeynos are known as the most romantic in all of Norrath."); + elseif(e.message:findi("in east karana")) then + e.self:Say("You have seen Milea Clothspinner!! This is great news. I wish I could travel to see her, but Cain will not allow me to do so at this time. You must take her a note for me. Here, take this to her. As a master in this order, I command you to do so immediately. Go!!"); + e.other:SummonCursorItem(18934); -- A Sealed Letter ID- 18934 - 'LoveToMilea' + elseif(fac < 5) then + if(e.message:findi("new warrior")) then + e.self:Say("Good to know you chose the Bunker to train you. It is the home of The Steel Warriors. We find our inner strengths grow through battles and deeds to further our growth. Do you [seek deeds] or [crave battle]?"); + elseif(e.message:findi("seek deeds")) then + e.self:Say("It may not be a fray, but who ever said we Steel Warriors are nothing but brawn? Recently, there has been reports of frequent visits by dark elves to the Hog Caller's Inn, here in Freeport. Go speak with Lady Shae. Tell her, the [Steel Warriors sent you]. We cannot rely on the Freeport Militia to look into such matters. They are probably involved. Bring me any clues you find."); + elseif(e.message:findi("crave battle")) then + e.self:Say("Aye!! That is good. Ask Cain Darkmoore about Clan Deathfist. Also, when striking underhand, plant your feet at shoulder width and push with your legs on contact. It does wonders and keeps your back and shoulders from aching."); + elseif(e.message:findi("veteran")) then + e.self:Say("I apologize for not knowing. I am new to the Bunker. I was a trainer at the Hall of Steel in Qeynos before this. I left Qeynos in search of [Milea] and instead found myself joining the bunker's weaponmasters."); + end + elseif(fac == 5) then + if(e.message:findi("new warrior") or e.message:findi("seek deeds") or e.message:findi("crave battle") or e.message:findi("veteran")) then + e.self:Say("The Steel Warriors have no cause to dislike you, but you have yet to prove your worth to this guild."); + end + elseif(fac > 5) then + if(e.message:findi("new warrior") or e.message:findi("seek deeds") or e.message:findi("crave battle") or e.message:findi("veteran")) then + e.self:Say("Your head shall look grand mounted on the wall of the Steel Warriors Arena!!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local fac = e.other:GetFaction(e.self); + + if(fac < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18814})) then -- A Sealed Letter ID-18814 filename "NERtoShintl" + e.self:Say("Oh my! Opal? She is providing these agents of Neriak with information regarding the Acedemy's secrets. I can not tell Cain about this. He will be furious. Show this to Toala. She will know what to do."); + e.other:QuestReward(e.self,{itemid = 18814}); -- A Sealed Letter ID-18814 filename "NERtoShintl" + elseif(fac == 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18814})) then-- A Sealed Letter ID-18814 filename "NERtoShintl" Item will be lost if not amiable or better + e.self:Say("The Steel Warriors have no cause to dislike you, but you have yet to prove your worth to this guild."); + elseif(fac > 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18814})) then-- A Sealed Letter ID-18814 filename "NERtoShintl" Item will be lost if not amiable or better + e.self:Say("Your head shall look grand mounted on the wall of the Steel Warriors Arena!!"); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EOF Plagus_Ladeson \ No newline at end of file diff --git a/freportw/Puab_Closk.lua b/freportw/Puab_Closk.lua new file mode 100644 index 0000000..a8f6b06 --- /dev/null +++ b/freportw/Puab_Closk.lua @@ -0,0 +1,43 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("hail")) then + e.self:Say("Greetings. I am Puab Closk, Master of the Ashen Order. Our home is your home, friend. Feel free to stay as long as you like. Learn our ways as many have done in the past. To fight like the tiger and strike like the cobra are your goals."); + elseif(e.message:findi("treant fists")) then + e.self:Say("You desire the treant fists? I have them and I will offer them to any [skilled monk of the Ashen House]."); + elseif(e.message:findi("who is clawfist ")) then + e.self:Say("Clawfist is a Kerran, a catman. He braved the dangers of Norrath to reach the Ashen Order. He sought knowledge of our disiples. He learned well."); + elseif(e.message:findi("where is clawfist")) then + e.self:Say("Clawfist has been banished by the Kerrans of Odus. Where they have sent him I am unsure."); + elseif(e.message:findi("skilled monk of the Ashen House")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Then you shall aid our family. My former pupil [Clawfist] has been banished by his people. You will go to him and hand him this token as proof of your origin. He shall be expecting you."); + e.other:SummonCursorItem(12369); -- Puab's Token + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("I have been watching you, and appreciate the help you've given to the brothers and sisters of the Ashen Order, but I feel that such a vital matter should be left to one of our more trusted members."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18746})) then -- A tattered note + e.self:Say("Welcome to the house of the Ashen Order. We are a small guild of monks who have devoted our lives to refining our minds, souls, and physical beings to their maximum potential. Please see Brother Torresk as soon as you get a chance. He is in charge of helping our newer members begin their training. Good luck, " .. e.other:GetCleanName() .. "."); + e.other:Faction(e.self,361,100,0); -- Ashen Order + e.other:Faction(e.self,281,15,0); -- Knights of Truth + e.other:Faction(e.self,309,5,0); -- Silent Fist Clan + e.other:QuestReward(e.self,0,0,0,0,13507,20); -- Torn Cloth Tunic + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12370})) then -- a pawprint + e.self:Say("You have performed a great service to one who is your brother. Your loyalty shines brightly, as does your skill. Take the treant fists. They are yours now."); + e.other:Faction(e.self,361,20,0); -- Ashen Order + e.other:Faction(e.self,281,3,0); -- Knights of Truth + e.other:Faction(e.self,309,1,0); -- Silent Fist Clan + e.other:QuestReward(e.self,0,0,0,0,12344,100); -- Treant Fists + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:freportw -- Puab_Closk diff --git a/freportw/Raenna_Griff.lua b/freportw/Raenna_Griff.lua new file mode 100644 index 0000000..6c3ba1f --- /dev/null +++ b/freportw/Raenna_Griff.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Hail %s. If it is refuge you seek from the evil that is corrupting this city then I suggest you flee to Qeynos or take up arms along side the Sentries of Passion and the Knights of Truth. You must have faith that the Marr twins will not let this city fall to the hate of the Dismal Rage.",e.other:GetName())); + end +end + +-- END of FILE Zone:freportw -- Raenna_Griff \ No newline at end of file diff --git a/freportw/Ran-un.lua b/freportw/Ran-un.lua new file mode 100644 index 0000000..37e09b7 --- /dev/null +++ b/freportw/Ran-un.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + eq.set_timer("spar1", 5000); +end + +function event_timer(e) + if(e.timer == "spar1") then + e.self:DoAnim(eq.ChooseRandom(1,5,6,7,11,30,45,46,47)); + end +end + +-- END of FILE Zone:freportw -- Ran`un \ No newline at end of file diff --git a/freportw/Rebby_Willend.lua b/freportw/Rebby_Willend.lua new file mode 100644 index 0000000..3089fc1 --- /dev/null +++ b/freportw/Rebby_Willend.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey friend. nice wallet ya got there. Bet it's fulla money. huh? Why don't ya let me take a quick look. huh?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18923})) then + e.other:QuestReward(e.self,0,0,0,0,13158,50); -- Item: Rebbys Rat Whiskers + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freportw -- Rebby_Willend \ No newline at end of file diff --git a/freportw/Reyia_Beslin.lua b/freportw/Reyia_Beslin.lua new file mode 100644 index 0000000..dd0736a --- /dev/null +++ b/freportw/Reyia_Beslin.lua @@ -0,0 +1,60 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. "..e.other:GetName()..". I am Reyia Beslin of the Ashen Order. I help to train our members and I am in charge of handing out the orange and red Sashes of Order. Would you like to know how you can get an [orange sash]? Or maybe you think you are ready to earn the [red sash]?"); + elseif(e.message:findi("orange sash")) then + if(e.other:GetFactionValue(e.self) >= 225) then + e.self:Say("To prove your skills and earn the orange Sash of Order, you must bring me the following items - a greater lightstone, a cutthroat insignia ring, a legionnaire's bracer, and, of course, your yellow sash. I will leave it to you to figure out exactly where to get these items. Good luck, "..e.other:GetName().." ."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("I have been watching you, and appreciate the help you've given to the brothers and sisters of the Ashen Order, but I feel that such a vital matter should be left to one of our more trusted members."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("red sash")) then + if(e.other:GetFactionValue(e.self) >= 275) then + e.self:Say("So, you think you are skilled enough to earn the red Sash of Order, "..e.other:GetName().." ? I have just the [task] for you then. But be warned, this will be the toughest challenge you have faced yet. There are many legends and myths of great heroes and ancient evils from all over Norrath. Here in Freeport, we get travelers from all over the world, and we get their tales as well. The point is that most of these stories are just that, stories and fairy tales. Told to amuse people and frighten children. I also thought the tales I'd heard about the [Marnek Jaull] were only legends, but now I know better."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("I have been watching you, and appreciate the help you've given to the brothers and sisters of the Ashen Order, but I feel that such a vital matter should be left to one of our more trusted members."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("marnek jaull")) then + e.self:Say("Marnek Jaull led a cult of necromancers who followed the Burning Prince, Solusek Ro. He built an army, known as the Burning Dead, and spread destruction and fire throughout Antonica. Over the years, the Burning Dead fought many fierce and bloody battles with the paladins of Prexus, the Oceanlord. Though Marnek achieved many victories over the paladins, ultimately they were able to defeat him and destroy the Burning Dead. Legends say that before his defeat, Marnek created many powerful weapons and items, and wrote many books on his findings in the areas of magic. Many of these items were hidden away from the paladin forces, and remain untouched, waiting for Marnek's return, as the legends go."); + elseif(e.message:findi("task")) then + e.self:Say("I've heard a few legends of a powerful wand that Marnek himself used to wield. This was known as the wand of the Burning Dead, and was rumored to instill its owner with mystical energies. The legends I have heard all differed on the wand's creation and powers, but the basic story was always the same. I will [tell you the legend] if you like. The task I have for you is to bring me the two parts that make up the wand of the Burning Dead, before they can be assembled and used for evil once again. Bring me [Marnek's wand] and the [Sapphire of Souls], along with your orange sash, and you will have proven yourself a loyal member of the Ashen Order, worthy of receiving the red sash."); + elseif(e.message:findi("legend") or e.message:findi("tell you the legend")) then + e.self:Say("The legend of the wand of the Burning Dead goes basically like this, though you may hear slighty different versions from others. Marnek did a lot of experiments and created an unknown number of diabolical artifacts and weapons. One of his creations was this wand. Marnek fashioned a charred wand from the scorched bone of a paladin of Prexus, and Solusek Ro himself created the wretched Sapphire of Souls. Then, Marnek and his priests combined these, with the Burning Prince's blessing, to create the wand of the Burning Dead. Marnek used this Wand and its powers in his evil and destructive reign over Antonica. Years later, as Marnek starting losing battles to the paladins of Prexus, one of his own followers, a necromancer named Kenox, was able to steal the wand. Sensing Marnek's defeat, Kenox made his way toward Odus, hoping to strike a deal with the paladins for the wand. Would you like me to [tell you about Kenox]?"); + elseif(e.message:findi("kenox") or e.message:findi("tell you about Kenox")) then + e.self:Say("Well, Kenox was not as sly as he liked to think he was. Marnek knew full well what he was up to, but let him continue with his plans. Kenox had arranged to meet with two paladins late one nght on a small island in Erud's Crossing, a place that would be considered neutral ground. Sir Toran Neshal, leader of the paladins, knowing the power of the wand, was certainly not going to make any deals with a servant of Solusek Ro, and definitely not foolish enough to take any chances with this mission. Imagine the look on Kenox's face when a ship carrying more than 25 paladins, including Sir Toran, arrived at the small island! The paladins immediately captured Kenox and the wand, and headed back to Erudin. Would like me to tell you [what happened to Toran]?"); + elseif(e.message:findi("toran")) then + e.self:Say("Below the deck of the ship, Toran and his men questioned Kenox and carefully inspected the wand. Toran ordered one of his men to pick up the wand and try to identify its true powers. The man picked up the wand, but was unable to decipher its magic. He handed it to Toran, just as Marnek and Solusek had hoped, and the wand exploded, instantly incinerating the ship and everyone aboard, and lighting up the night sky with a giant fireball. Marnek's plan had succeeded. With the help and blessing of the Burning Prince, they had destroyed Sir Toran and an entire squad of Prexus' finest paladins. Years later, though, the paladins were able to regroup and ultimately defeat Marnek. The wand of the Burning Dead was destroyed and gone forever. Or least, that's what we thought. This wand must never be allowed to be made whole again."); + elseif(e.message:findi("wand")) then + e.self:Say("Marnek's Wand is rumored to be found in the depths of Befallen. Those who currently hold Befallen are said to be new followers of the Burning Dead. Probably believing that they may one day be able to awaken the evil Marnek again. This group must be stopped, and these evil items destroyed, before their wicked armies grow powerful enough to leave their horrible dungeon and spread throughout Antonica."); + elseif(e.message:findi("sapphire of souls")) then + e.self:Say("The Sapphire of Souls is rumored to be held by a thief in Najena. No one knows how this guy obtained the sapphire, but we believe he is trying to strike a bargain with those who are currently holding Befallen. Apparently, we aren't the only ones who know of the wand's powers, and this thief thinks he can make a profit from it. Sadly, his greed will surely lead to his death."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "You are well on your way to earning the orange Sash of Order."; + local text2 = "Quite impressive, "..e.other:GetName()..". Keep up the good work and you will surely be wearing a red Sash of Order in no time at all."; + + -- Greater Lightstone ID-10400 - Cutthroat Insignia Ring ID-1903 - Legionnaire's Bracer ID-2299 - Yellow Sash of Order ID-10131 + if(e.other:GetFactionValue(e.self) >= 225 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10400,item2 = 1903,item3 = 2299,item4 = 10131},1,text1)) then + e.self:Say("You have proven yourself a mighty warrior. I am honored to present you, "..e.other:GetName()..", with the orange Sash of Order."); + e.other:Faction(e.self,361,50); -- Ashen Order + e.other:Faction(e.self,281,7); -- Knights of Truth + e.other:Faction(e.self,309,2); -- Silent Fist Clan + e.other:QuestReward(e.self,0,0,0,0,10132,300); -- Orange Sash of Order + -- Blackened Wand ID-13237 - Blackened Sapphire ID-13238 - Orange Sash of Order ID-10132 + elseif(e.other:GetFactionValue(e.self) >= 275 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13237,item2 = 13238,item3 = 10132},1,text2)) then + e.self:Say("Great job, "..e.other:GetName().." ! Congratulations. With the destruction of these evil items, the wand of the Burning Dead will never bring harm to anyone on Norrath again. It is my honor to present to you, on behalf of Master Closk and the Ashen Order, the red sash. May Quellious be with you always."); + e.other:Faction(e.self,361,75); -- Ashen Order + e.other:Faction(e.self,281,11); -- Knights of Truth + e.other:Faction(e.self,309,3); -- Silent Fist Clan + e.other:QuestReward(e.self,0,0,0,0,10133,400); -- Red Sash of Order + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:freportw ID:9084 -- Reyia_Beslin diff --git a/freportw/Romiak_Jusathorn.lua b/freportw/Romiak_Jusathorn.lua new file mode 100644 index 0000000..a6edd83 --- /dev/null +++ b/freportw/Romiak_Jusathorn.lua @@ -0,0 +1,15 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18741})) then -- A tattered note + e.self:Say("Greetings, I am Romiak Jusathorn, Master Enchanter of the Academy. Take this.. it's our guild robe; it will help protect you in this harsh environment. Now, let's get to work!"); + e.other:Faction(e.self,220,100,0); -- Arcane Scientists + e.other:Faction(e.self,281,25,0); -- Knights of Truth + e.other:Faction(e.self,296,-15,0); -- Opal Dark Briar + e.other:Faction(e.self,330,-15,0); -- The Freeport Militia + e.other:QuestReward(e.self,0,0,0,0,13560,20); -- Old Violet Robe + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freportw -- Romiak_Jusathorn diff --git a/freportw/Shana_Liskia.lua b/freportw/Shana_Liskia.lua new file mode 100644 index 0000000..8d6c11e --- /dev/null +++ b/freportw/Shana_Liskia.lua @@ -0,0 +1,51 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail and well met " .. e.other:GetCleanName() .. ". I am Shana Liskia. Enchantress of Freeport. I have studied my art for years here in our wonderful academy. I am also delighted to meet and teach those that come here to gain knowledge. My specialty however lies in Beguiling so I like to train young newcomers to our academy. Are you studying the ways of a [Magician] an [Enchanter] or a [Wizard]??"); + elseif(e.message:findi("magician") or e.message:findi("enchanter") or e.message:findi("wizard")) then + e.self:Say("Wonderful! Let me be the first to tell you that your training here will be top notch and you will learn all that is to be known about being an enchanter should you put forth the willingness to learn. I will walk you through your early training and assist you in your hunting and gathering skills. I have created a [special sewing kit] that I present to all of the new initiates."); + elseif(e.message:findi("special sewing kit")) then + e.self:Say("This kit that I speak of is one that is able to magically infuse different components into materials used for creating Arcane Scientists Armor. The components that you use will be collected from numerous different areas and shops in Freeport. You will use these materials along with patterns that I will present you with to create your armor. Once you are [ready to begin] I will present you with your Enchanted Sewing Kit."); + elseif(e.message:findi("ready to begin")) then + e.self:Say("Very well. Here you are " .. e.other:GetCleanName() .. ". in this box you will combine specific component recipes as I mentioned before. When you are ready to attempt a specific piece you must tell me what piece you [want] to craft. For example if you had intent on crafting a cap you would say. [I want to craft a cap]. I can offer you the recipes for Arcane Scientists [Caps], [Bracers], [Sleeves], [Sandals], [Trousers], [Gloves] and [Robes]. I must also suggest that you attempt your robe last due to the difficult nature of collecting the correct components."); + e.other:SummonCursorItem(17260); -- Enchanted Sewing Kit + elseif(e.message:findi("sleeve")) then + e.self:Say("Sleeves will be a great and necessary addition to your armor. To create your sleeve material you will need to combine 2 Woven Spider Silks, 2 Bone Chips, 1 Spider Legs and Cloth Sleeves in your assembly kit. Once you have created the proper material take it to a loom along with this mold to fashion your very own Arcane Scientists Sleeves."); + e.other:SummonCursorItem(22586); -- An Enchanted Sleeves Pattern + elseif(e.message:findi("bracer")) then + e.self:Say("A wise choice indeed, having the correct wrist protection is very important in spell channeling. To create your bracer material you will need to combine 1 Woven Spider Silk, 1 Desert Tarantula Chitin, 1 Armadillo Tooth and a Cloth wristband in your assembly kit. Once you have created the proper material take it to a loom along with this mold to fashion your very own Arcane Scientists Bracer."); + e.other:SummonCursorItem(22584); -- An Enchanted Bracer Pattern + elseif(e.message:findi("cap")) then + e.self:Say("A cap will keep you safe from any attackers as well as the elements. To create your cap material you will need to combine 2 Woven Spider Silks, 1 Snake Fang, 1 Chunk of Meat and a Cloth Cap in your assembly kit. Once you have created the proper material take it to a loom along with this mold to fashion your very own Arcane Scientists Cap."); + e.other:SummonCursorItem(22583); -- An Enchanted Cap Pattern + elseif(e.message:findi("glove")) then + e.self:Say("Gloves are very important for your early training especially Isola. While you are learning your first set of incantations you should not have to worry about any injuries to your hands. To create your glove material you will need to combine 3 Woven Spider Silks, 1 Giant Scarab Brain, 1 High Quality Cat Pelt 1 Zombie Skin and 1 Large Leaf Scarab Leg in your assembly kit. Once you have created the proper material take it to a loom along with this mold to fashion your very own Arcane Scientists Gloves."); + e.other:SummonCursorItem(22588); -- An Enchanted Gloves Pattern + elseif(e.message:findi("sandal")) then + e.self:Say("Sandals will keep you save from any harmful things you may walk in, it is a good idea to have them. To create your sandal material you will need to combine 3 Woven Spider Silks, 1 Coyote Pelt, 2 Black Bear Paws, 1 Urticating Hairs and Cloth Sandals in your assembly kit. Once you have created the proper material take it to a loom along with this mold to fashion your very own Arcane Scientists Sandals."); + e.other:SummonCursorItem(22585); -- An Enchanted Sandals Pattern + elseif(e.message:findi("trouser")) then + e.self:Say("I would always recommend pants to all my new students since they are a very important part of your armor set. To create your trouser material you will need to combine 4 Woven Spider Silks, 1 Embalming Dust, 1 Rotting Zombie Skull and 1 Armadillo Tail in your assembly kit. Once you have created the proper material take it to a loom along with this mold to fashion your very own Arcane Scientists Trousers."); + e.other:SummonCursorItem(22587); -- An Enchanted Trousers Pattern + elseif(e.message:findi("robe")) then + e.self:Say("I am very pleased to see that you have progressed through your armor pieces so quickly. I am also proud to see that you are ready to attempt your robe! To create your robe material you will need to combine 5 Woven Spider Silks, 1 Snake Bile, 1 Cutthroat Golden Tooth, 1 Shadow Wolf Tibia, 1 Orc Prayer Beads and 1 Cloth Shirt in your assembly kit. Once you have created the proper material take it to a loom along with this mold to fashion your very own Arcane Scientists Robe. Be sure to come back to see me for a [final assignment] after you have completed your robe."); + e.other:SummonCursorItem(22589); -- An Enchanted Robe Pattern + elseif(e.message:findi("final assignment")) then + e.self:Say("I have a trinket that was given to me by my mother a long time ago. Before she died I told her I would always keep it close to me. Recently, some militia officers came in to our academy and confiscated anything that appeared to be valuable. Fearing for my life I did not fight to keep the necklace my mother gave me. The officer that took it was named Teridsan. If you should find him you have my permission to kill him if that's what it takes to get my necklace back. Return to me when you have my necklace along with 2 Lion Teeth."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9917,item2 = 9917,item3 = 9933})) then -- Lion Tooth x 2, Shana's Necklace + e.self:Say("I am so happy to have my necklace back! I cannot begin to tell you how much this means to me Reveree. Please take this dagger as a symbol of my sincere thanks. It was presented to me by the academy for my years of teaching but I hope you will take it. Good luck to you and come back to visit us soon!"); + e.other:Faction(e.self,220,25); -- Arcane Scientists + e.other:Faction(e.self,281,6); -- Knights of Truth + e.other:Faction(e.self,296,-3); -- Opal Dark Briar + e.other:Faction(e.self,330,-3); -- The Freeport Militia + e.other:QuestReward(e.self,0,0,0,0,9938,100); -- Dagger of the Academy + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freportw -- Shana_Liskia diff --git a/freportw/Shintl_Lowbrew.lua b/freportw/Shintl_Lowbrew.lua new file mode 100644 index 0000000..bc8ce38 --- /dev/null +++ b/freportw/Shintl_Lowbrew.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail. mighty one! What are you doing in the city? You should be out slaying beasts. There is nothing to find here in the city."); + elseif(e.message:findi("hollish")) then + e.self:Say("I have never heard of this Hollish character you speak of. You must be confusing me for someone else."); + elseif(e.message:findi("opal")) then + e.self:Say("Opal is just a friend I have here in Freeport. She works at the Academy of Arcane Science."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 1) then + eq.create_ground_object(12147,-448,-107,-10.870,0,90000); + elseif(e.wp == 7) then + e.self:Say("Any mail for room number two?"); + eq.signal(9103, 1); -- NPC: Swin_Blackeye + end +end + +function event_death_complete(e) + eq.spawn2(9144,86,0,704,-554,-24,0); -- spawn hollish tnoops +end \ No newline at end of file diff --git a/freportw/Sir_Lucan_D-Lere.lua b/freportw/Sir_Lucan_D-Lere.lua new file mode 100644 index 0000000..aadc047 --- /dev/null +++ b/freportw/Sir_Lucan_D-Lere.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail. citizen! I am very busy. I do not have time to speak with you. If you have any complaints. please direct them to City Hall. Unless. of course. you have some personal business in which I might be interested."); + elseif(e.message:findi("shrine of innoruuk")) then + e.self:Say("It is about time Pietro sent someone. You people should be lucky I allow you to conduct your business in this city. I will have you all locked up if you cannot be more prompt. Now, listen up! I want you to go out to the Commonlands. My guards have reported that a messenger from Qeynos is staying at an inn near the western edge of the Commonlands. I suspect he is carrying vital information to the Hall of Truth. I want him stopped. Bring me the message if you know what's good for you and the Dismal Rage. Now, get out of here!"); + end +end + +function event_death_complete(e) + eq.spawn2(9147, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(),e.self:GetHeading()); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18822})) then + e.self:Say("So I see you decided to bring me the message. Good. I would hate to have to hunt you down. It could have gotten really messy and I hate reading bloodstained messages. Well it seems Antonius Bayle and the Knights of Truth have begun an alliance. And it sounds as though I may have a traitor among my guards. If you wish to switch your allegiance to Freeport, then find me this traitor. Bring me his militia tunic. Try to keep the blood from staining it."); + -- HK confirmed live factions + e.other:Faction(e.self,330,25,0); -- Faction: The Freeport Militia + e.other:Faction(e.self,336,3,0); -- Faction: Coalition of Tradefolk Underground + e.other:Faction(e.self,281,-2,0); -- Faction: Knights of Truth + e.other:Faction(e.self,362,-2,0); -- Faction: Priests of Marr + e.other:QuestReward(e.self,0,math.random(10),0,0,0,5000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13926})) then + e.self:Say("So, it was Alayle! He was of no importance to us. He knew nothing. I thank you for assisting the Freeport Militia. My men shall keep an eye out for you. Unfortunately, so will the Knights of Truth. Might I suggest you spend less time in North Freeport?"); + -- HK confirmed live factions + e.other:Faction(e.self,330,25,0); -- Faction: The Freeport Militia + e.other:Faction(e.self,336,3,0); -- Faction: Coalition of Tradefolk Underground + e.other:Faction(e.self,281,-2,0); -- Faction: Knights of Truth + e.other:Faction(e.self,362,-2,0); -- Faction: Priests of Marr + e.other:QuestReward(e.self,0,0,math.random(10),0,0,7500); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:freportw ID:9018 -- Sir_Lucan_D`Lere diff --git a/freportw/Swin_Blackeye.lua b/freportw/Swin_Blackeye.lua new file mode 100644 index 0000000..c499113 --- /dev/null +++ b/freportw/Swin_Blackeye.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, friend! Welcome to the Hog Caller's Inn! Don't let the name fool you. We are the finest establishment in Freeport. Please feel free to relax in our lounge. There is usually music to soothe your blues away."); + elseif(e.message:findi("mail for room two")) then + e.self:Say("Hmmph !! If you're here to get the mail for room two you first need to show me the room key."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12147})) then -- Hog Key + e.self:Say("Here you go then."); + e.other:QuestReward(e.self,0,0,0,0,18814); -- A Sealed Letter + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + e.self:Say("Hmmph !! If you're here to get the mail for room two, you'll need to show me the room key."); +end + +-- END of FILE Zone:freportw -- Swin_Blackeye diff --git a/freportw/Tara_Neklene.lua b/freportw/Tara_Neklene.lua new file mode 100644 index 0000000..83a0463 --- /dev/null +++ b/freportw/Tara_Neklene.lua @@ -0,0 +1,40 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It is always a pleasure to meet a new face. We have many who travel far and wide to visit our great academy. Many who brave the long trip by boat. Many who dare to cross the territory of the [Deathfist orcs]."); + elseif(e.message:findi("deathfist orcs")) then + e.self:Say("The Deathfist are a clan of orcs. They are not very powerful, yet I hear they dabble in the circles of magic. Their skills in the ways of magic are limited. It is my duty to study them. I shall pay for your services. Will you [assist with the research]?"); + elseif(e.message:findi("assist with the research")) then + e.self:Say("Yes. You will do. Go into the lands which surround Freeport. There you shall encounter Deathfist apprentices. They are as young as yourself and each should carry an orc cantrip. Return one for further studies. Do so and you will earn your pay as well as our respect."); + elseif(e.message:findi("test the might of the orc oracles")) then + if(e.other:GetFactionValue(e.self) >= 200) then + e.self:Say("You have heightened your knowledge to the appropriate rank. You are ready to challenge the Deathfist oracles. Do so and return one oracle scroll which any of them may have. If I am in a good mood when you return, you shall soon be summoning elementals."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The word of mouth in the Academy of Arcane Science is that you are no foe, but you have yet to prove your worth to us. Perform more tasks for the great Tara Neklene."); + else + e.self:Say("You had best leave my sight. I am a faithful member of the Academy of Arcane Science and you are no ally of ours."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13845})) then + e.self:Say("Very fine work, my young apprentice. This shall be very useful in understanding their ways. I have heard rumors of a scribe who can decipher these scrolls. He is said to frequent the local taverns. Bah!! If I cannot decipher them, no one can!! Continue with your work. Soon you shall advance enough to [test the might of the orc oracles]."); + e.other:Faction(e.self,220,10,0); -- Arcane Scientists + e.other:Faction(e.self,281,2,0); -- Knights of Truth + e.other:Faction(e.self,296,-1,0); -- Opal Dark Briar + e.other:Faction(e.self,330,-1,0); -- Freeport Militia + e.other:QuestReward(e.self,math.random(15),math.random(15),0,0,0,25); + elseif(e.other:GetFactionValue(e.self) >= 200 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13225})) then + e.self:Say("Wonderful! You have survived the might of an oracle. With this we can now continue our experiments. Now you may continue your teaching and study the power to summon those of earth, air, water and fire."); + e.other:Faction(e.self,220,15,0); -- Arcane Scientists + e.other:Faction(e.self,281,3,0); -- Knights of Truth + e.other:Faction(e.self,296,-2,0); -- Opal Dark Briar + e.other:Faction(e.self,330,-2,0); -- Freeport Militia + e.other:QuestReward(e.self,0,0,0,0,0,50); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:freportw -- Tara_Neklene diff --git a/freportw/Tarsa_Yovar.lua b/freportw/Tarsa_Yovar.lua new file mode 100644 index 0000000..77e48ee --- /dev/null +++ b/freportw/Tarsa_Yovar.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Keep your voice down friend. The Dismal Rage and their fool pawns the Freeport Militia have eyes and ears in every corner of the city. It is not safe for you to be among us unless you too have been placed on the Militias most wanted list."); + end +end + +-- END of FILE Zone:freportw -- Tarsa_Yovar \ No newline at end of file diff --git a/freportw/Thena_Lonnes.lua b/freportw/Thena_Lonnes.lua new file mode 100644 index 0000000..271d5a7 --- /dev/null +++ b/freportw/Thena_Lonnes.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + eq.set_timer("spar2", 3000); +end + +function event_timer(e) + if(e.timer == "spar2") then + e.self:DoAnim(eq.ChooseRandom(1,5,6,7,11,30,45,46,47)); + end +end + +-- END of FILE Zone:freportw -- Thena_Lonnes \ No newline at end of file diff --git a/freportw/Toala_Nehron.lua b/freportw/Toala_Nehron.lua new file mode 100644 index 0000000..a1fc881 --- /dev/null +++ b/freportw/Toala_Nehron.lua @@ -0,0 +1,56 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("hail")) then + e.self:Say("I am Toala Nehron. You must be another young warrior aspiring to join the ranks of the Steel Warriors. We welcome all who would try. When you [have time] there is a friend of mine I would like you to check on."); + elseif(e.message:findi("opal")) then + e.self:Say("Opal Darkbriar is a little plague rat. She has used her knowledge of arcane arts to charm [Cain Darkmoore]. I know that is what happened. Why else would he be in love with her? He is a mighty warrior and she is nothing more than a sickly little librarian for the Academy of Arcane Science. He must truly yearn for a bold hearted female warrior such as myself. Not that I care, of course."); + elseif(e.message:findi("cain darkmoore")) then + e.self:Say("Cain Darkmoore is only the most handsome of warriors! He is also the strongest and most bold. He has slain the mightiest of fiends. He is truly the manliest man around. It is no wonder he is the guildmaster of the Steel Warriors."); + elseif(fac < 5) then + if(e.message:findi("have time")) then + e.self:Say("I have A friend by the name of [Lenka Stoutheart]. She reported to me that her ship was broken into and someone stole a pouch of hers. Could you go look into it for me? Just tell her Toala sent you. Oh, and pay no mind to the walking mountain by her. That will only be Bronto, her navigator. Thanks friend."); + elseif(e.message:findi("lenka stoutheart")) then + e.self:Say("Lenka Stoutheart is an old friend of mine. I met her in my younger days when the Steel Warriors sent me to train in the ways of the Wolves of the North, the barbarian warriors of Halas. She is now an adventurer of great renown. She travels from continent to continent aboard her ship,the Blue Beast, her ship."); + end + elseif(fac == 5) then + if(e.message:findi("have time") or e.message:findi("lenka stoutheart")) then + e.self:Say("The Steel Warriors have no cause to dislike you, but you have yet to prove your worth to this guild."); + end + elseif(fac > 5) then + if(e.message:findi("have time") or e.message:findi("lenka stoutheart")) then + e.self:Say("Your head shall look grand mounted on the wall of the Steel Warriors Arena!!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local fac = e.other:GetFaction(e.self); + + if(fac < 5) then + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18814})) then -- A Sealed Letter ID-18814 filename "NERtoShintl" + e.self:Say("Why, that little trollop! What is she up to? Cain will never believe this! She must be in league with some faction of the dark elves, but why? Neither the Academy of Arcane Science nor Cain will believe this note. I will see what I can do. As for you, I command you to kill this Shintl and her dark elf courier Hollish!! Put their heads into this box and combine them. We shall cut the link. Bring me thier heads."); + e.other:QuestReward(e.self,0,0,0,0,17971,500); -- Toala's Box for heads + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12246})) then -- Box with Two Heads + e.self:Say("Good work!! We will soon catch Opal. I have started to formulate a plan to stop her. When I complete it, I shall notify you. Here. Take this small reward. I am sure killing Shintl was no trouble. She was just a halfling."); + e.other:Faction(e.self,311,10); -- Steel Warriors + e.other:Faction(e.self,262,2); -- Guards of Qeynos + e.other:Faction(e.self,281,2); -- Knights of Truth + e.other:Faction(e.self,230,-1); -- Corrupt Qeynos Guards + e.other:Faction(e.self,330,-1); -- Freeport Militia + e.other:QuestReward(e.self,{silver = math.random(0,10),gold = math.random(0,5),platinum = math.random(0,1), itemid = eq.ChooseRandom(2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 9002), exp = 2000}) + end + elseif(fac == 5) then + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18814})) then -- Sealed Letter ID-18814 filename "NERtoShintl" Item will be lost if not amiable or better + e.self:Say("The Steel Warriors have no cause to dislike you, but you have yet to truly prove your worth to this guild."); + end + elseif(fac > 5) then + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18814})) then -- Sealed Letter ID-18814 filename "NERtoShintl" Item will be lost if not amiable or better + e.self:Say("Your head shall look grand mounted on the wall of the Steel Warriors Arena!!"); + end + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:freportw -- Toala_Nehron diff --git a/freportw/Toxdil.lua b/freportw/Toxdil.lua new file mode 100644 index 0000000..bac07fa --- /dev/null +++ b/freportw/Toxdil.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Correct. Toxdil is my name. No last name. I swear allegiance to no house nor guild. What brings you down here? Perhaps you seek my [deadly liquid], perhaps not. Whatever your reasons, I warn you to keep an eye out for the militia. They have begun to patrol the sewers."); + elseif(e.message:findi("deadly liquid")) then + e.self:Say("The deadly liquid I offer to rogues is called snake venom. I will be glad to make it for you, but first you must supply me with two snake venom sacs and my fee of 20 gold pieces. You may find the sacs upon the giant snakes of the Commonlands."); + elseif(e.message:findi("gem of righteousness")) then + e.self:Say("That gem is worthless!! If you want it, you can have it. Oh, but I forgot! I sold it to some gem merchant. I can't seem to remember her name, but she paid highly for it. Ha!! Imagine that. Worthless hunk of crystal. Do not bother looking for it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I require two snake venom sacs and my fee of 20 gold coins before I shall create the snake venom." + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12353})) then + e.self:Say("The gem!! I would notice it's sparkle anywhere!! I cannot believe you are handing it back to me!! What a fool. Here you are fool. You can have this worthless key now."); + e.other:QuestReward(e.self,0,0,0,0,12351,15000); -- A Tiny Key + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14017,item2 = 14017,gold = 20}, 1, text)) then + e.self:Say("Here is your snake venom. May you... shall we say... apply it to good use."); + e.other:QuestReward(e.self,0,0,0,0,14016,100); -- Snake Venom + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/freportw/Ulia_Yovar.lua b/freportw/Ulia_Yovar.lua new file mode 100644 index 0000000..1ef8447 --- /dev/null +++ b/freportw/Ulia_Yovar.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Greetings %s. If you have love and kindness in your heart then seek refuge at the Temple of Marr and the Hall of Honor in North Freeport. There is a growing evil spreading through the city. May Erollisi save us and cleanse this city of the hatred and corruption spread by the vile Dismal Rage.",e.other:GetName())); + end +end + +-- END of FILE Zone:freportw -- Ulia_Yovar \ No newline at end of file diff --git a/freportw/Velan_Torresk.lua b/freportw/Velan_Torresk.lua new file mode 100644 index 0000000..22c7809 --- /dev/null +++ b/freportw/Velan_Torresk.lua @@ -0,0 +1,67 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("white training sash")) then + if(e.other:GetFactionValue(e.self) >= 150) then + e.self:Say("The white training sash of the Ashen Order is awarded to our new members for completing a few simple tasks to prove their devotion to our clan. As you know, Freeport is a very hostile place, under constant attack from [orcs], wild beasts, and even the undead. To help keep this city and its citizens relatively safe, we must help the Militia protect the main gates. Bring me two Deathfist pawn scalps from those vile [Deathfist orcs], a snake fang, and some bone chips from a skeleton. Good luck, " .. e.other:GetCleanName() .. ", represent us well!"); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("I have been watching you, and appreciate the help you've given to the brothers and sisters of the Ashen Order, but I feel that such a vital matter should be left to one of our more trusted members."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("yellow sash of order")) then + if(e.other:GetFactionValue(e.self) >= 175) then + e.self:Say("To earn the yellow sash, you must prove yourself to be very skilled in the art of fighting. The lands to the west and south of Freeport are filled with dangerous beasts that often prey upon innocent travelers. Help protect our merchant caravans and traveling citizens, while at the same time practicing your defensive skills, and eliminating these deadly creatures from the surrounding landscape. Bring me a giant snake rattle, a Deathfist slashed belt, the chitin of a desert tarantula, and turn in your white training sash, and I shall reward your noble work with our yellow Sash of Order. Good luck, " .. e.other:GetCleanName() .. "!"); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("I have been watching you, and appreciate the help you've given to the brothers and sisters of the Ashen Order, but I feel that such a vital matter should be left to one of our more trusted members."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Greetings. " .. e.other:GetCleanName() .. "! I am Velan Torresk of the Ashen Order. I am in charge of training the newest members of our clan. and helping them advance their skills and rank. When members perform certain tasks on behalf of the Order. they advance to a higher rank in our clan. and are awarded a special [sash]."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("sash")) then + e.self:Say("The Sashes of Order are given out by the various trainers of our clan. I give out the [white training sash] and the [yellow Sash of Order]. and [Reyia] is in charge of the [orange and red sashes]."); + elseif(e.message:findi("orcs")) then + e.self:Say("The Deathfist Orcs are a large tribe of Orcs who live out in the desert. They are constantly sending small raiding parties and scouts to attack Freeport and its citizens."); + elseif(e.message:findi("reyia") or e.message:findi("orange and red")) then + e.self:Say("Reyia Beslin is one of our head trainers. She helps our members to improve their skills, and is also in charge of the orange and red Sashes of Order."); + elseif(e.message:findi("purple") or e.message:findi("blue") or e.message:findi("klom")) then + e.self:Say("Brother Klom is the Ashen Order's second master. He is in charge whenever Master Puab is absent or falls ill."); + elseif(e.message:findi("puab") or e.message:findi("closk")) then + e.self:Say("Master Puab is the head master of the Ashen Order. His grandfather, Khenur Closk, was the founder of the Ashen Order many years ago. Khenur led the Order around the Desert of Ro nomadically for almost a decade, helping the lost and protecting trade caravans from bandits. He then decided to settle here in Freeport, and the rest is history."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "Ah, very good. You are well on your way to earning the white sash." + local text2 = "Ah, very good. You are well on your way to earning the yellow Sash of Order." + + -- Medium Amiable Faction - Deathfist Pawn Scalp - Snake Fang - Bone Chips + if(e.other:GetFactionValue(e.self) >= 150) then + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13794,item2 = 13794,item3 = 13067,item4 = 13073},1,text1)) then + e.self:Say("Good work, " .. e.other:GetCleanName() .. ", you've worked hard and proven yourself a valuable addition to the Ashen Order. Here's your white sash, wear it with pride."); + e.other:Faction(e.self,361,25,0); -- Ashen Order + e.other:Faction(e.self,281,3,0); -- Knights of Truth + e.other:Faction(e.self,309,1,0); -- Silent Fist Clan + e.other:QuestReward(e.self,0,0,0,0,10130,500); -- White Training Sash + end + end + -- White Training Sash - Giant Snake Rattle - Deathfist Slashed Belt - Desert Tarantula Chitin + -- No need to check faction again since they must have the White Training Sash + if(e.other:GetFactionValue(e.self) >= 175 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10130,item2 = 13058,item3 = 13916,item4 = 20901},1,text2)) then + e.self:Say("Ah, well done, " .. e.other:GetCleanName() .. ". You have proven that you are a very skillful fighter and it is an honor to have you as a member of the Ashen Order. On behalf of Master Closk, and under the watchful eyes of Quellious, I present you, " .. e.other:GetCleanName() .. ", with this, the yellow Sash of Order. Go out and make us proud."); + e.other:Faction(e.self,361,50,0); -- Ashen Order + e.other:Faction(e.self,281,7,0); -- Knights of Truth + e.other:Faction(e.self,309,2,0); -- Silent Fist Clan + e.other:QuestReward(e.self,0,0,0,0,10131,750); -- Yellow Sash of Order + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:freportw ID:9065 -- Velan_Torresk + diff --git a/freportw/Yovik_Splegle.lua b/freportw/Yovik_Splegle.lua new file mode 100644 index 0000000..eb48a37 --- /dev/null +++ b/freportw/Yovik_Splegle.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Greetings %s. Beware the corruption that has infected Freeport. Even the tower of the Arcane Scientists is not safe from the slimy hands of the Dismal Rage. I fear Opal Darkbriar is not what she seems and is darkening the minds of her apprentices.",e.other:GetName())); + end +end + +-- END of FILE Zone:freportw -- Yovik_Splegle \ No newline at end of file diff --git a/freportw/a_prisoner.lua b/freportw/a_prisoner.lua new file mode 100644 index 0000000..b37d9af --- /dev/null +++ b/freportw/a_prisoner.lua @@ -0,0 +1,34 @@ +function event_spawn(e) + eq.set_timer("goog",150000); +end + +function event_timer(e) + e.self:Say(eq.ChooseRandom("unngh!!.. Biggle and boo.. Goggle froo..","ahhhh!!.. Tiggle bumble coo.. Bog n' Goo..")); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Aaaarghhh!!.. Buggl n gump.. Figgle and fump.."); + elseif(e.message:findi("ariska") or e.message:findi("zimel")) then + e.self:Emote("stares deeply into your eyes.. Very eerie!!"); + elseif(e.message:findi("soulfire")) then + e.self:Say("nnnnn... Gickle... Grunk... Shoo... Bog n' Goo! Freezing! Thirst! Hunger too!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Bog n Goo.. Blanket too!!" + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12196,item2 = 16581,item3 = 13498},1,text)) then -- Bunker Cell, Bog Juice, Edible Goo + e.self:Say("Hide, hide, safe, cee.. lerk has the clue.. Must travel.. Travel.. Travel.. Tunaria's corridor.."); + e.other:Faction(e.self,229,1); -- Faction: Coalition of Tradefolk + e.other:Faction(e.self,281,1); -- Faction: Knights of Truth + e.other:Faction(e.self,291,1); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,336,1); -- Faction: Coalition of Tradefolk Underground + e.other:QuestReward(e.self,0,0,0,0,12143); -- H. K. 102 + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:freportw -- a_prisoner diff --git a/freportw/peasant_woman.lua b/freportw/peasant_woman.lua new file mode 100644 index 0000000..36260fb --- /dev/null +++ b/freportw/peasant_woman.lua @@ -0,0 +1,12 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("grunts as she tries to fill two buckets of [water]. Her frail arms strain at her work and pain fills her eyes with tears."); + elseif(e.message:findi("water")) then + e.self:Say("Aye, water, m'lord. For my brother. He is very sick. He's needin' drink. He's burnin' up. I am sick myself but still able to move, a little. I must [take this water to him] before he gets worse."); + elseif(e.message:findi("i will take it")) then + e.self:Say("Surely you are a pure soul. If you would take this bucket of water to my brother, I would be forever grateful. I am just so tired, I need to rest... She slumps to the floor and begins to breathe shallowly, in short, harsh gasps."); + e.other:SummonCursorItem(29008); -- bucket of water + end +end + +-- END of FILE Zone:freportw -- peasant_woman \ No newline at end of file diff --git a/frontiermtns/92118.lua b/frontiermtns/92118.lua new file mode 100644 index 0000000..af3ce0b --- /dev/null +++ b/frontiermtns/92118.lua @@ -0,0 +1,29 @@ +--This Iksar slave is actually Veltar, one of Master Rinmark's students. We interact with him and grant him his freedom in order to move further in the monk shackle quest line that eventually culminates in the Whistling Fists +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("seems to have lost all hope. He sadly looks to the ground. His shackles are different than the others you see in this cell. One is definitely steel and not of goblin design. The other is made of an unfamiliar metal."); + elseif(e.message:findi("veltar")) then + e.self:Emote("'s soiled face shines with a glint of hope. 'You know my name? Who has [sent] you to find me?'"); + elseif(e.message:findi("master rinmark sent")) then + e.self:Say("Then word has gotten to him!! If you be a monk of the third rung I will accept your aid. You must find the [coppernickel key]. It is required to release me from this goblin shackle. I have no reward to offer other than the shackle of steel. Give me both your shackles of the third rung along with the key and I shall reward you the first shackle of the fourth rung."); + elseif(e.message:findi("coppernickel key")) then + e.self:Say("The key is split into three parts. Part one is the base and must be combined with the two remainder pieces. One piece is in here and the other was lost. I overheard the goblins chattering and recognized the goblin phrase, 'lair of flying mouths'!! As for the base, I do not know."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12839, item2 = 4194, item3 = 4195})) then + e.self:Emote("hands you a shackle and removes the coppernickel shackle so he may flee. He places your shackles on his wrists and darts into the darkness."); + e.other:Faction(e.self,444,20); -- Faction: Swift Tails + e.other:Faction(e.self,441,10); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,4196,50000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/frontiermtns/Mentrax_Mountainbone.lua b/frontiermtns/Mentrax_Mountainbone.lua new file mode 100644 index 0000000..b81036f --- /dev/null +++ b/frontiermtns/Mentrax_Mountainbone.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What be it you want! Go away before I eat you for dinner!"); + elseif(e.message:findi("wenden sent me")) then + e.self:Say("Oh, old Wenden? I guess you be wanting some ore. Well, you can't have none! Not unless you get me a new monocle. No. No. No. Don't even try to talk, you either bring me a new monocle that will fit or no ore for you"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20678})) then + e.self:Say("Eh, you actually found one! Thank you, " .. e.other:GetCleanName() .. ". Here is a block of ore for you. Just don't let the other giants know."); + e.other:QuestReward(e.self,0,0,0,0,20666,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/frontiermtns/a_human_skeleton.lua b/frontiermtns/a_human_skeleton.lua new file mode 100644 index 0000000..943217a --- /dev/null +++ b/frontiermtns/a_human_skeleton.lua @@ -0,0 +1,15 @@ +-- platinum speckled powder -- ranger epic +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20475})) then + e.self:Emote("begins to crack and disintegrate, its body collapsing into a pile of dust that scatters into the winds. On the ground you notice a locket on a fine, thin chain which you pick up."); + e.other:QuestReward(e.self,0,0,0,0,20476); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/frontiermtns/a_sarnak_spy.lua b/frontiermtns/a_sarnak_spy.lua new file mode 100644 index 0000000..34dcd3c --- /dev/null +++ b/frontiermtns/a_sarnak_spy.lua @@ -0,0 +1,22 @@ +-- a Sarnak Spy, Frontier Mountains +-- Second part of the chardok quest, initiated by Herald Telcha +-- Regal Band of Bathezid + +function event_say(e) + -- Flagging wasn't needed. Could skipped the first part and just obtained the note + if(e.message:findi("proceed")) then + e.self:Say("Good, here then is what you must do. It's pretty simple actually and even one such as you should have no troubles. Skargus has been trading in slaves with the Iksar. He has a courier there visits the outskirts of Cabilis and sends weekly reports back to Droga. If we could get that report, Skargus would be finished. Will you go to Cabilis and [get the report]?"); + elseif(e.message:findi("report")) then + e.self:Emote("scowls at you, clearly unimpressed by your efforts. 'Of course you'll go get the report fool, but do you think that the courier will just give to you?' The sarnak shakes his head sadly. 'Okay, look. Go into Droga and try to get a warlord's insignia off one of the goblins in there. Take this forged note to the courier I've written out, along with the insignia to Warslik's woods and give it to the courier. With luck, he'll believe you work for Skargus and give you the report. If you get the report, find Gragbar and give it to him.'"); + e.other:SummonCursorItem(6471); -- 6471 Forged Note to Courier + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6472})) then -- Traitor's note, from goblin traitor + e.self:Emote("reads the note slowly, turning it around in his claws a few times before completing it. 'I see you spoke with that half-wit goblin! I hate hate hate it when he sends me a note, his penmanship is almost illegible. I hope he informed you of the situation, he's really not the most dependable agent of Di'zok, and sadly his note doesn't really make much sense. No matter though, are you ready to [proceed] in this mission?'"); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/frontiermtns/encounters/FMCycle.lua b/frontiermtns/encounters/FMCycle.lua new file mode 100644 index 0000000..84e1744 --- /dev/null +++ b/frontiermtns/encounters/FMCycle.lua @@ -0,0 +1,391 @@ +function CycleSpawn(e) + eq.set_timer("FMSpawn",5000); +end + +function CycleTimer(e) + eq.stop_timer("FMSpawn"); + local Cycle1 = math.random(3); + local Cycle2 = math.random(3); + if(Cycle1 == 3) then + GoblinSE(e); + elseif(Cycle1 == 2) then + GiantSW(e); + else + BurynaiNW(e); + end + if(Cycle2 == 3) then + BruteSE(e); + elseif(Cycle2 == 2) then + MiscSW(e); + else + SarnakNW(e); + end +end + +function GoblinSE(e) + local goblin; + local location = math.random(6); + if(math.random(100) > 45) then + goblin = 92011; + else + goblin = eq.ChooseRandom(92004,92009,92012,92020,92021,92022,92023,92024); + end + if(location == 6) then + eq.spawn2(goblin,28,0,-3247,-2839,-376,0); + elseif(location == 5) then + eq.spawn2(goblin,28,0,-1417,-3093,-435,0); + elseif(location == 4) then + eq.spawn2(goblin,28,0,-1682,-2082,-370,0); + elseif(location == 3) then + eq.spawn2(goblin,28,0,-2320,-2071,55,0); + elseif(location == 2) then + eq.spawn2(goblin,28,0,-2255,-2642,-425,0); + else + eq.spawn2(goblin,28,0,-2812,-2431,-420,0); + end +end + +function GiantSW(e) + local giant; + local location = math.random(6); + if(math.random(100) > 45) then + giant = 92055; + else + giant = eq.ChooseRandom(92030,92025,92028,92031); + end + if(location == 6) then + eq.spawn2(giant,28,0,504,-3191,-499,0); + elseif(location == 5) then + eq.spawn2(giant,28,0,3088,-549,-70,0); + elseif(location == 4) then + eq.spawn2(giant,28,0,3043,48,-35,0); + elseif(location == 3) then + eq.spawn2(giant,28,0,2297,-288,-70,0); + elseif(location == 2) then + eq.spawn2(giant,28,0,1483,226,-45,0); + else + eq.spawn2(giant,28,0,1083,-604,-165,0); + end +end + +function BurynaiNW(e) + local burynai; + local location = math.random(6); + if(math.random(100) > 45) then + burynai = 92010; + else + burynai = eq.ChooseRandom(92003,92013,92008,92034,92017,92145,92015); + end + if(location == 6) then + eq.spawn2(burynai,28,0,3006,1960,233,0); + elseif(location == 5) then + eq.spawn2(burynai,28,0,2430,1534,240); + elseif(location == 4) then + eq.spawn2(burynai,28,0,2770,2088,170,0); + elseif(location == 3) then + eq.spawn2(burynai,28,0,2172,2830,270,0); + elseif(location == 2) then + eq.spawn2(burynai,28,0,3333,2794,180,0); + else + eq.spawn2(burynai,28,0,3449,1924,170,0); + end +end + +function BruteSE(e) + local brute; + local location = math.random(6); + if(math.random(100) > 45) then + brute = 92056; + else + brute = eq.ChooseRandom(92176,92036,92037,92038,92039); + end + if(location == 6) then + eq.spawn2(brute,28,0,-3247,-2839,-376,0); + elseif(location == 5) then + eq.spawn2(brute,28,0,-1417,-3093,-435,0); + elseif(location == 4) then + eq.spawn2(brute,28,0,-1682,-2082,-370,0); + elseif(location == 3) then + eq.spawn2(brute,28,0,-2320,-2071,55,0); + elseif(location == 2) then + eq.spawn2(brute,28,0,-2255,-2642,-425,0); + else + eq.spawn2(brute,28,0,-2812,-2431,-420,0); + end +end + +function MiscSW(e) + local misc; + local location = math.random(6); + if(math.random(100) > 45) then + misc = 92057; + else + misc = eq.ChooseRandom(92029,92026,92044,92045,92046,92047); + end + if(location == 6) then + eq.spawn2(misc,28,0,504,-3191,-499,0); + elseif(location == 5) then + eq.spawn2(misc,28,0,3088,-549,-70,0); + elseif(location == 4) then + eq.spawn2(misc,28,0,3043,48,-35,0); + elseif(location == 3) then + eq.spawn2(misc,28,0,2297,-288,-70,0); + elseif(location == 2) then + eq.spawn2(misc,28,0,1483,226,-45,0); + else + eq.spawn2(misc,28,0,1083,-604,-165,0); + end +end + +function SarnakNW(e) + local sarnak; + local location = math.random(6); + if(math.random(100) > 45) then + sarnak = 92048; + else + sarnak = eq.ChooseRandom(92040,92007,92014,92033,92035,92041,92050,92053,92054); + end + if(location == 6) then + eq.spawn2(sarnak,28,0,3006,1960,233,0); + elseif(location == 5) then + eq.spawn2(sarnak,28,0,2430,1534,240); + elseif(location == 4) then + eq.spawn2(sarnak,28,0,2770,2088,170,0); + elseif(location == 3) then + eq.spawn2(sarnak,28,0,2172,2830,270,0); + elseif(location == 2) then + eq.spawn2(sarnak,28,0,3333,2794,180,0); + else + eq.spawn2(sarnak,28,0,3449,1924,170,0); + end +end + +function Goblin1Death(e) + GiantSW(e); +end + +function Goblin2Death(e) + GiantSW(e); +end + +function Goblin3Death(e) + GiantSW(e); +end + +function Goblin4Death(e) + GiantSW(e); +end + +function Goblin5Death(e) + GiantSW(e); +end + +function Goblin6Death(e) + GiantSW(e); +end + +function Goblin7Death(e) + GiantSW(e); +end + +function Goblin8Death(e) + GiantSW(e); +end + +function Goblin9Death(e) + GiantSW(e); +end + +function Giant1Death(e) + BurynaiNW(e); +end + +function Giant2Death(e) + BurynaiNW(e); +end + +function Giant3Death(e) + BurynaiNW(e); +end + +function Giant4Death(e) + BurynaiNW(e); +end + +function Giant5Death(e) + BurynaiNW(e); +end + +function Burynai1Death(e) + GoblinSE(e); +end + +function Burynai2Death(e) + GoblinSE(e); +end + +function Burynai3Death(e) + GoblinSE(e); +end + +function Burynai4Death(e) + GoblinSE(e); +end + +function Burynai5Death(e) + GoblinSE(e); +end + +function Burynai6Death(e) + GoblinSE(e); +end + +function Burynai7Death(e) + GoblinSE(e); +end + +function Burynai8Death(e) + GoblinSE(e); +end + +function Brute1Death(e) + MiscSW(e); +end + +function Brute2Death(e) + MiscSW(e); +end + +function Brute3Death(e) + MiscSW(e); +end + +function Brute4Death(e) + MiscSW(e); +end + +function Brute5Death(e) + MiscSW(e); +end + +function Brute6Death(e) + MiscSW(e); +end + +function Misc1Death(e) + SarnakNW(e); +end + +function Misc2Death(e) + SarnakNW(e); +end + +function Misc3Death(e) + SarnakNW(e); +end + +function Misc4Death(e) + SarnakNW(e); +end + +function Misc5Death(e) + SarnakNW(e); +end + +function Misc6Death(e) + SarnakNW(e); +end + +function Misc7Death(e) + SarnakNW(e); +end + +function Sarnak1Death(e) + BruteSE(e); +end + +function Sarnak2Death(e) + BruteSE(e); +end + +function Sarnak3Death(e) + BruteSE(e); +end + +function Sarnak4Death(e) + BruteSE(e); +end + +function Sarnak5Death(e) + BruteSE(e); +end + +function Sarnak6Death(e) + BruteSE(e); +end + +function Sarnak7Death(e) + BruteSE(e); +end + +function Sarnak8Death(e) + BruteSE(e); +end + +function Sarnak9Death(e) + BruteSE(e); +end + +function Sarnak10Death(e) + BruteSE(e); +end + +function event_encounter_load(e) + eq.register_npc_event("FMCycle", Event.timer, 92042, CycleTimer); + eq.register_npc_event("FMCycle", Event.spawn, 92042, CycleSpawn); + eq.register_npc_event("FMCycle", Event.death_complete, 92011, Goblin1Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92004, Goblin2Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92009, Goblin3Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92012, Goblin4Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92020, Goblin5Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92021, Goblin6Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92022, Goblin7Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92023, Goblin8Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92024, Goblin9Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92055, Giant1Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92030, Giant2Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92025, Giant3Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92028, Giant4Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92031, Giant5Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92010, Burynai1Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92003, Burynai2Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92013, Burynai3Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92008, Burynai4Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92034, Burynai5Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92017, Burynai6Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92145, Burynai7Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92015, Burynai8Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92056, Brute1Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92176, Brute2Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92036, Brute3Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92037, Brute4Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92038, Brute5Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92039, Brute6Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92057, Misc1Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92029, Misc2Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92026, Misc3Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92044, Misc4Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92045, Misc5Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92046, Misc6Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92047, Misc7Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92048, Sarnak1Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92040, Sarnak2Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92007, Sarnak3Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92014, Sarnak4Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92033, Sarnak5Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92035, Sarnak6Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92041, Sarnak7Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92050, Sarnak8Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92053, Sarnak9Death); + eq.register_npc_event("FMCycle", Event.death_complete, 92054, Sarnak10Death); +end diff --git a/frontiermtns/script_init.lua b/frontiermtns/script_init.lua new file mode 100644 index 0000000..935078e --- /dev/null +++ b/frontiermtns/script_init.lua @@ -0,0 +1 @@ +eq.load_encounter("FMCycle"); diff --git a/frozenshadow/#Amontehepna.lua b/frozenshadow/#Amontehepna.lua new file mode 100644 index 0000000..526bd07 --- /dev/null +++ b/frozenshadow/#Amontehepna.lua @@ -0,0 +1,5 @@ +function event_death_complete(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(111163) == false) then + eq.unique_spawn(111163,0,0,199,987,187,128); -- NPC: #Cara_Omica + end +end \ No newline at end of file diff --git a/frozenshadow/#Daman.lua b/frozenshadow/#Daman.lua new file mode 100644 index 0000000..93fbb3b --- /dev/null +++ b/frozenshadow/#Daman.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111025,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_enraged_relative +end \ No newline at end of file diff --git a/frozenshadow/#Eugie.lua b/frozenshadow/#Eugie.lua new file mode 100644 index 0000000..93fbb3b --- /dev/null +++ b/frozenshadow/#Eugie.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111025,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_enraged_relative +end \ No newline at end of file diff --git a/frozenshadow/#Isopca.lua b/frozenshadow/#Isopca.lua new file mode 100644 index 0000000..93fbb3b --- /dev/null +++ b/frozenshadow/#Isopca.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111025,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_enraged_relative +end \ No newline at end of file diff --git a/frozenshadow/#Lerty.lua b/frozenshadow/#Lerty.lua new file mode 100644 index 0000000..93fbb3b --- /dev/null +++ b/frozenshadow/#Lerty.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111025,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_enraged_relative +end \ No newline at end of file diff --git a/frozenshadow/#Nosja.lua b/frozenshadow/#Nosja.lua new file mode 100644 index 0000000..93fbb3b --- /dev/null +++ b/frozenshadow/#Nosja.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111025,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_enraged_relative +end \ No newline at end of file diff --git a/frozenshadow/#Otdd.lua b/frozenshadow/#Otdd.lua new file mode 100644 index 0000000..93fbb3b --- /dev/null +++ b/frozenshadow/#Otdd.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111025,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_enraged_relative +end \ No newline at end of file diff --git a/frozenshadow/#Pelpa.lua b/frozenshadow/#Pelpa.lua new file mode 100644 index 0000000..93fbb3b --- /dev/null +++ b/frozenshadow/#Pelpa.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111025,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_enraged_relative +end \ No newline at end of file diff --git a/frozenshadow/#Priest_Majes_Medory.lua b/frozenshadow/#Priest_Majes_Medory.lua new file mode 100644 index 0000000..93fbb3b --- /dev/null +++ b/frozenshadow/#Priest_Majes_Medory.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111025,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_enraged_relative +end \ No newline at end of file diff --git a/frozenshadow/#Tihgren.lua b/frozenshadow/#Tihgren.lua new file mode 100644 index 0000000..93fbb3b --- /dev/null +++ b/frozenshadow/#Tihgren.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111025,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_enraged_relative +end \ No newline at end of file diff --git a/frozenshadow/#Uenlarc.lua b/frozenshadow/#Uenlarc.lua new file mode 100644 index 0000000..93fbb3b --- /dev/null +++ b/frozenshadow/#Uenlarc.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111025,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_enraged_relative +end \ No newline at end of file diff --git a/frozenshadow/#Varjie.lua b/frozenshadow/#Varjie.lua new file mode 100644 index 0000000..93fbb3b --- /dev/null +++ b/frozenshadow/#Varjie.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111025,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_enraged_relative +end \ No newline at end of file diff --git a/frozenshadow/#Vyakna.lua b/frozenshadow/#Vyakna.lua new file mode 100644 index 0000000..93fbb3b --- /dev/null +++ b/frozenshadow/#Vyakna.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111025,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_enraged_relative +end \ No newline at end of file diff --git a/frozenshadow/#a_ghostly_scholar.lua b/frozenshadow/#a_ghostly_scholar.lua new file mode 100644 index 0000000..cfe7524 --- /dev/null +++ b/frozenshadow/#a_ghostly_scholar.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111015,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_angry_librarian +end \ No newline at end of file diff --git a/frozenshadow/#a_ghostly_student.lua b/frozenshadow/#a_ghostly_student.lua new file mode 100644 index 0000000..cfe7524 --- /dev/null +++ b/frozenshadow/#a_ghostly_student.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111015,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_angry_librarian +end \ No newline at end of file diff --git a/frozenshadow/#a_shadow_beast.lua b/frozenshadow/#a_shadow_beast.lua new file mode 100644 index 0000000..c920e0a --- /dev/null +++ b/frozenshadow/#a_shadow_beast.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111012,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- a_large_undead_gnoll +end \ No newline at end of file diff --git a/frozenshadow/#a_shadow_beast_cook.lua b/frozenshadow/#a_shadow_beast_cook.lua new file mode 100644 index 0000000..7d91cdc --- /dev/null +++ b/frozenshadow/#a_shadow_beast_cook.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111018,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_enraged_shadow_beast +end \ No newline at end of file diff --git a/frozenshadow/#a_shadow_beast_guard.lua b/frozenshadow/#a_shadow_beast_guard.lua new file mode 100644 index 0000000..b29ed0b --- /dev/null +++ b/frozenshadow/#a_shadow_beast_guard.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.unique_spawn(111058,0,0,-399,400,25.4,125); -- VhalSera +end diff --git a/frozenshadow/#a_shadow_beast_servant.lua b/frozenshadow/#a_shadow_beast_servant.lua new file mode 100644 index 0000000..7d91cdc --- /dev/null +++ b/frozenshadow/#a_shadow_beast_servant.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111018,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_enraged_shadow_beast +end \ No newline at end of file diff --git a/frozenshadow/#a_shadowbone.lua b/frozenshadow/#a_shadowbone.lua new file mode 100644 index 0000000..c920e0a --- /dev/null +++ b/frozenshadow/#a_shadowbone.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111012,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- a_large_undead_gnoll +end \ No newline at end of file diff --git a/frozenshadow/#a_shrouded_bat.lua b/frozenshadow/#a_shrouded_bat.lua new file mode 100644 index 0000000..b8d6f7e --- /dev/null +++ b/frozenshadow/#a_shrouded_bat.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.unique_spawn(111005,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- Tserrina_Syl`Tor +end \ No newline at end of file diff --git a/frozenshadow/#a_skeleton_sleeper.lua b/frozenshadow/#a_skeleton_sleeper.lua new file mode 100644 index 0000000..7d91cdc --- /dev/null +++ b/frozenshadow/#a_skeleton_sleeper.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111018,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_enraged_shadow_beast +end \ No newline at end of file diff --git a/frozenshadow/#a_zombie_butler.lua b/frozenshadow/#a_zombie_butler.lua new file mode 100644 index 0000000..7d91cdc --- /dev/null +++ b/frozenshadow/#a_zombie_butler.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111018,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_enraged_shadow_beast +end \ No newline at end of file diff --git a/frozenshadow/#a_zombie_maid.lua b/frozenshadow/#a_zombie_maid.lua new file mode 100644 index 0000000..7d91cdc --- /dev/null +++ b/frozenshadow/#a_zombie_maid.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111018,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_enraged_shadow_beast +end \ No newline at end of file diff --git a/frozenshadow/#an_ice_shade.lua b/frozenshadow/#an_ice_shade.lua new file mode 100644 index 0000000..b29ed0b --- /dev/null +++ b/frozenshadow/#an_ice_shade.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.unique_spawn(111058,0,0,-399,400,25.4,125); -- VhalSera +end diff --git a/frozenshadow/#an_undead_bridesmaid.lua b/frozenshadow/#an_undead_bridesmaid.lua new file mode 100644 index 0000000..93fbb3b --- /dev/null +++ b/frozenshadow/#an_undead_bridesmaid.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111025,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_enraged_relative +end \ No newline at end of file diff --git a/frozenshadow/#an_undead_dancer.lua b/frozenshadow/#an_undead_dancer.lua new file mode 100644 index 0000000..93fbb3b --- /dev/null +++ b/frozenshadow/#an_undead_dancer.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111025,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_enraged_relative +end \ No newline at end of file diff --git a/frozenshadow/#an_undead_musician.lua b/frozenshadow/#an_undead_musician.lua new file mode 100644 index 0000000..93fbb3b --- /dev/null +++ b/frozenshadow/#an_undead_musician.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111025,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_enraged_relative +end \ No newline at end of file diff --git a/frozenshadow/#an_undead_usher.lua b/frozenshadow/#an_undead_usher.lua new file mode 100644 index 0000000..93fbb3b --- /dev/null +++ b/frozenshadow/#an_undead_usher.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111025,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- an_enraged_relative +end \ No newline at end of file diff --git a/frozenshadow/Incoherent_spirit.lua b/frozenshadow/Incoherent_spirit.lua new file mode 100644 index 0000000..7d842c4 --- /dev/null +++ b/frozenshadow/Incoherent_spirit.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111056,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); -- lucid_spirit_of_Abrams +end \ No newline at end of file diff --git a/frozenshadow/You_.lua b/frozenshadow/You_.lua new file mode 100644 index 0000000..03411f0 --- /dev/null +++ b/frozenshadow/You_.lua @@ -0,0 +1,14 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("sees shadows gather themselves into the form of skeletons."); + eq.spawn2(111116,0,0,358,326,-2.2,0); -- NPC: a_shadowbone + eq.spawn2(111116,0,0,351,345,-2.2,0); -- NPC: a_shadowbone + eq.spawn2(111116,0,0,365,344,-2.2,0); -- NPC: a_shadowbone + eq.depop_with_timer(); +end diff --git a/frozenshadow/a_distant_voice.lua b/frozenshadow/a_distant_voice.lua new file mode 100644 index 0000000..1f1f989 --- /dev/null +++ b/frozenshadow/a_distant_voice.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 45, xloc + 45, yloc - 45, yloc + 45, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Say("She took us during the battle. She could feel us dying during our struggle with the heretics. She brought us here, far from home. Do you see why you must go back now? Look at what she has done. They do not see, they think they are home. She feeds her captive souls with knowledge to power her tools of domination. Soon they will be bricks and steel, used for nothing but war."); + eq.depop_with_timer(); +end diff --git a/frozenshadow/a_haunting_voice.lua b/frozenshadow/a_haunting_voice.lua new file mode 100644 index 0000000..eaac538 --- /dev/null +++ b/frozenshadow/a_haunting_voice.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Say("Please, you must turn back. They no longer recognize, they no longer know."); + eq.depop_with_timer(); +end diff --git a/frozenshadow/a_shadowbone_.lua b/frozenshadow/a_shadowbone_.lua new file mode 100644 index 0000000..ad4a1e8 --- /dev/null +++ b/frozenshadow/a_shadowbone_.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.set_timer("depop",1200000); +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/frozenshadow/a_shrouded_bat.lua b/frozenshadow/a_shrouded_bat.lua new file mode 100644 index 0000000..31fc8da --- /dev/null +++ b/frozenshadow/a_shrouded_bat.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(111024,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); +end \ No newline at end of file diff --git a/frozenshadow/lucid_spirit_of_Abrams.lua b/frozenshadow/lucid_spirit_of_Abrams.lua new file mode 100644 index 0000000..9ecdd8f --- /dev/null +++ b/frozenshadow/lucid_spirit_of_Abrams.lua @@ -0,0 +1,27 @@ +function event_spawn(e) + eq.set_timer("depop",390000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Where am I? Oh god no, please let this be a simple nightmare. Please don't hold my withering soul here any longer! Who are you? Why have you freed me? Please tell me it is over!"); + elseif(e.message:findi("soul")) then + e.self:Emote("looks about the corridor, paranoia gelaming in his ghostly eyes. He stammers out, 'she's trapped me soul here in her acursed tower. Don' speak too loudly or she'll hear ye. When me mad form is destroyed i am free fer a short time, only to remember me life as it once was and the fate i now endure. unfortunately i be doomed to this existence forever. Tell me before i am pulled away again, why have ye freed me?"); + elseif(e.message:findi("arcanum of rosh")) then + e.self:Say("I can never give up the Arcanum. It's bound to me, is a part of me now. It represents the sacrifice I made to me friends. It be the only thing that brings me any sliver of happiness. Only if ye kin replace it with somethin' of sentiment to me will I hand over the book."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1711}, 0)) then -- Lock of Dwarven Hair + e.other:QuestReward(e.self,0,0,0,0,1712,1000); -- Arcanum of Roth + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + e.self:Emote("suddenly clasps his hands over his ears and wails. he begins to fade away until all that is left is the echo of his tormented screams."); + eq.depop(); +end \ No newline at end of file diff --git a/frozenshadow/player.lua b/frozenshadow/player.lua new file mode 100644 index 0000000..bb80598 --- /dev/null +++ b/frozenshadow/player.lua @@ -0,0 +1,74 @@ +function event_click_door(e) + local door_id = e.door:GetDoorID(); + + if ( door_id == 2 or door_id == 166 ) then -- first floor + if ( not e.self:KeyRingCheck(20033) and e.self:HasItem(20033) ) then + e.self:KeyRingAdd(20033); + end + if( e.self:KeyRingCheck(20033) ) then + MoveGroup(e.self:GetGroup(),e.self, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 75, 660, 100, 40, 0); + end + elseif ( door_id == 4 or door_id == 167 ) then -- second floor + if ( not e.self:KeyRingCheck(20034) and e.self:HasItem(20034) ) then + e.self:KeyRingAdd(20034); + end + if( e.self:KeyRingCheck(20034) ) then + MoveGroup(e.self:GetGroup(),e.self, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 75, 670, 750, 75, 0); + end + elseif ( door_id == 16 or door_id == 165 ) then -- third floor + if ( not e.self:KeyRingCheck(20035) and e.self:HasItem(20035) ) then + e.self:KeyRingAdd(20035); + end + if ( e.self:KeyRingCheck(20035) ) then + MoveGroup(e.self:GetGroup(),e.self, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 75, 170, 755, 175, 0); + end + elseif ( door_id == 27 or door_id == 169 ) then -- forth floor + if ( not e.self:KeyRingCheck(20036) and e.self:HasItem(20036) ) then + e.self:KeyRingAdd(20036); + end + if( e.self:KeyRingCheck(20036) ) then + MoveGroup(e.self:GetGroup(),e.self, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 75, -150, 160, 217, 0); + end + elseif ( door_id == 34 or door_id == 168 ) then -- fifth floor + if ( not e.self:KeyRingCheck(20037) and e.self:HasItem(20037) ) then + e.self:KeyRingAdd(20037); + end + if( e.self:KeyRingCheck(20037) ) then + MoveGroup(e.self:GetGroup(),e.self, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 75, -320, 725, 12, 0); + end + elseif ( door_id == 154 ) then -- sixth floor + if ( not e.self:KeyRingCheck(20038) and e.self:HasItem(20038) ) then + e.self:KeyRingAdd(20038); + end + if( e.self:KeyRingCheck(20038) ) then + MoveGroup(e.self:GetGroup(),e.self, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 75, 10, 65, 310, 0); + end + elseif ( door_id == 1 ) then -- seventh floor + if ( not e.self:KeyRingCheck(20039) and e.self:HasItem(20039) ) then + e.self:KeyRingAdd(20039); + end + if( e.self:KeyRingCheck(20039) ) then + MoveGroup(e.self:GetGroup(),e.self, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 75, 20, 250, 355, 0); + end + end +end + +function MoveGroup(frozen_group, player, src_x, src_y, src_z, distance, tgt_x, tgt_y, tgt_z, tgt_h) + if ( frozen_group.valid ) then + local frozen_count = frozen_group:GroupCount(); + + for i = 0, frozen_count - 1, 1 do + local client_v = frozen_group:GetMember(i):CastToClient(); + + if (client_v.valid) then + -- check the distance and port them up if close enough + if (client_v:CalculateDistance(src_x, src_y, src_z) <= distance) then + -- port the player up + client_v:MovePC(111, tgt_x, tgt_y, tgt_z, tgt_h); -- Zone: erudsxing2 + end + end + end + else + player:MovePC(111, tgt_x, tgt_y, tgt_z, tgt_h); -- Zone: erudsxing2 + end +end diff --git a/fungusgrove/#Draz_Nurakk.lua b/fungusgrove/#Draz_Nurakk.lua new file mode 100644 index 0000000..421c5aa --- /dev/null +++ b/fungusgrove/#Draz_Nurakk.lua @@ -0,0 +1,26 @@ +function event_spawn(e) + eq.set_timer("depop",3600000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(157069); + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + eq.get_entity_list():GetMobByNpcTypeID(157069):AddToHateList(e.other,1); + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_death(e) + eq.signal(157069,1); +end \ No newline at end of file diff --git a/fungusgrove/#Draz_Nuraks_Warder.lua b/fungusgrove/#Draz_Nuraks_Warder.lua new file mode 100644 index 0000000..b67651a --- /dev/null +++ b/fungusgrove/#Draz_Nuraks_Warder.lua @@ -0,0 +1,11 @@ +function event_signal(e) + if(e.signal == 1) then + eq.set_timer("depop",120000); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end \ No newline at end of file diff --git a/fungusgrove/Ebben_Quickblade.lua b/fungusgrove/Ebben_Quickblade.lua new file mode 100644 index 0000000..8b1f57b --- /dev/null +++ b/fungusgrove/Ebben_Quickblade.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What ya want? You wouldn't be one of them Talikars come lookin for who robbed your gran daddys grave would ya? Hahaha. Get lost!"); + end +end diff --git a/fungusgrove/Rebecca_Cabbageleaf.lua b/fungusgrove/Rebecca_Cabbageleaf.lua new file mode 100644 index 0000000..906aebb --- /dev/null +++ b/fungusgrove/Rebecca_Cabbageleaf.lua @@ -0,0 +1,30 @@ +-- Xanthe's earring of nature and earring of the solstice - spell: protection of the cabbage + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("seems lost in thought and looks up only briefly from her work. 'Oh, hello " .. e.other:GetCleanName() .. ", welcome to the New Thicket Inn! If you'll excuse me, I'm a bit busy copying this [scroll]. I'll be with you in a moment to chat, or to trade if you've come about the [earring]'"); + elseif(e.message:findi("scroll")) then + e.self:Emote("looks up again with a quiet smile, 'I'm making a copy of a new Protection spell, it's very exciting! The druids of Norrath have just completed an important ritual, and the gods have blessed us with this new spell! I'd be happy to scribe you a copy, if you were to fetch me the [ingredients].'"); + elseif(e.message:findi("ingredients")) then + e.self:Say("Oh, let me see... I'll need a sheet of fancy Blessed parchment, a small flask of Dark Root ink, and of course a large quill. I think a Stormraven's quill would be best, certainly better than this one I've been using so far. Bring those items to me and I'll be happy to make you a copy for yourself. I'm not sure where you'll find all of those, I seem to have bought up the last of the stock in several places. Someone's bound to have them for sale, good luck with it!"); + elseif(e.message:findi("earring")) then + e.self:Emote("looks up again, 'Oh, have you come about the earring then? That's wonderful! As you probably know, the druids have recently completed an ancient ceremony, and some delightful people who weren't druids were able to participate. Sadly though, only druid's were able to use the Earrings of Nature that were created with the ceremony. I've been collecting spare earrings of Nature from those who can't use them, and giving an Earring of the Solstice in return. It's a good deal all around, as we both can benefit from the trade. If you have an earring of Nature to trade, just give it to me and I'll happily swap you, and if you don't like it, you can give it back.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5761,item2 = 5762,item3 = 5766})) then -- turn in for spell only + e.self:Emote("smiles warmly, 'Brilliant, you've brought me some more supplies! Here, please take this last copy I've made. I'd planned to use it for myself, but I'll let you use it so you don't have to wait for me to make a new one. I do hope you enjoy it!'"); + e.other:QuestReward(e.self,0,0,0,0,9722); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 9721}, 0)) then + e.self:Say("Here you are friend, an earring of the Solstice. I'll see that your old earring goes to a druid who can make better use of it. Safe travels, friend!"); + e.other:QuestReward(e.self,0,0,0,0,28771); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 28771}, 0)) then + e.self:Say("Here you are friend, Xanthe's Earring of Nature. I'll see that your old earring goes to someone who can make better use of it. Safe travels, friend!"); + e.other:QuestReward(e.self,0,0,0,0,9721); + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/fungusgrove/Scout_Halmia.lua b/fungusgrove/Scout_Halmia.lua new file mode 100644 index 0000000..5a34bee --- /dev/null +++ b/fungusgrove/Scout_Halmia.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am sorry, but I have been ordered to refrain from speaking to anyone that does not carry the Khati Sha Seal of War. If you do not carry such identification, please move out of my camp."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9057}, 0)) then + e.self:Say("I thank the spirits that you have arrived. I would not have been able to stop the dark animist if he were to attempt to leave. He has made camp in an empty set of huts. He has moved from hut to hut, but made no attempt to leave the area. I would be wary of traps if I were you. I must admit that I was afraid. That is why I moved to this location. He should still be there though."); + e.other:QuestReward(e.self,0,0,0,0,9062); + eq.unique_spawn(157009,0,0,-13,638,-259,128); + eq.unique_spawn(157069,0,0,-86,585,-259,90); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/fungusgrove/Thar_Anton.lua b/fungusgrove/Thar_Anton.lua new file mode 100644 index 0000000..ea6dc5c --- /dev/null +++ b/fungusgrove/Thar_Anton.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, traveler. I have many wares for sale so please take a look at what I have. If you think all my goods are junk and wish to buy from someone else though I'll understand."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 26057}, 0)) then -- Book of Sales Secrets + e.self:Say("I see you have brought a book from the Commissioner. Well I'm not much for reading but I will surely try anything that may increase my sales. Anyways I'm sure you aren't that interested in how bad my sales are and would like to be on your way so here you go."); + e.other:Faction(e.self,1508, 5); -- Traders of the Haven + e.other:Faction(e.self,1510, 1); -- House of Fordel + e.other:Faction(e.self,1511, 1); -- House of Midst + e.other:Faction(e.self,1512, 1); -- House of Stout + e.other:QuestReward(e.self,0,0,0,0,26058,5000); -- Thars Sales Report + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/fungusgrove/encounters/Callers.lua b/fungusgrove/encounters/Callers.lua new file mode 100644 index 0000000..a480004 --- /dev/null +++ b/fungusgrove/encounters/Callers.lua @@ -0,0 +1,391 @@ +local GROO_TOWN = 157006; -- #Caller_Groo +local GROO_GRID = 157010; -- Caller_Groo +local GROO_CAVE = 157011; -- #Caller_Groo_ +local MURKIN_TOWN = 157004; -- #Caller_Murkin +local MURKIN_GRID = 157012; -- Caller_Murkin +local MURKIN_CAVE = 157023; -- #Caller_Murkin_ +local TORGAL_TOWN = 157003; -- #Caller_Torgal +local TORGAL_GRID = 157037; -- Caller_Torgal +local TORGAL_CAVE = 157070; -- #Caller_Torgal_ +local CALLER_GOVERNOR = 157099; -- FGUshouter; respawns town callers when needed +local CALLER_INFO = { + [GROO_TOWN] = { + loc = { x = -463, y = 509, z = -258, h = 128 }; -- town spawn coods + gridNpc = GROO_GRID, -- spawn this NPC when blargrot handed in + contract = 28704, + }, + [GROO_GRID] = { + grid = 9, -- grid from town to cave + endWaypoint = 5, -- the last waypoint id for the grid + caveNpc = GROO_CAVE, -- spawn this NPC when reached cave + }, + [GROO_CAVE] = { + locs = { + { x = -1175, y = 214, z = -380, h = 0, grid = 12 }, + { x = -1155, y = 164, z = -380, h = 0, grid = 12 }, + { x = -1158, y = 263, z = -380, h = 0, grid = 12 }, + { x = -1132, y = 539, z = -335, h = 0, grid = 15 }, + { x = -1192, y = 544, z = -336, h = 0, grid = 15 }, + { x = -1198, y = 527, z = -332, h = 0, grid = 15 }, + }, + contract = 28704, + }, + + [MURKIN_TOWN] = { + loc = { x = -481, y = 501, z = -260, h = 136 }; -- town spawn coods + gridNpc = MURKIN_GRID, -- spawn this NPC when blargrot handed in + contract = 28703, + }, + [MURKIN_GRID] = { + grid = 10, -- grid from town to cave + endWaypoint = 7, -- the last waypoint id for the grid + caveNpc = MURKIN_CAVE, -- spawn this NPC when reached cave + }, + [MURKIN_CAVE] = { + locs = { + { x = -1098, y = 1077, z = -380, h = 0, grid = 13 }, + { x = -1079, y = 1030, z = -380, h = 0, grid = 13 }, + { x = -1098, y = 1000, z = -380, h = 0, grid = 13 }, + { x = -1077, y = 705, z = -336, h = 0, grid = 16 }, + { x = -1060, y = 736, z = -332, h = 0, grid = 16 }, + { x = -1149, y = 728, z = -333, h = 0, grid = 16 }, + }, + contract = 28703, + }, + + [TORGAL_TOWN] = { + loc = { x = -450, y = 496, z = -260, h = 139 }; -- town spawn coods + gridNpc = TORGAL_GRID, -- spawn this NPC when blargrot handed in + contract = 28705, + }, + [TORGAL_GRID] = { + grid = 11, -- grid from town to cave + endWaypoint = 6, -- the last waypoint id for the grid + caveNpc = TORGAL_CAVE, -- spawn this NPC when reached cave + }, + [TORGAL_CAVE] = { + locs = { + { x = -1477, y = 598, z = -378, h = 0, grid = 14 }, + { x = -1542, y = 613, z = -380, h = 0, grid = 14 }, + { x = -1583, y = 592, z = -380, h = 0, grid = 14 }, + { x = -1227, y = 663, z = -330, h = 0, grid = 17 }, + { x = -1219, y = 638, z = -332, h = 0, grid = 17 }, + { x = -1211, y = 569, z = -333, h = 0, grid = 17 }, + }, + contract = 28705, + }, +}; + +local COMMON_BEASTS = { + 157072, -- a_Chakta_Fungusbeast (level 51) + 157077, -- a_Chakta_Fungusfiend (level 45) + 157078, -- a_Chakta_Fungus_Healer (level 50 cleric) + 157079, -- a_Chakta_Fungus_Priest (level 51 shaman) +}; +local NAMED_BEASTS = { + 157081, -- #Chakiza + 157082, -- #Chakno + 157083, -- #Katcha + 157084, -- #Takacha + 157086, -- #Tiako + 157088, -- #Tuchako +}; + +local BOTTLE_TIMER = 180000; +local JUG_TIMER = 150000; +local KEG_TIMER = 118000; -- AK keg timer is 1:58; confirmed from logs +local waves = {}; +local timers = {}; + +function GovernorSpawn(e) + eq.set_timer("SpawnCallers", 60000); +end + +function GovernorTimer(e) + + if ( e.timer == "SpawnCallers" ) then + + local elist = eq.get_entity_list(); + local loc; + + if ( not elist:IsMobSpawnedByNpcTypeID(GROO_TOWN) + and not elist:IsMobSpawnedByNpcTypeID(GROO_GRID) + and not elist:IsMobSpawnedByNpcTypeID(GROO_CAVE) + ) then + loc = CALLER_INFO[GROO_TOWN].loc; + eq.unique_spawn(GROO_TOWN, 0, 0, loc.x, loc.y, loc.z, loc.h); + end + + if ( not elist:IsMobSpawnedByNpcTypeID(MURKIN_TOWN) + and not elist:IsMobSpawnedByNpcTypeID(MURKIN_GRID) + and not elist:IsMobSpawnedByNpcTypeID(MURKIN_CAVE) + ) then + loc = CALLER_INFO[MURKIN_TOWN].loc; + eq.unique_spawn(MURKIN_TOWN, 0, 0, loc.x, loc.y, loc.z, loc.h); + end + + if ( not elist:IsMobSpawnedByNpcTypeID(TORGAL_TOWN) + and not elist:IsMobSpawnedByNpcTypeID(TORGAL_GRID) + and not elist:IsMobSpawnedByNpcTypeID(TORGAL_CAVE) + ) then + loc = CALLER_INFO[TORGAL_TOWN].loc; + eq.unique_spawn(TORGAL_TOWN, 0, 0, loc.x, loc.y, loc.z, loc.h); + end + end +end + +function TownCallerSayEvent(e) + if(e.message:findi("hail")) then + e.self:Say("Ho ho! You come to hunt beasties? I bet so, many o' you kinda people come to hunt beasties. I call beasties fer ya, yub yub. Werk hard, work cheap too yub. You wanna hunt beasties, you bring blargrot here yub! More blargrot, me work harder yub."); + elseif(e.message:findi("blargrot")) then + e.self:Emote("grins and rubs his belly, 'Blargrot! Loves it, yub! You bring blargrot and me call beasties outta tha cave for ya, yub. Bring me a lil' jug, I call a few beasties. Bring a big ol' hruge jug, me call more beasties than ya ever see, yub!'"); + end +end + +function TownCallerTradeEvent(e) + + local item_lib = require("items"); + local timer, item, npc, depop; + local myType = e.self:GetNPCTypeID(); + local gridType = CALLER_INFO[myType].gridNpc; + local grid = CALLER_INFO[gridType].grid; + + for i = 1, 4 do + + item = e.trade["item"..i]; + timer = 0; + + if ( item ~= nil and item.valid ) then + + if ( item:GetID() == 28700 ) then -- bottle + timer = BOTTLE_TIMER; + e.trade["item"..i] = nil; + elseif ( item:GetID() == 28701 ) then -- jug + timer = JUG_TIMER; + e.trade["item"..i] = nil; + elseif ( item:GetID() == 28702 ) then -- keg + timer = KEG_TIMER; + e.trade["item"..i] = nil; + end + end + + if ( timer > 0 ) then + + e.self:Say("Aieee! Beastie huntin' fer us! Le's go! You give me back da contrac when you had nuff beasties, yub. Me quit then, an' call no more beasties. I wait a minute so you make ready. Then ya follow me, and I take ya to da cave where we find beasties..."); + e.other:QuestReward(e.self, 0, 0, 0, 0, CALLER_INFO[myType].contract, 1000); + + if ( not depop ) then -- unlike AK; prevents more than one caller + npc = eq.spawn2(gridType, grid, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + timers[npc:GetID()] = timer; + end + + depop = true; + end + end + item_lib.return_items(e.self, e.other, e.trade) + + if ( depop ) then + eq.depop(); + end +end + +function WaypointEvent(e) + local myNpcType = e.self:GetNPCTypeID(); + local endPoint; + if ( CALLER_INFO[myNpcType] ) then + endPoint = CALLER_INFO[myNpcType].endWaypoint; + end + if ( endPoint and e.wp == endPoint + and not eq.get_entity_list():IsMobSpawnedByNpcTypeID(CALLER_INFO[myNpcType].caveNpc) -- unlike AK; prevents more than one caller + ) then + -- spawn perma rooted cave NPC + local npc = eq.spawn2(CALLER_INFO[myNpcType].caveNpc,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + + -- keep track of spawn timers determined from blargrot turn-in + -- using entity ID to keep track of waves and timers since there are up to 4 clones each of the callers + timers[npc:GetID()] = timers[e.self:GetID()]; + timers[e.self:GetID()] = nil; + + waves[npc:GetID()] = 0; + eq.depop(); + end +end + +function CaveCallerSpawnEvent(e) + eq.set_timer("startwave", 60000); +end + +function SpawnWave(callerType) + + local roll, spawn1, spawn2, spawn3, mobType1, mobType2, mobType3; + + repeat + roll = math.random(1, #CALLER_INFO[callerType].locs); + + if ( not spawn1 ) then + spawn1 = roll; + elseif ( not spawn2 ) then + if ( spawn1 ~= roll ) then + spawn2 = roll; + end + elseif ( not spawn3 ) then + if ( spawn1 ~= roll and spawn2 ~= roll ) then + spawn3 = roll; + end + end + until (spawn3) + + roll = math.random(1, 100); + if ( roll < 6 ) then -- 5% + mobType1 = NAMED_BEASTS[math.random(1, #NAMED_BEASTS)]; + elseif ( roll < 39 ) then + mobType1 = COMMON_BEASTS[2]; -- small ones + else + mobType1 = COMMON_BEASTS[1]; + end + + roll = math.random(1, 100); + if ( roll < 33 ) then + mobType2 = COMMON_BEASTS[2]; + else + mobType2 = COMMON_BEASTS[1]; + end + + roll = math.random(1, 100); + if ( roll < 16 ) then + mobType3 = COMMON_BEASTS[3]; -- clerics + elseif ( roll < 46 ) then + mobType3 = COMMON_BEASTS[4]; -- shaman + elseif ( roll < 64 ) then + mobType3 = COMMON_BEASTS[2]; + else + mobType3 = COMMON_BEASTS[1]; + end + + local loc = CALLER_INFO[callerType].locs[spawn1]; + eq.spawn2(mobType1, loc.grid, 0, loc.x, loc.y, loc.z, loc.h); + loc = CALLER_INFO[callerType].locs[spawn2]; + eq.spawn2(mobType2, loc.grid, 0, loc.x, loc.y, loc.z, loc.h); + loc = CALLER_INFO[callerType].locs[spawn3]; + eq.spawn2(mobType3, loc.grid, 0, loc.x, loc.y, loc.z, loc.h); +end + +function CaveCallerTimer(e) + if ( e.timer == "startwave" ) then + + local wave = waves[e.self:GetID()] + 1; + + if ( wave < 5 ) then + e.self:Emote("moans and waves his arms, then shouts 'Graka! Mootogo Ta Naga!'"); + e.self:DoAnim(42); + eq.set_timer("startwave", timers[e.self:GetID()] or BOTTLE_TIMER); -- timers[e.self:GetID()] should never be nil, but just in case + SpawnWave(e.self:GetNPCTypeID()); + elseif ( wave == 5 ) then + e.self:Emote("moans and waves his arms, then shouts 'Graka! Mootogo Ta Naga!'"); + e.self:DoAnim(42); + eq.set_timer("startwave", 47000); + SpawnWave(e.self:GetNPCTypeID()); + elseif ( wave == 6 ) then + e.self:Emote("wipes the sweat from his brow, 'aaaagh, tired tired. Hard werk. Take da sit uh huh. Me call more soon as me rest up.'"); + eq.set_timer("startwave", 235000); + elseif ( wave == 7 ) then + e.self:Emote("shakes and stretches himself. 'Up, up now. Calling more beasts, you hunt, get up'"); + e.self:DoAnim(42); + eq.set_timer("startwave", 93000); + wave = 0; + end + waves[e.self:GetID()] = wave; + end +end + +function CaveCallerTrade(e) + local item_lib = require("items"); + local contract = CALLER_INFO[e.self:GetNPCTypeID()].contract; + + if ( item_lib.check_turn_in(e.self, e.trade, {item1 = contract}, 0) ) then + e.self:Emote("grunts and says, ''Oook! Tanks fer da werk, I see ya later!'' before vanishing into the tunnel"); + + local reward = 16976; -- Crystalized Sulfur + if ( math.random(1, 100) > 75 ) then + -- more rewards are likely possible, but reward is usually sulfur + reward = eq.ChooseRandom(10002, 10003, 10044); -- Pearl Earring, Pearl Ring, Golden Pendant + end + + e.other:QuestReward(e.self, 0, 0, 0, 0, reward, 10000); + waves[e.self:GetID()] = nil; + eq.stop_timer("startwave"); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function CaveCallerDeath(e) + waves[e.self:GetID()] = nil; +end + +function BeastEventSpawn(e) + local t = 600000; + if ( e.self:GetHP() > 15000 ) then -- quick and dirty way to tell if this is a named + t = t + 60000; + end + eq.set_timer("depop", t); +end + +function BeastEventCombat(e) + if ( e.joined ) then + if ( not eq.is_paused_timer("depop") ) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function BeastEventTimer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_encounter_load(e) + eq.register_npc_event("Callers", Event.spawn, CALLER_GOVERNOR, GovernorSpawn); + eq.register_npc_event("Callers", Event.timer, CALLER_GOVERNOR, GovernorTimer); + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(CALLER_GOVERNOR) ) then + eq.set_timer("SpawnCallers", 60000, eq.get_entity_list():GetMobByNpcTypeID(CALLER_GOVERNOR)); -- in case script loads after spawns + end + + eq.register_npc_event("Callers", Event.say, GROO_TOWN, TownCallerSayEvent); + eq.register_npc_event("Callers", Event.trade, GROO_TOWN, TownCallerTradeEvent); + eq.register_npc_event("Callers", Event.waypoint_arrive, GROO_GRID, WaypointEvent); + eq.register_npc_event("Callers", Event.spawn, GROO_CAVE, CaveCallerSpawnEvent); + eq.register_npc_event("Callers", Event.timer, GROO_CAVE, CaveCallerTimer); + eq.register_npc_event("Callers", Event.trade, GROO_CAVE, CaveCallerTrade); + eq.register_npc_event("Callers", Event.death, GROO_CAVE, CaveCallerDeath); + + eq.register_npc_event("Callers", Event.say, MURKIN_TOWN, TownCallerSayEvent); + eq.register_npc_event("Callers", Event.trade, MURKIN_TOWN, TownCallerTradeEvent); + eq.register_npc_event("Callers", Event.waypoint_arrive, MURKIN_GRID, WaypointEvent); + eq.register_npc_event("Callers", Event.spawn, MURKIN_CAVE, CaveCallerSpawnEvent); + eq.register_npc_event("Callers", Event.timer, MURKIN_CAVE, CaveCallerTimer); + eq.register_npc_event("Callers", Event.trade, MURKIN_CAVE, CaveCallerTrade); + eq.register_npc_event("Callers", Event.death, MURKIN_CAVE, CaveCallerDeath); + + eq.register_npc_event("Callers", Event.say, TORGAL_TOWN, TownCallerSayEvent); + eq.register_npc_event("Callers", Event.trade, TORGAL_TOWN, TownCallerTradeEvent); + eq.register_npc_event("Callers", Event.waypoint_arrive, TORGAL_GRID, WaypointEvent); + eq.register_npc_event("Callers", Event.spawn, TORGAL_CAVE, CaveCallerSpawnEvent); + eq.register_npc_event("Callers", Event.timer, TORGAL_CAVE, CaveCallerTimer); + eq.register_npc_event("Callers", Event.trade, TORGAL_CAVE, CaveCallerTrade); + eq.register_npc_event("Callers", Event.death, TORGAL_CAVE, CaveCallerDeath); + + for _, id in ipairs(COMMON_BEASTS) do + eq.register_npc_event("Callers", Event.spawn, id, BeastEventSpawn); + eq.register_npc_event("Callers", Event.timer, id, BeastEventTimer); + eq.register_npc_event("Callers", Event.combat, id, BeastEventCombat); + end + for _, id in ipairs(NAMED_BEASTS) do + eq.register_npc_event("Callers", Event.spawn, id, BeastEventSpawn); + eq.register_npc_event("Callers", Event.timer, id, BeastEventTimer); + eq.register_npc_event("Callers", Event.combat, id, BeastEventCombat); + end +end diff --git a/fungusgrove/script_init.lua b/fungusgrove/script_init.lua new file mode 100644 index 0000000..2ad9f86 --- /dev/null +++ b/fungusgrove/script_init.lua @@ -0,0 +1 @@ +eq.load_encounter("Callers"); diff --git a/gfaydark/Aliafya_Mistrunner.lua b/gfaydark/Aliafya_Mistrunner.lua new file mode 100644 index 0000000..1b90aa0 --- /dev/null +++ b/gfaydark/Aliafya_Mistrunner.lua @@ -0,0 +1,52 @@ +-- leafrunners quest + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Pleased to meet you, " .. e.other:GetCleanName() .. ", I am Aliafya Mistrunner Preserver of Nature and loyal servant of Tunare. I have resided in this guild house for many of my years. I pride myself on being a mentor to many young druids of Tunare that come up through our ranks. If you are a [druid of Tunare] then I might have some work for you."); + elseif(e.message:findi("druid of Tunare")) then + e.self:Say("I am always pleased to see new faces amongst us indeed " .. e.other:GetCleanName() .. ". However, I must learn if you are loyal to your house and your god by asking you to complete a series of training exercises. These tests will enable you to learn your way around this great land we call home and to pick up some very valuable hunting skills that will aid you in all of your battles to come. When you are [ready to begin your training] I will present you with your Leafrunners Assembly Kit."); + elseif(e.message:findi("ready to begin")) then + e.other:SummonCursorItem(17366); -- Item: Leafrunners Assembly Kit + e.self:Say("Here is your Leafrunners Assembly Kit, " .. e.other:GetCleanName() .. ". In this kit you will place a number of [magical components] that will be infused together to create armor materials used to crafting Leafrunners Leather Armor. Once you have created the armor materials you will then take them to a loom along with the correct pattern to fashion together your armor piece."); + elseif(e.message:findi("magical components")) then + e.self:Say("The components you will need to collect for your armor will take you to all parts of the faydark. These items can be found on some of the deadliest creatures and also on some of our most trust worthy merchants. Once you are ready to begin creating your armor pieces simply tell me what piece you [want] to craft. I can provide you with the material recipes and patterns for Leafrunners [Caps], [Bracers], [Sleeves], [Boots], [Leggings], [Gloves] and [Tunics]."); + elseif(e.message:findi("boot")) then + e.other:SummonCursorItem(22674); -- An Enchanted Boots Pattern + e.self:Say("To create your boots material you will need to combine 3 Woven Spider Silks, 1 Burned Out Lightstone, 1 Water Flask in your assembly kit. Once you have created the proper material take it to a loom along with this mold to fashion your very own Boots of the Leafrunner."); + elseif(e.message:findi("bracer")) then + e.other:SummonCursorItem(22672); -- An Enchanted Bracer Pattern + e.self:Say("To create your bracer material you will need to combine 1 Woven Spider Silks, 1 Wasp Wing, 1 Coyote Skull and 1 White Wine in your assembly kit. Once you have created the proper material take it to a loom along with this mold to fashion your very own Bracer of the Leafrunner."); + elseif(e.message:findi("cap")) then + e.other:SummonCursorItem(22628); -- An Enchanted Cap Pattern + e.self:Say("To create your cap material you will need to combine 2 Woven Spider Silks, 1 Spiderling Legs, 1 Fairy Dust and 1 Fishing Bait in your assembly kit. Once you have created the proper material take it to a loom along with this mold to fashion your very own Cap of the Leafrunner."); + elseif(e.message:findi("glove")) then + e.other:SummonCursorItem(22633); -- An Enchanted Gloves Pattern + e.self:Say("To create your gloves material you will need to combine 3 Woven Spider Silks, 1 Orc Tibia, 1 Orc Pelvis Bone, and 1 Crushbone Belt in your assembly kit. Once you have created the proper material take it to a loom along with this mold to fashion your very own Gloves of the Leafrunner."); + elseif(e.message:findi("legging")) then + e.other:SummonCursorItem(27570); -- An Enchanted Leggings Pattern + e.self:Say("To create your leggings material you will need to combine 4 Woven Spider Silks, 1 Orc Finger Bones , 1 Orc Foot Bones, 1 Small Lantern in your assembly kit. Once you have created the proper material take it to a loom along with this mold to fashion your very own Leggings of the Leafrunner."); + elseif(e.message:findi("sleeve")) then + e.other:SummonCursorItem(22631); -- An Enchanted Sleeves Pattern + e.self:Say("To create your sleeves material you will need to combine 2 Woven Spider Silks, 2 Pixie Wings, and 1 Torch in your assembly kit. Once you have created the proper material, place the pattern and the Sleeves of the Leafrunner material in to a sewing kit and combine it. You will now have Sleeves of the Leafrunner."); + elseif(e.message:findi("tunic")) then + e.other:SummonCursorItem(22677); -- An Enchanted Tunic Pattern + e.self:Say("To create your tunic material you will need to combine 5 Woven Spider Silks, 1 Pristine Forest Drakeling Scale, 1 Golden Bandit Tooth, 1 Orc Ribcage and 1 Legionnaires Bracer in your assembly kit. Once you have created the proper material take it to a loom along with this mold to fashion your very own Tunic of the Leafrunner. When you have completed all of your armor pieces please return to me when you are [ready to complete the test of loyalty]."); + elseif(e.message:findi("ready to complete the test of loyalty")) then + e.self:Say("There have been numerous attacks mounted lately by the orcs of Clan Crushbone. With their stronghold ever so close to us it is feared that a full-scale attack could level our city and at the very least, leave many of our bretheren dead by the hands of the filthy orcs. What I ask is that you bring me the detailed battle plans that only the highest ranking orcs could be carrying. Bring me these battle plans along with 2 pairs of Crushbone Battle Beads and I will surely reward you for your trouble."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 27537,item2 = 27537,item3 = 27538})) then + e.self:Say("There was no doubt in my mind that you could be counted on for this important mission. I will see that our tacticians get these battle plans so that they can be studied at once. Please take this Scimitar as a symbol of your dedication to your house and your god. You have done well, young Kiliak, may Tunare guide you always."); + e.other:Faction(e.self,310,5); -- soldier of Tunare + e.other:Faction(e.self,279,1); -- King Tearis Thex + e.other:Faction(e.self,246,1); -- Faydark's Champions + e.other:QuestReward(e.self,0,0,0,0,27531,200); -- Item: Scimitar of the Leafrunner + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:gfaydark ID:54072 -- Aliafya_Mistrunner diff --git a/gfaydark/Bidl_Frugrin.lua b/gfaydark/Bidl_Frugrin.lua new file mode 100644 index 0000000..7497a0f --- /dev/null +++ b/gfaydark/Bidl_Frugrin.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greeting. Do not you find the wine of Kelethin as sweet as their women?"); + elseif(e.message:findi("lens")) then + e.self:Say("Oh my!! I forgot I had that. Here you are. You better take it back I need to go elsewhere, bye now."); + e.other:SummonCursorItem(13276); -- telescope lens [bidl's lens] + end +end + +-- END of FILE Zone:gfaydark ID:54302? -- Bidl_Frugrin \ No newline at end of file diff --git a/gfaydark/Bilrio_Surecut.lua b/gfaydark/Bilrio_Surecut.lua new file mode 100644 index 0000000..68bda85 --- /dev/null +++ b/gfaydark/Bilrio_Surecut.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, friend. If fine weapons are what you seek then you shall find them here in my shop. I have traveled far and wide for the finest weapons. Still, there are a few [unusual weapons] which have eluded me."); + elseif(e.message:findi("unusual weapons")) then + e.self:Say("Unusual weapons? Yes. There are a few which I sought. Such an item is the [brazen brass kilij]."); + elseif(e.message:findi("brazen brass kilij")) then + e.self:Say("The brazen brass kilij is a legendary magical weapon designed by the ancients and long lost to the winds of time. I have searched the world for it to no avail. Perhaps the [legend of Husam] will add some insight to my quest. I have some knowledge of its design and I am sure I can [craft the kilij]."); + elseif(e.message:findi("legend of husam")) then + e.self:Say("Legend says the kilij was forged for a great paladin for his assault on the land of the dead. He was to slay the evil siblings Dimetreas and Byzola. It is said he killed Byzola. With the kilij he was unstoppable. Dimetreas knew this and cast an [evil spell] upon the kilij."); + elseif(e.message:findi("evil spell")) then + e.self:Say("The enchantment would allow only rogues, warriors and the feeble minstrels to wield it. And so Dimetreas defeated the now unarmed paladin and shattered the kilij. He then found the only kilij plans and sent them to the Plane of Man to be held forever by his evil servant, Husam.. Husam of the burning sun."); + elseif(e.message:findi("craft the kilij")) then + e.self:Say("I can craft the kilij. All I need are the kilij plans and three enchanted gold bars. The blend of metals is not entirely brass and only an enchanter can provide the enchanted metal I need. As for the plans, perhaps during your great adventures you shall happen upon it. If so, I can make one for you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12206,item2 = 16506,item3 = 16506,item4 = 16506})) then + e.self:Say("You have succeeded in your quest for the kilij!! Wield it proudly."); + e.other:Faction(e.self,276,10); -- kelethin merchants + e.other:Faction(e.self,246,1); -- faydark's champions + e.other:Faction(e.self,326,1); -- emerald warriors + e.other:Faction(e.self,5002,2); -- anti-mage + e.other:QuestReward(e.self,0,0,0,0,5366,1500); -- Item: Brazen Brass Kilij + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/gfaydark/Captain_Silverwind.lua b/gfaydark/Captain_Silverwind.lua new file mode 100644 index 0000000..f0bf7a7 --- /dev/null +++ b/gfaydark/Captain_Silverwind.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. " .. e.other:GetCleanName() .. ". I protect these lands in the name of the Royal Order of Koada'Vie. defenders of Felwithe."); + end +end + +-- END of FILE Zone:gfaydark ID:54106 -- Captain_Silverwind \ No newline at end of file diff --git a/gfaydark/Devin_Ashwood.lua b/gfaydark/Devin_Ashwood.lua new file mode 100644 index 0000000..5f75786 --- /dev/null +++ b/gfaydark/Devin_Ashwood.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day to you. " .. e.other:GetCleanName() .. "! I am Devin Ashwood. Pleased to make your acquaintance."); + elseif(e.message:findi("Ganelorn Oast") or e.message:findi("greatest")) then + e.self:Say("Ganelorn Oast! For he has single-handedly caught more poachers than any other ranger. He is credited for helping numerous endangered species recover from certain extinction. I suppose I am lucky he is fond of my sister, as I am soon to train under him as an apprentice. Perhaps one day I will even [call upon the flames] in the way that he does."); + eq.signal(54086,2); -- NPC: Lily_Ashwood + elseif(e.message:findi("call upon the flames")) then + if(e.other:GetLevel() >= 50) then + e.self:Say("Aye, Ganelorn is renowned not only for his abilities as an archer and a master of melee combat, but also for his use of powerful magics. Never before have I seen a forester evoke a fireball of such great force. It would be any ranger's dream to become his pupil just to study that one spell. Ganelorn doesn't train just anyone, though. If you want to learn from him, I'm certain you would have to prove yourself as a forester."); + else + e.self:Say(eq.ChooseRandom("Someone with your skills is more suited to beetle slaying. Run along, now.","This matter is far too advanced for you to handle. Come back after you've killed a few more large rats.","It's much safer for you to spend time fishing than on a dangerous issue like this.","I think I saw a gnoll pup you could probably defeat, a few miles back.")); + end + elseif(e.message:findi("want to learn")) then + if(e.other:GetLevel() >= 50) then + e.self:Say("He is a very busy individual. I believe he is currently in the eastern part of the Karanas trying to track down a poacher. Even if you can track him down, don't get your hopes up.' Lily Ashwood says 'Oh! If you're going to see him, would you please take this letter to him? I trust you, since you're a ranger and all."); + eq.signal(54086,3); -- NPC: Lily_Ashwood + else + e.self:Say(eq.ChooseRandom("Someone with your skills is more suited to beetle slaying. Run along, now.","This matter is far too advanced for you to handle. Come back after you've killed a few more large rats.","It's much safer for you to spend time fishing than on a dangerous issue like this.","I think I saw a gnoll pup you could probably defeat, a few miles back.")); + end + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Bah! Why would the greatest forester in all of Norrath ask you to marry him? Between his time spent protecting wildlife, hunting poachers and training me, I doubt he has any spare time for a foolish girl like you, sister."); + eq.signal(54086,1); -- NPC: Lily_Ashwood + end +end + +-- END of FILE Zone:gfaydark ID:54081 -- Devin_Ashwood \ No newline at end of file diff --git a/gfaydark/Dill_Fireshine.lua b/gfaydark/Dill_Fireshine.lua new file mode 100644 index 0000000..36ccdf4 --- /dev/null +++ b/gfaydark/Dill_Fireshine.lua @@ -0,0 +1,57 @@ +-- Quests: Orc Hatchets and Orc Runner (Kelethin) + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the treetops and the home of Faydark's Champions. We are the skilled rangers of the Faydarks. You are safe in Kelethin. but watch yourself upon the forest floor. I hear the [blue meanies] have been on the rise."); + elseif(e.message:findi("blue meanies")) then + e.self:Say("That is a little name I have given the Crushbone orcs. It appears they have increased their numbers. The Emerald Warriors are charged with our defense against them. We rangers are to seek out the [orc saboteurs]."); + elseif(e.message:findi("orc saboteurs")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("As others move to battle the orc armies. we have word that the orc pawns have been sent into the woods to damage the great trees which support Kelethin. We shall employ the talents of our young rangers to halt their efforts. I currently seek those who will [hunt the orc pawns]."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("Faydark's Champions cannot call you foe. but you have yet to earn our trust."); + else + e.self:Say("Your ways are considered vile to Faydark's Champions. Leave before my rage overcomes my restraint."); + end + elseif(e.message:findi("hunt the orc pawns")) then + e.self:Say("Go to the forest floor and seek out the orc pawns. Within their ranks can sometimes be found orc hatchetmen. They carry orc hatchets which you must return and I shall reward you for every two orc hatchets and perhaps offer you a weapon in return. should we have any to spare at the time."); + elseif(e.message:findi("crushbone allies")) then + e.self:Say("It seems the orcs have allied themselves with the wicked Teir'Dal. We know of this through reports of a Teir'Dal presence within Crushbone. We must [intercept the Crushbone runners] and find a reason for their union."); + elseif(e.message:findi("intercept the crushbone runners")) then + e.self:Say("Go to the Butcherblocks. You stand a greater chance of finding the runners there. I shall pay a bounty for all returned runner pouches."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I expect to receive TWO orc hatchets."; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12108,item2 = 12108},1,text)) then -- Orc Hatchet x 2 + e.self:Say("Fantastic work!! Your actions shall earn you the respect of all Fier'Dal! Take this as a small bounty for your deed. We have heard of [Crushbone allies] who wish our demise."); + e.other:Faction(e.self,246,10); -- Faydark's Champions + e.other:Faction(e.self,279,2); -- King Tearis Thex + e.other:Faction(e.self,226,2); -- Clerics of Tunare + e.other:Faction(e.self,310,2); -- Soldiers of Tunare + e.other:Faction(e.self,234,-2); -- Crushbone Orcs + e.other:QuestReward(e.self,math.random(10),math.random(20),0,0,eq.ChooseRandom(5047,5048,7032),500); -- Tarnished Scimitar, Tarnished Bastard Sword, Cast-Iron Rapier + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18840})) then -- Sealed Letter (Letter To King Naythox Thex) + e.self:Say("Yes. A recent report has proven this to be true. An evil alliance has been made. We shall soon need many more experienced adventurers such as yourself. For now, take this reward and strengthen your skills."); + e.other:Faction(e.self,246,30); -- Faydark's Champions + e.other:Faction(e.self,279,7); -- King Tearis Thex + e.other:Faction(e.self,226,7); -- Clerics of Tunare + e.other:Faction(e.self,310,7); -- Soldiers of Tunare + e.other:Faction(e.self,234,-7); -- Crushbone Orcs + e.other:QuestReward(e.self,math.random(0,10),math.random(0,10),math.random(0,10),math.random(0,2),8003,1500); -- Longbow + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13226})) then -- Runner Pouch + e.self:Say("Good work. We shall cut off correspondence between these two. It is for the best. Remember, if you find any notes to Neriak from the ambassador in Crushbone, give them to me."); + e.other:Faction(e.self,246,20); -- Faydark's Champions + e.other:Faction(e.self,279,5); -- King Tearis Thex + e.other:Faction(e.self,226,5); -- Clerics of Tunare + e.other:Faction(e.self,310,5); -- Soldiers of Tunare + e.other:Faction(e.self,234,-5); -- Crushbone Orcs + e.other:QuestReward(e.self,math.random(0,10),math.random(0,10),math.random(0,10),math.random(0,2),eq.ChooseRandom(2148, 2142, 2146, 2147, 2138, 2141, 2137, 2144, 2145, 2143, 2140, 2139),1500); -- Raw-hide Armors + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:gfaydark ID:54105 -- Dill_Fireshine diff --git a/gfaydark/Expin.lua b/gfaydark/Expin.lua new file mode 100644 index 0000000..be7925d --- /dev/null +++ b/gfaydark/Expin.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("How are you, my friend? You must be a [new scout of Kelethin]. I would hope so. We dearly need more recruits. Most of the Fier'Dal choose the path of the ranger."); + elseif(e.message:findi("new scout of kelethin")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Good. I have an easy, but very important, task for you. We require all young members to cleanse these woods of the troublesome pixie tricksters. Take this pouch, fill it with pixie dust, and when it is combined, return it to me. I just may have some used armor lying around for you."); + e.other:SummonCursorItem(17957); -- Empty Pouch + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("The Scouts of Tunare have no quarrel with you, but perhaps a few less Crushbone Orcs would prove your worth. Then we shall speak.") + else + e.self:Say("You dare to speak with a loyal member of the Scouts of Tunare?! You are truly foolish! Run away, while you still can."); + end + elseif(e.message:findi("dark assassin")) then + e.self:Emote("squints at you and says, 'So you have heard about him as well? I had heard of him through the rogue grapevine, so I was wary when the home guard spoke of the arrival of a dark stranger. I was approaching him from behind and some loud ranger clompipng about in the bushes must of spooked him, for off he ran. As he was running I took the liberty to swipe a piece of paper protruding from his pocket.' Expin mumbles to himself, 'Now where did I put that note?'"); + elseif(e.message:findi("not satisfied")) then + e.self:Say("I told you not to tell me."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12109})) then -- Pouch of Pixie Dust + e.self:Say("Good work. scout!! You have earned this reward. It is all we have at the time. I am certain you are satisfied. If not, then do not let me hear of it."); + e.other:Faction(e.self,316,15); -- Scouts of Tunare + e.other:QuestReward(e.self,math.random(10),math.random(20),0,0,eq.ChooseRandom(2104, 2106, 2108, 2111, 2112),800); -- Patchwork + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 16390})) then -- Crumpled Piece of Paper + e.self:Say("Ahhh! You found it! Here let me make you a copy and put this in a secure spot so I don't lose it again."); + e.other:QuestReward(e.self,0,0,0,0,24098,50); -- Remiss Sketch + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:gfaydark ID:54024 -- Expin diff --git a/gfaydark/Faelin_Bloodbriar.lua b/gfaydark/Faelin_Bloodbriar.lua new file mode 100644 index 0000000..4cbd399 --- /dev/null +++ b/gfaydark/Faelin_Bloodbriar.lua @@ -0,0 +1,24 @@ +function event_spawn(e) + eq.set_timer("depop",1200000); +end + +function event_timer(e) + if (e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop_with_timer(); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20472})) then + e.self:Emote("reads the note carefully and growls to herself. 'Bad news, eh? Take this ring. There is one elf, dark elf even, whom we must go to in order to gather insight into Innoruuk's plans. Giz X'Tin, he goes by most commonly. Kithicor seems to be his favorite haunt and most likely you will find him there. Don't ask how I know him. Just take the ring as my sign to him and he will speak to you. We don't need to speak again, so don't seek me out. Just go to Telin. I must leave to investigate these events.'"); + e.other:QuestReward(e.self,0,0,0,0,20446); -- Item: Faelin`s Ring + eq.stop_timer("depop"); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- EOF zone: gfaydark ID: 54237 NPC: Faelin_Bloodbriar \ No newline at end of file diff --git a/gfaydark/Gallin_Woodwind.lua b/gfaydark/Gallin_Woodwind.lua new file mode 100644 index 0000000..93b3d5f --- /dev/null +++ b/gfaydark/Gallin_Woodwind.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. friend! I am Gallin Woodwind of the Emerald Warriors. It is my charge to send forth Fier'Dal to [hunt for meat]. Kelethin's citizens must be nourished and this requires meat. Such is the circle of life."); + elseif(e.message:findi("hunt for meat")) then + e.self:Say("Good!! We have enough young warriors hunting in our woods. Your duty shall be to take this pack to the ocean and seek out sharks. Fill the bag with shark meat and combine it. I shall reward you with a fine piercing weapon."); + e.other:SummonCursorItem(17953); -- Item: Pack for Shark + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12121})) then + e.self:Say("Very good. This meat will supply our warriors with much strength. We have found the meat from sharks to be quite nourishing. Here, then, are your wages and your weapon. All of Kelethin appreciates your great deed."); + e.other:Faction(e.self,326,40); -- Emerald Warriors + e.other:Faction(e.self,270,-6); -- Indigo Brotherhood + e.other:Faction(e.self,325,4); -- Merchants of Felwithe + e.other:Faction(e.self,276,4); -- Kelethin Merchants + e.other:QuestReward(e.self,0,math.random(9),math.random(9),math.random(9),eq.ChooseRandom(5026,5027,5028,5029,5030,5031,5032,5033,5034,5035,5036,5037,5082,6041,6042,6046,7032),1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:gfaydark ID:54102 -- Gallin_Woodwind diff --git a/gfaydark/Geeda.lua b/gfaydark/Geeda.lua new file mode 100644 index 0000000..9437875 --- /dev/null +++ b/gfaydark/Geeda.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Are not the woods of the Faydarks a lovely sight? Tunare has truly blessed us. It is unfortunate that the orcs of [Crushbone Citadel] have chosen to invade our lands."); + elseif(e.message:findi("crushbone citadel")) then + e.self:Say("Within the Greater Faydarks can be found the entrance to Crushbone Citadel, home of the orcs. They have increased their raids on our lands. We do not know why. The High Elder of Kelethin has instructed us to keep tabs on the orcs' movements. Hmmm.. How would you like to [assist the scouts]?"); + elseif(e.message:findi("assist the scouts")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("We trust this operation to high standing rogues of the Scouts of Tunare. Easy it may be, but the reward is a scout cape. The scout cape is meant for Scouts of Tunare only. Have you [contributed to the Scouts' cause]?"); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("The Scouts of Tunare have no quarrel with you, but perhaps a few less Crushbone Orcs would prove your worth. Then we shall speak."); + else + e.self:Say("You dare to speak with a loyal member of the Scouts of Tunare?! You are truly foolish! Run away, while you still can."); + end + elseif(e.message:findi("contributed")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- requires amiably faction regardless of class + e.self:Say("So we have heard. Here, then. Take this coin. Venture into Crushbone and find our scout, Kelynn. He is posing as a slave to gain information. He tries to work very close to an opening in a cave near the moats. Find this point and wait for him to appear. Give him the coin and he shall give you the information you are to return to me."); + e.other:SummonCursorItem(12184); -- Item: Useless Token + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("The Scouts of Tunare have no quarrel with you, but perhaps a few less Crushbone Orcs would prove your worth. Then we shall speak."); + else + e.self:Say("You dare to speak with a loyal member of the Scouts of Tunare?! You are truly foolish! Run away, while you still can."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12183})) then + e.self:Say("Fine work. We are very grateful. Take this Scout Cape. May you use it to serve Kelethin."); + e.other:Faction(e.self,316,20); -- Faction: Scouts of Tunare + e.other:QuestReward(e.self,0,0,0,0,2914,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/gfaydark/Guard_Briarstorm.lua b/gfaydark/Guard_Briarstorm.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Briarstorm.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Brookrock.lua b/gfaydark/Guard_Brookrock.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Brookrock.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Crystalwind.lua b/gfaydark/Guard_Crystalwind.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Crystalwind.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Dayblaze.lua b/gfaydark/Guard_Dayblaze.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Dayblaze.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Eaglesong.lua b/gfaydark/Guard_Eaglesong.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Eaglesong.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Fayfear.lua b/gfaydark/Guard_Fayfear.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Fayfear.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Fayfield.lua b/gfaydark/Guard_Fayfield.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Fayfield.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Fireblight.lua b/gfaydark/Guard_Fireblight.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Fireblight.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Frostfallen.lua b/gfaydark/Guard_Frostfallen.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Frostfallen.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Highmoon.lua b/gfaydark/Guard_Highmoon.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Highmoon.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Marshmoor.lua b/gfaydark/Guard_Marshmoor.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Marshmoor.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Moonwind.lua b/gfaydark/Guard_Moonwind.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Moonwind.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Nitegazer.lua b/gfaydark/Guard_Nitegazer.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Nitegazer.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Noonshadow.lua b/gfaydark/Guard_Noonshadow.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Noonshadow.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Oakwillow.lua b/gfaydark/Guard_Oakwillow.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Oakwillow.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Orcflayer.lua b/gfaydark/Guard_Orcflayer.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Orcflayer.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Pinebramble.lua b/gfaydark/Guard_Pinebramble.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Pinebramble.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Pineshade.lua b/gfaydark/Guard_Pineshade.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Pineshade.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Rainstrider.lua b/gfaydark/Guard_Rainstrider.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Rainstrider.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Starstrike.lua b/gfaydark/Guard_Starstrike.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Starstrike.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Streamtree.lua b/gfaydark/Guard_Streamtree.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Streamtree.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Sunblaze.lua b/gfaydark/Guard_Sunblaze.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Sunblaze.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Sunweaver.lua b/gfaydark/Guard_Sunweaver.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Sunweaver.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Tangleroot.lua b/gfaydark/Guard_Tangleroot.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Tangleroot.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Treestrider.lua b/gfaydark/Guard_Treestrider.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Treestrider.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Guard_Valewatcher.lua b/gfaydark/Guard_Valewatcher.lua new file mode 100644 index 0000000..1cbbebc --- /dev/null +++ b/gfaydark/Guard_Valewatcher.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("soldiers")) then + e.self:Say("On one of the highest platforms, you can find the Soldiers of Tunare. They are the druids of the Faydarks and even a few Koada'Dal are respected members."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kelethin are called the Emerald Warriors. Their platform is near one of the lifts."); + elseif(e.message:findi("forge")) then + e.self:Say("I believe there is a public forge near one of the elevators."); + elseif(e.message:findi("bank")) then + e.self:Say("The Bank of Kelethin is a safe place to store your belongings. I believe it is near the ranger guild."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("There are a few inns in Kelethin. I recommend the Sleepy Willow Inn near the Emerald Warriors."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("In the trees of Kelethin you can find a tavern on just about every platform."); + elseif(e.message:findi("emerald warrior")) then + e.self:Say("The Emerald Warriors are the warriors of Kelethin. It is from among their ranks that we draw the guards. They have a guild house near one of the lifts."); + elseif(e.message:findi("felwithe")) then + e.self:Say("Within the Greater Faydarks one can find the entrance to the Koada'Dal city of Felwithe. Just head east."); + elseif(e.message:findi("healer")) then + e.self:Say("If you require the talents of a healer, might I suggest visiting the Soldiers of Tunare? Or, you can visit the Clerics of Tunare in Felwithe."); + elseif(e.message:findi("akanon")) then + e.self:Say("You must venture through the Lesser Faydarks to get to the Steamfont Mountain Range and Ak'Anon"); + elseif(e.message:findi("butcher")) then + e.self:Say("Find the road upon the floor of Greater Faydark and follow it to the Butcherblock Mountains and to the docks."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Venture to the Butcherblock Mountains and you shall find Kaladim. It will be impossible to miss from the road."); + elseif(e.message:findi("leader") or e.message:findi("king") or e.message:findi("mayor")) then + e.self:Say("The great city of Kelethin is ruled over by the Mayor of Kelethin."); + elseif(e.message:findi("mayong") or e.message:findi("mistmoore")) then + e.self:Say("Mayong Mistmoore is a reclusive person. None have seen him. He stays within Castle Mistmoore. His supplies are picked up at the docks of Butcherblock by his servants. Every so often they stop at Kelethin or Felwithe. It is best they do not come at all. They reek of evil."); + elseif(e.message:findi("armor")) then + e.self:Say("Armor is not easily found amongst our merchants. I would suggest visiting the Koada'Dal city of Felwithe."); + end +end \ No newline at end of file diff --git a/gfaydark/Heartwood_Master.lua b/gfaydark/Heartwood_Master.lua new file mode 100644 index 0000000..5cfd6d2 --- /dev/null +++ b/gfaydark/Heartwood_Master.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Greetings, child of Tunare. As druids of the Mother of all, we may only use blunt weapons and the scimitar, all other blades are forbidden. Prove your devotion by bringing me a [rusty short sword], a [rusty long sword], a [rusty broad sword], and a [rusty bastard sword]. I will destroy them and reward your faith."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Tunare be praised! Do you have the rest I requested?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18786})) then -- Tattered Note + e.self:Say("Welcome! We are the Soldiers of Tunare, the sworn protectors of Faydark. I thank you for joining our cause, we can always use the help. Here, put on this tunic, and let's get started.. you have much to learn."); + e.other:Faction(e.self,310,100); -- soldier of Tunare + e.other:Faction(e.self,279,15); -- King Tearis Thex + e.other:Faction(e.self,246,15); -- Faydark's Champions + e.other:QuestReward(e.self,0,0,0,0,13537,20); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 5013,item2 = 5016,item3 = 5019,item4 = 5022},1,text)) then + e.self:Say("You have done well, child! Take this as a blessing from Tunare for doing her will."); + e.other:Faction(e.self,310,1); -- soldier of Tunare + e.other:Faction(e.self,279,1); -- King Tearis Thex + e.other:Faction(e.self,246,1); -- Faydark's Champions + e.other:QuestReward(e.self,math.random(9),math.random(9),math.random(9),0,eq.ChooseRandom(5047,6012),250); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:gfaydark ID:54083 -- Heartwood_Master diff --git a/gfaydark/Idia.lua b/gfaydark/Idia.lua new file mode 100644 index 0000000..d1244f5 --- /dev/null +++ b/gfaydark/Idia.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail. " .. e.other:GetCleanName() .. " - Are you [interested] in helping the League of Antonican Bards by delivering some [mail]?"); + elseif(e.message:findi("interested")) then + e.self:Say("I have messages that need to go to - well. right now I have one that needs to go to Freeport. Will you [deliver] mail to [Freeport] for me?"); + elseif(e.message:findi("mail") and not e.message:findi("deliver") and not e.message:findi("freeport") and not e.message:findi("qeynos")) then + e.self:Say("The League of Antonican Bards has a courier system made up of travelers, adventurers, and [agents]. We pay good gold to anyone who will take messages from bards such as myself to one of our more distant offices. Are you [interested]?"); + elseif(e.message:findi("agents")) then + e.self:Say("Lyra Lyrestringer, Tacar Tissleplay, Kilam Oresinger and Siltria Marwind all report to Jakum Webdancer."); + elseif(e.message:findi("deliver") and e.message:findi("Freeport")) then + e.self:Say("Take this letter to Felisity Starbright. You can find her at the bard guild hall. I'm sure she will compensate you for your trouble."); + e.other:SummonCursorItem(18166); -- Item: A Pouch of Mail (Freeport) + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18167})) then + e.self:Say("More mail - you have done us a noteworthy service! Please take this gold for your troubles. If you are interested in more work, just ask me."); + e.other:Faction(e.self,284,5); -- league of antonican bards + e.other:Faction(e.self,281,1); -- knights of truth + e.other:Faction(e.self,262,1); -- guards of qeynos + e.other:Faction(e.self,304,-1); -- ring of scale + e.other:Faction(e.self,285,-1); -- mayong mistmoore + e.other:QuestReward(e.self,0,0,eq.ChooseRandom(6,7,8,9,10,11,12,13,14,15),0,0,1550); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:gfaydark diff --git a/gfaydark/Innkeep_Anisyla.lua b/gfaydark/Innkeep_Anisyla.lua new file mode 100644 index 0000000..c0f8e54 --- /dev/null +++ b/gfaydark/Innkeep_Anisyla.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome! Why don't you browse through my selection of fine goods and pick out some things you like " .. e.other:GetCleanName() .. "?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("Oh, these look delicious! No doubt they were made with fresh fruit grown locally; I can tell by the aroma. You have quite a talent! Thank you so much. Here is your payment. This should be enough to last me for a little while."); + e.other:Faction(e.self,276,2); --kelethin merchants + e.other:Faction(e.self,246,1); --faydarks champions + e.other:Faction(e.self,326,1); --emerald warriors + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("Excellent, I see you made it back safely. Thank you so much, here is your payment as promised. Now I can get back to business as usual."); + e.other:Faction(e.self,276,4); --kelethin merchants + e.other:Faction(e.self,246,1); --faydarks champions + e.other:Faction(e.self,326,1); --emerald warriors + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/gfaydark/Innkeep_Larya.lua b/gfaydark/Innkeep_Larya.lua new file mode 100644 index 0000000..c0f8e54 --- /dev/null +++ b/gfaydark/Innkeep_Larya.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome! Why don't you browse through my selection of fine goods and pick out some things you like " .. e.other:GetCleanName() .. "?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("Oh, these look delicious! No doubt they were made with fresh fruit grown locally; I can tell by the aroma. You have quite a talent! Thank you so much. Here is your payment. This should be enough to last me for a little while."); + e.other:Faction(e.self,276,2); --kelethin merchants + e.other:Faction(e.self,246,1); --faydarks champions + e.other:Faction(e.self,326,1); --emerald warriors + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("Excellent, I see you made it back safely. Thank you so much, here is your payment as promised. Now I can get back to business as usual."); + e.other:Faction(e.self,276,4); --kelethin merchants + e.other:Faction(e.self,246,1); --faydarks champions + e.other:Faction(e.self,326,1); --emerald warriors + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/gfaydark/Innkeep_Linen.lua b/gfaydark/Innkeep_Linen.lua new file mode 100644 index 0000000..c0f8e54 --- /dev/null +++ b/gfaydark/Innkeep_Linen.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome! Why don't you browse through my selection of fine goods and pick out some things you like " .. e.other:GetCleanName() .. "?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("Oh, these look delicious! No doubt they were made with fresh fruit grown locally; I can tell by the aroma. You have quite a talent! Thank you so much. Here is your payment. This should be enough to last me for a little while."); + e.other:Faction(e.self,276,2); --kelethin merchants + e.other:Faction(e.self,246,1); --faydarks champions + e.other:Faction(e.self,326,1); --emerald warriors + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("Excellent, I see you made it back safely. Thank you so much, here is your payment as promised. Now I can get back to business as usual."); + e.other:Faction(e.self,276,4); --kelethin merchants + e.other:Faction(e.self,246,1); --faydarks champions + e.other:Faction(e.self,326,1); --emerald warriors + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/gfaydark/Innkeep_Wuleran.lua b/gfaydark/Innkeep_Wuleran.lua new file mode 100644 index 0000000..c0f8e54 --- /dev/null +++ b/gfaydark/Innkeep_Wuleran.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome! Why don't you browse through my selection of fine goods and pick out some things you like " .. e.other:GetCleanName() .. "?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("Oh, these look delicious! No doubt they were made with fresh fruit grown locally; I can tell by the aroma. You have quite a talent! Thank you so much. Here is your payment. This should be enough to last me for a little while."); + e.other:Faction(e.self,276,2); --kelethin merchants + e.other:Faction(e.self,246,1); --faydarks champions + e.other:Faction(e.self,326,1); --emerald warriors + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("Excellent, I see you made it back safely. Thank you so much, here is your payment as promised. Now I can get back to business as usual."); + e.other:Faction(e.self,276,4); --kelethin merchants + e.other:Faction(e.self,246,1); --faydarks champions + e.other:Faction(e.self,326,1); --emerald warriors + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/gfaydark/Jakum_Webdancer.lua b/gfaydark/Jakum_Webdancer.lua new file mode 100644 index 0000000..e666bc0 --- /dev/null +++ b/gfaydark/Jakum_Webdancer.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail. " .. e.other:GetCleanName() .. " - If you are interested in helping the League of Antonican Bards by delivering some mail then you should talk to Idia."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18161})) then + e.self:Say("Incoming mail - very good! Please take this gold for your troubles."); + e.other:Faction(e.self,284,5); -- league of antonican bards + e.other:Faction(e.self,281,1); -- knights of truth + e.other:Faction(e.self,262,1); -- guards of qeynos + e.other:Faction(e.self,304,-1); -- ring of scale + e.other:Faction(e.self,285,-1); -- mayong mistmoore + e.other:QuestReward(e.self,0,0,math.random(3,9),0,0,1550); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18160}) or item_lib.check_turn_in(e.self, e.trade, {item1 = 18162}) or item_lib.check_turn_in(e.self, e.trade, {item1 = 18163})) then + e.self:Say("Incoming mail - very good! Please take this gold for your troubles."); + e.other:Faction(e.self,284,5); -- league of antonican bards + e.other:Faction(e.self,281,1); -- knights of truth + e.other:Faction(e.self,262,1); -- guards of qeynos + e.other:Faction(e.self,304,-1); -- ring of scale + e.other:Faction(e.self,285,-1); -- mayong mistmoore + e.other:QuestReward(e.self,0,0,math.random(3,9),0,0,1550); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:gfaydark diff --git a/gfaydark/Josylyn_Greenblade.lua b/gfaydark/Josylyn_Greenblade.lua new file mode 100644 index 0000000..6e3c395 --- /dev/null +++ b/gfaydark/Josylyn_Greenblade.lua @@ -0,0 +1,48 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". It is my duty to teach young Fier`Dal the arts of defense and fighting so that they may become skilled members of the Emerald Warriors. There are many [threats] facing our forests and our home Kelethin, thus we warriors must be prepared both physically and mentally to defend our people. It is wise for all young Emerald Warriors to acquire a [suit of armor] to protect them from the weapons of our enemies."); + elseif(e.message:findi("suit of armor")) then + e.self:Say("You will require this specially prepared Mail Assembly Kit to assemble a suit of Emerald Novice Armor. The required materials vary depending on the piece of armor you seek to craft. Once you have been properly outfitted return to me and I will present you with another [task]. Do you seek to craft [Emerald Novice Gauntlets], [Emerald Novice Boots], an [Emerald Novice Bracer], an [Emerald Novice Helm], [Emerald Novice Greaves], [Emerald Novice Vambraces], or an [Emerald Novice Breastplate]?"); + e.other:SummonCursorItem(17124); -- Item: Mail Assembly Kit + elseif(e.message:findi("task")) then + e.self:Say("Although our city of Kelethin gains much protection from its construction in the treetops of the Faydark, like all things it has weaknesses in its defenses. The Crushbone Orcs often attempt to ignite the trees with the fires of their torches. Young Emerald Warriors are often stationed on the forest floor beneath Kelethin to watch for these orc arsonists and stop them. Go now to the forest floor and should you catch one of these orcs slay him and bring me his orcish torch."); + elseif(e.message:findi("threats")) then + e.self:Say("The threats that face Tunares children here in the Faydarks are many, some more obvious than others. The orcish Clan Crushbone has a citadel to the north and is perpetually invading the Faydarks in order to pillage supplies and expand their territory. The foolish pixies that inhabit the forests often cause harm to the trees and animals with their mischievous pranks, and recently the [Arboreans] have returned from centuries of slumber."); + elseif(e.message:findi("arboreans")) then + e.self:Say("The Arboreans are an ancient species of sentient plant-folk. Their sentience however does not manifest as intelligence or wisdom. They are little more than mobile weeds, multiplying quickly and draining the nutrients from the soil and flora they come into contact with. Old legends from when our people first migrated to Faydwere from the Eldarr Forest of Tunaria tell of a great famine caused by the Arboreans. The Heartwood Master and his most blessed of druids wove powerful magics that destroyed the Arboreans, but some of their seeds endured, buried in the soil for centuries, and recently they have sprouted and are once again destroying our beloved forests."); + elseif(e.message:findi("gauntlet")) then + e.self:Say("To assemble emerald novice gauntlets you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this crude Gauntlet Mold. Once that is done combine the Crude Bronze Gauntlets with a Ruined Forest Drakeling Scales and two Arborean Sprout Twigs in the Mail Assembly Kit."); + e.other:SummonCursorItem(19633); -- Item: Crude Gauntlets Mold + elseif(e.message:findi("boot")) then + e.self:Say("To assemble emerald novice boots you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this crude Boot Mold. Once that is done combine the Crude Bronze Boots with two Ruined Forest Drakeling Scales, and two Arborean Sprout Roots in the Mail Assembly Kit."); + e.other:SummonCursorItem(19634); -- Item: Crude Boot Mold + elseif(e.message:findi("bracer")) then + e.self:Say("To assemble an emerald novice bracer you will need to obtain a brick of crude bronze and smelt it in a forge with a Water Flask and this Crude Bracer Mold. Once that is done, combine the Crude Bronze Bracer with a Ruined Forest Drakeling Scales and an Arborean Sprout Bark in the Mail Assembly Kit."); + e.other:SummonCursorItem(19632); -- Item: Crude Bracer Mold + elseif(e.message:findi("helm")) then + e.self:Say("To assemble an emerald novice helm you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Helm Mold. Once that is done combine the Crude Bronze Helm with a Ruined Forest Drakeling Scales and an Arborean Sapling Bark in the Mail Assembly Kit."); + e.other:SummonCursorItem(19631); -- Item: Crude Helm Mold + elseif(e.message:findi("greave")) then + e.self:Say("To assemble emerald novice greaves you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Greaves Mold. Once that is done combine the Crude Bronze Greaves with two Forest Drakeling Scales and two Arborean Sapling Barks in the Mail Assembly Kit."); + e.other:SummonCursorItem(19636); -- Item: Crude Greaves Mold + elseif(e.message:findi("vambrace")) then + e.self:Say("To assemble emerald novice vambraces you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Vambrace Mold. Once that is done combine the Crude Bronze Vambraces with a Forest Drakeling Scales and two Arborean Sapling Barks in the Mail Assembly Kit."); + e.other:SummonCursorItem(19635); -- Item: Crude Vambrace Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("To assemble an emerald novice breastplate you will need to obtain four bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Breastplate Mold. Once that is done combine the Crude Bronze Breastplate with a Pristine Forest Drakeling Scales, and two Mature Arborean Barks in the Mail Assembly Kit."); + e.other:SummonCursorItem(19637); -- Item: Crude Breastplate Mold + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20281})) then + e.other:QuestReward(e.self,0,0,0,0,20294,200); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20298,item2 = 20274,item3 = 20271})) then + e.other:QuestReward(e.self,0,0,0,0,20331,300); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:gfaydark ID:54122 -- Josylyn_Greenblade \ No newline at end of file diff --git a/gfaydark/Laren.lua b/gfaydark/Laren.lua new file mode 100644 index 0000000..a0e6de9 --- /dev/null +++ b/gfaydark/Laren.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome, my friend! What is it you seek from Laren and the Scouts of Tunare?"); + elseif(e.message:findi("scouts blade")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("So you have heard of the dagger created especially for the rogues of Kelethin! The creator of these blades has since passed away. We mourn his death. And, I am sorry to say, we have no more to offer our new scouts. There is a way though.. A way to gain a blade and a way to [avenge the craftsman]."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("The Scouts of Tunare have no quarrel with you, but perhaps a few less Crushbone Orcs would prove your worth. Then we shall speak."); + else + e.self:Say("You dare to speak with a loyal member of the Scouts of Tunare?! You are truly foolish! Run away, while you still can."); + end + elseif(e.message:findi("avenge the craftsman")) then + if(e.other:GetFactionValue(e.self) >= 400) then -- requires high amiably faction + e.self:Say("You must journey to Antonica. Seek out a castle high in the Serpent's Spine. A castle called Highkeep. Search for a man named Fenn Kaedrick. Give him this token and he shall know why you were sent. Perhaps the merchants will know of his whereabouts. Go at once. I have faith in you. Good luck, " .. e.other:GetCleanName() .. "."); + e.other:SummonCursorItem(12185); -- Useless Token + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("The Scouts of Tunare have no quarrel with you, but perhaps a few less Crushbone Orcs would prove your worth. Then we shall speak."); + else + e.self:Say("You dare to speak with a loyal member of the Scouts of Tunare?! You are truly foolish! Run away, while you still can."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 400 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12186})) then -- Half Elf Head + e.self:Say("You have proven yourself to be a worthy Scout of Tunare and as such you are worthy to hold the hilt of a scout blade. Remember, rogues in class are we, but in our chests beats the heart of the forest. Our skills are used in defense of Kelethin and her allies. Next you shall speak to Master Tylfon. He will inform you of the [scout silvermesh leggings]."); + e.other:Faction(e.self,316,10); -- Scouts of Tunare + e.other:QuestReward(e.self,0,0,math.random(30),0,7321,20000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:gfaydark ID:54085 -- Laren diff --git a/gfaydark/Lieutenant_Leafstalker.lua b/gfaydark/Lieutenant_Leafstalker.lua new file mode 100644 index 0000000..ac234a9 --- /dev/null +++ b/gfaydark/Lieutenant_Leafstalker.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail!! Respect all laws in Kelethin and her territory and you shall live a fruitful life."); + elseif(e.message:findi("quiver of kithicor")) then + e.self:Say("Ummm.. I have some bad news. I did find it, but a band of brownie outcasts came in the night, took [all of the arrows] from the quiver and ran back to the forest they came from. As if that were not enough, while I was hot on their little heels, the thief [Wiltin Windwalker] came into Kelethin and took the quiver itself. Whew!! What a day!"); + elseif(e.message:findi("the arrows")) then + e.self:Say("All of the arrows are gone. You must get the arrows of recognition, acknowledgment, defiance, gallantry, bravery and fortitude. Get them from the brownie outcasts and combine them in the quiver."); + elseif(e.message:findi("wiltin windwalker")) then + e.self:Say("Wiltin Windwalker!! Traitor he is! He left Kelethin to join the Pirates of Gunthak. I heard news that the Royal Navy of Ak'Anon sank the pirate ship he was on in the Ocean of Tears. What I don't get is where those little gnomes moor their ships. They have no harbor!! But that is another story."); + end +end \ No newline at end of file diff --git a/gfaydark/Lily_Ashwood.lua b/gfaydark/Lily_Ashwood.lua new file mode 100644 index 0000000..385c9d2 --- /dev/null +++ b/gfaydark/Lily_Ashwood.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ". You wouldn't by chance happen to be a ranger, would you?'"); + elseif(e.message:findi("ranger")) then + e.self:Say("I sure love a strong ranger. Especially Ganelorn Oast. He's so dreamy and handsome. I think one day he's going to ask me to marry him."); + eq.signal(54085,1); -- NPC: Devin_Ashwood + elseif(e.message:findi("take him the letter")) then + if(e.other:GetLevel() >= 50) then + e.self:Emote("smiles sweetly. 'Thank you sooo much.' "); + e.other:SummonCursorItem(20876); -- Item: A love letter (Sealed) + else + e.self:Say(eq.ChooseRandom("Someone with your skills is more suited to beetle slaying. Run along, now.","This matter is far too advanced for you to handle. Come back after you've killed a few more large rats.","It's much safer for you to spend time fishing than on a dangerous issue like this.","I think I saw a gnoll pup you could probably defeat, a few miles back.")); + end + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Emote("sulks"); + elseif(e.signal == 2) then + e.self:Emote("laughs. 'In your dreams, little brother.' "); + elseif(e.signal == 3) then + e.self:Say("Oh! If you're going to see him, would you please take this letter to him? I trust you, since you're a ranger and all"); + end +end + +-- END of FILE Zone:gfaydark ID:54082 -- Lily_Ashwood \ No newline at end of file diff --git a/gfaydark/Linadian.lua b/gfaydark/Linadian.lua new file mode 100644 index 0000000..4ab90f2 --- /dev/null +++ b/gfaydark/Linadian.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings! Please look through my fine wares. I have spent most of my life practicing my skills in tailoring. I do my best to compete with the other local merchants, but I have yet to make a profit. I pray to Tunare that my [banded orc vests] will finally bring me a few extra coins."); + elseif(e.message:findi("banded orc vest")) then -- Requires Indifferent faction + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Glad you are interested. I can create a leather vest I call a banded orc vest. It will aid you in repelling any disease and offers quite a bit of protection in battle. I will need some materials. For a Deathfist banded orc vest, I require two legionnaire pads worn by the clan Deathfist, one Deathfist slashed belt, and ten gold coins. For a Crushbone banded orc vest, I require two legionnaire pads worn by the Clan Crushbone, one Crushbone belt, and one silk swatch.'"); + else + e.self:Say("Your ways are considered vile to Faydark's Champions. Leave before my rage overcomes my restraint."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13319,item2 = 13319,item3 = 13318,item4 = 16482})) then + e.self:Say("Grand doing business with you. Hold your nose. I can never get rid of the orc stench of the vests. That is why the other merchants do not pay me much for them."); + e.other:Faction(e.self,276,5); -- Kelethin Merchants + e.other:Faction(e.self,246,1); -- Faydark champions + e.other:Faction(e.self,326,1); -- Emerald Warriors + e.other:Faction(e.self,5002,1); -- Anti-mage + e.other:QuestReward(e.self,0,0,0,0,12187,100); + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13917,item2 = 13917,item3 = 13916,gold = 10})) then + e.self:Say("Grand doing business with you. Hold your nose. I can never get rid of the orc stench of the vests. That is why the other merchants do not pay me much for them."); + e.other:Faction(e.self,276,5); -- Kelethin Merchants + e.other:Faction(e.self,246,1); -- Faydark champions + e.other:Faction(e.self,326,1); -- Emerald Warriors + e.other:Faction(e.self,5002,1); -- Anti-mage + e.other:QuestReward(e.self,0,0,0,0,12187,100); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/gfaydark/Maesyn_Trueshot.lua b/gfaydark/Maesyn_Trueshot.lua new file mode 100644 index 0000000..0f96b77 --- /dev/null +++ b/gfaydark/Maesyn_Trueshot.lua @@ -0,0 +1,45 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Kelethin, " .. e.other:GetCleanName() .. "! I am Maesyn Trueshot, commander of Faydark's Champions. We are the finest marksmen in all of Norrath. With our trusty [Trueshot longbows] we can miss no target regardless of the distance or the conditions."); + elseif(e.message:findi("trueshot longbows")) then + e.self:Say("The Trueshot Longbow was created by my famed father. Eldin Trueshot. It is quite accurate and takes a ranger's skill to wield. We use our new recruits to [gather materials] needed by my father. We shall soon begin to release the formula to good elves so all may fletch such a bow."); + elseif(e.message:findi("correct component")) then + e.self:Say("Now that I have crafted the Treant Bow Staff, you shall need one Planing Tool, one Treant Bow Staff, one Micro Servo and one spool of Dwarven Wire. These items will be used with your Fletching Kit as all other bows. Be forewarned, only a Master Fletcher can create such a bow and even a master fails from time to time. Good Luck."); + elseif(e.message:findi("next incarnation")) then + e.self:Say("The Trueshot Longbow was once enchanted by the Koada'Dal enchanters. Once it was enchanted now it is no more. I am sure if you were ask the Koada'Dal [where the enchanted bows] are you will get an answer."); + elseif(e.message:findi("gather material") and (e.other:GetClass() == 4)) then + if(e.other:GetFactionValue(e.self) >= 100) then -- Needs amiably or better + e.self:Say("Take this pack. Go to Kaladim, find Trantor Everhot and ask for dwarven wire. Then go to Freeport to meet Jyle Windshot. Search the inns for him and ask him for treant wood. Then, collect some spiderling silk from spiderlings and finally, in Steamfont, we have the permission of the gnomes to use any micro servos we find while destroying rogue spiders. Combine them all and return the pack to me."); + e.other:SummonCursorItem(17951); -- Material Pack + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("Faydark's Champions cannot call you foe. but you have yet to earn our trust."); + else + e.self:Say("Your ways are considered vile to Faydark's Champions. Leave before my rage overcomes my restraint."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12112})) then -- Pack of Materials + e.self:Say("I shall see that my father gets the materials. I hope this can be of use to you. It will serve as your starting point toward fletching a Trueshot longbow. It is unfortunate that we are unable to enchant the bow to its [next incarnation], but it is still a fine weapon. You do know the [correct components] needed for fletching such a bow, do you not?"); + e.other:Faction(e.self,246,5); -- Faydark's Champions + e.other:Faction(e.self,279,1); -- King Tearis Thex + e.other:Faction(e.self,226,1); -- Clerics of Tunare got better. + e.other:Faction(e.self,310,1); -- Soldiers of Tunare got better. + e.other:Faction(e.self,234,-1); -- Crushbone Orcs got worse. + e.other:QuestReward(e.self,0,math.random(9),0,0,8091,500); -- Treant Bow Staff + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18785})) then -- A tattered note + e.self:Say("Hail, " .. e.other:GetCleanName() .. ", and welcome.. I am Maesyn Trueshot, leader of Faydark's Champions. I will teach and train you, as I have done for many others. Let's get started.. Here, put this on.. it'll help protect you from the elements. You look pretty bright. Train hard, and I'm sure you'll do well."); + e.other:Faction(e.self,246,100); -- Faydark's Champions + e.other:Faction(e.self,279,25); -- King Tearis Thex + e.other:Faction(e.self,226,25); -- Clerics of Tunare + e.other:Faction(e.self,310,25); -- Soldiers of Tunare + e.other:Faction(e.self,234,-25); -- Crushbone Orcs + e.other:QuestReward(e.self,0,0,0,0,13536,20); -- Dirty Green Tunic* + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:gfaydark ID:54084 -- Maesyn_Trueshot diff --git a/gfaydark/Merchant_Iludarae.lua b/gfaydark/Merchant_Iludarae.lua new file mode 100644 index 0000000..71977cd --- /dev/null +++ b/gfaydark/Merchant_Iludarae.lua @@ -0,0 +1,9 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18904})) then + e.self:Say("'I have no words for the gratitude I feel. So many of our young ones have been captured by the filthy orcs. Please, take this for saving my sister."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(2012,2004,2006,2005,2011),500); -- Item(s): Leather Boots (2012), Leather Tunic (2004), Leather Cloak (2006), Leather Shoulderpads (2005), Leather Leggings (2011) + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/gfaydark/Merchant_Nildar.lua b/gfaydark/Merchant_Nildar.lua new file mode 100644 index 0000000..79ebcbd --- /dev/null +++ b/gfaydark/Merchant_Nildar.lua @@ -0,0 +1,9 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18903})) then + e.self:Say("My brother still lives? Thank you for this news. Please, take this with my deepest thanks."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(2007,2004,2006,2010,2011),30000); -- Item(s): Leather Belt (2007), Leather Tunic (2004), Leather Cloak (2006), Leather Gloves (2010), Leather Leggings (2011) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/gfaydark/Ran_Sunfire.lua b/gfaydark/Ran_Sunfire.lua new file mode 100644 index 0000000..a9bd564 --- /dev/null +++ b/gfaydark/Ran_Sunfire.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail. " .. e.other:GetCleanName() .. "! I trust you are not afraid of heights. Kelethin is a grand city. but it is also a safe haven from predators and evil beings. About the only thing to fear are the [pixie tricksters]."); + elseif(e.message:findi("pixie trickster")) then + e.self:Say("An irritating lot of fairy folk. They have been starting fires in our great forest. They may just burn our grand community down. We will have to [exterminate the pixies]. It is unfortunate. but it is for the good of the entire forest."); + elseif(e.message:findi("grynn")) then + e.self:Say("Grynn is my friend. He chose to follow me one day and has been here ever since. He tells me much of the goings-on in the woods. Lately, he has mentioned a problem with the [pixie tricksters]."); + elseif(e.message:findi("exterminate the pixie")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Then I give you this pouch. Should you fill and combine it with pixie dust, I shall pay you greatly for your deeds. We may even find a use for the dust itself. Careful, small though they may be, many are quite strong. Search for the weak ones for now."); + e.other:SummonCursorItem(17957); -- Item: Empty Pouch + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("Faydark's Champions cannot call you foe. but you have yet to earn our trust."); + else + e.self:Say("Your ways are considered vile to Faydark's Champions. Leave before my rage overcomes my restraint."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local ranrew = 0; + + if(e.other:GetFactionValue(e.self) >= 100 and (item_lib.check_turn_in(e.self, e.trade, {item1 = 12109 }))) then -- Pouch of Pixie Dust + e.self:Say("Good work. scout!! You have earned this reward. It is all we have at the time. I am certain you are satisfied. If not, then do not let me hear of it."); + e.other:Faction(e.self,316, 1); -- Scouts of Tunare + if(math.random(100) < 20) then + ranrew = eq.ChooseRandom(2104, 2106, 2108, 2111, 2112); -- Patchwork Tunic, Patchwork Cloak, Patchwork Sleeves, Patchwork Pants, Patchwork Boots + end + e.other:QuestReward(e.self,0,math.random(9),0,0,ranrew,800); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:gfaydark ID:54104 -- Ran_Sunfire diff --git a/gfaydark/Regren.lua b/gfaydark/Regren.lua new file mode 100644 index 0000000..5d98c18 --- /dev/null +++ b/gfaydark/Regren.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Welcome, warrior! Show the Emerald Warriors your mettle and bring me a ruined wolf pelt, some bat fur, some bone chips, and a spiderling eye from the depths of Greater Faydark. If you succeed, my admiration and a reward will be yours. To battle!"); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Impressive, do you have the rest?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18782})) then -- Recruitment Letter + e.self:Say("Welcome to the Emerald Warriors. Hmmm, you have a lot of training to do, so let's get started right away. Here's our guild tunic, represent us well, young " .. e.other:GetCleanName() .. "."); + e.other:Faction(e.self,326,100); -- Emerald Warriors + e.other:Faction(e.self,270,-15); -- Indigo Brotherhood + e.other:Faction(e.self,325,10); -- Merchants of Felwithe + e.other:Faction(e.self,276,10); -- Kelethin Merchants + e.other:QuestReward(e.self,0,0,0,0,13533,20); -- Old Green Tunic + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13073,item2 = 13782,item3 = 13253,item4 = 13069},1,text)) then + e.self:Say("Fine work! You are on your way to becoming an adequate combatant."); + e.other:Faction(e.self,326,10); -- Faction: Emerald Warriors + e.other:Faction(e.self,270,-1); -- Faction: Indigo Brotherhood + e.other:Faction(e.self,276,1); -- Faction: Kelethin Merchants + e.other:Faction(e.self,325,1); -- Faction: Merchants of Felwithe + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(5013,5014,5015,5016,5019,5020,5021,5022,5023,5024,5025,5042,5043,5044,5045,5046,5047,5048,5049,5070,5071,6011,6013,6014,6015,6016,6030,6031,6032,6033,7007,7008,7009,7010,7021,7022,7023,7024),500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:gfaydark ID:54093 -- Regren diff --git a/gfaydark/Samatansyn_Flamecaller.lua b/gfaydark/Samatansyn_Flamecaller.lua new file mode 100644 index 0000000..592d578 --- /dev/null +++ b/gfaydark/Samatansyn_Flamecaller.lua @@ -0,0 +1,47 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It is a pleasure to meet you " .. e.other:GetCleanName() .. ", I am Samatansyn Flamecaller, Warder of Tunare and Guildmaster of Faydarks Champions. I have studied here for many of my years until recently when I took up teaching. I have many pupils that undergo my vigorous [training exercises]."); + elseif(e.message:findi("training exercises")) then + e.self:Say("I have a series of tests that all new rangers of Kelethin are suggested to participate in. These tests will help you develop many of your skills including hunting and gathering and will also provide you with a chance to fashion your own Trueshot Chainmail. If you are a [ranger of Tunare] and are willing to begin your training I will be happy to explain to you how the tests work."); + elseif(e.message:findi("ranger of tunare")) then + e.self:Say("Excellent " .. e.other:GetCleanName() .. ", then lets get started! Here is your Trueshot Assembly Kit. You will collect various items from the Faydark and Clan Crushbone that will be necessary for creating your armor materials in your assembly kit. Once you have fashioned together a specific armor material you can then take it to a forge along with the applicable pattern to create your Trueshot Chainmail armor piece. Simply tell me what armor piece you [want] to craft and I can provide you with the material recipes and patterns for Trueshot Chainmail [Coifs], [Bracers], [Sleeves], [Boots], [Legplates], [Gauntlets] and [Tunics]."); + e.other:SummonCursorItem(17367); -- Item: Trueshot Assembly Kit + elseif(e.message:findi("coif")) then + e.self:Say("To create your coif material you will need to combine 2 Bricks of Crude Bronze, 1 Royal Jelly, 1 Spiderling Eye and 1 Ration in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Trueshot Coif."); + e.other:SummonCursorItem(22671); -- Item: An Enchanted Coif Pattern + elseif(e.message:findi("bracer")) then + e.self:Say("To create your bracer material you will need to combine 1 Brick of Crude Bronze, 1 Skeleton Tibia, 1 Pixie Wing and 1 Gypsy Wine in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Trueshot Chainmail Bracer."); + e.other:SummonCursorItem(22672); -- Item: An Enchanted Bracer Pattern + elseif(e.message:findi("sleeve")) then + e.self:Say("To create your sleeves material you will need to combine 2 Bricks of Crude Bronze, 2 Giant Wasp Venom Sacs, 1 Large Widow Abdomen and 1 White Wine in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Trueshot Chainmail Sleeves."); + e.other:SummonCursorItem(22673); -- Item: An Enchanted Sleeves Pattern + elseif(e.message:findi("boot")) then + e.self:Say("To create your boots material you will need to combine 3 Bricks of Crude Bronze, 1 Severed Orc Foot, 2 Spider Legs in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Trueshot Chainmail Boots."); + e.other:SummonCursorItem(22674); -- Item: An Enchanted Boots Pattern + elseif(e.message:findi("legplates")) then + e.self:Say("To create your legplates material you will need to combine 4 Bricks of Crude Bronze, 1 Orc Fibula, 1 Orc Clavicle, and 1 Lightstone in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Trueshot Chainmail Legplates."); + e.other:SummonCursorItem(22675); -- Item: An Enchanted Legplates Pattern + elseif(e.message:findi("gauntlet")) then + e.self:Say("To create your gauntlets material you will need to combine 3 Bricks of Crude Bronze, 1 Orc Ulna, 1 Orc Tibia, and 2 Orc Finger Bones in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Trueshot Chainmail Gauntlets."); + e.other:SummonCursorItem(22676); -- Item: An Enchanted Gauntlets Pattern + elseif(e.message:findi("tunic")) then + e.self:Say("To create your tunic material you will need to combine 5 Bricks of Crude Bronze, 1 Orc Fibula, 1 Golden Bandit Tooth, 1 Pristine Forest Drakeling Scale, 1 Orc Ribcage and 1 Orc Eye in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Trueshot Chainmail Tunic. Please return to me after you have completed your tunic, for I have one final [favor] to ask of you."); + e.other:SummonCursorItem(22677); -- Item: An Enchanted Tunic Pattern + elseif(e.message:findi("favor")) then + e.self:Say("I have received word that there are numerous elves being held hostage in the confines of Clan Crushbone, beaten and forced to perform slave work under horrible conditions. There is believed to be a specific Orc that patrols the jail cells that has a master key in his possession for all of the elven hostages. If you were to retrieve this master key for me I would possibly be able to make copies of it and distribute them to my task force so that we may attempt to rescue our helpless bretheren. Will you [retrieve the master key]?"); + elseif(e.message:findi("retrieve the master key")) then + e.self:Say("Excellent news, I was afraid I would not be able to find someone willing to help. Please bring me the master key along with 2 Orc Eyes and I shall craft you a long sword worthy of your great deeds."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 27539,item2 = 13266,item3 = 13266})) then -- Faydark Champions Long Sword, from Cb Cell Key + e.self:Say("Well done, " .. e.other:GetCleanName() .. "! Now we will be able to free more of our brothers and sisters from the orcs! Take this, as promised, a fine weapon with which to slay more orcs!!"); + e.other:QuestReward(e.self,0,0,0,0,27532,7000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:gfaydark ID:54071 -- Samatansyn Flamecaller \ No newline at end of file diff --git a/gfaydark/Sarialiyn_Tranquilsong.lua b/gfaydark/Sarialiyn_Tranquilsong.lua new file mode 100644 index 0000000..f7b1a55 --- /dev/null +++ b/gfaydark/Sarialiyn_Tranquilsong.lua @@ -0,0 +1,47 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Pleased to meet you " .. e.other:GetCleanName() .. ". I am Sarialiyn Tranquilsong. Virtuoso of the Songweavers Kelethin division. I have spent all of my years here in Kelethin training our new recruits to ensure that all are ready to defend themselves once their adventures take them away from the Faydark and beyond. If you are a [young bard of Kelethin] then I might have some exercises for you to complete."); + elseif(e.message:findi("bard of kelethin")) then + e.self:Say("Well then you surely must be interested in some of the [training exercises] I have created for all young members of the Songweavers bard guild."); + elseif(e.message:findi("training exercise")) then + e.self:Say("The training exercises that I speak of are very important in the development of a young bards core abilities. You will have to rely on all of your skills including hunting and gathering to complete these tests but in the end you will be rewarded with a full set of your own armor that you will craft by your own hand. Are you ready to [begin the exercises]?"); + elseif(e.message:findi("begin the exercise")) then + e.self:Say("Fantastic " .. e.other:GetCleanName() .. ". here is your Melodic Assembly Kit. In this kit you will collect various items from all over the Faydark. Clan Crushbone and in our hometown of Kelethin. You will then combine these items in certain quantities inside your Assembly Kit to create armor materials. which are then placed in a forge with the applicable mold to yield your armor piece. As I provided you with your assembly kit. I can also provide you with the armor molds for Tranquilsong [Helms]. [Bracers]. [Armguards]. [Boots]. [Greaves]. [Gauntlets] and [Breastplates]. All you must do is simply tell me what armor piece you [want] to craft. and I shall give you the appropriate mold and material recipe."); + e.other:SummonCursorItem(17368); -- Item: Melodic Assembly Kit + elseif(e.message:findi("bracer")) then + e.self:Say("To create your bracer material you will need to combine 1 Brick of Crude Bronze. 1 Giant Wasp Venom Sac. 1 Basilisk Hatchling Hide and 1 Bandage in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Bracer of the Tranquilsong."); + e.other:SummonCursorItem(22611); -- Item: An Enchanted Bracer Mold + elseif(e.message:findi("helm")) then + e.self:Say("To create your helm material you will need to combine 2 Bricks of Crude Bronze. 1 Faerie Wing. 1 Royal Jelly and 1 Mead in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Helm of the Tranquilsong."); + e.other:SummonCursorItem(22610); -- Item: An Enchanted Helm Mold + elseif(e.message:findi("armguard")) then + e.self:Say("To create your armguards material you will need to combine 2 Bricks of Crude Bronze. 2 Wasp Wings. 1 Large Widow Abdomen and 1 Medium Quality Wolf Skin in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Armguards of the Tranquilsong."); + e.other:SummonCursorItem(22613); -- Item: An Enchanted Armguard Mold + elseif(e.message:findi("boot")) then + e.self:Say("To create your boot material you will need to combine 3 Bricks of Crude Bronze. 1 Severed Orc Foot. 2 Pixie Wings and 1 Brownie Parts and 1 Silk Thread in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Boots of the Tranquilsong."); + e.other:SummonCursorItem(22612); -- Item: An Enchanted Boot Mold + elseif(e.message:findi("greave")) then + e.self:Say("To create your greaves material you will need to combine 4 Bricks of Crude Bronze. 1 Orc Skull. 1 Orc Scalp and 1 Orc Fibula in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Greaves of the Tranquilsong."); + e.other:SummonCursorItem(22614); -- Item: An Enchanted Greaves Mold + elseif(e.message:findi("gauntlet")) then + e.self:Say("To create your gauntlet material you will need to combine 3 Bricks of Crude Bronze. 1 Spider Legs. 1 Orc Sternum. 1 Orc Head and 1 Orc Humerus in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Gauntlets of the Tranquilsong."); + e.other:SummonCursorItem(22615); -- Item: An Enchanted Gauntlet Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("To create your breastplate material you will need to combine 5 Bricks of Crude Bronze. 1 Orc Fibula. 1 Pristine Forest Drakeling Scale. 1 Golden Bandit Tooth. 1 Orc Eye and 1 Orc Ribcage in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Breastplate of the Tranquilsong. Once you have completed your armor set please return to me for I have one final exercise for you to complete."); + e.other:SummonCursorItem(22616); -- Item: An Enchanted Breastplate Mold + elseif(e.message:findi("final exercise")) then + e.self:Say("I am going to ask that you infiltrate Clan Crushbone and find something that was stolen from me. I had recently received a brand new lute that was crafted for me by my friend in Freeport. It was stolen from me not too long ago when I had to venture towards Crushbone to help a new recruit like yourself. The Orc that stole it from me was quite fast. most definitely a scout. The vile beast did not stick around for it knew they could not best me in combat. Therefore I had no chance to retrieve my lute or to seek revenge. Will you retrieve my lute for me " .. e.other:GetCleanName() .. "?"); + elseif(e.message:findi("retrieve the lute")) then + e.self:Say("Fantastic " .. e.other:GetCleanName() .. ". please return to me when you have found my lute. I also ask that you bring me 2 Orc Jawbones to prove that you are united with us in our war against the vile orcs. I hope to see you soon."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 22694,item2 = 22694,item3 = 27540})) then + e.self:Say("I never though I would see my lute again. I owe you my sincere thanks " .. e.other:GetCleanName() .. ". Please take this weapon that I carried for most of my days as a symbol of my gratitude. May it guide you to victory in all of your battles."); + e.other:QuestReward(e.self,0,0,0,0,27533,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/gfaydark/Sindl_Talonstrike.lua b/gfaydark/Sindl_Talonstrike.lua new file mode 100644 index 0000000..702d374 --- /dev/null +++ b/gfaydark/Sindl_Talonstrike.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. Is not Kelethin the most glorious city you have seen? A part of the forest itself. it is. The forest is our life force. It shelters us and we feed from its vegetation. The [Soldiers of Tunare] have [harvesters] upon the grounds at all times. We have our hunters."); + elseif(e.message:findi("soldiers of tunare")) then + e.self:Say("The Soldiers of Tunare are lovers of the forest. They are druids who protect and nurture the forest. The forest is the genesis of their mana. The soldiers are comprised of Fier'Dal and Koada'Dal. Imagine that! A Koada'Dal not afraid to get dirt under his nails!!"); + elseif(e.message:findi("harvesters")) then + e.self:Say("Just as our young warriors are employed as hunters to supply all the meat for Kelethin. the druids have their young scour the grounds of the forest for all the vegetation we need to survive."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:gfaydark ID:54103 -- Sindl_Talonstrike \ No newline at end of file diff --git a/gfaydark/Soulbinder_Oakstout.lua b/gfaydark/Soulbinder_Oakstout.lua new file mode 100644 index 0000000..80c75f8 --- /dev/null +++ b/gfaydark/Soulbinder_Oakstout.lua @@ -0,0 +1,15 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID(),0,1); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/gfaydark/Sylia_Windlehands.lua b/gfaydark/Sylia_Windlehands.lua new file mode 100644 index 0000000..2bce3d5 --- /dev/null +++ b/gfaydark/Sylia_Windlehands.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Salutations! The Song Weavers are always glad to add a new voice to the choir. In addition to your voice. will you also [fetch spiderling silk]? We need some to replace our worn lute strings. Carry out this task in high tempo and we will show our gratitude."); + elseif(e.message:findi("spiderling silk")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Very spirited of you!! Gather four spiderling silk and return them to me. Good hunting. my friend!!"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18783})) then -- Tattered Note + e.self:Say("Greetings. friend. I am Sylia. I see that you wish to join our humble guild. Good. Here is a gift for you - your guild tunic. Let's get started with your training, shall we?"); + e.other:Faction(e.self,401,100); -- Song Weavers + e.other:QuestReward(e.self,0,0,0,0,13534,20); -- Faded Brown Tunic + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13099,item2 = 13099,item3 = 13099,item4 = 13099})) then + e.self:Say("Splendid job! Now if you can just keep a tune, you'll be a fine bard."); + e.other:Faction(e.self,401,5); -- Song Weavers + e.other:QuestReward(e.self,0,0,math.random(5),0,13000,100); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:gfaydark ID:54088 -- Sylia_Windlehands diff --git a/gfaydark/Tilania_Shadowwalker.lua b/gfaydark/Tilania_Shadowwalker.lua new file mode 100644 index 0000000..83960d2 --- /dev/null +++ b/gfaydark/Tilania_Shadowwalker.lua @@ -0,0 +1,51 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings to you " .. e.other:GetCleanName() .. ". I welcome you to the Scouts of Tunare training halls. I have seen many scouts pass through my halls with unimaginable abilities and daggers guided by Tunare herself. I cannot say for certain what the future has in store for you. But I can say that wherever your adventures may take you it is always wise to have the proper [training]."); + elseif(e.message:findi("training")) then + e.self:Say("The training that I speak of is only intended for rogues of Tunare that wish to develop skills that will mold them into the most deadly assassins in all of the lands. If you are a [rogue of Tunare] then I will be happy to explain the training exercises to you. However. if you are not a rogue I suggest you seek training from another house."); + elseif(e.message:findi("i am a rogue of tunare")) then + e.self:Say("Excellent " .. e.other:GetCleanName() .. ". let us get started then. Your training will test your fighting and gathering skills respectively. because of the items you will be required to gather all over the Faydark for [magical armor materials]."); + elseif(e.message:findi("magical armor materials")) then + e.self:Say("First things first. here is your Assassins Mail Assembly Kit. Inside this kit you will combine different magical items. which in certain quantities in your mail kit can create armor materials for specific pieces of Tunarean Scouts Armor. Once you have completed a specific armor material you can then place it in a forge with the applicable pattern to create your piece of armor.[continue]"); + e.other:SummonCursorItem(17365) + elseif(e.message:findi("continue")) then + e.self:Say("Simply tell me what armor piece you [want] to craft and I can provide you with the material recipes and armor patterns for [Coifs][Bracers][Sleeves][Boots][Legplates][Gauntlets] and [Tunics]."); + elseif(e.message:findi("coif")) then + e.self:Say("To create your coif material you will need to combine 2 Bricks of Crude Bronze. 1 Pixie Wing . 1 Ruined Wolf Pelt and 1 Bottle in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Coif of the Tunarean Scout."); + e.other:SummonCursorItem(22671); -- Item: An Enchanted Coif Pattern + elseif(e.message:findi("bracer")) then + e.self:Say("To create your bracer material you will need to combine 1 Brick of Crude Bronze. 2 Wasp Wings. 1 Faerie Wing and 1 Cask in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Bracer of the Tunarean Scout."); + e.other:SummonCursorItem(22672); -- Item: An Enchanted Bracer Pattern + elseif(e.message:findi("sleeve")) then + e.self:Say("To create your sleeves material you will need to combine 2 Bricks of Crude Bronze. 1 Fairy Dust and 1 Royal Jelly and 1 Elven Wine in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Sleeves of the Tunarean Scout."); + e.other:SummonCursorItem(22673); -- Item: An Enchanted Sleeves Pattern + elseif(e.message:findi("boot")) then + e.self:Say("To create your boots material you will need to combine 3 Bricks of Crude Bronze. 1 Basilisk Hatchling Hide. 1 Orc Hatchet and 1 Bottle of Milk in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Boots of the Tunarean Scout."); + e.other:SummonCursorItem(22674); -- Item: An Enchanted Boots Pattern + elseif(e.message:findi("legplate")) then + e.self:Say("To create your legplates material you will need to combine 4 Bricks of Crude Bronze. 2 Orc Eyes. 1 Orc Scalp and 1 Raw Bamboo in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Legplates of the Tunarean Scout."); + e.other:SummonCursorItem(22675); -- Item: An Enchanted Legplates Pattern + elseif(e.message:findi("gauntlet")) then + e.self:Say("To create your gauntlets material you will need to combine 3 Bricks of Crude Bronze. 1 Orc Head. 1 Orc Skull . and 2 Bat Wings in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Gauntlets of the Tunarean Scout."); + e.other:SummonCursorItem(22676); -- Item: An Enchanted Gauntlets Pattern + elseif(e.message:findi("tunic")) then + e.self:Say("To create your tunic material you will need to combine 5 Bricks of Crude Bronze. 1 Coyote Skull. 1 Orc Ribcage. 1 Pristine Forest Drakeling Scale. 1 Crushbone Shoulderpads and 1 Golden Bandit Tooth in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Tunic of the Tunarean Scout. Please return to me after you have completed your tunic. for I have one final [favor] to ask of you."); + e.other:SummonCursorItem(22677); -- Item: An Enchanted Tunic Pattern + elseif(e.message:findi("favor")) then + e.self:Say("I have recently been trying my hand at weaponcrafting and I can say that it is going quite well. Before I can practice my skills however I need some [specific items] that will enable me to begin crafting daggers for our young scouts like yourself that have completed the training exercises."); + elseif(e.message:findi("specific item")) then + e.self:Say("In order to craft some more daggers I am in need of 1 Preserved Orc Hide and 2 Rotting Orc Teeth. You can most likely find these items on the vile orcs that inhabit the Faydark and Clan Crushbone of course. Bring me these items and I will reward you with a training dagger of the finest quality."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 27535,item2 = 27536,item3 = 27536})) then + e.self:Say("Excllent! Here's your reward."); -- text made up + e.other:QuestReward(e.self,0,0,0,0,27530,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:gfaydark ID:54069 -- Tilania_Shadowwalker \ No newline at end of file diff --git a/gfaydark/Tylfon.lua b/gfaydark/Tylfon.lua new file mode 100644 index 0000000..37c1d15 --- /dev/null +++ b/gfaydark/Tylfon.lua @@ -0,0 +1,50 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("So, you think you have what it takes to be a Scout of Tunare? Come back with two gold and two rusty daggers and I'll make it worth your while."); + elseif(e.message:findi("silvermesh legging")) then + e.self:Say("Scout silvermesh leggings are part of the garb of the Scouts of Tunare. Besides greater protection in battle, they offer a protection against magic and their unique powers boost the wearer's agility. They are meant for the scouts only and, as such, are not just given away. Are you [willing to earn the leggings]?"); + elseif(e.message:findi("earn the legging")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- requires amiably faction regardless of class + e.self:Say("A former scout named Faldor Hendrys has stolen our [Gem of Tunare]. He has fled Faydwer and we have been unable to track him down. Perhaps if you go and speak with his brother, [Elmion Hendrys], and ask him of Faldor, we might learn something of value?"); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("The Scouts of Tunare have no quarrel with you, but perhaps a few less Crushbone Orcs would prove your worth. Then we shall speak.") + else + e.self:Say("You dare to speak with a loyal member of the Scouts of Tunare?! You are truly foolish! Run away, while you still can."); + end + elseif(e.message:findi("gem of tunare")) then + e.self:Say("The bright green Gem of Tunare was discovered by the Scouts of Tunare in the trunk of a great tree. The lightning streaked down to split the tree in twain and there, inside, was the gem, Tunare's gift to the people of Kelethin. It has no magical properties, but it represents the glory of Tunare. It appears as a small emerald shard. Alas, now it has been stolen by Faldor Hendrys and only his brother [Elmion Hendrys] could know of his whereabouts."); + elseif(e.message:findi("elmion hendrys")) then + e.self:Say("Seek out the Fier'Dal, Elmion. He was last heard telling the local bar patrons that he was off to do some adventuring at the lake near the estate. What that is, I do not know."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18784})) then -- Tattered Note + e.self:Say("Hmm.. I hope you can prove yourself a lot more valuable than you look. Here, throw this on.. it'll help protect you a little. Let's get started on improving your skills."); + e.other:Faction(e.self,316,100); -- Tunare's Scouts + e.other:QuestReward(e.self,0,0,0,0,13535,20); -- Old Worn Gray Tunic* + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 7007,item2 = 7007,gold = 2})) then + e.self:Say("Well, well. I didn't think you could do it. Here's your cut and don't be surprised that it's not much because it's your first lesson. Remember. the smaller the operation. the bigger the share, and the richest rogues have the tightest lips."); + -- confirmed live faction + e.other:Faction(e.self,316,1); -- Faction: Scouts of Tunare + e.other:QuestReward(e.self,0,math.random(5),0,0,7021,500); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13346,item2 = 13346,gold = 2})) then + e.self:Say("Well, well. I didn't think you could do it. Here's your cut and don't be surprised that it's not much because it's your first lesson. Remember. the smaller the operation. the bigger the share, and the richest rogues have the tightest lips."); + -- confirmed live faction + e.other:Faction(e.self,316,1); -- Faction: Scouts of Tunare + e.other:QuestReward(e.self,0,math.random(5),0,0,7021,500); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 7007,item2 = 13346,gold = 2})) then + e.self:Say("Well, well. I didn't think you could do it. Here's your cut and don't be surprised that it's not much because it's your first lesson. Remember. the smaller the operation. the bigger the share, and the richest rogues have the tightest lips."); + -- confirmed live faction + e.other:Faction(e.self,316,1); -- Faction: Scouts of Tunare + e.other:QuestReward(e.self,0,math.random(5),0,0,7021,500); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13322})) then + e.self:Say("Excellent job, " .. e.other:GetCleanName() .. ", we will turn you into a rogue of Tunare yet. Here this is for your trouble."); + e.other:QuestReward(e.self,0,0,0,0,3315,100); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:gfaydark ID:54087 -- Tylfon diff --git a/gfaydark/a_drunkard.lua b/gfaydark/a_drunkard.lua new file mode 100644 index 0000000..c9af7e8 --- /dev/null +++ b/gfaydark/a_drunkard.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("tandan nybright")) then + e.self:Say("How did you know my name? You must be from Felwithe. Hic.. Excuse my condition. I am not the man I was. I have had a [shocking experience]."); + elseif(e.message:findi("shocking")) then + e.self:Say("My daughters have become blood thirsty bandits. They went off to visit Antonica and when they returned they became bandits. They now attack every poor traveler who happens upon them. They have disgraced the name of Nybright. Will you [hunt the Nybright Sisters] or is this not to your liking?"); + elseif(e.message:findi("hunt")) then + e.self:Say("I am most thankful. Many adventurers would not help me with this matter. Go and seek out the Nybright sisters. I gave all four of them a Personalized Necklace. Return them all to me when the deed is done. May the Tribunal watch over you."); + elseif(e.message:findi("hail")) then + e.self:Say("Can you -hic- . . . spare some copper or -hic- . . . silver? I just . . . -Hic- . . . need some change to buy something to drin . . Er . . Eat . -Hic-"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13035})) then + e.self:Say("Thank you kind sir , I am most grateful for your generosity."); + e.other:QuestReward(e.self,0,0,0,0,0,150); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13347,item2 = 13349,item3 = 13348,item4 = 13350})) then + e.self:Say("This is a sad day, but it was the just thing to do. The Nybright name will no longer be tarnished. Here you are my friend. This is a bit uncared for, but it is yours. My warrior days are over. Now go. I must be alone."); + e.other:Faction(e.self,226,10); -- clerics of tunare + e.other:Faction(e.self,279,10); -- king tearis thex + e.other:Faction(e.self,5002,7); -- anti-mage + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(2314, 2007, 2005, 9003),1000); -- Item(s): Bearskin Gloves (2314), Leather Belt, Leather Shoulderpads, Targ Shield + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if(e.wp == 3 or e.wp == 9 or e.wp == 15 or e.wp == 24 or e.wp == 26 or e.wp == 33) then + e.self:Say("Please.. Can anyone spare some coppers? .. Anyone?"); + end +end + +-- END of FILE Zone:gfaydark ID:54059 -- a_drunkard diff --git a/gfaydark/a_pixie_trickster.lua b/gfaydark/a_pixie_trickster.lua new file mode 100644 index 0000000..78f2a35 --- /dev/null +++ b/gfaydark/a_pixie_trickster.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks up something from the ground."); + end + end +end diff --git a/global/A_Mystic_Voice.lua b/global/A_Mystic_Voice.lua new file mode 100644 index 0000000..2d46df9 --- /dev/null +++ b/global/A_Mystic_Voice.lua @@ -0,0 +1,17 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("The portal to Luclin will become active in five minutes. Please begin gathering at the Spires if you wish to travel."); + end + if(e.signal == 2) then + e.self:Say("As a reminder, the portal will become active in three minutes."); + end + if(e.signal == 3) then + e.self:Say("Two minutes till teleportation. Please be prepared to step inside the circle of Spires."); + end + if(e.signal == 4) then + e.self:Say("One minute till teleportation. Please be prepared to step inside the circle of Spires."); + end + if(e.signal == 5) then + e.self:Say("The portal to Luclin is about to become active. Please stand inside the circle of Spires and have a shard upon your person."); + end +end \ No newline at end of file diff --git a/global/Nexus_Scion.lua b/global/Nexus_Scion.lua new file mode 100644 index 0000000..a0c7152 --- /dev/null +++ b/global/Nexus_Scion.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello " .. e.other:GetCleanName() .. ". I do not have much time to chat. I must concentrate on the portal that is due to open soon. If you wish to [journey to Luclin], tell me so."); + elseif(e.message:findi("journey to Luclin")) then + e.self:Say("Take this, " .. e.other:GetCleanName() .. ". You must stay inside the circle of the Spires, and keep this shard on your person. Should you need another, simply ask me. I do not think we will run out of shards any time soon! If you do NOT wish to travel to Luclin, destroy that which I gave you, or step well away from the Spires lest you be caught up in the portal. It will open soon."); + e.other:SummonCursorItem(19720); -- Item: Spire Stone + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/global/Priest_of_Discord.lua b/global/Priest_of_Discord.lua new file mode 100644 index 0000000..e875196 --- /dev/null +++ b/global/Priest_of_Discord.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. " . Are you a child of Order? If you have come seeking the path of Discord. I require only that you give me your [Tome of Order and Discord] and I shall show you the way. Only then will you be freed from Order's confining restraints."); + elseif(e.message:findi("tome")) then + e.self:Say("The Tome of Order and Discord was penned by the seventh member of the Tribunal and has become the key to a life of Discord, in spite of the author's pitiful warnings. Do you not have one, child of Order? Would you [like to read] it?"); + elseif(e.message:findi("read")) then + e.self:Say("Very well. Here you go. Simply return it to me to be released from the chains of Order."); + e.other:SetPVP(false); + e.other:SummonCursorItem(18700); -- Item: Tome of Order and Discord + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18700})) then + e.self:Say("I see you wish to join us in Discord! Welcome! By turning your back on the protection of Order you are now open to many more opportunities for glory and power. Remember that you can now be harmed by those who have also heard the call of Discord."); + e.other:SetPVP(true); + e.other:Ding(); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/global/a_boat.lua b/global/a_boat.lua new file mode 100644 index 0000000..5d34a1d --- /dev/null +++ b/global/a_boat.lua @@ -0,0 +1,20 @@ +-- Quest to return boats to their spawn points after an hour without use +-- by RealityIncarnate + +-- The boat receives a signal (id 0) whenever the server gets a ControlBoat opcode +function event_signal(e) + eq.stop_timer("respawn"); -- stop any respawn countdown in progress + eq.set_timer("checkuse", 60); -- begin checking for use every minute +end + +function event_timer(e) + if(e.timer == "checkuse") then + if(not e.self:GetTarget()) then -- if the boat has a target, it's in use. If not, begin the respawn timer + eq.stop_timer("checkuse"); -- stop checking for use + eq.set_timer("respawn",3600); -- start the respawn timer at 1 hour + end + end + if(e.timer == "respawn") then + eq.depop(); -- it hasn't been used for an hour, so respawn the boat + end +end \ No newline at end of file diff --git a/global/a_row_boat.lua b/global/a_row_boat.lua new file mode 100644 index 0000000..5d34a1d --- /dev/null +++ b/global/a_row_boat.lua @@ -0,0 +1,20 @@ +-- Quest to return boats to their spawn points after an hour without use +-- by RealityIncarnate + +-- The boat receives a signal (id 0) whenever the server gets a ControlBoat opcode +function event_signal(e) + eq.stop_timer("respawn"); -- stop any respawn countdown in progress + eq.set_timer("checkuse", 60); -- begin checking for use every minute +end + +function event_timer(e) + if(e.timer == "checkuse") then + if(not e.self:GetTarget()) then -- if the boat has a target, it's in use. If not, begin the respawn timer + eq.stop_timer("checkuse"); -- stop checking for use + eq.set_timer("respawn",3600); -- start the respawn timer at 1 hour + end + end + if(e.timer == "respawn") then + eq.depop(); -- it hasn't been used for an hour, so respawn the boat + end +end \ No newline at end of file diff --git a/global/script_init.lua b/global/script_init.lua new file mode 100644 index 0000000..46c5c95 --- /dev/null +++ b/global/script_init.lua @@ -0,0 +1,8 @@ +require("string_ext"); +require("client_ext"); +require("mob_ext"); +require("npc_ext"); +require("entity_list_ext"); +require("general_ext"); +require("bit"); +require("directional"); \ No newline at end of file diff --git a/greatdivide/#Fergul_Frostsky.lua b/greatdivide/#Fergul_Frostsky.lua new file mode 100644 index 0000000..81bfc06 --- /dev/null +++ b/greatdivide/#Fergul_Frostsky.lua @@ -0,0 +1,13 @@ +function event_waypoint_arrive(e) + -- if reached the end of his path(waypoint 6 from gridid 55), send signal to shardwurm to depop with timer and Gralk to depop. + if(e.wp == 6) then + eq.depop(118012); -- #Gralk_Dwarfkiller + eq.depop_with_timer(118040); -- shardwurm_broodmother + end +end + +function event_death_complete(e) + -- upon death, send signal to shardwurm to depop with timer and Gralk to depop. + eq.depop(118012); -- #Gralk_Dwarfkiller + eq.depop_with_timer(118040); -- shardwurm_broodmother +end diff --git a/greatdivide/#Gralk_Dwarfkiller.lua b/greatdivide/#Gralk_Dwarfkiller.lua new file mode 100644 index 0000000..70e3c97 --- /dev/null +++ b/greatdivide/#Gralk_Dwarfkiller.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Something small talks to me eh? If you werent so ugly Id crush you now. I think running around like that is pain enough for you. Go away little bug."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end \ No newline at end of file diff --git a/greatdivide/Bekerak_Coldbones.lua b/greatdivide/Bekerak_Coldbones.lua new file mode 100644 index 0000000..25478ae --- /dev/null +++ b/greatdivide/Bekerak_Coldbones.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Just another boring day waiting for supplies. I wonder when they will arrive."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("supplies")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("We are supposed to receive a shipment of supplies each month from Kael Drakkel. This months seems to be late. I hope Wenglawks has not forgotten us."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 25106}, 0)) then -- Bekerak's New Spear + e.self:Say("Well, well, I see Wenglawks finally got around to sending me my new spear. I hope it's not as shoddy as the last one. Your payment? Bahaha, did Wenglawks not tell you? Payment was to be a giant icewurm tooth carved into an amulet. Come now, little one. I will find an ice wurm for us to slay together. Then you can pull one of its teeth out for me and I will fashion the talisman for that greedy merchant."); + eq.spawn2(118016,0,0,-2776,-3011,255.5,65.5):AddToHateList(e.other,1); -- Spawn: #an_angry_shardwurm (x:-2776 y:-3011 z:255.5 heading:65.5) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 25191}, 0)) then -- Giant Shard Wurm Tooth + e.self:Emote("pulls out a large knife and begins to carve at the tooth. After a few minutes he pulls out a length of rope and fashions it into a very large necklace. 'Here is his payment. Tell him the spear is fine, and that I might reconsider his last offer to me. He will know what I mean.'"); + e.other:QuestReward(e.self,0,0,0,0,25130); -- Summon: Giant Icewurm Talisman + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 25266}, 0)) then -- Giant Sack of Supplies + e.self:Say("Supplies from Svekk? Where are the rest of them little one! There must be more, we are here pushing the Coldain back into their hole in the wall and Svekk sends a " .. e.other:Race() .. " to deliver a small portion of supplies. Take this note back to that fool. Leave quickly before I take my rage out upon you."); + e.other:Faction(e.self,419,1); -- Kromrif + e.other:Faction(e.self,448,1); -- Kromzek + e.other:Faction(e.self,406,-1); -- Coldain + e.other:Faction(e.self,430,-1); -- Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,25267,250); -- Bekerak's Letter to Svekk + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 25269}, 0)) then -- Large Supply Sack for Bekerak + e.self:Say("I am in your debt, " .. e.other:Race() .. ". These supplies will help our effort to destroy the Coldain. I wish I had more to give than what I do.' Bekerak pulls a strange looking totem on a string from one of his pockets and hands it to you. 'May Lord Rallos smile upon you, " .. e.other:GetCleanName() .. ".'"); + e.other:Faction(e.self,419,1); -- Kromrif + e.other:Faction(e.self,448,1); -- Kromzek + e.other:Faction(e.self,406,-1); -- Coldain + e.other:Faction(e.self,430,-1); -- Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,25268,250); -- Kromrif Battle Totem + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/greatdivide/Bloodmaw.lua b/greatdivide/Bloodmaw.lua new file mode 100644 index 0000000..1c7276d --- /dev/null +++ b/greatdivide/Bloodmaw.lua @@ -0,0 +1,10 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30264,item2 = 30264,item3 = 30264,item4 = 30264}, 0)) then + eq.depop_with_timer(118026); -- despawn bloody gnome captive. + eq.spawn2(118017,0,0,3172,-5930,-107,82); -- spawn gnomish captive + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/greatdivide/Kardakor.lua b/greatdivide/Kardakor.lua new file mode 100644 index 0000000..029a935 --- /dev/null +++ b/greatdivide/Kardakor.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.other:GetFaction(e.self) <= 3) then + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". It is not very often that I see adventurers back in this cave unless they have intentions of hurting the kind wurms here. I can only hope that for your sake that your intentions are good."); + elseif(e.message:findi("glanitar")) then + e.self:Say("Glanitar? It has been quite long sense I have seen Glanitar, I fear that something unfortunate has become of him. It is not like him at all to be away for this long. He was out on normal patrol with a few others when they disappeared. We have not heard from any of them."); + elseif(e.message:findi("disappear")) then + e.self:Say("This, I do not know. There are a few Giant forces that I have heard word of moving into the area. It is tough to say where they could have gone and if something happened to them or not who would be to blame. I highly doubt the Coldain would dare attack one of our units. The last I heard of them was when they left for the patrol of the Divide; this could have been anywhere. I remember that Glanitar carries a talisman from his mother. If you are to find any sign of Glanitar or any of the others please come to me first along with something that would symbolize who you received or took it from."); + elseif(e.message:findi("rolandal")) then + e.self:Say("Rolandal is an old and wise Wurm that is very well traveled and skilled in the magics of Identification. He will be able to tell you who this talisman came from. You can find him in his dwelling not too far from my home. Seek him out and inform him that i have sent you. If Rolandal can sense that your word is true proceed to tell him that you possess a talisman that you need Identified and he shall help you further. I thank you for your efforts and wish you luck, " .. e.other:GetCleanName() .. "."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1861,item2 = 1862})) then + if(e.other:GetFaction(e.self) <= 3) then + e.self:Say("What is it you have here, " .. e.other:GetCleanName() .. "? Could this possibly be the talisman of Glantitar? I am afraid I am having trouble identifying if it is indeed is. I can see that you had a great battle with one of the wicked giants. I appreciate that you present to me this head of the evil Kromzek Taskmaster along with the talisman. It proves to me that you are one that is here to aid us in our fight. However, you must seek out Rolandal to proceed further for only he can help you identify this talisman."); + -- verified faction hit + e.other:Faction(e.self,430,50); -- Faction: Claws of Veeshan + e.other:Faction(e.self,436,12); -- Faction: Yelinak + e.other:Faction(e.self,448,-25); -- Faction: Kromzek + e.other:QuestReward(e.self,0,0,0,0,1861,50000); + end + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/greatdivide/Relik.lua b/greatdivide/Relik.lua new file mode 100644 index 0000000..a3a95c7 --- /dev/null +++ b/greatdivide/Relik.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Huh? What are ya needin'? Speak up! I ain't got all day. Are you here to help out or just eat up valuable time chatting?"); + elseif(e.message:findi("help")) then + e.self:Say("Ah, good. That's what I wanted to hear. We be needin' help with supplies. I been needin' pickheads for a while now but the minin' guild hasn't had the stock ta send 'em. We're gonna need ta improvise. I've seen the gashes left in rock after a shardwurm crawled over it and I think that be the thing we need. If ya can bring me four shardwurm claws, maybe I can rig 'em up into enough picks to keep us runnin' on time with our crystal mining."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30262,item2 = 30262,item3 = 30262,item4 = 30262}, 0)) then + e.self:Say("Oh, yeah. That's strong, very strong. With these, we can make our shipment for this month. I gotta be thankin' ya properly. This be one of our best tools. Here, ya can swing a pick with us anytime, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,30263,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/greatdivide/Sentry_Badain.lua b/greatdivide/Sentry_Badain.lua new file mode 100644 index 0000000..b351a61 --- /dev/null +++ b/greatdivide/Sentry_Badain.lua @@ -0,0 +1,14 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1567,item2 = 30369})) then + e.self:Emote("breathes deeply and blows into an ornate horn. As the sound echoes through the mountain pass, the local inhabitants scurry to take cover."); + e.self:Say("I'll be right with you, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,30369); + eq.unique_spawn(118137,0,0,-74,-19,208,0); -- NPC: War + eq.spawn_condition("greatdivide",1,0); + eq.spawn_condition("greatdivide",1,1); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/greatdivide/Taskmaster_Abyott.lua b/greatdivide/Taskmaster_Abyott.lua new file mode 100644 index 0000000..6b28c14 --- /dev/null +++ b/greatdivide/Taskmaster_Abyott.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I do not have time for small talk, I am here on a mission that is far more important than any problem or concern you may have. If I were you I would continue on to whatever destination awaits you, if not im afraid I see trouble in your immediate future."); + end +end diff --git a/greatdivide/Vores_the_Hunter.lua b/greatdivide/Vores_the_Hunter.lua new file mode 100644 index 0000000..207a2e5 --- /dev/null +++ b/greatdivide/Vores_the_Hunter.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("squints and looks in your direction. 'Who is that? I can't see ya but yer not Coldain and yer voice is too whiny for a giant. We ain't bashin' each other's brains in yet so ya can't be all that bad. Come have a seat by me fire. But quiet yerself down already. The wurms may not be the best at sniffin out people but best not to test em'."); + elseif(e.message:findi("wurm")) then + e.self:Say("Ye must be kidding me, outlander. Sure'n ya got eyes. The shardwurms. If ye can't see em then ya best not be tryin' ta put on yer pants for fear of stabbin' yerself with a sword."); + elseif(e.message:findi("control")) then + e.self:Say("Control. Aye. Break em like dogs or such. Domesticate em. I ain't ever found a way, all I got is me theories."); + elseif(e.message:findi("theories")) then + e.self:Say("It ain't so complex like a caster's diagrams 'n such. I just be thinkin' mebbe ya need a somethin' like a leash and then maybe some magical gem o' control. Uh, maybe. Ain't much for years o' work, eh? Unfortunately, I tried a hundread of other things already. Them wurms chafe at any attempt at control."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30270,item2 = 30249})) then -- Gem of Persuasion and Blood Wolf Harness + e.self:Say("Hey! What ya got there? Well now, ain't that pretty! Ya know, this just might do it. You done what I never was able. I gotta give ya that much. I ain't much o' one for travelin' any more. My legs be old and my bones are weak. You take this harness and find a good big mother of a wurm ta test it on. Just focus in yer mind what yer wantin the wurm ta do. Heh, maybe have it clear out some pests, eh?"); + e.other:QuestReward(e.self,0,0,0,0,30272); -- Harness of Control + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/greatdivide/a_frost_giant_berserker.lua b/greatdivide/a_frost_giant_berserker.lua new file mode 100644 index 0000000..ac17eb6 --- /dev/null +++ b/greatdivide/a_frost_giant_berserker.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Move along small one. My duties call."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end \ No newline at end of file diff --git a/greatdivide/a_frost_giant_elite.lua b/greatdivide/a_frost_giant_elite.lua new file mode 100644 index 0000000..ac17eb6 --- /dev/null +++ b/greatdivide/a_frost_giant_elite.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Move along small one. My duties call."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end \ No newline at end of file diff --git a/greatdivide/a_frost_giant_scout.lua b/greatdivide/a_frost_giant_scout.lua new file mode 100644 index 0000000..ac17eb6 --- /dev/null +++ b/greatdivide/a_frost_giant_scout.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Move along small one. My duties call."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end \ No newline at end of file diff --git a/greatdivide/a_furious_tizmak_warrior.lua b/greatdivide/a_furious_tizmak_warrior.lua new file mode 100644 index 0000000..f48760a --- /dev/null +++ b/greatdivide/a_furious_tizmak_warrior.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("makes a strange gurgling sound and nods at you."); + end +end \ No newline at end of file diff --git a/greatdivide/a_tizmak_augur.lua b/greatdivide/a_tizmak_augur.lua new file mode 100644 index 0000000..f48760a --- /dev/null +++ b/greatdivide/a_tizmak_augur.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("makes a strange gurgling sound and nods at you."); + end +end \ No newline at end of file diff --git a/greatdivide/a_tizmak_shaman.lua b/greatdivide/a_tizmak_shaman.lua new file mode 100644 index 0000000..f48760a --- /dev/null +++ b/greatdivide/a_tizmak_shaman.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("makes a strange gurgling sound and nods at you."); + end +end \ No newline at end of file diff --git a/greatdivide/a_tizmak_spiritcaller.lua b/greatdivide/a_tizmak_spiritcaller.lua new file mode 100644 index 0000000..f48760a --- /dev/null +++ b/greatdivide/a_tizmak_spiritcaller.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("makes a strange gurgling sound and nods at you."); + end +end \ No newline at end of file diff --git a/greatdivide/a_tizmak_warrior.lua b/greatdivide/a_tizmak_warrior.lua new file mode 100644 index 0000000..f48760a --- /dev/null +++ b/greatdivide/a_tizmak_warrior.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("makes a strange gurgling sound and nods at you."); + end +end \ No newline at end of file diff --git a/greatdivide/a_velium_miner.lua b/greatdivide/a_velium_miner.lua new file mode 100644 index 0000000..adb86bd --- /dev/null +++ b/greatdivide/a_velium_miner.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". I be a bit busy right now. If ya need help, look fer Relik. He's the mining boss."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/greatdivide/an_expedition_guard.lua b/greatdivide/an_expedition_guard.lua new file mode 100644 index 0000000..7eb0d05 --- /dev/null +++ b/greatdivide/an_expedition_guard.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Yeah? I be guardin'. Which means I ain't talkin. Move on, " .. e.other:Race() .. "."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/greatdivide/encounters/Murdrick.lua b/greatdivide/encounters/Murdrick.lua new file mode 100644 index 0000000..4103cab --- /dev/null +++ b/greatdivide/encounters/Murdrick.lua @@ -0,0 +1,125 @@ +local ThreadManager = require("thread_manager"); +local Murdrick = nil; + +function DavinConversation() + Murdrick:Say("Good day my friends, it is good to see you all are alive and well."); + ThreadManager:Wait(0.65); + + local davin = eq.get_entity_list():GetMobByNpcTypeID(118077); + if(davin.null) then + return + end + + davin:Say("Well, we are alive, but I'd hardly say we're well... We have heard of the death of Rodrick, and the Dain is calling on all citizens of Thurgadin to flush out any opposition to the throne. If we're tied to your dealings with the Kromrif we'll be sent to the bottom of the well for sure."); + ThreadManager:Wait(0.65); + + Murdrick:Say("The Dain knows nothing, and I have a plan to keep it that way. I have given the matter much thought, and I have gathered you all here to ask for your help.'"); + ThreadManager:Wait(0.65); + + local gerton = eq.get_entity_list():GetMobByNpcTypeID(118076); + if(gerton.null) then + return + end + + gerton:Say("We all saw what happened when Rodrick agreed to help you. I, for one, am none too eager to take on these new friends of the Dain."); + ThreadManager:Wait(0.65); + + Murdrick:Say("Rodrick knew what he was getting into, and so did you. It's a bit too late for second thoughts. I don't recall seeing any hesitation when the loot was being passed around."); + ThreadManager:Wait(0.65); + + local lapker = eq.get_entity_list():GetMobByNpcTypeID(118075); + if(lapker.null) then + return; + end + + lapker:Say("Go ahead Murdrick, what's this plan of yours?"); + ThreadManager:Wait(0.65); + + local lapker = eq.get_entity_list():GetMobByNpcTypeID(118075); + if(lapker.null) then + return; + end + + Murdrick:Say("As I said I've thought long and hard of our situation and I feel we are indeed in danger. My cousin Berradin is a captain in the Dain's army. I've always been uneasy about him, but now more than ever. He could easily betray many of us and take credit for destroying the rebellion."); + ThreadManager:Wait(0.65); + + Murdrick:Say("My plan is to poison him and plant a suicide note on the body, a note in which he would take full responsibility for the actions of the rebels. This would both ensure that he could never betray us and would give the Dain closure. We will be free to continue working with our Kromrif friends without fear of discovery."); + ThreadManager:Wait(0.65); + + local davin = eq.get_entity_list():GetMobByNpcTypeID(118077); + if(davin.valid) then + davin:Say("Sounds good boss, but how do you plan on poisoning him?"); + end + + Murdrick:Say("Berradin has a weakness for drink, one drink in particular... Avalanche Ale. I have had the recipe altered slightly to include a deadly poison. I have much to do, I need one of you to brew the drink and bring it to me. I'll handle the rest."); + + local gerton = eq.get_entity_list():GetMobByNpcTypeID(118076); + if(gerton.null) then + return; + end + + gerton:Emote("Chuckles, 'Once again, Murdrick, you've put us at ease in the middle of a treacherous predicament. I will volunteer to brew the drink.'"); + ThreadManager:Wait(0.65); + + Murdrick:Emote("smiles, 'Very well, take this recipe and follow it exactly. It won't be easy, but you'll be richly rewarded for your efforts I assure you. Send word to meet me back here when you are finished.'"); + ThreadManager:Wait(0.65); + + local gerton = eq.get_entity_list():GetMobByNpcTypeID(118076); + if(gerton.null) then + return; + end + + gerton:Say("Consider it done. Be sure to watch yourself Murd, the Dain's gotta be suspicious of ya, being Rodrick's brother and all. And those outlander friends of his are dangerous, chopped down the Ry`Gorr chief like he was nothin!"); +end + +function MurdrickTimer(e) + Murdrick = e.self; + if(e.timer == "start") then + eq.spawn2(118121,0,0,3690,-5919,130,65); -- NPC: Dialogueman + ThreadManager:Create("DavinConversation",DavinConversation) + elseif(e.timer == "murdrick") then + ThreadManager:GarbageCollect(); + ThreadManager:Resume("DavinConversation"); + end +end + +function MurdrickCombat(e) + if(e.joined) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(118121)) then + eq.depop_with_timer(); + eq.depop(118121); + eq.stop_timer("start"); + eq.stop_timer("murdrick"); + else + eq.depop(118121); + eq.stop_timer("start"); + eq.stop_timer("murdrick"); + end + else + eq.set_timer("start",267000); + eq.set_timer("murdrick", 10000); + end +end + +function ConvoSpawn(e) + eq.set_timer("depop",100000); +end + +function ConvoTimer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +function MurdrickSpawn(e) + eq.set_timer("start",267000); + eq.set_timer("murdrick", 10000); +end + +function event_encounter_load(e) + eq.register_npc_event("Murdrick", Event.timer, 118061, MurdrickTimer); + eq.register_npc_event("Murdrick", Event.spawn, 118061, MurdrickSpawn); + eq.register_npc_event("Murdrick", Event.combat, 118061, MurdrickCombat); + + eq.register_npc_event("Murdrick", Event.spawn, 118121, ConvoSpawn); + eq.register_npc_event("Murdrick", Event.timer, 118121, ConvoTimer); +end diff --git a/greatdivide/encounters/Ring10.lua b/greatdivide/encounters/Ring10.lua new file mode 100644 index 0000000..dd2eb65 --- /dev/null +++ b/greatdivide/encounters/Ring10.lua @@ -0,0 +1,1256 @@ +local nextconv = 0; +local prepare = 0; +local wave = 0; +local switch = 0; +local switchA = 0; +local switchB = 0; +local ChurnSurvive = 0; +local CorbinSurvive = 0; +local DobbinSurvive = 0; +local GaradainSurvive = 0; +local KarginSurvive = 0; + +function WarSpawn(e) + eq.set_timer("Sentry", 10000); + eq.set_timer("Reset", 7200000); + switch = eq.ChooseRandom(1,2,3); + switchA = eq.ChooseRandom(1,2,3); + switchB = eq.ChooseRandom(1,2,3); +end + +function WarTimer(e) + if(e.timer == "Sentry") then + eq.stop_timer("Sentry"); + eq.unique_spawn(118021,58,0,141,-1085,21,258); -- NPC: Sentry_Badain_ + elseif(e.timer == "StartWave") then + wave = wave + 1; + if(wave >= 1 and wave < 7) then + eq.set_timer("StartWave",190000); + elseif(wave == 7) then + eq.set_timer("StartWave",10000); + elseif(wave == 8) then + eq.set_timer("StartWave",520000); + elseif(wave >= 9 and wave < 13) then + eq.set_timer("StartWave",285000); + elseif(wave == 13) then + eq.set_timer("StartWave",255000); + elseif(wave == 14) then + eq.set_timer("StartWave",685000); + elseif(wave >= 15 and wave < 20) then + eq.set_timer("StartWave",320000); + end + + if(wave == 1) then + KromrifGroup3(e); + elseif(wave == 2) then + if(switch == 1) then + KromrifGroup2(e); + elseif(switch == 2) then + KromrifGroup4(e); + else + KromrifGroup1(e); + end + elseif(wave == 3) then + if(switch == 1) then + KromrifGroup3(e); + elseif(switch == 2) then + KromrifGroup5(e); + else + KromrifGroup2(e); + end + elseif(wave == 4) then + if(switch == 1) then + KromrifGroup1(e); + else + KromrifGroup3(e) + end + elseif(wave == 5) then + if(switch == 1) then + KromrifGroup3(e); + elseif(switch == 2) then + KromrifGroup4(e); + else + KromrifGroup2(e); + end + elseif(wave == 6) then + if(switch == 1) then + KromrifGroup1(e); + elseif(switch == 2) then + KromrifGroup5(e); + else + KromrifGroup4(e); + end + elseif(wave == 7) then + if(switch == 2) then + KromrifGroup1(e); + else + KromrifGroup5(e); + end + elseif(wave == 8) then + if(switch == 1) then + KromrifGroup4(e); + elseif(switch == 2) then + KromrifGroup2(e); + else + KromrifGroup1(e); + end + elseif(wave == 9) then + KromrifGroup3A(e); + elseif(wave == 10) then + if(switchA == 1) then + KromrifGroup2A(e); + elseif(switchA == 2) then + KromrifGroup4A(e); + else + KromrifGroup1A(e); + end + elseif(wave == 11) then + if(switchA == 1) then + KromrifGroup1A(e); + elseif(switchA == 2) then + KromrifGroup5A(e); + else + KromrifGroup2A(e); + end + elseif(wave == 12) then + if(switchA == 1) then + KromrifGroup5A(e); + elseif(switchA == 2) then + KromrifGroup2A(e); + else + KromrifGroup1A(e); + end + elseif(wave == 13) then + if(switchA == 2) then + KromrifGroup1A(e); + else + KromrifGroup5A(e); + end + elseif(wave == 14) then + if(switchA == 1) then + KromrifGroup4A(e); + elseif(switchA == 2) then + KromrifGroup3A(e); + else + KromrifGroup5A(e); + end + elseif(wave == 15) then + KromrifGroup3B(e); + elseif(wave == 16) then + if(switchB == 1) then + KromrifGroup5B(e); + elseif(switchB == 2) then + KromrifGroup1B(e); + else + KromrifGroup4B(e); + end + elseif(wave == 17) then + if(switchB == 1) then + KromrifGroup1B(e); + else + KromrifGroup5B(e); + end + elseif(wave == 18) then + if(switchB == 3) then + KromrifGroup1B(e); + else + KromrifGroup4B(e); + end + elseif(wave == 19) then + if(switchB == 1) then + KromrifGroup2B(e); + elseif(switchB == 2) then + KromrifGroup1B(e); + else + KromrifGroup3B(e); + end + elseif(wave == 20) then + eq.unique_spawn(118083,104,0,240,-2545,-85,0); -- NPC: Narandi_the_Wretched + NarandiSpawnDepop(e); + eq.stop_timer("StartWave"); + end + elseif(e.timer == "WarEnd") then + eq.stop_timer("WarEnd"); + eq.repop_zone(); + eq.depop(); + elseif(e.timer == "Reset") then + eq.stop_timer("Reset"); + eq.repop_zone(); + eq.depop(); + end +end + +function WarSignal(e) + if(e.signal == 1) then + eq.set_timer("StartWave",125000); + wave = 0; + ChurnSurvive = 0; + CorbinSurvive = 0; + DobbinSurvive = 0; + GaradainSurvive = 0; + KarginSurvive = 0; + elseif(e.signal == 2) then + eq.stop_timer("StartWave"); + eq.set_timer("WarEnd",7200000); + elseif(e.signal == 3) then + eq.set_timer("WarEnd",120000); + elseif(e.signal == 4) then + eq.set_timer("Reset", 7200000); + end +end + +function ZrelikSpawn(e) + eq.set_timer("sit",1000); +end + +function ZrelikTimer(e) + if(e.timer == "sit") then + eq.stop_timer("sit"); + e.self:SetAppearance(1); + end +end + +function ChurnSpawn(e) + eq.set_timer("sit",1000); +end + +function ChurnTimer(e) + if(e.timer == "sit") then + eq.stop_timer("sit"); + e.self:SetAppearance(1); + end +end + +function CorbinSpawn(e) + eq.set_timer("sit",1000); +end + +function CorbinTimer(e) + if(e.timer == "sit") then + eq.stop_timer("sit"); + e.self:SetAppearance(1); + end +end + +function DobbinSpawn(e) + eq.set_timer("sit",1000); +end + +function DobbinTimer(e) + if(e.timer == "sit") then + eq.stop_timer("sit"); + e.self:SetAppearance(1); + end +end + +function GaradainSpawn(e) + eq.set_timer("sit",1000); +end + +function GaradainTimer(e) + if(e.timer == "sit") then + eq.stop_timer("sit"); + e.self:SetAppearance(1); + end +end + +function KarginSpawn(e) + eq.set_timer("sit",1000); +end + +function KarginTimer(e) + if(e.timer == "sit") then + eq.stop_timer("sit"); + e.self:SetAppearance(1); + end +end + +function SenschalSpawn(e) + eq.set_timer("sit",1000); + eq.signal(118137,4); +end + +function SenschalTimer(e) + if(e.timer == "sit") then + eq.stop_timer("sit"); + e.self:SetAppearance(1); + elseif(e.timer == "conversation") then + eq.stop_timer("conversation"); + e.self:Say("We knew the day might come when the Kromrif would discover the location of our beloved city. It was only prudent for there to be a plan for such a circumstance. In light of recent developments, however, our plans have been adjusted. Outlander, the Dain has appointed you to lead our armies in defense of Thurgadin."); + eq.set_timer("continue",7000); + nextconv = 0; + elseif(e.timer == "continue") then + nextconv = nextconv + 1; + if(nextconv == 1) then + e.self:Say("I will stand here with a handful of men as a final line of defense. Should I fall, all will be lost. You will have these men and their soldiers to command. Use them wisely, you will be richly rewarded if your forces are able to keep them alive."); + elseif(nextconv == 2) then + e.self:Say("Garadain will post his men in the gorge to the east. Churn and his men will await your command in the caves to the west. Dobbin will have his forces at the ready in the clearing directly south of here near the towers. If any Kromrif make it to his vicinity he and his men will attack with or without your command."); + elseif(nextconv == 3) then + e.self:Say("Lastly, Corbin will hide his men in the worm caves to the south, call on him for a surprise attack. Remember where these men are stationed, outlander. Should they call out for help you may wish to send some of your people to aid them."); + elseif(nextconv == 4) then + e.self:Say("The leader of this invasion is a powerful Kromrif named Narandi. Rumor has it that he is more powerful than any ten of his peers. He must fall. When he is slain you must show his head and the ninth ring to me."); + elseif(nextconv == 5) then + e.self:Say("Scout Zrelik here will follow you and serve as your herald. He will relay your orders to the troops. Show me your ninth ring now to verify your identity and I will give you the orders to memorize."); + eq.stop_timer("continue"); + end + end +end + +function SentryWaypoint(e) + if(e.wp == 1) then + eq.zone_emote(0,"Sentry Badain says 'Excellent! All of your commanders have reported to the Dain, and none too soon mind you. We are getting reports of Kromrif troop movement in the area and final preparations must be made. Follow me and the Seneschal will brief you.'"); + eq.unique_spawn(118022,0,0,-142,-520,78,128); -- Zrelik + elseif(e.wp == 2) then + ColdainLeader(e); + elseif(e.wp == 5) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(118031)) then + eq.get_entity_list():GetMobByNpcTypeID(118031):Say("With all due respect, Seneschal, I feel my men are best suited for the eastern post. If the outlander has rounded up enough soldiers to hold 'em off from the south then they'll definitely test us in the gorge. We'll be needin' a solid defense there."); + end + elseif(e.wp == 6) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(118029)) then + eq.get_entity_list():GetMobByNpcTypeID(118029):Say("Very well, Garadain. The eastern post is yours. I'll place Kargin and his bowmen on the hill to the west, and Churn, you'll station your troops up near the caves just past them."); + eq.set_timer("ChurnSay",5000); + end + elseif(e.wp == 7) then + eq.zone_emote(0,"Sentry Badain says 'Excuse me, Seneschal Aldikar, you instructed me to report to you when the outlander returned. I have brought him."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(118029)) then + eq.get_entity_list():GetMobByNpcTypeID(118029):Say("Perfect timing, outlander. Please be seated and listen carefully. Badain, yer dismissed."); + eq.signal(118029,1); -- NPC: Seneschal_Aldikar + elseif(eq.get_entity_list():IsMobSpawnedByNpcTypeID(118054)) then + eq.get_entity_list():GetMobByNpcTypeID(118054):Say("Perfect timing, outlander. Please be seated and listen carefully. Badain, yer dismissed."); + end + elseif(e.wp == 8) then + e.self:Say("Sir, yessir!"); + end +end + + +function SentrySpawn(e) + eq.signal(118137,4); +end + +function SentryTimer(e) + eq.stop_timer("ChurnSay"); + eq.get_entity_list():GetMobByNpcTypeID(118024):Say("Understood sir."); +end + +function SenschalSignal(e) + if(e.signal == 1) then + eq.set_timer("conversation",14000); + end +end + +function SenschalTrade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30369}, 0)) then + e.self:Say("Commit these orders to memory, " .. e.other:GetCleanName() .. ", have them ready to speak at a moment's notice. When you are finished memorizing, repeat them to me. Tell your soldiers to prepare themselves. When the orders are handed to Zrelik we will take up our positions."); + e.other:QuestReward(e.self,{items = {30369,18511}}); -- Item: Coldain Hero's Insignia Ring + eq.stop_all_timers(); + eq.depop(118022); + eq.unique_spawn(118052,0,0,-142,-520,78,128); -- Zrelik(v2) + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function Zrelik2Spawn(e) + eq.signal(118137,4); +end + +function Zrelik2Trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18511}, 0)) then + e.self:Say("At yer service, " .. e.other:GetCleanName() .. ". Remember now, before issuing me an order ya must disengage from any combat and be sure yer speakin to me. I advise you to avoid combat at all costs. Your leadership is crucial."); + eq.follow(e.other:GetID()); + e.other:SendSound(141); + eq.depop(118029); + eq.spawn2(118054,0,0,-140,-545,78,64); -- Senschal(v2) + + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function Zrelik2Say(e) + if(e.message:findi("for the dain, attack")) then + e.self:Shout("All able Coldain, come to me at once!"); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(118058)) then + GaradainHelp(e); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(118057)) then + DobbinHelp(e); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(118055)) then + ChurnHelp(e); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(118048)) then + CorbinHelp(e); + end + elseif(e.message:findi("garadain to my side")) then + e.self:Shout("Garadain! " .. e.other:GetCleanName() .. " needs help."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(118058)) then + GaradainHelp(e); + end + elseif(e.message:findi("dobbin assist me")) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(118057)) then + DobbinHelp(e); + end + elseif(e.message:findi("churn protect me")) then + e.self:Shout("Churn, get yer men and c'mere on the double! " .. e.other:GetCleanName() .. " needs ye!"); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(118055)) then + ChurnHelp(e); + end + elseif(e.message:findi("corbin attack")) then + e.self:Shout("" .. e.other:GetCleanName() .. " is in need of yer help Corbin. Bring yer men!"); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(118048)) then + CorbinHelp(e); + end + end +end + +function GaradainHelp(e) + local Coldain_List = Set {118058,118039,118041}; -- Garadain, Cleric, and Guard + local npc_list = eq.get_entity_list():GetNPCList(); + + if (npc_list ~= nil) then + for npc in npc_list.entries do + if (Coldain_List[npc:GetNPCTypeID()] ~= nil) then + -- npc.valid will be true if the NPC is actually spawned + if (npc.valid) then + npc:CastToNPC():MoveTo(e.self:GetX(),e.self:GetY(),e.self:GetZ(),0,false); + end + end + end + end +end + +function DobbinHelp(e) + local Coldain_List = Set {118057,118043}; -- Dobbin and Soldiers + local npc_list = eq.get_entity_list():GetNPCList(); + + if (npc_list ~= nil) then + for npc in npc_list.entries do + if (Coldain_List[npc:GetNPCTypeID()] ~= nil) then + -- npc.valid will be true if the NPC is actually spawned + if (npc.valid) then + npc:CastToNPC():MoveTo(e.self:GetX(),e.self:GetY(),e.self:GetZ(),0,false); + end + end + end + end +end + +function ChurnHelp(e) + local Coldain_List = Set {118055,118038}; -- Churn and Axemen + local npc_list = eq.get_entity_list():GetNPCList(); + + if (npc_list ~= nil) then + for npc in npc_list.entries do + if (Coldain_List[npc:GetNPCTypeID()] ~= nil) then + -- npc.valid will be true if the NPC is actually spawned + if (npc.valid) then + npc:CastToNPC():MoveTo(e.self:GetX(),e.self:GetY(),e.self:GetZ(),0,false); + end + end + end + end +end + +function CorbinHelp(e) + local Coldain_List = Set {118048,118097,118099}; -- Corbin, Cleric, and Guard + local npc_list = eq.get_entity_list():GetNPCList(); + + if (npc_list ~= nil) then + for npc in npc_list.entries do + if (Coldain_List[npc:GetNPCTypeID()] ~= nil) then + -- npc.valid will be true if the NPC is actually spawned + if (npc.valid) then + npc:CastToNPC():MoveTo(e.self:GetX(),e.self:GetY(),e.self:GetZ(),0,false); + end + end + end + end +end + +-- Set function example from Programming In Lua +-- http://www.lua.org/pil/11.5.html +function Set (list) + local set = {} + for _, l in ipairs(list) do set[l] = true end + return set +end + + +function Senschal2Spawn(e) + eq.set_timer("prepare",12000); + prepare = 0; +end + +function Senschal2Timer(e) + if(e.timer == "prepare") then + prepare = prepare + 1; + if(prepare == 1) then + e.self:Shout("Good citizens of Thurgadin, hear me! Our city, our people, our very lives are in danger this day. The Kromrif are at this very moment marching towards us in an offensive they hope will bring about our demise..."); + eq.signal(118137,1); + ArcherSpawns(e); + elseif(prepare == 2) then + e.self:Shout("I hereby command, by authority of Dain Frostreaver the Fourth, that all able bodied Coldain fight to the death in defense of our land. Children, disabled citzens, and unseasoned travelers are advised to evacuate immediately!"); + AxemanSpawn(e); + elseif(prepare == 3) then + e.self:Shout("My fellow soldiers, take heart! For we are not alone in this endeavor. One among us, an outlander, has earned the title Hero of the Dain for valiant service to our people. This newcomer has brought with him allies that will fight alongside you to help bring about our victory."); + EastSpawn(e); + elseif(prepare == 4) then + e.self:Shout("My friends... Brell did not place us here so many centuries ago to be slaughtered by these heathens. Nor did our forefather, Colin Dain, sacrifice himself simply to have us fail here now. Through these events we were brought to this day to test our strength and our faith."); + SouthSpawn(e); + elseif(prepare == 5) then + e.self:Shout("Will we be shackled together to slave away in Kromrif mines or will we stand united and feed these beasts Coldain blades? By Brell, I promise you, it is better to die on our feet than to live on our knees!"); + SoldierSpawn(e); + elseif(prepare == 6) then + e.self:Shout("TROOPS, TAKE YOUR POSITIONS!"); + DepopLeader(e); + ColdainLeader2(e) + eq.move_to(-112,30,102,128,true); + eq.set_timer("leader",1000); + elseif(prepare == 7) then + SpearmanSpawn(e); + eq.stop_timer("prepare"); + end + elseif(e.timer == "leader") then + LeaderMove(e); + eq.stop_timer("leader"); + end +end + +function ColdainLeader(e) + eq.unique_spawn(118024,0,0,-130,-525,78,144); -- Churn + eq.unique_spawn(118033,0,0,-120,-550,77,200); -- Corbin + eq.unique_spawn(118028,0,0,-125,-565,78,227); -- Dobbin + eq.unique_spawn(118031,0,0,-140,-570,78,0); -- Garadain + eq.unique_spawn(118025,0,0,-120,-535,78,170); -- Kargin + eq.unique_spawn(118029,0,0,-140,-545,78,64); -- Senschal +end + +function DepopLeader(e) + eq.depop(118024); + eq.depop(118033); + eq.depop(118028); + eq.depop(118031); + eq.depop(118025); +end + +function ColdainLeader2(e) + eq.unique_spawn(118055,0,0,-130,-525,78,144); -- Churn + eq.unique_spawn(118048,0,0,-120,-550,77,200); -- Corbin + eq.unique_spawn(118057,0,0,-125,-565,78,227); -- Dobbin + eq.unique_spawn(118058,0,0,-140,-570,78,0); -- Garadain + eq.unique_spawn(118056,0,0,-120,-535,78,170); -- Kargin +end + +function LeaderMove(e) + eq.get_entity_list():GetNPCByNPCTypeID(118055):CastToNPC():MoveTo(1544,-1070,322,0,true); -- Churn + eq.get_entity_list():GetNPCByNPCTypeID(118048):CastToNPC():MoveTo(100,-2880,-144,0,true); -- Corbin + eq.get_entity_list():GetNPCByNPCTypeID(118057):CastToNPC():MoveTo(0,-1090,26,128,true); -- Dobbin + eq.get_entity_list():GetNPCByNPCTypeID(118058):CastToNPC():MoveTo(-1840,-570,75,128,true); -- Garadain + eq.get_entity_list():GetNPCByNPCTypeID(118056):CastToNPC():MoveTo(870,-1095,26,52,true); -- Kargin +end + + +function ArcherSpawns(e) + eq.spawn2(118037,0,0,-160,-1085,68,128); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,-50,-145,110,192); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,-50,-125,110,192); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,-50,-105,110,192); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,-168,-145,115,64); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,-168,-125,115,64); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,122,-1103,55,128); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,-145,-1090,53,128); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,-1875,-518,101,128); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,-168,-105,115,64); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,-1780,-510,99,128); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,875,-1050,64,128); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,-1860,-515,96,128); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,-1840,-510,99,128); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,-1820,-510,99,128); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,-1800,-510,99,128); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,875,-1150,56,128); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,875,-1130,57,128); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,875,-1110,59,128); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,875,-1090,61,128); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,875,-1070,62,128); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,155,-1092,66,128); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,134,-1093,68,128); -- NPC: Royal_Archer + eq.spawn2(118037,0,0,-180,-1090,71,128); -- NPC: Royal_Archer +end + +function AxemanSpawn(e) + eq.spawn2(118038,0,0,1555,-1075,320,128); -- NPC: Royal_Axeman + eq.spawn2(118038,0,0,1565,-1080,320,128); -- NPC: Royal_Axeman + eq.spawn2(118038,0,0,1535,-1065,320,128); -- NPC: Royal_Axeman + eq.spawn2(118038,0,0,1525,-1060,320,128); -- NPC: Royal_Axeman + eq.spawn2(118038,0,0,1585,-1080,320,128); -- NPC: Royal_Axeman + eq.spawn2(118038,0,0,1575,-1075,320,128); -- NPC: Royal_Axeman + eq.spawn2(118038,0,0,1565,-1070,320,128); -- NPC: Royal_Axeman + eq.spawn2(118038,0,0,1555,-1065,320,128); -- NPC: Royal_Axeman + eq.spawn2(118038,0,0,1545,-1060,320,128); -- NPC: Royal_Axeman + eq.spawn2(118038,0,0,1535,-1055,320,128); -- NPC: Royal_Axeman + eq.spawn2(118038,0,0,1525,-1050,320,128); -- NPC: Royal_Axeman + eq.spawn2(118038,0,0,1515,-1045,320,128); -- NPC: Royal_Axeman +end + +function EastSpawn(e) + eq.spawn2(118039,0,0,-1875,-545,70,128); -- NPC: Royal_Cleric + eq.spawn2(118039,0,0,-1860,-545,70,128); -- NPC: Royal_Cleric + eq.spawn2(118039,0,0,-1845,-545,70,128); -- NPC: Royal_Cleric + eq.spawn2(118039,0,0,-1830,-545,70,128); -- NPC: Royal_Cleric + eq.spawn2(118039,0,0,-1815,-545,70,128); -- NPC: Royal_Cleric + eq.spawn2(118039,0,0,-1800,-545,70,128); -- NPC: Royal_Cleric + eq.spawn2(118041,0,0,-1875,-560,70,128); -- NPC: Royal_Guard + eq.spawn2(118041,0,0,-1860,-560,70,128); -- NPC: Royal_Guard + eq.spawn2(118041,0,0,-1845,-560,70,128); -- NPC: Royal_Guard + eq.spawn2(118041,0,0,-1830,-560,70,128); -- NPC: Royal_Guard + eq.spawn2(118041,0,0,-1815,-560,70,128); -- NPC: Royal_Guard + eq.spawn2(118041,0,0,-1800,-560,70,128); -- NPC: Royal_Guard +end + +function SouthSpawn(e) + eq.spawn2(118097,0,0,140,-2860,-142,0); -- NPC: Royal_Cleric + eq.spawn2(118097,0,0,125,-2860,-142,0); -- NPC: Royal_Cleric + eq.spawn2(118097,0,0,110,-2860,-142,0); -- NPC: Royal_Cleric + eq.spawn2(118097,0,0,95,-2860,-142,0); -- NPC: Royal_Cleric + eq.spawn2(118097,0,0,80,-2860,-142,0); -- NPC: Royal_Cleric + eq.spawn2(118097,0,0,65,-2860,-142,0); -- NPC: Royal_Cleric + eq.spawn2(118099,0,0,140,-2845,-142,0); -- NPC: Royal_Guard + eq.spawn2(118099,0,0,125,-2845,-142,0); -- NPC: Royal_Guard + eq.spawn2(118099,0,0,110,-2845,-142,0); -- NPC: Royal_Guard + eq.spawn2(118099,0,0,95,-2845,-142,0); -- NPC: Royal_Guard + eq.spawn2(118099,0,0,80,-2845,-142,0); -- NPC: Royal_Guard + eq.spawn2(118099,0,0,65,-2845,-142,0); -- NPC: Royal_Guard +end + +function SoldierSpawn(e) + eq.spawn2(118043,0,0,69,-1100,21,128); -- NPC: Royal_Soldier + eq.spawn2(118043,0,0,56,-1100,21,128); -- NPC: Royal_Soldier + eq.spawn2(118043,0,0,43,-1100,21,128); -- NPC: Royal_Soldier + eq.spawn2(118043,0,0,30,-1100,21,128); -- NPC: Royal_Soldier + eq.spawn2(118043,0,0,17,-1100,21,128); -- NPC: Royal_Soldier + eq.spawn2(118043,0,0,4,-1100,22,128); -- NPC: Royal_Soldier + eq.spawn2(118043,0,0,-9,-1100,23,128); -- NPC: Royal_Soldier + eq.spawn2(118043,0,0,-22,-1100,23,128); -- NPC: Royal_Soldier + eq.spawn2(118043,0,0,-35,-1100,23,128); -- NPC: Royal_Soldier + eq.spawn2(118043,0,0,-48,-1100,24,128); -- NPC: Royal_Soldier + eq.spawn2(118043,0,0,-61,-1100,24,128); -- NPC: Royal_Soldier + eq.spawn2(118043,0,0,-74,-1100,24,128); -- NPC: Royal_Soldier +end + +function SpearmanSpawn(e) + eq.spawn2(118044,0,0,600,-2420,-83,228); -- NPC: Kromrif_Spearman + eq.spawn2(118044,0,0,625,-2360,-80,228); -- NPC: Kromrif_Spearman + eq.spawn2(118044,0,0,650,-2300,-81,228); -- NPC: Kromrif_Spearman + eq.spawn2(118044,0,0,675,-2240,-79,228); -- NPC: Kromrif_Spearman + eq.spawn2(118044,0,0,700,-2180,-70,228); -- NPC: Kromrif_Spearman + eq.spawn2(118044,0,0,725,-2120,-63,228); -- NPC: Kromrif_Spearman + eq.spawn2(118044,0,0,750,-2060,-57,228); -- NPC: Kromrif_Spearman + eq.spawn2(118044,0,0,775,-2000,-53,228); -- NPC: Kromrif_Spearman + eq.spawn2(118044,0,0,800,-1940,-48,228); -- NPC: Kromrif_Spearman + eq.spawn2(118044,0,0,825,-1880,-42,228); -- NPC: Kromrif_Spearman + eq.spawn2(118044,0,0,850,-1820,-35,228); -- NPC: Kromrif_Spearman + eq.spawn2(118044,0,0,875,-1760,-30,228); -- NPC: Kromrif_Spearman + eq.spawn2(118044,0,0,-765,-2275,-72,94); -- NPC: Kromrif_Spearman + eq.spawn2(118044,0,0,-742,-2232,-70,94); -- NPC: Kromrif_Spearman + eq.spawn2(118044,0,0,-719,-2189,-63,94); -- NPC: Kromrif_Spearman + eq.spawn2(118044,0,0,-696,-2146,-57,94); -- NPC: Kromrif_Spearman + eq.spawn2(118044,0,0,-673,-2103,-53,94); -- NPC: Kromrif_Spearman + eq.spawn2(118044,0,0,-650,-2060,-49,94); -- NPC: Kromrif_Spearman +end + +function KromrifGroup1(e) + eq.spawn2(118046,70,0,930,-2060,-55,0); -- NPC: Kromrif_Captain + eq.spawn2(118045,75,0,960,-2120,-55,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,74,0,960,-2090,-55,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,73,0,960,-2060,-55,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,72,0,960,-2030,-55,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,71,0,960,-2000,-55,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,80,0,1000,-2120,-55,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,79,0,1000,-2090,-55,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,78,0,1000,-2060,-55,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,77,0,1000,-2030,-55,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,76,0,1000,-2000,-55,0); -- NPC: Kromrif_Recruit +end + +function KromrifGroup1A(e) + eq.spawn2(118062,70,0,930,-2060,-55,0); -- NPC: Kromrif_General + eq.spawn2(118059,75,0,960,-2120,-55,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,74,0,960,-2090,-55,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,73,0,960,-2060,-55,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,72,0,960,-2030,-55,0); -- NPC: Kromrif_Warrior + eq.spawn2(118060,71,0,960,-2000,-55,0); -- NPC: Priest_of_Zek + eq.spawn2(118059,80,0,1000,-2120,-55,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,79,0,1000,-2090,-55,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,78,0,1000,-2060,-55,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,77,0,1000,-2030,-55,0); -- NPC: Kromrif_Warrior + eq.spawn2(118060,76,0,1000,-2000,-55,0); -- NPC: Priest_of_Zek +end + +function KromrifGroup1B(e) + eq.spawn2(118064,70,0,930,-2060,-55,0); -- NPC: Kromrif_Warlord + eq.spawn2(118071,75,0,960,-2120,-55,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,74,0,960,-2090,-55,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,73,0,960,-2060,-55,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,72,0,960,-2030,-55,0); -- NPC: Kromrif_Veteran + eq.spawn2(118067,71,0,960,-2000,-55,0); -- NPC: High_Priest_of_Zek + eq.spawn2(118071,80,0,1000,-2120,-55,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,79,0,1000,-2090,-55,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,78,0,1000,-2060,-55,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,77,0,1000,-2030,-55,0); -- NPC: Kromrif_Veteran + eq.spawn2(118067,76,0,1000,-2000,-55,0); -- NPC: High_Priest_of_Zek +end + +function KromrifGroup2(e) + eq.spawn2(118046,81,0,900,-2140,-55,0); -- NPC: Kromrif_Captain + eq.spawn2(118045,82,0,870,-2080,-55,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,83,0,870,-2110,-55,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,84,0,870,-2140,-55,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,85,0,870,-2170,-55,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,86,0,870,-2200,-55,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,87,0,830,-2080,-55,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,88,0,830,-2110,-55,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,89,0,830,-2140,-55,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,90,0,830,-2170,-55,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,91,0,830,-2200,-55,0); -- NPC: Kromrif_Recruit +end + +function KromrifGroup2A(e) + eq.spawn2(118062,81,0,900,-2140,-55,0); -- NPC: Kromrif_General + eq.spawn2(118059,82,0,870,-2080,-55,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,83,0,870,-2110,-55,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,84,0,870,-2140,-55,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,85,0,870,-2170,-55,0); -- NPC: Kromrif_Warrior + eq.spawn2(118060,86,0,870,-2200,-55,0); -- NPC: Priest_of_Zek + eq.spawn2(118059,87,0,830,-2080,-55,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,88,0,830,-2110,-55,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,89,0,830,-2140,-55,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,90,0,830,-2170,-55,0); -- NPC: Kromrif_Warrior + eq.spawn2(118060,91,0,830,-2200,-55,0); -- NPC: Priest_of_Zek +end + +function KromrifGroup2B(e) + eq.spawn2(118064,81,0,900,-2140,-55,0); -- NPC: Kromrif_Warlord + eq.spawn2(118071,82,0,870,-2080,-55,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,83,0,870,-2110,-55,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,84,0,870,-2140,-55,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,85,0,870,-2170,-55,0); -- NPC: Kromrif_Veteran + eq.spawn2(118067,86,0,870,-2200,-55,0); -- NPC: High_Priest_of_Zek + eq.spawn2(118071,87,0,830,-2080,-55,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,88,0,830,-2110,-55,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,89,0,830,-2140,-55,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,90,0,830,-2170,-55,0); -- NPC: Kromrif_Veteran + eq.spawn2(118067,91,0,830,-2200,-55,0); -- NPC: High_Priest_of_Zek +end + +function KromrifGroup3(e) + eq.spawn2(118046,69,0,240,-2545,-85,0); -- NPC: Kromrif_Captain + eq.spawn2(118045,68,0,527,-2330,-70,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,67,0,458,-2354,-80,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,66,0,392,-2378,-85,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,65,0,324,-2402,-90,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,64,0,257,-2426,-95,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,63,0,190,-2450,-100,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,62,0,122,-2474,-100,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,61,0,55,-2498,-100,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,60,0,-13,-2522,-100,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,59,0,-80,-2545,-96,0); -- NPC: Kromrif_Recruit +end + +function KromrifGroup3A(e) + eq.spawn2(118062,69,0,240,-2545,-85,0); -- NPC: Kromrif_General + eq.spawn2(118059,68,0,527,-2330,-70,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,67,0,458,-2354,-80,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,66,0,392,-2378,-85,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,65,0,324,-2402,-90,0); -- NPC: Kromrif_Warrior + eq.spawn2(118060,64,0,257,-2426,-95,0); -- NPC: Priest_of_Zek + eq.spawn2(118059,63,0,190,-2450,-100,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,62,0,122,-2474,-100,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,61,0,55,-2498,-100,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,60,0,-13,-2522,-100,0); -- NPC: Kromrif_Warrior + eq.spawn2(118060,59,0,-80,-2545,-96,0); -- NPC: Priest_of_Zek +end + +function KromrifGroup3B(e) + eq.spawn2(118064,69,0,240,-2545,-85,0); -- NPC: Kromrif_Warlord + eq.spawn2(118071,68,0,527,-2330,-70,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,67,0,458,-2354,-80,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,66,0,392,-2378,-85,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,65,0,324,-2402,-90,0); -- NPC: Kromrif_Veteran + eq.spawn2(118067,64,0,257,-2426,-95,0); -- NPC: High_Priest_of_Zek + eq.spawn2(118071,63,0,190,-2450,-100,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,62,0,122,-2474,-100,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,61,0,55,-2498,-100,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,60,0,-13,-2522,-100,0); -- NPC: Kromrif_Veteran + eq.spawn2(118067,59,0,-80,-2545,-96,0); -- NPC: High_Priest_of_Zek +end + +function KromrifGroup4(e) + eq.spawn2(118045,97,0,-1100,-2120,-50,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,94,0,-1100,-2080,-50,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,96,0,-1080,-2120,-50,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,93,0,-1080,-2080,-50,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,95,0,-1060,-2120,-50,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,92,0,-1060,-2080,-50,0); -- NPC: Kromrif_Recruit +end + +function KromrifGroup4A(e) + eq.spawn2(118060,97,0,-1100,-2120,-50,0); -- NPC: Priest_of_Zek + eq.spawn2(118060,94,0,-1100,-2080,-50,0); -- NPC: Priest_of_Zek + eq.spawn2(118059,96,0,-1080,-2120,-50,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,93,0,-1080,-2080,-50,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,95,0,-1060,-2120,-50,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,92,0,-1060,-2080,-50,0); -- NPC: Kromrif_Warrior +end + +function KromrifGroup4B(e) + eq.spawn2(118067,97,0,-1100,-2120,-50,0); -- NPC: High_Priest_of_Zek + eq.spawn2(118067,94,0,-1100,-2080,-50,0); -- NPC: High_Priest_of_Zek + eq.spawn2(118071,96,0,-1080,-2120,-50,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,93,0,-1080,-2080,-50,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,95,0,-1060,-2120,-50,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,92,0,-1060,-2080,-50,0); -- NPC: Kromrif_Veteran +end + +function KromrifGroup5(e) + eq.spawn2(118045,103,0,-2730,-1890,-30,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,102,0,-2730,-1870,-30,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,101,0,-2730,-1850,-30,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,100,0,-2690,-1890,-30,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,99,0,-2690,-1870,-30,0); -- NPC: Kromrif_Recruit + eq.spawn2(118045,98,0,-2690,-1850,-30,0); -- NPC: Kromrif_Recruit +end + +function KromrifGroup5A(e) + eq.spawn2(118060,103,0,-2730,-1890,-30,0); -- NPC: Priest_of_Zek + eq.spawn2(118059,102,0,-2730,-1870,-30,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,101,0,-2730,-1850,-30,0); -- NPC: Kromrif_Warrior + eq.spawn2(118060,100,0,-2690,-1890,-30,0); -- NPC: Priest_of_Zek + eq.spawn2(118059,99,0,-2690,-1870,-30,0); -- NPC: Kromrif_Warrior + eq.spawn2(118059,98,0,-2690,-1850,-30,0); -- NPC: Kromrif_Warrior +end + +function KromrifGroup5B(e) + eq.spawn2(118067,103,0,-2730,-1890,-30,0); -- NPC: High_Priest_of_Zek + eq.spawn2(118071,102,0,-2730,-1870,-30,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,101,0,-2730,-1850,-30,0); -- NPC: Kromrif_Veteran + eq.spawn2(118067,100,0,-2690,-1890,-30,0); -- NPC: High_Priest_of_Zek + eq.spawn2(118071,99,0,-2690,-1870,-30,0); -- NPC: Kromrif_Veteran + eq.spawn2(118071,98,0,-2690,-1850,-30,0); -- NPC: Kromrif_Veteran +end + +function KromrifEliteGuard(e) + eq.spawn2(118047,0,0,-150,-75,107,64); -- NPC: Kromrif_Elite_Guard + eq.spawn2(118047,0,0,-150,-115,107,64); -- NPC: Kromrif_Elite_Guard + eq.spawn2(118047,0,0,-150,-155,107,64); -- NPC: Kromrif_Elite_Guard + eq.spawn2(118047,0,0,-150,-195,107,64); -- NPC: Kromrif_Elite_Guard + eq.spawn2(118047,0,0,-65,-195,107,192); -- NPC: Kromrif_Elite_Guard + eq.spawn2(118047,0,0,-65,-155,107,192); -- NPC: Kromrif_Elite_Guard + eq.spawn2(118047,0,0,-65,-115,107,192); -- NPC: Kromrif_Elite_Guard + eq.spawn2(118047,0,0,-65,-75,107,192); -- NPC: Kromrif_Elite_Guard + eq.spawn2(118047,0,0,-130,5,110,64); -- NPC: Kromrif_Elite_Guard + eq.spawn2(118047,0,0,-90,5,110,192); -- NPC: Kromrif_Elite_Guard +end + +function WarLose(e) + eq.spawn_condition("thurgadina",1,0); + eq.spawn_condition("thurgadina",1,1); + eq.spawn_condition("thurgadina",2,1); + eq.spawn_condition("thurgadinb",4,0); + eq.spawn_condition("thurgadinb",4,1); + eq.spawn_condition("thurgadinb",5,1); + eq.signal(118137,2); + eq.depop_all(118043); -- Royal_Soldier + eq.depop_all(118041); -- Royal_Guard + eq.depop_all(118039); -- Royal_Cleric + eq.depop_all(118097); -- Royal_Guard + eq.depop_all(118099); -- Royal_Cleric + eq.depop_all(118038); -- Royal_Axeman + eq.depop_all(118037); -- Royal_Archer + eq.depop(118055); -- Churn + eq.depop(118048); -- Corbin + eq.depop(118057); -- Dobbin + eq.depop(118058); -- Garadain + eq.depop(118056); -- Kargin + eq.depop(118054); -- Senschal + eq.depop(118052); -- Zrelik + eq.depop_all(118046); -- Kromrif_Captain + eq.depop_all(118045); -- Kromrif_Recruit + eq.depop_all(118062); -- Kromrif_General + eq.depop_all(118059); -- Kromrif_Warrior + eq.depop_all(118060); -- Priest_of_Zek + eq.depop_all(118064); -- Kromrif_Warlord + eq.depop_all(118067); -- High_Priest_of_Zek + eq.depop_all(118071); -- Kromrif_Veteran + eq.depop(118083); -- Narandi + eq.depop(); +end + +function NarandiSpawnDepop(e) + eq.depop_all(118043); -- Royal_Soldier + eq.depop_all(118041); -- Royal_Guard + eq.depop_all(118039); -- Royal_Cleric + eq.depop_all(118038); -- Royal_Axeman + eq.depop_all(118037); -- Royal_Archer + eq.depop_all(118097); -- Royal_Guard + eq.depop_all(118099); -- Royal_Cleric +end + +function Churn2Spawn(e) + e.self:SetRunning(true); +end + +function Corbin2Spawn(e) + e.self:SetRunning(true); +end + +function Dobbin2Spawn(e) + e.self:SetRunning(true); +end + +function Garadain2Spawn(e) + e.self:SetRunning(true); +end + +function Kargin2Spawn(e) + e.self:SetRunning(true); +end + +function RClericSpawn(e) + e.self:SetRunning(true); +end + +function RGuardSpawn(e) + e.self:SetRunning(true); +end + +function RCleric2Spawn(e) + e.self:SetRunning(true); +end + +function RGuard2Spawn(e) + e.self:SetRunning(true); +end + +function RAxemanSpawn(e) + e.self:SetRunning(true); +end + +function RSoldierSpawn(e) + e.self:SetRunning(true); +end + +function RecruitWaypoint(e) + if(e.wp == 3) then + e.self:SetRunning(true); + elseif(e.wp == 8) then + KromrifEliteGuard(e); + WarLose(e); + end +end + +function CaptainWaypoint(e) + if(e.wp == 3) then + e.self:SetRunning(true); + elseif(e.wp == 8) then + KromrifEliteGuard(e); + WarLose(e); + end +end + +function WarriorWaypoint(e) + if(e.wp == 3) then + e.self:SetRunning(true); + elseif(e.wp == 8) then + KromrifEliteGuard(e); + WarLose(e); + end +end + +function ZekWaypoint(e) + if(e.wp == 3) then + e.self:SetRunning(true); + elseif(e.wp == 8) then + KromrifEliteGuard(e); + WarLose(e); + end +end + +function GeneralWaypoint(e) + if(e.wp == 3) then + e.self:SetRunning(true); + elseif(e.wp == 8) then + KromrifEliteGuard(e); + WarLose(e); + end +end + +function VeteranWaypoint(e) + if(e.wp == 3) then + e.self:SetRunning(true); + elseif(e.wp == 8) then + KromrifEliteGuard(e); + WarLose(e); + end +end + +function HighZekWaypoint(e) + if(e.wp == 3) then + e.self:SetRunning(true); + elseif(e.wp == 8) then + KromrifEliteGuard(e); + WarLose(e); + end +end + +function WarlordWaypoint(e) + if(e.wp == 3) then + e.self:SetRunning(true); + elseif(e.wp == 8) then + KromrifEliteGuard(e); + WarLose(e); + end +end + +function NarandiWaypoint(e) + if(e.wp == 3) then + e.self:Shout("Meddling fools, you are no match for the likes of me. Be warned... Engage me at your own peril!"); + elseif(e.wp == 8) then + eq.signal(118137,3); + DespawnKromrif(e); + eq.depop(118055); -- Churn + eq.depop(118048); -- Corbin + eq.depop(118057); -- Dobbin + eq.depop(118058); -- Garadain + eq.depop(118056); -- Kargin + eq.depop(118054); -- Senschal + eq.depop(118052); -- Zrelik + end +end + +function NarandiCombat(e) + if(e.joined) then + CheckSurvivor(e); + eq.depop(118052); -- Zrelik + end +end + +function NarandiDeath(e) + DespawnKromrif(e); + eq.signal(118137,2); + eq.depop(118054); + eq.spawn2(118085,0,0,-140,-545,78,64); -- Senschal(v3) + SpawnSurvivors(e); +end + +function DespawnKromrif(e) + eq.depop_all(118044); -- Kromrif_Spearman + eq.depop_all(118046); -- Kromrif_Captain + eq.depop_all(118045); -- Kromrif_Recruit + eq.depop_all(118062); -- Kromrif_General + eq.depop_all(118059); -- Kromrif_Warrior + eq.depop_all(118060); -- Priest_of_Zek + eq.depop_all(118064); -- Kromrif_Warlord + eq.depop_all(118067); -- High_Priest_of_Zek + eq.depop_all(118071); -- Kromrif_Veteran +end + +function CheckSurvivor(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(118055)) then -- check Churn + ChurnSurvive = 1; + eq.depop(118055); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(118048)) then -- check Corbin + CorbinSurvive = 1; + eq.depop(118048); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(118057)) then -- check Dobbin + DobbinSurvive = 1; + eq.depop(118057); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(118058)) then -- check Garadain + GaradainSurvive = 1; + eq.depop(118058); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(118056)) then -- check Kargin + KarginSurvive = 1; + eq.depop(118056); + end +end + +function SpawnSurvivors(e) + if(ChurnSurvive == 1) then -- check Churn + eq.spawn2(118092,0,0,-130,-525,78,144); -- Churn + end + if(CorbinSurvive == 1) then -- check Corbin + eq.spawn2(118093,0,0,-120,-550,77,200); -- Corbin + end + if(DobbinSurvive == 1) then -- check Dobbin + eq.spawn2(118094,0,0,-125,-565,78,227); -- Dobbin + end + if(GaradainSurvive == 1) then -- check Garadain + eq.spawn2(118095,0,0,-140,-570,78,0); -- Garadain + end + if(KarginSurvive == 1) then -- check Kargin + eq.spawn2(118096,0,0,-120,-535,78,170); -- Kargin + end +end + +function Senschal3Spawn(e) + eq.signal(118137,4); -- 2 hours to reset if no trade. +end + +function Senschal3Trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1739,item2 = 30369})) then + e.self:Emote("unsheathes a knife and shaves the beard from Narandi's face and returns the head to you, 'The Dain will require the beard for his trophy room, please accept this ring on his behalf. May its effect aid you as you have aided us. Be certain to present the ring to the Dain when you're in town. If you remain an ally he will be most gracious, but be warned, if you fall from his good graces he will keep the ring.'"); + e.other:Faction(e.self,406,100); -- coldain + e.other:Faction(e.self,405,25); -- dain + e.other:Faction(e.self,448,-10); -- kzek + e.other:Faction(e.self,419,-50); -- krif + e.other:QuestReward(e.self,{items = {1741,30385},exp = 5000}); + e.self:Say("Show the head to the surviving heroes quickly, we must report to the Dain and tend to the wounded."); + eq.signal(118137,3); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function Churn2Trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1741}, 0)) then + e.self:Emote("pries a crown from the head of Narandi, 'The halls of Thurgadin will echo with praises to you for as long as we grace the face of this land. May this crown serve you well. Honor through battle!'"); + e.other:Faction(e.self,406,100); -- coldain + e.other:Faction(e.self,405,25); -- dain + e.other:Faction(e.self,448,-10); -- kzek + e.other:Faction(e.self,419,-50); -- krif + e.other:QuestReward(e.self,{items = {1741,1746},exp = 5000}); -- Crown of Narandi + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function Corbin2Trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1741}, 0)) then + e.self:Emote("unhooks a glowing earring from Narandi's shorn head, 'Hmm, this looks like something special. Take it, " .. e.other:GetCleanName() .. ", you've earned it! Be well.' "); + e.other:Faction(e.self,406,100); -- coldain + e.other:Faction(e.self,405,25); -- dain + e.other:Faction(e.self,448,-10); -- kzek + e.other:Faction(e.self,419,-50); -- krif + e.other:QuestReward(e.self,{items = {1741,1744},exp = 5000}); -- Earring of the Frozen Skull + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function Dobbin2Trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1741}, 0)) then + e.self:Emote("gives a gentle, warm smile and slight nod of his head in warm welcoming, 'Good day to you, " .. e.other:GetCleanName() .. ", and welcome to the district of Selia. We are children of the light -- beings who valiantly uphold the ways of honor, valor, and merits of goodly faith and virtue. Rather, we are crusaders of these things, collectively comprising the beacon of these traits within the universe in our position in New Tanaan. We are quite pleased to have you approach us with such confidence -- perhaps the inner light has brought you to us, seeking a way to unlock the purity of these merits that you faintly mirror now. If you are seeking council in the ways of enchantments, then I would be more than pleased and honored to aid you where I can, my friend.'"); + e.other:Faction(e.self,406,100); -- coldain + e.other:Faction(e.self,405,25); -- dain + e.other:Faction(e.self,448,-10); -- kzek + e.other:Faction(e.self,419,-50); -- krif + e.other:QuestReward(e.self,{items = {1741,1743},exp = 5000}); -- Faceguard of Bentos the Hero. + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function Garadain2Trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1741}, 0)) then + e.self:Emote("removes a choker from the severed head and returns both items to you, 'Congratulations on your victory, " .. e.other:GetCleanName() .. ". I couldn't have done a better job myself. May Brell protect and watch over you and your friends. Farewell.' "); + e.other:Faction(e.self,406,100); -- coldain + e.other:Faction(e.self,405,25); -- dain + e.other:Faction(e.self,448,-10); -- kzek + e.other:Faction(e.self,419,-50); -- krif + e.other:QuestReward(e.self,{items = {1741,1742},exp = 5000}); -- Choker of the Wretched + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function Kargin2Trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1741}, 0)) then + e.self:Emote("picks up a stick and hits the back of the dismembered head with all his might, knocking one of its eyes out of the socket, 'Bastard killed my brother! Hope his ghost felt that one!'"); + e.other:Faction(e.self,406,100); -- coldain + e.other:Faction(e.self,405,25); -- dain + e.other:Faction(e.self,448,-10); -- kzek + e.other:Faction(e.self,419,-50); -- krif + e.other:QuestReward(e.self,{items = {1741,1745},exp = 5000}); -- Eye of Narandi + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_encounter_load(e) + eq.register_npc_event("Ring10", Event.spawn, 118137, WarSpawn); + eq.register_npc_event("Ring10", Event.timer, 118137, WarTimer); + eq.register_npc_event("Ring10", Event.signal, 118137, WarSignal); + eq.register_npc_event("Ring10", Event.spawn, 118022, ZrelikSpawn); + eq.register_npc_event("Ring10", Event.timer, 118022, ZrelikTimer); + eq.register_npc_event("Ring10", Event.spawn, 118024, ChurnSpawn); + eq.register_npc_event("Ring10", Event.timer, 118024, ChurnTimer); + eq.register_npc_event("Ring10", Event.spawn, 118033, CorbinSpawn); + eq.register_npc_event("Ring10", Event.timer, 118033, CorbinTimer); + eq.register_npc_event("Ring10", Event.spawn, 118028, DobbinSpawn); + eq.register_npc_event("Ring10", Event.timer, 118028, DobbinTimer); + eq.register_npc_event("Ring10", Event.spawn, 118031, GaradainSpawn); + eq.register_npc_event("Ring10", Event.timer, 118031, GaradainTimer); + eq.register_npc_event("Ring10", Event.spawn, 118025, KarginSpawn); + eq.register_npc_event("Ring10", Event.timer, 118025, KarginTimer); + eq.register_npc_event("Ring10", Event.spawn, 118029, SenschalSpawn); + eq.register_npc_event("Ring10", Event.timer, 118029, SenschalTimer); + eq.register_npc_event("Ring10", Event.signal, 118029, SenschalSignal); + eq.register_npc_event("Ring10", Event.trade, 118029, SenschalTrade); + eq.register_npc_event("Ring10", Event.spawn, 118021, SentrySpawn); + eq.register_npc_event("Ring10", Event.waypoint_arrive, 118021, SentryWaypoint); + eq.register_npc_event("Ring10", Event.timer, 118021, SentryTimer); + eq.register_npc_event("Ring10", Event.spawn, 118052, Zrelik2Spawn); + eq.register_npc_event("Ring10", Event.trade, 118052, Zrelik2Trade); + eq.register_npc_event("Ring10", Event.say, 118052, Zrelik2Say); + eq.register_npc_event("Ring10", Event.spawn, 118054, Senschal2Spawn); + eq.register_npc_event("Ring10", Event.timer, 118054, Senschal2Timer); + eq.register_npc_event("Ring10", Event.spawn, 118055, Churn2Spawn); + eq.register_npc_event("Ring10", Event.spawn, 118048, Corbin2Spawn); + eq.register_npc_event("Ring10", Event.spawn, 118057, Dobbin2Spawn); + eq.register_npc_event("Ring10", Event.spawn, 118058, Garadain2Spawn); + eq.register_npc_event("Ring10", Event.spawn, 118056, Kargin2Spawn); + eq.register_npc_event("Ring10", Event.waypoint_arrive, 118045, RecruitWaypoint); + eq.register_npc_event("Ring10", Event.waypoint_arrive, 118046, CaptainWaypoint); + eq.register_npc_event("Ring10", Event.waypoint_arrive, 118059, WarriorWaypoint); + eq.register_npc_event("Ring10", Event.waypoint_arrive, 118060, ZekWaypoint); + eq.register_npc_event("Ring10", Event.waypoint_arrive, 118062, GeneralWaypoint); + eq.register_npc_event("Ring10", Event.waypoint_arrive, 118071, VeteranWaypoint); + eq.register_npc_event("Ring10", Event.waypoint_arrive, 118067, HighZekWaypoint); + eq.register_npc_event("Ring10", Event.waypoint_arrive, 118064, WarlordWaypoint); + eq.register_npc_event("Ring10", Event.waypoint_arrive, 118083, NarandiWaypoint); + eq.register_npc_event("Ring10", Event.death_complete, 118083, NarandiDeath); + eq.register_npc_event("Ring10", Event.combat, 118083, NarandiCombat); + eq.register_npc_event("Ring10", Event.spawn, 118085, Senschal3Spawn); + eq.register_npc_event("Ring10", Event.trade, 118085, Senschal3Trade); + eq.register_npc_event("Ring10", Event.trade, 118092, Churn2Trade); + eq.register_npc_event("Ring10", Event.trade, 118093, Corbin2Trade); + eq.register_npc_event("Ring10", Event.trade, 118094, Dobbin2Trade); + eq.register_npc_event("Ring10", Event.trade, 118095, Garadain2Trade); + eq.register_npc_event("Ring10", Event.trade, 118096, Kargin2Trade); + eq.register_npc_event("Ring10", Event.spawn, 118039, RClericSpawn); + eq.register_npc_event("Ring10", Event.spawn, 118041, RGuardSpawn); + eq.register_npc_event("Ring10", Event.spawn, 118097, RCleric2Spawn); + eq.register_npc_event("Ring10", Event.spawn, 118099, RGuard2Spawn); + eq.register_npc_event("Ring10", Event.spawn, 118038, RAxemanSpawn); + eq.register_npc_event("Ring10", Event.spawn, 118043, RSoldierSpawn); +end diff --git a/greatdivide/gnomish_captive.lua b/greatdivide/gnomish_captive.lua new file mode 100644 index 0000000..f799106 --- /dev/null +++ b/greatdivide/gnomish_captive.lua @@ -0,0 +1,18 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Uh, hi. Hey, that was great work and all. I couldn't believe that. Knowing that bear, I was sure my time was up. I'm heading back to Ak'Anon. I've had enough of pirates, mountains, snow, and bears ten times my size. If you want a map to get back you can have it."); + elseif(e.message:findi("map")) then + e.other:QuestReward(e.self,0,0,0,0,30045,1000); + eq.stop_timer("depop"); + eq.depop(); + end +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end \ No newline at end of file diff --git a/greatdivide/gnomish_deserter.lua b/greatdivide/gnomish_deserter.lua new file mode 100644 index 0000000..36d00f8 --- /dev/null +++ b/greatdivide/gnomish_deserter.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("smiles at you and nods congenially. 'Hullo there. Nice ta meet ya.' He moves to shake your hand and then seems to remember that his hand is currently frozen to a very heavy, very solid hunk of metal shaped somewhat like a box."); + elseif(e.message:findi("box")) then + e.self:Say("Huh? Box? Where's a box? Heh. I don't see a box."); + elseif(e.message:findi("stuck")) then + e.self:Say("Erm. Well ya see. One day I was on guard duty and a huge white cat knocked me over. It looked like it was running away towards the bridge island. Anyways, I fell into the water. I guess I passed out because next thing I knew I was over near the gnolls laying on top of this huge box. It's then that I made the decision."); + elseif(e.message:findi("decision")) then + e.self:Say("To leave. I'm really tired of this pirate stuff. Captain Nalot said it was gonna be great fun and an adventure but all I've seen is a lot of biscuits, slush water, and guard duty. So I'm here."); + elseif(e.message:findi("here")) then + e.self:Say("Yup. This isn't such a bad spot. It's nice and peaceful. I can see for miles and every once in a while someone like you drops by to talk. There's no guard duty and I don't have to say 'Arrrr' anymore. That really starts to hurt your throat, you know. The only problem I have anymore is my hand frozen to this box. If ya find a way to fix it let me know."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30061}, 0)) then -- dissolving liquid + e.self:Emote("grins and pours the ooze on his hand and the box. You hear a burning sizzle and then the box thumps onto the ground. 'Ow! Ow! Take it! Hah. I never thought I'd get rid of that piece of...'"); + e.other:QuestReward(e.self,0,0,0,0,30039); -- Locked Rum Box + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/greatdivide/script_init.lua b/greatdivide/script_init.lua new file mode 100644 index 0000000..2ceb223 --- /dev/null +++ b/greatdivide/script_init.lua @@ -0,0 +1,2 @@ +eq.load_encounter("Murdrick"); +eq.load_encounter("Ring10"); diff --git a/greatdivide/shardwurm_broodmother.lua b/greatdivide/shardwurm_broodmother.lua new file mode 100644 index 0000000..cbfeee2 --- /dev/null +++ b/greatdivide/shardwurm_broodmother.lua @@ -0,0 +1,59 @@ +function event_trade(e) + local item_lib = require("items"); + + if(e.self:GetX() == -1164 and e.self:GetY() == -3301 and e.self:GetGrid() == 0) then + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30272})) then -- Harness of Control + e.self:Emote("reels in pain as the harness snaps around its neck tightly. A strange gleam enters its eyes as it slowly begins to shamble towards the exit and the giants fortress."); + e.other:QuestReward(e.self,0,0,0,0,0,20000); + -- start gridid 54 + eq.start(54); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30274})) then -- Giant Harness of Control + e.self:Emote("reels in pain as the harness snaps around its neck tightly. A strange gleam enters its eyes as it slowly begins to shamble towards the exit and the Coldain mines."); + e.other:QuestReward(e.self,0,0,0,0,0,20000); + eq.set_timer("korf", 90000); + -- start gridid 56 + eq.start(56); + end + end + item_lib.return_items(e.self, e.other, e.trade); +end + +function event_waypoint_arrive(e) + + -- waypoint number from gridid 54 + if(e.wp == 13 and e.self:GetGrid() == 54) then + -- set proximity to make sure the player is following close by. + eq.set_proximity(-2020-65,-2020+65,-2453-65,-2453+65); + elseif(e.wp == 17 and e.self:GetGrid() == 56) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(118018)) then + eq.attack_npc_type(118018); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(118019)) then + eq.depop(118019); + eq.unique_spawn(118020,57,0,-3194,-6207,-367,0):SetRunning(true); + end + elseif(e.wp == 19 and e.self:GetGrid() == 54) then + -- clear proximity and if the giants spawned then attack Gralk Dwarfkiller and send signal for Fergul Frostsky to run away. + eq.clear_proximity(); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(118012)) then + eq.attack_npc_type(118012); + eq.get_entity_list():GetMobByNpcTypeID(118015):SetRunning(true); + eq.get_entity_list():GetMobByNpcTypeID(118015):CastToNPC():AssignWaypoints(55); + end + end +end + +-- if Player enter the proximity then spawns the 2 giants and clear proximity. +function event_enter(e) + eq.spawn2(118015,0,0,-2397,-2615,294,0); -- NPC: #Fergul_Frostsky + eq.spawn2(118012,0,0,-2391,-2569,299,0); -- NPC: #Gralk_Dwarfkiller + eq.clear_proximity(); +end + +function event_timer(e) + if(e.timer == "korf") then + eq.unique_spawn(118018,0,0,-3171,-6187,-370,0); -- NPC: #Relik + eq.unique_spawn(118019,0,0,-3194,-6207,-367,0); -- NPC: Korf_Brokenhammer_ + eq.stop_timer("korf"); + end +end \ No newline at end of file diff --git a/griegsend/#Grieg_Veneficus.lua b/griegsend/#Grieg_Veneficus.lua new file mode 100644 index 0000000..4c0494e --- /dev/null +++ b/griegsend/#Grieg_Veneficus.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + local npc = eq.spawn2(163389, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); +end diff --git a/griegsend/IanitorGovernor.lua b/griegsend/IanitorGovernor.lua new file mode 100644 index 0000000..d5b4f0f --- /dev/null +++ b/griegsend/IanitorGovernor.lua @@ -0,0 +1,56 @@ +-- this script will repop all 3 fake Ianitors if all spawn as fake to force a spawn + +local SPAWNIDS = { 334700, 334701, 334732 }; +local INVIS_IANITOR = 163086; + +function CheckSpawns() + + local npcList = eq.get_entity_list():GetNPCList(); + local numSpawns = 0; + + if ( npcList ) then + + for npc in npcList.entries do + + if ( npc.valid and npc:GetNPCTypeID() == INVIS_IANITOR ) then + numSpawns = numSpawns + 1; + end + end + + if ( numSpawns == 3 ) then + eq.debug("#Prast_Ianitor did not spawn; repopping"); + DepopSpawns(); + eq.set_timer("repop", 3000); + end + end +end + +function DepopSpawns() + local npcList = eq.get_entity_list():GetNPCList(); + + if ( npcList ) then + + for npc in npcList.entries do + + -- have to use npc and not spawn because spawn:Depop just disables the spawn + if ( npc.valid and npc:GetNPCTypeID() == INVIS_IANITOR ) then + npc:Depop(true); + end + end + end +end + +function event_signal(e) + if ( e.signal == 1 ) then + CheckSpawns(); + end +end + +function event_timer(e) + if ( e.timer == "repop" ) then + eq.stop_timer("repop"); + for _, id in ipairs(SPAWNIDS) do + eq.spawn_from_spawn2(id); + end + end +end diff --git a/griegsend/Prast_Ianitor.lua b/griegsend/Prast_Ianitor.lua new file mode 100644 index 0000000..cd1b40e --- /dev/null +++ b/griegsend/Prast_Ianitor.lua @@ -0,0 +1,3 @@ +function event_spawn(e) + eq.signal(163350, 1); -- IanitorGovernor +end \ No newline at end of file diff --git a/griegsend/encounters/traps.lua b/griegsend/encounters/traps.lua new file mode 100644 index 0000000..25e9663 --- /dev/null +++ b/griegsend/encounters/traps.lua @@ -0,0 +1,170 @@ +local FAKE_SENDING = 163002; -- A_Dark_Sending_ (level 55; body type 67) + +local TYPES = { + [163150] = { -- A_Dark_Sending (level 55; body type 67) + 163135, -- A_Dark_Sending (SK) + 163379, -- A_Dark_Sending (Cleric) + 163380, -- A_Dark_Sending (War) + 163381, -- A_Dark_Sending (Monk) + 163010, -- A_Dark_Sending (War higher level) + 163016, -- A_Dark_Sending (Necro) + 163391, -- A_Dark_Sending (Enchanter) + 163012, -- A_Black_Sending_ + 163006, -- A_White_Sending_ + 163004, -- A_Warped_Sending_ + 163385, -- A_Grey_Sending_ + }, + [163124] = { -- An_Atra_Somnium + 163386, -- An_Atra_Somnium (lower dmg) + 163387, -- An_Atra_Somnium (higher dmg) + 163013, -- A_Niveus_Somnium + 163014, -- A_Pullus_Somnium + }, + [163065] = { -- A_Dark_Vision + 163388, -- A_Dark_Vision_ (warrior) + 163392, -- A_Dark_Vision_ (cleric) + 163393, -- A_Dark_Vision_ (necromancer) + 163394, -- A_Dark_Vision_ (warrior higher level) + 163396, -- A_Dark_Vision_ (SK) + 163022, -- A_Somber_Vision_ + 163023, -- A_Writhing_Vision + 163024, -- A_Fearful_Vision + 163026, -- A_Fearsome_Vision + 163025, -- A_Lucid_Vision + }, + [163062] = { -- A_Dark_Visage (only one of these apparently) + 163390, -- A_Creeping_Visage + }, +}; + +local SPAWN_CHANCE = { + [163150] = { -- A_Dark_Sending (level 55; body type 67) + 13, -- A_Dark_Sending (SK) + 13, -- A_Dark_Sending (Cleric) + 14, -- A_Dark_Sending (War) + 13, -- A_Dark_Sending (Monk) + 13, -- A_Dark_Sending (War higher level) + 13, -- A_Dark_Sending (Necro) + 13, -- A_Dark_Sending (Enchanter) + 2, -- A_Black_Sending_ + 2, -- A_White_Sending_ + 2, -- A_Warped_Sending_ + 2, -- A_Grey_Sending_ + }, + [163124] = { -- An_Atra_Somnium + 45, -- An_Atra_Somnium (lower dmg) + 45, -- An_Atra_Somnium (higher dmg) + 5, -- A_Niveus_Somnium + 5, -- A_Pullus_Somnium + }, + [163065] = { -- A_Dark_Vision + 18, -- A_Dark_Vision_ (warrior) + 18, -- A_Dark_Vision_ (cleric) + 18, -- A_Dark_Vision_ (necromancer) + 18, -- A_Dark_Vision_ (warrior higher level) + 17, -- A_Dark_Vision_ (SK) + 3, -- A_Somber_Vision_ + 1, -- A_Writhing_Vision + 1, -- A_Fearful_Vision + 3, -- A_Fearsome_Vision + 3, -- A_Lucid_Vision + }, + [163062] = { -- A_Dark_Visage + 100, -- A_Creeping_Visage + }, +}; + +local EMOTE_TRAP_TYPES = { + [163383] = 1, -- Blue + [163125] = 1, -- Clouds + [163089] = 1, -- Look + [163082] = 1, -- Some + [163110] = 1, -- Something + [163395] = 1, -- Something + [163134] = 1, -- Strange + [163096] = 1, -- The + [163384] = 1, -- The + [163117] = 1, -- What + [163091] = 1, -- Will + [163215] = 1, -- You + [163382] = 1, -- You + [163153] = 1, -- Your hand +}; + +function TrapCombatEvent(e) + if ( e.joined ) then + + local typeId = e.self:GetNPCTypeID(); + + if ( EMOTE_TRAP_TYPES[typeId] ) then + eq.depop_with_timer(); + return; + + elseif ( typeId == FAKE_SENDING ) then + e.self:Emote("tries to take form!"); + if ( math.random(100) > 25 ) then + e.self:Emote("is unable to pierce the veil of reality."); + end + eq.depop_with_timer(); + return; + end + + if ( TYPES[typeId] and TYPES[typeId][1] and SPAWN_CHANCE[typeId] and SPAWN_CHANCE[typeId][1] ) then + + local roll = math.random(100); + local i = 0; + local sum = 0; + local spawnType = TYPES[typeId][1]; + + repeat + i = i + 1; + sum = sum + SPAWN_CHANCE[typeId][i]; + + until ( not SPAWN_CHANCE[typeId][i] or sum >= roll or i > 100 ) + + spawnType = TYPES[typeId][i]; + + local npc = eq.spawn2(spawnType, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + eq.set_timer("depop", 900000, npc); + end + + eq.depop_with_timer(); + else + eq.resume_timer("depop"); + end +end + +function MobTimerEvent(e) + if ( e.joined ) then + if ( not eq.is_paused_timer("depop") ) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function TimerEvent(e) + if ( e.timer == "depop" ) then + eq.depop_with_timer(); + end +end + +function event_encounter_load(e) + + eq.register_npc_event("traps", Event.combat, FAKE_SENDING, TrapCombatEvent); + for typeId in pairs(TYPES) do + eq.register_npc_event("traps", Event.combat, typeId, TrapCombatEvent); + end + for typeId in pairs(EMOTE_TRAP_TYPES) do + eq.register_npc_event("traps", Event.combat, typeId, TrapCombatEvent); + end + + for _, spawnedTypes in pairs(TYPES) do + for _, typeId in ipairs(spawnedTypes) do + eq.register_npc_event("traps", Event.timer, typeId, TimerEvent); + eq.register_npc_event("traps", Event.combat, typeId, MobCombatEvent); + end + end + +end diff --git a/griegsend/script_init.lua b/griegsend/script_init.lua new file mode 100644 index 0000000..0cbf0d7 --- /dev/null +++ b/griegsend/script_init.lua @@ -0,0 +1 @@ +eq.load_encounter("traps"); diff --git a/grimling/Bookkeeper_Leaha.lua b/grimling/Bookkeeper_Leaha.lua new file mode 100644 index 0000000..7dac2c2 --- /dev/null +++ b/grimling/Bookkeeper_Leaha.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met, friend. May I be of assistance?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6219}, 0)) then + e.self:Say("What's this? Why was Kuash unable to bring this to me himself? Oh, never mind... he's not worth the aggravation at this point. Run this report to Hollowshade and have Guard Kliknaw sign it as well. Then take it back to whomever you got it from... and tell that particular whomever to stop slacking. It's not proper for a citizen to act like that... let alone a Khala Dun."); + e.self:Emote("sighs"); + e.other:Faction(e.self,1552,1); + e.other:QuestReward(e.self,0,0,0,0,6220,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/grimling/Captain_Darznel.lua b/grimling/Captain_Darznel.lua new file mode 100644 index 0000000..4790176 --- /dev/null +++ b/grimling/Captain_Darznel.lua @@ -0,0 +1,45 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met, friend. May I be of assistance?"); + end +end + +function FieldPackTurnIn(e) + e.self:Say("This documentation is a great start. Judging by the amount of material here, we'll be able to formulate a new battle within the week. It shouldn't take our linguists too long to decipher this scribble."); + e.self:Say("I cannot help but think that your presence and leadership are what made those missions such wonderful successes. I have been authorized to give you a field promotion for your valor and bravery in combat. You're ability to lead was the keystone in the success of those engagements. Welcome to the rank of Garrison Officer, "..e.other:GetCleanName().."!"); + e.self:Say("We can celebrate your promotion when we make it back to the rear. Right now, I need you to lead another set of missions into the grunt occupied territory. Speak to Captain Necin and show him the Soldier's chest that you've filled with the medals that you earned from the first set of raids. He will direct you through the next several mission. Once you have completed the missions, combine the Medallion of the Hero of Shar Vahl and your Officer's cloak in this Satchel. Take the Locked Satchel to Sergeant Cursah. He will assist you from that point forward."); + e.other:QuestReward(e.self, 0, 0, 0, 0, 17132); -- Security Satchel +end + +function event_trade(e) + local item_lib = require("items"); + + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 8471}, 0)) then -- Garrison Enlistment Forms + e.self:Say("Let's see, yes... yes... It looks like you signed everything in the correct spot. That can only mean that you're not only brave, but you have some wits as well. If you have all of your teeth and can stand on one leg until the count of five, I think we can make use of you."); + e.self:Say("Take this Polished Acrylia Sphere and give it to Scout Husman. He's been leading raiding parties against the grunt camps. Adventurers are great, but we need a real soldier to assist him this time. Perhaps we will get better results with your help."); + e.self:Say("After you complete that raid, please go with Scouts Danarin and Derrin. Once you secure those camps, bring me any grimling intelligence reports or documents that you may have found. Place the documents and your Garrison cloak in this bag and bring them back to me. Complete this task and you may even get a promotion."); + e.other:QuestReward(e.self,{items = {17130, 3681} } ); -- Garrison Field Pack, Polished Acrylia Sphere + + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 8480}, 0)) then -- Sealed Field Pack + FieldPackTurnIn(e); + e.other:QuestReward(e.self, 0, 0, 0, 0, 8414); -- Jharin Officers Cloak + + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 8483}, 0)) then -- Sealed Field Pack + FieldPackTurnIn(e); + e.other:QuestReward(e.self, 0, 0, 0, 0, 8415); -- Khati Sha Officers Cloak + + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 8481}, 0)) then -- Sealed Field Pack + FieldPackTurnIn(e); + e.other:QuestReward(e.self, 0, 0, 0, 0, 8416); -- Khala Dun Officers Cloak + + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 8472}, 0)) then -- Sealed Field Pack + FieldPackTurnIn(e); + e.other:QuestReward(e.self, 0, 0, 0, 0, 8417); -- Dar Khura Officers Cloak + + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 8482}, 0)) then -- Sealed Field Pack + FieldPackTurnIn(e); + e.other:QuestReward(e.self, 0, 0, 0, 0, 8418); -- Taruun Officers Cloak + end + + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/grimling/Captain_Necin.lua b/grimling/Captain_Necin.lua new file mode 100644 index 0000000..5002980 --- /dev/null +++ b/grimling/Captain_Necin.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". I'm looking for an accomplished soldier to help me carry out a very dangerous mission. If you know of one please have them report to me at once."); + elseif(e.message:findi("soldier")) then + e.self:Say("Very well, acquire a chest of valor and fill it with the medals you receive from scouts Husman, Danarin, and Derin. Give me the resulting soldier's chest and I will reveal the details of my mission."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if ( item_lib.check_turn_in(e.self, e.trade, {item1 = 4397}, 0) ) then -- Soldier's Chest + e.self:Say("Take this map and study it carefully. The mission we are preparing to embark upon will make your previous raids seem like child's play. Many friendly forces will need to help us to achieve our objectives, two dozen soldiers as powerful as me to be exact. When you have selected and briefed the troops that will carry out the offensive, give me the map and I will lead the assault."); + e.other:QuestReward(e.self,0,0,0,0,4398); -- Map of Grimling Forest + + elseif ( item_lib.check_turn_in(e.self, e.trade, {item1 = 4398}, 0) ) then -- Map of Grimling Forest + e.self:Say("Form up and follow me, I have an officer meeting us just outside the outpost. I'll finish briefing you all there."); + e.other:QuestReward(e.self,0,0,0,0,0,50000); + eq.unique_spawn(167689, 31, 0, e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- #Captain_Necin + eq.unique_spawn(167691, 0, 0, -489, -1075, 3.5, 224); -- #Sergeant_Jherum + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/grimling/General_Staginar.lua b/grimling/General_Staginar.lua new file mode 100644 index 0000000..d285817 --- /dev/null +++ b/grimling/General_Staginar.lua @@ -0,0 +1,45 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. " .. e.other:GetCleanName() .. ". Are you here to serve in the war against the grimling horde?"); + elseif(e.message:findi("i am here to serve in the war")) then + e.self:Say("As you probably know, we've been battling the grunts for nearly a generation now. They have proven to be a challenging opponent. We've inflicted great casualties upon their kind in this war, yet somehow, they seem to grow even more numerous. Barring some miracle, they will become a serious threat to Shar Vahl very soon. One remaining strategy has a chance of bringing us victory, but none have met the requirements for its implementation."); + elseif(e.message:findi("what requirements")) then + e.self:Say("Our intelligence has provided us with some information about the enemy. They blindly follow a being they refer to as 'the master'. Our high spiritists have sensed a powerful presence from the caverns beyond our mines, but only those who possess a special key can venture there. None who have obtained the key and ventured into the caverns have been seen alive again."); + elseif(e.message:findi("what key")) then + e.self:Say("The grimling high commander holds half of a magical acrylia obelisk that will transport the wielder to their master's stronghold. I have slain the high commander who held the other half of the obelisk and I have the knowledge of it's construction. I will only give it to one who has proven to be a powerful soldier, for nothing less would stand a chance against the enemy ruler."); + elseif(e.message:findi("what high commander")) then + e.self:Say("The grimling high commander will only appear if their compound to the north is overrun. There are two encampments near the compound that will need to be invaded as well in order to secure the area. It is a very complex mission and I will only authorize you to lead it if you have demonstrated competence. Serve our people by successfully completing the lesser raids here in the forest. Bring me the Golden Medal of the Shar Vahl as proof of your prowess, or, if you are already at least as powerful as I am, there is another test that will give me confidence in your abilities."); + elseif(e.message:findi("what test")) then + e.self:Say("If you are less experienced than I am, performing this task will gain you nothing. With that in mind, take this box and venture through the mines and into the caverns. Combine in it Gooplart's tooth, Gizgargank's scalp, Grikplag's skull, Gnildaria's eye, Gnerpokkel's heart, Gilgaplank's toes, the husk of the summoned burrower, and the shackles of a Vah Shir captive. Return to me with the Box of the Hero of Shar Vahl and I will send a team of our veterans to escort you into battle."); + e.other:SummonCursorItem(17867); -- Box of the General's Challenge + end +end + +function event_trade(e) + local item_lib = require("items"); + + if ( item_lib.check_turn_in(e.self, e.trade, { item1 = 6190 }, 0) ) then -- Box of the Hero of Shar Vahl + e.self:Say("Soldier, that's some fine work! The horde will not easily recover from the destruction you have inflicted upon their kind. You have earned an opportunity to wrestle the key from the grimling high commander. Take these orders to Veteran Cullin. If you can take possession of the grimling bases to the north and defeat the grimling high commander, return to me with his half of the obelisk and the battle orders. Show the grunts no mercy, "..e.other:GetCleanName().."! Good luck!"); + e.other:QuestReward(e.self, 0, 0, 0, 0, 6191); -- Staginar's Battle Orders + + elseif ( item_lib.check_turn_in(e.self, e.trade, { item1 = 5989 }, 0) ) then -- Golden Medal of the Shar Vahl + + -- note: what the General says from turning in the medal is unknown. Putting the box turn-in response here as a placeholder: + e.self:Say("Soldier, that's some fine work! The horde will not easily recover from the destruction you have inflicted upon their kind. You have earned an opportunity to wrestle the key from the grimling high commander. Take these orders to Veteran Cullin. If you can take possession of the grimling bases to the north and defeat the grimling high commander, return to me with his half of the obelisk and the battle orders. Show the grunts no mercy, "..e.other:GetCleanName().."! Good luck!"); + e.other:QuestReward(e.self, 0, 0, 0, 0, 6191); -- Staginar's Battle Orders + + elseif ( item_lib.check_turn_in(e.self, e.trade, { item1 = 6192 }, 0) ) then -- Acrylia Obelisk Half + e.self:Say(e.other:GetCleanName()..", your actions have earned you the respect of all Vah Shir. Upon your shoulders now rests the hope of our people. This hollow acrylia obelisk is the key that will gain you entry to the stronghold of the master of the grimling horde. Once there, you will need to collect enchanted pieces of acrylia from the enemy's vile minions. Once you have collected all five of them, you must place the obelisk into this smelting pot with the acrylia pieces. A special key will form inside that will grant you access to the deepest chamber of the stronghold."); + e.other:QuestReward(e.self, { items = { 5972, 17868 } } ); -- Hollow Acrylia Obelisk, Enchanted Acrylia Smelting Pot + + eq.set_timer("talk2", 20000); + else + item_lib.return_items(e.self, e.other, e.trade); + end +end + +function event_timer(e) + eq.stop_timer("talk2"); + + e.self:Say("No one knows what lie beyond, what dangers you may face, or what trials you must overcome. No one who has ventured into the stronghold has returned to inform us of the dangers it may hold. Now, more than ever, we pray for the spirits of our ancestors to watch over and protect you. Now, round up an army of your most skilled and trusted friends and rid us of this menace!'"); +end diff --git a/grimling/Merchant_Hamarr.lua b/grimling/Merchant_Hamarr.lua new file mode 100644 index 0000000..0ea0591 --- /dev/null +++ b/grimling/Merchant_Hamarr.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met, friend. May I be of assistance?"); + end +end diff --git a/grimling/Royal_Khala_Dun.lua b/grimling/Royal_Khala_Dun.lua new file mode 100644 index 0000000..0ea0591 --- /dev/null +++ b/grimling/Royal_Khala_Dun.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met, friend. May I be of assistance?"); + end +end diff --git a/grimling/Scout_Danarin.lua b/grimling/Scout_Danarin.lua new file mode 100644 index 0000000..ddac22f --- /dev/null +++ b/grimling/Scout_Danarin.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". Welcome to the front lines of our war against the bastard grimlings. As I'm sure you know, we Vah Shir shun violence, but with this enemy there is no other way. Let me know if you'd like to see some action."); + elseif(e.message:findi("see some action")) then + e.self:Emote("smiles, 'I can escort you to a camp rich with enemies. With my help you can take possession of their camp. They'll try desperately to reclaim their lost territory and, if we're lucky, an officer will show up. You'll want to bring about ten soldiers as powerful as me. When you're all here and ready for battle, give me a marbled acrylia sphere."); + end +end + +function event_trade(e) + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(167681) ) then -- ##Scout_Danarin + return; + end + + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4349}, 0)) then -- Marbled Acrylia Sphere + e.other:QuestReward(e.self,0,0,0,0,0,1000); + e.self:Say("May the spirits guide us "..e.other:GetCleanName()..". Now summon your friends and all the courage you possess, this won't be easy."); + eq.unique_spawn(167035,14,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- #Scout_Danarin + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/grimling/Scout_Derrin.lua b/grimling/Scout_Derrin.lua new file mode 100644 index 0000000..b9d3345 --- /dev/null +++ b/grimling/Scout_Derrin.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". What brings you to the battlegrounds? Looking to raid a grimling camp perhaps?"); + elseif(e.message:findi("looking to raid")) then + e.self:Say("I can lead a dozen men of my strength on a raid against a well fortified grimling encampment. It's a risky mission, but one that has the potential to yield substantial rewards. If you have the manpower and the courage, give me a glowing acrylia sphere and we'll get started."); + end +end + +function event_trade(e) + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(167682) ) then -- ##Scout_Derrin + return; + end + + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4376}, 0)) then -- Glowing Acrylia Sphere + e.other:QuestReward(e.self,0,0,0,0,0,1000); + e.self:Say("Draw your best weapons, memorize your most deadly spells and cast your best enhancements. Prepare yourselves for a fierce battle!"); + eq.unique_spawn(167036,15,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- #Scout_Derrin + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/grimling/Scout_Husman.lua b/grimling/Scout_Husman.lua new file mode 100644 index 0000000..6289aa3 --- /dev/null +++ b/grimling/Scout_Husman.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello " .. e.other:GetCleanName() .. ", It's a good day for a raid, wouldn't you agree?"); + elseif(e.message:findi("agree")) then + e.self:Say("Well, if you have the courage, round up about six people of my strength and, when you're ready to begin, give me a polished acrylia sphere. I'll lead you on a raid against a grimling camp not far from here. If we're strong enough to take over the camp there will be a good chance for treasure."); + elseif(e.message:findi("raid")) then + e.self:Say("'I know the way to a grimling camp close to here. If you have about six people of my strength we have a good chance of taking it over. With luck, a grimling officer will take part in their counterattack, and they can carry valuable treasure indeed. Fetch me a polished acrylia sphere and I'll guide you."); + end +end + +function event_trade(e) + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(167679) ) then -- ##Scout_Husman + return; + end + + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3681}, 0)) then -- Polished Acrylia Sphere + e.other:QuestReward(e.self,0,0,0,0,0,1000); + e.self:Say("Nothing better than killing grimlings for the king! Follow me closely and fight well. Make certain that I survive, for if I perish the mission will be a failure."); + eq.unique_spawn(167034,13,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- #Scout_Husman + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/grimling/Sergeant_Cursah.lua b/grimling/Sergeant_Cursah.lua new file mode 100644 index 0000000..0938a4b --- /dev/null +++ b/grimling/Sergeant_Cursah.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met, friend. May I be of assistance?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + -- the quest text for this NPC seems lost to history + + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 8473}, 0)) then -- Locked Satchel + e.other:QuestReward(e.self, 0, 0, 0, 0, 8419); -- Cloak of the Jharin Hero + + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 8476}, 0)) then -- Locked Satchel + e.other:QuestReward(e.self, 0, 0, 0, 0, 8420); -- Cloak of the Khati Sha Hero + + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 8477}, 0)) then -- Locked Satchel + e.other:QuestReward(e.self, 0, 0, 0, 0, 8421); -- Cloak of the Khala Dun Hero + + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 8478}, 0)) then -- Locked Satchel + e.other:QuestReward(e.self, 0, 0, 0, 0, 8422); -- Cloak of the Dar Khura Hero + + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 8479}, 0)) then -- Locked Satchel + e.other:QuestReward(e.self, 0, 0, 0, 0, 8423); -- Cloak of the Taruun Hero + end + + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/grimling/Sergeant_Tidwah.lua b/grimling/Sergeant_Tidwah.lua new file mode 100644 index 0000000..0ea0591 --- /dev/null +++ b/grimling/Sergeant_Tidwah.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met, friend. May I be of assistance?"); + end +end diff --git a/grimling/Spiritist_Darah.lua b/grimling/Spiritist_Darah.lua new file mode 100644 index 0000000..85da99c --- /dev/null +++ b/grimling/Spiritist_Darah.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", welcome to the war zone. I probably don't have to mention that these are dangerous times here. I pray to the spirits that they might reveal to me the path to victory over our enemy. Recently, I have begun to feel that the answer to my pleas will present itself in the near future."); + elseif(e.message:findi("answer")) then + e.self:Say("I have been blessed with a recurring vision lately, one in which a hero will overcome our enemy. He then discovers the answer to a question that has plagued our people for a generation."); + elseif(e.message:findi("question")) then + e.self:Say("The vision gets very cloudy and I have yet to interpret that portion of it. I hesitate to speculate as there are many questions that remain unanswered since our displacement to this world."); + end +end diff --git a/grimling/Spiritist_Roleko.lua b/grimling/Spiritist_Roleko.lua new file mode 100644 index 0000000..3a4802a --- /dev/null +++ b/grimling/Spiritist_Roleko.lua @@ -0,0 +1,39 @@ +-- Rakshasa Skulls + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings Traveler. If it is rest you seek then I'm sure you may rest safely within the walls of this outpost. As the sentries keep watch for physical danger I commune with the spirits of this territory to watch for less noticeable threats."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "I require both the crate of tortured vah shir skulls and the report from Roshawna." + local text2 = "I require the head of the possessed grimling and the skulls of the reanimated grimlings" + local text3 = "In order to perform the ritual I require the Amulet of Golden Rays, Black Flame Charcoal, Thought Leech Brain, and Materialization Ritual" + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31840,item2 = 31841}, 1, text1)) then -- Resealed Warded Iron Bound Chest, Roshawna's Report of Occurrences + e.self:Say("It was wise of Roshawna to send you to me instead of risk bringing something so tainted by the dark spirits within the walls of Shar Vahl. I shall begin the ritual immediately. What is that?! Look! There is a grimling heading this way followed by what appear to be grimling undead. Defend me while I perform the ritual. Give me the head of that grimling and the skulls of those undead!"); + e.other:Faction(e.self,1533,5); + e.other:QuestReward(e.self,0,0,0,0,0,1000); + eq.unique_spawn(167037,0,0,-956,-884,3,0):AddToHateList(e.other,1); + eq.spawn2(167038,0,0,-956,-893,5,0):AddToHateList(e.other,1); + eq.spawn2(167038,0,0,-956,-900,7,0):AddToHateList(e.other,1); + eq.spawn2(167038,0,0,-956,-907,10,0):AddToHateList(e.other,1); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31847,item2 = 31848,item3 = 31848,item4 = 31848}, 1, text2)) then -- Possessed Grimlings Head, Reanmiated Grimling Skull + e.self:Say("I am grateful for your assistance. I will be able to complete the rest of the ritual without danger now that the spirits in the skulls have been calmed. Please take this report of occurrences to Scribe Cholsa in Shar Vahl."); + e.other:Faction(e.self,1533,4); + e.other:QuestReward(e.self,0,0,0,0,31849,1000); -- Rolekos Report of Occurrences + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10777,item2 = 10778,item3 = 10779,item4 = 10915}, 1, text3)) then -- Amulet of Golden Rays, Black Flame Charcoal, Thought Leech Brain, Rakshasa Materialization Ritual + e.self:Say("I will need to maintain my concentration to keep the Rakshasa from escaping back into the spirit realm. If you kill him while he is materialized he will be slain and his body will remain material. Bring me the head of the Rakshasa when he is slain."); + e.other:Faction(e.self,1533,5); + e.other:QuestReward(e.self,0,0,0,0,0,1000); + eq.unique_spawn(167039,0,0,-967,-867,0,0):AddToHateList(e.other,1); -- Rakshasa Karwoaro + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10916}, 0)) then + e.self:Say("The threat of the Rakshasa appears to be eliminated. You have the gratitude of the Dar Khura for your bravery and assistance. Let us be wary however, the Rakshasa gained his power by allying with dark spirits that may not be indifferent to the Rakshasas death."); + e.other:Faction(e.self,1533,20); + e.other:QuestReward(e.self,0,0,0,0,31837,5000); -- Shield of Bane Warding + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/grimling/Veteran_Darznel.lua b/grimling/Veteran_Darznel.lua new file mode 100644 index 0000000..0ea0591 --- /dev/null +++ b/grimling/Veteran_Darznel.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met, friend. May I be of assistance?"); + end +end diff --git a/grimling/Veteran_Vadrel.lua b/grimling/Veteran_Vadrel.lua new file mode 100644 index 0000000..1b969d2 --- /dev/null +++ b/grimling/Veteran_Vadrel.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day, " .. e.other:GetCleanName() .. ". If you're interested in serving the war effort you can begin by speaking with one of the scouts here in the outpost. If you'll excuse me, I must return to making plans."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if ( item_lib.check_turn_in(e.self, e.trade, {item1 = 4396}, 0) ) then -- Silver Medal of War + e.self:Say("Just in time, ".. e.other:GetCleanName() ..". I have finished plans for an attack deep in enemy territory. I have had scouts gather information on two newly constructed grimling camps. These grunts need to be taught that they will not be allowed to spread across the surface of this world unchecked! Take these plans and study them. Keep them confidential. When you have gathered an army of at least two dozen loyal soldiers return the plans to me and we will begin."); + e.other:QuestReward(e.self,0,0,0,0,5987); -- Vadrel's Plans + + elseif ( item_lib.check_turn_in(e.self, e.trade, {item1 = 5987}, 0) ) then -- Vadrel's Plans + e.self:Say("You know the drill by now, "..e.other:GetName()..". Order your people to make ready for war! Follow me."); + e.other:QuestReward(e.self,0,0,0,0,0,50000); + eq.unique_spawn(167701, 36, 0, e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- #Veteran_Vadrel + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/grimling/an_imprisoned_grimling.lua b/grimling/an_imprisoned_grimling.lua new file mode 100644 index 0000000..05f3386 --- /dev/null +++ b/grimling/an_imprisoned_grimling.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks up at you through wild eyes, 'You help me, I tell you things! I no lie! You not kill me. I beg. Things I know, you will see.' "); + elseif(e.message:findi("things")) then + e.self:Say("Big catman in jail we have. I got key. I give you key and you not kill me. I beg!"); + elseif(e.message:findi("key")) then + e.self:Say("Take, take, I trust. You no kill me now. Hurry, locks change soon!"); + e.other:SummonCursorItem(5976); -- Forked Prison Key + end +end diff --git a/grimling/encounters/Danarin.lua b/grimling/encounters/Danarin.lua new file mode 100644 index 0000000..748579c --- /dev/null +++ b/grimling/encounters/Danarin.lua @@ -0,0 +1,275 @@ +local GOVERNOR_TYPE = 167604; -- GovernorTwo +local TOWN_CAT_TYPE = 167202; -- Scout_Danarin +local TOWN_CAT_SPAWNID = 334759; +local WALKING_CAT_TYPE = 167035; -- #Scout_Danarin +local ROOTED_CAT_TYPE = 167681; -- ##Scout_Danarin +local FLAG_ID = 69; + +local OFFICER_TYPE = 167032; +local FIGHTR_TYPE = 167030; +local MANACRAFTER_TYPE = 167027; +local DEATHBRINGER_TYPE = 167029; -- this is a warrior. Sony design error? +local PRIEST_TYPE = 167678; +local CADAVERIST_TYPE = 167028; +local HERBALIST_TYPE = 167680; + +local GRIMLING_TYPES = { OFFICER_TYPE, FIGHTR_TYPE, MANACRAFTER_TYPE, DEATHBRINGER_TYPE, PRIEST_TYPE, CADAVERIST_TYPE, HERBALIST_TYPE }; + +local CAMP_SPAWN_IDS = { 335007, 335008, 335009, 335010, 335011, 335012, 335013, 335014, 335015, 335016 }; + +local SPAWNS = { -- these NPCs are level 23-27 + { + x = 360, y = -1042, z = 11, -- 1:00 + types = { FIGHTR_TYPE, MANACRAFTER_TYPE, DEATHBRINGER_TYPE, PRIEST_TYPE }, + grid = 25 -- x:455, y:-1215, z:10 + }, + { + x = 319, y = -1365, z = 45, -- 4:30 + types = { FIGHTR_TYPE, MANACRAFTER_TYPE, DEATHBRINGER_TYPE }, + grid = 25 -- x:455, y:-1215, z:10 + }, + { + x = 593, y = -1315, z = 34, -- 7:30 + types = { FIGHTR_TYPE, MANACRAFTER_TYPE, DEATHBRINGER_TYPE, PRIEST_TYPE, CADAVERIST_TYPE, HERBALIST_TYPE }, + grid = 25 -- x:455, y:-1215, z:10 + }, + { + x = 549, y = -1101, z = 8, -- 10:30 + types = { FIGHTR_TYPE, MANACRAFTER_TYPE, DEATHBRINGER_TYPE, PRIEST_TYPE, CADAVERIST_TYPE }, + grid = 25 -- x:455, y:-1215, z:10 + }, +}; + +local victory = false; + +function SignalEvent(e) + + if ( e.signal == 1 ) then + + local cat = eq.get_entity_list():GetNPCByNPCTypeID(WALKING_CAT_TYPE); + eq.spawn2(ROOTED_CAT_TYPE, 0, 0, cat:GetX(), cat:GetY(), cat:GetZ(), cat:GetHeading()); + eq.depop_all(WALKING_CAT_TYPE); + eq.set_timer("start", 30000); + FlipFlags(true); + eq.spawn_condition("grimling", 2, 0); -- disable camp respawns + + elseif ( e.signal == 2 ) then + eq.stop_timer("wave"); + FlipFlags(false); + eq.spawn_condition("grimling", 2, 1); -- enable camp respawns + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(TOWN_CAT_TYPE) ) then + if ( victory ) then + eq.get_entity_list():GetSpawnByID(TOWN_CAT_SPAWNID):SetTimer(1); + victory = false; + end + end + + elseif ( e.signal == 3 ) then + DepopCamps(); + eq.set_timer("repop", 1000); + end +end + +function TimerEvent(e) + if ( e.timer == "wave" ) then + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(ROOTED_CAT_TYPE) ) then + SpawnWave(); + else + eq.stop_timer("wave"); + end + elseif ( e.timer == "start" ) then + eq.stop_timer("start"); + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(ROOTED_CAT_TYPE) ) then + SpawnWave(); + eq.set_timer("wave", 100000 + math.random(1, 10) * 1000); + end + elseif ( e.timer == "repop" ) then + eq.stop_timer("repop"); + RepopCamps(); + end +end + +-- returns a table of a random number of integers from 1 to range with no more than 2 of the same number +function GetRandomsMaxTwo(range, num) + local t = {}; + local roll, found; + repeat + roll = math.random(1, range); + found = 0; + for i = 1, #t do + if ( t[i] == roll ) then + found = found + 1; + end + end + if ( found < 2 ) then + table.insert(t, roll); + end + until #t == num; + return t; +end + +function SpawnWave() + local spawn, spawnType, mob, officerSpawn; + local t = GetRandomsMaxTwo(#SPAWNS, math.random(2, 5)); + + if ( math.random(100) <= 5 ) then + officerSpawn = math.random(1, #t); + end + + for idx, spawnPoint in ipairs(t) do + spawn = SPAWNS[spawnPoint]; + + if ( officerSpawn == idx ) then + spawnType = OFFICER_TYPE; + else + spawnType = spawn.types[math.random(1, #spawn.types)]; + end + + mob = eq.spawn2(spawnType, spawn.grid, 0, spawn.x, spawn.y, spawn.z, 0); + mob:SetRunning(true); + end + + -- keep town cat timer at 30 minutes so it doesn't respawn mid-event + eq.get_entity_list():GetSpawnByID(TOWN_CAT_SPAWNID):SetTimer(1800000); +end + +function DanarinDeath(e) + e.self:Shout("The evil ones have overcome us! I journey now to the spirit realm of our ancestors."); + eq.signal(GOVERNOR_TYPE, 2); +end + +function DanarinWaypointArrive(e) + if ( e.wp == 3 ) then + e.self:Say("As we approach the camp it's important that we remain silent. I'm sure you're aware of the advantages we gain with the element of surprise."); + elseif ( e.wp == 6 ) then + e.self:Say("Here we are, now half of you stay here with me and the other half quietly swing around to the ledge south of the camp. Make your final preparations and wait for my command. It is vitally important that I stay alive, the camp will fall to the grimlings if I am slain. Fight well friends."); + elseif ( e.wp == 9 ) then + eq.signal(GOVERNOR_TYPE, 1); + end +end + +function DanarinWaypointDepart(e) + if ( e.wp == 6 ) then + e.self:Shout("For the honor of the Vah Shir, Attack!"); + e.self:SetRunning(true); + eq.signal(GOVERNOR_TYPE, 3); + end +end + +function DanarinTimer(e) + if ( e.timer == "depop" ) then + eq.stop_timer("depop"); + eq.depop(); + + elseif ( e.timer == "pause" ) then + eq.stop_timer("pause"); + eq.set_timer("depop", 8000); + e.self:SetRunning(true); + e.self:MoveTo(261, -985, 7.2, 227, true); + end +end + +function DanarinTrade(e) + local item_lib = require("items"); + + if ( item_lib.check_turn_in(e.self, e.trade, {item1 = 4374}, 0) ) then -- Grimling Officer's Tooth + e.self:Say("Congratulations "..e.other:GetCleanName()..", this medal signifies that you have successfully completed a raid on this encampment. Continue conducting missions like this and we're certain to prevail over the enemy. Leave now, as this place will fall again into the hands of the enemy. May the spirits grant you good fortune!"); + e.other:QuestReward(e.self,0,0,0,0,4375,5000); -- Silver Lined Copper Medal of War + + victory = true; + eq.signal(GOVERNOR_TYPE, 2); + + -- spawn a non-rooted cat that runs away + local mob = eq.spawn2(WALKING_CAT_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + mob:SetSpecialAbility(24, 1); + mob:SetSpecialAbility(25, 1); + mob:SetSpecialAbility(35, 1); + mob:SetBodyType(11, false); + eq.set_timer("pause", 3000, mob); + + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- true == cat, false == grimling +function FlipFlags(state) + + local door; + + door = eq.get_entity_list():GetDoorsByDoorID(FLAG_ID); + if ( door ) then + if ( state ) then + door:ForceOpen(eq.get_entity_list():GetMobByNpcTypeID(GOVERNOR_TYPE)); + else + door:ForceClose(eq.get_entity_list():GetMobByNpcTypeID(GOVERNOR_TYPE)); + end + end +end + +function DepopCamps() + + local npcList = eq.get_entity_list():GetNPCList(); + + if ( npcList ) then + + local campHashMap = {}; + for _, id in ipairs(CAMP_SPAWN_IDS) do + campHashMap[id] = true; + end + + for npc in npcList.entries do + + if ( npc.valid and campHashMap[npc:GetSpawnPointID()] ) then + npc:Depop(true); -- depop with timer + end + end + end +end + +function RepopCamps() + + local elist = eq.get_entity_list(); + + for _, id in ipairs(CAMP_SPAWN_IDS) do + --eq.spawn_from_spawn2(id); + elist:GetSpawnByID(id):SetTimer(1); + end +end + +function GrimlingSpawn(e) + eq.set_timer("depop", 600000); +end + +function GrimlingTimer(e) + eq.depop(); +end + +function GrimlingCombat(e) + if ( e.joined ) then + if ( not eq.is_paused_timer("depop") ) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("Danarin", Event.timer, GOVERNOR_TYPE, TimerEvent); + eq.register_npc_event("Danarin", Event.signal, GOVERNOR_TYPE, SignalEvent); + eq.register_npc_event("Danarin", Event.waypoint_arrive, WALKING_CAT_TYPE, DanarinWaypointArrive); + eq.register_npc_event("Danarin", Event.waypoint_depart, WALKING_CAT_TYPE, DanarinWaypointDepart); + eq.register_npc_event("Danarin", Event.timer, WALKING_CAT_TYPE, DanarinTimer); + eq.register_npc_event("Danarin", Event.death, WALKING_CAT_TYPE, DanarinDeath); + eq.register_npc_event("Danarin", Event.death, ROOTED_CAT_TYPE, DanarinDeath); + eq.register_npc_event("Danarin", Event.trade, ROOTED_CAT_TYPE, DanarinTrade); + + for _, typeId in ipairs(GRIMLING_TYPES) do + eq.register_npc_event("Danarin", Event.spawn, typeId, GrimlingSpawn); + eq.register_npc_event("Danarin", Event.timer, typeId, GrimlingTimer); + eq.register_npc_event("Danarin", Event.combat, typeId, GrimlingCombat); + end + + eq.spawn_condition("grimling", 2, 1); -- enable camp respawns in case they are off due to zone crash or whatever +end diff --git a/grimling/encounters/Derrin.lua b/grimling/encounters/Derrin.lua new file mode 100644 index 0000000..90619c6 --- /dev/null +++ b/grimling/encounters/Derrin.lua @@ -0,0 +1,342 @@ +local GOVERNOR_TYPE = 167587; -- GovernorThree +local TOWN_CAT_TYPE = 167201; -- Scout_Derrin +local TOWN_CAT_SPAWNID = 334760; +local WALKING_CAT_TYPE = 167036; -- #Scout_Derrin +local ROOTED_CAT_TYPE = 167682; -- ##Scout_Derrin +local FLAG_ID = 70; + +local OFFICER_TYPE = 167033; +local MANACRAFTER_TYPE = 167683; +local DEATHBRINGER_TYPE = 167684; -- this is a warrior. Sony design error? +local PRIEST_TYPE = 167685; +local CADAVERIST_TYPE = 167686; +local HERBALIST_TYPE = 167687; +local SKULLCRACKER_TYPE = 167688; + +local GRIMLING_TYPES = { OFFICER_TYPE, MANACRAFTER_TYPE, DEATHBRINGER_TYPE, PRIEST_TYPE, CADAVERIST_TYPE, HERBALIST_TYPE, SKULLCRACKER_TYPE }; + +local CAMP_SPAWN_IDS = { 334995, 334996, 334997, 334998, 334999, 335000, 335001, 335002, 335003, 335004, 335005, 335006 }; + +local SPAWNS = { -- these NPCs are level 26-30 + { + x = 1229, y = -1160, z = 63, -- 8:00 + types = { PRIEST_TYPE, HERBALIST_TYPE }, + grid = 28 -- x:1072, y:-1077, 12.7; x:1064, y:-1052, z:15 + }, + { + x = 1270, y = -981, z = 26.6, -- 10:00 + types = { PRIEST_TYPE, DEATHBRINGER_TYPE, CADAVERIST_TYPE }, + grid = 29 -- x:1076, y:-1034, z:12.3; x:1064, y:-1052, z:15 + }, + { + x = 1090, y = -904, z = 16, -- 11:30 + types = { HERBALIST_TYPE, MANACRAFTER_TYPE }, + grid = 26 -- x:1064, y:-1052, z:15 + }, + { + x = 1028, y = -833, z = 15, -- north triple 1 + types = { CADAVERIST_TYPE, DEATHBRINGER_TYPE }, + grid = 26 -- x:1064, y:-1052, z:15 + }, + { + x = 986, y = -844, z = 21, -- north triple 2 + types = { CADAVERIST_TYPE, DEATHBRINGER_TYPE }, + grid = 27 -- x:1000, y:-915, z:20.9; x:1064, y:-1052, z:15 + }, + { + x = 948, y = -860, z = 24, -- north triple 3 + types = { DEATHBRINGER_TYPE }, + grid = 27 -- x:1000, y:-915, z:20.9; x:1064, y:-1052, z:15 + }, + { + x = 895, y = -1045, z = 62.27, -- east triple 1 + types = { MANACRAFTER_TYPE, HERBALIST_TYPE, SKULLCRACKER_TYPE }, + grid = 30 -- x:1000, y:-1100, 34.8; x:1064, y:-1052, z:15 + }, + { + x = 899, y = -1080, z = 63.76, -- east triple 2 + types = { MANACRAFTER_TYPE, SKULLCRACKER_TYPE }, + grid = 30 -- x:1000, y:-1100, 34.8; x:1064, y:-1052, z:15 + }, + { + x = 905, y = -1121, z = 66.1, -- east triple 3 + types = { MANACRAFTER_TYPE, SKULLCRACKER_TYPE }, + grid = 30 -- x:1000, y:-1100, 34.8; x:1064, y:-1052, z:15 + }, +}; + +local victory = false; +local cycle = 1; + +function SignalEvent(e) + + if ( e.signal == 1 ) then + + local cat = eq.get_entity_list():GetNPCByNPCTypeID(WALKING_CAT_TYPE); + eq.spawn2(ROOTED_CAT_TYPE, 0, 0, cat:GetX(), cat:GetY(), cat:GetZ(), cat:GetHeading()); + eq.depop_all(WALKING_CAT_TYPE); + eq.set_timer("start", 30000); + FlipFlags(true); + eq.spawn_condition("grimling", 3, 0); -- disable camp respawns + + elseif ( e.signal == 2 ) then + eq.stop_timer("wave"); + FlipFlags(false); + eq.spawn_condition("grimling", 3, 1); -- enable camp respawns + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(TOWN_CAT_TYPE) ) then + if ( victory ) then + eq.get_entity_list():GetSpawnByID(TOWN_CAT_SPAWNID):SetTimer(1); + victory = false; + cycle = 1; + end + end + + elseif ( e.signal == 3 ) then + DepopCamps(); + eq.set_timer("repop", 1000); + end +end + +function TimerEvent(e) + if ( e.timer == "wave" ) then + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(ROOTED_CAT_TYPE) ) then + + if ( cycle == 3 ) then + eq.set_timer("wave", 60000 + math.random(1, 10) * 1000); + elseif ( cycle == 4 ) then + eq.set_timer("wave", 35000 + math.random(1, 10) * 1000); + elseif ( cycle == 5 ) then + eq.set_timer("wave", 100000 + math.random(1, 10) * 1000); + end + SpawnWave(); + + cycle = cycle + 1; + if ( cycle > 5 ) then + cycle = 1; + end + else + eq.stop_timer("wave"); + end + elseif ( e.timer == "start" ) then + eq.stop_timer("start"); + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(ROOTED_CAT_TYPE) ) then + SpawnWave(); + cycle = cycle + 1; + eq.set_timer("wave", 78000); + end + elseif ( e.timer == "repop" ) then + eq.stop_timer("repop"); + RepopCamps(); + end +end + +-- returns a table of a random number of integers from 1 to range with no duplicates +function GetRandoms(range, num) + local t = {}; + local roll, found; + repeat + roll = math.random(1, range); + found = false; + for i = 1, #t do + if ( t[i] == roll ) then + found = true; + break; + end + end + if ( not found ) then + table.insert(t, roll); + end + until #t == num; + return t; +end + +function SpawnWave() + local spawn, spawnType, mob, officerSpawn, t; + local extras = math.random(0, 2); + if ( extras > 0 ) then + t = GetRandoms(3, extras); + else + t = {}; + end + + if ( cycle == 2 or cycle == 5 ) then + -- north triple + if ( extras > 0 ) then -- if wave spawns alone, only spawns 2, weirdly + table.insert(t, 4); + end + table.insert(t, 5); + table.insert(t, 6); + else + -- east triple + table.insert(t, 7); + table.insert(t, 8); + table.insert(t, 9); + end + + if ( math.random(100) <= 5 ) then + officerSpawn = true; + end + + for idx, spawnPoint in ipairs(t) do + if ( spawnPoint > 0 ) then + spawn = SPAWNS[spawnPoint]; + + if ( officerSpawn and (spawnPoint == 5 or spawnPoint == 8) ) then + spawnType = OFFICER_TYPE; + else + spawnType = spawn.types[math.random(1, #spawn.types)]; + end + + mob = eq.spawn2(spawnType, spawn.grid, 0, spawn.x, spawn.y, spawn.z, 0); + mob:SetRunning(true); + end + end + + -- keep town cat timer at 30 minutes so it doesn't respawn mid-event + eq.get_entity_list():GetSpawnByID(TOWN_CAT_SPAWNID):SetTimer(1800000); +end + +function DerrinDeath(e) + e.self:Shout("We are overcome! May the spirits accept my efforts and find me worthy!"); + eq.signal(GOVERNOR_TYPE, 2); +end + +function DerrinWaypointArrive(e) + if ( e.wp == 4 ) then + e.self:Say("Follow me closely, we cannot afford for anyone to get lost."); + elseif ( e.wp == 6 ) then + e.self:Say("I must survive this invasion in order for it to be successful. Stay alert and make certain that I do not perish! When you are ready to bring our invasion to a close hand me the eye of an officer."); + elseif ( e.wp == 7 ) then + e.self:Say("The target camp is just over this ridge to the west. Half of you stay here and make your last minute preparations. Listen, and when you hear my command, charge the camp. The other half of you follow me now."); + elseif ( e.wp == 8 ) then + e.self:Say("Ready yourselves for battle friends. When I shout the order, attack the camp and cut down every last grimling. May the spirits be with us!"); + elseif ( e.wp == 11 ) then + e.self:Say("I remind you, keep me alive to retain possession of the camp. When you want the assault to end, pluck the eye from a grimling officer and give it to me."); + eq.signal(GOVERNOR_TYPE, 1); + end +end + +function DerrinWaypointDepart(e) + if ( e.wp == 8 ) then + e.self:Shout("In the name of King Raja, we cleanse this land of the grimling scourge! Attack!"); + e.self:SetRunning(true); + eq.signal(GOVERNOR_TYPE, 3); + end +end + +function DerrinTimer(e) + if ( e.timer == "depop" ) then + eq.stop_timer("depop"); + eq.depop(); + + elseif ( e.timer == "pause" ) then + eq.stop_timer("pause"); + eq.set_timer("depop", 8000); + e.self:SetRunning(true); + e.self:MoveTo(865, -1152, 36, 174, true); + end +end + +function DerrinTrade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4377}, 0)) then -- Grimling Officer's Eye + e.self:Say("Excellent! Completing a raid upon this encampment is a feat to be proud of. May this medal dispell all doubt that you have indeed accomplished this feat. I advise you to leave now, as this area will surely be taken over by the enemy at any moment."); + e.other:QuestReward(e.self,0,0,0,0,4378,5000); -- Gold Lined Copper Medal of War + victory = true; + eq.signal(GOVERNOR_TYPE, 2); + + -- spawn a non-rooted cat that runs away + local mob = eq.spawn2(WALKING_CAT_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + mob:SetSpecialAbility(24, 1); + mob:SetSpecialAbility(25, 1); + mob:SetSpecialAbility(35, 1); + mob:SetBodyType(11, false); + eq.set_timer("pause", 3000, mob); + + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- true == cat, false == grimling +function FlipFlags(state) + + local door; + + door = eq.get_entity_list():GetDoorsByDoorID(FLAG_ID); + if ( door ) then + if ( state ) then + door:ForceOpen(eq.get_entity_list():GetMobByNpcTypeID(GOVERNOR_TYPE)); + else + door:ForceClose(eq.get_entity_list():GetMobByNpcTypeID(GOVERNOR_TYPE)); + end + end +end + +function DepopCamps() + + local npcList = eq.get_entity_list():GetNPCList(); + + if ( npcList ) then + + local campHashMap = {}; + for _, id in ipairs(CAMP_SPAWN_IDS) do + campHashMap[id] = true; + end + + for npc in npcList.entries do + + if ( npc.valid and campHashMap[npc:GetSpawnPointID()] ) then + npc:Depop(true); -- depop with timer + end + end + end +end + +function RepopCamps() + + local elist = eq.get_entity_list(); + + for _, id in ipairs(CAMP_SPAWN_IDS) do + --eq.spawn_from_spawn2(id); + elist:GetSpawnByID(id):SetTimer(1); + end +end + +function GrimlingSpawn(e) + eq.set_timer("depop", 600000); +end + +function GrimlingTimer(e) + eq.depop(); +end + +function GrimlingCombat(e) + if ( e.joined ) then + if ( not eq.is_paused_timer("depop") ) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("Derrin", Event.timer, GOVERNOR_TYPE, TimerEvent); + eq.register_npc_event("Derrin", Event.signal, GOVERNOR_TYPE, SignalEvent); + eq.register_npc_event("Derrin", Event.waypoint_arrive, WALKING_CAT_TYPE, DerrinWaypointArrive); + eq.register_npc_event("Derrin", Event.waypoint_depart, WALKING_CAT_TYPE, DerrinWaypointDepart); + eq.register_npc_event("Derrin", Event.timer, WALKING_CAT_TYPE, DerrinTimer); + eq.register_npc_event("Derrin", Event.death, WALKING_CAT_TYPE, DerrinDeath); + eq.register_npc_event("Derrin", Event.death, ROOTED_CAT_TYPE, DerrinDeath); + eq.register_npc_event("Derrin", Event.trade, ROOTED_CAT_TYPE, DerrinTrade); + + for _, typeId in ipairs(GRIMLING_TYPES) do + eq.register_npc_event("Derrin", Event.spawn, typeId, GrimlingSpawn); + eq.register_npc_event("Derrin", Event.timer, typeId, GrimlingTimer); + eq.register_npc_event("Derrin", Event.combat, typeId, GrimlingCombat); + end + + eq.spawn_condition("grimling", 3, 1); -- enable camp respawns in case they are off due to zone crash or whatever +end diff --git a/grimling/encounters/GrimlingWar.lua b/grimling/encounters/GrimlingWar.lua new file mode 100644 index 0000000..3dd6e90 --- /dev/null +++ b/grimling/encounters/GrimlingWar.lua @@ -0,0 +1,766 @@ +DEBUG_MODE = false; +ONE_THOUSAND = 1000; +if ( DEBUG_MODE ) then + ONE_THOUSAND = 100; +end +local WAR_SPAWN_TYPES = { 167666, 167663, 167667, 167664, 167668, 167665 }; + +local GRIMLING_SPAWNS = { + { -- Main Camp; grid end loc: -1109, 1076, 3 + { x = -1082, y = 1211, z = 23.9, h = 202, g = 17 }, + { x = -1203, y = 1074, z = 19.96, h = 202, g = 17 }, + { x = -941, y = 1192, z = 37.5, h = 202, g = 17 }, + { x = -946, y = 1078, z = 58, h = 202, g = 17 }, + { x = -910, y = 1101, z = 59, h = 202, g = 17, hc = true }, + { x = -1163, y = 1192, z = 30.46, h = 202, g = 17 }, + { x = -1095, y = 942, z = 55.5, h = 202, g = 17 }, + { x = -1034, y = 933, z = 37.3, h = 202, g = 17 }, + }, + { -- Fhelik camp; grid loc: -731, 385, -15 + { x = -844, y = 206, z = 30, h = 247, g = 18 }, + { x = -796, y = 187, z = 36, h = 247, g = 18 }, + { x = -632, y = 361, z = 29, h = 247, g = 18 }, + { x = -760, y = 176, z = 45, h = 247, g = 18 }, + { x = -649, y = 394, z = 28, h = 247, g = 18 }, + { x = -628, y = 338, z = 25, h = 247, g = 18 }, + }, + { -- Kufur camp; grid loc: -1244, 509, 41 + { x = -1074, y = 447, z = 19, h = 2, g = 19 }, + { x = -1318, y = 466, z = 45, h = 2, g = 19 }, + { x = -1295, y = 407, z = 44, h = 2, g = 19 }, + { x = -1079, y = 420, z = 15, h = 2, g = 19 }, + { x = -1132, y = 369, z = 11, h = 2, g = 19 }, + { x = -1091, y = 393, z = 14, h = 2, g = 19 }, + } +}; +local HIGH_COMMANDER_TYPE = 167669; +local CULLIN0_TYPE = 167196; +local CULLIN1_TYPE = 167670; +local CULLIN2_TYPE = 167671; +local FHELIK1_TYPE = 167673; +local FHELIK2_TYPE = 167676; +local KUFUR1_TYPE = 167674; +local KUFUR2_TYPE = 167677; +local SHIKTAN1_TYPE = 167672; +local SHIKTAN2_TYPE = 167675; +local CULLIN_SPAWNID = 334767; +local EVENT_GOVERNOR_TYPE = 167621; -- always-up invisible man NPC that keeps track of event timers; using 'GovernorTen' but can be easily changed + +local ROOTED_SPAWNS = { + [CULLIN2_TYPE] = { x = -1100, y = 1099, z = 1, h = 51 }, + [FHELIK2_TYPE] = { x = -731, y = 385, z = -15, h = 115 }, + [KUFUR2_TYPE] = { x = -1244, y = 509, z = 41, h = 101 }, + [SHIKTAN2_TYPE] = { x = -1094, y = 1040, z = 8, h = 42 }, +}; + +function CheckAllArrived() + if ( DEBUG_MODE ) then eq.zone_emote(7,": Cat Arrived ") end + + if ( cullinArrived and shiktanArrived and fhelikArrived and kufurArrived and phase == 1 ) then + if ( DEBUG_MODE ) then eq.zone_emote(7,": --- All Arrived --- ") end + + if ( not cullin:IsEngaged() and not shiktan:IsEngaged() and not fhelik:IsEngaged() and not kufur:IsEngaged() ) then + eq.signal(EVENT_GOVERNOR_TYPE, 1); + end + end +end + +local MOVES = { + [CULLIN1_TYPE] = { + { x = -1051, y = -946, z = 27, h = 113, stop = true, arriveFunc = function(e) + e.self:Say("Men, here is the army that General Staginar has appointed to attempt this invasion. They have demonstrated enough competence for him to trust them with our lives."); + eq.set_timer("talk1", 45 * ONE_THOUSAND, shiktan); + end }, + { x = -888, y = -1011, z = 2.2, h = 15 }, + { x = -762, y = -680, z = 63.6, h = 4 }, + { x = -732, y = -375, z = -5.5, h = 6 }, + { x = -724, y = -326, z = 11.9, h = 24 }, + { x = -348, y = 169, z = 23.7, h = 2, arriveFunc = function(e) + e.self:Say("This is the most difficult mission in the forest, the grimlings will fight intensely to regain it. I remind you, I must survive for this mission to be a success. If I or any of my troops die we will have failed to meet the objective. Give me the high commander's arm to bring the invasion to a close."); + end }, + { x = -349, y = 519, z = 37.6, h = 2 }, + { x = -326, y = 781, z = -1.4, h = 18 }, + { x = -295, y = 871, z = 24.8, h = 232 }, + { x = -439, y = 1108, z = 27.7, h = 208 }, + { x = -791, y = 1246, z = 43, h = 187, stop = true, arriveFunc = function(e) + eq.set_timer("talk7", 10 * ONE_THOUSAND); + end }, + { x = -924, y = 1218, z = 34.9, h = 158 }, + { x = -954, y = 1185, z = 36.2, h = 173 }, + { x = -1066, y = 1129, z = 7.1, h = 195 }, + { x = -1163, y = 1127, z = 12.2, h = 131 }, + { x = -1166, y = 1076, z = 6.1, h = 63 }, + { x = -1112, y = 1077, z = 0.7, h = 23 }, + { x = -1100, y = 1099, z = 1, h = 51, arriveFunc = function(e) + cullinArrived = true; + CheckAllArrived(); + end }, + }, + [FHELIK1_TYPE] = { + { x = -888, y = -1011, z = 2.2, h = 15 }, + { x = -762, y = -680, z = 63.6, h = 4 }, + { x = -874, y = -278, z = -28.7, h = 225, arriveFunc = function(e) + e.self:Say("Cullin is a revered leader, a true hero of our people. If anyone can bring us victory it is he."); + end }, + { x = -874, y = 55, z = 8.7, h = 6 }, + { x = -838, y = 246, z = 31, h = 32, stop = true }, + { x = -731, y = 385, z = -15, h = 115, arriveFunc = function(e) + fhelikArrived = true; + CheckAllArrived(); + end }, + }, + + [KUFUR1_TYPE] = { + { x = -888, y = -1011, z = 2.2, h = 15 }, + { x = -762, y = -680, z = 63.6, h = 4 }, + { x = -853, y = -338, z = -23.4, h = 230, arriveFunc = function(e) + e.self:Say("Cullin is a revered leader, a true hero of our people. If anyone can bring us victory it is he."); + end }, + { x = -1265, y = 248, z = 57, h = 257, stop = true }, + { x = -1264, y = 535, z = 39.8, h = 249 }, + { x = -1183, y = 482, z = 39, h = 15 }, + { x = -1244, y = 509, z = 41, h = 101, arriveFunc = function(e) + kufurArrived = true; + CheckAllArrived(); + end }, + }, + + [SHIKTAN1_TYPE] = { + { x = -888, y = -1011, z = 2.2, h = 15 }, + { x = -762, y = -680, z = 63.6, h = 4 }, + { x = -732, y = -375, z = -5.5, h = 6 }, + { x = -724, y = -326, z = 11.9, h = 24 }, + { x = -348, y = 169, z = 23.7, h = 2, arriveFunc = function(e) + e.self:Say("Cullin is a revered leader, a true hero of our people. If anyone can bring us victory it is he."); + end }, + { x = -363, y = 519, z = 35.8, h = 2 }, + { x = -527, y = 773, z = 23.9, h = 206 }, + { x = -750, y = 868, z = 3, h = 213, stop = true }, + { x = -1082, y = 1073, z = 7.3, h = 196 }, + { x = -1169, y = 1074, z = 7.1, h = 4 }, + { x = -1161, y = 1130, z = 12.7, h = 50 }, + { x = -1074, y = 1127, z = 3.3, h = 135 }, + { x = -1094, y = 1040, z = 8, h = 42, arriveFunc = function(e) + shiktanArrived = true; + CheckAllArrived(); + end }, + }, +} + +local CAMP_SPAWNIDS = { + 334892, 334893, 334894, 334895, 334896, 334897, 334898, 334899, 334900, 334901, 334902, 334903, 334904, 334905, 334906, 334907, + 334908, 334909, 334910, 334911, 334912, 334913, 334914, 334915, 334916, 334917, 334918, 334919, 334920, 334921, 334922, 334923, + 334924, 334925, 334926, 334927, 334928, 334929, 334930, 334931, 334932, 334933, 334934, 334935, 334936, 334937, 334938, 334939, + 334940, 334941, 334942, 334943, 334944, 334945 +}; + +local currentMove = { + [CULLIN1_TYPE] = 0, + [FHELIK1_TYPE] = 0, + [KUFUR1_TYPE] = 0, + [SHIKTAN1_TYPE] = 0 +}; +local lastStop = { + [CULLIN1_TYPE] = 0, + [FHELIK1_TYPE] = 0, + [KUFUR1_TYPE] = 0, + [SHIKTAN1_TYPE] = 0 +}; +phase = 0; +cullin, fhelik, kufur, shiktan = 0, 0, 0, 0; +local victory = false; +cullinArrived = false; +shiktanArrived = false; +fhelikArrived = false; +kufurArrived = false; + +function Move(mob, moveN) + + local typeID = mob:GetNPCTypeID(); + + if ( not moveN ) then + moveN = currentMove[typeID]; -- move back to previous stopped waypoint or the WP we were going to + elseif ( moveN == "next" ) then + moveN = currentMove[typeID] + 1; -- move to next WP + end + + currentMove[typeID] = moveN; + + if ( MOVES[typeID][moveN] ) then + local coords = MOVES[typeID][moveN]; + mob:CastToNPC():MoveTo(coords.x, coords.y, coords.z, coords.h, true); + end +end + +function DepopCamps() + + if ( DEBUG_MODE ) then eq.zone_emote(7,": Depoping Camps ") end + + local npcList = eq.get_entity_list():GetNPCList(); + + if ( npcList ) then + + local campHashMap = {}; + for _, id in ipairs(CAMP_SPAWNIDS) do + campHashMap[id] = true; + end + + for npc in npcList.entries do + + if ( npc.valid and campHashMap[npc:GetSpawnPointID()] ) then + npc:Depop(true); -- depop with timer + end + end + end +end + +function RepopCamps() + + if ( DEBUG_MODE ) then eq.zone_emote(7,": Repoping Camps ") end + + local elist = eq.get_entity_list(); + + for _, id in ipairs(CAMP_SPAWNIDS) do + --eq.spawn_from_spawn2(id); + elist:GetSpawnByID(id):SetTimer(1); + end +end + +-- true == cat, false == grimling +function FlipFlags(state) + + local door; + + for i = 76, 78 do + door = eq.get_entity_list():GetDoorsByDoorID(i); + if ( door ) then + if ( state ) then + door:ForceOpen(eq.get_entity_list():GetMobByNpcTypeID(EVENT_GOVERNOR_TYPE)); + else + door:ForceClose(eq.get_entity_list():GetMobByNpcTypeID(EVENT_GOVERNOR_TYPE)); + end + end + end + +end + +function GetRandoms(range, num) + local t = {}; + local roll, found; + repeat + roll = math.random(1, range); + found = false; + for i = 1, #t do + if ( t[i] == roll ) then + found = true; + break; + end + end + if ( not found ) then + table.insert(t, roll); + end + until #t == num; + return t; +end + +function SpawnWave() + + if ( DEBUG_MODE ) then eq.zone_emote(7,": Wave Spawn ") end + + local mob, typeID, t, coords; + local waveSize = math.random(3, 5); + + for campIdx, camp in ipairs(GRIMLING_SPAWNS) do + + if ( campIdx == 1 ) then + t = GetRandoms(#camp, waveSize + 1); + else + t = GetRandoms(#camp, waveSize); + end + + for _, coordIdx in ipairs(t) do + + coords = camp[coordIdx]; + typeID = WAR_SPAWN_TYPES[math.random(1, #WAR_SPAWN_TYPES)]; + + if ( coords.hc and math.random(100) <= 3 ) then -- ~41.7 minutes avg; 3% wave, ~75s between waves avg + typeID = HIGH_COMMANDER_TYPE; + if ( DEBUG_MODE ) then eq.zone_emote(7,": --- High Commander Spawn --- ") end + end + + mob = eq.spawn2(typeID, coords.g, 0, coords.x, coords.y, coords.z, coords.h); + mob:SetRunning(true); + + -- TAKP's mob 'search for players to kill' timer is short, which trivializes this event if you sit on spawn points + -- so this is here to make mobs sometimes run past players who sit in the run paths + if ( not coords.hc ) then + if ( math.random(100) <= 15 ) then + mob:SetAggroRange(1); + elseif ( math.random(100) <= 15 ) then + mob:SetAssistRange(5); + end + end + end + end +end + +function DisableCat(cat) + if ( not cat or not cat.valid or cat:GetHP() < 1 ) then -- SetBodyType() crashes the zone if mob is dead + return; + end + cat:Heal(); + cat:SetSpecialAbility(24, 1); -- Will Not Aggro + cat:SetSpecialAbility(25, 1); -- Immune to Aggro + cat:SetSpecialAbility(35, 1); -- No Harm from Players + cat:SetBodyType(11, false); -- NoTarget + cat:WipeHateList(); +end + +function WarSignalEvent(e) + + if ( e.signal == 1 ) then + if ( DEBUG_MODE ) then eq.zone_emote(7,": --- Phase 2 Start --- ") end + phase = 2; + + -- poof moving cats, spawn perma rooted versions + local loc = ROOTED_SPAWNS[CULLIN2_TYPE]; + cullin = eq.spawn2(CULLIN2_TYPE, 0, 0, loc.x, loc.y, loc.z, loc.h); + loc = ROOTED_SPAWNS[FHELIK2_TYPE]; + fhelik = eq.spawn2(FHELIK2_TYPE, 0, 0, loc.x, loc.y, loc.z, loc.h); + loc = ROOTED_SPAWNS[KUFUR2_TYPE]; + kufur = eq.spawn2(KUFUR2_TYPE, 0, 0, loc.x, loc.y, loc.z, loc.h); + loc = ROOTED_SPAWNS[SHIKTAN2_TYPE]; + shiktan = eq.spawn2(SHIKTAN2_TYPE, 0, 0, loc.x, loc.y, loc.z, loc.h); + + eq.depop_all(CULLIN1_TYPE); + eq.depop_all(FHELIK1_TYPE); + eq.depop_all(KUFUR1_TYPE); + eq.depop_all(SHIKTAN1_TYPE); + if ( DEBUG_MODE ) then + cullin:CastToNPC():AddItem(2661, 1, true); -- no rent uber swords + shiktan:CastToNPC():AddItem(2661, 1, true); + fhelik:CastToNPC():AddItem(2661, 1, true); + kufur:CastToNPC():AddItem(2661, 1, true); + end + + FlipFlags(true); + + eq.set_timer("spawn", 60000); + eq.spawn_condition("grimling", 6, 0); -- disable camp respawns + + elseif ( e.signal == 2 ) then + if ( DEBUG_MODE ) then eq.zone_emote(7,": --- Phase 3 Start --- ") end + eq.stop_timer("spawn"); + + if ( victory ) then + eq.set_timer("cleanup", 300000); + DisableCat(cullin); + DisableCat(shiktan); + DisableCat(kufur); + DisableCat(fhelik); + else + eq.set_timer("cleanup", 10000); + end + if ( phase == 2 ) then + eq.set_timer("repop", 305000); + end + phase = 3; + end +end + +function WarTimerEvent(e) + if ( e.timer == "spawn" ) then + SpawnWave(); + local t = (eq.ChooseRandom(40, 65, 105) + math.random(1, 10)) * 1000; + eq.set_timer("spawn", t); + + elseif ( e.timer == "cleanup" ) then + eq.stop_timer("cleanup"); + eq.stop_timer("spawn"); + phase = 0; + cullinArrived = false; + shiktanArrived = false; + fhelikArrived = false; + kufurArrived = false; + if ( victory ) then + FlipFlags(false); + end + victory = false; + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(CULLIN0_TYPE) ) then + eq.spawn_from_spawn2(CULLIN_SPAWNID); + end + eq.spawn_condition("grimling", 6, 1); -- enable camp respawns + eq.depop(CULLIN1_TYPE); + eq.depop(CULLIN2_TYPE); + eq.depop(FHELIK1_TYPE); + eq.depop(FHELIK2_TYPE); + eq.depop(KUFUR1_TYPE); + eq.depop(KUFUR2_TYPE); + eq.depop(SHIKTAN1_TYPE); + eq.depop(SHIKTAN2_TYPE); + currentMove = { + [CULLIN1_TYPE] = 0, + [FHELIK1_TYPE] = 0, + [KUFUR1_TYPE] = 0, + [SHIKTAN1_TYPE] = 0 + }; + lastStop = { + [CULLIN1_TYPE] = 0, + [FHELIK1_TYPE] = 0, + [KUFUR1_TYPE] = 0, + [SHIKTAN1_TYPE] = 0 + }; + + if ( DEBUG_MODE ) then eq.zone_emote(7,": --- Grimling War Reset --- ") end + + elseif ( e.timer == "repop" ) then + eq.stop_timer("repop"); + RepopCamps(); + end +end + +function WarFailed(e) + if ( DEBUG_MODE ) then eq.zone_emote(7,": War Failure"); end + + if ( phase == 2 ) then + e.self:Shout("Nooo! Our hopes are lost! The grunts have survived the invasion..."); + + if ( fhelik.valid and fhelik:GetHP() > 0 ) then + fhelik:Say("One of my comrades has perished! The invasion has failed. Leave this place at once, the grimlings will overrun the camp at any moment!"); + end + if ( kufur.valid and kufur:GetHP() > 0 ) then + kufur:Say("One of my comrades has perished! The invasion has failed. Leave this place at once, the grimlings will overrun the camp at any moment!"); + end + if ( shiktan.valid and shiktan:GetHP() > 0 ) then + shiktan:Say("One of my comrades has perished! The invasion has failed. Leave this place at once, the grimlings will overrun the camp at any moment!"); + end + if ( cullin.valid and cullin:GetHP() > 0 ) then + cullin:Say("One of my comrades has perished! The invasion has failed. Leave this place at once, the grimlings will overrun the camp at any moment!"); + end + elseif ( phase == 1 ) then + -- some of these may be wrong + if ( cullin.valid and cullin:GetHP() > 0 ) then + cullin:Say("At least one of my troops have perished. We have failed!"); + end + if ( fhelik.valid and fhelik:GetHP() > 0 ) then + fhelik:Say("At least one of my comrades have fallen to the enemy. We have failed!"); + end + if ( kufur.valid and kufur:GetHP() > 0 ) then + kufur:Say("At least one of my comrades have fallen to the enemy. We have failed!"); + end + if ( shiktan.valid and shiktan:GetHP() > 0 ) then + shiktan:Say("At least one of my comrades have fallen to the enemy. We have failed!"); + end + end + + FlipFlags(false); + eq.signal(EVENT_GOVERNOR_TYPE, 2); + + if ( DEBUG_MODE ) then + eq.depop(); -- make sure no-rent swords poof in case debug mode gets pushed to live on accident + end +end + +function WarSuccess() + if ( DEBUG_MODE ) then eq.zone_emote(7,": War Victory") end + + -- unknown if they all say this or just Shiktan + if ( fhelik.valid ) then + fhelik:Say("Hoorah!! We've done it! The grimling high commander has been vanquished! Leave this place now, friends. The grimlings will be returning soon to exact their revenge..."); + end + if ( kufur.valid ) then + kufur:Say("Hoorah!! We've done it! The grimling high commander has been vanquished! Leave this place now, friends. The grimlings will be returning soon to exact their revenge..."); + end + if ( shiktan.valid ) then + shiktan:Say("Hoorah!! We've done it! The grimling high commander has been vanquished! Leave this place now, friends. The grimlings will be returning soon to exact their revenge..."); + end + victory = true; + eq.signal(EVENT_GOVERNOR_TYPE, 2); +end + +function Cullin0Hail(e) + if ( e.message:findi("hail") ) then + e.self:Emote("Veteran Cullin nods at you in acknowledgement, '"..e.other:GetCleanName()..", you're welcome to enjoy the sanctuary we have established here, but the safety we provide comes at a price. You must take up arms and join in the war against the grimlings. Take what you need and rest up, then get out there and make a dent in the numbers of their horde!"); + end +end + +function Cullin1Hail(e) + if ( e.message:findi("hail") ) then + e.self:Say("Pay attention, "..e.other:GetCleanName()..". Your complete focus must be on my orders."); + end +end + +function Cullin0Trade(e) + local item_lib = require("items"); + + if ( item_lib.check_turn_in(e.self, e.trade, { item1 = 6191 }, 0) ) then -- Staginar's Battle Orders + e.self:Say("Finally! An army with the courage to bring these scum to their knees! I pray that you have the numbers and the prowess to match your heart or we'll be fed to the grunts for dinner tonight. The general instructed me to ready my troops when he gave you his orders, follow me and I'll brief you all together."); + e.other:QuestReward(e.self, 0, 0, 0, 0, 0, 25 * ONE_THOUSAND); + + eq.set_timer("beginwar", 20 * ONE_THOUSAND); + else + item_lib.return_items(e.self, e.other, e.trade); + end +end + +function Cullin2Trade(e) + local item_lib = require("items"); + + if ( item_lib.check_turn_in(e.self, e.trade, { item1 = 6270 }, 0) ) then -- Arm of the Grimling High Commander + e.self:Say(e.other:GetCleanName().."! you've surpassed my most optimistic hopes and conquered the grimling stronghold. Please accept this medallion as a token of the gratitude of all Vah Shir. The Jharin will tell tales of your victory as long as our people exist. Your name shall be held in reverence from this day forward. Take the piece of the acrylia obelisk back to the general and he will isntuct you further. It has been an honor serving with you, farewell!"); + + e.other:QuestReward(e.self, 0, 0, 0, 0, 6271); -- Medallion of the Hero of Shar Vahl + e.other:QuestReward(e.self, 0, 0, 0, 0, 6192); -- Acrylia Obelisk Half + + WarSuccess(); + else + item_lib.return_items(e.self, e.other, e.trade); + end +end + +function ReturnItemsTrade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade); +end + +function Cullin0Timer(e) + if ( e.timer == "beginwar" ) then + eq.stop_timer("beginwar"); + phase = 1; + if ( DEBUG_MODE ) then eq.zone_emote(7,": --- Phase 1 Start --- ") end + victory = false; + + cullin = eq.spawn2(CULLIN1_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + fhelik = eq.spawn2(FHELIK1_TYPE, 0, 0, -1033, -959, 24, 192); + kufur = eq.spawn2(KUFUR1_TYPE, 0, 0, -1044, -974, 28, 242); + shiktan = eq.spawn2(SHIKTAN1_TYPE, 0, 0, -1060, -968, 31, 38); + + if ( DEBUG_MODE ) then + cullin:SetRunning(true); + shiktan:SetRunning(true); + fhelik:SetRunning(true); + kufur:SetRunning(true); + cullin:CastToNPC():AddItem(2661, 1, true); -- no rent uber swords + shiktan:CastToNPC():AddItem(2661, 1, true); + fhelik:CastToNPC():AddItem(2661, 1, true); + kufur:CastToNPC():AddItem(2661, 1, true); + end + + Move(cullin, 1); + + eq.set_timer("endevent", 10800000, cullin); -- 3 hours to finish phase 1 or event resets; in case event bugs out + eq.depop(); + end +end + +function Cullin1Timer(e) + + if ( e.timer == "movenext" ) then + eq.stop_timer("movenext"); + Move(e.self, "next"); + + elseif ( e.timer == "talk2" ) then + eq.stop_timer("talk2"); + e.self:Say("Orders are orders Shiktan, now let's get to work. Kufur, what are your findings?"); + eq.set_timer("talk1", 47 * ONE_THOUSAND, kufur); + + elseif ( e.timer == "talk3" ) then + eq.stop_timer("talk3"); + e.self:Say("It is about as I expected. Fhelik, you'll lead the raid upon the smaller camp south of the stronghold. Kufur, you will assault the larger camp. Shiktan and I will lead the invasion into the stronghold itself. Fhelik, take who you need and make your way to the attack position."); + eq.set_timer("talk1", 47 * ONE_THOUSAND, fhelik); + + elseif ( e.timer == "talk4" ) then + eq.stop_timer("talk4"); + e.self:Say("Kufur, take some soldiers and depart to your attack position. Take only the troops you need, we'll be hard pressed to take the stronghold with the rest.."); + eq.set_timer("talk2", 47 * ONE_THOUSAND, kufur); + + elseif ( e.timer == "talk5" ) then + eq.stop_timer("talk5"); + e.self:Say("Half of you that remain follow Shiktan and the rest protect me. Be well Shik, and no matter what the outcome I'll look forward to seeing you when it's over."); + eq.set_timer("talk2", 47 * ONE_THOUSAND, shiktan); + + elseif ( e.timer == "talk6" ) then + eq.stop_timer("talk6"); + e.self:Say("Follow me closely, friends, and pray for success, for courage alone will not bring us the victory we so desperately seek."); + eq.set_timer("move2", 10 * ONE_THOUSAND); + + elseif ( e.timer == "talk7" ) then + eq.stop_timer("talk7"); + e.self:Say("All should be in position now. Make your final preparations, this will be a bloody battle indeed!"); + shiktan:Say("The attack will commence soon, make ready!"); + fhelik:Say("The attack will commence soon, make ready!"); + kufur:Say("The attack will commence soon, make ready!"); + eq.set_timer("talk8", 47 * ONE_THOUSAND); + + elseif ( e.timer == "talk8" ) then + eq.stop_timer("talk8"); + e.self:Emote("raises his sword above his head and shouts, 'In honor of all who have fallen to the grimling scourge, I claim this land in the name of the king!'"); + eq.set_timer("talk9", 140 * ONE_THOUSAND); + eq.set_timer("campdepop", 139 * ONE_THOUSAND); + + elseif ( e.timer == "campdepop" ) then + eq.stop_timer("campdepop"); + eq.set_timer("camprepop", 1000); + DepopCamps(); + + elseif ( e.timer == "camprepop" ) then + eq.stop_timer("camprepop"); + RepopCamps(); + + elseif ( e.timer == "talk9" ) then + eq.stop_timer("talk9"); + e.self:Shout("Let the cleansing begin!"); + fhelik:Say("You heard him! Cut them down!"); + kufur:Say("Cleave them!"); + shiktan:Emote("growls a fierce battlecry and dashes into the deadly grimling stronghold."); + cullin:SetRunning(true); + shiktan:SetRunning(true); + fhelik:SetRunning(true); + kufur:SetRunning(true); + Move(cullin, "next"); + Move(shiktan, "next"); + Move(fhelik, "next"); + Move(kufur, "next"); + + elseif ( e.timer == "move2" ) then + eq.stop_timer("move2"); + Move(cullin, "next"); + + elseif ( e.timer == "endevent" ) then + eq.signal(EVENT_GOVERNOR_TYPE, 2); + end + +end + +function Fhelik1Timer(e) + if ( e.timer == "movenext" ) then + eq.stop_timer("movenext"); + Move(e.self, "next"); + + elseif ( e.timer == "talk1" ) then + eq.stop_timer("talk1"); + e.self:Say("Well, there are eight of 'em there now and no telling how many they'll send to reclaim the camp once we've cleared it. Give me a handful of men and I'll fight 'til there's no breath left in me."); + eq.set_timer("talk4", 47 * ONE_THOUSAND, cullin); + eq.set_timer("move1", 10 * ONE_THOUSAND); + + elseif ( e.timer == "move1" ) then + eq.stop_timer("move1"); + Move(e.self, 1); + end +end + +function Kufur1Timer(e) + if ( e.timer == "movenext" ) then + eq.stop_timer("movenext"); + Move(e.self, "next"); + + elseif ( e.timer == "talk1" ) then + eq.stop_timer("talk1"); + e.self:Say("I've scouted the area and they're dug in pretty well. There are two camps just to the south of the stronghold, one with eight grunts and one with nearly twenty. I couldn't get too close to the stronghold itself, but I'd guess there are at least two dozen there."); + eq.set_timer("talk3", 47 * ONE_THOUSAND, cullin); + + elseif ( e.timer == "talk2" ) then + eq.stop_timer("talk2"); + e.self:Say("At least fifteen of you follow me! There's glory to be had!"); + eq.set_timer("talk5", 47 * ONE_THOUSAND, cullin); + eq.set_timer("move1", 10 * ONE_THOUSAND); + + elseif ( e.timer == "move1" ) then + eq.stop_timer("move1"); + Move(e.self, 1); + end +end + +function Shiktan1Timer(e) + if ( e.timer == "movenext" ) then + eq.stop_timer("movenext"); + Move(e.self, "next"); + + elseif ( e.timer == "talk1" ) then + eq.stop_timer("talk1"); + e.self:Say("They don't look like much Cullin, but any excuse to get out there and stick a few grunts is fine with me."); + eq.set_timer("talk2", 47 * ONE_THOUSAND, cullin); + + elseif ( e.timer == "talk2" ) then + eq.stop_timer("talk2"); + e.self:Say("Look sharp and keep up! There are grimlings just waiting to taste steel. It would be rude to keep them waiting!"); + eq.set_timer("talk6", 47 * ONE_THOUSAND, cullin); + eq.set_timer("move1", 10 * ONE_THOUSAND); + + elseif ( e.timer == "move1" ) then + eq.stop_timer("move1"); + Move(e.self, 1); + end +end + +function WaypointArrived(e) + + local t = e.self:GetNPCTypeID(); + if ( MOVES[t] and currentMove[t] and MOVES[t][currentMove[t]] and currentMove[t] > 0 ) then + + if ( MOVES[t][currentMove[t]].arriveFunc and lastStop[t] ~= currentMove[t] ) then + MOVES[t][currentMove[t]].arriveFunc(e); + end + + if ( MOVES[t][currentMove[t]].stop ) then + lastStop[t] = currentMove[t]; -- prevent arriveFunc from executing again if NPC aggros and resets + else + if ( MOVES[t][currentMove[t] + 1] ) then + eq.set_timer("movenext", 50); -- immediately moving to next point bugs it out; have to put a short timer here + end + end + end +end + +function CombatEvent(e) + if ( not e.joined ) then + Move(e.self); + end +end + +function event_encounter_load(e) + + eq.register_npc_event("GrimlingWar", Event.timer, EVENT_GOVERNOR_TYPE, WarTimerEvent); + eq.register_npc_event("GrimlingWar", Event.signal, EVENT_GOVERNOR_TYPE, WarSignalEvent); + + eq.register_npc_event("GrimlingWar", Event.say, CULLIN0_TYPE, Cullin0Hail); + eq.register_npc_event("GrimlingWar", Event.trade, CULLIN0_TYPE, Cullin0Trade); + eq.register_npc_event("GrimlingWar", Event.timer, CULLIN0_TYPE, Cullin0Timer); + + eq.register_npc_event("GrimlingWar", Event.timer, CULLIN1_TYPE, Cullin1Timer); + eq.register_npc_event("GrimlingWar", Event.timer, FHELIK1_TYPE, Fhelik1Timer); + eq.register_npc_event("GrimlingWar", Event.timer, KUFUR1_TYPE, Kufur1Timer); + eq.register_npc_event("GrimlingWar", Event.timer, SHIKTAN1_TYPE, Shiktan1Timer); + + eq.register_npc_event("GrimlingWar", Event.say, CULLIN1_TYPE, Cullin1Hail); + eq.register_npc_event("GrimlingWar", Event.trade, CULLIN2_TYPE, Cullin2Trade); + + eq.register_npc_event("GrimlingWar", Event.combat, CULLIN1_TYPE, CombatEvent); + eq.register_npc_event("GrimlingWar", Event.combat, SHIKTAN1_TYPE, CombatEvent); + eq.register_npc_event("GrimlingWar", Event.combat, FHELIK1_TYPE, CombatEvent); + eq.register_npc_event("GrimlingWar", Event.combat, KUFUR1_TYPE, CombatEvent); + + eq.register_npc_event("GrimlingWar", Event.trade, CULLIN1_TYPE, ReturnItemsTrade); + eq.register_npc_event("GrimlingWar", Event.trade, FHELIK1_TYPE, ReturnItemsTrade); + eq.register_npc_event("GrimlingWar", Event.trade, KUFUR1_TYPE, ReturnItemsTrade); + eq.register_npc_event("GrimlingWar", Event.trade, SHIKTAN1_TYPE, ReturnItemsTrade); + eq.register_npc_event("GrimlingWar", Event.trade, FHELIK2_TYPE, ReturnItemsTrade); + eq.register_npc_event("GrimlingWar", Event.trade, KUFUR2_TYPE, ReturnItemsTrade); + eq.register_npc_event("GrimlingWar", Event.trade, SHIKTAN2_TYPE, ReturnItemsTrade); + + eq.register_npc_event("GrimlingWar", Event.waypoint_arrive, CULLIN1_TYPE, WaypointArrived); + eq.register_npc_event("GrimlingWar", Event.waypoint_arrive, FHELIK1_TYPE, WaypointArrived); + eq.register_npc_event("GrimlingWar", Event.waypoint_arrive, KUFUR1_TYPE, WaypointArrived); + eq.register_npc_event("GrimlingWar", Event.waypoint_arrive, SHIKTAN1_TYPE, WaypointArrived); + + eq.register_npc_event("GrimlingWar", Event.death, CULLIN1_TYPE, WarFailed); + eq.register_npc_event("GrimlingWar", Event.death, FHELIK1_TYPE, WarFailed); + eq.register_npc_event("GrimlingWar", Event.death, KUFUR1_TYPE, WarFailed); + eq.register_npc_event("GrimlingWar", Event.death, SHIKTAN1_TYPE, WarFailed); + eq.register_npc_event("GrimlingWar", Event.death, CULLIN2_TYPE, WarFailed); + eq.register_npc_event("GrimlingWar", Event.death, FHELIK2_TYPE, WarFailed); + eq.register_npc_event("GrimlingWar", Event.death, KUFUR2_TYPE, WarFailed); + eq.register_npc_event("GrimlingWar", Event.death, SHIKTAN2_TYPE, WarFailed); + + eq.spawn_condition("grimling", 6, 1); -- enable camp respawns in case they are off due to zone crash or whatever +end diff --git a/grimling/encounters/Husman.lua b/grimling/encounters/Husman.lua new file mode 100644 index 0000000..c440c3f --- /dev/null +++ b/grimling/encounters/Husman.lua @@ -0,0 +1,301 @@ +local GOVERNOR_TYPE = 167608; -- GovernorOne +local TOWN_CAT_TYPE = 167203; -- Scout_Husman +local TOWN_CAT_SPAWNID = 334758; +local WALKING_CAT_TYPE = 167034; -- #Scout_Husman +local ROOTED_CAT_TYPE = 167679; -- ##Scout_Husman +local FLAG_ID = 68; + +local OFFICER_TYPE = 167031; +local FIGHTR_TYPE = 167030; +local MANACRAFTER_TYPE = 167027; +local DEATHBRINGER_TYPE = 167029; -- this is a warrior. Sony design error? +local PRIEST_TYPE = 167678; +local CADAVERIST_TYPE = 167028; +local HERBALIST_TYPE = 167680; + +local GRIMLING_TYPES = { OFFICER_TYPE, FIGHTR_TYPE, MANACRAFTER_TYPE, DEATHBRINGER_TYPE, PRIEST_TYPE, CADAVERIST_TYPE, HERBALIST_TYPE }; + +local CAMP_SPAWN_IDS = { 335018, 335019, 335020, 335021, 335022, 335023, 335024 }; + +local SPAWNS = { -- these NPCs are level 23-27 + { + x = -172, y = -1368, z = 29.8349, -- 5:30 + types = { FIGHTR_TYPE, MANACRAFTER_TYPE }, + grid = 21 -- x:-122, y:-1287, z:26.8; x:-110, y:-1197, z:-6 + }, + { + x = 97, y = -1379, z = 35, -- 7:30 + types = { FIGHTR_TYPE, DEATHBRINGER_TYPE }, + grid = 20 -- x:-110, y:-1197, z:-6 + }, + { + x = -132, y = -1362, z = 38.86533, -- 6:00 + types = { PRIEST_TYPE }, + grid = 20 -- x:-110, y:-1197, z:-6 + }, + { + x = -309, y = -1094, z = 22.42524, -- 2:00 + types = { PRIEST_TYPE, CADAVERIST_TYPE, MANACRAFTER_TYPE }, + grid = 20 -- x:-110, y:-1197, z:-6 + }, + { + x = -195, y = -1050, z = 23.59634, -- 1:00 + types = { MANACRAFTER_TYPE, CADAVERIST_TYPE }, + grid = 20 -- x:-110, y:-1197, z:-6 + }, + { + x = -82, y = -1035, z = -6.622699, -- 11:00 + types = { MANACRAFTER_TYPE, DEATHBRINGER_TYPE }, + grid = 20 -- x:-110, y:-1197, z:-6 + }, + { + x = 31, y = -1017, z = -11.44515, -- 10:00 + types = { CADAVERIST_TYPE, DEATHBRINGER_TYPE, HERBALIST_TYPE }, + grid = 22 -- x:-86, y:-1148, z:14; x:-110, y:-1197, z:-6 + }, + { + x = 101, y = -1156, z = 1.65121, -- 9:30 + types = { FIGHTR_TYPE, HERBALIST_TYPE }, + grid = 23 -- x:49, y:-1098, z:22.2; x:-69, y:-1116, z:25.9; x:-110, y:-1197, z:-6 + }, + { + x = 115, y = -1190, z = -0.05558467, -- 9:00 + types = { MANACRAFTER_TYPE, DEATHBRINGER_TYPE, CADAVERIST_TYPE }, + grid = 24 -- x:37, y:-1265, z:24.6; x:-110, y:-1197, z:-6 + }, +}; + +local victory = false; + +function SignalEvent(e) + + if ( e.signal == 1 ) then + + local cat = eq.get_entity_list():GetNPCByNPCTypeID(WALKING_CAT_TYPE); + eq.spawn2(ROOTED_CAT_TYPE, 0, 0, cat:GetX(), cat:GetY(), cat:GetZ(), cat:GetHeading()); + eq.depop_all(WALKING_CAT_TYPE); + eq.set_timer("start", 30000); + FlipFlags(true); + eq.spawn_condition("grimling", 1, 0); -- disable camp respawns + + elseif ( e.signal == 2 ) then + eq.stop_timer("wave"); + FlipFlags(false); + eq.spawn_condition("grimling", 1, 1); -- enable camp respawns + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(TOWN_CAT_TYPE) ) then + if ( victory ) then + eq.get_entity_list():GetSpawnByID(TOWN_CAT_SPAWNID):SetTimer(10000); -- spawn cat in town in 10s + victory = false; + end + end + + elseif ( e.signal == 3 ) then + DepopCamps(); + eq.set_timer("repop", 1000); + end +end + +function TimerEvent(e) + if ( e.timer == "wave" ) then + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(ROOTED_CAT_TYPE) ) then + SpawnWave(); + else + eq.stop_timer("wave"); + end + elseif ( e.timer == "start" ) then + eq.stop_timer("start"); + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(ROOTED_CAT_TYPE) ) then + SpawnWave(); + eq.set_timer("wave", 100000 + math.random(1, 10) * 1000); + end + elseif ( e.timer == "repop" ) then + eq.stop_timer("repop"); + RepopCamps(); + end +end + +-- returns a table of a random number of integers from 1 to range with no duplicates +function GetRandoms(range, num) + local t = {}; + local roll, found; + repeat + roll = math.random(1, range); + found = false; + for i = 1, #t do + if ( t[i] == roll ) then + found = true; + break; + end + end + if ( not found ) then + table.insert(t, roll); + end + until #t == num; + return t; +end + +function SpawnWave() + local spawn, spawnType, mob, officerSpawn; + local t = GetRandoms(#SPAWNS, math.random(2, 5)); + + if ( math.random(100) <= 5 ) then + officerSpawn = math.random(1, #t); + end + + for idx, spawnPoint in ipairs(t) do + spawn = SPAWNS[spawnPoint]; + + if ( officerSpawn == idx ) then + spawnType = OFFICER_TYPE; + else + spawnType = spawn.types[math.random(1, #spawn.types)]; + end + + mob = eq.spawn2(spawnType, spawn.grid, 0, spawn.x, spawn.y, spawn.z, 0); + mob:SetRunning(true); + end + + -- keep town cat timer at 30 minutes so it doesn't respawn mid-event + eq.get_entity_list():GetSpawnByID(TOWN_CAT_SPAWNID):SetTimer(1800000); +end + +function HusmanDeath(e) + e.self:Shout("My life is over, our mission has failed..."); + eq.signal(GOVERNOR_TYPE, 2); +end + +function HusmanWaypointArrive(e) + if ( e.wp == 4 ) then + e.self:Say("The camp is just ahead. To be safe, stay behind me until I give the word. Be silent and stay low... and may the spirits bless our effort."); + elseif ( e.wp == 5 ) then + e.self:Say("Here we are friends, prepare yourselves. I remind you to keep me alive or the mission will be a failure. At the hearing of my next words, follow me over this hill and slay every last grimling."); + elseif ( e.wp == 7 ) then + e.self:Say("Stay close and keep me alive, the grimlings are sure to try and reclaim their camp at any moment... Be prepared for battle. When you have slain an officer, give me its head to end the raid successfully."); + eq.signal(GOVERNOR_TYPE, 1); + end +end + +function HusmanWaypointDepart(e) + if ( e.wp == 5 ) then + e.self:Shout("For the king! We claim this land in defiance of the grimling menace! Death to you all!"); + e.self:SetRunning(true); + eq.signal(GOVERNOR_TYPE, 3); + end +end + +function HusmanTimer(e) + if ( e.timer == "depop" ) then + eq.stop_timer("depop"); + eq.depop(); + + elseif ( e.timer == "pause" ) then + eq.stop_timer("pause"); + eq.set_timer("depop", 8000); + e.self:SetRunning(true); + e.self:MoveTo(-325, -1083, 21.2, 219, true); + end +end + +function HusmanTrade(e) + local item_lib = require("items"); + + if ( item_lib.check_turn_in(e.self, e.trade, {item1 = 4327}, 0) ) then -- Grimling Officer's Scalp + e.self:Say("Well done " .. e.other:GetCleanName() .. "! Successful raids like this will bring you great glory among our people. Take this insignia as proof of your experience here in service of the king. Leave this place now, for it will be taken over by the enemy momentarily. Farewell!"); + e.other:QuestReward(e.self, 0, 0, 0, 0, 4393, 5000); -- Copper Medal of War + victory = true; + eq.signal(GOVERNOR_TYPE, 2); + + -- spawn a non-rooted cat that runs away + local mob = eq.spawn2(WALKING_CAT_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + mob:SetSpecialAbility(24, 1); + mob:SetSpecialAbility(25, 1); + mob:SetSpecialAbility(35, 1); + mob:SetBodyType(11, false); + eq.set_timer("pause", 3000, mob); + + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- true == cat, false == grimling +function FlipFlags(state) + + local door; + + door = eq.get_entity_list():GetDoorsByDoorID(FLAG_ID); + if ( door ) then + if ( state ) then + door:ForceOpen(eq.get_entity_list():GetMobByNpcTypeID(GOVERNOR_TYPE)); + else + door:ForceClose(eq.get_entity_list():GetMobByNpcTypeID(GOVERNOR_TYPE)); + end + end +end + +function DepopCamps() + + local npcList = eq.get_entity_list():GetNPCList(); + + if ( npcList ) then + + local campHashMap = {}; + for _, id in ipairs(CAMP_SPAWN_IDS) do + campHashMap[id] = true; + end + + for npc in npcList.entries do + + if ( npc.valid and campHashMap[npc:GetSpawnPointID()] ) then + npc:Depop(true); -- depop with timer + end + end + end +end + +function RepopCamps() + + local elist = eq.get_entity_list(); + + for _, id in ipairs(CAMP_SPAWN_IDS) do + --eq.spawn_from_spawn2(id); + elist:GetSpawnByID(id):SetTimer(1); + end +end + +function GrimlingSpawn(e) + eq.set_timer("depop", 600000); +end + +function GrimlingTimer(e) + eq.depop(); +end + +function GrimlingCombat(e) + if ( e.joined ) then + if ( not eq.is_paused_timer("depop") ) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("Husman", Event.timer, GOVERNOR_TYPE, TimerEvent); + eq.register_npc_event("Husman", Event.signal, GOVERNOR_TYPE, SignalEvent); + eq.register_npc_event("Husman", Event.waypoint_arrive, WALKING_CAT_TYPE, HusmanWaypointArrive); + eq.register_npc_event("Husman", Event.waypoint_depart, WALKING_CAT_TYPE, HusmanWaypointDepart); + eq.register_npc_event("Husman", Event.timer, WALKING_CAT_TYPE, HusmanTimer); + eq.register_npc_event("Husman", Event.death, WALKING_CAT_TYPE, HusmanDeath); + eq.register_npc_event("Husman", Event.death, ROOTED_CAT_TYPE, HusmanDeath); + eq.register_npc_event("Husman", Event.trade, ROOTED_CAT_TYPE, HusmanTrade); + + for _, typeId in ipairs(GRIMLING_TYPES) do + eq.register_npc_event("Husman", Event.spawn, typeId, GrimlingSpawn); + eq.register_npc_event("Husman", Event.timer, typeId, GrimlingTimer); + eq.register_npc_event("Husman", Event.combat, typeId, GrimlingCombat); + end + + eq.spawn_condition("grimling", 1, 1); -- enable camp respawns in case they are off due to zone crash or whatever +end diff --git a/grimling/encounters/Necin.lua b/grimling/encounters/Necin.lua new file mode 100644 index 0000000..952cdee --- /dev/null +++ b/grimling/encounters/Necin.lua @@ -0,0 +1,545 @@ +local GOVERNOR_TYPE = 167561; -- GovernorFour +local TOWN_CAT_TYPE = 167200; -- Captain_Necin +local TOWN_CAT_SPAWNID = 334761; +local NECIN_WALKING_CAT_TYPE = 167689; -- #Captain_Necin +local NECIN_ROOTED_CAT_TYPE = 167690; -- ##Captain_Necin +local JHERUM_WALKING_CAT_TYPE = 167691; -- #Sergeant_Jherum +local JHERUM_ROOTED_CAT_TYPE = 167692; -- ##Sergeant_Jherum +local FLAG1_ID = 72; +local FLAG2_ID = 73; + +local OFFICER_TYPE = 167699; +local SKULLCRACKER_TYPE = 167698; +local MANACRAFTER_TYPE = 167696; +local DEATHBRINGER_TYPE = 167694; -- this is a warrior. Sony design error? +local PRIEST_TYPE = 167697; +local CADAVERIST_TYPE = 167693; +local DREAMSPINNER_TYPE = 167695; -- this is a wizard. Sony design error? + +local GRIMLING_TYPES = { OFFICER_TYPE, MANACRAFTER_TYPE, DEATHBRINGER_TYPE, PRIEST_TYPE, CADAVERIST_TYPE, DREAMSPINNER_TYPE, SKULLCRACKER_TYPE }; + +local CAMP_SPAWN_IDS = { 334986, 334987, 334988, 334989, 334990, 334991, 334992, 334993, 334994, +334970, 334971, 334972, 334973, 334974, 334975, 334976, 334977, 334978, 334979, 334980, 334981, 334982, 334983, 334984, 334985 }; + +local SPAWNS = { -- these NPCs are level 30-34 + { -- 1 + x = 1142, y = 42, z = 80.9, -- Necin 12:00 + grid = 33 -- x:1147, y:-93, z:13 + }, + { -- 2 + x = 1048, y = 31, z = 100.5, -- Necin 1:00 + grid = 33 -- x:1147, y:-93, z:13 + }, + { -- 3 + x = 1004, y = -2, z = 91.5, -- Necin 1:30 + grid = 33 -- x:1147, y:-93, z:13 + }, + { -- 4 + x = 1015, y = -198, z = 6.8, -- Necin 4:00 + grid = 33 -- x:1147, y:-93, z:13 + }, + { -- 5 + x = 1003, y = -242, z = 11.8, -- Necin 4:30 + grid = 33 -- x:1147, y:-93, z:13 + }, + { -- 6 + x = 1037, y = -264, z = 39.2, -- Necin 5:00 + grid = 33 -- x:1147, y:-93, z:13 + }, + { -- 7 + x = 1174, y = -227, z = 46.1, -- Necin 6:30 + grid = 33 -- x:1147, y:-93, z:13 + }, + { -- 8 + x = 402, y = -534, z = 21.1, -- Jherum 1:30 + grid = 35 -- x:514, y: -672, z:-23.5; x:556, y:-684, z:-30.5 + }, + { -- 9 + x = 380, y = -687, z = -1.6, -- Jherum 3:00 + grid = 34 -- x:556, y:-684, z:-30.5 + }, + { -- 10 + x = 402, y = -755, z = -2.7, -- Jherum 4:00 + grid = 34 -- x:556, y:-684, z:-30.5 + }, + { -- 11 + x = 425, y = -789, z = 6, -- Jherum 4:30 + grid = 34 -- x:556, y:-684, z:-30.5 + }, + { -- 12 + x = 461, y = -820, z = 26, -- Jherum 5:00 + grid = 34 -- x:556, y:-684, z:-30.5 + }, + { -- 13 + x = 682, y = -679, z = -10, -- Jherum 9:00 + grid = 34 -- x:556, y:-684, z:-30.5 + }, + { -- 14 + x = 577, y = -522, z = -3, -- Jherum 11:30 + grid = 34 -- x:556, y:-684, z:-30.5 + }, + { -- 15 + x = 682, y = -679, z = -10, -- Jherum 9:00 to Necin; seems to be a Sony design error + grid = 33 -- x:1147, y:-93, z:13 + }, +}; +local WAVES = { + { + CADAVERIST_TYPE, 2, -- Necin 1:00 + OFFICER_TYPE, 3, -- Necin 1:30 + SKULLCRACKER_TYPE, 4, -- Necin 4:00 + DREAMSPINNER_TYPE, 5, -- Necin 4:30 + DREAMSPINNER_TYPE, 6, -- Necin 5:00 + PRIEST_TYPE, 7, -- Necin 6:30 + MANACRAFTER_TYPE, 9, -- Jherum 3:00 + PRIEST_TYPE, 10, -- Jherum 4:00 + MANACRAFTER_TYPE, 11, -- Jherum 4:30 + DREAMSPINNER_TYPE, 12, -- Jherum 5:00 + DEATHBRINGER_TYPE, 13, -- Jherum 9:00 + DEATHBRINGER_TYPE, 14, -- Jherum 11:30 + }, + { + MANACRAFTER_TYPE, 1, -- Necin 12:00 + MANACRAFTER_TYPE, 2, -- Necin 1:00 + MANACRAFTER_TYPE, 3, -- Necin 1:30 + MANACRAFTER_TYPE, 8, -- Jherum 1:30 + MANACRAFTER_TYPE, 9, -- Jherum 3:00 + PRIEST_TYPE, 13, -- Jherum 9:00 + MANACRAFTER_TYPE, 14, -- Jherum 11:30 + DREAMSPINNER_TYPE, 15, -- Jherum 9:00 to Necin + DREAMSPINNER_TYPE, 15, -- Jherum 9:00 to Necin + }, + { + CADAVERIST_TYPE, 4, -- Necin 4:00 + CADAVERIST_TYPE, 5, -- Necin 4:30 + DEATHBRINGER_TYPE, 6, -- Necin 5:00 + DEATHBRINGER_TYPE, 10, -- Jherum 4:00 + DEATHBRINGER_TYPE, 13, -- Jherum 9:00 + DEATHBRINGER_TYPE, 14, -- Jherum 11:30 + DREAMSPINNER_TYPE, 15, -- Jherum 9:00 to Necin + }, + { + MANACRAFTER_TYPE, 1, -- Necin 12:00 + SKULLCRACKER_TYPE, 2, -- Necin 1:00 + CADAVERIST_TYPE, 4, -- Necin 4:00 + CADAVERIST_TYPE, 5, -- Necin 4:30 + DEATHBRINGER_TYPE, 6, -- Necin 5:00 + PRIEST_TYPE, 7, -- Necin 6:30 + DREAMSPINNER_TYPE, 8, -- Jherum 1:30 + DEATHBRINGER_TYPE, 9, -- Jherum 3:00 + CADAVERIST_TYPE, 10, -- Jherum 4:00 + MANACRAFTER_TYPE, 11, -- Jherum 4:30 + SKULLCRACKER_TYPE, 12, -- Jherum 5:00 + SKULLCRACKER_TYPE, 15, -- Jherum 9:00 to Necin + }, + { + DEATHBRINGER_TYPE, 1, -- Necin 12:00 + CADAVERIST_TYPE, 2, -- Necin 1:00 + DEATHBRINGER_TYPE, 3, -- Necin 1:30 + DREAMSPINNER_TYPE, 8, -- Jherum 1:30 + DEATHBRINGER_TYPE, 9, -- Jherum 3:00 + }, + { + SKULLCRACKER_TYPE, 1, -- Necin 12:00 + SKULLCRACKER_TYPE, 2, -- Necin 1:00 + SKULLCRACKER_TYPE, 5, -- Necin 4:30 + SKULLCRACKER_TYPE, 6, -- Necin 5:00 + PRIEST_TYPE, 10, -- Jherum 4:00 + MANACRAFTER_TYPE, 11, -- Jherum 4:30 + SKULLCRACKER_TYPE, 12, -- Jherum 5:00 + }, + { + DEATHBRINGER_TYPE, 1, -- Necin 12:00 + CADAVERIST_TYPE, 2, -- Necin 1:00 + DEATHBRINGER_TYPE, 3, -- Necin 1:30 + DREAMSPINNER_TYPE, 8, -- Jherum 1:30 + DEATHBRINGER_TYPE, 9, -- Jherum 3:00 + }, + { + DEATHBRINGER_TYPE, 1, -- Necin 12:00 + PRIEST_TYPE, 2, -- Necin 1:00 + PRIEST_TYPE, 3, -- Necin 1:30 + CADAVERIST_TYPE, 4, -- Necin 4:00 + CADAVERIST_TYPE, 5, -- Necin 4:30 + DREAMSPINNER_TYPE, 6, -- Necin 5:00 + DEATHBRINGER_TYPE, 7, -- Necin 6:30 + PRIEST_TYPE, 10, -- Jherum 4:00 + SKULLCRACKER_TYPE, 11, -- Jherum 4:30 + DREAMSPINNER_TYPE, 12, -- Jherum 5:00 + DEATHBRINGER_TYPE, 13, -- Jherum 9:00 + MANACRAFTER_TYPE, 14, -- Jherum 11:30 + }, + { + MANACRAFTER_TYPE, 4, -- Necin 4:00 + PRIEST_TYPE, 5, -- Necin 4:30 + SKULLCRACKER_TYPE, 6, -- Necin 5:00 + PRIEST_TYPE, 13, -- Jherum 9:00 + SKULLCRACKER_TYPE, 14, -- Jherum 11:30 + }, + { + MANACRAFTER_TYPE, 2, -- Necin 1:00 + SKULLCRACKER_TYPE, 4, -- Necin 4:00 + DREAMSPINNER_TYPE, 5, -- Necin 4:30 + DREAMSPINNER_TYPE, 6, -- Necin 5:00 + SKULLCRACKER_TYPE, 10, -- Jherum 4:00 + SKULLCRACKER_TYPE, 11, -- Jherum 4:30 + DREAMSPINNER_TYPE, 12, -- Jherum 5:00 + DREAMSPINNER_TYPE, 13, -- Jherum 9:00 + SKULLCRACKER_TYPE, 15, -- Jherum 9:00 to Necin + }, +}; + +local victory = false; +local quickWave = false; + +function GovernorSignalEvent(e) + + if ( e.signal == 1 ) then + + local cat = eq.get_entity_list():GetNPCByNPCTypeID(NECIN_WALKING_CAT_TYPE); + eq.spawn2(NECIN_ROOTED_CAT_TYPE, 0, 0, cat:GetX(), cat:GetY(), cat:GetZ(), cat:GetHeading()); + eq.depop_all(NECIN_WALKING_CAT_TYPE); + eq.set_timer("start", 65000); + FlipFlags(true); + eq.spawn_condition("grimling", 4, 0); -- disable camp respawns + + elseif ( e.signal == 2 ) then + DepopCamps(); + eq.set_timer("repop", 1000); + + elseif ( e.signal == 3 ) then + eq.stop_timer("wave"); + eq.set_timer("reset", 90000); + + end +end + +function GovernorTimerEvent(e) + if ( e.timer == "wave" ) then + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(NECIN_ROOTED_CAT_TYPE) + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(JHERUM_ROOTED_CAT_TYPE) + ) then + SpawnWave(); + local t = 100000; + + -- this is not precise. didn't do the event long enough to determine the exact spawn timer pattern + if ( quickWave ) then + t = 40000; + quickWave = false; + else + local roll = math.random(100); + if ( roll <= 5 ) then + t = t * 2; -- skip a wave + elseif ( roll <= 15 ) then + t = 60000; + quickWave = true; + end + end + + t = t + math.random(1, 10) * 1000; + eq.set_timer("wave", t); + end + elseif ( e.timer == "start" ) then + eq.stop_timer("start"); + eq.set_timer("wave", 40000); + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(NECIN_ROOTED_CAT_TYPE) + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(JHERUM_ROOTED_CAT_TYPE) + ) then + SpawnWave(true); + end + elseif ( e.timer == "repop" ) then + eq.stop_timer("repop"); + RepopCamps(); + + elseif ( e.timer == "reset" ) then + eq.stop_timer("reset"); + + FlipFlags(false); + eq.spawn_condition("grimling", 4, 1); -- enable camp respawns + eq.depop_all(NECIN_ROOTED_CAT_TYPE); + eq.depop_all(JHERUM_ROOTED_CAT_TYPE); + eq.depop_all(NECIN_WALKING_CAT_TYPE); + eq.depop_all(JHERUM_WALKING_CAT_TYPE); + RepopCamps(); + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(TOWN_CAT_TYPE) ) then + if ( victory ) then + eq.get_entity_list():GetSpawnByID(TOWN_CAT_SPAWNID):SetTimer(1); + victory = false; + end + end + end +end + +function SpawnWave(noOfficer) + local spawn, spawnType, mob; + + if ( not noOfficer and math.random(100) <= 4 ) then + wave = 1; -- officer wave + else + wave = math.random(2, #WAVES); + end + + local i = 1, npc, spawn; + + while i < #WAVES[wave] do + + npc = WAVES[wave][i]; + spawn = WAVES[wave][i+1]; + + mob = eq.spawn2(npc, SPAWNS[spawn].grid, 0, SPAWNS[spawn].x, SPAWNS[spawn].y, SPAWNS[spawn].z, 0); + mob:SetRunning(true); + + i = i + 2; + end + + -- keep town cat timer at 30 minutes so it doesn't respawn mid-event + eq.get_entity_list():GetSpawnByID(TOWN_CAT_SPAWNID):SetTimer(1800000); +end + +function NecinDeath(e) + e.self:Shout("Our mission has failed. Curses upon the grimling horde!"); + eq.signal(GOVERNOR_TYPE, 3); + eq.signal(JHERUM_ROOTED_CAT_TYPE, 5); +end + +function NecinWaypointArrive(e) + if ( e.wp == 6 ) then + eq.signal(JHERUM_WALKING_CAT_TYPE, 1); + eq.set_timer("talk1", 30000); + elseif ( e.wp == 7 ) then + e.self:Say("There is no shame in dying for a worthy cause, friends. Remember this, never in history has freedom come without bloodshed. Fight well, and if it is our destiny, we shall prevail."); + elseif ( e.wp == 8 ) then + e.self:Say("If we succeed in overtaking their camp, keep watch for a grimling officer. When you are ready to end the mission, hand his toes to me."); + elseif ( e.wp == 9 ) then + e.self:Say("Some of you sneak around to the platform on the ledge to my left and when you hear my command, clear it of enemies. The rest of you make any last second preparations."); + elseif ( e.wp == 10 ) then + e.self:Say("It is time, ready yourselves for a ferocious battle!"); + eq.signal(JHERUM_WALKING_CAT_TYPE, 3); + elseif ( e.wp == 14 ) then + e.self:Say("They are certain to launch a deadly counterattack at any moment, make ready!"); + eq.signal(GOVERNOR_TYPE, 1); + end +end + +function NecinWaypointDepart(e) + if ( e.wp == 6 ) then + eq.signal(JHERUM_WALKING_CAT_TYPE, 2); + e.self:Say("Make your peace with the spirits, soldiers. Some of us probably won't be returning. Whatever happens, make certain Jherum and I survive to occupy the camps. Move out!"); + elseif ( e.wp == 10 ) then + e.self:Shout("May the forest river run red with the blood of grimlings! Attack!"); + e.self:SetRunning(true); + eq.signal(GOVERNOR_TYPE, 2); + eq.signal(JHERUM_WALKING_CAT_TYPE, 4); + end +end + +function NecinTimer(e) + if ( e.timer == "depop" ) then + eq.stop_timer("depop"); + eq.depop(); + + elseif ( e.timer == "talk1" ) then + eq.stop_timer("talk1"); + e.self:Say("It's too late to turn back, there's only one thing to do. Half of you go with Jherum, the stronger half follow me. We'll have to attack both camps simultaneously. I'll call the attack, so listen for my battlecry. Decide who will follow who, we depart in one minute."); + end +end + +function NecinTrade(e) + local item_lib = require("items"); + + if ( item_lib.check_turn_in(e.self, e.trade, {item1 = 4399}, 0) ) then -- Grimling Officer Toes + e.self:Say(e.other:GetCleanName().."! Against extraordinary odds you have completed a vital mission in the war against the Vah Shir! This medal is all I can offer you, but our people owe you much more. Hurry and leave this place, it will not be safe here for long. Farewell!"); + e.other:QuestReward(e.self, 0, 0, 0, 0, 4396, 5000); -- Silver Medal of War + + DisableCat(e.self); + victory = true; + eq.signal(GOVERNOR_TYPE, 3); + eq.signal(JHERUM_ROOTED_CAT_TYPE, 6); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function NecinSignalEvent(e) + if ( e.signal == 1 ) then + e.self:Say("Something has happened to Jherum, we have no chance of success. The mission has failed."); + elseif ( e.signal == 2 ) then + e.self:Say("It is over, friends. Grab your fallen and run, may you live to fight another day!"); + end + eq.set_timer("depop", 5000); +end + +function NecinHail(e) + if ( e.message:findi("hail") ) then + e.self:Say("Pay attention, "..e.other:GetCleanName().."! This is war!"); + end +end + +function JherumSignalEvent(e) + + if ( e.signal == 1 ) then + e.self:DoAnim(67); -- salute + e.self:Say("I've just returned from the camp and I have some alarming news. They've built another camp just southeast of the target. If we continue with the mission and attack the target, the little grunts at the new camp will surely conduct a sneak attack."); + elseif ( e.signal == 2 ) then + eq.set_timer("moveout", 12000); + elseif ( e.signal == 3 ) then + e.self:Say("Fight bravely men, the eyes of the spirit world are upon us! The captain will give the call at any moment, be ready!"); + elseif ( e.signal == 4 ) then + e.self:SetRunning(true); + e.self:ResumeWandering(); + elseif ( e.signal == 5 ) then + -- unknown what Jherum says here. using Necin's line + e.self:Say("It is over, friends. Grab your fallen and run, may you live to fight another day!"); + DisableCat(e.self); + elseif ( e.signal == 6 ) then + -- Jherum seems to say nothing on a victory? + DisableCat(e.self); + end +end + +function JherumDeath(e) + eq.signal(GOVERNOR_TYPE, 3); + + if ( e.self:GetNPCTypeID() == JHERUM_WALKING_CAT_TYPE ) then + eq.signal(NECIN_ROOTED_CAT_TYPE, 1); + eq.signal(NECIN_WALKING_CAT_TYPE, 1); + else + e.self:Shout("Captain, I have fallen, our mission has failed. Curses upon the grimling horde!"); + eq.signal(NECIN_ROOTED_CAT_TYPE, 2); + eq.signal(NECIN_WALKING_CAT_TYPE, 2); + end +end + +function JherumWaypointArrive(e) + if ( e.wp == 2 ) then + e.self:Say("Stay close now, if you get lost you'll be labelled a deserter. There is no greater dishonor than that."); + elseif ( e.wp == 3 ) then + e.self:Say("Make your final preparations here. The attack will begin shortly."); + elseif ( e.wp == 5 ) then + e.self:Say("Stay near and keep me breathing. If I fall the mission fails! Now replenish yourselves and set up lookouts."); + eq.spawn2(JHERUM_ROOTED_CAT_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + eq.depop_all(JHERUM_WALKING_CAT_TYPE); + end +end + +function JherumTimer(e) + if ( e.timer == "moveout" ) then + eq.stop_timer("moveout"); + e.self:AssignWaypoints(32); + end +end + +function DisableCat(cat) + if ( not cat or not cat.valid or cat:GetHP() < 1 ) then -- SetBodyType() crashes the zone if mob is dead + return; + end + cat:Heal(); + cat:SetSpecialAbility(24, 1); -- Will Not Aggro + cat:SetSpecialAbility(25, 1); -- Immune to Aggro + cat:SetSpecialAbility(35, 1); -- No Harm from Players + cat:SetBodyType(11, false); -- NoTarget + cat:WipeHateList(); +end + +-- true == cat, false == grimling +function FlipFlags(state) + + local door; + + door = eq.get_entity_list():GetDoorsByDoorID(FLAG1_ID); + if ( door ) then + if ( state ) then + door:ForceOpen(eq.get_entity_list():GetMobByNpcTypeID(GOVERNOR_TYPE)); + else + door:ForceClose(eq.get_entity_list():GetMobByNpcTypeID(GOVERNOR_TYPE)); + end + end + + door = eq.get_entity_list():GetDoorsByDoorID(FLAG2_ID); + if ( door ) then + if ( state ) then + door:ForceOpen(eq.get_entity_list():GetMobByNpcTypeID(GOVERNOR_TYPE)); + else + door:ForceClose(eq.get_entity_list():GetMobByNpcTypeID(GOVERNOR_TYPE)); + end + end +end + +function DepopCamps() + + local npcList = eq.get_entity_list():GetNPCList(); + + if ( npcList ) then + + local campHashMap = {}; + for _, id in ipairs(CAMP_SPAWN_IDS) do + campHashMap[id] = true; + end + + for npc in npcList.entries do + + if ( npc.valid and campHashMap[npc:GetSpawnPointID()] ) then + npc:Depop(true); -- depop with timer + end + end + end +end + +function RepopCamps() + + local elist = eq.get_entity_list(); + + for _, id in ipairs(CAMP_SPAWN_IDS) do + --eq.spawn_from_spawn2(id); + elist:GetSpawnByID(id):SetTimer(1); + end +end + +function GrimlingSpawn(e) + eq.set_timer("depop", 600000); +end + +function GrimlingTimer(e) + eq.depop(); +end + +function GrimlingCombat(e) + if ( e.joined ) then + if ( not eq.is_paused_timer("depop") ) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("Necin", Event.timer, GOVERNOR_TYPE, GovernorTimerEvent); + eq.register_npc_event("Necin", Event.signal, GOVERNOR_TYPE, GovernorSignalEvent); + + eq.register_npc_event("Necin", Event.say, NECIN_ROOTED_CAT_TYPE, NecinHail); + eq.register_npc_event("Necin", Event.waypoint_arrive, NECIN_WALKING_CAT_TYPE, NecinWaypointArrive); + eq.register_npc_event("Necin", Event.waypoint_depart, NECIN_WALKING_CAT_TYPE, NecinWaypointDepart); + eq.register_npc_event("Necin", Event.timer, NECIN_WALKING_CAT_TYPE, NecinTimer); + eq.register_npc_event("Necin", Event.timer, NECIN_ROOTED_CAT_TYPE, NecinTimer); + eq.register_npc_event("Necin", Event.death, NECIN_WALKING_CAT_TYPE, NecinDeath); + eq.register_npc_event("Necin", Event.death, NECIN_ROOTED_CAT_TYPE, NecinDeath); + eq.register_npc_event("Necin", Event.trade, NECIN_ROOTED_CAT_TYPE, NecinTrade); + eq.register_npc_event("Necin", Event.signal, NECIN_WALKING_CAT_TYPE, NecinSignalEvent); + eq.register_npc_event("Necin", Event.signal, NECIN_ROOTED_CAT_TYPE, NecinSignalEvent); + + eq.register_npc_event("Necin", Event.signal, JHERUM_WALKING_CAT_TYPE, JherumSignalEvent); + eq.register_npc_event("Necin", Event.signal, JHERUM_ROOTED_CAT_TYPE, JherumSignalEvent); + eq.register_npc_event("Necin", Event.waypoint_arrive, JHERUM_WALKING_CAT_TYPE, JherumWaypointArrive); + eq.register_npc_event("Necin", Event.waypoint_depart, JHERUM_WALKING_CAT_TYPE, JherumWaypointDepart); + eq.register_npc_event("Necin", Event.timer, JHERUM_WALKING_CAT_TYPE, JherumTimer); + eq.register_npc_event("Necin", Event.death, JHERUM_WALKING_CAT_TYPE, JherumDeath); + eq.register_npc_event("Necin", Event.death, JHERUM_ROOTED_CAT_TYPE, JherumDeath); + + for _, typeId in ipairs(GRIMLING_TYPES) do + eq.register_npc_event("Necin", Event.spawn, typeId, GrimlingSpawn); + eq.register_npc_event("Necin", Event.timer, typeId, GrimlingTimer); + eq.register_npc_event("Necin", Event.combat, typeId, GrimlingCombat); + end + + eq.spawn_condition("grimling", 4, 1); -- enable camp respawns in case they are off due to zone crash or whatever +end diff --git a/grimling/encounters/Vadrel.lua b/grimling/encounters/Vadrel.lua new file mode 100644 index 0000000..6edadfc --- /dev/null +++ b/grimling/encounters/Vadrel.lua @@ -0,0 +1,572 @@ +local GOVERNOR_TYPE = 167622; -- GovernorFive +local TOWN_CAT_TYPE = 167194; -- Veteran_Vadrel +local TOWN_CAT_SPAWNID = 334769; +local VADREL_WALKING_CAT_TYPE = 167701; -- #Veteran_Vadrel +local VADREL_ROOTED_CAT_TYPE = 167702; -- ##Veteran_Vadrel +local GERGIL_WALKING_CAT_TYPE = 167703; -- #Scout_Gergil +local GERGIL_ROOTED_CAT_TYPE = 167704; -- ##Scout_Gergil +local FLAG1_ID = 74; +local FLAG2_ID = 75; + +local COMMANDER_TYPE = 167700; +local BATTLELORD_TYPE = 167711; +local SKULLCRACKER_TYPE = 167709; -- unconfirmed if these are even in the event +local MANACRAFTER_TYPE = 167710; -- unconfirmed if these are even in the event +local DEATHBRINGER_TYPE = 167705; -- this is a SK +local PRIEST_TYPE = 167706; +local CADAVERIST_TYPE = 167707; +local DREAMSPINNER_TYPE = 167708; -- this is a wizard. Sony design error? + +local GRIMLING_TYPES = { COMMANDER_TYPE, MANACRAFTER_TYPE, DEATHBRINGER_TYPE, PRIEST_TYPE, CADAVERIST_TYPE, DREAMSPINNER_TYPE, SKULLCRACKER_TYPE }; + +local CAMP_SPAWN_IDS = { 334957, 334958, 334959, 334960, 334961, 334962, 334963, 334964, 334965, 334966, 334967, 334968, 334969, + 334946, 334947, 334948, 334949, 334950, 334951, 334952, 334953, 334954, 334955, 334956 }; + +local SPAWNS = { -- these NPCs are level 35-39 + { -- 1 + x = 24, y = 1051, z = 8.4, -- Vadrel 2:00 + grid = 39 -- x:130, y:985, z:-8.8 + }, + { -- 2 + x = -46, y = 1012, z = 7.8, -- Vadrel 2:30 + grid = 39 -- x:130, y:985, z:-8.8 + }, + { -- 3 + x = -52, y = 951, z = -1, -- Vadrel 3:30 + grid = 39 -- x:130, y:985, z:-8.8 + }, + { -- 4 + x = 1, y = 825, z = 4.9, -- Vadrel 4:30 + grid = 39 -- x:130, y:985, z:-8.8 + }, + { -- 5 + x = 43, y = 806, z = 5, -- Vadrel 5:00 + grid = 39 -- x:130, y:985, z:-8.8 + }, + { -- 6 + x = 111, y = 780, z = 7.5, -- Vadrel 6:00 + grid = 39 -- x:130, y:985, z:-8.8 + }, + { -- 7; spawns 1-6 are accurate, but this one is made up because we only did 3 waves so we're probably missing one + x = 267, y = 826, z = 38.1, -- Vadrel 7:00 + grid = 39 -- x:130, y:985, z:-8.8 + }, + { -- 8 + x = -10, y = 510, z = -5.7, -- Gergil 12:30 + grid = 40 -- x:61, y:333, z:-5 + }, + { -- 9 + x = -47, y = 489, z = -8.6, -- Gergil 1:00 + grid = 40 -- x:61, y:333, z:-5 + }, + { -- 10 + x = -5, y = 161, z = 4, -- Gergil 5:30 + grid = 40 -- x:61, y:333, z:-5 + }, + { -- 11 + x = 73, y = 175, z = 2.9, -- Gergil 6:30 + grid = 40 -- x:61, y:333, z:-5 + }, + { -- 12 + x = 243, y = 400, z = 48.6, -- Gergil 9:30 + grid = 40 -- x:61, y:333, z:-5 + }, + { -- 13 + x = 198, y = 430, z = 38.2, -- Gergil 10:00 + grid = 40 -- x:61, y:333, z:-5 + }, + { -- 14; spawns 8-13 are accurate, but this one is made up because we only did 3 waves so we're probably missing one + x = 221, y = 218, z = 2, -- Gergil 7:30 + grid = 41 -- x:104, y:353, z:-6.2; x:61, y:333, z:-5 + }, +}; + +-- note: wave 1 is precise; waves 2-3 are close (should have the same mobs, spawns may be off); waves 7-10 are completely made up +local WAVES = { + { + PRIEST_TYPE, 1, -- Vadrel 2:00 + DEATHBRINGER_TYPE, 2, -- Vadrel 2:30 + DEATHBRINGER_TYPE, 3, -- Vadrel 3:30 + COMMANDER_TYPE, 4, -- Vadrel 4:30 + DEATHBRINGER_TYPE, 5, -- Vadrel 5:00 + PRIEST_TYPE, 6, -- Vadrel 6:00 + DEATHBRINGER_TYPE, 8, -- Gergil 12:30 + DREAMSPINNER_TYPE, 9, -- Gergil 1:00 + DEATHBRINGER_TYPE, 10, -- Gergil 5:30 + CADAVERIST_TYPE, 11, -- Gergil 6:30 + PRIEST_TYPE, 12, -- Gergil 9:30 + DEATHBRINGER_TYPE, 13, -- Gergil 10:00 + }, + { + DEATHBRINGER_TYPE, 2, -- Vadrel 2:30 + CADAVERIST_TYPE, 3, -- Vadrel 3:30 + DEATHBRINGER_TYPE, 4, -- Vadrel 4:30 + PRIEST_TYPE, 5, -- Vadrel 5:00 + DEATHBRINGER_TYPE, 8, -- Gergil 12:30 + PRIEST_TYPE, 9, -- Gergil 1:00 + DEATHBRINGER_TYPE, 10, -- Gergil 5:30 + CADAVERIST_TYPE, 13, -- Gergil 10:00 + }, + { + DREAMSPINNER_TYPE, 1, -- Vadrel 2:00 + DEATHBRINGER_TYPE, 2, -- Vadrel 2:30 + DEATHBRINGER_TYPE, 3, -- Vadrel 3:30 + PRIEST_TYPE, 4, -- Vadrel 4:30 + DREAMSPINNER_TYPE, 5, -- Vadrel 5:00 + CADAVERIST_TYPE, 6, -- Vadrel 6:00 + CADAVERIST_TYPE, 8, -- Gergil 12:30 + PRIEST_TYPE, 9, -- Gergil 1:00 + DEATHBRINGER_TYPE, 10, -- Gergil 5:30 + CADAVERIST_TYPE, 12, -- Gergil 9:30 + DEATHBRINGER_TYPE, 13, -- Gergil 10:00 + }, + { + CADAVERIST_TYPE, 1, -- Vadrel 2:00 + DEATHBRINGER_TYPE, 3, -- Vadrel 3:30 + MANACRAFTER_TYPE, 4, -- Vadrel 4:30 + PRIEST_TYPE, 5, -- Vadrel 5:00 + SKULLCRACKER_TYPE, 7, -- Vadrel 7:00 + CADAVERIST_TYPE, 9, -- Gergil 1:00 + SKULLCRACKER_TYPE, 11, -- Gergil 6:30 + MANACRAFTER_TYPE, 12, -- Gergil 9:30 + DEATHBRINGER_TYPE, 13, -- Gergil 10:00 + PRIEST_TYPE, 14, -- Gergil 7:30 + }, + { + DEATHBRINGER_TYPE, 1, -- Vadrel 2:00 + SKULLCRACKER_TYPE, 3, -- Vadrel 3:30 + DREAMSPINNER_TYPE, 4, -- Vadrel 4:30 + MANACRAFTER_TYPE, 5, -- Vadrel 5:00 + PRIEST_TYPE, 6, -- Vadrel 6:00 + MANACRAFTER_TYPE, 9, -- Gergil 1:00 + CADAVERIST_TYPE, 10, -- Gergil 5:30 + DEATHBRINGER_TYPE, 12, -- Gergil 9:30 + DREAMSPINNER_TYPE, 13, -- Gergil 10:00 + SKULLCRACKER_TYPE, 14, -- Gergil 7:30 + }, + { + DREAMSPINNER_TYPE, 1, -- Vadrel 2:00 + DEATHBRINGER_TYPE, 2, -- Vadrel 2:30 + PRIEST_TYPE, 4, -- Vadrel 4:30 + SKULLCRACKER_TYPE, 5, -- Vadrel 5:00 + CADAVERIST_TYPE, 7, -- Vadrel 7:00 + MANACRAFTER_TYPE, 11, -- Gergil 6:30 + DREAMSPINNER_TYPE, 12, -- Gergil 9:30 + DEATHBRINGER_TYPE, 13, -- Gergil 10:00 + PRIEST_TYPE, 14, -- Gergil 7:30 + }, + { + CADAVERIST_TYPE, 1, -- Vadrel 2:00 + DEATHBRINGER_TYPE, 3, -- Vadrel 3:30 + MANACRAFTER_TYPE, 4, -- Vadrel 4:30 + DEATHBRINGER_TYPE, 5, -- Vadrel 5:00 + PRIEST_TYPE, 7, -- Vadrel 7:00 + DREAMSPINNER_TYPE, 8, -- Gergil 12:30 + SKULLCRACKER_TYPE, 11, -- Gergil 6:30 + DEATHBRINGER_TYPE, 12, -- Gergil 9:30 + CADAVERIST_TYPE, 14, -- Gergil 7:30 + }, + { + CADAVERIST_TYPE, 1, -- Vadrel 2:00 + PRIEST_TYPE, 3, -- Vadrel 3:30 + CADAVERIST_TYPE, 4, -- Vadrel 4:30 + SKULLCRACKER_TYPE, 5, -- Vadrel 5:00 + DEATHBRINGER_TYPE, 7, -- Vadrel 7:00 + DREAMSPINNER_TYPE, 9, -- Gergil 1:00 + DEATHBRINGER_TYPE, 11, -- Gergil 6:30 + DEATHBRINGER_TYPE, 12, -- Gergil 9:30 + MANACRAFTER_TYPE, 13, -- Gergil 10:00 + }, + { + CADAVERIST_TYPE, 1, -- Vadrel 2:00 + DREAMSPINNER_TYPE, 3, -- Vadrel 3:30 + MANACRAFTER_TYPE, 4, -- Vadrel 4:30 + DEATHBRINGER_TYPE, 6, -- Vadrel 6:00 + PRIEST_TYPE, 9, -- Gergil 1:00 + SKULLCRACKER_TYPE, 11, -- Gergil 6:30 + DREAMSPINNER_TYPE, 12, -- Gergil 9:30 + DEATHBRINGER_TYPE, 13, -- Gergil 10:00 + }, + { + MANACRAFTER_TYPE, 1, -- Vadrel 2:00 + DREAMSPINNER_TYPE, 2, -- Vadrel 2:30 + DEATHBRINGER_TYPE, 3, -- Vadrel 3:30 + SKULLCRACKER_TYPE, 4, -- Vadrel 4:30 + PRIEST_TYPE, 6, -- Vadrel 6:00 + SKULLCRACKER_TYPE, 8, -- Gergil 12:30 + DREAMSPINNER_TYPE, 9, -- Gergil 1:00 + DEATHBRINGER_TYPE, 10, -- Gergil 5:30 + MANACRAFTER_TYPE, 11, -- Gergil 6:30 + CADAVERIST_TYPE, 12, -- Gergil 9:30 + PRIEST_TYPE, 14, -- Gergil 7:30 + }, +}; + +local victory = false; +local quickWave = false; + +function GovernorSignalEvent(e) + + if ( e.signal == 1 ) then + + local cat = eq.get_entity_list():GetNPCByNPCTypeID(VADREL_WALKING_CAT_TYPE); + eq.spawn2(VADREL_ROOTED_CAT_TYPE, 0, 0, cat:GetX(), cat:GetY(), cat:GetZ(), cat:GetHeading()); + eq.depop_all(VADREL_WALKING_CAT_TYPE); + eq.set_timer("start", 65000); + FlipFlags(true); + eq.spawn_condition("grimling", 5, 0); -- disable camp respawns + + elseif ( e.signal == 2 ) then + DepopCamps(); + eq.set_timer("repop", 1000); + + elseif ( e.signal == 3 ) then + eq.stop_timer("wave"); + eq.set_timer("reset", 90000); + + end +end + +function GovernorTimerEvent(e) + if ( e.timer == "wave" ) then + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(VADREL_ROOTED_CAT_TYPE) + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(GERGIL_ROOTED_CAT_TYPE) + ) then + SpawnWave(); + local t = 100000; + + -- this is not precise. didn't do the event long enough to determine the exact spawn timer pattern + -- copying raid 4's pattern, which is also not precise + if ( quickWave ) then + t = 40000; + quickWave = false; + else + local roll = math.random(100); + if ( roll <= 5 ) then + t = t * 2; -- skip a wave + elseif ( roll <= 15 ) then + t = 60000; + quickWave = true; + end + end + + t = t + math.random(1, 10) * 1000; + eq.set_timer("wave", t); + end + elseif ( e.timer == "start" ) then + eq.stop_timer("start"); + eq.set_timer("wave", 40000); + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(VADREL_ROOTED_CAT_TYPE) + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(GERGIL_ROOTED_CAT_TYPE) + ) then + SpawnWave(true); + end + elseif ( e.timer == "repop" ) then + eq.stop_timer("repop"); + RepopCamps(); + + elseif ( e.timer == "reset" ) then + eq.stop_timer("reset"); + + FlipFlags(false); + eq.spawn_condition("grimling", 5, 1); -- enable camp respawns + eq.depop_all(VADREL_ROOTED_CAT_TYPE); + eq.depop_all(GERGIL_ROOTED_CAT_TYPE); + eq.depop_all(VADREL_WALKING_CAT_TYPE); + eq.depop_all(GERGIL_WALKING_CAT_TYPE); + RepopCamps(); + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(TOWN_CAT_TYPE) ) then + if ( victory ) then + eq.get_entity_list():GetSpawnByID(TOWN_CAT_SPAWNID):SetTimer(1); + victory = false; + end + end + end +end + +function SpawnWave(noOfficer) + local spawn, spawnType, mob; + + if ( not noOfficer and math.random(100) <= 4 ) then + wave = 1; -- officer wave + else + wave = math.random(2, #WAVES); + end + + local i = 1, npc, spawn; + + while i < #WAVES[wave] do + + npc = WAVES[wave][i]; + spawn = WAVES[wave][i+1]; + + mob = eq.spawn2(npc, SPAWNS[spawn].grid, 0, SPAWNS[spawn].x, SPAWNS[spawn].y, SPAWNS[spawn].z, 0); + mob:SetRunning(true); + + i = i + 2; + end + + -- keep town cat timer at 30 minutes so it doesn't respawn mid-event + eq.get_entity_list():GetSpawnByID(TOWN_CAT_SPAWNID):SetTimer(1800000); +end + +function VadrelDeath(e) + e.self:Shout("The invasion has failed. I go now to the realm of our fathers' spirits, may they find my efforts worthy..."); + eq.signal(GOVERNOR_TYPE, 3); + eq.signal(GERGIL_ROOTED_CAT_TYPE, 3); +end + +function VadrelWaypointArrive(e) + if ( e.wp == 5 ) then + e.self:Say("Stay alert! The forest has been especially dangerous lately."); + elseif ( e.wp == 6 ) then + e.self:Emote("stops and sniffs at the air, 'Something's not right here. Scout ahead and look for anything unusual. I sense an ambush..."); + eq.set_timer("ambush", 13000); + elseif ( e.wp == 8 ) then + eq.signal(GERGIL_WALKING_CAT_TYPE, 1); + eq.set_timer("gergil", 20000); + elseif ( e.wp == 11 ) then + e.self:Say("We must stay and fight at least long enough to kill a grimling commander. When you give me his head I will call off the attack. May the spirits guide your blades."); + elseif ( e.wp == 13 ) then + e.self:Say("Gather round me friends! Make ready for glorious battle!"); + eq.signal(GOVERNOR_TYPE, 1); + end +end + +function VadrelWaypointDepart(e) + if ( e.wp == 6 ) then + eq.unique_spawn(GERGIL_WALKING_CAT_TYPE, 0, 0, 248, 402, 51.3, 176); + elseif ( e.wp == 11 ) then + e.self:Shout("For the love of the king! Attack!"); + e.self:SetRunning(true); + eq.signal(GOVERNOR_TYPE, 2); + eq.signal(GERGIL_WALKING_CAT_TYPE, 2); + end +end + +function VadrelTimer(e) + if ( e.timer == "depop" ) then + eq.stop_timer("depop"); + eq.depop(); + + elseif ( e.timer == "ambush" ) then + eq.stop_timer("ambush"); + e.self:Say("Guard me! The invasion will fail if I am slain!"); + + local mob; + mob = eq.spawn2(MANACRAFTER_TYPE, 38, 0, -79, -245, -15.3, 0); + mob:SetRunning(true); + mob = eq.spawn2(BATTLELORD_TYPE, 38, 0, 28, -62, 1.8, 0); + mob:SetRunning(true); + mob = eq.spawn2(PRIEST_TYPE, 38, 0, -144, -156, 10.7, 0); + mob:SetRunning(true); + mob = eq.spawn2(SKULLCRACKER_TYPE, 38, 0, -89, -90, 16.4, 0); + mob:SetRunning(true); + mob = eq.spawn2(PRIEST_TYPE, 38, 0, 111, -155, 23.3, 0); + mob:SetRunning(true); + + elseif ( e.timer == "wounded" ) then + if ( not e.self:IsEngaged() ) then + eq.stop_timer("wounded"); + e.self:Say("Quickly now, tend to any wounded, we march on in a few moments."); + eq.set_timer("continue", 45000); + end + + elseif ( e.timer == "continue" ) then + eq.stop_timer("continue"); + e.self:Say("It's obvious our invasion isn't going to surprise the grunts. We'll have to earn success through sheer courage and determination."); + e.self:ResumeWandering(); + + elseif ( e.timer == "gergil" ) then + eq.stop_timer("gergil"); + e.self:Say("Half of you stay with Gergil here and keep him alive at all costs. The rest follow me, I'll order the attack shortly."); + end +end + +function VadrelTrade(e) + local item_lib = require("items"); + + if ( item_lib.check_turn_in(e.self, e.trade, {item1 = 5988}, 0) ) then -- Grimling Commander's Head + e.self:Say("You have done well "..e.other:GetCleanName()..". You will need continued success to overcome the master of the enemy, whoever that may be. Speak to the general, tell him the invasion was successful. He will guide your efforts further. Now gather your forces and leave this place. The enemy will overrun it soon. Farewell!"); + e.other:QuestReward(e.self, 0, 0, 0, 0, 5989, 5000); -- Golden Medal of the Shar Vahl + + DisableCat(e.self); + victory = true; + eq.signal(GOVERNOR_TYPE, 3); + eq.signal(GERGIL_ROOTED_CAT_TYPE, 4); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function VadrelSignalEvent(e) + if ( e.signal == 1 ) then + -- this is made-up text; didn't capture this + e.self:Say("The invasion has failed. Grab your fallen and run, may you live to fight another day!"); + eq.set_timer("depop", 5000); + end +end + +function VadrelHail(e) + if ( e.message:findi("hail") ) then + e.self:Say("Pay attention, "..e.other:GetCleanName().."! This is war!"); + end +end + +function GergilSignalEvent(e) + + if ( e.signal == 1 ) then + e.self:DoAnim(67); -- salute + e.self:Say("Good to see you sir! I am ready to lead a dozen soldiers against this encampment at your word."); + elseif ( e.signal == 2 ) then + -- not sure if he says nothing here, or I didn't capture it + e.self:AssignWaypoints(37); + e.self:SetRunning(true); + elseif ( e.signal == 3 ) then + -- quest bugged out and he gave the victory line when we lost it. using Necin's line + e.self:Say("It is over, friends. Grab your fallen and run, may you live to fight another day!"); + DisableCat(e.self); + elseif ( e.signal == 4 ) then + e.self:Say("The invasion was a success! Gather your forces and leave before the enemy reclaims this land. Farewell, and thank you for your protection!"); + DisableCat(e.self); + end +end + +function GergilWaypointArrive(e) + if ( e.wp == 2 ) then + e.self:Say("Keep me alive, the grunts will be coming for me!"); + eq.spawn2(GERGIL_ROOTED_CAT_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + eq.depop_all(GERGIL_WALKING_CAT_TYPE); + end +end + +function GergilDeath(e) + eq.signal(GOVERNOR_TYPE, 3); + + -- unknown what Gergil says when dying. Made something up here + e.self:Shout("I have fallen, our mission has failed. Curses upon the grimling horde!"); + eq.signal(VADREL_ROOTED_CAT_TYPE, 1); + eq.signal(VADREL_WALKING_CAT_TYPE, 1); +end + +function BattlelordDeath(e) + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(VADREL_WALKING_CAT_TYPE) ) then + eq.set_timer("wounded", 10000, eq.get_entity_list():GetMobByNpcTypeID(VADREL_WALKING_CAT_TYPE)); + end +end + +function DisableCat(cat) + if ( not cat or not cat.valid or cat:GetHP() < 1 ) then -- SetBodyType() crashes the zone if mob is dead + return; + end + cat:Heal(); + cat:SetSpecialAbility(24, 1); -- Will Not Aggro + cat:SetSpecialAbility(25, 1); -- Immune to Aggro + cat:SetSpecialAbility(35, 1); -- No Harm from Players + cat:SetBodyType(11, false); -- NoTarget + cat:WipeHateList(); +end + +-- true == cat, false == grimling +function FlipFlags(state) + + local door; + + door = eq.get_entity_list():GetDoorsByDoorID(FLAG1_ID); + if ( door ) then + if ( state ) then + door:ForceOpen(eq.get_entity_list():GetMobByNpcTypeID(GOVERNOR_TYPE)); + else + door:ForceClose(eq.get_entity_list():GetMobByNpcTypeID(GOVERNOR_TYPE)); + end + end + + door = eq.get_entity_list():GetDoorsByDoorID(FLAG2_ID); + if ( door ) then + if ( state ) then + door:ForceOpen(eq.get_entity_list():GetMobByNpcTypeID(GOVERNOR_TYPE)); + else + door:ForceClose(eq.get_entity_list():GetMobByNpcTypeID(GOVERNOR_TYPE)); + end + end +end + +function DepopCamps() + + local npcList = eq.get_entity_list():GetNPCList(); + + if ( npcList ) then + + local campHashMap = {}; + for _, id in ipairs(CAMP_SPAWN_IDS) do + campHashMap[id] = true; + end + + for npc in npcList.entries do + + if ( npc.valid and campHashMap[npc:GetSpawnPointID()] ) then + npc:Depop(true); -- depop with timer + end + end + end +end + +function RepopCamps() + + local elist = eq.get_entity_list(); + + for _, id in ipairs(CAMP_SPAWN_IDS) do + --eq.spawn_from_spawn2(id); + elist:GetSpawnByID(id):SetTimer(1); + end +end + +function GrimlingSpawn(e) + eq.set_timer("depop", 600000); +end + +function GrimlingTimer(e) + eq.depop(); +end + +function GrimlingCombat(e) + if ( e.joined ) then + if ( not eq.is_paused_timer("depop") ) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("Vadrel", Event.timer, GOVERNOR_TYPE, GovernorTimerEvent); + eq.register_npc_event("Vadrel", Event.signal, GOVERNOR_TYPE, GovernorSignalEvent); + + eq.register_npc_event("Vadrel", Event.say, VADREL_ROOTED_CAT_TYPE, VadrelHail); + eq.register_npc_event("Vadrel", Event.waypoint_arrive, VADREL_WALKING_CAT_TYPE, VadrelWaypointArrive); + eq.register_npc_event("Vadrel", Event.waypoint_depart, VADREL_WALKING_CAT_TYPE, VadrelWaypointDepart); + eq.register_npc_event("Vadrel", Event.timer, VADREL_WALKING_CAT_TYPE, VadrelTimer); + eq.register_npc_event("Vadrel", Event.timer, VADREL_ROOTED_CAT_TYPE, VadrelTimer); + eq.register_npc_event("Vadrel", Event.death, VADREL_WALKING_CAT_TYPE, VadrelDeath); + eq.register_npc_event("Vadrel", Event.death, VADREL_ROOTED_CAT_TYPE, VadrelDeath); + eq.register_npc_event("Vadrel", Event.trade, VADREL_ROOTED_CAT_TYPE, VadrelTrade); + eq.register_npc_event("Vadrel", Event.signal, VADREL_WALKING_CAT_TYPE, VadrelSignalEvent); + eq.register_npc_event("Vadrel", Event.signal, VADREL_ROOTED_CAT_TYPE, VadrelSignalEvent); + + eq.register_npc_event("Vadrel", Event.signal, GERGIL_WALKING_CAT_TYPE, GergilSignalEvent); + eq.register_npc_event("Vadrel", Event.signal, GERGIL_ROOTED_CAT_TYPE, GergilSignalEvent); + eq.register_npc_event("Vadrel", Event.waypoint_arrive, GERGIL_WALKING_CAT_TYPE, GergilWaypointArrive); + eq.register_npc_event("Vadrel", Event.timer, GERGIL_WALKING_CAT_TYPE, GergilTimer); + eq.register_npc_event("Vadrel", Event.death, GERGIL_WALKING_CAT_TYPE, GergilDeath); + eq.register_npc_event("Vadrel", Event.death, GERGIL_ROOTED_CAT_TYPE, GergilDeath); + + eq.register_npc_event("Vadrel", Event.death, BATTLELORD_TYPE, BattlelordDeath); + + for _, typeId in ipairs(GRIMLING_TYPES) do + eq.register_npc_event("Vadrel", Event.spawn, typeId, GrimlingSpawn); + eq.register_npc_event("Vadrel", Event.timer, typeId, GrimlingTimer); + eq.register_npc_event("Vadrel", Event.combat, typeId, GrimlingCombat); + end + + eq.spawn_condition("grimling", 5, 1); -- enable camp respawns in case they are off due to zone crash or whatever +end diff --git a/grimling/encounters/miners.lua b/grimling/encounters/miners.lua new file mode 100644 index 0000000..0b336ea --- /dev/null +++ b/grimling/encounters/miners.lua @@ -0,0 +1,49 @@ +-- This replicates the 'infinte miner' bug where one of the miner spawns inside the mine spawns a ton of grimlings +-- on AK it was limited to 100 possible and seemed to grow after every clear + +local MINER_TYPE = 167042; -- a_grimling_miner +local SPAWN_ID = 334821; +local LIMIT = 30; + +local totalSpawns = 1; + +function CountMiners() + local npcList = eq.get_entity_list():GetNPCList(); + local count = 0; + + if ( npcList ) then + + for npc in npcList.entries do + + if ( npc.valid and npc:GetNPCTypeID() == MINER_TYPE ) then + count = count + 1; + end + end + end + return count; +end + +function MinerSpawn(e) + + if ( e.self:GetSpawnPointID() == SPAWN_ID ) then + + if ( totalSpawns < LIMIT ) then + totalSpawns = totalSpawns + 1; + end + + local count = CountMiners(); + + for i = 1, totalSpawns do + + if ( i + count > 99 ) then + return; + end + + eq.spawn2(MINER_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + end + end +end + +function event_encounter_load(e) + eq.register_npc_event("miners", Event.spawn, MINER_TYPE, MinerSpawn); +end diff --git a/grimling/script_init.lua b/grimling/script_init.lua new file mode 100644 index 0000000..94c4bed --- /dev/null +++ b/grimling/script_init.lua @@ -0,0 +1,7 @@ +eq.load_encounter("Husman"); +eq.load_encounter("Danarin"); +eq.load_encounter("Derrin"); +eq.load_encounter("Necin"); +eq.load_encounter("Vadrel"); +eq.load_encounter("GrimlingWar"); +eq.load_encounter("miners"); diff --git a/grobb/#Gardunk.lua b/grobb/#Gardunk.lua new file mode 100644 index 0000000..6035826 --- /dev/null +++ b/grobb/#Gardunk.lua @@ -0,0 +1,13 @@ +-- Converted to .lua by Speedz + +function event_trade(e) + local item_lib = require("items"); + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 18845})) then -- A tattered note + e.self:Say("You fight like alligator and tear enemy limb from limb! Wear tunic that smell of swamp an devour enemy wit brodder Dark Ones! You go see Gargh now, he got work for you!"); + e.other:Faction(e.self,237,15,0); -- Dark Ones + e.other:Faction(e.self,308,3,0); -- Shadowknights of Night Keep + e.other:Faction(e.self,251,-2,0); -- Frogloks of Guk + e.other:QuestReward(e.self,0,0,0,0,13576,20); -- Molding Tunic + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/grobb/Basher_Avisk.lua b/grobb/Basher_Avisk.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Avisk.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Banzuk.lua b/grobb/Basher_Banzuk.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Banzuk.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Bibeka.lua b/grobb/Basher_Bibeka.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Bibeka.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Bugak.lua b/grobb/Basher_Bugak.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Bugak.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Gamuk.lua b/grobb/Basher_Gamuk.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Gamuk.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Ganbaku.lua b/grobb/Basher_Ganbaku.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Ganbaku.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Glaum.lua b/grobb/Basher_Glaum.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Glaum.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Gobzin.lua b/grobb/Basher_Gobzin.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Gobzin.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Gubaku.lua b/grobb/Basher_Gubaku.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Gubaku.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Kankuk.lua b/grobb/Basher_Kankuk.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Kankuk.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Kigak.lua b/grobb/Basher_Kigak.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Kigak.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Kumek.lua b/grobb/Basher_Kumek.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Kumek.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Nagkuma.lua b/grobb/Basher_Nagkuma.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Nagkuma.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Nanrum.lua b/grobb/Basher_Nanrum.lua new file mode 100644 index 0000000..0d93b42 --- /dev/null +++ b/grobb/Basher_Nanrum.lua @@ -0,0 +1,44 @@ +-- Quest Name: A job for Nanrum +-- Author: BWStripes +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Peh! What am you wanted?! I am Basher Nanrum. You? " .. e.other:GetCleanName() .. " ? Heh, you look for works? Hmm, me tinks you too weakling for [job] me need done. Hmm.. You might do, mebbe."); + elseif(e.message:findi("job")) then + e.self:Say("Me in charge of making torches for basher patrols. But Nanrum is much too mighty for such stupid job and Nanrum get idea. Dem fire bugses in da desert - dem eyes glowed. And dem don't burneded like torches. If " .. e.other:GetCleanName() .. " getted Nanrum three fire beetle eyes me would giveded " .. e.other:GetCleanName() .. " a shiny thingie dat you wanteded. Go ahed, " .. e.other:GetCleanName() .. " , an' get me da eyes."); + elseif(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Well dat be some of da eyeballses I askeded for. But I you needs ta give me three for da shiny."; + + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 10307, item2 = 10307, item3 = 10307},1,text)) then + e.self:Say("Heh heh. All da eyeballses! I didn't think ya could do it but ya did. Here is da shiny. If you gets more I always have more shinies."); + e.other:Faction(e.self,235, 1); -- Da Bashers + e.other:Faction(e.self,222, -1); -- Broken Skull Clan + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10351, 10026, 10060, 10018, 10006, 10017),100); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/grobb/Basher_Rakguk.lua b/grobb/Basher_Rakguk.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Rakguk.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Razbaz.lua b/grobb/Basher_Razbaz.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Razbaz.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Roruma.lua b/grobb/Basher_Roruma.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Roruma.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Scintok.lua b/grobb/Basher_Scintok.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Scintok.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Stizik.lua b/grobb/Basher_Stizik.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Stizik.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Sutok.lua b/grobb/Basher_Sutok.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Sutok.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Thintan.lua b/grobb/Basher_Thintan.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Thintan.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Uvgin.lua b/grobb/Basher_Uvgin.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Uvgin.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Wisthak.lua b/grobb/Basher_Wisthak.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Wisthak.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Zabaak.lua b/grobb/Basher_Zabaak.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Zabaak.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Basher_Zazluk.lua b/grobb/Basher_Zazluk.lua new file mode 100644 index 0000000..7017e83 --- /dev/null +++ b/grobb/Basher_Zazluk.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("Chain, plate, leather, Krung's Clubs and Junk inside you will find. Grobb, in the center it be."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Da bashers warriors of Grobb close to entrance they be."); + elseif(e.message:findi("supplies")) then + e.self:Say("Entrance toward the front and right. Gunthak's Belch inside you will find."); + elseif(e.message:findi("bank")) then + e.self:Say("Back, back to the rear, bank you will find."); + elseif(e.message:findi("tavern")) then + e.self:Say("Gunthak's Belch toward entrance."); + elseif(e.message:findi("food")) then + e.self:Say("If hungry you be Gunthak's Belch to entrance and side you will find."); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Shaman of Grobb called the Darkones. Back towards Carver is where you will find."); + elseif(e.message:findi("darkone")) then + e.self:Say("The Darkones to the back found are they. Shaman of Grobb they be."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Rocks and ground upon which you will lay. No inn inside Grobb you will find."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Shadowknights of Knightkeep guild of shadowknights they be. To the side and middle is where you find."); + end +end \ No newline at end of file diff --git a/grobb/Bregna.lua b/grobb/Bregna.lua new file mode 100644 index 0000000..ecafae4 --- /dev/null +++ b/grobb/Bregna.lua @@ -0,0 +1,36 @@ +-- More Help for Innoruuk +-- Aid Garuuk + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then -- not sure exact faction, indifferent works, threatening doesn't + e.self:Say("Hail, " .. e.other:GetCleanName() .. ", are ya a follower ob Innoruuk? I hopes so. We needs many ta spread His Hate. None be as bicious as be dem dat follow Him. We do brings fear and hate ta all dat does sees us. Dis is well. He likes it. Can ya [help]?"); + else + e.self:Say("You die! Me Darkone! We no frend to you. You run now!"); + end + elseif(e.message:findi("help")) then + if(e.other:GetFactionValue(e.self) >= 0) then -- not sure exact faction, indifferent works, threatening doesn't + e.self:Say("Me hears orcs nearby are trubble. Da werd frum Neriak is dey wants us ta kills dem before dey organize. Dark elf say ta looks for Deathfist Clan. Say dey called cen-tu-ri-ons. Dey try ta gets big orc army. Shows me ya can strike fear and hate inta dem orcs... dey needs be more scared a us den dem humies. Brings me a Deathfist slashed belt."); + else + e.self:Say("You die! Me Darkone! We no frend to you. You run now!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if (e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13916})) then -- Deathfist Slashed Belt + e.self:Say("Good job. Dat help lerns um. Takes dis ta help ya lerns how ta do more hateful tings. Ya gots a good starts fer Him ta be prouds a ya"); + e.other:Faction(e.self,237,5); -- Faction: Dark Ones + e.other:Faction(e.self,308,1); -- Faction: Shadowknights of Night Keep + e.other:Faction(e.self,251,-1); -- Faction: Frogloks of Guk + e.other:QuestReward(e.self,0,0,0,0,15272,500); -- Spell: Spirit Pouch + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 26632, item2 = 26640, item3 = 29921, item4 = 26662})) then -- Aid Garuuk + e.self:Say("Dis am gud. I see you've been talkin' to Garuuk. Methanks you fer da help. Take dis note back ta Garuuk so he knows you helped me. Tanks again!"); + e.other:Faction(e.self,237,10); -- Faction: Dark Ones + e.other:Faction(e.self,308,2); -- Faction: Shadowknights of Night Keep + e.other:Faction(e.self,251,-1); -- Faction: Frogloks of Guk + e.other:QuestReward(e.self,0,0,0,0,28740,1000); -- Item: Troll Receipt + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/grobb/Carver_Cagrek.lua b/grobb/Carver_Cagrek.lua new file mode 100644 index 0000000..6a9de21 --- /dev/null +++ b/grobb/Carver_Cagrek.lua @@ -0,0 +1,38 @@ + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Away from carver Cagrek you get!! Me's a busy troll. Must punish enmees of Grobb and feeds trolls a plenty. Trolls complain meats no good, complains dey want sum special bread. Dey says dey hears ogres have special meat which taste better den pris'ners of Grobb. Do you knows name of meat? What kinda [meat] dat be? Tell me!!"); + elseif(e.message:findi("fungus dung pie")) then + e.self:Say("Oh nos! Him wants anudder wun?! Me just maked wun fer him! Yooz gos ta swamp and gets carver Cagrek four spore mushrooms. Be carefuls. Dey easy ta bash, buts sumtimes yooz bash dem too gud and dey falls aparts. Gets me four and me can make pie."); + elseif(e.message:findi("oven mitten")) then + e.self:Say("Oven mittens?! Whut you need for? You no cook! If you be tinkin you a cook me will gives you oven mittens, but first you brings me tree, not wun or too, but tree froglok meats and also gives me ten gold. You do dis den you get Grobb oven mittens."); + elseif(e.message:findi("hehe meat")) then + e.self:Say("HEHE meat!! What dat stand for? Mes need some of dis HEHE meat!! Gos and get me some. Cagrek not just want some. Cagrek want more dan twenny!! Cagrek want three HEHE meat and mes want HEHE recipe. You get and me makes " .. e.other:GetCleanName() .. " honeraree carver. Me gives you Grobb Cleaver. It cuts skins like dey butter!!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Me needs FOUR spore mushrooms."; + local text1 = "Yous a maroon or what! Me says bring back THREE HEHE meat and HEHE recipe!"; + local text2 = "You want oven mittens den you gives me THREE froglok meats and TEN gold."; + + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 12191, item2 = 12191, item3 = 12191, item4 = 12191},1,text)) then + e.self:Say("Gud werk! Me already made, err, founds dung part of meal. Here we go. One fungus dung pie! Enjoys."); + e.other:Faction(e.self,235,5); --Da Bashers + e.other:Faction(e.self,222,-1); --Broken Skull Clan + e.other:QuestReward(e.self,0,0,0,0,12210,5000); -- Fungus Spore Pie + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 13409, item2 = 13409, item3 = 13409, gold = 10},1,text2)) then + e.self:Say("Bouts time you gets everyting! Here is you Grobb oven mittens. Dey good to keep you from hot stuff."); + e.other:Faction(e.self,235,2); --Da Bashers + e.other:Faction(e.self,222,-1); --Broken Skull Clan + e.other:QuestReward(e.self,0,0,0,0,12211,5000); -- Grobb Oven Mittens + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 13368, item2 = 13368, item3 = 13368, item4 = 18940},1,text1)) then + e.self:Say("Finally!! What takes yous so long? Now carver Cagrek try and makes meat and feeds to trolls. Yous getting to be deputy carver. Mes give you Grobb cleaver!! Make strong and smarts on you it will. Just like carver Cagrek."); + -- Confirmed Live Factions + e.other:Faction(e.self,235,30); --Da Bashers + e.other:Faction(e.self,222,-4); --Broken Skull Clan + e.other:QuestReward(e.self,0,0,0,3,5413,20000); -- Item: Grobb Cleaver + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/grobb/Gargh.lua b/grobb/Gargh.lua new file mode 100644 index 0000000..12ec9bc --- /dev/null +++ b/grobb/Gargh.lua @@ -0,0 +1,78 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You [friend of Gardunk]? Meez friend of Gardunk."); + elseif(e.message:findi("friend.* gardunk")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Dat good. He tell meez you was comin'. Meez learn you to fight like alligator. Dominate through fear. Dat is what we do. Strike fear into heart of enemies. You [ready to start]?"); + else + e.self:Say("Meez don't trust you."); + end + elseif(e.message:findi("ready to start")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Good. We start easy. Little froggies a good place. They our enemies. You go to da swamp and kill da tadpoles. Bring back to me four pieces of Froglok Tadpole Flesh. Strip da flesh from our enemies. Dat your first task."); + else + e.self:Say("Meez don't trust you."); + end + elseif (e.message:findi("animals")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("'We start with da rat. You go and kill rats. Tear da rat apart and bring me a Giant Rat Ear and a Giant Rat Pelt."); + else + e.self:Say("Meez don't trust you."); + end + elseif (e.message:findi("alligator")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Best way to do dat is to fight alligators. You go out and fight da alligators in da swamp. Bring back to meez an alligator tooth and meez believe you."); + else + e.self:Say("Meez don't trust you."); + end + elseif (e.message:findi("training")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("For da next part of your training you go and strike fear into da hearts of da froggies again. Only not the little ones. You go and you drain da blood from one of da full grown ones. You bring meez back da Froglok Blood. Meez be waiting for you here if you make it back alive."); + else + e.self:Say("Meez don't trust you."); + end + elseif (e.message:findi("one more task")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("You is getting stronger. It time for you to venture out some and spread fear to other parts of da world. You go over to da Feerrott. There you find lots of lizard men. You go and spread fear to them. Fight them. You cut off their tails. Bring me four Lizard Tail."); + else + e.self:Say("Meez don't trust you."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if (e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13187, item2 = 13187,item3 = 13187,item4 = 13187},0)) then + e.self:Say("You done good. You begin to know fear by causing fear. You learning about da animals. You learn about da animals by fighting dem and tearing them apart. You ready to [learn about da animals]?"); + e.other:Faction(e.self,237,1); -- Faction: Dark Ones + e.other:Faction(e.self,308,1); -- Faction: Shadowknights of Night Keep + e.other:Faction(e.self,251,-1); -- Faction: Frogloks of Guk + e.other:QuestReward(e.self,0,0,0,0,7380,250); -- Item: Dark Ones Bracer + elseif (e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13050, item2 = 13054},0)) then + e.self:Say("So you know all about da rat now. Dat is good. Next step is important. You need to learn to [fight like da alligator]."); + e.other:Faction(e.self,237,2); -- Faction: Dark Ones + e.other:Faction(e.self,308,1); -- Faction: Shadowknights of Night Keep + e.other:Faction(e.self,251,-1); -- Faction: Frogloks of Guk + e.other:QuestReward(e.self,0,0,0,0,7381,400); -- Item: Dark Ones Cap + elseif (e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13725},0)) then + e.self:Say("Ok meez believe you. Here your reward. Meez think you just about ready for [next part of your training]."); + e.other:Faction(e.self,237,6); -- Faction: Dark Ones + e.other:Faction(e.self,308,1); -- Faction: Shadowknights of Night Keep + e.other:Faction(e.self,251,-1); -- Faction: Frogloks of Guk + e.other:QuestReward(e.self,0,0,0,0,7382,600); -- Item: Dark Ones Leggings + elseif (e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 22524},0)) then + e.self:Say("You did it! You cause lots of fear for them. Dat good. Even da spirits are starting to tremble. Soon you will be able to make dem do what you want. But there is [one more task] meez want you to do."); + e.other:Faction(e.self,237,28); -- Faction: Dark Ones + e.other:Faction(e.self,308,7); -- Faction: Shadowknights of Night Keep + e.other:Faction(e.self,251,-4); -- Faction: Frogloks of Guk + e.other:QuestReward(e.self,0,0,0,0,7383,1000); -- Item: Dark Ones Claw + elseif (e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13354, item2 = 13354, item3 = 13354, item4 = 13354},0)) then + e.self:Say("Meez impressed. Da spirits, they tremble in terror before you. Meez can't teach you no more. Go and dominate through fear. Fight like da alligator and tear your enemies apart."); + e.other:Faction(e.self,237,10); -- Faction: Dark Ones + e.other:Faction(e.self,308,2); -- Faction: Shadowknights of Night Keep + e.other:Faction(e.self,251,-1); -- Faction: Frogloks of Guk + e.other:QuestReward(e.self,0,0,0,0,7384,1000); -- Item: Dark Ones Leather + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/grobb/Hergor.lua b/grobb/Hergor.lua new file mode 100644 index 0000000..39ca50e --- /dev/null +++ b/grobb/Hergor.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Whats you wants!! Me great master of da bashers. Me tinks yooz must be lookin' fer trainin'. Yooz looks like a weaklin'. Me train yooz and yooz helps me get fatter. Well!! Are yooz gonna [helps Hergor get fatter]?!!"); + elseif(e.message:findi("get fatter")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Yooz makes da good choice. Me nevers get enuff ta eats. Eats more and gets more stronger. me always say. Yooz gos and speaks wit carver Cagrek. Yooz tell him [Hergor wants his fungus dung pie]. Yooz duz dis and me gives you sum rawhide armer or tatters armer."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("More service to da bashers, den me listen."); + else + e.self:Say("Me smell death coming your way! Da bashers no like you. Hey! Me am basher!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if (e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12210})) then -- Fungus Spore Pie + e.self:Say("Mmmmm... Mm... Mmm! Dat smells gud! Me gets more fat and gets more strength. You dus gud job weekling. Me gives you dis armer. It keeps you from getting bashed gud. Now gos away. Me no share pie wit weekling."); + e.other:Faction(e.self,235,5); --Da Bashers + e.other:Faction(e.self,222,-1); --Broken Skull Clan + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(2161,2162,2163,2164,2165,2166,2167,2168,2169,2170,2171,2172),500); -- various large raw hide armor + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/grobb/Hukulk.lua b/grobb/Hukulk.lua new file mode 100644 index 0000000..6353102 --- /dev/null +++ b/grobb/Hukulk.lua @@ -0,0 +1,64 @@ + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What you want!! You make fun of [helm of Hukulk]?!! Me smash you!! Maybe you come learn ways of Hate and Fear! You be dark power. You be Pain. You [want join Nightkeep]?"); + elseif(e.message:findi("helm")) then + e.self:Say("Oh!! Yooz tink you great enough to wear helm of Hukulk? Me have another just like it. Me make deal with yooz. If yooz want helm den yooz help Hukulk get revenge. Youz better be strong or yooz useless!! So.. Yooz [make deal with Hukulk]?"); + elseif(e.message:findi("deal")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Yooz smart!! Yooz go and walks to dark elf city. Yooz finds one whos make Lynuga breaks up with Hukulk! Maybe first yooz find Lynuga. Find who she visits in dark elf city!! Den yooz go and top off him head!! Bash Lynuga too, if she no give me back [happy love bracer]!! Me want head of dat home wrecker an' me happy love bracers, den me give yooz helm of Hukulk."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Me talk to you 'bout dat when you do more to help Nightkeep! Kill all Greenbloods! Kill all froggies!"); + else + e.self:Say("<..Sniff, sniff, sniff..> Me smell the blood of enemy in you. You fool to talk to Nightkeep shadowknight! Me bleed you if you no run!"); + end + elseif(e.message:findi("bracer")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Happy love bracers are mines!! Me make dem for Lynuga. Dey all shiny and green like da forests me see in adventures when me young. Dey make Hukulk all warm and happy. Den me give to Lynuga and.. and .. and.. AND LYNUGA RIP OUT HUKULK HEART!! Yooz makes Lynuga give back [happy love bracers]!!"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Me talk to you 'bout dat when you do more to help Nightkeep! Kill all Greenbloods! Kill all froggies!"); + else + e.self:Say("<..Sniff, sniff, sniff..> Me smell the blood of enemy in you. You fool to talk to Nightkeep shadowknight! Me bleed you if you no run!"); + end + elseif(e.message:findi("join")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Good. Hate and Pain. Innoruuk teach power, I teach power. Me make you power. You do what me say. You no mess up, I no kill you. We no like dead creature we no own. Go, kill dem. Bring four bone chips. I make you power."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Me talk to you 'bout dat when you do more to help Nightkeep! Kill all Greenbloods! Kill all froggies!"); + else + e.self:Say("<..Sniff, sniff, sniff..> Me smell the blood of enemy in you. You fool to talk to Nightkeep shadowknight! Me bleed you if you no run!"); + end + elseif(e.message:findi("lynuga")) then + e.self:Say("Oooh! Lynuga! Why yooz leave powerful Hukulk? Now yooz just spen' time collectin' gems and tings in Innothule."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "No, No, No! I said to bring me the happy love bracers and the troll head of the homewrecker! You not done the right things! Messed up you are!"; + + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 18792})) then -- Tattered Note + e.self:Say("Haaah!! Bow to Hukulk!! Hukulk make you feared.. make you powered! Dark power flow through you! Hate and Fear in your blood! Go to Vergad. He give you first lesson in pain."); + e.other:Faction(e.self,308,100); -- Shadowknights of Night Keep + e.other:Faction(e.self,261,-15); -- Green Blood Knights + e.other:Faction(e.self,222,-25); -- Broken Skull Clan + e.other:Faction(e.self,235,5); -- Da Bashers + e.other:QuestReward(e.self,0,0,0,0,13530,20); -- Black and Green Tunic* + elseif (e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13073, item2 = 13073, item3 = 13073, item4 = 13073})) then -- Bone Chips + e.self:Say("You good. Take dis. Make much pain and hurt. Make tings bleeds. Kill, hurt all. Innoruuk and me say do, now go. You do much, come bak. Teach you how more hurt and pain make. Go."); + e.other:Faction(e.self,308,5); -- Shadowknights of Night Keep + e.other:Faction(e.self,261,-1); -- Green Blood Knights + e.other:Faction(e.self,222,-1); -- Broken Skull Clan + e.other:Faction(e.self,235,1); -- Da Bashers + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,5023,250); -- Rusty Two Handed Sword + elseif (e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12201, item2 = 12202},1,text)) then -- Happy Love Bracers and Troll Head(Lumpin) + e.self:Say("Ha!! Ha!! Who have last laugh now!! You do good werk. Now me give you extra helm of Hukulk. Now go away!!"); + e.other:Faction(e.self,308,40); -- Shadowknights of Night Keep + e.other:Faction(e.self,261,-6); -- Green Blood Knights + e.other:Faction(e.self,222,-10); -- Broken Skull Clan + e.other:Faction(e.self,235,2); -- Da Bashers + e.other:QuestReward(e.self,0,0,0,math.random(10),3316,5000); -- Helm of Hukulk + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/grobb/Kaglari.lua b/grobb/Kaglari.lua new file mode 100644 index 0000000..bbc87fe --- /dev/null +++ b/grobb/Kaglari.lua @@ -0,0 +1,32 @@ + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("SNORT! HHUUUUCCCSSH.. Peh! You speak at Kaglari, High Priestess of Dark Ones. Children of Hate. Spawn of Innoruuk. " .. e.other:GetCleanName() .. " . speak or be gone! You [wish majik power]?"); + elseif (e.message:findi("wish majik power")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("GOOD! SNORT!! Innoruuk needs more childrens. You show majik skill or I give you to Innoruuk. You bring two snake scales and two bone chips .... from old bones. I teach you majik. GO! "); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if (e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13073, item2 = 13073, item3 = 13070, item4 = 13070})) then -- Majik power + e.self:Say("SNORT!! Good. Innoruuk get special gift. Not you, dis time. Here. Learning majik wid dis. You more want to [help Innoruuk]?"); + e.other:Faction(e.self,237,5); -- +Dark Ones + e.other:Faction(e.self,308,1); -- +Shadowknights of Night Keep + e.other:Faction(e.self,251,-1); -- -Frogloks of Guk + e.other:QuestReward(e.self,0,0,0,0,15093,100); -- Item: Spell: Burst of Flame + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 18791})) then -- Tattered Note + e.self:Say("Good.. Kaglari need you help.. Kaglari teach you majik now."); + e.other:Faction(e.self,237,100); -- +Dark Ones + e.other:Faction(e.self,308,25); -- +Shadowknights of Night Keep + e.other:Faction(e.self,251,-15); -- -Frogloks of Guk + e.other:QuestReward(e.self,0,0,0,0,13529,20); -- Muck Stained Tunic + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/grobb/Kragia.lua b/grobb/Kragia.lua new file mode 100644 index 0000000..384435e --- /dev/null +++ b/grobb/Kragia.lua @@ -0,0 +1,23 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Mez got secretz!' Kragia's eyes glint with menace. 'Mez bet yoo wantz to know my [secretz]!"); + elseif(e.message:findi("secretz")) then + e.self:Say("The Dark Stranger! He show me how to make some...' Kragia cackles. '...some fingz for hurti and bashin!' Kragia grins. and brandishes a long sword that crackles with an energy of its own. 'Yoo need to [work] dem weaponz. and den [finish] dem!"); + elseif(e.message:findi("work")) then + e.self:Say("Trollz. we'z always gud at recycling scrap! Take your [old weapon] and den use a smithy hammer to bash in two sheetz of dem magic [acrylia ore]. wiv a special [mold]! Yooz have to use da special Grobb forge."); + elseif(e.message:findi("acrylia ore")) then + e.self:Say("He show me some real gud metal. he sayz it come from far away. It look funny to me! He tellz me dat a block of it. and a smithy hammer and water. can make dem sheet. Den. wiv dat sheet. yoo use yer hammer again but wiv [magical temper] dis time."); + elseif(e.message:findi("mold")) then + e.self:Say("Each of dem weaponz needs a special mold. Yooz try a Short Blade. Curved Blade. Thin Blade. Dagger Blade. Long Blade. Mace Head. Hammer Head or Large Kite Shield mold. Da stickz need an Oak Shaft. and da Orb needz some Oakmoss!"); + elseif(e.message:findi("magical temper")) then + e.self:Say("Dis is some magical stuffz!' Kragia's eyes dart about. 'Mez not know how yooz make it. mez just use what he give mez.'"); + elseif(e.message:findi("old weapon")) then + e.self:Say("The Dark Stranger. he tellz me dat...' Kragia furrows his brow with concentration. 'Shortsword of the Ykesha. Runed Falchion. Electrum-Bladed Wakizashi. Obsidian Shard. Gigantic Zweihander. Enamelled Black Mace. Sharkbone Warhammer. Glowing Wooden Crook. Staff of the Observer. Crested Mistmoore Shield. Shimmering Orb - dem all good!"); + elseif(e.message:findi("finish")) then + e.self:Say("Dis da fun bit! In da special forge. yooz put in da worked weapon and use chisel and file. wiv some [bile temper]! Yooz make weaponz as gud as Kragia!' Kragia leans over to you and whispers loudly. 'Yooz can also make dem magical wiv imbued shinystonez. Dey really gud!"); + elseif(e.message:findi("bile temper")) then + e.self:Say("Dis da special brew for trollz. wez alwayz use it! Youz make da Special Brew from water. froglok tongue. cask and malt. Den youz mix dat Special Brew wiv Swampy Veggies and dem Mushroomz from da swamp."); + end +end diff --git a/grobb/Ranjor.lua b/grobb/Ranjor.lua new file mode 100644 index 0000000..f73478c --- /dev/null +++ b/grobb/Ranjor.lua @@ -0,0 +1,31 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ya wanna be a member a Da Bashers. duz ya? What making ya tink yooz is good nuff ta be one o' us? Can ya proves ta me why I shouldn't oughtta just eat yer smelly hide? I gonna tests ya. ya big. ugly peece o' meet. Ya [willin ta test] or duz I just eats ya now?"); + elseif(e.message:findi("willin ta test")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Stoopid meat. I gonna eats ya anyways sumday. Brings me a froglok meat and two dem li'l froglok tadpole fleshes. Dey berry good."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 18790})) then -- Tattered Note + e.self:Say("Arhh.. Ranjor mighty warrior.. Ranjor teach you warrior.. you fight for Ranjor now."); + e.other:Faction(e.self,235,100,0); -- Da Basher + e.other:Faction(e.self,222,-15,0); -- Broken Skull Clan + e.other:QuestReward(e.self,0,0,0,0,13528,20); -- Mud Covered Tunic + elseif (e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13409, item2 = 13187, item3 = 13187})) then + e.self:Say("You is berry slow. Me too hungry. Me shood eats you for being slow. Gib me dat stuff. Here, take dis and git more stuff fer us. You much kllin, come backs sees me. I teeches ya hows ta kill bedder. Now git and kill stuff. We be Da Bashers fer a reesun."); + e.other:Faction(e.self,235,5,0); -- Da Basher + e.other:Faction(e.self,222,-1,0); -- Broken Skull Clan + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(6022,6025,7014,5026,7015)); -- Item(s): Bronze Warhammer (6022), Bronze Warclub (6025), Bronze Spear (7014), Bronze Short Sword (5026), Bronze Main Gauche (7015) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/grobb/Rasrok_the_Blotched.lua b/grobb/Rasrok_the_Blotched.lua new file mode 100644 index 0000000..4f27269 --- /dev/null +++ b/grobb/Rasrok_the_Blotched.lua @@ -0,0 +1,42 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, yerself. What you want? Youse shud know dat youse talkin to a hee-ro. Me give many peeples [nightmares] and dat make Cazic-Thule happy soes he tooks me to da [Realm of Heroes]. I live dere a long time but now me back here agin. My job iz ta reward dose dat urned favor in da eyes of da gods."); + elseif(e.message:findi("nightmares")) then + e.self:Say("Dis a long story but I like tellin it cuz it about me. Trolls is gud cooks but youse need da right ingredients to make da really gud stuff. Meez always liked da taste of dem [high elves] da best so meez went to where day live over on Faydwer. Sometimes day hard to catch and day get away. Den day bring back dair friends and try to git you and dats bad."); + elseif(e.message:findi("high elves")) then + e.self:Say("Uh-huh. Day taste da best all right. Tink it is cuz day eat so many vegetables and stuff. Makes dem taste kinda like a rabbit. Soes anyway, meez saw one alone one day so meez run it down and kills it good. But it weren't a high elf. It wuz really one of dem dark elves dat had a [ring] dat made him look like one of dem udder elves. I ates him anyway but he wuz kinda stringy."); + elseif(e.message:findi("ring")) then + e.self:Say("Yup. Soes meez gots dis ring and I can use it ta look like one of dem high elves. Meez thought it wuz a good way to git dem. Soes I walk around in dair villages and stuff for a while and thought about all dem tasty elves. But meez had a [problem]. Even though I could get close to dem lookin like day do, day wouldn't follow me away from dair towns soes I could eat dem."); + elseif(e.message:findi("problem")) then + e.self:Say("Da problem is dat dose elves talk in a funny accent. Day would look at me funny when I talks to dem. Soes this is what meez do. I looked fer one of da smart ones ta leave from his shop one night and I caught him but didn't eat him. I took him back to da [cave] I was stayin in. I kept da ring on still but meez told him I wanted him to learn meez to talk like da udder elves. After learnin me dat, meez said meez would let him go."); + elseif(e.message:findi("cave")) then + e.self:Say("Soes he learn me ta talk like da elves do. Took a few months but I learned it. I figgered it was worth all da effort since meez would have all da high elf meat meez could want after dat. After meez tink he did a good job at teachin me to talk like da udder elves, meez ate him. Want meez ta [show you how] dose elves talk over dere?"); + elseif(e.message:findi("show")) then + e.self:Say("Day go like dis. . . 'How are you gentlemen!!! It is a fine day today you must agree. Would you care to have a look at my wares? Perhaps you would be interested in purchasing one of my savory meat pies.' Day are stoopid like dat. Meez could say enough tings like dem dat day weren't no longer scared. Soes what I did next wuz what [started] meez on da [path] dat urned me da favor of Cazic-Thule."); + elseif(e.message:findi("shop near kelethin")) then + e.self:Say("Meez made a lot of money in dat little shop sellin da meat pies I made outta all da elves. Udders like da humies and dorfs started ta come to meez shop ta buy da meat pies too. Everybody loved da meat pies and thought day was good. So many peeples wer commin ta meez shop dat I had ta [step up production]. Troll cookin is da best cookin, course day thought meez was a high elf."); + elseif(e.message:findi("step up production")) then + e.self:Say("Yeah. Meez needed lots more meat soes I could fills all da orders. Pretty soon though, peeples started ta notice all da missing elves and started gettin worried. Da streets of Felwithe started lookin kinda empty actually. Da stoopid elves thought it was vampires from Castle Mistmoore dat was takin peeple. Anyways, meez had ta lower da standards and started mixin in some wood elf and even humie and dorf once in a while. But it still wasn't [enough]."); + elseif(e.message:findi("enough")) then + e.self:Say("Usually meez go out and get da fresh meat I needed fer da pies but I came up with a better idea. Meez stay open late and let da meat come to me! Dat way meez need to hunt less and could spend more time at da shop cookin up da pies. Dat worked good for a while. Something [bad] happened one night though."); + elseif(e.message:findi("bad")) then + e.self:Say("It was late in da night and dis dorf came stumblin into da shop. He was real drunk and I thoughts he might add a tangy zip to da pies with all da liquor in em. Soes when he turns around I swung meez cleaver to take his ugly head off but it broke when it hit sumthin hard around dis dorf's neck. Come to find out da dorf has dis big [iron collar] around his neck. Of course, he starts screaming like a dorf."); + elseif(e.message:findi("iron collar")) then + e.self:Say("Yeah. Some stoopid peeple dat thought it was vampires started wearin dese big iron collars around dair necks at night to keep from bein bit. So I gots dis dorf bellowing all loud soes I put my hand over his head and tries to smother him. Dem dorfs are pretty tough. He bit meez finger clean off. Turn out ta be da finger dat had da ring on it. So now da dorf knows meez am a troll and he start yellin even louder. Den meez started hearin [voices coming] toward da shop."); + elseif(e.message:findi("voices coming")) then + e.self:Say("Da dorf attracted a lot of attention with all his yellin. A pretty big crowd showed up so meez started runnin. Since day no like da trolls, day was pretty mad. I got away okay but all dem wizards and druids and magicians day got over dere burnt me up pretty good. Dats why I have all dese nice blotchy scars. [What happened next] was da best part. Cazic-Thule was really happy."); + elseif(e.message:findi("happened next")) then + e.self:Say("Meez was pretty popular before day knew dat meez was a troll. Everyone in Faydwer knew about da pies I made and most of dem peeples dere liked da meat pies a lot. But when day searched da shop after meez ran away. day found all da heads of da peeples dat turned up missin. Dats when day finally realized dat da missin peeple were in da pies day all liked. Dis is da [fun part] dat really got Cazic-Thule's attention."); + elseif(e.message:findi("legend")) then + e.self:Say("Oh yeah. Day tell dair little elves if day ain't gud. Rasrok will come bake dem into a pie and eat dem. Some tink dat dis is only a legend told ta scare peeples. But whether day knows it's true or not, day still feed Cazic Thule with da fear caused by dat story. Heh. Meez not know what da big deal is with eatin a good pie but elves and dose udder peeples are pretty stoopid ta start with."); + elseif(e.message:findi("realm of heroes")) then + e.self:Say("Yeah dat iz where meez from. Well. . . First meez wuz from here den meez wuz from dere and now meez back here agin. When peeples from here do sumthin heero-ick sumtimes day get a coin fer dair deeds. Youse give me one of dem coins and meez give you sumthin good dat wurthy for a hee-ro. Maybe youse get a trip to da Realm of Heroes yerself sum day."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/grobb/Savarixsa_Zexus.lua b/grobb/Savarixsa_Zexus.lua new file mode 100644 index 0000000..4e29487 --- /dev/null +++ b/grobb/Savarixsa_Zexus.lua @@ -0,0 +1,12 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Salutations. " .. e.other:GetCleanName() .. "! I am here as a favor to my brother. High Priest Perrir. We seek loyal followers of Innoruuk to earn their place among the hierarchy of the Spires. Are you [devoted to Innoruuk]?"); + elseif(e.message:findi("devoted to innoruuk")) then + if(e.other:GetFactionValue(e.self) >= -250) then + e.self:Say("My brother requests your presence in Neriak at the Spires of Innoruuk. Take this note with you. " .. e.other:GetCleanName() .. ". It will inform Perrir of who sent you."); + e.other:SummonCursorItem(18148) -- Note of Recommendation + else + e.self:Say("You are worthless and pathetic! You could never be of service to our temple! Begone before your innards decorate our walls!"); -- not verified text, using generic DE cleric line + end + end +end diff --git a/grobb/Soulbinder_Snog.lua b/grobb/Soulbinder_Snog.lua new file mode 100644 index 0000000..5671fe5 --- /dev/null +++ b/grobb/Soulbinder_Snog.lua @@ -0,0 +1,15 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID(),0,1); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/grobb/Treskar.lua b/grobb/Treskar.lua new file mode 100644 index 0000000..c056e62 --- /dev/null +++ b/grobb/Treskar.lua @@ -0,0 +1,48 @@ +-- Quest Name: Treskar's Secret Mission +-- Quest for SK GM Treskar in Grobb + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You dare speak to Master Treskar! You be [sent by Hukulk] or you be hurtin'! Me have no time to waste with ugly one like you!"); + elseif(e.message:findi("sent by hukulk")) then + e.self:Say("Ha! Hukulk accept puny troll now?! Ha! You join us and you join fight. Nightkeep enemy is " .. e.other:GetCleanName() .. " enemy! You help smash [other weak shadowknights]. Them weak. We true power! You bash good and maybe you do [secret mission] for Treskar."); + elseif(e.message:findi("other weak shadowknights")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Other shadowknights is ogre shadowknights! They name is Greenbloods. They no match for Nightkeep! We tear arms from ogre bodies. You not as powerful as Treskar so you smash young Greenbloods. You hunt YOUNG members of Greenblood shadowknights. You bring me black shadow tunic and me share treasures from Nightkeep vault with puny " .. e.other:GetCleanName() .. ". Go"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Me talk to you 'bout dat when you do more to help Nightkeep! Kill all Greenbloods! Kill all froggies!"); + else + e.self:Say("<..Sniff, sniff, sniff..> Me smell the blood of enemy in you. You fool to talk to Nightkeep shadowknight! Me bleed you if you no run!"); + end + elseif(e.message:findi("secret mission")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Nightkeep hear bashers see fungus man spore guardian at Innothule. Him protect young fungus man spores so they grow big, BIG an' attack trolls!! You go find spore guardian. Smash hi big red head!! Bring Treskar that huge mushroom head of his to prove he walk no more. You do this and me give you froglok skin mask."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Me talk to you 'bout dat when you do more to help Nightkeep! Kill all Greenbloods! Kill all froggies!"); + else + e.self:Say("<..Sniff, sniff, sniff..> Me smell the blood of enemy in you. You fool to talk to Nightkeep shadowknight! Me bleed you if you no run!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Me change mind! Me want total of THREE ogre black shadow tunics. Ha Ha! And you also pay two gold for Nightkeep tax! Ha! Ha!"; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12190})) then + e.self:Say("You do it! You am great knight. Me give you special froglok skin mask. Shaman make for Nightkeep. It am make you smarter like Treskar... Me tink so!"); + e.other:Faction(e.self,308,20); -- Shadowknights of Night Keep (Troll SK) + e.other:Faction(e.self,222,-3); -- Green Blood Knights (Ogre SK) + e.other:Faction(e.self,222,-5); -- Broken Skull Clan + e.other:Faction(e.self,235,1); -- Da Bashers (Grobb general guards) + e.other:QuestReward(e.self,0,0,0,0,2308,10000); -- Item: Froglok Skin Mask + elseif (e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12199,item2 = 12199,item3 = 12199, gold = 2},1,text)) then -- factions not verified + e.self:Say("Hmm... You do good job. You surprise Treskar. Maybe you good after all. Maybe Treskar give you [secret mission]. Maybe not"); + e.other:Faction(e.self,308,20); -- Shadowknights of Night Keep (Troll SK) + e.other:Faction(e.self,222,-3); -- Green Blood Knights (Ogre SK) + e.other:Faction(e.self,222,-5); -- Broken Skull Clan + e.other:Faction(e.self,235,1); -- Da Bashers (Grobb general guards) + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(6014, 5023, 6013, 7009, 5013, 5021),1000); -- Random rusty weapon + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/grobb/Urako.lua b/grobb/Urako.lua new file mode 100644 index 0000000..31bf31d --- /dev/null +++ b/grobb/Urako.lua @@ -0,0 +1,15 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Me says hi to you. What you want from me? Oh!! Me shaman trainer. You must be shaman. Are you [shaman Darkone]?"); + elseif(e.message:findi("i am a shaman darkone")) then + e.self:Say("You choose rite if you bes a shaman. Wes da best. You remember ta not get in Kaglari way. He get mad berry easy. He gets berry mad at Urako if he finds out me make [big mistake]."); + elseif(e.message:findi("what big mistake")) then + e.self:Say("Kaglari makes Urako cleans his kwarters. He says nots to open closet. Me make mistake and opens his closet and out comes da skeletons. Dey runs out into Grobb. Me needs ta gets dem back before Kaglari finds out. Me needs sumwun to [collect Kaglari skeletons]."); + elseif(e.message:findi("i want to collect kaglari skeletons")) then + e.self:Say("Tank you!! Dere is fours of dem. You can finds dem here in Grobb. I no tink dey will want to come homes to Kaglari's closet. You ask dem to [come back to the closet] and see whut dey say. If you gets dem back me promise to gives you a [Kaglari mana doll]."); + elseif(e.message:findi("what kaglari mana doll")) then + e.self:Say("Kaglari catch many humans. He pull spirit from dem and force into dolls. Now deir spirit give shaman extra mana. Dey good power source. Now humans good for someting. Da mana dolls only for shaman power."); + end +end diff --git a/grobb/a_prisoner.lua b/grobb/a_prisoner.lua new file mode 100644 index 0000000..fae349f --- /dev/null +++ b/grobb/a_prisoner.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Rrrribit.. Please, let me go!! I don't want to be eaten!!"); + elseif(e.message:findi("glib sent me")) then + e.self:Say("Liessss. ...Groakk.. I do not believe you!! Bring me proof. Bring me the necklace of a basher!! ..Groakk.."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 13311})) then + e.self:Say("Groak.. So you are a friend to the froglok. ..Grooakk.. I am soon to die. My precious legs are a delicacy here. Before I go I must contact my brother Grikk. He is a froglok forager in Innothule. Give him this vial. He will know what it means"); + e.other:QuestReward(e.self,0,0,0,0,13375,500); + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 13376})) then + e.self:Say("Grooak.. You have done much to help me. This will come in handy soon. Thank you. Here is Marda's information. Take it to her. They must know. Farewell."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(18884,18885),500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/growthplane/#a_thifling_sprite.lua b/growthplane/#a_thifling_sprite.lua new file mode 100644 index 0000000..de2c9e8 --- /dev/null +++ b/growthplane/#a_thifling_sprite.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.set_timer("hum",45000); +end + +function event_timer(e) + e.self:Emote("makes an odd series of gurgles and murmurs to itself. It seems like the random collection of unintelligeble noise is supposed to simulate language."); +end \ No newline at end of file diff --git a/growthplane/Ail_the_Elder.lua b/growthplane/Ail_the_Elder.lua new file mode 100644 index 0000000..74c216d --- /dev/null +++ b/growthplane/Ail_the_Elder.lua @@ -0,0 +1,48 @@ +function event_combat(e) + if(e.joined) then + call_zone_to_assist(e.self,e.other); + eq.set_timer("come",300000); + else + eq.stop_timer("come"); + end +end + +function event_timer(e) + if(e.timer == "come") then + e.self:Shout("Creations of Tunare, your help is needed!"); + call_zone_to_assist(e.self,e.other); + end +end + +function call_zone_to_assist(e_self,e_other) + -- set to true to enable debug messages + local show_debug = false; + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- move the mobs to the location that is calling to. + local include_npc_list = Set {127062,127110,127063}; -- plant mobs + local npc_list = entity_list:GetNPCList(); + if (npc_list ~= nil) then + for npc in npc_list.entries do + if (include_npc_list[npc:GetNPCTypeID()] ~= nil) then + -- npc.valid will be true if the NPC is actually spawned + if (npc.valid) then + npc:CastToNPC():MoveTo(e_self:GetX(),e_self:GetY(),e_self:GetZ(),0,false); + if (show_debug) then e_other:Message(4,"NPCID: " .. npc:GetNPCTypeID() .. " is valid, adding hate on " .. npc:GetName() .. "."); end + else + if (show_debug) then e_other:Message(4,"NPCID: " .. npc:GetNPCTypeID() .. " is invalid, unable to add hate on " .. npc:GetName() .. "."); end + end + else + if (show_debug) then e_other:Message(4,"NPCID: " .. npc:GetNPCTypeID() .. " is excluded, not adding hate on " .. npc:GetName() .. "."); end + end + end + end +end + +-- Set function example from Programming In Lua +-- http://www.lua.org/pil/11.5.html +function Set (list) + local set = {} + for _, l in ipairs(list) do set[l] = true end + return set +end \ No newline at end of file diff --git a/growthplane/Ancient_Totem.lua b/growthplane/Ancient_Totem.lua new file mode 100644 index 0000000..017103a --- /dev/null +++ b/growthplane/Ancient_Totem.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.other:GetLevel() >= 55) then + if(e.message:findi("hail")) then + e.self:Say("Greetings, my friend. It is not often that we see strangers coming to this plane. I fear that our growing infestation problem has kept us busy as of late. The time for battle grows near yet we still do not have the offensive magics necessary to fend off our enemies."); + elseif(e.message:findi("magic")) then + e.self:Say("There are legends describing scrolls of ultimate power and enlightenment from fallen channelers that preserver the knowledge necessary for us to overcome our plight. Since these are just legends I cannot assure you that these scrolls exist, but at this point they are our only hope."); + elseif(e.message:findi("scroll")) then + e.self:Say("The ancient scrolls needed to complete the Tome that will aid us are found in Dragon Necropolis if the legends are true. The tome itself was made up of the incantations and the teachings of the great Lel`Farthok who was a mighty channeler for his time."); + elseif(e.message:findi("hope")) then + e.self:Say("Our hope is that sometime soon these scrolls will be discovered by a hero. Are you that hero, " .. e.other:GetCleanName() .. "?"); + elseif(e.message:findi("hero")) then + e.self:Say("The difficutly of this task will test you to your limits. Go seek the ancient scrolls within the confines of the Dragon Necropolis. When you have retrieved all four of them, return them to me immediately."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31440,item2 = 31442,item3 = 31441,item4 = 31439}) and e.other:GetLevel() >= 55) then + e.self:Say("Thank you, friend. These scrolls will serve us well in the future. Please take this as a sign of my gratitude."); -- Text made up + e.other:QuestReward(e.self,0,0,0,0,1324,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/growthplane/Fayl_Everstrong.lua b/growthplane/Fayl_Everstrong.lua new file mode 100644 index 0000000..3cb8efe --- /dev/null +++ b/growthplane/Fayl_Everstrong.lua @@ -0,0 +1,48 @@ +function event_combat(e) + if(e.joined) then + call_zone_to_assist(e.self,e.other); + eq.set_timer("come",300000); + else + eq.stop_timer("come"); + end +end + +function event_timer(e) + if(e.timer == "come") then + e.self:Shout("Entoling hordes, come to me now!"); + call_zone_to_assist(e.self,e.other); + end +end + +function call_zone_to_assist(e_self,e_other) + -- set to true to enable debug messages + local show_debug = false; + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- move the mobs to the location that is calling to. + local include_npc_list = Set {127027,127103,127026}; -- entoiling mobs + local npc_list = entity_list:GetNPCList(); + if (npc_list ~= nil) then + for npc in npc_list.entries do + if (include_npc_list[npc:GetNPCTypeID()] ~= nil) then + -- npc.valid will be true if the NPC is actually spawned + if (npc.valid) then + npc:CastToNPC():MoveTo(e_self:GetX(),e_self:GetY(),e_self:GetZ(),0,false); + if (show_debug) then e_other:Message(4,"NPCID: " .. npc:GetNPCTypeID() .. " is valid, adding hate on " .. npc:GetName() .. "."); end + else + if (show_debug) then e_other:Message(4,"NPCID: " .. npc:GetNPCTypeID() .. " is invalid, unable to add hate on " .. npc:GetName() .. "."); end + end + else + if (show_debug) then e_other:Message(4,"NPCID: " .. npc:GetNPCTypeID() .. " is excluded, not adding hate on " .. npc:GetName() .. "."); end + end + end + end +end + +-- Set function example from Programming In Lua +-- http://www.lua.org/pil/11.5.html +function Set (list) + local set = {} + for _, l in ipairs(list) do set[l] = true end + return set +end \ No newline at end of file diff --git a/growthplane/Guardian_of_Takish.lua b/growthplane/Guardian_of_Takish.lua new file mode 100644 index 0000000..e8d6dc3 --- /dev/null +++ b/growthplane/Guardian_of_Takish.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.other:GetLevel() >= 55) then + if(e.message:findi("hail")) then + e.self:Say("Well met, " .. e.other:GetCleanName() .. ". It is indeed a wondrous day to be serving the lady Tunare. If you know of any templars or knights, send them to me."); + elseif(e.message:findi("knight")) then + e.self:Say("Fortune smile upon me this day. It seems that the great corrupter and the Prince of Hate have been spreading seeds of corruption within this continent. Will you assist us to stop them?"); + elseif(e.message:findi("assist")) then + e.self:Say("Seek out the corrupter of life in the plane of hate and slay him. He has been reported performing dark rituals upon various wildlife within the Wakening Lands during the late hours of night. Return to me any evidence that you may find."); + elseif(e.message:findi("templar")) then + e.self:Say("I require your aid. It seems the agents of corruption have supplied the followers of the warbringer with four idols that will help defoliate the Wakening Lands. Will you aid me, noble Templar?"); + elseif(e.message:findi("aid")) then + e.self:Say("Excellent. Gather the four idols that are held in Kael and return them to me. I will then properly dispose of these foul creations."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31427,item2 = 31430,item3 = 31429,item4 = 31428}) and e.other:GetLevel() >= 55) then + e.self:Say("May Tunare's blessing be upon thee! Here, take this item and use it wisely."); + e.other:QuestReward(e.self,0,0,0,0,1209,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31432,item2 = 31434,item3 = 31431,item4 = 31433}) and e.other:GetLevel() >= 55) then + e.self:Say("May Tunare's blessing be upon thee! Here, take this item and use it wisely."); + e.other:QuestReward(e.self,0,0,0,0,1223,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/growthplane/Prince_Thirneg.lua b/growthplane/Prince_Thirneg.lua new file mode 100644 index 0000000..43c9513 --- /dev/null +++ b/growthplane/Prince_Thirneg.lua @@ -0,0 +1,12 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Salutations, " .. e.other:GetCleanName() .. "! I am the Prince of the Tunarean Court! What brings you to this most sacred of all Tunares blessed creations?"); + elseif(e.message:findi("gelistial")) then + e.self:Say("Gelistial is a very wise Lady. She does well in her duties to the court as well as the duties to her people. Unfortunately the weight of her responsibility prevents us from meeting as often as I would like."); + elseif(e.message:findi("lithiniath")) then + e.self:Say("Ahh..Lithiniath, the first of the black unicorns, cursed by Fizzlethorpe Bristlebane to spread madness and delusions. Lithiniath is not evil, but his lawful magical nature has been replaced with a chaotic reflection of it that has twisted his mind. Lithiniaths physical form can not survive the removal of the chaotic magical nature. The only cure for Lithiniath is death and rebirth into a lawful vessel."); + elseif(e.message:findi("phat lewt")) then + e.other:Damage(e.self,990000,982,52); + e.self:Say("You shall find no 'phat lewtz' here! Your selfishness shall be your downfall!"); + end +end diff --git a/growthplane/Rumbleroot.lua b/growthplane/Rumbleroot.lua new file mode 100644 index 0000000..357d43c --- /dev/null +++ b/growthplane/Rumbleroot.lua @@ -0,0 +1,48 @@ +function event_combat(e) + if(e.joined) then + call_zone_to_assist(e.self,e.other); + eq.set_timer("come",300000); + else + eq.stop_timer("come"); + end +end + +function event_timer(e) + if(e.timer == "come") then + e.self:Shout("Spirits of the groves, you are needed now!"); + call_zone_to_assist(e.self,e.other); + end +end + +function call_zone_to_assist(e_self,e_other) + -- set to true to enable debug messages + local show_debug = false; + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- move the mobs to the location that is calling to. + local include_npc_list = Set {127025,127108}; -- wisp mobs + local npc_list = entity_list:GetNPCList(); + if (npc_list ~= nil) then + for npc in npc_list.entries do + if (include_npc_list[npc:GetNPCTypeID()] ~= nil) then + -- npc.valid will be true if the NPC is actually spawned + if (npc.valid) then + npc:CastToNPC():MoveTo(e_self:GetX(),e_self:GetY(),e_self:GetZ(),0,false); + if (show_debug) then e_other:Message(4,"NPCID: " .. npc:GetNPCTypeID() .. " is valid, adding hate on " .. npc:GetName() .. "."); end + else + if (show_debug) then e_other:Message(4,"NPCID: " .. npc:GetNPCTypeID() .. " is invalid, unable to add hate on " .. npc:GetName() .. "."); end + end + else + if (show_debug) then e_other:Message(4,"NPCID: " .. npc:GetNPCTypeID() .. " is excluded, not adding hate on " .. npc:GetName() .. "."); end + end + end + end +end + +-- Set function example from Programming In Lua +-- http://www.lua.org/pil/11.5.html +function Set (list) + local set = {} + for _, l in ipairs(list) do set[l] = true end + return set +end diff --git a/growthplane/Treah_Greenroot.lua b/growthplane/Treah_Greenroot.lua new file mode 100644 index 0000000..721bb1a --- /dev/null +++ b/growthplane/Treah_Greenroot.lua @@ -0,0 +1,48 @@ +function event_combat(e) + if(e.joined) then + call_zone_to_assist(e.self,e.other); + eq.set_timer("come",300000); + else + eq.stop_timer("come"); + end +end + +function event_timer(e) + if(e.timer == "come") then + e.self:Shout("Sylvan protectors, the glades call for your aid!"); + call_zone_to_assist(e.self,e.other); + end +end + +function call_zone_to_assist(e_self,e_other) + -- set to true to enable debug messages + local show_debug = false; + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- move the mobs to the location that is calling to. + local include_npc_list = Set {127053}; -- a sylvan protector + local npc_list = entity_list:GetNPCList(); + if (npc_list ~= nil) then + for npc in npc_list.entries do + if (include_npc_list[npc:GetNPCTypeID()] ~= nil) then + -- npc.valid will be true if the NPC is actually spawned + if (npc.valid) then + npc:CastToNPC():MoveTo(e_self:GetX(),e_self:GetY(),e_self:GetZ(),0,false); + if (show_debug) then e_other:Message(4,"NPCID: " .. npc:GetNPCTypeID() .. " is valid, adding hate on " .. npc:GetName() .. "."); end + else + if (show_debug) then e_other:Message(4,"NPCID: " .. npc:GetNPCTypeID() .. " is invalid, unable to add hate on " .. npc:GetName() .. "."); end + end + else + if (show_debug) then e_other:Message(4,"NPCID: " .. npc:GetNPCTypeID() .. " is excluded, not adding hate on " .. npc:GetName() .. "."); end + end + end + end +end + +-- Set function example from Programming In Lua +-- http://www.lua.org/pil/11.5.html +function Set (list) + local set = {} + for _, l in ipairs(list) do set[l] = true end + return set +end \ No newline at end of file diff --git a/growthplane/Tunarean_Earthmelder.lua b/growthplane/Tunarean_Earthmelder.lua new file mode 100644 index 0000000..91ae3f7 --- /dev/null +++ b/growthplane/Tunarean_Earthmelder.lua @@ -0,0 +1,34 @@ +function event_spawn(e) + eq.set_timer("hum",90000); +end + +function event_timer(e) + e.self:Emote("seems to pulse as its roots dig into the ground around it."); +end + +function event_say(e) + if(e.other:GetLevel() >= 55) then + if(e.message:findi("hail")) then + e.self:Say("Hail, my friend. Unfortunately I cannot talk right now. The giants must be dealt with."); + elseif(e.message:findi("giants")) then + e.self:Say("The giants are continuing to put forth efforts to encroach the lands blessed by Tunare. We need an outrider or preserver to aid us in our continued fight."); + elseif(e.message:findi("preserver")) then + e.self:Say("Noble preserver, you will be needed to combat the priests of the warbringer. Scouts have reported three priests wandering the Wakening Lands in search of a site to build a shrine to their god. Seek them out, kill them, and bring their heads and those of anyone else involved."); + elseif(e.message:findi("outrider")) then + e.self:Say("We have need of you to disrupt the construction efforts of the giants in the Wakening Land. Find the frost giant overseer, kill him and any others that are responsible for the building and bring back their heads."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31424,item2 = 31425,item3 = 31426,item4 = 31423}) and e.other:GetLevel() >= 55) then + e.self:Say("You have done well, " .. e.other:GetCleanName() .. ". Here, take this item and use it well! Your efforts will not be forgotten."); + e.other:QuestReward(e.self,0,0,0,0,1208,1000); -- Gloves of Earthcrafting + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31419,item2 = 31420,item3 = 31421,item4 = 31422}) and e.other:GetLevel() >= 55) then + e.self:Say("You have done well, " .. e.other:GetCleanName() .. ". Here, take this item and use it well! Your efforts will not be forgotten."); + e.other:QuestReward(e.self,0,0,0,0,1207,1000); -- Helm of the Tracker + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/growthplane/Undogo_Digolo.lua b/growthplane/Undogo_Digolo.lua new file mode 100644 index 0000000..489b02b --- /dev/null +++ b/growthplane/Undogo_Digolo.lua @@ -0,0 +1,38 @@ +function event_combat(e) + + if ( e.joined ) then + HelpMe(e); + eq.set_timer("help", 300000); + else + eq.stop_timer("help"); + end +end + +function event_timer(e) + + if ( e.timer == "help" ) then + e.self:Shout("Undogo, oldogo, gaba, daga!"); + HelpMe(e); + end +end + +function HelpMe(e) + + local helpers = { + [127027] = 1, -- an_entoling_culler + [127103] = 1, -- an_entoling_essence_channeler + [127026] = 1, -- an_entoling_harvester + }; + + local list = eq.get_entity_list():GetNPCList(); + + if ( list ) then + + for npc in list.entries do + + if ( helpers[npc:GetNPCTypeID()] and npc.valid ) then + npc:CastToNPC():MoveTo(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0, false); + end + end + end +end diff --git a/growthplane/a_gleaming_sphere_of_light.lua b/growthplane/a_gleaming_sphere_of_light.lua new file mode 100644 index 0000000..fdcb67d --- /dev/null +++ b/growthplane/a_gleaming_sphere_of_light.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.other:GetLevel() >= 55) then + if(e.message:findi("hail")) then + e.self:Say("I greet thee, " .. e.other:GetCleanName() .. ". You will have to pardon my demeanour; I am afraid that I am not in the best of spirits. Recently yet another brother was taken from us by an evil unknown through the dark art of mind rending."); + elseif(e.message:findi("evil")) then + e.self:Say("Somewhere there exists a group of outcast phantasmists that use their powers solely to harvest pure evil. These masters of the mind are of an origin that we have yet to uncover, for they exist only in one's thoughts, slowly turning one insane from the horrors that pound through their mind."); + elseif(e.message:findi("outcast")) then + e.self:Say("These outcasts were once believe to be part of our circle before turning to the way of evil and using the mindbending abilities that they possess to take over those whose knowledge would benefit them most."); + elseif(e.message:findi("abilities")) then + e.self:Say("What these beguilers are capable of is unknown, but what we do know is that as each day passes we are all at risk from an attack that could very well end us. But there is a chance that if we could find the ancient tomes of their weaknesses, this evil could be stopped."); + elseif(e.message:findi("tomes")) then + e.self:Say("Legend exists that there are two lost tomes that cover the darker sides of mind control. These tomes were last believed to be possessed by mortals much like yourself that stumbled upon them not knowing what they possessed because they could not understand the unknown code the books are scribed in."); + elseif(e.message:findi("code")) then + e.self:Say("To prevent those that could not control the powerful abilities that these tomes described how to perform, these tomes were scribed of ancient language that not many could decifer. In search of someone that could assist them, these heros fell in the city of giants."); + elseif(e.message:findi("language")) then + e.self:Say("As I told you before, these books are distinctly coded to only be understood by those that have the abilities to perform and contain these magics. If these tomes were recovered it is very possible that I could decode them and develop an immunity to the mind altering attacks that I feel are upon us."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31445,item2 = 31446,item3 = 31443,item4 = 31444}) and e.other:GetLevel() >= 55) then + e.self:Say("In my hands I hold the teachings of those who gave their lives to produce a defense against the evils of mind control. For what you have done for me I cannot thank you enough; please accept this magical item as a reminder of my gratitude."); + e.other:QuestReward(e.self,0,0,0,0,1325,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/growthplane/a_guardian_power.lua b/growthplane/a_guardian_power.lua new file mode 100644 index 0000000..7889110 --- /dev/null +++ b/growthplane/a_guardian_power.lua @@ -0,0 +1,5 @@ +function event_waypoint_arrive(e) + if(e.wp == 2) then + e.self:Emote("roars loudly and stomps on the ground as it looks into the trees as if in challenge to anything that would harm the sifaye."); + end +end \ No newline at end of file diff --git a/growthplane/a_mosscovered_treant.lua b/growthplane/a_mosscovered_treant.lua new file mode 100644 index 0000000..1924d5c --- /dev/null +++ b/growthplane/a_mosscovered_treant.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.other:GetLevel() >= 55) then + if(e.message:findi("hail")) then + e.self:Say("I welcome thee, " .. e.other:GetCleanName() .. ". Is there something I can assist you with? I am afraid my tireless searching for the incantations is going to be endless."); + elseif(e.message:findi("searching")) then + e.self:Say("For quite some time now I have been seeking the teachings and scribings of Conjurers and Summoners of great power. As I continue my personal quest towards enlightenment there is absolute knowledge that evades me to this day."); + elseif(e.message:findi("knowledge")) then + e.self:Say("There is believed to be a tome that contained only the most spectacular and powerful summoning. Many great magicians of time passed were believed to be contributors to this magical tome. During the meeting called by these select few something went terribly wrong."); + elseif(e.message:findi("wrong")) then + e.self:Say("Of those in attendance, there was one servant of Innoruuk whose intentions were to steal the research and knowledge of his peers and use it to benefit himself and his Dark god. This selfishness led to numerous Intellectual conflicts and the Arch-Magi decided to go their separate ways, only to perish so close to the answer for which they sought."); + elseif(e.message:findi("answer")) then + e.self:Say("As time progressed the Elementalists continued their studies and research only to soon discover that there was always something missing. As each of them decended upon the Skyshrine they continued to look, not knowing that what they were searching for was each other."); + elseif(e.message:findi("look")) then + e.self:Say("That is a kind gesture indeed my friend, but be warned the journey that lies ahead of you will not be easy. But I have faith that this tome will one day be assembled as it was always meant to be and never was. I have faith that the pages do still exist, waiting to be unearthed."); + elseif(e.message:findi("journey")) then + e.self:Say("Search the lands for the remains of these Arch-mages, " .. e.other:GetCleanName() .. ". Only when I have these teachings and am able to once again construct this tome may I bring myself closer to my Enlightenment and Arcane Mastery."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31435,item2 = 31436,item3 = 31437,item4 = 31438}) and e.other:GetLevel() >= 55) then + e.self:Emote("whispers, like wind through the tree tops, as it speaks hushed words to the tree."); -- Not sure if this is the right response + e.other:QuestReward(e.self,0,0,0,0,1224,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/growthplane/a_mumbling_totem_man.lua b/growthplane/a_mumbling_totem_man.lua new file mode 100644 index 0000000..4c4b181 --- /dev/null +++ b/growthplane/a_mumbling_totem_man.lua @@ -0,0 +1,7 @@ +function event_waypoint_arrive(e) + if(e.wp == 1 and e.self:GetGrid() == 12) then + e.self:Emote("mumbles and clicks to itself as it stares at the huge totem."); + elseif (e.wp == 1 and e.self:GetGrid() == 13) then + e.self:Emote("clicks to itself as it circles the ancient totem."); + end +end \ No newline at end of file diff --git a/growthplane/a_protector_of_growth.lua b/growthplane/a_protector_of_growth.lua new file mode 100644 index 0000000..61e385a --- /dev/null +++ b/growthplane/a_protector_of_growth.lua @@ -0,0 +1,14 @@ +function event_spawn(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(127005) == false) then + eq.set_timer("chance",1000); + end +end + +function event_timer(e) + if(e.timer == "chance") then + eq.stop_timer("chance"); + if(math.random(2) == 1) then + eq.spawn2(127005,0,0,-1006,-196,45,0); -- NPC: #a_protector_of_growth + end + end +end diff --git a/growthplane/a_reverent_treant.lua b/growthplane/a_reverent_treant.lua new file mode 100644 index 0000000..4bba2a7 --- /dev/null +++ b/growthplane/a_reverent_treant.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.set_timer("hum",30000); +end + +function event_timer(e) + e.self:Emote(eq.ChooseRandom("rumbles. Its voice sounds like bark cracking and moving in a strange hum of song. It seems to be humming to the large tree.","whispers, like wind through the tree tops, as it speaks hushed words to the tree.")); +end \ No newline at end of file diff --git a/growthplane/a_thifling_orator.lua b/growthplane/a_thifling_orator.lua new file mode 100644 index 0000000..1f8a586 --- /dev/null +++ b/growthplane/a_thifling_orator.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.set_timer("hum",180000); +end + +function event_timer(e) + e.self:Say("Step three is... uh... I forgets but step four is growth. Dont forget!"); +end \ No newline at end of file diff --git a/growthplane/encounters/Tunare.lua b/growthplane/encounters/Tunare.lua new file mode 100644 index 0000000..2804436 --- /dev/null +++ b/growthplane/encounters/Tunare.lua @@ -0,0 +1,101 @@ +function TunareSpawn(e) + eq.set_timer("SpawnTunare",1000); +end + +function TunareTimer(e) + if(e.timer == "SpawnTunare") then + eq.stop_timer("SpawnTunare"); + eq.unique_spawn(127001,0,0,-1632,1525,206,0); -- Tunare back in her tree. + end +end + +function TunareSignal(e) + if(e.signal == 1) then + eq.unique_spawn(127002,0,0,-247,1609,-40,424); -- NPC: #Tunare + eq.depop(127001); + elseif(e.signal == 2) then + eq.unique_spawn(127001,0,0,-1632,1525,206,0); -- reset Tunare back in her tree. + eq.depop(127002); + elseif(e.signal == 3) then + eq.depop_with_timer(); -- set the respawn timer + end +end + +function TunareCombat(e) + if (e.joined) then + eq.signal(127097,1); -- send signal to spawn the 2nd Tunare. + end +end + +function Tunare2Spawn(e) + eq.set_timer("depop",900000); +end + +function Tunare2Timer(e) + if(e.timer == "depop") then + eq.stop_timer("depop") + eq.signal(127097,2); + end +end + +function Tunare2Combat(e) + if (e.joined) then + call_zone_to_assist(e.self,e.other); + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function Tunare2Death(e) + eq.signal(127097,3); + eq.stop_timer("depop"); +end + +function call_zone_to_assist(e_self,e_other) + -- set to true to enable debug messages + local show_debug = false; + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- aggro the zone onto whoever attacked me. + -- do not aggro these mobs #_Tunare (127001), #Tunare (127002), a_warm_light (127004) + -- #BouncerMan (127097), Prince_Thirneg (127096), a_thifling_focuser (127006 and 127106) + local exclude_npc_list = Set {127001,127004,127097,127002,127096,127006,127106}; + local npc_list = entity_list:GetNPCList(); + if (npc_list ~= nil) then + for npc in npc_list.entries do + if (exclude_npc_list[npc:GetNPCTypeID()] == nil) then + -- npc.valid will be true if the NPC is actually spawned + if (npc.valid) then + npc:CastToNPC():MoveTo(e_self:GetX(),e_self:GetY(),e_self:GetZ(),0,false); + if (show_debug) then e_other:Message(4,"NPCID: " .. npc:GetNPCTypeID() .. " is valid, adding hate on " .. npc:GetName() .. "."); end + else + if (show_debug) then e_other:Message(4,"NPCID: " .. npc:GetNPCTypeID() .. " is invalid, unable to add hate on " .. npc:GetName() .. "."); end + end + else + if (show_debug) then e_other:Message(4,"NPCID: " .. npc:GetNPCTypeID() .. " is excluded, not adding hate on " .. npc:GetName() .. "."); end + end + end + end +end + +-- Set function example from Programming In Lua +-- http://www.lua.org/pil/11.5.html +function Set (list) + local set = {} + for _, l in ipairs(list) do set[l] = true end + return set +end + +function event_encounter_load(e) + eq.register_npc_event("Tunare", Event.spawn, 127097, TunareSpawn); + eq.register_npc_event("Tunare", Event.timer, 127097, TunareTimer); + eq.register_npc_event("Tunare", Event.signal, 127097, TunareSignal); + eq.register_npc_event("Tunare", Event.combat, 127001, TunareCombat); + eq.register_npc_event("Tunare", Event.spawn, 127002, Tunare2Spawn); + eq.register_npc_event("Tunare", Event.timer, 127002, Tunare2Timer); + eq.register_npc_event("Tunare", Event.combat, 127002, Tunare2Combat); + eq.register_npc_event("Tunare", Event.death_complete, 127002, Tunare2Death); +end diff --git a/growthplane/keeper_of_the_glades.lua b/growthplane/keeper_of_the_glades.lua new file mode 100644 index 0000000..af7943a --- /dev/null +++ b/growthplane/keeper_of_the_glades.lua @@ -0,0 +1,48 @@ +function event_combat(e) + if(e.joined) then + call_zone_to_assist(e.self,e.other); + eq.set_timer("come",300000); + else + eq.stop_timer("come"); + end +end + +function event_timer(e) + if(e.timer == "come") then + e.self:Shout("Invaders! Kill and crush, claw and tooth! Drive them back!"); + call_zone_to_assist(e.self,e.other); + end +end + +function call_zone_to_assist(e_self,e_other) + -- set to true to enable debug messages + local show_debug = false; + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- move the mobs to the location that is calling to. + local include_npc_list = Set {127029}; -- a phase puma + local npc_list = entity_list:GetNPCList(); + if (npc_list ~= nil) then + for npc in npc_list.entries do + if (include_npc_list[npc:GetNPCTypeID()] ~= nil) then + -- npc.valid will be true if the NPC is actually spawned + if (npc.valid) then + npc:CastToNPC():MoveTo(e_self:GetX(),e_self:GetY(),e_self:GetZ(),0,false); + if (show_debug) then e_other:Message(4,"NPCID: " .. npc:GetNPCTypeID() .. " is valid, adding hate on " .. npc:GetName() .. "."); end + else + if (show_debug) then e_other:Message(4,"NPCID: " .. npc:GetNPCTypeID() .. " is invalid, unable to add hate on " .. npc:GetName() .. "."); end + end + else + if (show_debug) then e_other:Message(4,"NPCID: " .. npc:GetNPCTypeID() .. " is excluded, not adding hate on " .. npc:GetName() .. "."); end + end + end + end +end + +-- Set function example from Programming In Lua +-- http://www.lua.org/pil/11.5.html +function Set (list) + local set = {} + for _, l in ipairs(list) do set[l] = true end + return set +end \ No newline at end of file diff --git a/growthplane/script_init.lua b/growthplane/script_init.lua new file mode 100644 index 0000000..ec108a6 --- /dev/null +++ b/growthplane/script_init.lua @@ -0,0 +1 @@ +eq.load_encounter("Tunare"); diff --git a/gukbottom/a_ghoul_scribe.lua b/gukbottom/a_ghoul_scribe.lua new file mode 100644 index 0000000..ef8d05b --- /dev/null +++ b/gukbottom/a_ghoul_scribe.lua @@ -0,0 +1,13 @@ +-- Ink of the dark - enchanter epic lead in quest + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10626})) then + e.self:Say("Crroooaak! Crrroooooaaakk!"); + e.other:QuestReward(e.self,0,0,0,0,10601); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- EOF zone: gukbottom ID: 66170 NPC: a_ghoul_scribe \ No newline at end of file diff --git a/guktop/a_saltwater_croc.lua b/guktop/a_saltwater_croc.lua new file mode 100644 index 0000000..6fb393a --- /dev/null +++ b/guktop/a_saltwater_croc.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.signal(65150,1); -- NPC: croc_trigger +end \ No newline at end of file diff --git a/guktop/an_ancient_croc.lua b/guktop/an_ancient_croc.lua new file mode 100644 index 0000000..6fb393a --- /dev/null +++ b/guktop/an_ancient_croc.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.signal(65150,1); -- NPC: croc_trigger +end \ No newline at end of file diff --git a/guktop/an_old_froglok.lua b/guktop/an_old_froglok.lua new file mode 100644 index 0000000..987bc7b --- /dev/null +++ b/guktop/an_old_froglok.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.other:GetFaction(e.self) < 3) then -- need warmly + if(e.message:findi("hail")) then + e.self:Say("Frroooaaaaaakkkk!"); + elseif(e.message:findi("mask")) then + e.self:Say("Frroooaaaaaakkkk! Speciaaal maaask I maaake for sneaky types! Lost long ago! Baaad frogs taaake! I too old to maaake more! Frroooaaaaaakkkk! Maaagic aaalmost used up! So cold! You help me! I help you!"); + elseif(e.message:findi("help")) then + e.self:Say("Frroooaaaaaakkkk! So cold! You bring me waaarm velium mastodon fur cloaaak! I need supplies! You bring me maaana juice! You bring me elf essence! You bring me sturdy froglock crown those naaasty big frogs stole! Frroooaaaaaakkkk! I maaake you something nice! So cold! You bring me all those things, don't forget cloaaak!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 3 and item_lib.check_turn_in(e.self, e.trade, {item1 = 11275},0)) then + e.self:Emote("flips and says, 'Frroooaaaaaakkkk! I'm in this book! You see me! Owww that flip hurt my old bones! Frroooaaaaaakkkk! Look there is a picture of my maaask from long ago! Frroooaaaaaakkkk! I keep book! You taaake this recipe! Maaaybe more! I'm in book! Frroooaaaaaakkkk!'"); + e.other:Faction(e.self,251,1); -- Froglok of Guk + e.other:QuestReward(e.self,0,0,0,0,18499,500); + elseif(e.other:GetFaction(e.self) < 3 and item_lib.check_turn_in(e.self, e.trade, {item1 = 11274,item2 = 11276,item3 = 10254,item4 = 26999})) then + e.self:Say("Frroooaaaaaakkkk!!! This cloaaak so waaarm! Here let me work! Frroooaaaaaakkkk!' The old froglok goes to work on the crown and after uttering a few froaks, a small cloud of smoke rises from the crown. You reach over and pick it up. 'Frroooaaaaaakkkk! Maaagic haaat! Taaake good care of it aaand staay away from baaad frogs! Frroooaaaaaakkkk!"); + e.other:Faction(e.self,251,10); -- Froglok of Guk + e.other:QuestReward(e.self,0,0,0,0,11277,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/guktop/croc_trigger.lua b/guktop/croc_trigger.lua new file mode 100644 index 0000000..2297d03 --- /dev/null +++ b/guktop/croc_trigger.lua @@ -0,0 +1,56 @@ +local CrocUp = 0; + +function event_spawn(e) + croc_spawns(); +end + +function croc_spawns() + local RandomCroc = 65134; + local RandomNumber = 0; + RandomNumber = math.random(100); + + if(RandomNumber <=45) then + eq.spawn2(RandomCroc,0,0,470,1661,-70,66); + eq.spawn2(RandomCroc,0,0,462,1653,-70,66); + CrocUp = 2; + elseif(RandomNumber > 45 and RandomNumber <= 73) then + eq.spawn2(RandomCroc,0,0,470,1661,-70,66); + eq.spawn2(RandomCroc,0,0,462,1653,-70,66); + eq.spawn2(RandomCroc,0,0,450,1661,-70,66); + CrocUp = 3; + elseif(RandomNumber > 73 and RandomNumber <= 85) then + eq.spawn2(RandomCroc,0,0,470,1661,-70,66); + CrocUp = 1; + elseif(RandomNumber > 85 and RandomNumber <= 95) then + eq.spawn2(65139,0,0,462,1653,-70,66); -- an ancient croc + CrocUp = 1; + elseif(RandomNumber > 95 and RandomNumber <= 98) then + eq.spawn2(RandomCroc,0,0,470,1661,-70,66); + eq.spawn2(RandomCroc,0,0,462,1653,-70,66); + eq.spawn2(RandomCroc,0,0,450,1661,-70,66); + eq.spawn2(RandomCroc,0,0,459,1671,-70,66); -- need exact loc + CrocUp = 4; + elseif(RandomNumber > 98) then + eq.spawn2(RandomCroc,0,0,470,1661,-70,66); + eq.spawn2(RandomCroc,0,0,462,1653,-70,66); + eq.spawn2(RandomCroc,0,0,450,1661,-70,66); + eq.spawn2(RandomCroc,0,0,459,1671,-70,66); -- need exact loc + eq.spawn2(RandomCroc,0,0,480,1667,-70,66); -- need exact loc + CrocUp = 5; + end +end + +function event_signal(e) + CrocUp = CrocUp - 1; + if(CrocUp == 0) then + eq.set_timer("spawn timer",975000); + end +end + +function event_timer(e) + if(e.timer == "spawn timer") then + croc_spawns(); + eq.stop_timer("spawn timer"); + end +end + \ No newline at end of file diff --git a/halas/#Field_Priest_Keven.lua b/halas/#Field_Priest_Keven.lua new file mode 100644 index 0000000..0a4f596 --- /dev/null +++ b/halas/#Field_Priest_Keven.lua @@ -0,0 +1,13 @@ +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18847})) then -- Tattered note + e.self:Say("Welcome " .. e.other:GetCleanName() .. "! The blood of our brothers the wolves run strong through your veins. You must learn to control your spiritual link with our canine brothers. Wear this tunic so that others may recognize you as a Field Priest of the Tribunal, the claws and fangs of justice! Talk to my friend Hoyce and he can get you started."); + e.other:Faction(e.self,327, 15); -- Shamen of Justice + e.other:Faction(e.self,328, 2); -- Merchants of Halas + e.other:Faction(e.self,223, -2); -- Circle Of Unseen Hands + e.other:Faction(e.self,336, -2); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,244, -3); -- Ebon Mask + e.other:QuestReward(e.self,0,0,0,0,13574,20); -- Soiled Gray Tunic + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Adon_McMarrin.lua b/halas/Adon_McMarrin.lua new file mode 100644 index 0000000..3b7a28b --- /dev/null +++ b/halas/Adon_McMarrin.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail. " .. e.other:GetCleanName() .. "! I patrol Halas to insure the safety of the travelers and the resident clans. Just ask if you need help in finding your destination."); + elseif(e.message:findi("bank")) then + e.self:Say("Follow me! I will lead you there."); + eq.move_to(122, 193, 6, 213,false); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Follow me! I will lead you there."); + eq.move_to(332, 330, 4, 59,false); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Follow me! I will lead you there."); + eq.move_to(-422, 483, 4, 0,false); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Follow me! I will lead you there."); + eq.move_to(153, 273, 9, 64,false); + elseif(e.message:findi("dock")) then + e.self:Say("Follow me! I will lead you there."); + eq.move_to(8, -17, 4, 128,false); + elseif(e.message:findi("who.* shaman")) then + e.self:Say("The Shamans of Justice serve the will of the Tribunal. They search out those who defy the laws set by the Tribunal."); + elseif(e.message:findi("who.* rogue")) then + e.self:Say("The Rogues of the White Rose are loyal to the city of Halas. For that, they are viewed with the same respect as all other residents."); + elseif(e.message:findi("wolves")) then + e.self:Say("The Wolves of the North comprise of warriors. It is their sole purpose to defend the city and its visitors from all those that would harm it. Becoming a warrior and thus a Wolve of the North holds the highest form of honor among the clans."); + elseif(e.message:findi("gnoll")) then + e.self:Say("The vermin you speak of come from the den of Blackburrow. It is your duty to remove them from the Peaks of Everfrost."); + end +end \ No newline at end of file diff --git a/halas/Alec_McMarrin.lua b/halas/Alec_McMarrin.lua new file mode 100644 index 0000000..3b7a28b --- /dev/null +++ b/halas/Alec_McMarrin.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail. " .. e.other:GetCleanName() .. "! I patrol Halas to insure the safety of the travelers and the resident clans. Just ask if you need help in finding your destination."); + elseif(e.message:findi("bank")) then + e.self:Say("Follow me! I will lead you there."); + eq.move_to(122, 193, 6, 213,false); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Follow me! I will lead you there."); + eq.move_to(332, 330, 4, 59,false); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Follow me! I will lead you there."); + eq.move_to(-422, 483, 4, 0,false); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Follow me! I will lead you there."); + eq.move_to(153, 273, 9, 64,false); + elseif(e.message:findi("dock")) then + e.self:Say("Follow me! I will lead you there."); + eq.move_to(8, -17, 4, 128,false); + elseif(e.message:findi("who.* shaman")) then + e.self:Say("The Shamans of Justice serve the will of the Tribunal. They search out those who defy the laws set by the Tribunal."); + elseif(e.message:findi("who.* rogue")) then + e.self:Say("The Rogues of the White Rose are loyal to the city of Halas. For that, they are viewed with the same respect as all other residents."); + elseif(e.message:findi("wolves")) then + e.self:Say("The Wolves of the North comprise of warriors. It is their sole purpose to defend the city and its visitors from all those that would harm it. Becoming a warrior and thus a Wolve of the North holds the highest form of honor among the clans."); + elseif(e.message:findi("gnoll")) then + e.self:Say("The vermin you speak of come from the den of Blackburrow. It is your duty to remove them from the Peaks of Everfrost."); + end +end \ No newline at end of file diff --git a/halas/Andres_McMarrin.lua b/halas/Andres_McMarrin.lua new file mode 100644 index 0000000..3b7a28b --- /dev/null +++ b/halas/Andres_McMarrin.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail. " .. e.other:GetCleanName() .. "! I patrol Halas to insure the safety of the travelers and the resident clans. Just ask if you need help in finding your destination."); + elseif(e.message:findi("bank")) then + e.self:Say("Follow me! I will lead you there."); + eq.move_to(122, 193, 6, 213,false); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Follow me! I will lead you there."); + eq.move_to(332, 330, 4, 59,false); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Follow me! I will lead you there."); + eq.move_to(-422, 483, 4, 0,false); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Follow me! I will lead you there."); + eq.move_to(153, 273, 9, 64,false); + elseif(e.message:findi("dock")) then + e.self:Say("Follow me! I will lead you there."); + eq.move_to(8, -17, 4, 128,false); + elseif(e.message:findi("who.* shaman")) then + e.self:Say("The Shamans of Justice serve the will of the Tribunal. They search out those who defy the laws set by the Tribunal."); + elseif(e.message:findi("who.* rogue")) then + e.self:Say("The Rogues of the White Rose are loyal to the city of Halas. For that, they are viewed with the same respect as all other residents."); + elseif(e.message:findi("wolves")) then + e.self:Say("The Wolves of the North comprise of warriors. It is their sole purpose to defend the city and its visitors from all those that would harm it. Becoming a warrior and thus a Wolve of the North holds the highest form of honor among the clans."); + elseif(e.message:findi("gnoll")) then + e.self:Say("The vermin you speak of come from the den of Blackburrow. It is your duty to remove them from the Peaks of Everfrost."); + end +end \ No newline at end of file diff --git a/halas/April.lua b/halas/April.lua new file mode 100644 index 0000000..253fc75 --- /dev/null +++ b/halas/April.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello. " .. e.other:GetCleanName() .. ". I'm a maker of weapon molds. Care to view my wares?"); + e.self:DoAnim(29); + elseif(e.message:findi("wares")) then + e.self:Say("The various molds that I have for sale are used in the smithing of weapons. Simply use the necessary molds with a sheet of metal, a forge, and a water flask. Weapons with hilts and pommels will also need molds for those pieces and weapons such as pole-arms and axes require an oak shaft."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/halas/Arantir_Karondor.lua b/halas/Arantir_Karondor.lua new file mode 100644 index 0000000..0cc6d7a --- /dev/null +++ b/halas/Arantir_Karondor.lua @@ -0,0 +1,62 @@ +function event_spawn(e) + eq.set_timer("ArantirDepop",640000); +end + +function event_say(e) + local qglobals = eq.get_qglobals(e.self,e.other); + + if(e.message:findi("hail")) then + if(qglobals["wizepicB"] == "1") then + e.self:Say("Ah yes, you again. Do you have the items? Give me the three you possess and I'll combine them with my own."); + elseif(qglobals["wizepicA"] == "1") then + -- says nothing at this point. + else + e.self:Say("Before I tell you anything, I require you to help me. Seek a woman named Challice. Give her this ring and then return to me."); + e.other:SummonCursorItem(14334); -- Item: Arantir's Ring + end + elseif(e.message:findi("story")) then + e.self:Say("I once was one of four true followers of Solusek Ro. So great were the four of us that Solusek Ro himself made us each a special item. We did not know what the others' items were, but we realized that was for our own safety. Each one of us, after receiving the item, began to plot against Solusek Ro. Each of us believed we had enough power to dominate Norrath. Solusek Ro saw this and at the time we needed our powers most, he stripped us of them. Now I know two of the other wizards by name. One was called Sylen Tyrn, the other's name was Demunir Scry. The last wizard was a gnome, but I can't think of his name."); + elseif(e.message:findi("Sylen Tyrn")) then + e.self:Say("Sylen was a high elf wizard, and like many high elves, he believed himself to be better than others. Because of his birth, he thought he was more noble and more intelligent than anyone else. I heard how met his demise - while flying over a vast area of water, his powers were stripped from him in midflight. He fell and was captured by a rival wizard who specialized in magics of the water. Search for that wizard and you could find a trace of Sylen."); + elseif(e.message:findi("Demunir Scry")) then + e.self:Say("Demunir was a human in a rush for power. He was extremely intelligent and resourceful but, unfortunately, was more interested in destructive magic. Hearing of an ancient land, he immediately traveled to it, believing there to be powerful relics left undiscovered there. While exploring, he came upon a dwelling that housed a powerful warrior. Believing himself to be more powerful, he attempted to take this dwelling for himself. While in battle with this warrior, Solusek Ro stole his powers and left him helpless. It is said that Demunir's item is the warrior's most prized trophy."); + elseif(e.message:findi("gnome") and qglobals["wizepicA"] == "1") then + e.self:Say("Ah, the gnome I know very little about. I know he was small and crafty, and that he had a brother. His brother's craft was that of making fireworks, and he was the unfortunate victim of one of his own experiments. His firework exploded, leaving his mind diminished in capacity, even for a gnome. I remember others calling him 'Old Stewpot' in jest. I do not know if this is his birth name, but it may help you to locate him. I hear he also stays close to water because of the explosion. You never know when another gnomish invention will go awry. Give him this letter to help motivate him to remember."); + e.other:SummonCursorItem(18169); -- Item: Note from Arantir + e.other:Faction(e.self,404, 30,0); --Truespirit + eq.depop(); + end +end + +function event_trade(e) + local item_lib = require("items"); + local qglobals = eq.get_qglobals(e.self,e.other); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14337, item2 = 14338, item3 = 14339})) then --Staff of Gabstik, Blue Crystal Staff, Gnarled Staff + e.self:Say("Here, this pack contains all of our items. You will never be able to open it again, so you must deliver the pack, intact, to Solomen. He will then reward you. Now that I have helped you, leave me in peace."); + e.other:QuestReward(e.self,0,0,0,0,14340); -- Item: Magically Sealed Bag + eq.delete_global("wizepicA"); + eq.delete_global("wizepicB"); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14335})) then --Return Arantir's Ring 2nd version + e.self:Say("Ah, but it pains my heart to see this. How I could love a women like that is beyond me. And yet, I still do love her. It was on the day I was to ask her to marry me that I lost my powers. When I was about to cast my greatest spell to prove my love to her, my magic failed. She ran out on me that day. But enough of me, do you wish to hear my story?"); + eq.set_global("wizepicA","1",1,"F"); + eq.stop_timer("ArantirDepop"); + eq.set_timer("ArantirDepop",640000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18168})) then --Return Oil Note handin + eq.delete_global("wizepicA"); + eq.set_global("wizepicB","1",1,"F"); + eq.stop_timer("ArantirDepop"); + eq.set_timer("ArantirDepop",640000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("ArantirDepop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/halas/Brandyn_McDonald.lua b/halas/Brandyn_McDonald.lua new file mode 100644 index 0000000..3bce868 --- /dev/null +++ b/halas/Brandyn_McDonald.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met. " .. e.other:GetCleanName() .. "! Come in out of the cold and warm yer bones with one of my several fine house brews! A swig o' whiskey will be sure ta put some color back inta ya!"); + e.self:DoAnim(29); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/halas/Cappi_McTarnigal.lua b/halas/Cappi_McTarnigal.lua new file mode 100644 index 0000000..ec49d98 --- /dev/null +++ b/halas/Cappi_McTarnigal.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail there, " .. e.other:GetCleanName() .. "! If you are not a [member of the White Rose], then it be best that you stay on the lower level. This here floor is for honest ...ermm respectable rogues only."); + elseif(e.message:findi("member of the white rose")) then + if(e.other:GetFactionValue(e.self) >= 0) then -- needs indifferent. + e.self:Say("I hope that you are indeed respectable and loyal to Halas and the Rogues of the White Rose. To do otherwise would bring the wrath of the Six Hammers down on you. But enough with talk! Our caravan to the frigid north leaves in less than two days. and we are short on mammoth calf hides. Return four of them and you will be given items that show your loyalty to our Clan."); + eq.signal(29070,1); -- NPC: Ysanna_MacGibbon + else + e.self:Say("I will take these as a donation for I can only reward those who are 'respectable."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 5243, item2 = 5243, item3 = 5243, item4 = 5243})) then -- requires indifferent, Mammoth Calf Hide X 4 + e.self:Say("You returned? We believed the gnoll pups got you. The caravan has already left, and these do me little good now. But, as I said before, one must remain respectable. Here is what I promised."); + -- Confirmed Live Factions + e.other:Faction(e.self,305,5,0); -- Faction Rogue's of the White Rose + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(5238,5239,5242,5236,5233,5231,5240,5241,5234,5232,5235,5237),2500); -- Item(s): Black Wolf Armplates (5238), Black Wolf Bracers (5239), Black Wolf Boots (5242), Black Wolf Cape (5236), Black Wolf Collar (5233), Black Wolf Crown (5231), Black Wolf Gloves (5240), Black Wolf Legplates (5241), Black Wolf Mail (5234), Black Wolf Mask (5232), Black Wolf Pauldrons (5235), Black Wolf Waistband (5237) + + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/halas/Cian_McMarrin.lua b/halas/Cian_McMarrin.lua new file mode 100644 index 0000000..3b7a28b --- /dev/null +++ b/halas/Cian_McMarrin.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail. " .. e.other:GetCleanName() .. "! I patrol Halas to insure the safety of the travelers and the resident clans. Just ask if you need help in finding your destination."); + elseif(e.message:findi("bank")) then + e.self:Say("Follow me! I will lead you there."); + eq.move_to(122, 193, 6, 213,false); + elseif(e.message:findi("shaman guild")) then + e.self:Say("Follow me! I will lead you there."); + eq.move_to(332, 330, 4, 59,false); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Follow me! I will lead you there."); + eq.move_to(-422, 483, 4, 0,false); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Follow me! I will lead you there."); + eq.move_to(153, 273, 9, 64,false); + elseif(e.message:findi("dock")) then + e.self:Say("Follow me! I will lead you there."); + eq.move_to(8, -17, 4, 128,false); + elseif(e.message:findi("who.* shaman")) then + e.self:Say("The Shamans of Justice serve the will of the Tribunal. They search out those who defy the laws set by the Tribunal."); + elseif(e.message:findi("who.* rogue")) then + e.self:Say("The Rogues of the White Rose are loyal to the city of Halas. For that, they are viewed with the same respect as all other residents."); + elseif(e.message:findi("wolves")) then + e.self:Say("The Wolves of the North comprise of warriors. It is their sole purpose to defend the city and its visitors from all those that would harm it. Becoming a warrior and thus a Wolve of the North holds the highest form of honor among the clans."); + elseif(e.message:findi("gnoll")) then + e.self:Say("The vermin you speak of come from the den of Blackburrow. It is your duty to remove them from the Peaks of Everfrost."); + end +end \ No newline at end of file diff --git a/halas/Cindl.lua b/halas/Cindl.lua new file mode 100644 index 0000000..e009aeb --- /dev/null +++ b/halas/Cindl.lua @@ -0,0 +1,39 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to my humble shop. I offer fine items fashioned from the skins of the beasts of Everfrost. Leather is my specialty and I can always use [extra hides]."); + elseif(e.message:findi("extra hides")) then + e.self:Say("I will offer any hunter some used Tattered Armor for every Polar Bear Skin. I am sure that even you can wrestle the skins from the back of a polar bear cub."); + elseif(e.message:findi("second job")) then + e.self:Say("I have seen the warriors bringing in items called Wrath Orc Wristbands. Apparently they find them upon the lifeless bodies of the snow orc troopers. They are made from a skin I have yet to find. I will gladly reward you with either a Rawhide Tunic or Leggings or even perhaps Leather Gloves. All I ask for are Two Wrath Orc Wristbands."); + elseif(e.message:findi("mammoth hide parchment")) then -- can be done at dubiously + e.self:Say("Jinkus must've sent ye fer some more mammoth hide parchment fer his posters. Here, take it, free o' charge, as a donation to teh church and to the will o' the Tribunal as well"); + e.other:SummonCursorItem(12621); --Mammoth Hide Parchment + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "No reward until I've got TWO wrath orc wristbands!"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13761})) then -- can be done at dubiously + e.self:Say("This is much apprreciated! Please accept this used armor in return and a gold piece as well, fer yer troubles. Ye've done well! I may have a [second job] fer ye, if ye like?"); + -- Confirmed Live Factions + e.other:Faction(e.self,328, 5); -- Faction: Merchants of Halas + e.other:Faction(e.self,320, 3); -- Faction: Wolves of the North + e.other:Faction(e.self,327, 3); -- Faction: Shamen of Justice + e.other:QuestReward(e.self,0,0,math.random(5),0,eq.ChooseRandom(2131, 2134, 2127, 2126, 2129, 2125, 2133),1000); -- Item(s): Large Tattered Belt (2131) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12223, item2 = 12223},1,text)) then -- can be done at dubiously + e.self:Say("Fine work hunter! As your reward please accept this item which I have fashioned for you."); + -- Confirmed Live Factions + e.other:Faction(e.self,328, 10); -- Faction: Merchants of Halas + e.other:Faction(e.self,320, 7); -- Faction: Wolves of the North + e.other:Faction(e.self,327, 7); -- Faction: Shamen of Justice + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(2034, 2171, 2164),1000); -- Item(s): Large Leather Gloves (2034) + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/halas/Clovan_McMarrin.lua b/halas/Clovan_McMarrin.lua new file mode 100644 index 0000000..c7f3e9d --- /dev/null +++ b/halas/Clovan_McMarrin.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Halas! Home of the Wolves of the North."); + elseif(e.message:findi("shaman")) then + e.self:Say("The Shamans of Justice serve the will of the Tribunal. They search out those who defy the laws set by the Tribunal."); + elseif(e.message:findi("rogue")) then + e.self:Say("The Rogues of the White Rose are loyal to the city of Halas. For that, they are viewed with the same respect as all other residents."); + elseif(e.message:findi("wolves")) then + e.self:Say("The Wolves of the North comprise of warriors. It is their sole purpose to defend the city and its visitors from all those that would harm it. Becoming a warrior and thus a Wolve of the North holds the highest form of honor among the clans."); + elseif(e.message:findi("gnoll")) then + e.self:Say("The vermin you speak of come from the den of Blackburrow. It is your duty to remove them from the Peaks of Everfrost."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Dargon.lua b/halas/Dargon.lua new file mode 100644 index 0000000..fd698ce --- /dev/null +++ b/halas/Dargon.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ". Can I interest you in any components to help you in your research?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14331})) then --Ro's Breath + e.self:Say("So, I've been discovered! You must know Camin - he is one of the only people who could have recognized my work. I have worked very hard to mask my presence here."); + eq.unique_spawn(29089,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + --Return Arantir's Ring 2nd version + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14335})) then + e.self:Say("Ah, but it pains my heart to see this. How I could love a women like that is beyond me. And yet, I still do love her. It was on the day I was to ask her to marry me that I lost my powers. When I was about to cast my greatest spell to prove my love to her, my magic failed. She ran out on me that day. But enough of me, do you wish to hear my story?"); + eq.unique_spawn(29089,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.set_global("wizepicA","1",1,"F"); + eq.depop_with_timer(); + --Return Oil Note handin + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18168})) then + eq.unique_spawn(29089,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.set_global("wizepicB","1",1,"F"); + eq.delete_global("wizepicA"); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/halas/Dargon_McPherson.lua b/halas/Dargon_McPherson.lua new file mode 100644 index 0000000..950afa4 --- /dev/null +++ b/halas/Dargon_McPherson.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail, mighty " .. e.other:GetCleanName() .. "! I assume ye must be a [warrior o' the Wolves]. Why else would ye approach a trainer such as meself, then?"); + elseif(e.message:findi("warrior o' the Wolves")) then + if(e.other:GetFaction(e.self) < 5) then -- requires amiably + e.self:Say("Aye, 'tis as I thought. I'm glad t' see we've warriors such as yerself amongst the Wolves o' the North. Lately, Kylan's been allowing too many scrawny warriors in, methinks. Nor have they fared well in Everfrrost. Many frreeze to death, ye know... Will ye assist me and [deliver an elixir to young warriors] in Everfrost?"); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("The Wolves o' the North show ye no ill will, but there's much ye must do t' earn our trust. Perhaps ye should speak with Lysbith and inquire o' the [gnoll bounty]."); + elseif(e.other:GetFaction(e.self) > 5) then + e.self:Say("Run while ye still can!! The Wolves o' the North will not tolerate yer presence!"); + end + elseif(e.message:findi("deliver an elixir to young warriors")) then + if(e.other:GetFaction(e.self) < 5) then -- requires amiably + e.self:Say("Ach, 'tis good o' ye! Take this bottle of elixir to Everfrost Peaks. Find Talin O'Donal. He'll take the first sip, and then instruct ye on who else ye need to find. Do that, and I'll give ye a fine reward when ye return the empty elixir bottle. Good luck, then. Don't die."); + e.other:SummonCursorItem(13241); -- Item: Full Bottle of Elixir + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("The Wolves o' the North show ye no ill will, but there's much ye must do t' earn our trust. Perhaps ye should speak with Lysbith and inquire o' the [gnoll bounty]."); + elseif(e.other:GetFaction(e.self) > 5) then + e.self:Say("Run while ye still can!! The Wolves o' the North will not tolerate yer presence!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13245})) then -- requires amiably, Empty Bottle of Elixir + e.self:Say("Ye've proven yerself to be a cut above the rest and aided yer fellow warriors, no matter how worthless they were. Ye may take this. It was found in the snow by one of our foraging parties. I hope it can be of use to a warrior like yerself."); + -- Confirmed Live Factions + e.other:Faction(e.self,320,5,0); -- Wolves of the North + e.other:Faction(e.self,327,1,0); -- Shaman of Justice + e.other:Faction(e.self,328,1,0); -- Merchants of Halas + e.other:Faction(e.self,311,1,0); -- Steel Warriors + e.other:QuestReward(e.self,math.random(5),0,0,0,eq.ChooseRandom(2012,17001,10004,10017,1038,10016,13877,2135,7007,8008,10009,13007,5014,13003,13107),125); -- random low level items + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Dok.lua b/halas/Dok.lua new file mode 100644 index 0000000..ef6c598 --- /dev/null +++ b/halas/Dok.lua @@ -0,0 +1,40 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Fine day to ye, " .. e.other:GetCleanName() .. ". Welcome to me shop. If ye're searchin' fer a [cigar], ye won't be findin' any, more's th' pity."); + elseif(e.message:findi("cigar")) then + e.self:Say("I was hoping to perfect me creation I was callin' the 'cigar.' but I'm afraid I just couldn't get it right. To keep from settin' meself on fire, I switched me talents to makin' candles. I could use help from a person such as yerself. Ye could [collect the wax] fer me - the candle-makin's."); + elseif(e.message:findi("collect the wax")) then -- can be done at dubiously + e.self:Say("Grreatt!! Take this wax jarr. Head to any place ye can find the wee ones they call bixies. I'm afraid ye're going to hafta bash 'em and search to find out if they're carrying any honeycombs. If they are, then ye can fill the jar with them and combine them, then return the full honeycomb jar to me. I'll be givin' ye a special candle if ye can do that fer me."); + e.other:SummonCursorItem(17958); -- Item: Empty Jar + elseif(e.message:findi("any information about the crime")) then + e.self:Say("Aye. I happened upon the crime scene, but too late, more's the pity. I grabbed fer one of the rogues and got only a handful of his shirt. Before I knew it, I was left holding his sweaty shirt and he was far from the scene. I called fer the guards and they summoned the shaman. Methinks one died and one got away in the chase. I've heard rumors that the leader of [Clan McMannus] has spotted the culprit. Ye should go to the leader of Clan McMannus and tell him ye're [searching for the fugitive]."); + elseif(e.message:findi("clan mcmannus")) then + e.self:Say("Clan McMannus were instructed by the Council to live far away from Halas. They now live in the Western Plains of Karana and supply Halas with food and materials from the warmer regions."); + elseif(e.message:findi("sweaty shirt")) then + e.self:Say("Now, why would ye be wantin' that smelly thing?!! I no longer have it. [Tundra Jack] came into me shop and bought it from me. He says he can wash it good and make a new collar for Iceberg out of it."); + elseif(e.message:findi("tundra jack")) then + e.self:Say("Well, now, let's see... His name is Tundra Jack.. me first guess would be that ye might find him on the frozen tundra of Everfrost, eh?"); + elseif(e.message:findi("candle of bravery")) then + e.self:Say("I can make ye a Candle o' Bravery. I'll need th' candlestick, or pieces of it!! And I need a honeycomb. Oh!! And I need a pouch o' Underfoot soil as well."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12222})) then + e.self:Say("Great work!! Now I can make more candles! Here ye are, me fri. I call this the Everburn Candle. It has a wee bit o' magic in it. I hope ye like it."); + -- Confirmed Live Factions + e.other:Faction(e.self, 328,25); -- Faction: Merchants of Halas + e.other:Faction(e.self, 320,18); -- Faction: Wolves of the North + e.other:Faction(e.self, 327,18); -- Faction: Shamen of Justice + e.other:QuestReward(e.self,0,0,0,1,12220,250); -- Item: Everburn Candle + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12275, item2 = 12276, item3 = 12282, item4 = 13953})) then + e.self:Say("Here is your Candle o' Bravery."); + -- Confirmed Live Factions + e.other:Faction(e.self,328,5); -- Faction: Merchants of Halas + e.other:Faction(e.self,320,3); -- Faction: Wolves of the North + e.other:Faction(e.self,327,3); -- Faction: Shamen of Justice + e.other:QuestReward(e.self,0,0,0,0,12277,50000); -- Item: Candle of Bravery + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Dom_McMarrin.lua b/halas/Dom_McMarrin.lua new file mode 100644 index 0000000..c7f3e9d --- /dev/null +++ b/halas/Dom_McMarrin.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Halas! Home of the Wolves of the North."); + elseif(e.message:findi("shaman")) then + e.self:Say("The Shamans of Justice serve the will of the Tribunal. They search out those who defy the laws set by the Tribunal."); + elseif(e.message:findi("rogue")) then + e.self:Say("The Rogues of the White Rose are loyal to the city of Halas. For that, they are viewed with the same respect as all other residents."); + elseif(e.message:findi("wolves")) then + e.self:Say("The Wolves of the North comprise of warriors. It is their sole purpose to defend the city and its visitors from all those that would harm it. Becoming a warrior and thus a Wolve of the North holds the highest form of honor among the clans."); + elseif(e.message:findi("gnoll")) then + e.self:Say("The vermin you speak of come from the den of Blackburrow. It is your duty to remove them from the Peaks of Everfrost."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Dun_McDowell.lua b/halas/Dun_McDowell.lua new file mode 100644 index 0000000..dac2636 --- /dev/null +++ b/halas/Dun_McDowell.lua @@ -0,0 +1,9 @@ +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18762})) then + e.self:Say("Ah.. ye wish to be a member o' the White Rose, then. eh? Well, let's train ye fer a bit. and see if ye've got what it takes."); + e.other:Faction(e.self,305,100); -- Rogues of the White Rose + e.other:QuestReward(e.self,0,0,0,0,13513,20); -- torn white tunic + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Elyn_Connoy.lua b/halas/Elyn_Connoy.lua new file mode 100644 index 0000000..2bc3dbb --- /dev/null +++ b/halas/Elyn_Connoy.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail " .. e.other:GetCleanName() .. "."); + e.self:DoAnim(2); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/halas/Garn_McMarrin.lua b/halas/Garn_McMarrin.lua new file mode 100644 index 0000000..c7f3e9d --- /dev/null +++ b/halas/Garn_McMarrin.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Halas! Home of the Wolves of the North."); + elseif(e.message:findi("shaman")) then + e.self:Say("The Shamans of Justice serve the will of the Tribunal. They search out those who defy the laws set by the Tribunal."); + elseif(e.message:findi("rogue")) then + e.self:Say("The Rogues of the White Rose are loyal to the city of Halas. For that, they are viewed with the same respect as all other residents."); + elseif(e.message:findi("wolves")) then + e.self:Say("The Wolves of the North comprise of warriors. It is their sole purpose to defend the city and its visitors from all those that would harm it. Becoming a warrior and thus a Wolve of the North holds the highest form of honor among the clans."); + elseif(e.message:findi("gnoll")) then + e.self:Say("The vermin you speak of come from the den of Blackburrow. It is your duty to remove them from the Peaks of Everfrost."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Gorth_Bearsoul.lua b/halas/Gorth_Bearsoul.lua new file mode 100644 index 0000000..77c7057 --- /dev/null +++ b/halas/Gorth_Bearsoul.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail. yerself. I'm sure ye've better things to do than to bother a man makin' his potions. then. eh?"); + elseif(e.message:findi("sorrow")) then + e.self:Say("Ach! What ye be needin that fer? Only those of dark magic require such a thing and by my mother, never could I sell to such a soul. If yer soul be clean then put yer [money] in this enchanted pouch and I will know your intent. If yer soul be rotten I'll be known and you'll be dead. Indifferent I better be to your actions."); + elseif(e.message:findi("money")) then + e.self:Say("Suren ye didnae think I'd give ye a potion fer free? I'm needn 500 gold coins to make such an item. Hard to make and few are the uses fer such a potion."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {platinum = 50})) then + e.self:Say("Here ye are."); + e.other:QuestReward(e.self,0,0,0,0,7113,50); --Potion of Sorrow + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Dialogue is wrong and some missing, someone manually typed that on allakhazams - Elroz +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/halas/Greta_Terrilon.lua b/halas/Greta_Terrilon.lua new file mode 100644 index 0000000..7d779b9 --- /dev/null +++ b/halas/Greta_Terrilon.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("some ink")) then -- can be done at dubiously + e.self:Say("Jinkus must've sent ye fer some more of me special ink made from the pigment of th' datura flower. Ye may take some free o' charge, as a donation to the church and to the will o' the Tribunal as well"); + e.other:SummonCursorItem(12619); --Vial of Datura Ink + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Hetie_McDonald.lua b/halas/Hetie_McDonald.lua new file mode 100644 index 0000000..b851eb1 --- /dev/null +++ b/halas/Hetie_McDonald.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome back, " .. e.other:GetCleanName() .. ". Why don't you purchase a few things before you head out into the tundra again?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("Oh, yes, this is exactly what I needed. These muffins look very fresh too, good work! Here is your payment, as promised. It was a pleasure doing business with you."); + e.other:Faction(e.self,328,2); --Merchants of Halas + e.other:Faction(e.self,320,1); --Wolves of the North + e.other:Faction(e.self,327,1); --Shamen of Justice + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("Fresh bread! Thank you so much, I will put this on the shelves straightaway. Here is your payment as promised."); + e.other:Faction(e.self,328,4); --Merchants of Halas + e.other:Faction(e.self,320,3); --Wolves of the North + e.other:Faction(e.self,327,3); --Shamen of Justice + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Holana_Oleary.lua b/halas/Holana_Oleary.lua new file mode 100644 index 0000000..c12656e --- /dev/null +++ b/halas/Holana_Oleary.lua @@ -0,0 +1,76 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hmph. Hello. how are ye an' how do ye do? Now. what are ye planning to buy?"); + eq.signal(29043,1); -- NPC: Murtog_MacYee + elseif(e.message:findi("jinkus sent me")) then + if(e.other:GetFaction(e.self) < 5) then -- requires amiably + e.self:Say("So, ye're the next to be tested, then, eh?! I pray ye're able to return. Ye'll need to take this note to Einhorst in Clan McMannus' fishing village in the Plains o' Karana. He'll hand ye the monthly Karana clover shipment to be returned to me. Just remember, dinnae stop running! Do ye [need directions to Clan McMannus]?"); + e.other:SummonCursorItem(18831); -- Tattered Note identifying as Message to Clan McMannus + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("Ye're no criminal to the Shamans o' Justice, but ye've yet to prrove yer devotion to justice."); + elseif(e.other:GetFaction(e.self) > 5) then + e.self:Say("The scales o' the Shamans o' Justice dinnae tip in yer favor. Ye'd best flee while ye still have the chance."); + end + elseif(e.message:findi("directions to clan mcmannus")) then + e.self:Say("Ye go through Everfrost Peaks and run through Blackburrow. Once in Qeynos Hills, ye'll head to yer left and follow the pathway to the Plains of Karana. In the plains, when the pathway splits, go to yer right. Then just head toward the horizon."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13962})) then --Karana Clover Shipment + local spelltext = ""; + local rewardr = math.random(10); + local rewarditem = 0; + if(rewardr < 4) then + -- : Drowsy : Frost Rift : Sicken : Fleting Fury : Spirit of Bear : Cure Blindness : Spirit Sight : Scale Skin : Spirit Pouch : In that order + local spellreward = eq.ChooseRandom(15270,15275,15075,15271,15279,15212,15079,15274,15272); + local dialog0; + local dialog1 = "Drowsy "; + local dialog2 = "Frost Rift"; + local dialog3 = "Sicken"; + local dialog4 = "Fleeting Fury"; + local dialog5 = "Spirit o' the Bear"; --check dialog with alla or live + local dialog6 = "Cure Blindness"; + local dialog7 = "Spirit Sight"; + local dialog8 = "Scale Skin"; + local dialog9 = "Spirit Pouch"; + if(spellreward == 15270) then + dialog0 = dialog1; + elseif(spellreward == 15275) then + dialog0 = dialog2; + elseif(spellreward == 15075) then + dialog0 = dialog3; + elseif(spellreward == 15271) then + dialog0 = dialog4; + elseif(spellreward == 15279) then + dialog0 = dialog5; + elseif(spellreward == 15212) then + dialog0 = dialog6; + elseif(spellreward == 15079) then + dialog0 = dialog7; + elseif(spellreward == 15274) then + dialog0 = dialog8; + elseif(spellreward == 15272) then + dialog0 = dialog9; + end + spelltext = "Take and remember this spell, " .. dialog0 .. ", I hope ye've attained the necessary skills to scribe it. If not, I'm sure ye soon will. Go now, and serve justice."; + rewarditem = spellreward; + elseif(rewardr > 3 and rewardr < 7) then + rewarditem = eq.ChooseRandom(2031,2036,2030,2034,2027,2038,2026,2029,2025,2032,2028,2033); -- Complete Set of Large Leather Items + elseif(rewardr > 6 and rewardr < 10) then + rewarditem = eq.ChooseRandom(5043,6032,6030,7022,7024,6031); -- All SHM usable tarnished weaponry + elseif(rewardr > 9) then + rewarditem = 2912; -- Polar Bear Cloak + end + e.self:Say("Good work. We Shamans o' Justice are like no other. We must remain in top physical form for we never know when justice must be served. I was commanded to give ye a reward. Take this. It was doing nothing more than collecting dust. Go, and serve justice well. " .. spelltext .. ""); + -- Confirmed Live Factions + e.other:Faction(e.self,327,10); --Shamen of Justice + e.other:Faction(e.self,328,1); --Merchants of Halas + e.other:Faction(e.self,223,-1); --Circle of Unseen Hands + e.other:Faction(e.self,336,-1); --Coalition of Tradefolk Underground + e.other:Faction(e.self,5009,-2); --Hall of the Ebon Mask + e.other:QuestReward(e.self,math.random(0,9),math.random(0,9),0,0,rewarditem,1600); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Hoyce_MacTaegan.lua b/halas/Hoyce_MacTaegan.lua new file mode 100644 index 0000000..0b7ff90 --- /dev/null +++ b/halas/Hoyce_MacTaegan.lua @@ -0,0 +1,82 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings to you brother. Did [Keven] send you?"); + elseif(e.message:findi("keven")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- not verified as exact + e.self:Say("Very well, then let us begin. We are at home in the wilderness and thus it is important that we learn all we can about our surroundings. Now is the time of your learning. You are to venture out, hunt and learn about Everfrost. Return to me with a White Wolf Skin as proof of your successful hunt. We will then continue your training."); + else + e.self:Say("Hmmm... I don't know if I believe that."); + end + elseif(e.message:findi("the land")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- not verified as exact + e.self:Say("There is a bounty waiting for us in the wilderness for those with the wisdom to use it. Your next task is to find that wisdom within yourself and to use it. I shall task you with the creation of a few simple items from the materials available to us all. Go forth and harvest silk to make thread. Then when you feel you have learned enough, make a cap for yourself from the pelt of a bear. Return three Silk Thread and a Large Tattered Skullcap to me and I shall reward you."); + else + e.self:Say("Hmmm... I don't know if I believe that."); + end + elseif(e.message:findi("fight")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- not verified as exact + e.self:Say("That's the spirit! No doubt you know by now that our people are under constant attack by the goblins that infest our lands. Go out and fight against our enemies and bring justice to our people. Return to me with four Goblin Ice Necklaces and you shall have your just reward."); + else + e.self:Say("Hmmm... I don't know if I believe that."); + end + elseif(e.message:findi("challenge")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- not verified as exact + e.self:Say("Your zeal for justice is indeed a virtue. You make us all proud. Very well, venture out and into the home of those accursed dogs. Go to Blackburrow the home of the gnolls. There you are to fight against them and to retrieve the weapons of our mortal enemies. Return to me with a Gnoll Fang, a Giant Snake Fang and a Hunting Bow. I shall give you a weapon suitable for one such as yourself."); + else + e.self:Say("Hmmm... I don't know if I believe that."); + end + elseif(e.message:findi("favor") or e.message:findi("willing")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- not verified as exact + e.self:Say("I thank you for your willingness to help. Many of our people hunt the mighty mammoth and the cougar out in the vast and frigid plains. Aside from the risk of injury that often comes from hunting such fearsome and mighty creatures, there is the added risk of being attacked by the terrible snow orcs. Go and protect our people hunting in the plains of Everfrost, fight against the snow orc and return to me with a Wrath Orc Wristband. Surely the spirits will forever guide you."); + else + e.self:Say("Hmmm... I don't know if I believe that."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13768})) then --White Wolf Skin + e.self:Say("Very good! I am sure by now you are learning much about your local surroundings. It is now time for you to learn to [live off the land]."); + e.other:Faction(e.self,327, 3); -- Shamen of Justice + e.other:Faction(e.self,328, 1); -- Merchants of Halas + e.other:Faction(e.self,223, -1); -- Circle Of Unseen Hands + e.other:Faction(e.self,336, -1); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,244, -1); -- Ebon Mask + e.other:QuestReward(e.self,0,0,0,0,7365,250); --Field Priest's Bracer + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 16486, item2 = 16486, item3 = 16486, item4 = 2125})) then --Silk Thread x 3, Large Tattered Skullcap + e.self:Say("I see your wisdom grows, as does your skill. Wear this cap I have made for you. I believe you are now skilled enough to begin to pursue justice and to fight against our enemies. Are you [willing to fight]?"); + e.other:Faction(e.self,327, 1); -- Shamen of Justice + e.other:Faction(e.self,328, 1); -- Merchants of Halas + e.other:Faction(e.self,223, -1); -- Circle Of Unseen Hands + e.other:Faction(e.self,336, -1); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,244, -1); -- Ebon Mask + e.other:QuestReward(e.self,0,0,0,0,7366,400); --Field Priest's Cap + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13897, item2 = 13897, item3 = 13897, item4 = 13897})) then --Goblin Ice necklacess x 4 + e.self:Say("I see you have brought many of our enemies to justice. You have done an excellent job and should be proud. No doubt your efforts saved lives. It is now time for you to venture out and fight stronger foes. Are you [up to the challenge]?"); + e.other:Faction(e.self,327, 5); -- Shamen of Justice + e.other:Faction(e.self,328, 1); -- Merchants of Halas + e.other:Faction(e.self,223, -1); -- Circle Of Unseen Hands + e.other:Faction(e.self,336, -1); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,244, -1); -- Ebon Mask + e.other:QuestReward(e.self,0,0,0,0,7367,600); --Field Priest's Kilt + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13915, item2 = 7005, item3 = 8011})) then --Gnoll Fang, Giant Snake Fang, Hunting Bow + e.self:Say("You truly have justice in your heart. The spirits know this too. No doubt you are now beginning to hear their faint whispers. Soon you shall hear them clearly and you shall no longer need my guidance. I have one more [favor] to ask of you if you are [willing]."); + e.other:Faction(e.self,327, 10); -- Shamen of Justice + e.other:Faction(e.self,328, 1); -- Merchants of Halas + e.other:Faction(e.self,223, -1); -- Circle Of Unseen Hands + e.other:Faction(e.self,336, -1); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,244, -2); -- Ebon Mask + e.other:QuestReward(e.self,0,0,0,0,7368,1000); --Field Priest's Claw + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12223})) then --Wrath Orc Wristbands + e.self:Say("Thank you very much, you have our thanks. Perhaps you will find some use for this. I have shown you all that I can young one. Now it is up to you. Listen to the spirits and work with them and they will work with you. Now go forth and continue to spread justice throughout the world."); + e.other:Faction(e.self,327, 50); -- Shamen of Justice + e.other:Faction(e.self,328, 7); -- Merchants of Halas + e.other:Faction(e.self,223, -7); -- Circle Of Unseen Hands + e.other:Faction(e.self,336, -7); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,244, -10); -- Ebon Mask + e.other:QuestReward(e.self,0,0,0,0,7369,1000); --Field Priest's Leather + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Jinkus_Felligan.lua b/halas/Jinkus_Felligan.lua new file mode 100644 index 0000000..9c36678 --- /dev/null +++ b/halas/Jinkus_Felligan.lua @@ -0,0 +1,39 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome! Welcome to the Church o' the Tribunal! Do ye require healing or are ye [new to the Shamans o' Justice], then, eh?"); + elseif(e.message:findi("new to the shamans") and e.other:GetFaction(e.self) < 5) then + e.self:Say("Then I welcome ye into our noble order. Ye'll serve us well or spend an eternity in the dungeons o' the Tribunal. Are ye willing to [contribute to our church] or did ye just come to meditate within our walls?"); + elseif(e.message:findi("contribute") and e.other:GetFaction(e.self) < 5) then + e.self:Say("Ye'll help all o' Halas by doing the bidding o' this church. Go to Holana. Tell her [Jinkus sent] ye to assist her. She'll have work fer ye. Perhaps, if ye're planning on passing near Qeynos, ye can [make a delivery] as well?"); + elseif(e.message:findi("make a delivery") and e.other:GetFaction(e.self) < 5) then + e.self:Say("Excellent! First, visit Cindl and tell er ye need a Mammoth Hide Parchment. Then, I need ye to visit Greta and tell her you need some ink. Bring these back to me and we will continue from there."); + elseif((e.message:findi("make a delivery") or e.message:findi("contribute") or e.message:findi("new to the shamans")) and e.other:GetFaction(e.self) == 5) then + e.self:Say("Ye're no criminal to the Shamans o' Justice, but ye've yet to prrove yer devotion to justice."); + elseif((e.message:findi("make a delivery") or e.message:findi("contribute") or e.message:findi("new to the shamans")) and e.other:GetFaction(e.self) > 4) then + e.self:Say("The scales o' the Shamans o' Justice dinnae tip in yer favor. Ye'd best flee while ye still have the chance."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12621, item2 = 12619})) then --Mammoth Hide Parchment, Vial of Datura Ink + e.self:Say("Here is th' bounty poster. Take it to a bank guard in Qeynos, immediately!"); + -- faction confirmed on live and works at doubious + e.other:Faction(e.self,327, 1); -- Shamen of Justice + e.other:Faction(e.self,328, 1); -- Merchants of Halas + e.other:Faction(e.self,223, -1); -- Circle of Unseen Hands + e.other:Faction(e.self,336, -1); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,244, -1); -- Ebon Mask + e.other:QuestReward(e.self,0,0,0,0,12620,100); --Wanted Poster + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12622})) then --List of Qeynos Most Wanted + e.self:Say("Fantastic, Fantastic... Here you have more than proven your right to wear this. Use it wisely..."); + -- faction confirmed on live and works at indifferent + e.other:Faction(e.self,327, 25); -- Shamen of Justice + e.other:Faction(e.self,328, 3); -- Merchants of Halas + e.other:Faction(e.self,223, -3); -- Circle of Unseen Hands + e.other:Faction(e.self,336, -3); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,244, -5); -- Ebon Mask + e.other:QuestReward(e.self,0,0,0,0,1376,1000); --Initiate Symbol of the Tribunal + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Kevan_McPherson.lua b/halas/Kevan_McPherson.lua new file mode 100644 index 0000000..a3ad845 --- /dev/null +++ b/halas/Kevan_McPherson.lua @@ -0,0 +1,18 @@ +function event_say(e) + if (e.message:findi("hail")) then + e.self:Say("Well met, " .. e.other:GetCleanName() .. "! I'm Kevan McPherson, the best darn smith in the north. Have ye come to purchase my finely crafted weapons or are ye wanting me ta teach ya the secrets of Northman smithing?"); + elseif(e.message:findi("northman smithing")) then + e.self:Emote("takes a puff of an aromatic cigar and says, 'Our highly specialized Northman forge allows us to forge customized [Northman weapons] and [Northman kite shields]. If ye aren't still wet behind yer ears I'll show ya a thing or two. What's ye'r interest?"); + e.self:DoAnim(55); + elseif(e.message:findi("northman weapon")) then + e.self:Emote("puts his cigar out on the counter and says, 'All right, listen up, " .. e.other:GetCleanName() .. ". All Northman weapons require a flask of water and the appropriate blade molds. Long daggers and claymores need molds for the hilts and pommels, while battle axes and maces need oak shafts instead. Throwing axes, long daggers, and maces can be made from medium quality sheets of metal but claymores and battle axes require medium quality folded sheets of metal. If ye'r lookin ta make something really special ye'll need ta temper the blades with Frost Temper instead of Water, and find yerself a shaman to imbue an Ivory or Jade fer the pommel. Ye got all that, " .. e.other:GetCleanName() .. "?"); + e.self:DoAnim(5); + elseif(e.message:findi("northman kite shield")) then + e.self:Say("To smith a Northman kite shield ye'll need a kite shield mold, a smithy hammer, a flask of water and a medium quality folded sheet metal. Remember ye'll have ta smith the metal sheet in a regular forge and finish the shield in our special Northman forge."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade, e.text); +end diff --git a/halas/Kylan_O-Danos.lua b/halas/Kylan_O-Danos.lua new file mode 100644 index 0000000..5d69457 --- /dev/null +++ b/halas/Kylan_O-Danos.lua @@ -0,0 +1,12 @@ +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18760})) then + e.self:Say("Greetin's! We are the mighty Wolves o' the North, protectors o' Halas, and we must work hard t' keep it safe fer our citizens. Here is our tunic, it identifies ye as a proud warrior o' this great city. Let's get started with yer training, then, shall we?"); + e.other:Faction(e.self,320,100); -- Wolves of the North + e.other:Faction(e.self,327,20); -- Shamen of Justice + e.other:Faction(e.self,328,25); -- Merchants of Halas + e.other:Faction(e.self,311,5); -- Steel Warriors + e.other:QuestReward(e.self,0,0,0,0,13511,20); -- Item: Patched Fur Tunic* + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Lakgara_the_Righteous.lua b/halas/Lakgara_the_Righteous.lua new file mode 100644 index 0000000..4e67875 --- /dev/null +++ b/halas/Lakgara_the_Righteous.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings. " .. e.other:GetCleanName() .. "! I am Lakgara the Righteous. I have returned to Norrath after many years to find those who are deemed worthy to be recognized by the gods. Those in the Realm of Heroes shall speak the names of those humble adventurers."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/halas/Lish_McMarrin.lua b/halas/Lish_McMarrin.lua new file mode 100644 index 0000000..c7f3e9d --- /dev/null +++ b/halas/Lish_McMarrin.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Halas! Home of the Wolves of the North."); + elseif(e.message:findi("shaman")) then + e.self:Say("The Shamans of Justice serve the will of the Tribunal. They search out those who defy the laws set by the Tribunal."); + elseif(e.message:findi("rogue")) then + e.self:Say("The Rogues of the White Rose are loyal to the city of Halas. For that, they are viewed with the same respect as all other residents."); + elseif(e.message:findi("wolves")) then + e.self:Say("The Wolves of the North comprise of warriors. It is their sole purpose to defend the city and its visitors from all those that would harm it. Becoming a warrior and thus a Wolve of the North holds the highest form of honor among the clans."); + elseif(e.message:findi("gnoll")) then + e.self:Say("The vermin you speak of come from the den of Blackburrow. It is your duty to remove them from the Peaks of Everfrost."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Lysbith_McNaff.lua b/halas/Lysbith_McNaff.lua new file mode 100644 index 0000000..f1bcf4b --- /dev/null +++ b/halas/Lysbith_McNaff.lua @@ -0,0 +1,58 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail! Ye've come to [serve Halas]. have ye not? We're the Wolves o' the North and it is our task to defend our city from harm."); + elseif(e.message:findi("serve halas") or e.message:findi("orc troopers") or e.message:findi("protect the pass")) then + if(e.other:GetFaction(e.self) < 5) then -- requires amiably + if(e.message:findi("serve halas")) then + e.self:Say("Halas is surrounded by barren arctic tundra. We've many foes. Among them are the [orc troopers]. [ice goblins] and the ever-present polar bears."); + elseif(e.message:findi("orc troopers")) then + e.self:Say("So. Ye think yerself strong enough to battle the snow orc troopers? I pray to the Tribunal that ye are. If ye can return to me four wrath orc wristbands from the troopers' bodies. I'll reward ye with the [Seax]."); + elseif(e.message:findi("protect the pass")) then + e.self:Say("Then travel to the Everfrost Peaks and take this pack with you. I want you to return this pack to me when it is filled with the beaded ice necklaces of the Ice Goblins. When it is filled, combine the items and return it to me and I shall decide if you deserve a reward for your deed."); + e.other:SummonCursorItem(17944); -- Item: Empty Bag + end + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("The Wolves o' the North show ye no ill will, but there's much ye must do to earn our trust. Perhaps ye should inquire o' the [gnoll bounty]."); + elseif(e.other:GetFaction(e.self) > 5) then + e.self:Say("Run while ye still can!! The Wolves o' the North will not tolerate yer presence!"); + end + elseif(e.message:findi("ice goblins")) then + e.self:Say("The ice goblins have plagued our community fer some time now. At times. they even manage to get inside our walls. Fer the most part. they prey on travelers who pass through Everfrost Peaks. Since they're a weak race. we employ our youngest warriors to [protect the pass]."); + elseif(e.message:findi("seax")) then + e.self:Say("The Seax is a Northman warrior's piercing weapon. Dinnae confuse this with another [weapon] related to the Seax called the Langseax. The local rogues have also learned to master the Seax. I'll only offer it to those who battle the [orc troopers]."); + elseif(e.message:findi("gnoll bounty")) then + e.self:Say("I've placed a bounty on the gnolls o'Blackburrow. Their whelps have invaded our land and we must carry the fight into their dens. Join the fight and return three gnoll fangs as proof of yer victory in Blackburrow. Do so, and earn the respect o' the Wolves o' the North."); + elseif(e.message:findi("weapon")) then + e.self:Say("The Langseax is a one-handed slashing weapon crafted fer a warrior. Tis the brother to the [Seax]."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12223, item2 = 12223, item3 = 12223, item4 = 12223},0)) then -- requires amiably + e.self:Say("Ye're becoming a fine champion o' Halas. Take th' Seax. May ye always defend Halas!"); + -- Confirmed Live Factions + e.other:Faction(e.self,320,20); -- Wolves of the North + e.other:Faction(e.self,327,4); -- Shamen of Justice + e.other:Faction(e.self,328,5); -- Merchants of Halas + e.other:Faction(e.self,311,1); -- Steel Warriors + e.other:QuestReward(e.self,0,0,0,0,7322,3000); -- Seax + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13898},0)) then -- requires amiably, Bag of Ice Necklaces + e.self:Say("Ye've done well, me young " .. e.other:Class() .. " . We've gathered these to add to yer provisions. While in the Everfrost Peaks, be on the watch fer any gnolls ye may find. I declare there to be a [gnoll bounty]."); + -- Confirmed Live Factions + e.other:Faction(e.self,320,10); -- Wolves of the North + e.other:Faction(e.self,327,2); -- Shamen of Justice + e.other:Faction(e.self,328,2); -- Merchants of Halas + e.other:Faction(e.self,311,1); -- Steel Warriors + e.other:QuestReward(e.self,math.random(0,5),math.random(0,5),math.random(0,5),0,eq.ChooseRandom(13005,13007,13006,13002,13003),3800); -- Random Reward: Ration, Iron Ration, Water Flask, Torch + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13915, item2 = 13915, item3 = 13915},0)) then -- Gnoll Bounty - Return 3 Gnoll Fangs + e.self:Say("Fine work, fine work! The gnoll threat must be extinguished before it can ever fully grow. Ye've done yer part to aid our cause. Please allow me to repay ye with a few provisions and a wee bit o' coin. Then, continue with yer good deeds."); + -- Confirmed Live Factions + e.other:Faction(e.self,320,15); -- Wolves of the North + e.other:Faction(e.self,327,3); -- Shamen of Justice + e.other:Faction(e.self,328,3); -- Merchants of Halas + e.other:Faction(e.self,311,1); -- Steel Warriors + e.other:QuestReward(e.self,math.random(0,5),math.random(0,5),math.random(0,5),0,eq.ChooseRandom(13005,13007,13006,13002),8000); -- Iron Ration, Ration, Water Flask, Torch + end +item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Maggie_Shawnasy.lua b/halas/Maggie_Shawnasy.lua new file mode 100644 index 0000000..67e94ed --- /dev/null +++ b/halas/Maggie_Shawnasy.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Good day, " .. e.other:GetCleanName() .. "! You look cold indeed; come and warm yourself by the forge. Frostbite is a cruel foe for the unprepared!' Maggie winks at you, 'Tell me, do you much about our special [Halas armor]?"); + elseif(e.message:findi("halas armor")) then + e.self:Say("Oh, Uncle Kevan has been making Northman armor since the dawn of time, it seems. He's ancient!' She lowers her voice, so that only you can hear, 'Well, recently, he's been experimenting with some [new types] over the Northman forge, though he refuses to tell anyone else but me."); + elseif(e.message:findi("new types")) then + e.self:Say("You're a curious one!' She laughs, and begins to whisper in your ear. 'He's been telling me about [ringmail], [platemail] and [boned leather] armor. April saw him talking to a strange fellow in a dark, hooded robe recently, she thinks that may be from where Uncle's inspiration has come."); + elseif(e.message:findi("ringmail")) then + e.self:Say("With a smithy hammer, large patchwork or tattered armor piece, frost temper, the appropriate large chainmail pattern, a little magical ivory and some [infused rings], he's been making some strange ringmail."); + elseif(e.message:findi("infused ring")) then + e.self:Say("With velium rings, I saw him work in a large brick of medium quality ore with him smithy hammer. He used a strange temper that I've not seen before. April thinks that she overheard the Dark Stranger mention Celestial Temper. I don't know what it may be, but it makes good armor!"); + elseif(e.message:findi("platemail")) then + e.self:Say("What heavy armor this was! Even Uncle looked to have a hard time lifting it. He used his smithy hammer, some [jointing], frost temper, a large plate mold and some [infused rings]. I think I saw leather padding, and some magical ivory too."); + elseif(e.message:findi("jointing")) then + e.self:Say("Everyone knows how to make jointing! Uncle was using medium quality rings, which he used his smithy hammer and file upon, and a little water."); + elseif(e.message:findi("boned leather")) then + e.self:Say("Uncle gave this armor to Peppes - you know, the roaming beastlord that has been entertaining everyone here in town recently? He made it in the same way as he made the [ringmail], except with some [special boning] instead of rings."); + elseif(e.message:findi("special boning")) then + e.self:Say("With velium boning, he worked in a small brick of medium quality ore, using some of that curious new temper, and his smithy hammer. It seemed to glow with an inner light, it really is odd stuff. What can it be?"); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/halas/Margyn_McCann.lua b/halas/Margyn_McCann.lua new file mode 100644 index 0000000..ea74d89 --- /dev/null +++ b/halas/Margyn_McCann.lua @@ -0,0 +1,71 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, young adventurer! I'm the chief overseer o' the Shamans o' Justice. We serve the will o' the Tribunal. Justice is our way. Within Halas, there are none who are above the scales o' justice. There are still some who have defied our laws. We wish to [apprehend the fugitives]."); + elseif(e.message:findi("apprehend the fugitives") or e.message:findi("young shaman") or e.message:findi("standin' member of the court")) then -- requires amiable + if(e.other:GetFaction(e.self) < 5) then -- requires amiably + if(e.message:findi("apprehend the fugitives")) then + e.self:Say("Maybe so, however, there are some who may be too much fer ye to handle. I'll need to know if ye're a [young shaman] or a [standin' member of the court]."); + elseif(e.message:findi("young shaman")) then + e.self:Say("We seek a former member who dared to curse the righteousness of the Tribunal. We'll have his head for that remark. His name is Granin O'Gill and he has run to the wastelands of Everfrost seeking safe haven. Find him. Return his head to me. Do so, and earn the ninth circle spell, Spirit o' the Bear. Go at once!"); + elseif(e.message:findi("standin' member of the court")) then + e.self:Say("At the moment, I've no word o' heretics about for ye to hunt down. I pray that there will be no more, too!"); + end + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("Ye're no criminal to the Shamans o' Justice, but ye've yet to prrove yer devotion to justice."); + else + e.self:Say("The scales o' the Shamans o' Justice dinnae tip in yer favor. Ye'd best flee while ye still have the chance."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13729})) then --Barbarian Head + local spelltext = ""; + + -- : Drowsy : Frost Rift : Sicken : Fleting Fury : Spirit of Bear : Cure Blindness : Spirit Sight : In that order + local spellreward = eq.ChooseRandom(15270,15275,15075,15271,15279,15212,15079); + local dialog0; + local dialog1 = "Drowsy "; + local dialog2 = "Frost Rift"; + local dialog3 = "Sicken"; + local dialog4 = "Fleeting Fury"; + local dialog5 = "Spirit o' the Bear"; --check dialog with alla or live + local dialog6 = "Cure Blindness"; + local dialog7 = "Spirit Sight"; + if(spellreward == 15270) then + dialog0 = dialog1; + elseif(spellreward == 15275) then + dialog0 = dialog2; + elseif(spellreward == 15075) then + dialog0 = dialog3; + elseif(spellreward == 15271) then + dialog0 = dialog4; + elseif(spellreward == 15279) then + dialog0 = dialog5; + elseif(spellreward == 15212) then + dialog0 = dialog6; + elseif(spellreward == 15079) then + dialog0 = dialog7; + end + + spelltext = "Take and remember this spell, " .. dialog0 .. ", I hope ye've attained the necessary skills to scribe it. If not, I'm sure ye soon will. Go now, and serve justice."; + e.self:Say("We can now rest assured that justice has been served. Ye'll be a valuable asset to our court. " .. spelltext .. ""); + -- Confirmed Live Factions + e.other:Faction(e.self,327, 20); -- Shamen of Justice + e.other:Faction(e.self,328, 3); -- Merchants of Halas + e.other:Faction(e.self,223, -3); -- Circle of Unseen Hands + e.other:Faction(e.self,336, -3); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,244, -4); -- Ebon Mask + e.other:QuestReward(e.self,math.random(0,10),math.random(0,10),math.random(0,5),0,spellreward,1600); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18761})) then + e.self:Say("Welcome t' the Church o' the Tribunal. Here, we practice the will o' the Six Hammers. This is our guild tunic - wear it with pride and represent us well."); + e.other:Faction(e.self,327, 100); -- Shamen of Justice + e.other:Faction(e.self,328, 15); -- Merchants of Halas + e.other:Faction(e.self,223, -15); -- Circle of Unseen Hands + e.other:Faction(e.self,336, -15); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,244, -20); -- Ebon Mask + e.other:QuestReward(e.self,0,0,0,0,13512,20); -- Faded Blue Tunic + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Marton_Stringsinger.lua b/halas/Marton_Stringsinger.lua new file mode 100644 index 0000000..b52a02e --- /dev/null +++ b/halas/Marton_Stringsinger.lua @@ -0,0 +1,14 @@ +--Quest Name: Bard Mail Quest + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. " - Are you [interested] in helping the League of Antonican Bards by delivering some [mail]?"); + elseif(e.message:findi("mail") and not e.message:findi("deliver") and not e.message:findi("Qeynos")) then + e.self:Say("The League of Antonican Bards has a courier system made up of travelers and adventurers. We pay good gold to anyone who will take messages from bards such as myself to one of our more central offices. Are you [interested]?"); + elseif(e.message:findi("interested")) then + e.self:Say("I have messages that need to go to - well, right now I have one that needs to go to Qeynos. Will you [deliver] mail to [Qeynos] for me?"); + elseif(e.message:findi("deliver") or e.message:findi("Qeynos")) then + e.self:Say("Take this letter to Tralyn Marsinger in Qeynos. You can find him at the bard guild hall. I am sure he will compensate you for your troubles."); + e.other:SummonCursorItem(18153); -- Item: A Bardic Letter (Qeynos) + end +end diff --git a/halas/Mils_McMarrin.lua b/halas/Mils_McMarrin.lua new file mode 100644 index 0000000..c7f3e9d --- /dev/null +++ b/halas/Mils_McMarrin.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Halas! Home of the Wolves of the North."); + elseif(e.message:findi("shaman")) then + e.self:Say("The Shamans of Justice serve the will of the Tribunal. They search out those who defy the laws set by the Tribunal."); + elseif(e.message:findi("rogue")) then + e.self:Say("The Rogues of the White Rose are loyal to the city of Halas. For that, they are viewed with the same respect as all other residents."); + elseif(e.message:findi("wolves")) then + e.self:Say("The Wolves of the North comprise of warriors. It is their sole purpose to defend the city and its visitors from all those that would harm it. Becoming a warrior and thus a Wolve of the North holds the highest form of honor among the clans."); + elseif(e.message:findi("gnoll")) then + e.self:Say("The vermin you speak of come from the den of Blackburrow. It is your duty to remove them from the Peaks of Everfrost."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Murtog_MacYee.lua b/halas/Murtog_MacYee.lua new file mode 100644 index 0000000..ef1557c --- /dev/null +++ b/halas/Murtog_MacYee.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetin's! I've many fine herbs and potions fer sale. Please look around."); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Dinnae be rude to the customers, Holana."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/halas/Nal_McMarrin.lua b/halas/Nal_McMarrin.lua new file mode 100644 index 0000000..c7f3e9d --- /dev/null +++ b/halas/Nal_McMarrin.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Halas! Home of the Wolves of the North."); + elseif(e.message:findi("shaman")) then + e.self:Say("The Shamans of Justice serve the will of the Tribunal. They search out those who defy the laws set by the Tribunal."); + elseif(e.message:findi("rogue")) then + e.self:Say("The Rogues of the White Rose are loyal to the city of Halas. For that, they are viewed with the same respect as all other residents."); + elseif(e.message:findi("wolves")) then + e.self:Say("The Wolves of the North comprise of warriors. It is their sole purpose to defend the city and its visitors from all those that would harm it. Becoming a warrior and thus a Wolve of the North holds the highest form of honor among the clans."); + elseif(e.message:findi("gnoll")) then + e.self:Say("The vermin you speak of come from the den of Blackburrow. It is your duty to remove them from the Peaks of Everfrost."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Oli_McMarrin.lua b/halas/Oli_McMarrin.lua new file mode 100644 index 0000000..c7f3e9d --- /dev/null +++ b/halas/Oli_McMarrin.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Halas! Home of the Wolves of the North."); + elseif(e.message:findi("shaman")) then + e.self:Say("The Shamans of Justice serve the will of the Tribunal. They search out those who defy the laws set by the Tribunal."); + elseif(e.message:findi("rogue")) then + e.self:Say("The Rogues of the White Rose are loyal to the city of Halas. For that, they are viewed with the same respect as all other residents."); + elseif(e.message:findi("wolves")) then + e.self:Say("The Wolves of the North comprise of warriors. It is their sole purpose to defend the city and its visitors from all those that would harm it. Becoming a warrior and thus a Wolve of the North holds the highest form of honor among the clans."); + elseif(e.message:findi("gnoll")) then + e.self:Say("The vermin you speak of come from the den of Blackburrow. It is your duty to remove them from the Peaks of Everfrost."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Quillion_O-Zinn.lua b/halas/Quillion_O-Zinn.lua new file mode 100644 index 0000000..9a1540e --- /dev/null +++ b/halas/Quillion_O-Zinn.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Good day to you. " .. e.other:GetCleanName() .. "! If you are looking for fishing supplies. you've come to the right place. And if you have a successful day. I will gladly pay for your catch."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/halas/Renth_McLanis.lua b/halas/Renth_McLanis.lua new file mode 100644 index 0000000..d268f06 --- /dev/null +++ b/halas/Renth_McLanis.lua @@ -0,0 +1,53 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! Have ye come to train? I train all warriors. All Wolves o' the North must be strong warriors and swift as well. Are ye a young wolf, then? If so, maybe ye can [assist Renth] with his wee problem, eh?"); + elseif(e.message:findi("dangerous matter") and e.other:GetFaction(e.self) < 5) then + e.self:Say("A murder was done in Halas recently. A couple were killed by a pair o' rogues fer a mere pouch o' copper. The shaman gave chase and the main rogue, Paglan, fell beneath an ice floe. One got away. We must [hunt the murderer]. Will ye help?"); + elseif(e.message:findi("hunt the murderer") and e.other:GetFaction(e.self) < 5) then + e.self:Say("Twas good old Dok whose brother and wife were slain. Speak with him at his shop. Ask him if he has [any information about the crime]. Return the head of the murderer and I'll give ye a [Langseax]."); + elseif(e.message:findi("langseax") and e.other:GetFaction(e.self) < 5) then + e.self:Say("The Langseax was crafted to be wielded by a warrior only. Tis a one-handed slashing weapon with great balance to assist the warrior who masters it."); + elseif(e.message:findi("assist") and e.other:GetFaction(e.self) < 5) then -- requires amiably + e.self:Say("I was ordered by Kylan O'Danos to personally escort a young warrior sent to fetch the remains of his cousin, Ivan McMannus. I forgot and spent me greater time testing out the fine spirits. Now I must find the courier and the remains. Will ye [search fer the courier]?"); + elseif(e.message:findi("the courier") and e.other:GetFaction(e.self) < 5) then -- requires amiably + e.self:Say("Thank ye, " .. e.other:GetCleanName() .. "! Go to Everfrost Peaks and seek out Arnis McLish. Ask him where Megan, the courier, is. Once ye find Megan, would ye ask her where Ivan's remains are? Please go, at once!"); + elseif((e.message:findi("dangerous matter") or e.message:findi("hunt the murderer") or e.message:findi("langseax")) and e.other:GetFaction(e.self) == 5) then + e.self:Say("The Wolves o' the North show ye no ill will, but there's much ye must do t' earn our trust. Perhaps ye should speak with Lysbith and inquire o' the [gnoll bounty]."); + elseif((e.message:findi("assist") or e.message:findi("the courier") or e.message:findi("dangerous matter") or e.message:findi("hunt the murderer") or e.message:findi("langseax")) and e.other:GetFaction(e.self) > 5) then + e.self:Say("Run while ye still can!! The Wolves o' the North will not tolerate yer presence!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13246})) then + e.self:Say("Good work!! Kylan will never know o' me negligence. I owe ye one, young warrior. Let's call it even with this. Twas found by one of our foraging parties. It is still useful. And... I believe ye can assist with a more [dangerous matter] as well"); + -- Confirmed Live Factions + e.other:Faction(e.self, 320, 20); -- Faction: Wolves of the North + e.other:Faction(e.self, 327, 4); -- Faction: Shamen of Justice + e.other:Faction(e.self, 328, 5); -- Faction: Merchants of Halas + e.other:Faction(e.self, 311, 1); -- Faction: Steel Warriors + e.other:QuestReward(e.self,math.random(5),0,0,0,eq.ChooseRandom(17009,17001,8008),2000); -- Item(s): Purse (17009), Wrist Pouch, Throwing Axe + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13249, item2 = 13248, item3 = 13247, item4 = 13233})) then + e.self:Say("Thank ye, " .. e.other:GetCleanName() .. "! I knew ye could do it. It is a sad thing, but at least now he can rest in peace. Here is something for your efforts. If ye are interested, there is a [dangerous matter] that needs to be looked into."); + e.other:QuestReward(e.self,0,0,8,0,0,3000); + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12227})) then -- Barbarian Head (Basil's Head) + e.self:Say("Fine work! We've avenged our fellow Northmen and ye've earned yer Langseax. Wield it in the name o' Halas!"); + --shows neg faction hit on live. possibly to avoid exploits + -- Confirmed Live Factions + e.other:Faction(e.self, 320, -10); -- Wolves of the North + e.other:Faction(e.self, 327, -2); -- Faction: Shamen of Justice + e.other:Faction(e.self, 328, -2); -- Faction: Merchants of Halas + e.other:Faction(e.self, 311, -1); -- Faction: Steel Warriors + e.other:QuestReward(e.self,0,0,math.random(9),0,5367,10000); -- Item: Langseax + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12225})) then + e.self:Say("Nice work " .. e.other:GetCleanName() .. "! Paglan has always been an outcast of sorts. I'm glad to see you were able to stop him. Here is a Langseax of the Wolves for your efforts."); + e.other:Faction(e.self, 320, -20); -- Faction: Wolves of the North + e.other:Faction(e.self, 327, -4); -- Faction: Shamen of Justice + e.other:Faction(e.self, 328, -4); -- Faction: Merchants of Halas + e.other:Faction(e.self, 311, -2); -- Faction: Steel Warriors + e.other:QuestReward(e.self,0,0,0,0,5368,12000); -- Item: Langseax of the Wolves + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Shamus_Felligan.lua b/halas/Shamus_Felligan.lua new file mode 100644 index 0000000..553e4e2 --- /dev/null +++ b/halas/Shamus_Felligan.lua @@ -0,0 +1,40 @@ + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetin's! Justice speaks through us. We're the followers o' the Tribunal. We act as judge. jury and executioner fer all misled Northmen. Sometimes we must also execute our swift justice upon evil races. such as th' [ice goblins]."); + elseif(e.message:findi("ice goblins")) then + e.self:Say("The ice goblins are a weak race. They pose no threat to our community. but lately we've heard rumors of ice goblins that can cast spells. They're said to be as weak as the goblin warriors. so I seek to employ the talents of our young shamans to [hunt the goblin casters]."); + elseif(e.message:findi("hunt the goblin casters")) then + if(e.other:GetFaction(e.self) < 5) then -- need amiably + e.self:Say("Aye. ye'll serve justice. I must find the source o' their recent spellcasting ability. I hear reports o' glowing necklaces upon these wicked beasts' necks. Get me one o' these casters' necklaces. Return them in any condition at all. Go! Justice awaits yer return."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("Ye're no criminal to the Shamans o' Justice, but ye've yet to prrove yer devotion to justice.") + elseif(e.other:GetFaction(e.self) > 5) then + e.self:Say("The scales o' the Shamans o' Justice dinnae tip in yer favor. Ye'd best flee while ye still have the chance."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13968})) then -- requires amiably, Shattered Caster Beads + e.self:Say("Shattered! This has happened frequently! These beads are very delicate. They're useless to me now, however, I'll reward ye fer the execution of yet more goblin casters. Continue yer work. The Tribunal watches ye!"); + -- Confirmed Live Factions + e.other:Faction(e.self,327,10); --Shamen of Justice + e.other:Faction(e.self,328,1); --Merchants of Halas + e.other:Faction(e.self,223,-1); --Circle of Unseen Hands + e.other:Faction(e.self,336,-1); --Coalition of Tradefolk Underground + e.other:Faction(e.self,244,-2); --Ebon Mask + e.other:QuestReward(e.self,0,math.random(10),math.random(10),1,eq.ChooseRandom(15270,15275,15075,15271,15279,15212,15079,15050,15224,15036),1600); -- Spells: Drowsy, Frost Rift, Sicken, Fleting Fury, Spirit of Bear, Cure Blindness, Spirit Sight, Gate, Endure Fire, Summon Food + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13969})) then -- requires amiably, Caster Beads + e.self:Say("Finally! Intact! This IS good news! I can continue me investigation now. As fer yer loyal deed, I'll offer ye this, the Gavel of Justice. May ye employ it well in the service o' justice."); + -- Confirmed Live Factions + e.other:Faction(e.self,327,25); --Shamen of Justice + e.other:Faction(e.self,328,3); --Merchants of Halas + e.other:Faction(e.self,223,-3); --Circle of Unseen Hands + e.other:Faction(e.self,336,-3); --Coalition of Tradefolk Underground + e.other:Faction(e.self,244,-5); --Ebon Mask + e.other:QuestReward(e.self,0,math.random(10),math.random(10),math.random(0,2),6028,6400); --Gavel of Justice + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Skoni.lua b/halas/Skoni.lua new file mode 100644 index 0000000..efbe90c --- /dev/null +++ b/halas/Skoni.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome. " .. e.other:GetCleanName() .. "! If there is a sketch you are looking for. you should be able to find it here."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/halas/Soulbinder_Jarle.lua b/halas/Soulbinder_Jarle.lua new file mode 100644 index 0000000..80c75f8 --- /dev/null +++ b/halas/Soulbinder_Jarle.lua @@ -0,0 +1,15 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID(),0,1); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Teria_O-Danos.lua b/halas/Teria_O-Danos.lua new file mode 100644 index 0000000..56aaee2 --- /dev/null +++ b/halas/Teria_O-Danos.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day to ye! Ye look a wee bit hungrry. I sell many fine foods. Please have a look. Might I suggest the [lion roast]? It is a wee bit expensive, but well worth it."); + elseif(e.message:findi("lion roast")) then + e.self:Say("The lion roast is quite good. Tis me specialty. Ah marinate the lion meat in mammoth fat fer two days before roasting it. Lion meat isn't common around here. I'll purchase what I can from strangers but I rely mostly on shipments from the Plains o' Karana. I'm presently searching fer someone to [pick up me lion meat shipment]."); + elseif(e.message:findi("lion meat shipment")) then + e.self:Say("It'd be grand o' ye to pick up me lion meat shipment. Ye must travel to the Plains o' Karana. Search fer a Northman fishing village. It should be Clan McMannus. Speak with the chieftain, Einhorst. Tell him ye're there to [pick up the lion meat shipment for Halas]. When ye return, I'll pay ye at least three gold. I look forward to yer return."); + elseif(e.message:findi("lion delight")) then + e.self:Say("Lion Delight is a trade secret and brings me much praise. I'll allow only one per customer. I'll also honor all as will [pick up the lion meat shipment] with a fine portion."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13961})) then --Lion Meat Shipment + e.self:Say("Ye've returned!! How wonderful! The people o' Halas thank ye! It isn't often we get to indulge ourselves in the delicacies o' warmer climates. Here ye go, me friend. Ye've completed the delivery in good time. I hope ye deliver more often. Here, try some of me new creation.. [Lion Delight]."); + -- Confirmed Live Factions + e.other:Faction(e.self,328,10); --Merchants of Halas + e.other:Faction(e.self,320,7); --Wolves of the North + e.other:Faction(e.self,327,7); --Shamen of Justice + e.other:QuestReward(e.self,0,0,3,0,12221,1000); --Lion Delight + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Thadres_Thyme.lua b/halas/Thadres_Thyme.lua new file mode 100644 index 0000000..16ac133 --- /dev/null +++ b/halas/Thadres_Thyme.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. " .. e.other:GetCleanName() .. "! It's hard to believe just how cold it gets here! It really has been wearing me down. Especially after the [journey] from Qeynos."); + elseif(e.message:findi("what journey")) then + e.self:Say("I have been traveling the face of Norrath to unravel the mystery of why my beloved [brother] attacked a group of traveling bards. He didn't survive the fight. It's been so long. I can't really remember what he looked like! I miss him so much... Now all I have are his [diary] and some brewing recipes he sold before his death."); + elseif(e.message:findi("brother")) then + e.self:Say("My brother was Delius Thyme. I think he was a great man. " .. e.other:GetCleanName() .. ", have you ever lost someone close? I don't know if I can ever forgive myself for letting him travel on his own after his sanity began to fade. Oh, Delius, please forgive me!"); + elseif(e.message:findi("what diary")) then + e.self:Say("The diary? It's one of the two connections I still have to my brother. Sadly. [pages] are missing from it. I've been looking for them."); + elseif(e.message:findi("what pages")) then + e.self:Say("I believe the pages contain the events that drove my brother to insanity. I have been searching for the remaining three missing pages. There is some hope; I found a couple of pages over in Everfrost Mountains."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Thank you very much. Now, please help me find all three missing pages."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18136, item2 = 18137, item3 = 18138},1,text)) then + e.self:Say("Thank you, thank you. Let me read them. Oh! How could I want these brewing recipes after they made my brother insane? Where are they? I think this is all of them. Take them away from me! Delius can smile upon me now."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(18139,18140,18141),200); -- Item: Garsen's Brewing List, Garsen's Notes, Garsen's Secret Brews + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/halas/Waltor_Felligan.lua b/halas/Waltor_Felligan.lua new file mode 100644 index 0000000..b1291a9 --- /dev/null +++ b/halas/Waltor_Felligan.lua @@ -0,0 +1,55 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello, me friend! I'm the resident healer o' Halas. Please inform me when ye've a need fer me talents to [bind wounds], [cure disease] or [cure poison]. Might I add, if ye're a young shaman o' Halas, ye can also [assist in gathering fungus]."); + elseif(e.message:findi("assist in gathering fungus")) then + if(e.other:GetFaction(e.self) < 5) then -- requires amiably + e.self:Say("As the wooly spiderlings get ready to molt, they'll carry wooly fungus. Oftentimes, one can find wooly fungus growing on their bellies. I use this in me healing practices. I'll reward ye if ye can fill this jar full o' the valuable fungus. Don't forget to combine them before ye return it to me. And have yerself some rations handy, or ye may find yerself snacking on this tasteless food source."); + e.other:SummonCursorItem(17946); -- Item: Empty Jar + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("Ye're no criminal to the Shamans o' Justice, but ye've yet to prrove yer devotion to justice."); + else + e.self:Say("The scales o' the Shamans o' Justice dinnae tip in yer favor. Ye'd best flee ye still have the chance."); + end + elseif(e.message:findi("cure disease") or e.message:findi("bind wounds") or e.message:findi("cure poison")) then + if(e.other:GetFaction(e.self) < 6) then -- requires indifferently + if(e.message:findi("cure disease")) then + e.self:Say("Two small quantities o' wooly fungus are needed before we can cure yer malady."); + elseif(e.message:findi("bind wounds")) then + e.self:Say("Before I bind yer wounds, ye must pay tribute to the Tribunal in the amount of ten gold coins."); + elseif(e.message:findi("cure poison")) then + e.self:Say("I'll be needing mammoth steaks to feed the unfortunate. Then we'll drain the poison from yer veins."); + end + else + e.self:Say("The scales o' the Shamans o' Justice dinnae tip in yer favor. Ye'd best flee ye still have the chance."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13966})) then -- Jar of Fungus turn in for random spell + e.self:Say("Aye! Ye've filled the jar. I'll see to it that Holana locks this away. Tis difficult to obtain and we can only spare the talents of our young shamans. Allow me to give ye a reward. Thank ye kindly fer yer service."); + -- Confirmed Live Factions + e.other:Faction(e.self,327, 10); -- Shamen of Justice + e.other:Faction(e.self,328, 1); -- Merchants of Halas + e.other:Faction(e.self,223, -1); -- Circle Of Unseen Hands + e.other:Faction(e.self,229,-1); -- Coalition of Tradefolk + e.other:Faction(e.self,244,-2); -- Ebon Mask + e.other:QuestReward(e.self,0,0,math.random(10),0,eq.ChooseRandom(15203, 15270, 15271, 15275, 15036, 15075, 15224, 15269),3000); -- Spells : Cure Poison, Drowsy, Fleeting Fury, Frost Rift, Gate, Sicken, Endure Fire, Feet Like Cat + elseif(item_lib.check_turn_in(e.self, e.trade, {gold = 10})) then + e.self:Say("The scales have been balanced and the Tribunal has spoken. Yer body shall be saved."); + e.self:CastSpell(17,e.other:GetID()); -- Spell: Light Healing + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13445})) then + e.self:CastSpell(203,e.other:GetID()); -- Spell: Cure Poison + e.self:Say("The scales have been balanced and the Tribunal has spoken. Yer body shall be saved."); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13967, item2 = 13967})) then + e.self:CastSpell(213,e.other:GetID()); -- Spell: Cure Disease + e.self:Say("The scales have been balanced and the Tribunal has spoken. Yer body shall be saved."); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/halas/Ysanna_MacGibbon.lua b/halas/Ysanna_MacGibbon.lua new file mode 100644 index 0000000..cba0179 --- /dev/null +++ b/halas/Ysanna_MacGibbon.lua @@ -0,0 +1,40 @@ +--Added faction requirement of Indifferent or better as per allakhazams + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("The mammoth calf hides are used to shield our beasts of burden from the icy wind. You are probably now asking what shields us Northmen from that same icy wind eh? Well, along with many other furs and leathers, we have come to find that [gnoll fur] of all things is a good insulator against the cold. Look at their tiny bodies and it's obvious their fur does something good."); + end +end + +function event_say(e) + if(e.message:findi("gnoll fur")) then -- no faction req for this response + e.self:Say("You should not be asking where or what a gnoll is, but asking how I make use of that patch fur I find on their corpse. It is quite simple, take four pieces of gnoll fur and sew them together. Take the result and sew four of them together. And again with that product. In the end you will have a bundle of tailored gnoll fur. You can either return it to me or keep it for yourself."); + elseif(e.message:findi("dark assassin")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("That poor lad! I saw him in the tundra being chased by that big bear of Tundra Jack. I never liked that bear of his since the day he ate my poor dog Thunderpaw. Anyways i say Iceberg chasing the assassin and grabbed my trusty ahlspiess and threw it, aiming right for his big head. Can you believe I missed?? I hit his side instead. Iceberg ripped my ahlspiess out and ripped it into pieces and then went whining of to Tundra Jack. Serves that bear right! He ate my dog!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("ahlspiess")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Ahhhh my beloved shrieking ahlspiess, it was nice i was able to help a fellow assassin out but i really do miss it. The dark assassin gave me a sketch of paper he said was very valueable but it still pains me to be without my favourite throwing weapon. If you go get me another I would gladly part with this sketch."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1330})) then -- requires indifferent, Patched Gnoll Fur Bundle + e.self:Say("You have done well. Here is a small reward for your effort."); + -- Confimred Live Factions + e.other:Faction(e.self,305,5); -- Faction Rogue's of the White Rose + e.other:QuestReward(e.self,0,math.random(10),math.random(10),math.random(0,1),1349,3000); --Fang of the Wolf + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 7507})) then -- requires indifferent, Shrieking Ahlspiess + e.self:Say("Yay! You got another one for me! I'm so happy! Here as I promised is the sketch."); + e.other:Faction(e.self,305,5); -- Faction Rogue's of the White Rose + e.other:QuestReward(e.self,0,0,0,0,24097); --Sluggish Sketch + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/hateplane/#Hand_of_the_Maestro.lua b/hateplane/#Hand_of_the_Maestro.lua new file mode 100644 index 0000000..64691f3 --- /dev/null +++ b/hateplane/#Hand_of_the_Maestro.lua @@ -0,0 +1,4 @@ +function event_death_complete(event) + -- spawn a Very Unpleasant Hand + eq.spawn2(76388, 0, 0, event.self:GetX(), event.self:GetY(), event.self:GetZ(), event.self:GetHeading()); +end diff --git a/hateplane/A_Very_Unpleasant_Hand.lua b/hateplane/A_Very_Unpleasant_Hand.lua new file mode 100644 index 0000000..ff87840 --- /dev/null +++ b/hateplane/A_Very_Unpleasant_Hand.lua @@ -0,0 +1,13 @@ +function event_spawn(event) + eq.set_timer("depop", 2700000); +end + +function event_timer(event) + + if ( event.self:IsEngaged() ) then + eq.set_timer("depop", 10000); -- don't depop if aggro + else + eq.depop(); + eq.stop_timer("depop"); + end +end diff --git a/hateplane/A_blood.lua b/hateplane/A_blood.lua new file mode 100644 index 0000000..237074a --- /dev/null +++ b/hateplane/A_blood.lua @@ -0,0 +1,11 @@ +function event_spawn(event) + local xloc = event.self:GetX(); + local yloc = event.self:GetY(); + local zloc = event.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 25, zloc + 25); +end + +function event_enter(event) + event.self:Emote("chilling cry echoes through the darkened streets"); + eq.depop_with_timer(); +end diff --git a/hateplane/A_wise.lua b/hateplane/A_wise.lua new file mode 100644 index 0000000..b575561 --- /dev/null +++ b/hateplane/A_wise.lua @@ -0,0 +1,11 @@ +function event_spawn(event) + local xloc = event.self:GetX(); + local yloc = event.self:GetY(); + local zloc = event.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 25, zloc + 25); +end + +function event_enter(event) + event.self:Emote("man would not find himself invading the realm of Innoruuk."); + eq.depop_with_timer(); +end diff --git a/hateplane/Filled.lua b/hateplane/Filled.lua new file mode 100644 index 0000000..ac1c012 --- /dev/null +++ b/hateplane/Filled.lua @@ -0,0 +1,33 @@ +function event_spawn(event) + local xloc = event.self:GetX(); + local yloc = event.self:GetY(); + local zloc = event.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 25, zloc + 25); +end + +function event_enter(event) + eq.set_timer("depop", 300000); +end + +function event_timer(event) + selfX = event.self:GetX(); + selfY = event.self:GetY(); + selfZ = event.self:GetZ(); + + local clientList = eq.get_entity_list():GetClientList(); + local clientCount = 0; + + if ( clientList ) then + for client in clientList.entries do + if ( client:CalculateDistance(selfX, selfY, selfZ) < 75 ) then + clientCount = clientCount + 1; + end + end + end + + if ( clientCount >= 2 ) then + event.self:Emote("with rage, you can hardly wait until you are able to spill blood again. In fact, you might not wait! You never did like the way that person over there looked at you!"); + end + eq.stop_timer("depop"); + eq.depop_with_timer(); +end diff --git a/hateplane/Little_eggs_of_evil.lua b/hateplane/Little_eggs_of_evil.lua new file mode 100644 index 0000000..967ff74 --- /dev/null +++ b/hateplane/Little_eggs_of_evil.lua @@ -0,0 +1,22 @@ +function event_spawn(event) + local xloc = event.self:GetX(); + local yloc = event.self:GetY(); + local zloc = event.self:GetZ(); + eq.set_proximity(xloc - 45, xloc + 45, yloc - 45, yloc + 45, zloc - 45, zloc + 45); +end + +function event_enter(event) + local numSpawns = math.random(3, 5); + + for i = 1, numSpawns do + eq.spawn2( 76386, -- evil little imp + 0, + 0, + event.self:GetX()+math.random(-5,5), + event.self:GetY()+math.random(-5,5), + event.self:GetZ(), + math.random(0, 250) + ); + end + eq.depop_with_timer(); +end diff --git a/hateplane/ShowEQ_Users_Are_Lame.lua b/hateplane/ShowEQ_Users_Are_Lame.lua new file mode 100644 index 0000000..0b2e28a --- /dev/null +++ b/hateplane/ShowEQ_Users_Are_Lame.lua @@ -0,0 +1,10 @@ +function event_spawn(event) + local xloc = event.self:GetX(); + local yloc = event.self:GetY(); + local zloc = event.self:GetZ(); + eq.set_proximity(xloc - 45, xloc + 45, yloc - 45, yloc + 45, zloc - 45, zloc + 45); +end + +function event_enter(event) + eq.depop_with_timer(); +end diff --git a/hateplane/Suddenly.lua b/hateplane/Suddenly.lua new file mode 100644 index 0000000..f01dc68 --- /dev/null +++ b/hateplane/Suddenly.lua @@ -0,0 +1,33 @@ +function event_spawn(event) + local xloc = event.self:GetX(); + local yloc = event.self:GetY(); + local zloc = event.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 25, zloc + 25); +end + +function event_enter(event) + eq.set_timer("depop", 300000); +end + +function event_timer(event) + selfX = event.self:GetX(); + selfY = event.self:GetY(); + selfZ = event.self:GetZ(); + + local clientList = eq.get_entity_list():GetClientList(); + local clientCount = 0; + + if ( clientList ) then + for client in clientList.entries do + if ( client:CalculateDistance(selfX, selfY, selfZ) < 75 ) then + clientCount = clientCount + 1; + end + end + end + + if ( clientCount >= 3 ) then + event.self:Emote("paranoid, you look at each of your party members. Which one will be corrupted first? Who will die next? Will one of them fail me?"); + end + eq.stop_timer("depop"); + eq.depop_with_timer(); +end diff --git a/hateplane/The_stench.lua b/hateplane/The_stench.lua new file mode 100644 index 0000000..43501a8 --- /dev/null +++ b/hateplane/The_stench.lua @@ -0,0 +1,11 @@ +function event_spawn(event) + local xloc = event.self:GetX(); + local yloc = event.self:GetY(); + local zloc = event.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 25, zloc + 25); +end + +function event_enter(event) + event.self:Emote("of decay is overpowering"); + eq.depop_with_timer(); +end diff --git a/hateplane/You_really.lua b/hateplane/You_really.lua new file mode 100644 index 0000000..77a4b5d --- /dev/null +++ b/hateplane/You_really.lua @@ -0,0 +1,11 @@ +function event_spawn(event) + local xloc = event.self:GetX(); + local yloc = event.self:GetY(); + local zloc = event.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 25, zloc + 25); +end + +function event_enter(event) + event.self:Emote("hate this place."); + eq.depop_with_timer(); +end diff --git a/hateplane/You_would.lua b/hateplane/You_would.lua new file mode 100644 index 0000000..9167479 --- /dev/null +++ b/hateplane/You_would.lua @@ -0,0 +1,11 @@ +function event_spawn(event) + local xloc = event.self:GetX(); + local yloc = event.self:GetY(); + local zloc = event.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 25, zloc + 25); +end + +function event_enter(event) + event.self:Emote("much rather be in a safe and warm inn than this hellish dimension."); + eq.depop_with_timer(); +end diff --git a/hateplane/a_Champion_of_Innoruuk.lua b/hateplane/a_Champion_of_Innoruuk.lua new file mode 100644 index 0000000..d15b272 --- /dev/null +++ b/hateplane/a_Champion_of_Innoruuk.lua @@ -0,0 +1,12 @@ +function event_signal(event) + + if ( event.signal == 1 ) then + + entityList = eq.get_entity_list(); + local evangelist = entityList:GetNPCByNPCTypeID(76026); -- an_Evangelist_of_Hate + + if ( evangelist:CalculateDistance(event.self:GetX(), event.self:GetY(), event.self:GetZ()) < 60 ) then + event.self:Shout("All praise Innoruuk, our lord and creator!"); + end + end +end diff --git a/hateplane/a_Disciple_of_Innoruuk.lua b/hateplane/a_Disciple_of_Innoruuk.lua new file mode 100644 index 0000000..d15b272 --- /dev/null +++ b/hateplane/a_Disciple_of_Innoruuk.lua @@ -0,0 +1,12 @@ +function event_signal(event) + + if ( event.signal == 1 ) then + + entityList = eq.get_entity_list(); + local evangelist = entityList:GetNPCByNPCTypeID(76026); -- an_Evangelist_of_Hate + + if ( evangelist:CalculateDistance(event.self:GetX(), event.self:GetY(), event.self:GetZ()) < 60 ) then + event.self:Shout("All praise Innoruuk, our lord and creator!"); + end + end +end diff --git a/hateplane/a_Knight_of_Innoruuk.lua b/hateplane/a_Knight_of_Innoruuk.lua new file mode 100644 index 0000000..d15b272 --- /dev/null +++ b/hateplane/a_Knight_of_Innoruuk.lua @@ -0,0 +1,12 @@ +function event_signal(event) + + if ( event.signal == 1 ) then + + entityList = eq.get_entity_list(); + local evangelist = entityList:GetNPCByNPCTypeID(76026); -- an_Evangelist_of_Hate + + if ( evangelist:CalculateDistance(event.self:GetX(), event.self:GetY(), event.self:GetZ()) < 60 ) then + event.self:Shout("All praise Innoruuk, our lord and creator!"); + end + end +end diff --git a/hateplane/a_Sage_of_Innoruuk.lua b/hateplane/a_Sage_of_Innoruuk.lua new file mode 100644 index 0000000..d15b272 --- /dev/null +++ b/hateplane/a_Sage_of_Innoruuk.lua @@ -0,0 +1,12 @@ +function event_signal(event) + + if ( event.signal == 1 ) then + + entityList = eq.get_entity_list(); + local evangelist = entityList:GetNPCByNPCTypeID(76026); -- an_Evangelist_of_Hate + + if ( evangelist:CalculateDistance(event.self:GetX(), event.self:GetY(), event.self:GetZ()) < 60 ) then + event.self:Shout("All praise Innoruuk, our lord and creator!"); + end + end +end diff --git a/hateplane/a_scorn_banshee.lua b/hateplane/a_scorn_banshee.lua new file mode 100644 index 0000000..c25990b --- /dev/null +++ b/hateplane/a_scorn_banshee.lua @@ -0,0 +1,6 @@ +function event_death_complete(event) + -- 5% chance to spawn a thought destroyer on scorn banshee death + if ( math.random() < 0.05 ) then + eq.spawn2(76387, 0, 0, event.self:GetX(), event.self:GetY(), event.self:GetZ(), event.self:GetHeading()); + end +end diff --git a/hateplane/an_Agent_of_Innoruuk.lua b/hateplane/an_Agent_of_Innoruuk.lua new file mode 100644 index 0000000..d15b272 --- /dev/null +++ b/hateplane/an_Agent_of_Innoruuk.lua @@ -0,0 +1,12 @@ +function event_signal(event) + + if ( event.signal == 1 ) then + + entityList = eq.get_entity_list(); + local evangelist = entityList:GetNPCByNPCTypeID(76026); -- an_Evangelist_of_Hate + + if ( evangelist:CalculateDistance(event.self:GetX(), event.self:GetY(), event.self:GetZ()) < 60 ) then + event.self:Shout("All praise Innoruuk, our lord and creator!"); + end + end +end diff --git a/hateplane/an_Evangelist_of_Hate.lua b/hateplane/an_Evangelist_of_Hate.lua new file mode 100644 index 0000000..ae3a283 --- /dev/null +++ b/hateplane/an_Evangelist_of_Hate.lua @@ -0,0 +1,14 @@ +function event_spawn(e) + eq.set_timer("spam", 1800000); +end + +function event_timer(e) + local client_list = eq.get_entity_list():GetClientList(); + if(client_list ~= nil) then + eq.signal(76383, 1); -- NPC: an_Agent_of_Innoruuk + eq.signal(76215, 1); -- NPC: a_Disciple_of_Innoruuk + eq.signal(76021, 1); -- NPC: a_Knight_of_Innoruuk + eq.signal(76346, 1); -- NPC: a_Sage_of_Innoruuk + eq.signal(76087, 1); -- NPC: a_Champion_of_Innoruuk + end +end diff --git a/hateplane/an_evil_little_imp.lua b/hateplane/an_evil_little_imp.lua new file mode 100644 index 0000000..c88ea11 --- /dev/null +++ b/hateplane/an_evil_little_imp.lua @@ -0,0 +1,13 @@ +function event_spawn(event) + eq.set_timer("depop", 1200000); +end + +function event_timer(event) + + if ( event.self:IsEngaged() ) then + eq.set_timer("depop", 10000); -- don't depop if aggro + else + eq.depop(); + eq.stop_timer("depop"); + end +end diff --git a/hateplane/thought_destroyer.lua b/hateplane/thought_destroyer.lua new file mode 100644 index 0000000..c88ea11 --- /dev/null +++ b/hateplane/thought_destroyer.lua @@ -0,0 +1,13 @@ +function event_spawn(event) + eq.set_timer("depop", 1200000); +end + +function event_timer(event) + + if ( event.self:IsEngaged() ) then + eq.set_timer("depop", 10000); -- don't depop if aggro + else + eq.depop(); + eq.stop_timer("depop"); + end +end diff --git a/highkeep/Bank_Clerk_Jaylin.lua b/highkeep/Bank_Clerk_Jaylin.lua new file mode 100644 index 0000000..9ad8cb1 --- /dev/null +++ b/highkeep/Bank_Clerk_Jaylin.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello! If you wish to hand in your keys, please give them to me and I will be happy to assist you! It is a pleasure doing business with you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12143})) then + e.self:Say("I am sorry to see you check out. Here is all you had in your box. We hope to serve you again. Have a nice day!! Next!"); + e.other:QuestReward(e.self,0,0,0,0,18936); -- Item: A Sealed Note + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12193})) then + e.self:Say("I am sorry to see you check out. Here is all you had in your box. We hope to serve you again. Have a nice day!! Next!"); + e.other:QuestReward(e.self,math.random(0,5),math.random(0,5),math.random(0,5),math.random(0,1),13323,500); -- Item: Emerald Shard + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Captain_Bosec.lua b/highkeep/Captain_Bosec.lua new file mode 100644 index 0000000..09ea3c6 --- /dev/null +++ b/highkeep/Captain_Bosec.lua @@ -0,0 +1,83 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= -350) then + if(e.message:findi("hail")) then + e.self:Say("I'm Captain Bosec. and I am the officer in charge down here. It's my job to patrol the prison and try to keep any [goblins] from getting into Highpass."); + elseif(e.message:findi("goblin")) then + e.self:Say("Help us exterminate these vile creatures. They call themselves the [Pickclaw] Clan.. I call them annoying. I will gladly pay big money for the left ear of every goblin slain."); + elseif(e.message:findi("pickclaw")) then + e.self:Say("A couple of months ago, Carson decided to add some more floors beneath the keep. During the construction, we came across these tunnels.. and these goblins. Work has been temporarily halted until we can completely clear out this Pickclaw infestation."); + elseif(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end +end + +function event_trade(e) + local ear = 0; + local item_lib =require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13790,item2 = 13790,item3 = 13790,item4 = 13790}, 0)) then + ear = 4; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13790,item2 = 13790,item3 = 13790}, 0)) then + ear = 3; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13790,item2 = 13790}, 0)) then + ear = 2; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13790}, 0)) then + ear = 1; + end + + if(ear > 0) then + if(e.other:GetFactionValue(e.self) >= -350) then + repeat + e.self:Say("Well done! We could really use the extra help around here."); + e.other:Faction(e.self,332,2,0); -- Faction: Highpass Guards + e.other:Faction(e.self,329,1,0); -- Faction: Carson McCabe + e.other:Faction(e.self,331,1,0); -- Faction: Merchants of Highpass + e.other:Faction(e.self,230,1,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,330,1,0); -- Faction: The Freeport Militia + -- This doesn't give xp for level 15 or below. + if(e.other:GetLevel() > 15) then + e.other:QuestReward(e.self,math.random(0,5),math.random(0,5),math.random(0,5),0,0,25); -- verified xp live data + else + e.other:QuestReward(e.self,math.random(0,5),math.random(0,5),math.random(0,5),0); + end + ear = ear - 1; + until ear == 0 + else + e.self:Say("I will not aid beings such as you."); + end + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Captain_Boshinko.lua b/highkeep/Captain_Boshinko.lua new file mode 100644 index 0000000..314a98e --- /dev/null +++ b/highkeep/Captain_Boshinko.lua @@ -0,0 +1,35 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("hail")) then + e.self:Say("Greetings, stranger! Are you the [bounty hunter I requested]?"); + elseif(e.message:findi("bounty hunter you requested")) then + e.self:Say("It is about time. I have been waiting for you for ages! Your [reputation] precedes you."); + elseif(e.message:findi("reputation")) then + e.self:Say("You humor me, " .. e.other:GetCleanName() .. "! I would have guessed someone like yourself would have little time for humor. Nevertheless, would you [like to hear about the job] I have for you?"); + elseif((e.message:findi("about the job") or e.message:findi("like to know more")) and fac > 5) then + e.self:Say("Your name is as respected as the name of the Karana bandits. Leave my presence while you still have legs to run with."); + elseif((e.message:findi("about the job") or e.message:findi("like to know more")) and fac == 5) then + e.self:Say("You must be new to Highhold. We will trust you when we hear your blade has cut down many Karana bandits or assisted our gatehouse guards with their tasks."); + elseif(e.message:findi("about the job") and fac < 5) then + e.self:Say("A prisoner named Bronin Higginsbot, a halfling, recently escaped. He was a small time thief and I would care less if it were not for the fact that in the process of obtaining the cell key, he disemboweled my finest guard. We found the bloodied shank still stuck in my guard's gutted corpse. Would you [like to know more]?"); + elseif(e.message:findi("like to know more") and fac < 5) then + e.self:Say("That little man has now made it to Rivervale. He has ties with the halfling rogues, obviously. I want you to find him. When you find him, take this shank he used to kill my guard and hand it to him. I want him to know why he is about to die. No one escapes my prison!! Bring me his head and I shall pay the bounty."); + e.other:SummonCursorItem(13110); -- Item: Bloody Shank + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13111})) then + e.self:Say("Good work, bounty hunter! You have served your legend well. I hope a few plat is good enough and, please, take this item we confiscated from one of our guests now serving time in our dungeon."); + e.other:Faction(e.self,332, 20); -- Faction: Highpass Guards + e.other:Faction(e.self,329, 3); -- Faction: Carson McCabe + e.other:Faction(e.self,331, 3); -- Faction: Merchants of Highpass + e.other:Faction(e.self,230, 1); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,330, 1); -- Faction: The Freeport Militia + e.other:QuestReward(e.self,math.random(0,5),math.random(0,5),math.random(0,5),math.random(0,5),eq.ChooseRandom(2314,5026,5027,5028,6019,6302,7321,5300),250); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Carson_McCabe.lua b/highkeep/Carson_McCabe.lua new file mode 100644 index 0000000..2d964af --- /dev/null +++ b/highkeep/Carson_McCabe.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Good to meet you, %s! I hope you are enjoying your time in High Hold. We have the finest food and entertainment around. All I ask is that you do not spend your time on the top floor of High Keep. Those are my personal living quarters. Other than that, SPEND AND INDULGE!",e.other:GetName())); + end +end diff --git a/highkeep/Dealer_Shonta.lua b/highkeep/Dealer_Shonta.lua new file mode 100644 index 0000000..0279214 --- /dev/null +++ b/highkeep/Dealer_Shonta.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Greetings. %s! I am sorry but this table has a hundred platinum minimum. Maybe you should start on the copper tables.",e.other:GetName())); + end +end diff --git a/highkeep/Fenn_Kaedrick.lua b/highkeep/Fenn_Kaedrick.lua new file mode 100644 index 0000000..85841eb --- /dev/null +++ b/highkeep/Fenn_Kaedrick.lua @@ -0,0 +1,31 @@ +function event_spawn(e) + eq.set_timer("depop", 1800000); --Despawn after 30 minutes +end + +function event_say(e) + local qglobals = eq.get_qglobals(e.self,e.other); + if(e.message:findi("hail")) then + e.self:Say("What brings you to the top of the castle? Me? I am just the Highkeep exterminator. We have had a nasty time with rats."); + elseif(e.message:findi("xentil") and e.other:GetFaction(e.self) <= 4) then -- requires high amiably faction + e.self:Say("Xentil Herkanon is related to one of the bigwigs of the Circle of Unseen Hands, the rogue guild in Qeynos. Killing him would greatly decrease your popularity with them, but who do they like, anyway? He travels with two bodyguards, Lartin and Grex, very tough customers. It's best to avoid them. Goodbye and good luck."); + eq.stop_timer("depop"); + eq.depop(); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFaction(e.self) <= 4 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12185})) then --Useless Coin requires amiably faction + e.self:Say("So you are the one Laren sent. I myself was trained by Laren. Imagine that, a human trained by elven rogues. I share the concerns of the scouts. You were sent to assassinate [Xentil Herkanon]. He betrayed the scouts and Kelethin. He is somewhere in this keep. Return his head to Laren in Kelethin."); + e.other:QuestReward(e.self,0,0,0,0,0,2000); + eq.unique_spawn(6185, 0, 0, -258, -102, 4, 16); --Xentil Herkanon + eq.unique_spawn(6186, 0, 0, -259, -78, 4, 0); --Lartin + eq.unique_spawn(6187, 0, 0, -240, -78, 4, 0); --Grex + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end diff --git a/highkeep/Grex.lua b/highkeep/Grex.lua new file mode 100644 index 0000000..a11c36e --- /dev/null +++ b/highkeep/Grex.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You have no business here. Get lost!"); -- Text made up + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + eq.depop(); +end diff --git a/highkeep/Guard_Anleal.lua b/highkeep/Guard_Anleal.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Anleal.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Antilles.lua b/highkeep/Guard_Antilles.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Antilles.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Bach.lua b/highkeep/Guard_Bach.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Bach.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Bicker.lua b/highkeep/Guard_Bicker.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Bicker.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Blayle.lua b/highkeep/Guard_Blayle.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Blayle.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Bolton.lua b/highkeep/Guard_Bolton.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Bolton.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Bonner.lua b/highkeep/Guard_Bonner.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Bonner.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Chin.lua b/highkeep/Guard_Chin.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Chin.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Chopin.lua b/highkeep/Guard_Chopin.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Chopin.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Clyzen.lua b/highkeep/Guard_Clyzen.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Clyzen.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Diff.lua b/highkeep/Guard_Diff.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Diff.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Dister.lua b/highkeep/Guard_Dister.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Dister.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Drugan.lua b/highkeep/Guard_Drugan.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Drugan.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Duras.lua b/highkeep/Guard_Duras.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Duras.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Dwight.lua b/highkeep/Guard_Dwight.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Dwight.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Folton.lua b/highkeep/Guard_Folton.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Folton.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Gechop.lua b/highkeep/Guard_Gechop.lua new file mode 100644 index 0000000..c0bd595 --- /dev/null +++ b/highkeep/Guard_Gechop.lua @@ -0,0 +1,41 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Golgon.lua b/highkeep/Guard_Golgon.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Golgon.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Handy.lua b/highkeep/Guard_Handy.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Handy.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Heltch.lua b/highkeep/Guard_Heltch.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Heltch.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Jaxon.lua b/highkeep/Guard_Jaxon.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Jaxon.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Kheb.lua b/highkeep/Guard_Kheb.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Kheb.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Kovan.lua b/highkeep/Guard_Kovan.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Kovan.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Lancel.lua b/highkeep/Guard_Lancel.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Lancel.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Lorton.lua b/highkeep/Guard_Lorton.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Lorton.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Mytin.lua b/highkeep/Guard_Mytin.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Mytin.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Onto.lua b/highkeep/Guard_Onto.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Onto.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Qanyl.lua b/highkeep/Guard_Qanyl.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Qanyl.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Queztin.lua b/highkeep/Guard_Queztin.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Queztin.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Rance.lua b/highkeep/Guard_Rance.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Rance.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Ruan.lua b/highkeep/Guard_Ruan.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Ruan.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Sintra.lua b/highkeep/Guard_Sintra.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Sintra.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Sydl.lua b/highkeep/Guard_Sydl.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Sydl.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Wextr.lua b/highkeep/Guard_Wextr.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Wextr.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Xantar.lua b/highkeep/Guard_Xantar.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Xantar.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Guard_Yeltin.lua b/highkeep/Guard_Yeltin.lua new file mode 100644 index 0000000..322a721 --- /dev/null +++ b/highkeep/Guard_Yeltin.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("who.* mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community."); + elseif(e.message:findi("who.* lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all."); + elseif(e.message:findi("karana")) then + e.self:Say("If you are trying to get to Karana, you will need to leave Highpass from the western entrance."); + elseif(e.message:findi("prison") or e.message:findi("jail") or e.message:findi("dungeon")) then + e.self:Say("The dungeon is located on the lower levels of High Keep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + elseif(e.message:findi("sleep") or e.message:findi("inn")) then + e.self:Say("If you are looking for a comfortable bed to sleep on, speak to the innkeeper on the first level of the keep. The rooms are expensive, but other than that, your only choice would be to try and find an empty room at the Golden Rooster."); + elseif(e.message:findi("tavern") or e.message:findi("bar")) then + e.self:Say("There are a few places outside the keep which can supply an endless flow of grog. As for inside the keep, you may be able to buy a drink or two from the kitchen on the second floor."); + elseif(e.message:findi("freeport")) then + e.self:Say("If you plan on going to Freeport you will have to go through the Commonlands first."); + elseif(e.message:findi("bank") or e.message:findi("vault")) then + e.self:Say("Inside the keep, you can turn items in for safekeeping with the vault clerk who is on the lower level beyond the guestrooms. Do not wander too far down there.The dungeon is also in the same area."); + elseif(e.message:findi("bosec")) then + e.self:Say("Captain Bosec is the officer in charge of the guards of the keep. He is having a rather rough time of late. Commander Tehafer is very upset that he cannot exterminate the recent goblin infestation in the lower levels. If you wish to help him, go ask him about the goblins."); + elseif(e.message:findi("tehafer")) then + e.self:Say("Commander Tehafer is a very noble man. It is rumored that he was once a paladin and has since fallen from grace. He now oversees all Highpass Watch operations. If you wish to speak with him, he can usually be found alongside the guards in High Keep entrance. Imagine that, a commander on watch alongside his men."); + elseif(e.message:findi("common")) then + e.self:Say("Exit Highpass from the eastern entrance. You will run right into the Commonlands. Just be careful in the Commonlands - I hear there has been an increase in orc activity."); + elseif(e.message:findi("guild")) then + e.self:Say("Guilds in Highpass!? I am afraid not. If you wish to join the ranks of the Highpass Watch, speak with one of our officers."); + elseif(e.message:findi("officer")) then + e.self:Say("The officers of the Highpass Watch are Captain Bosec of the High Keep Guard, Captain Ashlan of the East Gate Guard and finally Captain Orben of the West Gate Guard. Above them all is Commander Tehafer."); + elseif(e.message:findi("where.* carson")) then + e.self:Say("Carson McCabe resides in the royal chambers of High Keep. If you wish to meet with him, do so when he is on the lower levels of the keep. He does not like visitors in the upper levels."); + elseif(e.message:findi("where.* lady mccabe")) then + e.self:Say("I would assume that she would be in the royal chambers in the highest levels of High Keep."); + elseif(e.message:findi("where.* mistress anna")) then + e.self:Say("My best guess would be that she's somewhere in the suite of the richest noble passing through Highpass."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Isabella_Cellus.lua b/highkeep/Isabella_Cellus.lua new file mode 100644 index 0000000..9049e3a --- /dev/null +++ b/highkeep/Isabella_Cellus.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Hello. How nice to meet you. %s!",e.other:GetName())); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 8) then + e.self:Say("Would you please leave me alone?!"); + elseif(e.wp == 9) then + e.self:Say("I need to get out of here."); + elseif(e.wp == 12) then + e.self:Say("Would you please stop following me!!"); + elseif(e.wp == 16) then + e.self:Say("I just adore this place."); + end +end diff --git a/highkeep/Jail_Clerk_Maryl.lua b/highkeep/Jail_Clerk_Maryl.lua new file mode 100644 index 0000000..c4c59f8 --- /dev/null +++ b/highkeep/Jail_Clerk_Maryl.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail! I am the jail clerk of Highkeep. How may I be of service?"); + elseif(e.message:findi("lottery")) then + e.self:Say("The Highkeep Lottery is held every season. The Casino Treasurer, Lynn, handles all ticket sales and information. She can be found at the vault."); + elseif(e.message:findi("fenn kaedrick")) then + e.self:Say("Why do you ask of that horrid rogue? We had him locked away with that high elf and then he got bailed out. I know of no reason why anyone would want to bail his bloody carcass out of our dungeon."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18935},0)) then -- Sealed Note + e.self:Say("That little halfing has escaped our prison. No doubt he will travel back to the safety of Rivervale. He left this cracked emerald. It appears he must have broken off a piece of it. I believe it belongs in Kaladim. You may take it, but I am sure your master will not be satisfied until you combine the final piece with this one. Of course, first you will have to find Bronin and ask him of the missing emerald shard."); + e.other:QuestReward(e.self,0,0,0,0,17927,1000); -- Cracked Emerald + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Lady_McCabe.lua b/highkeep/Lady_McCabe.lua new file mode 100644 index 0000000..d9686a4 --- /dev/null +++ b/highkeep/Lady_McCabe.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Pleasure to meet you, %s. What brings you to High Hold? You do not appear to be the gambling type. Then again, you are speaking with me. That is quite a gamble in itself. I just love high rollers. Really, I do!",e.other:GetName())); + elseif(e.message:findi("carson")) then + e.self:Say("You do not know who Carson McCabe is?! No wonder you dare to speak with me! You know what they say, 'Those who dare, win!'"); + elseif(e.message:findi("anna")) then + e.self:Say("The Highpass hussy? I don't think you are rich enough to attract her affections. She would search for other requirements if she were... a lady. But she is a blatant trollop! I would have her executed if Carson would allow me. She is some sort of friend to Carson. Hmph! Grrrrr!"); + elseif(e.message:findi("are you")) then + e.self:Say("You really know all the right things to say. If only I'd never married Carson."); + elseif(e.message:findi("staff")) then + e.self:Say("I have no idea what you are talking about. Battle staff... Hmmm... No, it does not ring a bell."); + end +end diff --git a/highkeep/Lartin.lua b/highkeep/Lartin.lua new file mode 100644 index 0000000..a11c36e --- /dev/null +++ b/highkeep/Lartin.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You have no business here. Get lost!"); -- Text made up + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + eq.depop(); +end diff --git a/highkeep/Lislia_Goldtune.lua b/highkeep/Lislia_Goldtune.lua new file mode 100644 index 0000000..f8d532e --- /dev/null +++ b/highkeep/Lislia_Goldtune.lua @@ -0,0 +1,32 @@ +--Quest Name: Bard Mail Quest + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail. " .. e.other:GetCleanName() .. " - Are you [interested] in helping the League of Antonican Bards by delivering some [mail]?"); + elseif(e.message:findi("mail") and not e.message:findi("deliver") and not e.message:findi("freeport") and not e.message:findi("qeynos")) then + e.self:Say("The League of Antonican Bards has a courier system made up of travelers and adventurers. We pay good gold to anyone who will take messages from bards such as myself to one of our more distant offices. Are you [interested]?"); + elseif(e.message:findi("interested")) then + e.self:Say("I have messages that need to go to Freeport and to Qeynos. Will you [deliver] mail [to Freeport] or [to Qeynos] for me?"); + elseif(e.message:findi("deliver") and e.message:findi("Freeport")) then + e.self:Say("Take this pouch of mail to Ton Twostring. You can find him at the bard guild hall. I'm sure he will compensate you for your trouble."); + e.other:SummonCursorItem(18164); -- Item: A Pouch of Mail (Freeport) + elseif(e.message:findi("deliver") and e.message:findi("Qeynos")) then + e.self:Say("Take this pouch to Eve Marsinger in Qeynos. You can find her at the bard guild hall. I am sure she will compensate you for your troubles."); + e.other:SummonCursorItem(18165); -- Item: A Pouch of Mail (Qeynos) + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18152}) or item_lib.check_turn_in(e.self, e.trade, {item1 = 18156})) then + e.self:Say("More mail - you have done us a noteworthy service! Please take this gold for your troubles. If you are interested in more work, just ask me."); + e.other:Faction(e.self,284,5); -- Faction: League of Antonican Bards + e.other:Faction(e.self,281,1); -- Faction: Knights of Truth + e.other:Faction(e.self,262,1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,304,-1); -- Faction: Ring of Scale + e.other:Faction(e.self,285,-1); -- Faction: Mayong Mistmoore + e.other:QuestReward(e.self,0,0,math.random(8,12),0,0,1550); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Lozani.lua b/highkeep/Lozani.lua new file mode 100644 index 0000000..9379ea3 --- /dev/null +++ b/highkeep/Lozani.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. friend!! I am Lozani. Scribe Supreme of the Eldritch Collective. I have been sent forth from the great Library of Mechanimagica in the city of Ak'Anon. to study the arcane knowledge of man and beast alike. I have studied many languages and spells. from Crushbone to Kerra Ridge. I have found most languages hard to decipher. As of this date. I have learned to read only the script of the [orc oracles]. Oh well. I am on a five decade mission. Better luck next language."); + elseif(e.message:findi("orc oracles")) then + e.self:Say("Oh!! Heard of the orc oracles have you? A ghastly bunch they are!! Argh! The numerous days I spent interrogating those beasts with their foul breath. It was as if rats had gone and died in their mouths. I wished I could read minds after those days. TWENTY WEEKS of that rat-carcass breath and all I have learned is the ability to decipher [oracle scrolls] and [apprentice cantrips]. What a mess that was! I'm beginning to think I should have become a Gemchopper."); + elseif(e.message:findi("oracle scroll")) then + e.self:Say("Orc oracle scrolls? Mere shaman spells are they. I know how to decipher those illegible scrolls. I can do so, but it will cost you. Nothing is for free in this world, y'know? You give me one of those illegible scrolls and four gold coins."); + elseif(e.message:findi("apprentice cantrips")) then + e.self:Say("Orc apprentice cantrips. Child's play they are. Very difficult to decipher, mostly due to the orc sweat smearing the writing. I fill in the blanks with a second orc cantrip and my universe of knowledge, so you never know what spell is going to be scribed! Could be magic, could be wizardry, could be necromancy, golly!! Sometimes I even end up with a recipe!! If you want me to try to decipher one just hand me two illegible cantrips. No coinage necessary!! They are mostly apprentice spells. Nothing much."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "I need TWO illegible cantrips. Not much to ask for."; + local text2 = "Hey! I said FOUR gold and the illegible scroll! Sheesh."; + local scroll = 0; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13225,gold = 4},1,text2)) then -- Illegible Scroll and 4 gold# + e.self:Say("Hmmm... Aha! Well, I think this is it. A fine spell. I hope you need it because you are not getting your gold back."); + scroll = 1; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13845,item2 = 13845},1,text1)) then -- Illegible Cantrip + e.self:Say("And the winning spell is... Here, you do the honors."); + scroll = 1; + end + if(scroll == 1) then + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(15200, 15042, 15226, 13360, 15246, 15276, 15211, 15203, 15054),100); + scroll = 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Lucky_the_Beggar.lua b/highkeep/Lucky_the_Beggar.lua new file mode 100644 index 0000000..6dbc8e9 --- /dev/null +++ b/highkeep/Lucky_the_Beggar.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Merchant_Dominik.lua b/highkeep/Merchant_Dominik.lua new file mode 100644 index 0000000..6dbc8e9 --- /dev/null +++ b/highkeep/Merchant_Dominik.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("mistress anna")) then + e.self:Say("Mistress! Aptly named, that one. You are speaking of the Highpass hussy. That is what everyone calls her, at least behind her back, that is. Just as Highpass, she is beautiful and frequently traveled. I have heard rumors that Carson has been seeing her, but how can that be true? He has Lady McCabe. What else does he need?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Mistress_Anna.lua b/highkeep/Mistress_Anna.lua new file mode 100644 index 0000000..10eeab9 --- /dev/null +++ b/highkeep/Mistress_Anna.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Yes? I don't often converse with the servants of Highkeep, but what do you want? I am a very good friend of Carson McCabe's. If I wished it so, you could be sent to the dungeons to converse with the artisans of pain."); + elseif(e.message:findi("carson mccabe")) then + e.self:Say("Who is Carson?! He is the great ruler of Highhold. It was his father who first built the community of Highhold, but it was Carson who made it what it is today. He is the smartest and most handsome gentleman you could meet and he is my lover. So keep your eyes focused on my eyes when speaking or I shall have you sent to the dungeons!"); + elseif(e.message:findi("who is lady mccabe")) then + e.self:Say("Never mention that name in front of me!! Carson McCabe would be mine if it were not for that witch! She is not even from Antonica! She is an Erudite! No doubt Carson must have gotten sloshed one night and wed her by mistake. Carson assures me that he shall be rid of her as soon as his clerks can make the proper documents of separation."); + elseif(e.message:findi("highpass hussy")) then + e.self:Say("What!! You dare to use that title upon me?! I shall see you dead by my own hands!!"); + eq.attack(e.other:GetName()); + elseif(e.message:findi("princess lenya")) then + e.self:Say("What do you know of the Princess? Are you [working for Lady McCabe] or were you [sent by someone else]?"); + elseif(e.message:findi("sent by someone else")) then + e.self:Say("I see. The Princess was being held by Lady McCabe. The one who would know of her whereabouts is a dark elf named Tyrana, but I doubt she will tell you. You will have to beat it out of her and then find a shackle key for little miss 'princess.' I regularly meet with Marlin, the locksmith, at night in room six at Rooster's in Highpass. Do me a favor and kill the disgusting creep. You will find the shackle key you need on him. Now, get out of here!"); + elseif(e.message:findi("working for lady mccabe")) then + e.self:Say("Then may I suggest you pick the closest window and jump out?!!"); + end +end \ No newline at end of file diff --git a/highkeep/Princess_Lenia.lua b/highkeep/Princess_Lenia.lua new file mode 100644 index 0000000..e73b311 --- /dev/null +++ b/highkeep/Princess_Lenia.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, kind sir! Please rescue me. I am a princess and can give you a generous reward. First, talk with a high elf named Tearon. He should have something for you that will help me to escape."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Ran_Flamespinner.lua b/highkeep/Ran_Flamespinner.lua new file mode 100644 index 0000000..6e3b39d --- /dev/null +++ b/highkeep/Ran_Flamespinner.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am very sorry to have to inform you that the library is off limits to strangers."); + elseif(e.message:findi("testament of vanear")) then + e.self:Say("So, you seek the page 30 I recently purchased from an Erudite named Moodoro? He also had page 34, but refused to sell it to me. If you seek page 34, you will first have to find Moodoro. I had page 30 for but a few days when a man swiped it from the library's shelves. I believe he wore the garb of a guard of Qeynos. He darted away so fast I did not have time to cast a single spell! I believe he is still in Highpass, I can feel it!!"); + end +end diff --git a/highkeep/Rodrick_Marslett.lua b/highkeep/Rodrick_Marslett.lua new file mode 100644 index 0000000..f469332 --- /dev/null +++ b/highkeep/Rodrick_Marslett.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oooh.. Hello, [guard]. Please do not let the [Teir'Dal] at me again. I can take no more."); + elseif(e.message:findi("teir'dal")) then + e.self:Say("The Teir'Dal are what all elves call the dark elves, such as those vile torturers. I don't know what they are doing in Highpass."); + elseif(e.message:findi("not a guard")) then + e.self:Say("Then what are you doing down here? Leave before they shackle you to this cage or strap you to the operating table!"); + elseif(e.message:findi("fenn")) then + if(e.other:GetFaction(e.self) <= 4) then -- requires amiably faction regardless of class + e.self:Say("Are you searching for the rogue named Fenn Kaedrick? He used to be locked in here with me. That Lady McCabe bailed him out just minutes before the Teir'Dal planned to operate on him. He said that if I ever did escape, to venture to the very roof of this keep and wait till he showed up to escort me away from here."); + eq.unique_spawn(6184,0,0,-89.59,-24.55,83.10,66); -- NPC: Fenn_Kaedrick + else + e.self:Say("The Scouts of Tunare have no quarrel with you, but perhaps a few less Crushbone Orcs would prove your worth. Then we shall speak.") + end + elseif(e.message:findi("princess")) then + e.self:Say("Sshhh... You know of the Princess Lenya Thex?! She is not that imposter in the cell down here! That one is a Teir'Dal assassin in disguise! I should know. I was one of the Princess' escorts. We were overtaken by Highpass guards. All the escorts were used in Teir'Dal pain experiments. I am the last and I feel death at my door. The princess lives! She is somewhere in the keep. Find her and rescue her! Now, go, my friend! Rescue the princess!") + elseif(e.message:findi("lady mccabe")) then + e.self:Say("A stunning lady if I ever saw one. There is truly a rose missing from the gardens of Erudin. Just look, but do not touch. She is the spouse of Carson McCabe himself. How even he won the heart of a lady as beautiful as that is an amazement to us all.") + elseif(e.message:findi("carson mccabe")) then + e.self:Say("Carson McCabe is the ruler of Highpass Hold. It was his father, Sean McCabe, who established this great community.") + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Tarn_Visilin.lua b/highkeep/Tarn_Visilin.lua new file mode 100644 index 0000000..34ed17d --- /dev/null +++ b/highkeep/Tarn_Visilin.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. I am Tarn Visilin."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10790})) then -- Coin of Tash + e.self:Say("The Coin of Tash. Very good. I have laid a basic enhancement on it - to get it further enhanced you must take the coin to Mizn N'Mar in the Library of Neriak."); + e.other:QuestReward(e.self,0,0,0,0,10791,1000); -- Glowing Coin of Tash + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10086,gold = 50})) then -- Gold x 50, Glamour Stone + e.self:Say("Here is your stone, fully enchanted."); -- Made this text up + e.other:QuestReward(e.self,0,0,0,0,10087); -- Glowing Glamour Stone + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10019})) then -- Bloodstone + e.self:Say("I see that Sultin has sent you to me. Very well, here are your gloves."); + e.other:QuestReward(e.self,0,0,0,0,2355); -- Gleaming Gloves + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Tearon_Bleanix.lua b/highkeep/Tearon_Bleanix.lua new file mode 100644 index 0000000..ef6c5f9 --- /dev/null +++ b/highkeep/Tearon_Bleanix.lua @@ -0,0 +1,31 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("hail")) then + e.self:Say("Beware!!.. Beware, the Teir'Dal walk the halls of Highkeep!!"); + elseif(e.message:findi("princess lenya thex")) then + e.self:Say("The Princess Lenya Thex is the daughter of His Royal Majesty, King Tearis Thex of Felwithe. She was on her way to Qeynos when we believe she was kidnapped by Carson McCabe, the governor of this vile city. I await the paladin from Felwithe."); + elseif(e.message:findi("all is not bright above the clouds")) then + if(fac < 4) then + e.self:Say("Taken from this place she has been. Seek the Highpass hussy. Ask of her. Only she knows where. Find the Princess. Give her this. Show your allegiance. This and her key. Then return the room key to me with the prize from the princess. Become a hero!!"); + + e.other:SummonCursorItem(13108); -- Item: Tearons Bracer + else + e.self:Say("When you have furthered your service to the Paladins of Tunare, we shall make conversation."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12267,item2 = 13109})) then + e.self:Say("Peace.. I can rest now. You now hold my Silent Watch Shield. Protect Felwithe.."); + e.other:Faction(e.self,226,25); -- Faction: Clerics of Tunare + e.other:Faction(e.self,279,25); -- Faction: King Tearis Thex + e.other:Faction(e.self, 5002, 15002); -- Faction: Anti-mage + e.other:QuestReward(e.self,0,0,0,0,9312,2000); -- Item: Silent Watch Shield + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highkeep/Treasurer_Lynn.lua b/highkeep/Treasurer_Lynn.lua new file mode 100644 index 0000000..90f99db --- /dev/null +++ b/highkeep/Treasurer_Lynn.lua @@ -0,0 +1,36 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks up something from the ground."); + end + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings!! Welcome to Highkeep. home of the greatest casino in all of Norrath. Please visit our fine casino on the second floor."); + elseif(e.message:findi("lottery")) then + e.self:Say("Interested in the Highkeep lotter, are we? I am afraid it as been put on hold. We found last season's winner to be holding a counterfeit ticket. We now await [last season's winner] to step foward with the winning ticket - ticket number 16568. His prize is the key to the royal suite."); + elseif(e.message:findi("last season")) then + e.self:Say("Last season's winner is not known. I have heard from my sources that he was some sort of merchant of used goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12261})) then + e.self:Say("You have the runner up ticket from last season!! Here is your reward. Remember, a copper gambled is a plat earned!!"); + e.other:QuestReward(e.self,math.random(20),math.random(15),0,0,0,500); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12266})) then + e.self:Say("Congratulations!! You are the winner of last season's Highkeep lottery. Here is the key to the royal suite. You should find this room on the third floor."); + e.other:QuestReward(e.self,0,0,0,0,12267,500); -- Item: Highkeep Royal Suite + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:highkeep Treasurer_Lynn \ No newline at end of file diff --git a/highkeep/Xentil_Herkanon.lua b/highkeep/Xentil_Herkanon.lua new file mode 100644 index 0000000..fb773fe --- /dev/null +++ b/highkeep/Xentil_Herkanon.lua @@ -0,0 +1,22 @@ +function event_spawn(e) + eq.set_timer("depop", 1800000); +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_death_complete(e) + eq.signal(6186,0); -- NPC: Lartin + eq.signal(6187,0); -- NPC: Grex + eq.stop_timer("depop"); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.signal(6186,0); -- NPC: Lartin + eq.signal(6187,0); -- NPC: Grex + eq.depop(); + end +end diff --git a/highkeep/a_prisoner.lua b/highkeep/a_prisoner.lua new file mode 100644 index 0000000..d92a054 --- /dev/null +++ b/highkeep/a_prisoner.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("fenn kaedrick")) then + e.self:Say("The dungeon is located on the lower levels of Highkeep. Do not venture there. It is off limits to visitors. If you wish to get someone released, you will have to speak with the jail clerk just before you get to the dungeon."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/highpass/Alhareen_the_Just.lua b/highpass/Alhareen_the_Just.lua new file mode 100644 index 0000000..4696937 --- /dev/null +++ b/highpass/Alhareen_the_Just.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Hail and well met. %s. I am Alhareen the Just. herald and servant of The Tribunal. Judge and adjudicator of mortal deeds. Sent down from the Realm of Heroes. I have been given the duty of bestowing honor and due recognition on those whose deeds have been found worthy in the eyes of the gods for divine honor and reward.",e.other:GetName())); + end +end diff --git a/highpass/Anson_McBale.lua b/highpass/Anson_McBale.lua new file mode 100644 index 0000000..b063f4f --- /dev/null +++ b/highpass/Anson_McBale.lua @@ -0,0 +1,58 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Beat it, " .. e.other:GetCleanName() .. ", unless you have something for me."); + else + e.self:Say("Go away! We don't have time for the likes of you."); + end + elseif(e.message:findi("see stanos")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("This better be important."); + eq.unique_spawn(5088,0,0,336,10,45,225); -- NPC: Stanos_Herkanor + else + e.self:Say("Go away! We don't have time for the likes of you."); + end + elseif(e.message:findi("stanos")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Are you deaf, bladebait? Unless you have something for me, you need to leave now, while I am still feeling mellow. Don't much appreciate folks coming into my little kingdom here and snooping around."); + else + e.self:Say("Go away! We don't have time for the likes of you."); + end + elseif(e.message:findi("you")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Just who in the flip do you THINK I am? Oh, you want my biography? "..e.other:GetName()..", you are standing on my last nerve. Old men delight in telling tales about themselves. Me, I'm busy living those tales at the moment. If I am still here in thirty years, ask me then."); + else + e.self:Say("Go away! We don't have time for the likes of you."); + end + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("The boss might need some help!"); + local stanos = eq.get_entity_list():GetMobByNpcTypeID(5088); -- Stanos_Herkanor + if ( stanos.valid ) then + e.self:MoveTo(stanos:GetX(), stanos:GetY(), stanos:GetZ(), -1, false); + end + + elseif(e.signal == 2) then + e.self:Say("Vilnius has always had a good eye for talent. I think we can trust this one."); + eq.signal(5088,1); -- NPC: Stanos_Herkanor + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 28014})) then + e.self:Say("Ah, we have been expecting this. Let me get Stanos, he will want to inspect it first, but here are your coins."); + e.other:Faction(e.self,332,50,0); -- Faction: Highpass Guards + e.other:Faction(e.self,329,7,0); -- Faction: Carson McCabe + e.other:Faction(e.self,331,7,0); -- Faction: Merchants of Highpass + e.other:Faction(e.self,230,2,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,330,2,0); -- Faction: The Freeport Militia + e.other:QuestReward(e.self,0,0,100,25,0,10000); + eq.unique_spawn(5088,0,0,336,10,45,225); -- NPC: Stanos_Herkanor + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highpass/Barn_Bloodstone.lua b/highpass/Barn_Bloodstone.lua new file mode 100644 index 0000000..e844ce3 --- /dev/null +++ b/highpass/Barn_Bloodstone.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You seem a little out of place here. You should go back to the nice little village you came from. This place will eat you alive. The [Golden Rooster] is no place for you."); + elseif(e.message:findi("blackburrow stout")) then + e.self:Say("Blackburrow Stout is the finest drink available. It is the nectar of the gods. Well.. nectar of the gnolls at least. I can't wait until they hold another drink special in the Rooster. When I hear that. I am there!"); + elseif(e.message:findi("golden rooster")) then + e.self:Say("The Golden Rooster only happens to be the finest gambling house in Highpass. It is also the only place in these parts that serves [Blackburrow Stout]."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13130})) then -- Blackburrow Stout + e.self:Say("Why thank you, kind citizen! Mutt, throw me the package! Here. This is for your boss. Do not return return to Kane without the other two lists. Some other bixie boy might just beat you to one of the other pieces. Go to Freeport. There you will find a woman called Opal. Quite a looker. I hear she works with the Arcane Scientists. Tell her the disease is spreading. She will help you."); + -- confirmed live factions + e.other:Faction(e.self,336,20); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,63,20); -- Coalition of Tradefolk + e.other:Faction(e.self,329,2); -- Carson McCabe + e.other:Faction(e.self,230,1); -- Corrupt Qeynos Guards + e.other:Faction(e.self,330,3); -- Freeport Militia + e.other:QuestReward(e.self,0,math.random(5),0,0,18808,100); -- Bayle List I + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highpass/Bartender.lua b/highpass/Bartender.lua new file mode 100644 index 0000000..4cc935c --- /dev/null +++ b/highpass/Bartender.lua @@ -0,0 +1,9 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("The boss might need some help!"); + local stanos = eq.get_entity_list():GetMobByNpcTypeID(5088); -- Stanos_Herkanor + if ( stanos.valid ) then + e.self:MoveTo(stanos:GetX(), stanos:GetY(), stanos:GetZ(), -1, false); + end + end +end \ No newline at end of file diff --git a/highpass/Beef.lua b/highpass/Beef.lua new file mode 100644 index 0000000..a2dafac --- /dev/null +++ b/highpass/Beef.lua @@ -0,0 +1,19 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("The boss might need some help!"); + local stanos = eq.get_entity_list():GetMobByNpcTypeID(5088); -- Stanos_Herkanor + if ( stanos.valid ) then + e.self:MoveTo(stanos:GetX(), stanos:GetY(), stanos:GetZ(), -1, false); + end + elseif(e.signal == 2) then + e.self:Say("Gets moving before me smash yu to pulp!!") + elseif(e.signal == 3) then + e.self:Say("BWAHAHA HA!! Yoo werk fer Mister Axe now. Hehehe!!") + end +end + +function event_say(e) + if (e.message:findi("hail") ) then + e.self:Say("Yu be getting going. Dis here is da boss' table!!"); + end +end diff --git a/highpass/Breck_Damison.lua b/highpass/Breck_Damison.lua new file mode 100644 index 0000000..4cc935c --- /dev/null +++ b/highpass/Breck_Damison.lua @@ -0,0 +1,9 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("The boss might need some help!"); + local stanos = eq.get_entity_list():GetMobByNpcTypeID(5088); -- Stanos_Herkanor + if ( stanos.valid ) then + e.self:MoveTo(stanos:GetX(), stanos:GetY(), stanos:GetZ(), -1, false); + end + end +end \ No newline at end of file diff --git a/highpass/Bryan_McGee.lua b/highpass/Bryan_McGee.lua new file mode 100644 index 0000000..9d754be --- /dev/null +++ b/highpass/Bryan_McGee.lua @@ -0,0 +1,45 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I do not know what you are doing up here, but I am a busy man. Please return to the bar downstairs and enjoy the atmosphere."); + eq.signal(5055,2) -- NPC: Beef + elseif(e.message:findi("oblong bottle")) then + e.self:Say("The oblong bottle is a legend. They say one drink and you're off to oblivion, but just before that you feel the best you've ever felt and relive all your finest memories in the blink of an eye. The last I heard, some guy by the name of Turgin Swillfod turned up in Freeport spouting that he had found it. He was never heard from again."); + elseif(e.message:findi("never stop chopping")) then + e.self:Say("Hey!! You must be the one I traded my axe to. Funny.. I thought you were much shorter. If you have my axe I will return your gem to you. Well..? Let's have it!"); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("The boss might need some help!"); + local stanos = eq.get_entity_list():GetMobByNpcTypeID(5088); -- Stanos_Herkanor + if ( stanos.valid ) then + e.self:MoveTo(stanos:GetX(), stanos:GetY(), stanos:GetZ(), -1, false); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12366})) then -- Never Stop Chopping + e.self:Say("On second thought.. You can do a little favor for me first. An associate of mine has asked me to acquire a case of spirits for him. Take this box and seek out what is needed to fill it. Inside you will combine the spirits of Lendel's Grand Lager, Gator Gulp Ale, Blackburrow Swig, Tunare's Finest, Underfoot Triple Bock, Frozen Toe Rum, Blood Spirit, Vasty Deep Ale, Clockwork Oil Stout and the legendary..[Oblong Bottle]."); + -- Confirmed Live Factions + e.other:Faction(e.self,336,10,0); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,229,10,0); -- Coalition of Tradefolk + e.other:Faction(e.self,329,1,0); -- Carson McCabe + e.other:Faction(e.self,230,1,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,330,1,0); -- The Freeport Militia + e.other:QuestReward(e.self,0,0,0,0,17984,15000); -- Bottle Crate + eq.signal(5055,3) -- NPC: Beef + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12365})) then + e.self:Say("I cannot believe you actually acquired all those drinks!! You do good work, kid. Here is the gem as I promised. And a few plat for good measure. Don't let it be said that the Axe doesn't treat his friends right."); + e.other:Faction(e.self,336,25,0); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,229,25,0); -- Coalition of Tradefolk + e.other:Faction(e.self,329,2,0); -- Carson McCabe + e.other:Faction(e.self,230,1,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,330,3,0); -- The Freeport Militia + e.other:QuestReward(e.self,0,0,0,math.random(10),12348,15000); -- Item: Gem of Stamina + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highpass/Captain_Ashlan.lua b/highpass/Captain_Ashlan.lua new file mode 100644 index 0000000..c20c5c4 --- /dev/null +++ b/highpass/Captain_Ashlan.lua @@ -0,0 +1,73 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("Greetings, traveler! I am Captain Ashlan of the Highpass Guards. I keep watch over my men and the [volunteers] here at the East Gate. It's been a busy [job] here lately, with the [orc raids] and all."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("job")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("We're short-handed around here, as usual. Would you like to help us out with the [Volunteer Watch]?"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("volunteer")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("The Volunteer Watch guards the entry gates of Highpass. Since the [orc raids] are becoming more and more frequent, it's a busy job. But it can pay well, depending on how many [orcs] you slay."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("orc")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("One of the orc clans of Kithicor Woods has been trying to expand their territory. Small orc raiding parties are frequently rushing the East Gate. Without the [Volunteer Watch] helping us out, Highpass would probably be overrun by those vile beasts."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("hold")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("Highpass Hold is run by [Carson McCabe], who lives in the keep. It's a rough place here, but you can easily make a quick buck."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("carson")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("Carson runs this place. I wouldn't cross him; he seems like a pretty ruthless guy. I hear he's got connections all over Antonica!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local scalp = 0; + local item_lib =require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13791,item2 = 13791,item3 = 13791,item4 = 13791}, 0)) then + scalp = 4; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13791,item2 = 13791,item3 = 13791}, 0)) then + scalp = 3; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13791,item2 = 13791}, 0)) then + scalp = 2; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13791}, 0)) then + scalp = 1; + end + + if(scalp > 0) then + if(e.other:GetFactionValue(e.self) >= -350) then + repeat + e.self:Say("Great work! Maybe you can help us out again sometime?"); + e.other:Faction(e.self,332,1,0); -- Faction: Highpass Guards + e.other:Faction(e.self,329,1,0); -- Faction: Carson McCabe + e.other:Faction(e.self,331,1,0); -- Faction: Merchants of Highpass + e.other:Faction(e.self,230,1,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,330,1,0); -- Faction: The Freeport Militia + e.other:QuestReward(e.self,math.random(0,8),math.random(0,6),math.random(0,6),0,0,25); -- verified xp live data + scalp = scalp - 1; + until scalp == 0 + else + e.self:Say("I will not aid beings such as you."); -- text made up. faction too low and eat items. + scalp = 0; + end + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highpass/Captain_Orben.lua b/highpass/Captain_Orben.lua new file mode 100644 index 0000000..10ff232 --- /dev/null +++ b/highpass/Captain_Orben.lua @@ -0,0 +1,79 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("Greetings, traveler! I am Captain Orben of the Highpass Guards. I keep watch over my men and the [volunteers] here at the West Gate. It's been a busy [job] here lately, with the [gnoll raids] and all."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("job")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("We're short-handed around here, as usual. Would you like to help us out with the [Volunteer Watch]?"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("volunteer")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("The Volunteer Watch guards the entry gates of Highpass. Since the [gnoll raids] are becoming more and more frequent, it's a busy job. But it can pay well, depending on how many [gnolls] you slay."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("gnoll")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("The Mucktail Gnolls of the Karanas have been trying to expand their territory. Small gnoll raiding parties are frequently rushing the West Gate. Without the [Volunteer Watch] helping us out, Highpass would probably be overrun by those vile beasts."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("hold")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("Highpass Hold is run by [Carson McCabe], who lives in the keep. It's a rough place here, but you can easily make a quick buck."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("carson")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("Carson runs this place. I wouldn't cross him; he seems like a pretty ruthless guy. I hear he's got connections all over Antonica!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("keep")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("The keep is in the center of Highpass Hold. The keep was made in a natural cave and then expanded over the past few years. I hear they are currently adding some new floors beneath it."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local scalp = 0; + local item_lib =require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13792,item2 = 13792,item3 = 13792,item4 = 13792}, 0)) then + scalp = 4; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13792,item2 = 13792,item3 = 13792}, 0)) then + scalp = 3; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13792,item2 = 13792}, 0)) then + scalp = 2; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13792}, 0)) then + scalp = 1; + end + + if(scalp > 0) then + if(e.other:GetFactionValue(e.self) >= -350) then + repeat + e.self:Say("Great work! Maybe you can help us out again sometime?"); + e.other:Faction(e.self,332,5,0); -- Faction: Highpass Guards + e.other:Faction(e.self,329,2,0); -- Faction: Carson McCabe + e.other:Faction(e.self,331,2,0); -- Faction: Merchants of Highpass + e.other:Faction(e.self,230,2,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,330,2,0); -- Faction: The Freeport Militia + e.other:QuestReward(e.self,math.random(0,10),math.random(0,10),math.random(0,5),math.random(0,1),0,25); -- verified xp live data + scalp = scalp - 1; + until scalp == 0 + else + e.self:Say("I will not aid beings such as you."); -- text made up. faction too low and eat items. + scalp = 0; + end + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highpass/Cordelia_Minster.lua b/highpass/Cordelia_Minster.lua new file mode 100644 index 0000000..1c82878 --- /dev/null +++ b/highpass/Cordelia_Minster.lua @@ -0,0 +1,43 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Say("Greetings! I am Cordelia, a traveling piper. I am afraid I cannot play a tune for you, however, as my [flute] is gone."); + + elseif ( e.message:findi("flute") ) then + e.self:Say("I traded my flute to a hermit in the southern plains of Karana. I had a spare flute, but that was taken from me by some bandits. If you could find this hermit and ask him for my flute back, I would be most appreciative."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13310})) then -- A cracked Flute + e.self:Say("Why thank you, kind adventurer! Here is a little something to keep food in your belly. Now back to practice. La la la.."); + e.other:Faction(e.self,284,5); -- Faction: League of Antonican Bards + e.other:Faction(e.self,281,1); -- Faction: Knights of Truth + e.other:Faction(e.self,262,1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,304,-1); -- Faction: Ring of Scale + e.other:Faction(e.self,285,-1); -- Faction: Mayong Mistmoore + e.other:QuestReward(e.self,0,math.random(5),0,0,13119,1000); -- Winds of Karana sheet 2 + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_spawn(e) + eq.set_timer("timecheck", 60000); +end + +function event_timer(e) + if ( e.timer == "timecheck" and not e.self:IsEngaged() ) then + + local zoneTime = eq.get_zone_time()["zone_hour"] + 1; + + if ( zoneTime < 19 and zoneTime > 6 ) then + eq.depop_with_timer(); + end + end +end + +function event_death_complete(e) + eq.update_spawn_timer(336269, 1200000); +end diff --git a/highpass/Crenn_Salbet.lua b/highpass/Crenn_Salbet.lua new file mode 100644 index 0000000..4cc935c --- /dev/null +++ b/highpass/Crenn_Salbet.lua @@ -0,0 +1,9 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("The boss might need some help!"); + local stanos = eq.get_entity_list():GetMobByNpcTypeID(5088); -- Stanos_Herkanor + if ( stanos.valid ) then + e.self:MoveTo(stanos:GetX(), stanos:GetY(), stanos:GetZ(), -1, false); + end + end +end \ No newline at end of file diff --git a/highpass/Cyrla_Shadowstepper.lua b/highpass/Cyrla_Shadowstepper.lua new file mode 100644 index 0000000..4cc935c --- /dev/null +++ b/highpass/Cyrla_Shadowstepper.lua @@ -0,0 +1,9 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("The boss might need some help!"); + local stanos = eq.get_entity_list():GetMobByNpcTypeID(5088); -- Stanos_Herkanor + if ( stanos.valid ) then + e.self:MoveTo(stanos:GetX(), stanos:GetY(), stanos:GetZ(), -1, false); + end + end +end \ No newline at end of file diff --git a/highpass/Cytodl_Krish.lua b/highpass/Cytodl_Krish.lua new file mode 100644 index 0000000..ae1455b --- /dev/null +++ b/highpass/Cytodl_Krish.lua @@ -0,0 +1,35 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Say("What do you want? I have no reason to waste my time with the likes of you!"); + elseif(e.message:findi("where")) then + e.self:Say("There have been reports of murders within Highpass, murders in which the victims were drained of every iota of blood. I was sent here by my [guild master] to investigate."); + elseif(e.message:findi("guild master")) then + if(e.other:GetFaction(e.self) <= 4) then -- requires amiably faction + e.self:Say("I was sent here by Noxhil V'Sek of the Dead. We are the necromancers and shadowknights of Neriak."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("When you learn to serve the Dead, then I will find the time to speak of such things."); + else + e.self:Say("How dare you enter my presence?! In the name of the Dead I should strike you down!"); + end + end +end + +function event_spawn(e) + eq.set_timer("timecheck", 60000); +end + +function event_timer(e) + if ( e.timer == "timecheck" and not e.self:IsEngaged() ) then + + local zoneTime = eq.get_zone_time()["zone_hour"] + 1; + + if ( zoneTime > 18 or zoneTime < 8 ) then + eq.depop_with_timer(); + end + end +end + +function event_death_complete(e) + eq.update_spawn_timer(336269, 1200000); +end diff --git a/highpass/Dalishea.lua b/highpass/Dalishea.lua new file mode 100644 index 0000000..4cc935c --- /dev/null +++ b/highpass/Dalishea.lua @@ -0,0 +1,9 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("The boss might need some help!"); + local stanos = eq.get_entity_list():GetMobByNpcTypeID(5088); -- Stanos_Herkanor + if ( stanos.valid ) then + e.self:MoveTo(stanos:GetX(), stanos:GetY(), stanos:GetZ(), -1, false); + end + end +end \ No newline at end of file diff --git a/highpass/Dovik_Greenbane.lua b/highpass/Dovik_Greenbane.lua new file mode 100644 index 0000000..4cc935c --- /dev/null +++ b/highpass/Dovik_Greenbane.lua @@ -0,0 +1,9 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("The boss might need some help!"); + local stanos = eq.get_entity_list():GetMobByNpcTypeID(5088); -- Stanos_Herkanor + if ( stanos.valid ) then + e.self:MoveTo(stanos:GetX(), stanos:GetY(), stanos:GetZ(), -1, false); + end + end +end \ No newline at end of file diff --git a/highpass/Dyllin_Starsine.lua b/highpass/Dyllin_Starsine.lua new file mode 100644 index 0000000..0cf52e0 --- /dev/null +++ b/highpass/Dyllin_Starsine.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey!! I don't have any spare change, okay?!"); + elseif(e.message:findi("testament of vanear") or e.message:findi("page 30")) then + e.self:Say("So you heard Guard Dyllin has page 30 of the Testament of Vanear, eh?! Well, get lost!! Over my dead body will you get page 30!"); + elseif(e.message:findi("bayle list")) then + e.self:Say("I have not the slightest idea what you are speaking about. Now get lost before I get irritated. Excuse me. I mean MORE irritated!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highpass/Falyn_Farreach.lua b/highpass/Falyn_Farreach.lua new file mode 100644 index 0000000..2e7c3bd --- /dev/null +++ b/highpass/Falyn_Farreach.lua @@ -0,0 +1,12 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Top of the World, the newest shop in the pass!"); + elseif(e.message:findi("never stop chopping")) then + e.self:Say("Never stop chopping?!!' Hey! I engraved that on a special order for a fellow Highpass citizen. I can't remember his name. He gave me not only some rare gems for it, but also a case of something called 'Lumberjack Pale Ale.' Great stuff!!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highpass/Gornolin.lua b/highpass/Gornolin.lua new file mode 100644 index 0000000..f238df8 --- /dev/null +++ b/highpass/Gornolin.lua @@ -0,0 +1,18 @@ + +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks an item up from the ground and says, 'Hey! Look what I found! Another piece of rubbish for my trailer... Must be my lucky day."); + end + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("'Greetings, my fellow traveler. I am Gornolin Zot, traveling merchant of fine wares. Please. Take a look at what I have to offer."); + end +end diff --git a/highpass/Guard_Stald.lua b/highpass/Guard_Stald.lua new file mode 100644 index 0000000..db9404b --- /dev/null +++ b/highpass/Guard_Stald.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.set_timer("depop",1200000); +end + +function event_timer(e) + eq.depop(); +end diff --git a/highpass/Jovan.lua b/highpass/Jovan.lua new file mode 100644 index 0000000..ed03e81 --- /dev/null +++ b/highpass/Jovan.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Not so loud! My head is spinning so! What I wouldn't give for a Tumpy's Tonic right now! They were always just the thing for the hair of the gnoll that bit me."); + elseif(e.message:findi("tonic")) then + e.self:Say("Ahh! If you need to ask, you've never had one. Tumpy Irontoe in Kaladim made me drink one of his special brews when I lost a game of King's Court with him. I would give anything I own for one of those right now!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12114})) then + e.self:Say(" Ahh thhhhat'thh betterr. Take thithhh. "); + e.other:QuestReward(e.self,0,0,0,0,19006,1000); -- Item: Icon of the Fervent + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highpass/Kaden_Gron.lua b/highpass/Kaden_Gron.lua new file mode 100644 index 0000000..7d5861f --- /dev/null +++ b/highpass/Kaden_Gron.lua @@ -0,0 +1,6 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("The boss might need some help!"); + eq.move_to(336,10,45); + end +end \ No newline at end of file diff --git a/highpass/Mardon_Smith.lua b/highpass/Mardon_Smith.lua new file mode 100644 index 0000000..4cc935c --- /dev/null +++ b/highpass/Mardon_Smith.lua @@ -0,0 +1,9 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("The boss might need some help!"); + local stanos = eq.get_entity_list():GetMobByNpcTypeID(5088); -- Stanos_Herkanor + if ( stanos.valid ) then + e.self:MoveTo(stanos:GetX(), stanos:GetY(), stanos:GetZ(), -1, false); + end + end +end \ No newline at end of file diff --git a/highpass/Marlin_Shirtov.lua b/highpass/Marlin_Shirtov.lua new file mode 100644 index 0000000..f620303 --- /dev/null +++ b/highpass/Marlin_Shirtov.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What are you doing in here? I requested no room service. Now leave, quickly, before Mistress Anna comes!"); + elseif(e.message:findi("mistress anna")) then + e.self:Say("Mistress Anna is my lover. She will wed me as soon as she is through mourning the loss of her ex-lover. Until then, I shall continue to keep her well. She assures me she will be over it soon. I am sure she loves me. She meets with me often. 'At 9 in 6,' she always says."); + elseif(e.message:findi("princess lenya thex")) then + e.self:Say("What was that about Princess Lenya? You know her? I feel sorry for her. I wish I had the courage to help her. I made the key for her special shackles. Maybe you can rescue her. Tell you what, I have always wanted to venture to Qeynos to buy a silk evening tunic for Mistress Anna. You go and get me it and I shall give you the key to Princess Lenya's shackles."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13352})) then -- Silk Evening Tunic + e.self:Say("Ahh!! The silk evening tunic. Mistress Anna will look stunning in this. Here is the key to Princess Lenya's cell. Good luck, hero!"); + e.other:Faction(e.self,331, 5,0); -- Merchant of Highpass + e.other:Faction(e.self,332, 5,0); -- Highpass Guard + e.other:Faction(e.self,329, 5,0); -- Carson McCabe + e.other:QuestReward(e.self,0,0,0,0,20008,500); -- Brass Key + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highpass/Mutt_Rootlit.lua b/highpass/Mutt_Rootlit.lua new file mode 100644 index 0000000..9c22de3 --- /dev/null +++ b/highpass/Mutt_Rootlit.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. stranger. I would talk to thee. but [Barn] has instructed me not to converse with strangers."); + elseif(e.message:findi("Barn")) then + e.self:Say("Barn is my hero. He saved me from a life on the evil streets in Freeport."); + end +end diff --git a/highpass/Prak.lua b/highpass/Prak.lua new file mode 100644 index 0000000..1051ec0 --- /dev/null +++ b/highpass/Prak.lua @@ -0,0 +1,41 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("The boss might need some help!"); + local stanos = eq.get_entity_list():GetMobByNpcTypeID(5088); -- Stanos_Herkanor + if ( stanos.valid ) then + e.self:MoveTo(stanos:GetX(), stanos:GetY(), stanos:GetZ(), -1, false); + end + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Yeah, hello. I'm Prak, co-owner of the Golden Rooster. If you're thirsty, we have some great imported ales at our bar. If you're looking for a little excitement, try your hand at a little King's Court. We aim to please, my friend."); + elseif(e.message:findi("rid of stald")) then + e.self:Say("Good.. Zannsin said you had a special talent for this sort of thing, so here's your chance to prove it. What you need to do is follow Stald on his patrol, and when the coast is clear, take him down. Good luck. Oh yeah.. not that I don't trust you or anything, but bring me back some sorta proof that Stald is dead, got it?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18795})) then + e.self:Say("Hmm, I see. We think we've found out who the mole is in Carson's guards, some guy named Stald. We need to get rid of this guy as quickly, and as quietly, as possible. Carson doesn't want to cause a stink by eliminating one of his own men, so he asked us to do it. What about you? Do you think [you could get rid of Stald] for us?"); + e.other:Faction(e.self,329,50); -- Carson Mccabe + e.other:Faction(e.self,336,37); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,304,-12); -- Ring of Scale + e.other:Faction(e.self,332,50); -- Highpass Guards + e.other:Faction(e.self,331,50); -- Merchants of Highpass + eq.unique_spawn(5119,0,0,464,127,31.75,47); -- NPC: Guard_Stald + e.other:QuestReward(e.self,0,0,0,0,0,500); + elseif(e.other:GetFactionValue(e.self) >= 200 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13793})) then + e.self:Say("Ah, boy! Looks like I owe Kaden two plat... I thought you'd fumble it up for sure. Well, you've impressed me friend. Here, take this back to Zan... I'll make sure note your fine works to Carson, too, next time we speak."); + e.other:Faction(e.self,329,50); -- Carson Mccabe + e.other:Faction(e.self,336,37); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,304,-12); -- Ring of Scale + e.other:Faction(e.self,332,50); -- Highpass Guards + e.other:Faction(e.self,331,50); -- Merchants of Highpass + e.other:QuestReward(e.self,0,0,0,0,18028,500); -- Item: Message to Zannsin + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highpass/Scar.lua b/highpass/Scar.lua new file mode 100644 index 0000000..4cc935c --- /dev/null +++ b/highpass/Scar.lua @@ -0,0 +1,9 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("The boss might need some help!"); + local stanos = eq.get_entity_list():GetMobByNpcTypeID(5088); -- Stanos_Herkanor + if ( stanos.valid ) then + e.self:MoveTo(stanos:GetX(), stanos:GetY(), stanos:GetZ(), -1, false); + end + end +end \ No newline at end of file diff --git a/highpass/Sir_Edwin_Motte.lua b/highpass/Sir_Edwin_Motte.lua new file mode 100644 index 0000000..9e874d2 --- /dev/null +++ b/highpass/Sir_Edwin_Motte.lua @@ -0,0 +1,25 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Say("Greetings, "..e.other:GetName().."! How lucky you are to encounter the greatness of the legendary Sir Edwin Motte, slayer of cyclopes, battler of beasts, crusher of creatures, masher of monsters, eradicator of evil and champion of the third annual dart championship of Freeport."); + end +end + +function event_spawn(e) + eq.set_timer("timecheck", 60000); +end + +function event_timer(e) + if ( e.timer == "timecheck" and not e.self:IsEngaged() ) then + + local zoneTime = eq.get_zone_time()["zone_hour"] + 1; + + if ( zoneTime < 19 and zoneTime > 6 ) then + eq.depop_with_timer(); + end + end +end + +function event_death_complete(e) + eq.update_spawn_timer(336269, 1200000); +end diff --git a/highpass/Stanos_Herkanor.lua b/highpass/Stanos_Herkanor.lua new file mode 100644 index 0000000..0d0e8ca --- /dev/null +++ b/highpass/Stanos_Herkanor.lua @@ -0,0 +1,113 @@ +function event_spawn(e) + eq.set_timer("depop", 2000000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + + elseif ( e.timer == "call_help" ) then + CallHelp(); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ah, the pouch. This is the first step Anson. The Circle has to be upset having this taken right out from under them. That speaks well of the person who did the taking. Hanns must be even more furious now ."); + eq.signal(5037,2); -- NPC: Anson_McBale + elseif(e.message:findi("you")) then + e.self:DoAnim(63); -- laughs + e.self:Say(" You are young, aren't you? I ran [the Circle] out of Qeynos for well over 30 years, and did a right fine job of it. It's a long story, and isn't over yet. I have much to answer for."); + elseif(e.message:findi("circle")) then + e.self:DoAnim(64); -- points + e.self:Say("The Circle of Unseen Hands, you oaf! The largest collection of thieves, murderers, con artists, and rogues in the world. No finer men can be found anywhere."); + elseif(e.message:findi("deal")) then + e.self:Say("Aye, " .. e.other:GetCleanName() .. ", we could make a deal. I have a blade I won't use anymore, and you have those fine looking daggers Vilnius gave you. Of course, you would have to do something for me first. Let me tell you my [story], then you decide."); + elseif(e.message:findi("story") or e.message:findi("Johann")) then + e.self:Say("Johann Krieghor was the leader of the Circle and I was his second-in-command. He made a dark bargain with a Teir'dal General. The Circle was to assassinate Joren, the high elf ambassador to Qeynos. Had the plot worked, it would have weakened the alliance between high elves and humans, and possibly caused a war between the two powers. In either case, the Teir'Dal would have profited greatly by this event, and all others would have suffered. I could not stand by and let this happen, but Johann would not be deterred, for the Teir'Dal had promised him much. I had no choice but to kill Johann and the Teir'Dal agent. I made it look like they offed each other, and then I hid the tools."); + elseif(e.message:findi("tools")) then + e.self:Say("To allow the assassin to slay a prince, and fight his way back out, a fell blade was crafted. It was small enough to conceal under a garment and yet large enough to strike a mortal blow through armor. Aided by vile Teir'Dal enchantments, it is much more fearsome than it appears. I would gladly rid myself of it, but I fear I can not until I clear my name with Hanns."); + elseif(e.message:findi("general")) then + e.self:Say("The General? I know not his true name, only that he is ranked high among the dark elves. He kept his identity secret, and it was only upon the death of his agent that I even learned the smallest amount about him, that of his Generalship. Knowing who he is would aid me greatly."); + elseif(e.message:findi("hanns")) then + e.self:Say("Hanns Krieghor was a talented young man, in many ways much more of a man than his father. After the death of [Johann], I raised Hanns as my own son, and grew to love him as such. A few years back, to take revenge upon me for his [father's murder], Hanns seized control of the Circle. At the same time, he sent four of his best killers to finish me. The killers failed, I still live. Hanns still leads the Circle in Qeynos, and still seeks [my head]."); + elseif(e.message:findi("murder") or e.message:findi("father")) then + e.self:Say("Well, it's no great secret now that I was responsible for the death of Johann Krieghor, Hanns Krieghor's father. Johann used to lead the Circle. Hanns was but a pup when his father died at my hand, and became as a son to me. Hanns did not discover that I was the one who killed his father until many years later. For that, he wants [my head]."); + elseif(e.message:findi("head")) then + e.self:Say("Aye, " .. e.other:GetCleanName() .. ", Hanns has wanted me dead for years. He's tried many times, though not personally. He's smart, that one, for not facing me, but foolish for wasting so many good men for naught."); + elseif(e.message:findi("clear.* name")) then + e.self:DoAnim(64); -- points + e.self:Say("I need proof that what I say about Johann is truth, so that Hanns may forgive me. YOU can gather that proof for me. First, travel to Kaladim and Neriak, and there, upon the persons of the rogue guildmasters, you should find that which I seek, two parts of a document I recovered from the dead agent. I entrusted one to Founy, but that trust is gone, and Founy would betray me to Hanns were I to attempt to reclaim it. Tani N'mar has the other, which he should not possess, and keeps it only to spite me, not knowing its real importance. Steal them both, and bring them back to me. And don't let anyone follow you! If I am not around, tell Anson you want to see me."); + elseif(e.message:findi("Joren")) then + e.self:Say("Joren was the boon companion to the King of Felwithe, a mighty paladin of great reknown, much loved by all the high elves. To slay him, certain. . .items. . .were crafted to make the job possible. With the death of the Teir'dal agent, and my theft of the [tools], the General was forced to abandon the plot."); + elseif(e.message:findi("help")) then + e.self:Say("Well, then, I suppose you should hear my story."); + elseif(e.message:findi("lendel")) then + e.self:Say("Lendel, eh? About time. Did he send you to help me? Well, I need someone to follow up on a job for me, track down a fellow named Vilnius, near Qeynos, maybe in the Karanas, and tell him I am STILL waiting for my delivery."); + elseif(e.message:findi("I killed Renux")) then + e.self:Say("You killed Renux? You stupid git of a dog! Renux was my best work, a killer without peer, without remorse. All I did to her, I did for a reason, and it made her matchless. Ravens take your eyes! All you needed to do was gather evidence. When Hanns' believed me, Renux would follow. A hollow victory, it seems. I suppose you had to do it, but I imagine it cost you in the process. When this is over, perhaps you and I shall have a reckoning."); + e.other:Faction(e.self,332,-500,0); -- Faction: Highpass Guards + end +end + +function CallHelp() + -- a_smuggler, a_smuggler, Cyrla_Shadowstepper, Bryan_McGee, Beef, Kaden_Gron, Breck_Damison, Anson_McBale, Dalishea, Crenn_Salbet + -- Mardon_Smith, Dovik_Greenbane, Prak, Bartender, Scar, Wres_Corber + local StanosFriends ={5019,5038,5107,5056,5055,5050,5051,5037,5009,5053,5060,5061,5054,5069,5134,5052}; + for i = 1, #StanosFriends do + eq.signal(StanosFriends[i],1); + end +end + +function event_combat(e) + + if ( e.joined ) then + CallHelp(); + eq.pause_timer("depop"); + eq.set_timer("call_help", 330000); + else + eq.resume_timer("depop"); + eq.stop_timer("call_help"); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("I tend to agree Anson. We could make a deal. I have a blade I won't use anymore, and you have those fine looking daggers Vilnius gave you. Of course, you would have to do something for me first. Let me tell you my story, then you decide."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Did you forget something?"; + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 28010,item2 = 28011})) then + e.self:Say("Excellent! With this document I can..' . 'Damnation! Curse my tired old mind, I forgot that I could not read the document. It is written in some obscure code or language. I can't decipher it, but I know someone who can. Seek out one called Eldreth, an Erudite who used to do work for me. I know not where he may be found these days, only that he will not be found in Erudin, as they want his head for some misdeed in the past. Give him the complete parchment, and tell him I sent you. He owes me."); + e.other:Faction(e.self,332,100,0); -- Faction: Highpass Guards + e.other:Faction(e.self,329,15,0); -- Faction: Carson McCabe + e.other:Faction(e.self,331,15,0); -- Faction: Merchants of Highpass + e.other:Faction(e.self,230,5,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,330,5,0); -- Faction: The Freeport Militia + e.other:QuestReward(e.self,0,0,0,0,28012,500); -- Combined Parchment + eq.depop(); + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 28013,item2 = 7506,item3 = 7505},1,text)) then + e.self:Say("Very well done. I leave now to confront Hanns with this evidence. Even so, it will not be easy to regain his trust. That is why I need those daggers, in case all else fails. Bristlebane grant me luck - I can no longer live like a hunted dog. In any case, I am grateful for your aid. Take this wretched blade, I can bear it no longer. I must warn you, I feel it carries Innoruuk's curse; all who are near it learn the meaning of hate. Ironic, isn't it? You went to all that work to redeem yourself for a rapier, yet the true reward came when you redeemed another. . Good luck, "..e.other:GetName()..", for much as I, you will need it."); + e.other:Faction(e.self,332,100,0); -- Faction: Highpass Guards + e.other:Faction(e.self,329,15,0); -- Faction: Carson McCabe + e.other:Faction(e.self,331,15,0); -- Faction: Merchants of Highpass + e.other:Faction(e.self,230,5,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,330,5,0); -- Faction: The Freeport Militia + e.other:QuestReward(e.self,0,0,0,0,11057,10000); -- Ragebringer + eq.depop(); + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18961})) then + e.self:Say("Let me see what you have here. Aha, so that's who.. yes, yes! There is one more thing I need you to do. This document tells me who the originator of the plot really was. His name is General V'ghera, which is interesting, as Anson's men have spotted him in Kithicor recently. He will not be easy to get to, but if you give this box to one of his many aides, the General will HAVE to come to investigate. You see, this box used to contain the tools crafted for the assassination. When he arrives, kill him! I need any documents you find on him - with luck it will be enough evidence to convince Hanns that what I say is true. Bring any documents or dispatch cases you find, along with those blades Vilnius made you work so hard for, and we will make a trade."); + e.other:Faction(e.self,332,100,0); -- Faction: Highpass Guards + e.other:Faction(e.self,329,15,0); -- Faction: Carson McCabe + e.other:Faction(e.self,331,15,0); -- Faction: Merchants of Highpass + e.other:Faction(e.self,230,5,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,330,5,0); -- Faction: The Freeport Militia + e.other:QuestReward(e.self,0,0,0,0,28057,500); -- Sealed Box + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/highpass/Volunteer_Delharn.lua b/highpass/Volunteer_Delharn.lua new file mode 100644 index 0000000..73506ff --- /dev/null +++ b/highpass/Volunteer_Delharn.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("Greetings! I am Delharn. from [Freeport]. I'm trying to earn some extra coin while passing through Highpass. I figure this is a pretty honorable way to do so."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("freeport")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("Freeport? It's the biggest city in all of Antonica! Whatever you're looking for, save for peace and quiet, you'll find it in Freeport."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("orc")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("These pesky orcs are a bit tougher than the ones I used to hunt in [Freeport]. Smell worse, too."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("keep") or e.message:findi("qeynos") or e.message:findi("karana")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("Sorry, I've only been around here a little more than a week. Try asking Captain Ashlan there - I bet he'll know."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end diff --git a/highpass/Volunteer_Renlor.lua b/highpass/Volunteer_Renlor.lua new file mode 100644 index 0000000..902dc8c --- /dev/null +++ b/highpass/Volunteer_Renlor.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("Greetings, traveler! I'm Jonso Renlor, born and raised in [Highpass Hold]! I'm part of the Volunteer Watch. You look pretty strong - why don't you help us out?"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("hold")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("Highpass Hold is run by [Carson McCabe], who lives in the keep. It's a rough place here, but you can easily make a quick buck."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("carson")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("'Carson runs this place. I wouldn't cross him; he seems like a pretty ruthless guy. I hear he's got connections all over Antonica!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("keep")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("The keep is in the center of Highpass Hold. The keep was made in a natural cave and then expanded over the past few years. I hear they are currently adding some new floors beneath it."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("gnoll")) then + if(e.other:GetFactionValue(e.self) >= -350) then + e.self:Say("Nothing but a pack of mangy dogs. Can't eat 'em, can't train 'em. Useless animals that are nothing more than an annoyance!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end diff --git a/highpass/Vranol_Blackguard.lua b/highpass/Vranol_Blackguard.lua new file mode 100644 index 0000000..ca8b426 --- /dev/null +++ b/highpass/Vranol_Blackguard.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFaction(e.self) > 5) then -- requires indifferent + e.self:Say("I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself."); + else + e.self:Emote("curls his lip, his sharp and regally handsome features twisting into a glare of pure disgust, 'Pathetic little worm. How easily I could strip your flesh from your very bones and pry out your teeth and fingernails one-by-one -- all whilst you continued to breath. All whilst you continued to see and feel. Aaaah, and what marvelous treasures my darling symblings and children could make of your putrid remains. Perhaps a lovely gown of silk-embroidered flesh to sell to a fair maiden, and I am quite sure such an item would fetch a lovely price -- for my family's talents are so great that even the grotesque hide upon your bones they could turn into a fabric more elaborate than even a queen's finest velvet. Aaaah...' The regal, wicked man flashes an eerie smile, 'perhaps you had best leave before you tempt me further and such thoughts reach into the realm of reality."); + end + end +end diff --git a/highpass/Wres_Corber.lua b/highpass/Wres_Corber.lua new file mode 100644 index 0000000..4cc935c --- /dev/null +++ b/highpass/Wres_Corber.lua @@ -0,0 +1,9 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("The boss might need some help!"); + local stanos = eq.get_entity_list():GetMobByNpcTypeID(5088); -- Stanos_Herkanor + if ( stanos.valid ) then + e.self:MoveTo(stanos:GetX(), stanos:GetY(), stanos:GetZ(), -1, false); + end + end +end \ No newline at end of file diff --git a/highpass/Wyle_Bimlin.lua b/highpass/Wyle_Bimlin.lua new file mode 100644 index 0000000..a0213d1 --- /dev/null +++ b/highpass/Wyle_Bimlin.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks an item up from the ground and says, 'Hey! Look what I found! Another piece of rubbish for my trailer... Must be my lucky day."); + end + end +end + +function event_say(e) + if (e.message:findi("hail") ) then + e.self:Say("Greetings, fine friend! I bet you are in need of some fine tonics. Feeling a little low? Take a drink of my fine Zap Doodle Tonic. It will give you the energy of five hill giants! You are in luck, my friend! I have it on sale today, and today only. Matter of fact, the sale ends in five minutes or five footsteps, whichever comes first. So don't be down... get an upside-down frown with my Zap Doodle Tonic! All sales are final."); + end +end \ No newline at end of file diff --git a/highpass/a_smuggler.lua b/highpass/a_smuggler.lua new file mode 100644 index 0000000..4cc935c --- /dev/null +++ b/highpass/a_smuggler.lua @@ -0,0 +1,9 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("The boss might need some help!"); + local stanos = eq.get_entity_list():GetMobByNpcTypeID(5088); -- Stanos_Herkanor + if ( stanos.valid ) then + e.self:MoveTo(stanos:GetX(), stanos:GetY(), stanos:GetZ(), -1, false); + end + end +end \ No newline at end of file diff --git a/highpass/encounters/OrcGnollSpawns.lua b/highpass/encounters/OrcGnollSpawns.lua new file mode 100644 index 0000000..9f7e42b --- /dev/null +++ b/highpass/encounters/OrcGnollSpawns.lua @@ -0,0 +1,116 @@ +--[[ +Orcs and gnolls have strange spawn behavior in the old version of Highpass. Sony seems to have scripted it somehow. +Some of the spawns will happen simultaneously. This script is a crude attempt to replicate the behavior based on old comments, +as the original zone is no longer observable. + +Allakhazam comments +------------------- +2004 comment: +"The mob spawn really needs looked at. I think its messed up, I know everyone says crap like that, but I have been playing 4 years, and its very eratic. +They will spawn like 4 then like 8 and none... none... Its hard to explain, the gnolls do it, and the goblins in HHK do it also." + +2002 comments: +"even the superspawn (when about 8 orcs spawn at once)" + +2001 comments: +"Unfortunately, before I can sit down six Gnolls spawn simultaneously from the spawn point and make a beeline to my pet" +"I was later told that spawns with three or more monsters is possible. I've seen that before," +"be VERY careful in HPH in the orc area, there can be MASSIVE pops where about 15 can spawn within 15 seconds...this can be tricky when you have 4 medics, a couple a fanatics, a named orc, and half a dozen warriors and assorted orcs all beatin atcha" +"That spawn can be either a Champion, Vexven, Grenix, or just a Flamepaw. Also All but the named Gnolls can spawn randomly at any time. There seemed to be no pattern of this." + +2000 comments: +"if you park on the spawn point, it's easy to get swarmed. The spawn is *fast.*" (referring to orcs) +"Controlling this spawn is much easier than for orcs." (referring to gnolls) +"4) the gnoll spawn..while often less camped is a slower spawn and is way to near to the tower guards" +"Gnoll ledge is a not so fast spawn rate but good exp otherwise" + + +AK log comments: +[Tue Dec 6 02:03:01 2005] Frer tells the group, 'there are like 8 orc spawns' +[Tue Dec 6 02:04:50 2005] Frer tells the group, 'if you need to afk, stand here, uninvis, because all the spawns walk this way after a short period of time' + + +note: In AK logs, high levels were killing orcs roughly 70-90 kills an hour. (can't really know if they briefly left the area or not, so hard to estimate) + Also, evidence of simultaneous orc spawns are consistently seen about six minutes apart. (based on kill message times) +]] + +local ORC_TYPES = { 5002, 5014, 5082, 5085, 5012, 5001, 5089, 5084, 5130 }; +local GNOLL_TYPES = { 5075, 5110, 5113, 5124, 5076, 5081 }; +local ORC_SPAWNIDS = { 368035, 368036, 368620, 368621, 368622, 369371, 336267 }; +local GNOLL_SPAWNIDS = { 368614, 368616, 368617, 368618 }; -- leaving out some spawns because all 8 seems too much + +function IsValueInTable(t, v) + for k, v2 in ipairs(t) do + if ( v == v2 ) then + return true; + end + end + return false; +end + +function OrcSpawnEvent(e) + e.self:PauseWandering(20); + + if ( e.self:GetSpawnPointID() == 336266 ) then -- controller spawn; 6 minutes + + local roll = math.random(0, #ORC_SPAWNIDS); + local spawnIDs = {}; + local attempts = 0; + local id; + + while (#spawnIDs < roll and attempts < 100) do + + id = ORC_SPAWNIDS[math.random(1, #ORC_SPAWNIDS)]; + if ( not IsValueInTable(spawnIDs, id) ) then + table.insert(spawnIDs, id); + end + + attempts = attempts + 1; + end + + local elist = eq.get_entity_list(); + for _, id in ipairs(spawnIDs) do + elist:GetSpawnByID(id):SetTimer(1); + end + eq.debug("Orc spawn wave: "..(roll + 1).." orcs"); -- these won't spawn if they are already spawned + end +end + +function GnollSpawnEvent(e) + e.self:PauseWandering(20); + + if ( e.self:GetSpawnPointID() == 368619 ) then -- controller spawn; 12 minutes + + local roll = math.random(0, #GNOLL_SPAWNIDS); + local spawnIDs = {}; + local attempts = 0; + local id; + + while (#spawnIDs < roll and attempts < 100) do + + id = GNOLL_SPAWNIDS[math.random(1, #GNOLL_SPAWNIDS)]; + if ( not IsValueInTable(spawnIDs, id) ) then + table.insert(spawnIDs, id); + end + + attempts = attempts + 1; + end + + local elist = eq.get_entity_list(); + for _, id in ipairs(spawnIDs) do + elist:GetSpawnByID(id):SetTimer(1); + end + eq.debug("Gnoll spawn wave: "..(roll + 1).." gnolls"); + end +end + +function event_encounter_load(e) + + for _, id in ipairs(ORC_TYPES) do + eq.register_npc_event("OrcGnollSpawns", Event.spawn, id, OrcSpawnEvent); + end + for _, id in ipairs(GNOLL_TYPES) do + eq.register_npc_event("OrcGnollSpawns", Event.spawn, id, GnollSpawnEvent); + end + +end diff --git a/highpass/script_init.lua b/highpass/script_init.lua new file mode 100644 index 0000000..3cdcf03 --- /dev/null +++ b/highpass/script_init.lua @@ -0,0 +1 @@ +eq.load_encounter("OrcGnollSpawns"); diff --git a/hohonora/A_Rabid_Wrulon.lua b/hohonora/A_Rabid_Wrulon.lua new file mode 100644 index 0000000..7abbe03 --- /dev/null +++ b/hohonora/A_Rabid_Wrulon.lua @@ -0,0 +1,5 @@ +function event_death_complete(e) + local x, y, z, h = e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading(); + eq.spawn2(211080, 0, 0, x, y, z, h); -- A_Rabid_Wrulon_Pup + eq.spawn2(211080, 0, 0, x, y, z, h); -- A_Rabid_Wrulon_Pup +end diff --git a/hohonora/An_Imperon_Servicemen.lua b/hohonora/An_Imperon_Servicemen.lua new file mode 100644 index 0000000..adc8ee7 --- /dev/null +++ b/hohonora/An_Imperon_Servicemen.lua @@ -0,0 +1,7 @@ +function event_signal(e) + if ( e.signal == 1 ) then + if ( e.self:GetX() == e.self:GetSpawnPointX() and e.self:GetY() == e.self:GetSpawnPointY() ) then + e.self:Say("Sir, yes sir!"); + end + end +end diff --git a/hohonora/An_Undead_Inhabitant.lua b/hohonora/An_Undead_Inhabitant.lua new file mode 100644 index 0000000..10f1866 --- /dev/null +++ b/hohonora/An_Undead_Inhabitant.lua @@ -0,0 +1,5 @@ +function event_death_complete(e) + local x, y, z, h = e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading(); + eq.spawn2(211081, 0, 0, x, y, z, h); -- A_Undead_Miniature + eq.spawn2(211081, 0, 0, x, y, z, h); -- A_Undead_Miniature +end diff --git a/hohonora/Atlaar_Mignar.lua b/hohonora/Atlaar_Mignar.lua new file mode 100644 index 0000000..0916f4d --- /dev/null +++ b/hohonora/Atlaar_Mignar.lua @@ -0,0 +1,47 @@ +local n; + +function event_signal(e) + if ( e.signal == 1 ) then + eq.stop_timer("animate"); + e.self:Say("Yes sir! Sergeant Bryson, sir!"); + e.self:MoveTo(-1337, 190, 7.5, 65, true); + + elseif ( e.signal == 2 ) then + e.self:Say("Yes sir! Sergeant Bryson, sir!"); + eq.set_timer("move", 5000); + + elseif ( e.signal == 3 ) then + e.self:Say("Sir! Yes, sir!"); + + elseif ( e.signal == 5 ) then + e.self:Say("Let us spar!"); + eq.set_timer("animate", 1); + end +end + +function event_timer(e) + + if ( e.timer == "animate" ) then + eq.set_timer(e.timer, 120000); + eq.set_timer("doanim", 3800); + n = 0; + + elseif ( e.timer == "doanim" ) then + n = n + 1; + + local anim = 1; + if ( n == 2 ) then + anim = 3; + elseif ( n == 3 ) then + anim = 11; + elseif ( n == 4 ) then + anim = 7; + eq.stop_timer(e.timer); + end + e.self:DoAnim(anim); + + elseif ( e.timer == "move" ) then + eq.stop_timer(e.timer); + e.self:MoveTo(-1349, 148, 7.5, 9, true); + end +end diff --git a/hohonora/Eldon_Starkorp.lua b/hohonora/Eldon_Starkorp.lua new file mode 100644 index 0000000..4fc0d04 --- /dev/null +++ b/hohonora/Eldon_Starkorp.lua @@ -0,0 +1,47 @@ +local n; + +function event_signal(e) + if ( e.signal == 1 ) then + eq.stop_timer("animate"); + e.self:Say("Yes sir! Sergeant Bryson, sir!"); + e.self:MoveTo(-1337, 130, 7.5, 65, true); + + elseif ( e.signal == 3 ) then + e.self:Say("Sir! Yes, sir!"); + + elseif ( e.signal == 4 ) then + e.self:Say("Yes sir! Sergeant Bryson, sir!"); + eq.set_timer("move", 5000); + + elseif ( e.signal == 5 ) then + e.self:Say("Let us spar!"); + eq.set_timer("animate", 2900); + end +end + +function event_timer(e) + + if ( e.timer == "animate" ) then + eq.set_timer(e.timer, 42000); + eq.set_timer("doanim", 3800); + n = 0; + + elseif ( e.timer == "doanim" ) then + n = n + 1; + + local anim = 1; + if ( n == 2 ) then + anim = 3; + elseif ( n == 3 ) then + anim = 11; + elseif ( n == 4 ) then + anim = 7; + eq.stop_timer(e.timer); + end + e.self:DoAnim(anim); + + elseif ( e.timer == "move" ) then + eq.stop_timer(e.timer); + e.self:MoveTo(-1291, 223, 7.5, 167, true); + end +end diff --git a/hohonora/First_Sergeant_Bryson_Tredd.lua b/hohonora/First_Sergeant_Bryson_Tredd.lua new file mode 100644 index 0000000..9ec5838 --- /dev/null +++ b/hohonora/First_Sergeant_Bryson_Tredd.lua @@ -0,0 +1,62 @@ +local SAY_TEXT = { + "Allright, men, break it up, and fall in!", + "Listen up, soldiers! I have some important news for all of us. You may have noticed that in the recent times, that small sections of our battalion have been leaving these halls. You may have further noticed that most of the remaining troupes have started some special training here within the halls.", + "It has come down from the Captains of the platoon that we are to also begin training. We will be training in advanced combat tactics. The reason for this is that while half of the battalion is out on the march, and engaging in battle, we are to protect the Halls. In addition to protecting the halls, it is entirely possible that we may be called into battle.", + "If our platoons are called into battle, that will mean only one thing. The traditional means of fighting are not faring well on the battlefield. This is the reasoning behind all the special operations training that the squads are undergoing. We are preparing for the worst. We are preparing you guys to go into a battle that is being lost, and turn it around. Failure is not an option.", + "It is your duty to not only learn these skills, but to make them second nature. I don't want you to think about what you are going to do when the enemy is baring down on your position, and there are only three of you, hiding in a small patch of dense forest. It will be instinct. You will have acted, and defeated the enemy before you even had a chance to think about what you were going to do. You are our secret weapons.", + "Is this clear, soldiers?", + "Are all of you ready to begin your training?", + "Excellent! You two, take your positions over there!", + "And you two, take your positions over here. On my mark, you will begin sparring, and I will make suggestions to you based upon what I see in your fighting styles.", + "Mark!", +}; + +local n; + +function SendSignals(n) + eq.signal(211041, n); -- Atlaar_Mignar + eq.signal(211039, n); -- Mildar_Gormrok + eq.signal(211040, n); -- Ranndall_Darknon + eq.signal(211038, n); -- Eldon_Starkorp +end + +function event_spawn(e) + eq.set_timer("say", 10000); + n = 0; +end + +function event_timer(e) + + if ( e.self:IsEngaged() or e.self:GetX() ~= e.self:GetSpawnPointX() or e.self:GetY() ~= e.self:GetSpawnPointY() ) then + return; + end + + n = n + 1; + + if ( n == 1 ) then + eq.set_timer(e.timer, 15000); + elseif ( n == 9 ) then + eq.set_timer(e.timer, 25000); + elseif ( n == 10 ) then + eq.set_timer(e.timer, 25*60000); + end + + e.self:Say(SAY_TEXT[n]); + + if ( n == 1 ) then + SendSignals(1); + + elseif ( n == 6 or n == 7 ) then + SendSignals(3); + + elseif ( n == 8 ) then + SendSignals(2); + + elseif ( n == 9 ) then + SendSignals(4); + + elseif ( n == 10 ) then + SendSignals(5); + n = 0; + end +end diff --git a/hohonora/Guard_Change_Shouter.lua b/hohonora/Guard_Change_Shouter.lua new file mode 100644 index 0000000..9129423 --- /dev/null +++ b/hohonora/Guard_Change_Shouter.lua @@ -0,0 +1,136 @@ +local HERO_TYPE = 211002; -- Hero_Shrine_Guardian + +local HEROS = { + { + spawn = { 80, 10, 12 }, + grid = { + { -260, 10, -1, 0 }, + { -260, 1975, -1, 0 }, + { -705, 1970, -1, 0 }, + { -715, 2005, -1, 60 }, + { -735, 2005, 65, 2400 }, + }, + }, + { + spawn = { 80, 5, 12 }, + grid = { + { -260, 5, -1, 0 }, + { -260, 1965, -1, 0 }, + { -705, 1970, -1, 0 }, + { -715, 1934, -1, 60 }, + { -734, 1934, 65, 2400 }, + }, + }, + { + spawn = { 80, 0, 12 }, + grid = { + { -260, 0, -1, 0 }, + { -1020, 0, -1, 0 }, + { -1020, -1070, -1, 0 }, + { -1100, -1130, -1, 0 }, + { -1360, -1130, -1, 0 }, + { -1360, -1320, -1, 0 }, + { -1370, -1320, -1, 60 }, + { -1391, -1320, 0, 2400 }, + }, + }, + { + spawn = { 80, -5, 12 }, + grid = { + { -260, -5, -1, 0 }, + { -1020, -5, -1, 0 }, + { -1020, -1070, -1, 0 }, + { -1100, -1130, -1, 0 }, + { -1360, -1130, -1, 0 }, + { -1360, -1320, -1, 0 }, + { -1345, -1320, -1, 60 }, + { -1327, -1320, 0, 2400 }, + }, + }, +}; + +local oldIDs; +local newIDs = {}; + +function event_spawn(e) + eq.set_timer("timecheck", 10000); +end + +function event_timer(e) + + if ( e.timer == "timecheck" ) then + + local zoneTime = eq.get_zone_time()["zone_hour"] + 1; + local npc, pause; + + if ( zoneTime == 7 or zoneTime == 19 ) then + + eq.zone_emote(0, "You hear a chime in the distance, and a voice booms in your ears, 'It is now the time for the changing of the guard!'"); + + oldIDs = newIDs; + newIDs = {}; + + for i, t in ipairs(HEROS) do + + npc = eq.spawn2(HERO_TYPE, 0, 0, t.spawn[1], t.spawn[2], t.spawn[3], 192); + npc = npc:CastToNPC(); + table.insert(newIDs, npc:GetID()); + --npc:SetRunning(true); + npc:SetWanderType(6); + npc:SetPauseType(1); + + npc:AddWaypoint(t.spawn[1], t.spawn[2], t.spawn[3], -1, 0, false); + for j, t2 in ipairs(t.grid) do + npc:AddWaypoint(t2[1], t2[2], 7.5, t2[3], t2[4], false); + end + eq.set_timer("failsafe", 72*60*1000, npc); + end + + eq.set_timer("wait", 900000); + eq.stop_timer(e.timer); + end + + elseif ( e.timer == "wait" ) then + eq.set_timer("timecheck", 10000); + eq.stop_timer(e.timer); + end +end + +function event_signal(e) + local newnpc = eq.get_entity_list():GetNPCByID(e.signal); + + if ( newnpc and newnpc.valid ) then + + local zoneTime = eq.get_zone_time()["zone_hour"] + 1; + + for i, id in ipairs(newIDs) do + if ( id == newnpc:GetID() and oldIDs[i] ) then + local oldnpc = eq.get_entity_list():GetNPCByID(oldIDs[i]); + + if ( oldnpc and oldnpc.valid ) then + if ( newnpc:CalculateDistance(oldnpc:GetX(), oldnpc:GetY(), oldnpc:GetZ()) < 200 ) then + newnpc:FaceTarget(oldnpc); + oldnpc:FaceTarget(newnpc); + if ( i == 1 or i == 3 ) then + if ( zoneTime > 18 ) then + newnpc:Say("Good evening, time for you to leave. Get some sleep."); + else + newnpc:Emote("salutes and instructs his counterpart to leave his post."); + end + else + if ( zoneTime > 18 ) then + newnpc:Say("Your shift has ended. Have a good evening, and good work today."); + else + newnpc:Say("Hail, solider. Your are relieved of duty, please report back to this post at the end of my shift."); + end + end + end + eq.signal(211002, oldnpc:GetID()); -- Hero_Shrine_Guardian + return; + end + end + end + + newnpc:ResumeWandering(); + end +end diff --git a/hohonora/Hero_Shrine_Guardian.lua b/hohonora/Hero_Shrine_Guardian.lua new file mode 100644 index 0000000..11dc81b --- /dev/null +++ b/hohonora/Hero_Shrine_Guardian.lua @@ -0,0 +1,35 @@ +function event_waypoint_arrive(e) + + if ( e.wp == (e.self:GetWaypointMax() - 2) ) then + eq.signal(211073, e.self:GetID()); -- Guard_Change_Shouter + + elseif ( e.wp == (e.self:GetWaypointMax() - 1) ) then + e.self:RemoveWaypoints(); + e.self:SaveGuardSpot(); + end +end + +function event_signal(e) + if ( e.signal == e.self:GetID() ) then + eq.set_timer("move", 60000); + end +end + +function event_timer(e) + if ( e.timer == "check" ) then + if ( e.self:GetX() > 0 ) then + eq.depop(); + end + + elseif ( e.timer == "move" ) then + eq.stop_timer(e.timer); + eq.set_timer("check", 5000); + + e.self:MoveTo(80, 0, 7.5, -1, true); + + elseif ( e.timer == "failsafe" ) then + -- force move if 1 full game day passes. Not sure why they don't move sometimes (zone idle?) + eq.set_timer("check", 5000); + e.self:MoveTo(80, 0, 7.5, -1, true); + end +end diff --git a/hohonora/Mildar_Gormrok.lua b/hohonora/Mildar_Gormrok.lua new file mode 100644 index 0000000..ad756bf --- /dev/null +++ b/hohonora/Mildar_Gormrok.lua @@ -0,0 +1,48 @@ +local n; + +function event_signal(e) + if ( e.signal == 1 ) then + eq.stop_timer("animate"); + e.self:Say("Yes sir! Sergeant Bryson, sir!"); + e.self:MoveTo(-1337, 150, 7.5, 65, true); + + elseif ( e.signal == 3 ) then + e.self:Say("Sir! Yes, sir!"); + + elseif ( e.signal == 4 ) then + e.self:Say("Yes sir! Sergeant Bryson, sir!"); + eq.set_timer("move", 5000); + + elseif ( e.signal == 5 ) then + e.self:Say("Let us spar!"); + eq.set_timer("animate", 1000); + end +end + +function event_timer(e) + + if ( e.timer == "animate" ) then + eq.set_timer(e.timer, 60000); + eq.set_timer("doanim", 3800); + n = 0; + + elseif ( e.timer == "doanim" ) then + n = n + 1; + + local anim = 1; + if ( n == 2 ) then + anim = 3; + elseif ( n == 3 ) then + anim = 11; + elseif ( n == 4 ) then + anim = 7; + eq.stop_timer(e.timer); + end + e.self:DoAnim(anim); + + elseif ( e.timer == "move" ) then + eq.stop_timer(e.timer); + e.self:MoveTo(-1310, 209, 7.5, 42.83286, true); + end +end + diff --git a/hohonora/Ranndall_Darknon.lua b/hohonora/Ranndall_Darknon.lua new file mode 100644 index 0000000..a62376c --- /dev/null +++ b/hohonora/Ranndall_Darknon.lua @@ -0,0 +1,47 @@ +local n; + +function event_signal(e) + if ( e.signal == 1 ) then + eq.stop_timer("animate"); + e.self:Say("Yes sir! Sergeant Bryson, sir!"); + e.self:MoveTo(-1337, 170, 7.5, 65, true); + + elseif ( e.signal == 2 ) then + e.self:Say("Yes sir! Sergeant Bryson, sir!"); + eq.set_timer("move", 5000); + + elseif ( e.signal == 3 ) then + e.self:Say("Sir! Yes, sir!"); + + elseif ( e.signal == 5 ) then + e.self:Say("Let us spar!"); + eq.set_timer("animate", 1900); + end +end + +function event_timer(e) + + if ( e.timer == "animate" ) then + eq.set_timer(e.timer, 22000); + eq.set_timer("doanim", 3800); + n = 0; + + elseif ( e.timer == "doanim" ) then + n = n + 1; + + local anim = 1; + if ( n == 2 ) then + anim = 3; + elseif ( n == 3 ) then + anim = 11; + elseif ( n == 4 ) then + anim = 7; + eq.stop_timer(e.timer); + end + e.self:DoAnim(anim); + + elseif ( e.timer == "move" ) then + eq.stop_timer(e.timer); + e.self:MoveTo(-1345, 169, 7.5, 134, true); + end +end diff --git a/hohonora/Sergeant_Bransid.lua b/hohonora/Sergeant_Bransid.lua new file mode 100644 index 0000000..42fd572 --- /dev/null +++ b/hohonora/Sergeant_Bransid.lua @@ -0,0 +1,58 @@ +local SPAWN_IDS = { 360957, 360956, 360930, 360929 }; -- spawn IDs for: Jared_Skies, Faern_Foom, Sylar_Rites, Teneb_Gresh + +local SAY_TEXT = { + "Welcome, members of Ducee Inston.", + "The preparations have begun. Che Virtuson has already been dispatched to a remote region outside of our home plane, as many of you may already know. Che Decuson has been given the task of safeguarding the halls while our numbers are diminished.", + "War is upon us. We've received reports that Che Virtuson has already engaged in battle. Che Decuson has already begun to deploy members of Alto Bellumon and Alto Roburon to destination Alphite Siegrun.", + "As you can see many fellow members of Che Decuson are no longer with us. A few groups have been asked to stay behind to learn specialized tactics of warfare.", + "All of you here have been chosen as the elite members of Ducee Inston. The next several weeks we'll all be involved in intense training. The Guardians of Honor will safeguard the Halls. This will allow us to keep focused with the tasks at hand.", + "The mausoleums will remain heavily guarded. They will continue to function as usual. However, no members of Che Decuson or Che Virtuson will be allowed to take the Trials of Marr. The trials will resume once everyone has returned.", + "Our lord has asked that we all meditate before we begin our intense training. At this time please hold all questions. Please be seated and think only of our mission, of our lord, and of our fellow brethren.", +}; + +local n; + +function SetAnimations(anim, faceMob) + local npc; + local elist = eq.get_entity_list(); + + for i, id in ipairs(SPAWN_IDS) do + + npc = elist:GetSpawnByID(id):GetNPC(); + + if ( npc and npc.valid and npc:GetX() == npc:GetSpawnPointX() and npc:GetY() == npc:GetSpawnPointY() ) then + + npc:SetAppearance(anim); + + if ( faceMob ) then + --npc:FaceTarget(faceMob); -- they are supposed to face the Sergeant here, but FaceTarget() makes them stand up when they shouldn't + end + end + end +end + +function event_spawn(e) + eq.set_timer("say1", 10000); + n = 0; +end + +function event_timer(e) + + if ( e.self:IsEngaged() or e.self:GetX() ~= e.self:GetSpawnPointX() or e.self:GetY() ~= e.self:GetSpawnPointY() ) then + return; + end + + n = n + 1; + + e.self:Say(SAY_TEXT[n]); + + if ( n == 1 ) then + eq.set_timer(e.timer, 24000); + SetAnimations(0); + + elseif ( n == #SAY_TEXT ) then + eq.set_timer(e.timer, 60000); + SetAnimations(1, e.self); + n = 0; + end +end diff --git a/hohonora/Sergeant_Hurrid.lua b/hohonora/Sergeant_Hurrid.lua new file mode 100644 index 0000000..cefa798 --- /dev/null +++ b/hohonora/Sergeant_Hurrid.lua @@ -0,0 +1,12 @@ +function event_spawn(e) + eq.set_timer("formation", 55000); +end + +function event_timer(e) + if ( e.timer == "formation" ) then + if ( e.self:GetX() == e.self:GetSpawnPointX() and e.self:GetY() == e.self:GetSpawnPointY() ) then + e.self:Say("Stay in formation!"); + eq.signal(211029, 1); -- An_Imperon_Servicemen + end + end +end diff --git a/hohonora/encounters/Crazed.lua b/hohonora/encounters/Crazed.lua new file mode 100644 index 0000000..de14dcf --- /dev/null +++ b/hohonora/encounters/Crazed.lua @@ -0,0 +1,360 @@ +local FLAG_LIMIT = 72; +local ALEKSON1_TYPE = 211060; -- Alekson_Garn +local ALEKSON2_TYPE = 211108; -- #Alekson_Garn +local CUSTODIAN_TYPE = 211078; -- A_Custodian_of_Marr + +local MIRANDA_TYPE = 211082; -- Miranda_Climmes +local YDIRA_TYPE = 211083; -- Ydira_Merok + +local CRAZED1_TYPE = 211074; -- a_crazed_norrathian lvl63 +local CRAZED2_TYPE = 211118; -- a_crazed_norrathian lvl62 +local VAGRANT_TYPE = 211077; -- a_recuso_vagrant +local STRAGGLER_TYPE = 211076; -- a_recuso_straggler +local DRIFTER_TYPE = 211075; -- a_recuso_drifter +local ADVOCENT_TYPE = 211084; -- Advocent_Joran +local HALGOZ_TYPE = 211086; -- Halgoz_Rellinic +local FREEGAN_TYPE = 211085; -- Freegan_Haun + +local ALEKSON_SPAWNID = 361021; +local ROOM_SPAWNIDS = { + 360839, 360840, 360841, 360842, + 361029, + 360837, 360838, 360843, 361030, 361031, + 361027, 361032, 361033, 361034, 361035, 361036 +}; + +local TRASH = { + { + { CRAZED1_TYPE, 0, 0, -2484, -1699 }, + { CRAZED2_TYPE, 0, 0, -2463, -1786 }, + { CRAZED2_TYPE, 0, 0, -2400, -1764 }, + { CRAZED2_TYPE, -2914, -1728, -2573, -1723 }, + { CRAZED2_TYPE, -2798, -1728, -2440, -1729 }, + { CRAZED1_TYPE, -2704, -1728, -2383, -1708 }, + }, + { + { DRIFTER_TYPE, -2958, -1552, -3141, -1698 }, + { DRIFTER_TYPE, -3173, -1736, -3122, -1753 }, + { STRAGGLER_TYPE, -3376, -1933, -3223, -1764 }, + { STRAGGLER_TYPE, -3376, -1552, -3188, -1707 }, + { VAGRANT_TYPE, -2958, -1933, -3144, -1735 }, + }, + { + { STRAGGLER_TYPE, -3364, -1309, -3174, -1151 }, + { STRAGGLER_TYPE, -3364, -960, -3159, -1115 }, + { VAGRANT_TYPE, -2998, -960, -3131, -1131 }, + { DRIFTER_TYPE, -2998, -1309, -3109, -1128 }, + { DRIFTER_TYPE, -3177, -1172, -3156, -1168 }, + }, +}; + +local BOSSES = { + { ADVOCENT_TYPE, -2462, -1724, 0, 0 }, + { HALGOZ_TYPE, -3163, -1734, -3144, -1735 }, + { FREEGAN_TYPE, -3169, -982, -3159, -1115 }, +}; + +local custodianId = 0; +local bossKills = 0; +local eventFailed = false; +local flags = 0; +local trashIDs = { {}, {}, {} }; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + + +function Alekson1Say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Greetings young "..e.other:GetName()..". I can see by the look in your eyes that you're [ready] to begin the Trials."); + + elseif ( e.message:findi("ready") ) then + e.self:Say("Good luck my friend. You'll need it."); + bossKills = 0; + eventFailed = false; + flags = 0; + local mob = eq.spawn2(CUSTODIAN_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + custodianId = mob:GetID(); + eq.set_timer("depop", 10000, mob); + eq.depop_with_timer(); + end +end + +function Alekson2Spawn(e) + eq.set_timer("depop", 600000); +end + +function Alekson2Timer(e) + eq.depop(); +end + +function Alekson2Say(e) + if ( e.message:findi("hail") and ClientCanFlag(e.other) and flags < FLAG_LIMIT ) then + + local qglobals = eq.get_qglobals(e.other); + local hasFlag = false; + if ( qglobals.hohtrials and qglobals.hohtrials:sub(3, 3) == "1" ) then + hasFlag = true; + end + + if ( not hasFlag ) then + local newGlobal = qglobals.hohtrials or "000"; + newGlobal = newGlobal:sub(1, 2).."1"; + eq.set_global("hohtrials", newGlobal, 5, "F"); + flags = flags + 1; + e.other:Message(0, "An ethereal mist descends from the air and surrounds your very being. Your body begins to emanate with the power of Alekson Garn."); + else + e.other:Message(0, "You have already received credit for completing this trial."); + end + end +end + +function CustodianDeathComplete(e) + + --if ( custodianId ~= e.self:GetID() ) then + if ( e.self:GetY() > 0 ) then + return; + end + + local client = e.killer:CastToClient(); + if ( not client.valid ) then + return; + end + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + + custodianId = 0; + StartEvent(e.self:GetX(), e.self:GetY()); +end + +function CustodianCombat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + eq.set_timer("bounds", 6000); + else + eq.resume_timer("depop"); + eq.stop_timer("bounds"); + end +end + +function CustodianTimer(e) + + if ( custodianId ~= e.self:GetID() ) then + return; + end + + if ( e.timer == "bounds" ) then + + if ( e.self:GetX() > -2200 or e.self:GetX() < -2800 ) then + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + e.self:WipeHateList(); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + end + + elseif ( e.timer == "depop" ) then + custodianId = 0; + eq.update_spawn_timer(ALEKSON_SPAWNID, 1000); + eq.depop(); + end +end + +function AttackerDeath(e) + + local id = e.self:GetID(); + local boss, mob; + + for room = 1, #trashIDs do + for i, v in ipairs(trashIDs[room]) do + if ( v == id ) then + table.remove(trashIDs[room], i); + if ( #trashIDs[room] == 0 ) then + boss = BOSSES[room]; + mob = eq.unique_spawn(boss[1], 0, 0, boss[2], boss[3], -112.625, 0); + if ( boss[4] ~= 0 ) then + mob:SetRunning(true); + mob:CastToNPC():MoveTo(boss[4], boss[5], -112.625, -1, true); + end + end + return; + end + end + end +end + +function BossDeath(e) + bossKills = bossKills + 1; + + if ( bossKills == 3 ) then + EventSuccess(); + end +end + +function AttackerSpawn(e) + eq.set_timer("depop", 50000); +end + +function AttackerTimer(e) + + if ( e.timer == "depop" ) then + FailEvent(); + eq.depop(); + end +end + +function AttackerCombat(e) + + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function StartEvent(x, y) + + eq.spawn2(MIRANDA_TYPE, 0, 0, -3160, -1719, -112.625, 141); + eq.spawn2(YDIRA_TYPE, 0, 0, -3158, -1138, -112.625, 77); + + local elist = eq.get_entity_list(); + + for _, id in ipairs(ROOM_SPAWNIDS) do + elist:GetSpawnByID(id):Disable(); + end + + local mob, h, mobx, moby; + for room, t1 in ipairs(TRASH) do + for i, t2 in ipairs(t1) do + if ( t2[2] == 0 and x ) then + mobx = x; + moby = y; + else + mobx = t2[2]; + moby = t2[3]; + end + mob = eq.spawn2(t2[1], 0, 0, mobx, moby, -112.625, 0); + table.insert(trashIDs[room], mob:GetID()); + mob:SetRunning(true); + mob:CastToNPC():MoveTo(t2[4], t2[5], -112.625, -1, true); + end + end + + eq.debug("Crazed Norathians trial started"); +end + +function EnableSpawns() + eq.depop_all(MIRANDA_TYPE); + eq.depop_all(YDIRA_TYPE); + + local elist = eq.get_entity_list(); + local spawn; + for _, id in ipairs(ROOM_SPAWNIDS) do + spawn = elist:GetSpawnByID(id) + eq.update_spawn_timer(id, 600000); + spawn:Enable(); + end +end + +function FailEvent() + + if ( eventFailed ) then + return; + end + eventFailed = true; + + EnableSpawns(); + + local elist = eq.get_entity_list(); + local mob; + + for i, t1 in ipairs(TRASH) do + for room, t2 in ipairs(t1) do + mob = elist:GetNPCByNPCTypeID(t2[1]); + if ( mob and mob.valid and mob:GetHP() > 0 ) then + mob:Depop(); + end + end + end + + for _, t in ipairs(BOSSES) do + + mob = elist:GetNPCByNPCTypeID(t[1]); + if ( mob and mob.valid and mob:GetHP() > 0 ) then + mob:Depop(); + end + end + + local i; + for room = 1, #trashIDs do + i = #trashIDs[room]; + while ( i > 0 ) do + table.remove(trashIDs[room], i); + i = i - 1; + end + end + + eq.update_spawn_timer(ALEKSON_SPAWNID, 10800000); + eq.zone_emote(0, "A woman screams in anguish as she's forcibly taken away by a band of crazed norrathians."); + eq.debug("Crazed Norathians trial failed"); +end + +function EventSuccess() + EnableSpawns(); + + local mob = eq.spawn2(ALEKSON2_TYPE, 0, 0, -2330, -1724, -110.4, 192); + mob:Say("Congratulations my friends. You've passed the trial I laid before you."); + + eq.debug("Crazed Norrathians trial success"); +end + +function event_encounter_load(e) + + eq.register_npc_event("Crazed", Event.say, ALEKSON1_TYPE, Alekson1Say); + eq.register_npc_event("Crazed", Event.say, ALEKSON2_TYPE, Alekson2Say); + eq.register_npc_event("Crazed", Event.spawn, ALEKSON2_TYPE, Alekson2Spawn); + eq.register_npc_event("Crazed", Event.timer, ALEKSON2_TYPE, Alekson2Timer); + + eq.register_npc_event("Crazed", Event.death_complete, CUSTODIAN_TYPE, CustodianDeathComplete); + eq.register_npc_event("Crazed", Event.timer, CUSTODIAN_TYPE, CustodianTimer); + eq.register_npc_event("Crazed", Event.combat, CUSTODIAN_TYPE, CustodianCombat); + + + local t = { CRAZED1_TYPE, CRAZED2_TYPE, VAGRANT_TYPE, STRAGGLER_TYPE, DRIFTER_TYPE, ADVOCENT_TYPE, HALGOZ_TYPE, FREEGAN_TYPE }; + for i, typeid in ipairs(t) do + + eq.register_npc_event("Crazed", Event.timer, typeid, AttackerTimer); + eq.register_npc_event("Crazed", Event.spawn, typeid, AttackerSpawn); + eq.register_npc_event("Crazed", Event.combat, typeid, AttackerCombat); + + if ( i < 6 ) then + eq.register_npc_event("Crazed", Event.death, typeid, AttackerDeath); + else + eq.register_npc_event("Crazed", Event.death_complete, typeid, BossDeath); + end + end +end diff --git a/hohonora/encounters/IversonOrders.lua b/hohonora/encounters/IversonOrders.lua new file mode 100644 index 0000000..09c0fcb --- /dev/null +++ b/hohonora/encounters/IversonOrders.lua @@ -0,0 +1,184 @@ +local ThreadManager = require("thread_manager"); +local Iverson = nil; + +function IversonOrders() + Iverson:Shout("Soldiers, Fall in!"); + SoldierSay(); + ThreadManager:Wait(0.65); + + Iverson:Say("At ease, soldiers! You know why you are here! You are here because you want to be the best. You are here to receive special operations training! And I am here to give it to you."); + ThreadManager:Wait(0.65); + + Iverson:Say("By now, you know that the other company within the battalion has been dispatched to battle. While they are away on march, our mission is twofold. One is to protect these Halls until they return, or our assistance is needed. And the second phase, is to ready ourselves for the possibilities of battle! We are to become stronger, faster, and more diverse in our knowledge then we have ever been before! Each squad in this company will be mastering a different tactic, to be practiced here, and only used on the battlefield, should it be necessary."); + ThreadManager:Wait(0.65); + + Iverson:Say("Are you ready for this task, soldiers?"); + GoStand(); + SoldierSay1(); + ThreadManager:Wait(0.65); + + Iverson:Say("Allright then, we will reconvene here in one hour to start your training. Dismissed!"); + SoldierSay2() +end + +function SoldierSay() + eq.get_entity_list():GetMobByNpcTypeID(211035):Say("Yes sir! Sergeant Iverson, sir!"); -- Emrol_Sentaru + eq.get_entity_list():GetMobByNpcTypeID(211035):Say("Yes sir! Sergeant Iverson, sir!"); -- Emrol_Sentaru + eq.get_entity_list():GetMobByNpcTypeID(211036):Say("Yes sir! Sergeant Iverson, sir!"); -- Kalrok_Mantorns + eq.get_entity_list():GetMobByNpcTypeID(211036):Say("Yes sir! Sergeant Iverson, sir!"); -- Kalrok_Mantorns + eq.get_entity_list():GetMobByNpcTypeID(211037):Say("Yes sir! Sergeant Iverson, sir!"); -- Minok_Targsk + eq.get_entity_list():GetMobByNpcTypeID(211037):Say("Yes sir! Sergeant Iverson, sir!"); -- Minok_Targsk +end + +function SoldierSay1() + eq.get_entity_list():GetMobByNpcTypeID(211035):Say("Sir! Yes, sir!"); -- Emrol_Sentaru + eq.get_entity_list():GetMobByNpcTypeID(211036):Say("Sir! Yes, sir!"); -- Kalrok_Mantorns + eq.get_entity_list():GetMobByNpcTypeID(211037):Say("Sir! Yes, sir!"); -- Minok_Targsk +end + +function SoldierSay2() + eq.get_entity_list():GetMobByNpcTypeID(211035):Say("Yes, sir! Thank you, sir!"); -- Emrol_Sentaru + eq.get_entity_list():GetMobByNpcTypeID(211036):Say("Yes, sir! Thank you, sir!"); -- Kalrok_Mantorns + eq.get_entity_list():GetMobByNpcTypeID(211037):Say("Yes, sir! Thank you, sir!"); -- Minok_Targsk +end + +function GoStand() + + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(211035)) then + eq.get_entity_list():GetMobByNpcTypeID(211035):CastToNPC():MoveTo(-1345,-197,7.5,0,true); -- Emrol_Sentaru + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(211036)) then + eq.get_entity_list():GetMobByNpcTypeID(211036):CastToNPC():MoveTo(-1309,-197,7.5,0,true); -- Kalrok_Mantorns + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(211037)) then + eq.get_entity_list():GetMobByNpcTypeID(211037):CastToNPC():MoveTo(-1264,-197,7.5,0,true); -- Minok_Targsk + end + +end + +function GoSit() + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(211035)) then + eq.get_entity_list():GetMobByNpcTypeID(211035):CastToNPC():MoveTo(-1234,-260,7.5,41,true); -- Emrol_Sentaru + eq.signal(211035,1); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(211036)) then + eq.get_entity_list():GetMobByNpcTypeID(211036):CastToNPC():MoveTo(-1199,-247,7.5,225,true); -- Kalrok_Mantorns + eq.signal(211036,1); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(211037)) then + eq.get_entity_list():GetMobByNpcTypeID(211037):CastToNPC():MoveTo(-1403,-221,7.5,38,true); -- Minok_Targsk + eq.signal(211037,1); + end +end + +function EmrolSignal(e) + if(e.signal == 1) then + eq.set_timer("sit",1000); + elseif(e.signal == 2) then + eq.stop_timer("sit"); + end +end + +function KalrokSignal(e) + if(e.signal == 1) then + eq.set_timer("sit",1000); + elseif(e.signal == 2) then + eq.stop_timer("sit"); + end +end + +function MinokSignal(e) + if(e.signal == 1) then + eq.set_timer("sit",1000); + elseif(e.signal == 2) then + eq.stop_timer("sit"); + end +end + +function EmrolTimer(e) + if(e.timer == "sit" and e.self:GetX() == -1234 and e.self:GetY() == -260) then + if(e.self:GetAppearance() == 0) then + e.self:SetAppearance(1); + end + end +end + +function KalrokTimer(e) + if(e.timer == "sit" and e.self:GetX() == -1199 and e.self:GetY() == -247) then + if(e.self:GetAppearance() == 0) then + e.self:SetAppearance(1); + end + end +end + +function MinokTimer(e) + if(e.timer == "sit" and e.self:GetX() == -1403 and e.self:GetY() == -221) then + if(e.self:GetAppearance() == 0) then + e.self:SetAppearance(1); + end + end +end + +function IversonHeartbeat(e) + Iverson = e.self; + if(e.timer == "start") then + ThreadManager:Create("IversonOrders",IversonOrders) + eq.set_timer("Iversion_hb", 13000); + elseif(e.timer == "Iversion_hb") then + eq.stop_timer("start"); + ThreadManager:GarbageCollect(); + ThreadManager:Resume("IversonOrders"); + elseif(e.timer == "gosit") then + eq.stop_timer("gosit"); + eq.set_timer("canceltimer",30000); + GoSit(); + elseif(e.timer == "canceltimer") then + eq.signal(211035,2); + eq.signal(211036,2); + eq.signal(211037,2); + eq.stop_timer("canceltimer"); + end +end + +function IversonArrive(e) + if(e.wp == 1) then + eq.set_timer("start", 35000); + elseif(e.wp == 2) then + eq.stop_timer("Iversion_hb"); + end +end + +function IversonDepart(e) + if(e.wp == 1) then + if(math.random(100) < 50) then + eq.set_timer("gosit",75000); + end + end +end + +function IversonCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("start")) then + eq.pause_timer("start"); + end + if(not eq.is_paused_timer("Iversion_hb")) then + eq.pause_timer("Iversion_hb"); + end + else + eq.resume_timer("start"); + eq.resume_timer("Iversion_hb"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("IversonOrders", Event.timer, 211046, IversonHeartbeat); + eq.register_npc_event("IversonOrders", Event.waypoint_arrive, 211046, IversonArrive); + eq.register_npc_event("IversonOrders", Event.waypoint_depart, 211046, IversonDepart); + eq.register_npc_event("IversonOrders", Event.combat, 211046, IversonCombat); + eq.register_npc_event("IversonOrders", Event.signal, 211035, EmrolSignal); + eq.register_npc_event("IversonOrders", Event.signal, 211036, KalrokSignal); + eq.register_npc_event("IversonOrders", Event.signal, 211037, MinokSignal); + eq.register_npc_event("IversonOrders", Event.timer, 211035, EmrolTimer); + eq.register_npc_event("IversonOrders", Event.timer, 211036, KalrokTimer); + eq.register_npc_event("IversonOrders", Event.timer, 211037, MinokTimer); +end diff --git a/hohonora/encounters/RyddaDar.lua b/hohonora/encounters/RyddaDar.lua new file mode 100644 index 0000000..e1a6617 --- /dev/null +++ b/hohonora/encounters/RyddaDar.lua @@ -0,0 +1,201 @@ +local FLAG_LIMIT = 72; +local TRYDAN1_TYPE = 211051; -- Trydan_Faye +local TRYDAN2_TYPE = 211117; -- #Trydan_Faye +local RYDDA_TYPE = 211107; -- Rydda`Dar +local CUSTODIAN_TYPE = 211078; -- A_Custodian_of_Marr + +local TRYDAN_SPAWNID = 360859; +local ROOM_SPAWNIDS = { 360860, 361050, 361051, 361052 }; + +local custodianId = 0; -- keeping track of entity IDs so I don't clone the NPC type for each trial +local flags = 0; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + + +function Trydan1Say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Hello my friend. I can see that you've journeyed far to come before me. You've passed your first task, but you have many more [Trials] to face before you can enter the Temple of Marr."); + + elseif ( e.message:findi("trials") ) then + e.self:Say("There are three other Trials you must undergo before you can prove yourself worthy. When you're [ready] we'll begin the first Trial."); + + elseif ( e.message:findi("ready") ) then + flags = 0; + local mob = eq.spawn2(CUSTODIAN_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + custodianId = mob:GetID(); + eq.set_timer("depop", 10000, mob); + eq.depop_with_timer(); + end +end + +function Trydan2Spawn(e) + eq.set_timer("depop", 600000); + e.self:Say("Congratulations on your victory my friends. You've passed this trial. There are two others that you must complete before you can step into the Temple of Marr."); +end + +function Trydan2Timer(e) + eq.depop(); +end + +function Trydan2Say(e) + if ( e.message:findi("hail") and ClientCanFlag(e.other) and flags < FLAG_LIMIT ) then + + local qglobals = eq.get_qglobals(e.other); + local hasFlag = false; + if ( qglobals.hohtrials and qglobals.hohtrials:sub(1, 1) == "1" ) then + hasFlag = true; + end + + if ( not hasFlag ) then + local newGlobal = qglobals.hohtrials or "000"; + newGlobal = "1"..newGlobal:sub(2, 3); + eq.set_global("hohtrials", newGlobal, 5, "F"); + flags = flags + 1; + e.other:Message(0, "An ethereal mist descends from the air and surrounds your very being. Your body begins to emanate with the power of Trydan Faye."); + else + e.other:Message(0, "You have already received credit for completing this trial."); + end + end +end + +function CustodianDeath(e) + if ( custodianId ~= e.self:GetID() ) then + return; + end + + custodianId = 0; + + local elist = eq.get_entity_list(); + for _, id in ipairs(ROOM_SPAWNIDS) do + elist:GetSpawnByID(id):Disable(); + end + + eq.spawn2(RYDDA_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + eq.debug("Rydda`Dar trial started"); +end + +function CustodianTimer(e) + + if ( custodianId ~= e.self:GetID() ) then + return; + end + + if ( e.timer == "bounds" ) then + + if ( e.self:GetY() > 2300 or e.self:GetY() < 1750 ) then + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + e.self:WipeHateList(); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + end + + elseif ( e.timer == "depop" ) then + custodianId = 0; + eq.update_spawn_timer(TRYDAN_SPAWNID, 1000); + eq.depop(); + end +end + +function EnableSpawns() + local elist = eq.get_entity_list(); + local spawn; + for _, id in ipairs(ROOM_SPAWNIDS) do + spawn = elist:GetSpawnByID(id) + eq.update_spawn_timer(id, 600000); + spawn:Enable(); + end +end + +function RyddaDeathComplete(e) + EnableSpawns(); + + local client = e.killer:CastToClient(); + if ( not client.valid ) then + return; + end + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + + eq.spawn2(TRYDAN2_TYPE, 0, 0, -1725, 2040, -111.4, 0); + + eq.debug("Rydda`Dar trial success"); +end + +function AttackerSpawn(e) + eq.set_timer("depop", 10000); +end + +function RyddaSpawn(e) + eq.set_timer("depop", 56000); +end + +function RyddaTimer(e) + + if ( e.timer == "bounds" ) then + if ( e.self:GetY() > 2300 or e.self:GetY() < 1750 ) then + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + e.self:WipeHateList(); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + end + + elseif ( e.timer == "depop" ) then + eq.update_spawn_timer(TRYDAN_SPAWNID, 10800000); + eq.debug("Rydda`Dar trial failed"); + EnableSpawns(); + eq.depop(); + end +end + +function AttackerCombat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + eq.set_timer("bounds", 6000); + else + eq.resume_timer("depop"); + eq.stop_timer("bounds"); + end +end + +function event_encounter_load(e) + + eq.register_npc_event("RyddaDar", Event.say, TRYDAN1_TYPE, Trydan1Say); + eq.register_npc_event("RyddaDar", Event.say, TRYDAN2_TYPE, Trydan2Say); + eq.register_npc_event("RyddaDar", Event.spawn, TRYDAN2_TYPE, Trydan2Spawn); + eq.register_npc_event("RyddaDar", Event.timer, TRYDAN2_TYPE, Trydan2Timer); + + eq.register_npc_event("RyddaDar", Event.death, CUSTODIAN_TYPE, CustodianDeath); + eq.register_npc_event("RyddaDar", Event.timer, CUSTODIAN_TYPE, CustodianTimer); + eq.register_npc_event("RyddaDar", Event.combat, CUSTODIAN_TYPE, AttackerCombat); + + eq.register_npc_event("RyddaDar", Event.death_complete, RYDDA_TYPE, RyddaDeathComplete); + eq.register_npc_event("RyddaDar", Event.spawn, RYDDA_TYPE, RyddaSpawn); + eq.register_npc_event("RyddaDar", Event.timer, RYDDA_TYPE, RyddaTimer); + eq.register_npc_event("RyddaDar", Event.combat, RYDDA_TYPE, AttackerCombat); +end diff --git a/hohonora/encounters/Villagers.lua b/hohonora/encounters/Villagers.lua new file mode 100644 index 0000000..fe44c68 --- /dev/null +++ b/hohonora/encounters/Villagers.lua @@ -0,0 +1,283 @@ +local FLAG_LIMIT = 72; +local RHALIQ1_TYPE = 211050; -- Rhaliq_Trell +local RHALIQ2_TYPE = 211106; -- #Rhaliq_Trell +local CUSTODIAN_TYPE = 211078; -- A_Custodian_of_Marr + +local VILLAGERS = { + { 211093, 638, 1400 }, -- a_barbarian_villager + { 211090, 588, 1300 }, -- a_dwarven_villager + { 211087, 588, 1500 }, -- a_gnome_villager + { 211088, 588, 1450 }, -- a_halfelf_villager + { 211091, 588, 1350 }, -- a_halfling_villager + { 211092, 588, 1400 }, -- a_human_villager + { 211089, 638, 1350 }, -- a_woodelf_villager +}; +local ATTACKERS = { + { 211105, 930, 1968, 64, 4 }, -- Granmuck_Reiga + { 211104, 1220, 1906, 128, 14 }, -- Fligg_Starp + { 211103, 1371, 1906, 128, 22 }, -- Trann_Berk + { 211102, 1293, 2110, 128, 26 }, -- Shott_Tarbs + { 211101, 1293, 1968, 128, 5 }, -- Ruark_Barr + { 211100, 1474, 1201, 192, 14 }, -- Zullkata_Reeps + { 211096, 1474, 1539, 192, 12 }, -- Maeryn_Malladry + { 211095, 1293, 1374, 192, 26 }, -- Thullias_Rhidron + { 211094, 1130, 1552, 128, 4 }, -- Herot_Terkins + { 211099, 1293, 1968, 128, 14 }, -- Mirezvakla_Ry`Ten + { 211098, 1293, 1756, 128, 21 }, -- Yarezka_Tri`Lok + { 211097, 773, 1374, 192, 26 }, -- Merken_Lysonn +}; + +local RHALIQ_SPAWNID = 360971; +local ROOM_SPAWNIDS = { + 360972, 360973, 360974, 360975, 360976, 360977, 360978, 360979, + 360980, 360981, 360982, 360983, 360984, 360985 +}; + +local custodianId = 0; +local attackersKilled = 0; +local eventFailed = false; +local flags = 0; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + + +function Rhaliq1Say(e) + if ( e.message:findi("hail") ) then + e.self:Emote("nods in your direction and says 'The trials have only just begun. When you're [ready] to be tested we shall begin."); + + elseif ( e.message:findi("ready") ) then + e.self:Say("Good luck to you my friend..."); + attackersKilled = 0; + eventFailed = false; + flags = 0; + local mob = eq.spawn2(CUSTODIAN_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + custodianId = mob:GetID(); + eq.set_timer("depop", 10000, mob); + eq.depop_with_timer(); + end +end + +function Rhaliq2Spawn(e) + eq.set_timer("depop", 600000); +end + +function Rhaliq2Timer(e) + eq.depop(); +end + +function Rhaliq2Say(e) + if ( e.message:findi("hail") and ClientCanFlag(e.other) and flags < FLAG_LIMIT ) then + + local qglobals = eq.get_qglobals(e.other); + local hasFlag = false; + if ( qglobals.hohtrials and qglobals.hohtrials:sub(2, 2) == "1" ) then + hasFlag = true; + end + + if ( not hasFlag ) then + local newGlobal = qglobals.hohtrials or "000"; + newGlobal = newGlobal:sub(1, 1).."1"..newGlobal:sub(3, 3); + eq.set_global("hohtrials", newGlobal, 5, "F"); + flags = flags + 1; + e.other:Message(0, "An ethereal mist descends from the air and surrounds your very being. Your body begins to emanate with the power of Rhaliq Trell."); + else + e.other:Message(0, "You have already received credit for completing this trial."); + end + end +end + +function CustodianDeathComplete(e) + + --if ( custodianId ~= e.self:GetID() ) then + if ( e.self:GetX() < 0 ) then + return; + end + + local client = e.killer:CastToClient(); + if ( not client.valid ) then + return; + end + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + + custodianId = 0; + StartEvent(); +end + +function CustodianTimer(e) + + if ( custodianId ~= e.self:GetID() ) then + return; + end + + if ( e.timer == "bounds" ) then + + if ( e.self:GetX() > 900 or e.self:GetX() < 350 ) then + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + e.self:WipeHateList(); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + end + + elseif ( e.timer == "depop" ) then + custodianId = 0; + eq.update_spawn_timer(RHALIQ_SPAWNID, 1000); + eq.depop(); + end +end + +function AttackerDeath(e) + attackersKilled = attackersKilled + 1; + if ( attackersKilled >= 12 ) then + attackersKilled = 0; + EventSuccess(); + end +end + +function AttackerSpawn(e) + eq.set_timer("depop", 72000); +end + +function AttackerTimer(e) + + if ( e.timer == "move" ) then + e.self:SetRunning(true); + e.self:MoveTo(math.random(625, 665), math.random(1350, 1400), -113, -1, true); + + elseif ( e.timer == "depop" ) then + FailEvent(); + eq.depop(); + end + eq.stop_timer(e.timer); +end + +function CustodianCombat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + eq.set_timer("bounds", 6000); + else + eq.resume_timer("depop"); + eq.stop_timer("bounds"); + end +end + +function AttackerCombat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function StartEvent() + for _, t in ipairs(VILLAGERS) do + eq.spawn2(t[1], 0, 0, t[2], t[3], -106, 64); + end + + local elist = eq.get_entity_list(); + + for _, id in ipairs(ROOM_SPAWNIDS) do + elist:GetSpawnByID(id):Disable(); + end + + local mob, z, h; + for i, t in ipairs(ATTACKERS) do + if ( i == 1 ) then + z = -64; -- Granmuck_Reiga spawns on stairs + else + z = -106; + end + mob = eq.spawn2(t[1], 0, 0, t[2], t[3], z, t[4]); + eq.set_timer("move", t[5] * 1000, mob); + end + + eq.debug("Villagers trial started"); +end + +function EnableSpawns() + for _, t in ipairs(VILLAGERS) do + eq.depop_all(t[1]); + end + + local elist = eq.get_entity_list(); + local spawn; + for _, id in ipairs(ROOM_SPAWNIDS) do + spawn = elist:GetSpawnByID(id) + eq.update_spawn_timer(id, 600000); + spawn:Enable(); + end +end + +function FailEvent() + if ( eventFailed ) then + return; + end + eventFailed = true; + + EnableSpawns(); + + local elist = eq.get_entity_list(); + local mob; + for _, t in ipairs(ATTACKERS) do + + mob = elist:GetNPCByNPCTypeID(t[1]); + if ( mob and mob.valid and mob:GetHP() > 0 ) then + mob:Depop(); + end + end + + eq.update_spawn_timer(RHALIQ_SPAWNID, 10800000); + eq.debug("Villagers trial failed"); +end + +function EventSuccess() + EnableSpawns(); + + eq.spawn2(RHALIQ2_TYPE, 0, 0, 456, 1374, -110.4, 65); + eq.debug("Villagers trial success"); +end + +function event_encounter_load(e) + + eq.register_npc_event("Villagers", Event.say, RHALIQ1_TYPE, Rhaliq1Say); + eq.register_npc_event("Villagers", Event.say, RHALIQ2_TYPE, Rhaliq2Say); + eq.register_npc_event("Villagers", Event.spawn, RHALIQ2_TYPE, Rhaliq2Spawn); + eq.register_npc_event("Villagers", Event.timer, RHALIQ2_TYPE, Rhaliq2Timer); + + eq.register_npc_event("Villagers", Event.death_complete, CUSTODIAN_TYPE, CustodianDeathComplete); + eq.register_npc_event("Villagers", Event.timer, CUSTODIAN_TYPE, CustodianTimer); + eq.register_npc_event("Villagers", Event.combat, CUSTODIAN_TYPE, CustodianCombat); + + for _, t in ipairs(ATTACKERS) do + eq.register_npc_event("Villagers", Event.death_complete, t[1], AttackerDeath); + eq.register_npc_event("Villagers", Event.timer, t[1], AttackerTimer); + eq.register_npc_event("Villagers", Event.spawn, t[1], AttackerSpawn); + eq.register_npc_event("Villagers", Event.combat, t[1], AttackerCombat); + end +end diff --git a/hohonora/player.lua b/hohonora/player.lua new file mode 100644 index 0000000..0401c50 --- /dev/null +++ b/hohonora/player.lua @@ -0,0 +1,19 @@ +function event_click_door(e) + local door_id = e.door:GetDoorID(); + + -- HoHB portals + if ( door_id == 19 or door_id == 20 ) then + + local qglobals = eq.get_qglobals(e.self); + + if ( qglobals.hohtrials and qglobals.hohtrials == "111" ) then + + if ( e.self:HasZoneFlag(220) == false ) then + e.self:SetZoneFlag(220); + end + else + e.self:Message(13, "You lack the will to pass through this portal safely."); + end + + end +end \ No newline at end of file diff --git a/hohonora/script_init.lua b/hohonora/script_init.lua new file mode 100644 index 0000000..01bfbf3 --- /dev/null +++ b/hohonora/script_init.lua @@ -0,0 +1,4 @@ +eq.load_encounter("IversonOrders"); +eq.load_encounter("Villagers"); +eq.load_encounter("Crazed"); +eq.load_encounter("RyddaDar"); diff --git a/hohonorb/A_Planar_Projection.lua b/hohonorb/A_Planar_Projection.lua new file mode 100644 index 0000000..f858681 --- /dev/null +++ b/hohonorb/A_Planar_Projection.lua @@ -0,0 +1,94 @@ +local FLAG_LIMIT = 72 * 2; + +local flags = 0; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + +function event_signal(e) + rid, gid, cid = nil, nil, nil; + local client = eq.get_entity_list():GetClientByID(e.signal); -- the signal # is the entity ID of a client with kill credit + + if ( client.valid ) then + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + end +end + +function event_spawn(e) + flags = 0; + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + + if ( e.message:findi("hail") and ClientCanFlag(e.other) and flags <= FLAG_LIMIT ) then + + if ( not qglobals.mmarr and not qglobals.cipher ) then + + if ( qglobals.hohtrials and qglobals.hohtrials == "111" ) then + e.other:Message(0, "The Planar Projection's thoughts enter your own. 'You have done well, now receive the knowledge that Mithaniel Marr once held!' You look down at your arms to see a set of unintelligible runes being burnt into your arms. The pain is terrible and searing. Suddenly the sensation is gone and the runes slowly fade. Also among your possessions you find a small tattered book as old as the ages. You recognize it as something that Maelin might be able to translate."); + eq.set_global("mmarr", "1", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + flags = flags + 1; + + if ( qglobals.cl_mmarr ) then + eq.delete_global("cl_mmarr"); + end + else + e.other:Message(0, "The Planar Projection's thoughts enter your own. 'You have done well, however you are not ready to understand the Knowledge gained for defeating Mithaniel Marr. Once you have learned more this knowledge will be revealed to you.'"); + eq.set_global("cl_mmarr", "1", 5, "F"); + e.other:Message(15, "You have received a new checklist flag!"); + flags = flags + 1; + end + end + + if ( not qglobals.zebuxoruk and not qglobals.mmarr_book ) then + + if ( qglobals.hohtrials and qglobals.hohtrials == "111" ) then + eq.set_global("mmarr_book", "1", 5, "F"); + flags = flags + 1; + + if ( qglobals.cl_mmarr_book ) then + eq.delete_global("cl_mmarr_book"); + end + else + eq.set_global("cl_mmarr_book", "1", 5, "F"); + flags = flags + 1; + end + end + end +end diff --git a/hohonorb/Edium,_Guardian_of_Marr.lua b/hohonorb/Edium,_Guardian_of_Marr.lua new file mode 100644 index 0000000..40db46a --- /dev/null +++ b/hohonorb/Edium,_Guardian_of_Marr.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.signal(220020, 2); -- Lord_Mithaniel_Marr +end + +function event_death_complete(e) + eq.signal(220020, 1); -- Lord_Mithaniel_Marr +end diff --git a/hohonorb/Halon_of_Marr.lua b/hohonorb/Halon_of_Marr.lua new file mode 100644 index 0000000..40db46a --- /dev/null +++ b/hohonorb/Halon_of_Marr.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.signal(220020, 2); -- Lord_Mithaniel_Marr +end + +function event_death_complete(e) + eq.signal(220020, 1); -- Lord_Mithaniel_Marr +end diff --git a/hohonorb/Lord_Mithaniel_Marr.lua b/hohonorb/Lord_Mithaniel_Marr.lua new file mode 100644 index 0000000..a0396d4 --- /dev/null +++ b/hohonorb/Lord_Mithaniel_Marr.lua @@ -0,0 +1,68 @@ +local PLANAR_PROJECTION_TYPE = 220025; + +local SPAWNIDS = { 367227, 366604, 367163 }; + +function event_death_complete(e) + eq.spawn2(PLANAR_PROJECTION_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + eq.signal(PLANAR_PROJECTION_TYPE, e.killer:GetID()); -- e.killer for death_complete is somebody with kill rights, not death blow +end + +function event_spawn(e) + local elist = eq.get_entity_list(); + + for _, id in ipairs(SPAWNIDS) do + elist:GetSpawnByID(id):SetTimer(1); + end +end + +function event_signal(e) + + if ( e.signal == 1 ) then + eq.set_timer("check", 3000); + + elseif ( e.signal == 2 ) then + e.self:SetBodyType(11, false); -- untargetable + e.self:SetSpecialAbility(24, 1); -- Will Not Aggro on + e.self:SetSpecialAbility(35, 1); -- No Harm from Players on + end +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("bounds", 5000); + else + eq.stop_timer("bounds"); + end +end + +function event_timer(e) + + if ( e.timer == "bounds" ) then + if ( e.self:GetX() < 2200 ) then + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + e.self:WipeHateList(); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + end + + elseif ( e.timer == "check" ) then + eq.stop_timer(e.timer); + + local npc; + local killed = 0; + local elist = eq.get_entity_list(); + + for _, id in ipairs(SPAWNIDS) do + + npc = elist:GetSpawnByID(id):GetNPC(); + if ( not npc or not npc.valid ) then + killed = killed + 1; + end + end + + if ( killed == 3 ) then + e.self:SetBodyType(1, false); -- make targetable + e.self:SetSpecialAbility(24, 0); -- Will Not Aggro off + e.self:SetSpecialAbility(35, 0); -- No Harm from Players off + end + end +end diff --git a/hohonorb/Ralthazor,_Champion_of_Marr.lua b/hohonorb/Ralthazor,_Champion_of_Marr.lua new file mode 100644 index 0000000..40db46a --- /dev/null +++ b/hohonorb/Ralthazor,_Champion_of_Marr.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.signal(220020, 2); -- Lord_Mithaniel_Marr +end + +function event_death_complete(e) + eq.signal(220020, 1); -- Lord_Mithaniel_Marr +end diff --git a/hole/#High_Scale_Kirn_.lua b/hole/#High_Scale_Kirn_.lua new file mode 100644 index 0000000..9663688 --- /dev/null +++ b/hole/#High_Scale_Kirn_.lua @@ -0,0 +1,15 @@ +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 700 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1671})) then --Part of Shaman Epic 1.0 + e.self:Emote("looks down at the icon in his hands for a long moment before speaking. 'Why did you bring me this? Are you here to accuse me of the queen's death?' High Scale Kirn chuckles venomously and continues, 'I am High Scale and beyond your petty laws. However, I wish the truth to be known. On my hand is a ring. If you can take it from me, show it to the queen and she will remember. However, I will not give up the ring easily. Defend yourself!"); + e.other:Faction(e.self,404,100); -- Faction: True Spirit + e.other:QuestReward(e.self,0,0,0,0,0,100000); + eq.spawn2(39083,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.depop_with_timer(); + end + local returned = item_lib.return_items(e.self, e.other, e.trade, false) + if ( returned ) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + end +end diff --git a/hole/Caradon.lua b/hole/Caradon.lua new file mode 100644 index 0000000..99ed459 --- /dev/null +++ b/hole/Caradon.lua @@ -0,0 +1,23 @@ +-- Part of SK Epic 1.0 +function event_say(e) + if(e.other:GetFactionValue(e.self) > -83) then + if(e.message:findi("Hail")) then + e.self:Say("Please help me get out of here! My companion, Kyrenna, and I are trapped in this hellish place!"); + elseif(e.message:findi("Who is Kyrenna")) then + e.self:Say("I was with Kyrenna when she attempted to revive the corpse of Glohnor the Valiant. Like fools, we rushed into a trap. Now we sit here and await our deaths."); + elseif(e.message:findi("Where is Kyrenna")) then + e.self:Say("She is close by. For a price, I shall tell you. Bring me the key to my freedom and I will betray her, who sentenced me to this fate."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFactionValue(e.self) > -83 and item_lib.check_turn_in(e.self, e.trade, {item1 = 14373},0)) then + e.self:Say("Kyrenna! We are free!"); + eq.spawn2(39155, 0, 0, -195.8, 426.6, -213.9, 115):AddToHateList(e.other,1); + e.other:Faction(e.self,404, 3); -- Faction: True Spirit + eq.attack(e.other:GetName()); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/hole/Ghost_of_Glohnor.lua b/hole/Ghost_of_Glohnor.lua new file mode 100644 index 0000000..566af9f --- /dev/null +++ b/hole/Ghost_of_Glohnor.lua @@ -0,0 +1,15 @@ +-- Part of SK Epic 1.0 +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14377})) then + eq.spawn2(39165, 0, 0, 464.4, 819, -678, 125); -- NPC: Mummy_of_Glohnor + e.other:Faction(e.self,404, 7); -- Faction: True Spirit + eq.depop_with_timer(); + end +end + +-- Quest by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/hole/Jaeil_the_Wretched.lua b/hole/Jaeil_the_Wretched.lua new file mode 100644 index 0000000..8528b7e --- /dev/null +++ b/hole/Jaeil_the_Wretched.lua @@ -0,0 +1,42 @@ +-- soulbound hammer - ranger epic + +function event_spawn(e) + eq.set_proximity(e.self:GetX() - 20, e.self:GetX() + 20, e.self:GetY() - 20, e.self:GetY() + 20); +end + +function event_enter(e) + eq.set_timer("chatter",10000); +end + +function event_exit(e) + eq.stop_timer("chatter"); +end + +function event_timer(e) + if(e.timer == "chatter") then + e.self:Emote("whimpers pathetically as his reflection catches his eye. He turns and stares pitifully at the ceiling."); + e.self:Emote("shields his eyes from his reflection in the water, occasionally gibbering as he scratches at a flapping, rotted patch of skin on his sunken face. In his arms he cradles something. He seems to emanate an aura of power."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 17860})) then + e.self:Emote("howls in anger, his body seeming to suck energy from the walls around him as he sees his reflection. He pulls a hammer from the bundle in his arms and swings fiercely at your head."); + eq.spawn2(39154,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.depop_with_timer(); + eq.stop_timer("chatter"); + eq.clear_proximity(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_death_complete(e) + eq.stop_timer("chatter"); + eq.clear_proximity(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/hole/Kejar_the_Mighty.lua b/hole/Kejar_the_Mighty.lua new file mode 100644 index 0000000..434710a --- /dev/null +++ b/hole/Kejar_the_Mighty.lua @@ -0,0 +1,21 @@ +function event_say(e)--need correct text for all parts + if(e.message:findi("hail")) then + e.self:Say("I do not have time to talk to you, I am looking for something that I [lost]"); + elseif(e.message:findi("lost")) then + e.self:Say("Yes, lost. I am missing my robes if you could bring them to me I would reward you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1360})) then + e.self:Say("You found it, I am so pleased! Here is your reward"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(8960, 8961),5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/hole/Polzin_Mrid.lua b/hole/Polzin_Mrid.lua new file mode 100644 index 0000000..93e6898 --- /dev/null +++ b/hole/Polzin_Mrid.lua @@ -0,0 +1,36 @@ +-- Test of Phanatsm - enchanter epic - start of quest +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Yes, young one?"); + elseif(e.message:findi("test of the phantasm")) then + e.self:Say("It will be simple, go collect these items and return them to me. Head of a serpent, essence of a ghost, essence of a vampire, and sands of the mystics. Do so and you will receive the last of the pieces. Be sure to combine them in a sack first. Just ask and I will provide you with one."); + elseif(e.message:findi("head of a serpent")) then + e.self:Say("Serpent is probably not an accurate term for what you must return to me. It is actaully the reminants of a spirit. The spirit is one which was erradicated long long ago by the Iksar. I believe they were called the Shissar. You may need to travel to the Iksar city to learn more about these creatures."); + elseif(e.message:findi("essence of a ghost")) then + e.self:Say("You don't have to look far to find roaming spirits. One in particular though has more meaning then the other sorry souls trapped here. You see, Kindle was a dear friend of mine. I came in search of him when he stopped writing. Well...look at me now. I fear that I have succumbed to the same fate as poor Kindle."); + elseif(e.message:findi("essence of a vampire")) then + e.self:Say("The essence of a vampire is just that. Only the most powerful of these creatures will possess what you need."); + elseif(e.message:findi("sands of the mystic")) then + e.self:Say("They are sands that were imbued with the magical might of the mystics. Mystics use a ritual involving their own blood to create a powerful bond with the sand. One will need to search the shores."); + elseif(e.message:findi("sack")) then + e.self:Say("Before I provide the item, you must show me that you have spoken to Jeb."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10604})) then -- Item: Jeb's Seal + e.self:Say("Jeb has spoken with you already, excellent. Tell me are you ready for the test of the phantasm?"); + e.other:QuestReward(e.self,{items = {17861,10604}}); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10638})) then + e.self:Say("You have done well, take this last piece and return them to Jeb. He will be able to complete the final crafting."); + e.other:Faction(e.self,404,100); -- Faction: True Spirit + e.other:QuestReward(e.self,0,0,0,0,10613,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/hollowshade/#Sergeant_Tylah.lua b/hollowshade/#Sergeant_Tylah.lua new file mode 100644 index 0000000..d00a014 --- /dev/null +++ b/hollowshade/#Sergeant_Tylah.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day to you " .. e.other:GetCleanName() .. ", would you happen to have any boiled rockhopper eggs for sale? I'm so very hungry and they're my favorite food."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3457,item2 = 3457,item3 = 3457,item4 = 3457}, 0)) then + e.self:Emote("devours all four of the eggs in the blink of an eye, 'Delicious! May the spirits bless you " .. e.other:GetCleanName() .. "! Here are a few acrylia flakes for your trouble. I'll be happy to pay for more should you find yourself with any extra!"); + e.other:QuestReward(e.self,0,0,0,0,3459); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/hollowshade/Ahom_Guzhin.lua b/hollowshade/Ahom_Guzhin.lua new file mode 100644 index 0000000..4a01080 --- /dev/null +++ b/hollowshade/Ahom_Guzhin.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Please do not think poorly of me, but I must see your Journeyman's Cloak if you wish to converse. Be quick about it. This place is not completely safe."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6267}, 0)) then + e.self:Say("Ah, there it is... I haven't seen one of those in a while. I remember when I first became a journeyman myself. That was many seasons and twice as many trails ago. Time becomes most deft in the period just after you figure that you've got a grasp on it."); + e.self:Say("Well, let us get back to pebbles and tax, shall we? You displayed a great deal of bravery in coming out here and looking for me. I fear my age is beginning to show. I can't evade danger as I did in my youth. With that in mind, I would like you to take this journal back to town for me. Historian Sharar will tend to my notes for me. She is a trusted friend and a valuable scholar. Please give it to her with my thanks."); + e.other:QuestReward(e.self,{items = {8466,6267}}); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 6159}, 0)) then + e.self:Say("Ah, there it is... I haven't seen one of those in a while. I remember when I first became a journeyman myself. That was many seasons and twice as many trails ago. Time becomes most deft in the period just after you figure that you've got a grasp on it."); + e.self:Say("Well, let us get back to pebbles and tax, shall we? You displayed a great deal of bravery in coming out here and looking for me. I fear my age is beginning to show. I can't evade danger as I did in my youth. With that in mind, I would like you to take this journal back to town for me. Historian Sharar will tend to my notes for me. She is a trusted friend and a valuable scholar. Please give it to her with my thanks."); + e.other:QuestReward(e.self,{items = {8466,6159}}); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 6222}, 0)) then + e.self:Say("Ah, there it is... I haven't seen one of those in a while. I remember when I first became a journeyman myself. That was many seasons and twice as many trails ago. Time becomes most deft in the period just after you figure that you've got a grasp on it."); + e.self:Say("Well, let us get back to pebbles and tax, shall we? You displayed a great deal of bravery in coming out here and looking for me. I fear my age is beginning to show. I can't evade danger as I did in my youth. With that in mind, I would like you to take this journal back to town for me. Historian Sharar will tend to my notes for me. She is a trusted friend and a valuable scholar. Please give it to her with my thanks."); + e.other:QuestReward(e.self,{items = {8466,6222}}); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 6184}, 0)) then + e.self:Say("Ah, there it is... I haven't seen one of those in a while. I remember when I first became a journeyman myself. That was many seasons and twice as many trails ago. Time becomes most deft in the period just after you figure that you've got a grasp on it."); + e.self:Say("Well, let us get back to pebbles and tax, shall we? You displayed a great deal of bravery in coming out here and looking for me. I fear my age is beginning to show. I can't evade danger as I did in my youth. With that in mind, I would like you to take this journal back to town for me. Historian Sharar will tend to my notes for me. She is a trusted friend and a valuable scholar. Please give it to her with my thanks."); + e.other:QuestReward(e.self,{items = {8466,6184}}); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 6275}, 0)) then + e.self:Say("Ah, there it is... I haven't seen one of those in a while. I remember when I first became a journeyman myself. That was many seasons and twice as many trails ago. Time becomes most deft in the period just after you figure that you've got a grasp on it."); + e.self:Say("Well, let us get back to pebbles and tax, shall we? You displayed a great deal of bravery in coming out here and looking for me. I fear my age is beginning to show. I can't evade danger as I did in my youth. With that in mind, I would like you to take this journal back to town for me. Historian Sharar will tend to my notes for me. She is a trusted friend and a valuable scholar. Please give it to her with my thanks."); + e.other:QuestReward(e.self,{items = {8466,6275}}); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/hollowshade/Gamali.lua b/hollowshade/Gamali.lua new file mode 100644 index 0000000..b91f206 --- /dev/null +++ b/hollowshade/Gamali.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("Glances up at you for a moment and then grunts and turns back toward the water."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local bottles = 0 + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 16598,item2 = 16598,item3 = 16598,item4 = 16598}, 0)) then + bottles = 4; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 16598,item2 = 16598,item3 = 16598}, 0)) then + bottles = 3; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 16598,item2 = 16598}, 0)) then + bottles = 2; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 16598}, 0)) then + bottles = 1; + end + + if(bottles > 0) then + repeat + e.self:Emote("leans over and fills the bottle with cool clear liquid. Gamali says, 'So Merchant Ahlam has you doing his errands now does he? Well, here's your water. I can assure you it's of good quality.' She turns away and begins staring out into the distance."); + e.other:QuestReward(e.self,0,0,0,0,31761); + bottles = bottles - 1; + until bottles == 0 + end + + bottles = 0; + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/hollowshade/Grim_Warning.lua b/hollowshade/Grim_Warning.lua new file mode 100644 index 0000000..2eb6c9a --- /dev/null +++ b/hollowshade/Grim_Warning.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.other:CastToClient():Message(0,"The air is thick with magic. Mystic murmuring and incantations emanate from the northwest outpost. The moor now lies in the dubious hands of the Grimlings, and those who tread here should be wary. Their motives are unclear, however the feeling that surrounds you is not one of welcome."); +end \ No newline at end of file diff --git a/hollowshade/Guard_Kliknaw.lua b/hollowshade/Guard_Kliknaw.lua new file mode 100644 index 0000000..f9e706c --- /dev/null +++ b/hollowshade/Guard_Kliknaw.lua @@ -0,0 +1,10 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6220}, 0)) then + e.self:Emote("yells, 'Head count! Head count time!' A moment later he says, 'I'm pretty sure that they're all here. Just take this back and act like your didn't just see that.' He winks and hands you the report."); + e.other:Faction(e.self,1513,1); + e.other:QuestReward(e.self,0,0,0,0,6221,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/hollowshade/Guard_Rawkkun.lua b/hollowshade/Guard_Rawkkun.lua new file mode 100644 index 0000000..f9e706c --- /dev/null +++ b/hollowshade/Guard_Rawkkun.lua @@ -0,0 +1,10 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6220}, 0)) then + e.self:Emote("yells, 'Head count! Head count time!' A moment later he says, 'I'm pretty sure that they're all here. Just take this back and act like your didn't just see that.' He winks and hands you the report."); + e.other:Faction(e.self,1513,1); + e.other:QuestReward(e.self,0,0,0,0,6221,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/hollowshade/Kerr_Tiparr.lua b/hollowshade/Kerr_Tiparr.lua new file mode 100644 index 0000000..879d710 --- /dev/null +++ b/hollowshade/Kerr_Tiparr.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to our humble outpost, traveler. Let me know if you see anything you need. I consider it an honor to sell here. I am doing my part to help Vah Shir in training stay in the field."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5566}, 0)) then + e.self:Say("Thanks " .. e.other:GetCleanName() .. "! That was delicious. Here is the empty bowl."); + e.other:QuestReward(e.self,0,0,0,0,5567); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/hollowshade/Owl_Warning.lua b/hollowshade/Owl_Warning.lua new file mode 100644 index 0000000..fc337c6 --- /dev/null +++ b/hollowshade/Owl_Warning.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.other:CastToClient():Message(0,"A shrill screech pierces the air. The sound of drums is conspicuously absent, and an unusual number of feathers float on the wind. Owlbears have seized control of the moor, and those who tread here should be wary."); +end \ No newline at end of file diff --git a/hollowshade/Rittuh_Purrik.lua b/hollowshade/Rittuh_Purrik.lua new file mode 100644 index 0000000..e60e70d --- /dev/null +++ b/hollowshade/Rittuh_Purrik.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ". Stock up on goods while you can in the relative safety of this outpost. When you are out in the field, you'll need every bit of protection you can afford. If you happen upon any Grimlings, spare them no mercy. My husband was tortured by grunts in the forest."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5573}, 0)) then + e.self:Say("Come to do some work, " .. e.other:GetCleanName() .. ". Looks like you need to gather some rockhopper tails. Take this backpack and fill it up"); -- need live text + e.other:QuestReward(e.self,0,0,0,0,17609); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5582}, 0)) then + e.self:Say("Well, look at you! You're quite the hunter. Not a bad job at all, young citizen. We can sure use a few more like you. I think a little padding of your daily report is in order considering the amount of work that you've done for us. Take this back to citizen Miann. She'll be pleased with you. I wrote it up pretty nice for you. Take care and good luck with your training."); + e.other:Faction(e.self,1513,1); + e.other:QuestReward(e.self,0,0,0,0,5577,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/hollowshade/Sonic_Warning.lua b/hollowshade/Sonic_Warning.lua new file mode 100644 index 0000000..05d12b7 --- /dev/null +++ b/hollowshade/Sonic_Warning.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.other:CastToClient():Message(0,"Eerie high-pitched howls pain your ears. They echo off the hills throughout all of Hollowshade. The sonic wolves have proven victorious and taken control of the moor. All those who tread here should be wary of crossing them."); +end \ No newline at end of file diff --git a/hollowshade/Tokk_Smippah.lua b/hollowshade/Tokk_Smippah.lua new file mode 100644 index 0000000..9d34d7b --- /dev/null +++ b/hollowshade/Tokk_Smippah.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Tokk, perhaps you've heard of me? I'd be out in the forest aiding in the war if it weren't for some nasty wounds I took from the grunts. I'm working here as a merchant until they heal, then it's back to the fray. I'll be back out there soon, perhaps we'll raid a grimling camp together."); + end +end diff --git a/hollowshade/Tolah_Rakknak.lua b/hollowshade/Tolah_Rakknak.lua new file mode 100644 index 0000000..1b08ea7 --- /dev/null +++ b/hollowshade/Tolah_Rakknak.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". You may call me Tolah. Please feel free to peruse my wares. I think you'll find my prices very fair considering the risk I take to bring them here. If not, you can always head into town for your shopping."); + end +end diff --git a/hollowshade/encounters/war.lua b/hollowshade/encounters/war.lua new file mode 100644 index 0000000..9076039 --- /dev/null +++ b/hollowshade/encounters/war.lua @@ -0,0 +1,864 @@ +local WarStart = 0; +local NPC_ID1 = 0; +local NPC_ID2 = 0; +local NPC_ID3 = 0; +local DefNPC_ID = 0; +local north = nil; +local east = nil; +local south = nil; + +function ScriptSpawn(e) + eq.set_timer("Reset",5000); +end + +function ScriptTimer(e) + if(e.timer == "Reset") then + eq.stop_timer("Reset"); + Reset(e); + elseif(e.timer == "OwlStart") then + eq.stop_timer("OwlStart"); + eq.set_timer("StartWar",720000); + eq.zone_emote(7,"Somewhere in the distance, the Owlbear sharpen their claws on boulders. The unsettling scraping noise spreads to every corner of the moor."); + eq.zone_emote(7,"In the south, the Grimlings nervously scurry about."); + OwlNPCID(e); + NorthAttackerSpawn(e); + GrimDefenderNPCID(e); + SouthDefendSpawn(e); + elseif(e.timer == "GrimStart") then + eq.stop_timer("GrimStart"); + eq.set_timer("StartWar",720000); + eq.zone_emote(7,"Hollowshade is abuzz with activity as the Grimlings make preparations to invade their enemy."); + eq.zone_emote(7,"The sonic wolves in the east seem disoriented."); + GrimNPCID(e); + SouthAttackerSpawn(e); + SonicDefenderNPCID(e); + EastDefendSpawn(e); + elseif(e.timer == "SonicStart") then + eq.stop_timer("SonicStart"); + eq.set_timer("StartWar",720000); + eq.zone_emote(7,"Frenzied howling fills the air, the sound taking on every aspect of an angry wail. The sonic wolves are mounting an offensive."); + eq.zone_emote(7,"Owlbear in the north frantically prepare for the assault."); + SonicNPCID(e); + EastAttackerSpawn(e); + OwlDefenderNPCID(e) + NorthDefendSpawn(e); + elseif(e.timer == "StartWar") then + local HollowshadeRand = math.random(100); + DespawnRemaining(e); + if(north == "owl" and east == "sonic" and south == "grim") then + eq.stop_timer("StartWar"); + WarStart = 0; + elseif((north == "owl" or east == "owl" or south == "owl") and (north == "sonic" or east == "sonic" or south == "sonic")) then + if(north == "owl" and east == "owl" and south == "sonic") then + if(HollowshadeRand > 50) then + eq.zone_emote(7,"Somewhere in the distance, the Owlbear sharpen their claws on boulders. The unsettling scraping noise spreads to every corner of the moor."); + eq.zone_emote(7,"The sonic wolves in the south seem disoriented."); + OwlNPCID(e); + NorthAttackerSpawn(e); + SonicDefenderNPCID(e); + SouthDefendSpawn(e); + else + eq.zone_emote(7,"Frenzied howling fills the air, the sound taking on every aspect of an angry wail. The sonic wolves are mounting an offensive."); + eq.zone_emote(7,"Their forces stretched thin due to occupying northern and eastern positions, the Owlbear find themselves unable to muster a defense to stave off the imminent attack."); + SonicNPCID(e); + SouthAttackerSpawn(e); + end + elseif(north == "owl" and east == "sonic" and south == "owl") then + if(HollowshadeRand > 50) then + eq.zone_emote(7,"Somewhere in the distance, the Owlbear sharpen their claws on boulders. The unsettling scraping noise spreads to every corner of the moor."); + eq.zone_emote(7,"The sonic wolves in the east seem disoriented."); + OwlNPCID(e); + SouthAttackerSpawn(e); + SonicDefenderNPCID(e); + EastDefendSpawn(e); + else + eq.zone_emote(7,"Frenzied howling fills the air, the sound taking on every aspect of an angry wail. The sonic wolves are mounting an offensive."); + eq.zone_emote(7,"Their forces stretched thin due to occupying northern and southern positions, the Owlbear find themselves unable to muster a defense to stave off the imminent attack."); + SonicNPCID(e); + EastAttackerSpawn(e); + end + elseif(north == "sonic" and east == "owl" and south == "owl") then + if(HollowshadeRand > 50) then + eq.zone_emote(7,"Somewhere in the distance, the Owlbear sharpen their claws on boulders. The unsettling scraping noise spreads to every corner of the moor."); + eq.zone_emote(7,"The sonic wolves in the north seem disoriented."); + OwlNPCID(e); + EastAttackerSpawn(e); + SonicDefenderNPCID(e); + NorthDefendSpawn(e); + else + eq.zone_emote(7,"Frenzied howling fills the air, the sound taking on every aspect of an angry wail. The sonic wolves are mounting an offensive."); + eq.zone_emote(7,"Their forces stretched thin due to occupying eastern and southern positions, the Owlbear find themselves unable to muster a defense to stave off the imminent attack."); + SonicNPCID(e); + NorthAttackerSpawn(e); + end + elseif(north == "sonic" and east == "sonic" and south == "owl") then + if(HollowshadeRand > 50) then + eq.zone_emote(7,"Frenzied howling fills the air, the sound taking on every aspect of an angry wail. The sonic wolves are mounting an offensive."); + eq.zone_emote(7,"Owlbear in the south frantically prepare for the assault."); + SonicNPCID(e); + NorthAttackerSpawn(e); + OwlDefenderNPCID(e) + SouthDefendSpawn(e); + else + eq.zone_emote(7,"Somewhere in the distance, the Owlbear sharpen their claws on boulders. The unsettling scraping noise spreads to every corner of the moor."); + eq.zone_emote(7,"Sonic wolves in the east howl in frustration. Their staunchest defenders will be unable to intercept the offensive in time."); + OwlNPCID(e); + SouthAttackerSpawn(e); + end + elseif(north == "sonic" and east == "owl" and south == "sonic") then + if(HollowshadeRand > 50) then + eq.zone_emote(7,"Frenzied howling fills the air, the sound taking on every aspect of an angry wail. The sonic wolves are mounting an offensive."); + eq.zone_emote(7,"Owlbear in the east frantically prepare for the assault."); + SonicNPCID(e); + SouthAttackerSpawn(e); + OwlDefenderNPCID(e) + EastDefendSpawn(e); + else + eq.zone_emote(7,"Somewhere in the distance, the Owlbear sharpen their claws on boulders. The unsettling scraping noise spreads to every corner of the moor."); + eq.zone_emote(7,"Sonic wolves in the north howl in frustration. Their staunchest defenders will be unable to intercept the offensive in time."); + OwlNPCID(e); + EastAttackerSpawn(e); + end + elseif(north == "owl" and east == "sonic" and south == "sonic") then + if(HollowshadeRand > 50) then + eq.zone_emote(7,"Frenzied howling fills the air, the sound taking on every aspect of an angry wail. The sonic wolves are mounting an offensive."); + eq.zone_emote(7,"Owlbear in the north frantically prepare for the assault."); + SonicNPCID(e); + EastAttackerSpawn(e); + OwlDefenderNPCID(e) + NorthDefendSpawn(e); + else + eq.zone_emote(7,"Somewhere in the distance, the Owlbear sharpen their claws on boulders. The unsettling scraping noise spreads to every corner of the moor."); + eq.zone_emote(7,"Sonic wolves in the south howl in frustration. Their staunchest defenders will be unable to intercept the offensive in time."); + OwlNPCID(e); + NorthAttackerSpawn(e); + end + end + elseif((north == "owl" or east == "owl" or south == "owl") and (north == "grim" or east == "grim" or south == "grim")) then + if(north == "owl" and east == "owl" and south == "grim") then + if(HollowshadeRand > 50) then + eq.zone_emote(7,"Somewhere in the distance, the Owlbear sharpen their claws on boulders. The unsettling scraping noise spreads to every corner of the moor."); + eq.zone_emote(7,"In the south, the Grimlings nervously scurry about."); + OwlNPCID(e); + NorthAttackerSpawn(e); + GrimDefenderNPCID(e); + SouthDefendSpawn(e); + else + eq.zone_emote(7,"Hollowshade is abuzz with activity as the Grimlings make preparations to invade their enemy."); + eq.zone_emote(7,"Their forces stretched thin due to occupying northern and eastern positions, the Owlbear find themselves unable to muster a defense to stave off the imminent attack."); + GrimNPCID(e); + SouthAttackerSpawn(e); + end + elseif(north == "owl" and east == "grim" and south == "owl") then + if(HollowshadeRand > 50) then + eq.zone_emote(7,"Somewhere in the distance, the Owlbear sharpen their claws on boulders. The unsettling scraping noise spreads to every corner of the moor."); + eq.zone_emote(7,"In the east, the Grimlings nervously scurry about."); + OwlNPCID(e); + SouthAttackerSpawn(e); + GrimDefenderNPCID(e); + EastDefendSpawn(e); + else + eq.zone_emote(7,"Hollowshade is abuzz with activity as the Grimlings make preparations to invade their enemy."); + eq.zone_emote(7,"Their forces stretched thin due to occupying northern and southern positions, the Owlbear find themselves unable to muster a defense to stave off the imminent attack."); + GrimNPCID(e); + EastAttackerSpawn(e); + end + elseif(north == "grim" and east == "owl" and south == "owl") then + if(HollowshadeRand > 50) then + eq.zone_emote(7,"Somewhere in the distance, the Owlbear sharpen their claws on boulders. The unsettling scraping noise spreads to every corner of the moor."); + eq.zone_emote(7,"In the north, the Grimlings nervously scurry about."); + OwlNPCID(e); + EastAttackerSpawn(e); + GrimDefenderNPCID(e); + NorthDefendSpawn(e); + else + eq.zone_emote(7,"Hollowshade is abuzz with activity as the Grimlings make preparations to invade their enemy."); + eq.zone_emote(7,"Their forces stretched thin due to occupying eastern and southern positions, the Owlbear find themselves unable to muster a defense to stave off the imminent attack."); + GrimNPCID(e); + NorthAttackerSpawn(e); + end + elseif(north == "grim" and east == "grim" and south == "owl") then + if(HollowshadeRand > 50) then + eq.zone_emote(7,"Hollowshade is abuzz with activity as the Grimlings make preparations to invade their enemy."); + eq.zone_emote(7,"Owlbear in the south frantically prepare for the assault."); + GrimNPCID(e); + NorthAttackerSpawn(e); + OwlDefenderNPCID(e) + SouthDefendSpawn(e); + else + eq.zone_emote(7,"Somewhere in the distance, the Owlbear sharpen their claws on boulders. The unsettling scraping noise spreads to every corner of the moor."); + eq.zone_emote(7,"The Grimlings brace themselves for an inevitable defeat and chant prayers for outside assistance. Their undefended eastern position will surely fall if unaided."); + OwlNPCID(e); + SouthAttackerSpawn(e); + end + elseif(north == "grim" and east == "owl" and south == "grim") then + if(HollowshadeRand > 50) then + eq.zone_emote(7,"Hollowshade is abuzz with activity as the Grimlings make preparations to invade their enemy."); + eq.zone_emote(7,"Owlbear in the east frantically prepare for the assault."); + GrimNPCID(e); + SouthAttackerSpawn(e); + OwlDefenderNPCID(e) + EastDefendSpawn(e); + else + eq.zone_emote(7,"Somewhere in the distance, the Owlbear sharpen their claws on boulders. The unsettling scraping noise spreads to every corner of the moor."); + eq.zone_emote(7,"The Grimlings brace themselves for an inevitable defeat and chant prayers for outside assistance. Their undefended northern position will surely fall if unaided."); + OwlNPCID(e); + EastAttackerSpawn(e); + end + elseif(north == "owl" and east == "grim" and south == "grim") then + if(HollowshadeRand > 50) then + eq.zone_emote(7,"Hollowshade is abuzz with activity as the Grimlings make preparations to invade their enemy."); + eq.zone_emote(7,"Owlbear in the north frantically prepare for the assault."); + GrimNPCID(e); + EastAttackerSpawn(e); + OwlDefenderNPCID(e) + NorthDefendSpawn(e); + else + eq.zone_emote(7,"Somewhere in the distance, the Owlbear sharpen their claws on boulders. The unsettling scraping noise spreads to every corner of the moor."); + eq.zone_emote(7,"The Grimlings brace themselves for an inevitable defeat and chant prayers for outside assistance. Their undefended southern position will surely fall if unaided."); + OwlNPCID(e); + NorthAttackerSpawn(e); + end + end + elseif((north == "sonic" or east == "sonic" or south == "sonic") and (north == "grim" or east == "grim" or south == "grim")) then + if(north == "sonic" and east == "sonic" and south == "grim") then + if(HollowshadeRand > 50) then + eq.zone_emote(7,"Frenzied howling fills the air, the sound taking on every aspect of an angry wail. The sonic wolves are mounting an offensive."); + eq.zone_emote(7,"In the south, the Grimlings nervously scurry about."); + SonicNPCID(e); + NorthAttackerSpawn(e); + GrimDefenderNPCID(e); + SouthDefendSpawn(e); + else + eq.zone_emote(7,"Hollowshade is abuzz with activity as the Grimlings make preparations to invade their enemy."); + eq.zone_emote(7,"Sonic wolves in the east howl in frustration. Their staunchest defenders will be unable to intercept the offensive in time."); + GrimNPCID(e); + SouthAttackerSpawn(e); + end + elseif(north == "sonic" and east == "grim" and south == "sonic") then + if(HollowshadeRand > 50) then + eq.zone_emote(7,"Frenzied howling fills the air, the sound taking on every aspect of an angry wail. The sonic wolves are mounting an offensive."); + eq.zone_emote(7,"In the east, the Grimlings nervously scurry about."); + SonicNPCID(e); + SouthAttackerSpawn(e); + GrimDefenderNPCID(e); + EastDefendSpawn(e); + else + eq.zone_emote(7,"Hollowshade is abuzz with activity as the Grimlings make preparations to invade their enemy."); + eq.zone_emote(7,"Sonic wolves in the north howl in frustration. Their staunchest defenders will be unable to intercept the offensive in time."); + GrimNPCID(e); + EastAttackerSpawn(e); + end + elseif(north == "grim" and east == "sonic" and south == "sonic") then + if(HollowshadeRand > 50) then + eq.zone_emote(7,"Frenzied howling fills the air, the sound taking on every aspect of an angry wail. The sonic wolves are mounting an offensive."); + eq.zone_emote(7,"In the north, the Grimlings nervously scurry about."); + SonicNPCID(e); + EastAttackerSpawn(e); + GrimDefenderNPCID(e); + NorthDefendSpawn(e); + else + eq.zone_emote(7,"Hollowshade is abuzz with activity as the Grimlings make preparations to invade their enemy."); + eq.zone_emote(7,"Sonic wolves in the south howl in frustration. Their staunchest defenders will be unable to intercept the offensive in time."); + GrimNPCID(e); + NorthAttackerSpawn(e); + end + elseif(north == "grim" and east == "grim" and south == "sonic") then + if(HollowshadeRand > 50) then + eq.zone_emote(7,"Hollowshade is abuzz with activity as the Grimlings make preparations to invade their enemy."); + eq.zone_emote(7,"The sonic wolves in the south seem disoriented."); + GrimNPCID(e); + NorthAttackerSpawn(e); + SonicDefenderNPCID(e); + SouthDefendSpawn(e); + else + eq.zone_emote(7,"Frenzied howling fills the air, the sound taking on every aspect of an angry wail. The sonic wolves are mounting an offensive."); + eq.zone_emote(7,"The Grimlings brace themselves for an inevitable defeat and chant prayers for outside assistance. Their undefended eastern position will surely fall if unaided."); + SonicNPCID(e); + SouthAttackerSpawn(e); + end + elseif(north == "grim" and east == "sonic" and south == "grim") then + if(HollowshadeRand > 50) then + eq.zone_emote(7,"Hollowshade is abuzz with activity as the Grimlings make preparations to invade their enemy."); + eq.zone_emote(7,"The sonic wolves in the east seem disoriented."); + GrimNPCID(e); + SouthAttackerSpawn(e); + SonicDefenderNPCID(e); + EastDefendSpawn(e); + else + eq.zone_emote(7,"Frenzied howling fills the air, the sound taking on every aspect of an angry wail. The sonic wolves are mounting an offensive."); + eq.zone_emote(7,"The Grimlings brace themselves for an inevitable defeat and chant prayers for outside assistance. Their undefended northern position will surely fall if unaided."); + SonicNPCID(e); + EastAttackerSpawn(e); + end + elseif(north == "sonic" and east == "grim" and south == "grim") then + if(HollowshadeRand > 50) then + eq.zone_emote(7,"Hollowshade is abuzz with activity as the Grimlings make preparations to invade their enemy."); + eq.zone_emote(7,"The sonic wolves in the north seem disoriented."); + GrimNPCID(e); + EastAttackerSpawn(e); + SonicDefenderNPCID(e); + NorthDefendSpawn(e); + else + eq.zone_emote(7,"Frenzied howling fills the air, the sound taking on every aspect of an angry wail. The sonic wolves are mounting an offensive."); + eq.zone_emote(7,"The Grimlings brace themselves for an inevitable defeat and chant prayers for outside assistance. Their undefended southern position will surely fall if unaided."); + SonicNPCID(e); + NorthAttackerSpawn(e); + end + end + end + elseif(e.timer == "victory") then + eq.stop_timer("StartWar"); + eq.stop_timer("victory"); + eq.set_timer("GuardPostCond",90000); + if(north == "owl" and east == "owl" and south == "owl") then + eq.zone_emote(7,"The moor is shaken by the piercing screech of the mother owlbear, Skriat`Chakku!"); + eq.spawn_condition("hollowshade",6,1); + eq.get_entity_list():GetMobByNpcTypeID(166028):Shout("Guards, merchants, we cannot win this battle! Grab what you can carry and retreat back to Shar Vahl! Hurry!"); + GuardPostLeave(e); + elseif(north == "sonic" and east == "sonic" and south == "sonic") then + eq.zone_emote(7,"The eerie howls of triumphant wolves emanate from every corner of the moor. The howling rises and fall in chorus, as if calling someone yet unseen."); + eq.spawn_condition("hollowshade",5,1); + eq.get_entity_list():GetMobByNpcTypeID(166028):Shout("The wolves are upon us! Grab what you can carry and retreat back to Shar Vahl!"); + GuardPostLeave(e); + elseif(north == "grim" and east == "grim" and south == "grim") then + eq.zone_emote(7,"The Grimling Chieftain shouts, 'All shall bear witness to the power of our master! We are the rightful heirs to this world and everything that lies upon it. Bow down before us or die!'"); + eq.spawn_condition("hollowshade",7,1); + eq.zone_emote(7,"The Grimling Chieftain shouts, 'I call upon you, Prince! The swamplands have been cleansed and await your presence. Fill us with your strength and power!'"); + GuardPostLeave(e); + end + elseif(e.timer == "GuardPostCond") then + eq.stop_timer("GuardPostCond"); + eq.spawn_condition("hollowshade",1,0); + end +end + +function ScriptSignal(e) + if(e.signal == 1) then + eq.set_timer("OwlStart",5000); + elseif(e.signal == 2) then + eq.set_timer("GrimStart",5000); + elseif(e.signal == 3) then + eq.set_timer("SonicStart",5000); + elseif(e.signal == 4) then + eq.set_timer("victory",15000); + elseif(e.signal == 5) then + eq.set_timer("Reset",10000); + eq.stop_timer("GuardPostCond"); + end +end + +function DespawnRemaining(e) + eq.depop_all(166058); -- a_sonic_wolf_fiend + eq.depop_all(166055); -- a_grimling_invader + eq.depop_all(166056); -- a_grimling_invader + eq.depop_all(166057); -- a_grimling_invader + eq.depop_all(166046); -- a_furious_owlbear + eq.depop_all(166053); -- an_owlbear_defender + eq.depop_all(166054); -- a_grimling_defender + eq.depop_all(166015); -- a_sonic_defender +end + +function Reset(e) + eq.spawn_condition("hollowshade",1,0); + eq.spawn_condition("hollowshade",1,1); + eq.spawn_condition("hollowshade",2,1); + eq.spawn_condition("hollowshade",3,1); + eq.spawn_condition("hollowshade",4,1); + eq.spawn_condition("hollowshade",5,0); + eq.spawn_condition("hollowshade",6,0); + eq.spawn_condition("hollowshade",7,0); + eq.spawn_condition("hollowshade",8,0); + eq.spawn_condition("hollowshade",9,0); + eq.spawn_condition("hollowshade",10,0); + eq.spawn_condition("hollowshade",11,0); + eq.spawn_condition("hollowshade",12,0); + eq.spawn_condition("hollowshade",13,0); + WarStart = 0; + north = "owl"; + east = "sonic"; + south = "grim"; +end + +function chieftainDeath(e) + if(WarStart == 0) then + WarStart = 1; + eq.signal(166232,1); + end +end + +function SonicPackDeath(e) + if(WarStart == 0) then + WarStart = 1; + eq.signal(166232,2); + end +end + +function SonicGhowlikDeath(e) + if(WarStart == 0) then + WarStart = 1; + eq.signal(166232,2); + end +end + +function OwlChaDeath(e) + if(WarStart == 0) then + WarStart = 1; + eq.signal(166232,3); + end +end + +function OwlChuDeath(e) + if(WarStart == 0) then + WarStart = 1; + eq.signal(166232,3); + end +end + +function OwlDenDeath(e) + if(WarStart == 0) then + WarStart = 1; + eq.signal(166232,3); + end +end + +function OwlNPCID(e) + NPC_ID1 = 166046; + NPC_ID2 = 166046; + NPC_ID3 = 166046; +end + +function SonicNPCID(e) + NPC_ID1 = 166058; + NPC_ID2 = 166058; + NPC_ID3 = 166058; +end + +function GrimNPCID(e) + NPC_ID1 = 166057; + NPC_ID2 = 166056; + NPC_ID3 = 166055; +end + +function OwlDefenderNPCID(e) + DefNPC_ID = 166053; +end + +function SonicDefenderNPCID(e) + DefNPC_ID = 166015; +end + +function GrimDefenderNPCID(e) + DefNPC_ID = 166054; +end + +function NorthDefendSpawn(e) + eq.spawn2(DefNPC_ID,0,0,1157,2171,165,170); + eq.spawn2(DefNPC_ID,0,0,1137,2151,165,170); + eq.spawn2(DefNPC_ID,0,0,1145,2132,165,170); +end + +function EastDefendSpawn(e) + eq.spawn2(DefNPC_ID,0,0,-2718,536,55,72); + eq.spawn2(DefNPC_ID,0,0,-2716,551,55,72); + eq.spawn2(DefNPC_ID,0,0,-2720,568,55,72); +end + +function SouthDefendSpawn(e) + eq.spawn2(DefNPC_ID,0,0,-618,-2763,59,0); + eq.spawn2(DefNPC_ID,0,0,-621,-2771,60,0); + eq.spawn2(DefNPC_ID,0,0,-605,-2760,59,0); + eq.spawn2(DefNPC_ID,0,0,-627,-2764,58,0); + eq.spawn2(DefNPC_ID,0,0,-609,-2767,61,0); +end + + +function NorthAttackerSpawn(e) + eq.spawn2(NPC_ID1,73,0,1390,2160,165,0); + eq.spawn2(NPC_ID2,73,0,1417,2164,160,0); + eq.spawn2(NPC_ID2,73,0,1429,2167,155,0); + eq.spawn2(NPC_ID3,73,0,1444,2170,155,0); + eq.spawn2(NPC_ID3,73,0,1463,2175,150,0); +end + +function EastAttackerSpawn(e) + eq.spawn2(NPC_ID1,72,0,-2918,541,60,0); + eq.spawn2(NPC_ID2,72,0,-2898,542,60,0); + eq.spawn2(NPC_ID2,72,0,-2875,544,60,0); + eq.spawn2(NPC_ID3,72,0,-2857,546,60,0); + eq.spawn2(NPC_ID3,72,0,-2839,548,60,0); +end + +function SouthAttackerSpawn(e) + eq.spawn2(NPC_ID1,71,0,-1714,-1776,-122,0); + eq.spawn2(NPC_ID2,71,0,-1702,-1767,-118,0); + eq.spawn2(NPC_ID2,71,0,-1687,-1763,-114,0); + eq.spawn2(NPC_ID3,71,0,-1652,-1751,-117,0); + eq.spawn2(NPC_ID3,71,0,-1640,-1720,-120,0); +end + +function GuardPostLeave(e) + eq.rain(1); + local Sergeant = eq.get_entity_list():GetMobByNpcTypeID(166028); + if(Sergeant.valid) then + Sergeant:SetRunning(true); + Sergeant:CastToNPC():AssignWaypoints(74); + end + local Kliknaw = eq.get_entity_list():GetMobByNpcTypeID(166078); + if(Kliknaw.valid) then + Kliknaw:SetRunning(true); + Kliknaw:CastToNPC():AssignWaypoints(75); + end + local Kreethaw = eq.get_entity_list():GetMobByNpcTypeID(166076); + if(Kreethaw.valid) then + Kreethaw:SetRunning(true); + Kreethaw:CastToNPC():AssignWaypoints(81); + end + local Rawkkun = eq.get_entity_list():GetMobByNpcTypeID(166079); + if(Rawkkun.valid) then + Rawkkun:SetRunning(true); + Rawkkun:CastToNPC():AssignWaypoints(76); + end + local Skurr = eq.get_entity_list():GetMobByNpcTypeID(166077); + if(Skurr.valid) then + Skurr:SetRunning(true); + Skurr:CastToNPC():AssignWaypoints(82); + end + local Kerr = eq.get_entity_list():GetMobByNpcTypeID(166083); + if(Kerr.valid) then + Kerr:SetRunning(true); + Kerr:CastToNPC():AssignWaypoints(79); + end + local Rittuh = eq.get_entity_list():GetMobByNpcTypeID(166081); + if(Rittuh.valid) then + Rittuh:SetRunning(true); + Rittuh:CastToNPC():AssignWaypoints(78); + end + local Tokk = eq.get_entity_list():GetMobByNpcTypeID(166082); + if(Tokk.valid) then + Tokk:SetRunning(true); + Tokk:CastToNPC():AssignWaypoints(77); + end + local Tolah = eq.get_entity_list():GetMobByNpcTypeID(166084); + if(Tolah.valid) then + Tolah:SetRunning(true); + Tolah:CastToNPC():AssignWaypoints(80); + end +end + +function OwlWaypoint(e) + if(e.self:GetGrid() == 71 and e.wp == 5) then + eq.spawn_condition("hollowshade",3,0); + eq.spawn_condition("hollowshade",11,0); + eq.spawn_condition("hollowshade",10,1); + east = "owl"; + eq.zone_emote(7,"Your ears are filled with the screeches of the Owlbear as they lay claim to the swampland in the east."); + if(north == "owl" and east == "owl" and south == "owl") then + eq.signal(166232,4); + end + eq.depop_all(166046); + eq.depop(); + elseif(e.self:GetGrid() == 72 and e.wp == 11) then + eq.spawn_condition("hollowshade",8,0); + eq.spawn_condition("hollowshade",9,0); + eq.spawn_condition("hollowshade",2,1); + north = "owl"; + eq.zone_emote(7,"The Owlbear screech in delight, having recovered their cavernous home in the north."); + if(north == "owl" and east == "owl" and south == "owl") then + eq.signal(166232,4); + end + eq.depop_all(166046); + eq.depop(); + elseif(e.self:GetGrid() == 73 and e.wp == 20) then + eq.spawn_condition("hollowshade",4,0); + eq.spawn_condition("hollowshade",13,0); + eq.spawn_condition("hollowshade",12,1); + south = "owl"; + eq.zone_emote(7,"The Owlbear chase off any remaining survivors as they lay claim to the southern shores."); + if(north == "owl" and east == "owl" and south == "owl") then + eq.signal(166232,4); + end + eq.depop_all(166046); + eq.depop(); + end +end + +function SonicWaypoint(e) + if(e.self:GetGrid() == 71 and e.wp == 5) then + eq.spawn_condition("hollowshade",10,0); + eq.spawn_condition("hollowshade",11,0); + eq.spawn_condition("hollowshade",3,1); + east = "sonic"; + eq.zone_emote(7,"Sonic wolves howl together in unison, delighted that they have recovered their cavern home in the east."); + if(north == "sonic" and east == "sonic" and south == "sonic") then + eq.signal(166232,4); + end + eq.depop_all(166058); + eq.depop(); + elseif(e.self:GetGrid() == 72 and e.wp == 11) then + eq.spawn_condition("hollowshade",2,0); + eq.spawn_condition("hollowshade",9,0); + eq.spawn_condition("hollowshade",8,1); + north = "sonic"; + eq.zone_emote(7,"Sonic wolves howl in celebration, having overrun the inhabitants of the northern caves."); + if(north == "sonic" and east == "sonic" and south == "sonic") then + eq.signal(166232,4); + end + eq.depop_all(166058); + eq.depop(); + elseif(e.self:GetGrid() == 73 and e.wp == 20) then + eq.spawn_condition("hollowshade",4,0); + eq.spawn_condition("hollowshade",12,0); + eq.spawn_condition("hollowshade",13,1); + south = "sonic"; + eq.zone_emote(7,"Sonic wolves hunt down the few remaining survivors as they claim the southern shores for themselves."); + if(north == "sonic" and east == "sonic" and south == "sonic") then + eq.signal(166232,4); + end + eq.depop_all(166058); + eq.depop(); + end +end + +function Grim1Waypoint(e) + if(e.self:GetGrid() == 71 and e.wp == 5) then + eq.spawn_condition("hollowshade",10,0); + eq.spawn_condition("hollowshade",3,0); + eq.spawn_condition("hollowshade",11,1); + east = "grim"; + eq.zone_emote(7,"From the east, sounds of the Grimling victory celebration echo across the swamp."); + if(north == "grim" and east == "grim" and south == "grim") then + eq.signal(166232,4); + end + eq.depop_all(166056); + eq.depop_all(166057); + eq.depop_all(166055); + eq.depop(); + elseif(e.self:GetGrid() == 72 and e.wp == 11) then + eq.spawn_condition("hollowshade",2,0); + eq.spawn_condition("hollowshade",8,0); + eq.spawn_condition("hollowshade",9,1); + north = "grim"; + eq.zone_emote(7,"In the north resounds an excited chattering of Grimlings as they take over the network of caves for their own."); + if(north == "grim" and east == "grim" and south == "grim") then + eq.signal(166232,4); + end + eq.depop_all(166056); + eq.depop_all(166057); + eq.depop_all(166055); + eq.depop(); + elseif(e.self:GetGrid() == 73 and e.wp == 20) then + eq.spawn_condition("hollowshade",13,0); + eq.spawn_condition("hollowshade",12,0); + eq.spawn_condition("hollowshade",4,1); + south = "grim"; + eq.zone_emote(7,"The Grimlings on the southern shores begin hosting a celebration, elated at having reclaimed their ancestral home."); + if(north == "grim" and east == "grim" and south == "grim") then + eq.signal(166232,4); + end + eq.depop_all(166056); + eq.depop_all(166057); + eq.depop_all(166055); + eq.depop(); + end +end + +function Grim2Waypoint(e) + if(e.self:GetGrid() == 71 and e.wp == 5) then + eq.spawn_condition("hollowshade",10,0); + eq.spawn_condition("hollowshade",3,0); + eq.spawn_condition("hollowshade",11,1); + east = "grim"; + eq.zone_emote(7,"From the east, sounds of the Grimling victory celebration echo across the swamp."); + if(north == "grim" and east == "grim" and south == "grim") then + eq.signal(166232,4); + end + eq.depop_all(166057); + eq.depop_all(166055); + eq.depop_all(166056); + eq.depop(); + elseif(e.self:GetGrid() == 72 and e.wp == 11) then + eq.spawn_condition("hollowshade",2,0); + eq.spawn_condition("hollowshade",8,0); + eq.spawn_condition("hollowshade",9,1); + north = "grim"; + eq.zone_emote(7,"In the north resounds an excited chattering of Grimlings as they take over the network of caves for their own."); + if(north == "grim" and east == "grim" and south == "grim") then + eq.signal(166232,4); + end + eq.depop_all(166057); + eq.depop_all(166055); + eq.depop_all(166056); + eq.depop(); + elseif(e.self:GetGrid() == 73 and e.wp == 20) then + eq.spawn_condition("hollowshade",13,0); + eq.spawn_condition("hollowshade",12,0); + eq.spawn_condition("hollowshade",4,1); + south = "grim"; + eq.zone_emote(7,"The Grimlings on the southern shores begin hosting a celebration, elated at having reclaimed their ancestral home."); + if(north == "grim" and east == "grim" and south == "grim") then + eq.signal(166232,4); + end + eq.depop_all(166057); + eq.depop_all(166055); + eq.depop_all(166056); + eq.depop(); + end +end + +function Grim3Waypoint(e) + if(e.self:GetGrid() == 71 and e.wp == 5) then + eq.spawn_condition("hollowshade",10,0); + eq.spawn_condition("hollowshade",3,0); + eq.spawn_condition("hollowshade",11,1); + east = "grim"; + eq.zone_emote(7,"From the east, sounds of the Grimling victory celebration echo across the swamp."); + if(north == "grim" and east == "grim" and south == "grim") then + eq.signal(166232,4); + end + eq.depop_all(166055); + eq.depop_all(166056); + eq.depop_all(166057); + eq.depop(); + elseif(e.self:GetGrid() == 72 and e.wp == 11) then + eq.spawn_condition("hollowshade",2,0); + eq.spawn_condition("hollowshade",8,0); + eq.spawn_condition("hollowshade",9,1); + north = "grim"; + eq.zone_emote(7,"In the north resounds an excited chattering of Grimlings as they take over the network of caves for their own."); + if(north == "grim" and east == "grim" and south == "grim") then + eq.signal(166232,4); + end + eq.depop_all(166055); + eq.depop_all(166056); + eq.depop_all(166057); + eq.depop(); + elseif(e.self:GetGrid() == 73 and e.wp == 20) then + eq.spawn_condition("hollowshade",13,0); + eq.spawn_condition("hollowshade",12,0); + eq.spawn_condition("hollowshade",4,1); + south = "grim"; + eq.zone_emote(7,"The Grimlings on the southern shores begin hosting a celebration, elated at having reclaimed their ancestral home."); + if(north == "grim" and east == "grim" and south == "grim") then + eq.signal(166232,4); + end + eq.depop_all(166055); + eq.depop_all(166056); + eq.depop_all(166057); + eq.depop(); + end +end + +function GarzemortDeath(e) + eq.zone_emote(7,"A heavy silence descends upon the moor as Garzemort stills in death. One by one the sonic wolves and owlbears return to their homes, leaving an uneasy peace upon the land. Small grimling hands lift the prince's body in the air and carry him into the caves to seek resurrection from their Master."); + eq.signal(166232,5); +end +function GnarlickDeath(e) + eq.zone_emote(7,"A howl echoes through the land as Gnarlick's blood seeps into the ground. The owlbears and grimlings take back their homes in respectful silence, bringing balance back to the swamplands. The wolves keen and howl as a powerful wolf successor steps forward to feed upon their former leader."); + eq.signal(166232,5); +end +function ChakkuDeath(e) + eq.zone_emote(7,"Skriat`Chakku collapses in a pile of feathers, defeated. The Grimling and sonic wolves reclaim their homes, bringing balance back to the swamplands. Fortunately for the Owlbear, their great denmother left an heir."); + eq.signal(166232,5); +end + +function OwlDefSpawn(e) + local client_list = eq.get_entity_list():GetClientList(); + if(client_list ~= nil) then + eq.set_timer("depop",600000); + else + eq.set_timer("depop",60000); + end +end + +function OwlDefTimer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +function OwlDefCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function SonicDefSpawn(e) + local client_list =eq.get_entity_list():GetClientList(); + if(client_list ~= nil) then + eq.set_timer("depop",600000); + else + eq.set_timer("depop",60000); + end +end + +function SonicDefTimer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +function SonicDefCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function GrimDefSpawn(e) + local client_list = eq.get_entity_list():GetClientList(); + if(client_list ~= nil) then + eq.set_timer("depop",600000); + else + eq.set_timer("depop",60000); + end +end + +function GrimDefTimer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +function GrimDefCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("war", Event.spawn, 166053, OwlDefSpawn); + eq.register_npc_event("war", Event.timer, 166053, OwlDefTimer); + eq.register_npc_event("war", Event.combat, 166053, OwlDefCombat); + eq.register_npc_event("war", Event.spawn, 166015, SonicDefSpawn); + eq.register_npc_event("war", Event.timer, 166015, SonicDefTimer); + eq.register_npc_event("war", Event.combat, 166015, SonicDefCombat); + eq.register_npc_event("war", Event.spawn, 166054, GrimDefSpawn); + eq.register_npc_event("war", Event.timer, 166054, GrimDefTimer); + eq.register_npc_event("war", Event.combat, 166054, GrimDefCombat); + eq.register_npc_event("war", Event.death, 166051, GarzemortDeath); + eq.register_npc_event("war", Event.death, 166045, GnarlickDeath); + eq.register_npc_event("war", Event.death, 166059, ChakkuDeath); + eq.register_npc_event("war", Event.waypoint_arrive, 166055, Grim1Waypoint); + eq.register_npc_event("war", Event.waypoint_arrive, 166056, Grim2Waypoint); + eq.register_npc_event("war", Event.waypoint_arrive, 166057, Grim3Waypoint); + eq.register_npc_event("war", Event.waypoint_arrive, 166046, OwlWaypoint); + eq.register_npc_event("war", Event.waypoint_arrive, 166058, SonicWaypoint); + eq.register_npc_event("war", Event.death, 166259, chieftainDeath); + eq.register_npc_event("war", Event.death, 166151, SonicPackDeath); + eq.register_npc_event("war", Event.death, 166008, SonicGhowlikDeath); + eq.register_npc_event("war", Event.death, 166011, OwlChaDeath); + eq.register_npc_event("war", Event.death, 166009, OwlChuDeath); + eq.register_npc_event("war", Event.death, 166152, OwlDenDeath); + eq.register_npc_event("war", Event.spawn, 166232, ScriptSpawn); + eq.register_npc_event("war", Event.timer, 166232, ScriptTimer); + eq.register_npc_event("war", Event.signal, 166232, ScriptSignal); +end \ No newline at end of file diff --git a/hollowshade/script_init.lua b/hollowshade/script_init.lua new file mode 100644 index 0000000..2ea66c0 --- /dev/null +++ b/hollowshade/script_init.lua @@ -0,0 +1 @@ +eq.load_encounter("war"); diff --git a/iceclad/#General_Bragmur.lua b/iceclad/#General_Bragmur.lua new file mode 100644 index 0000000..f23640b --- /dev/null +++ b/iceclad/#General_Bragmur.lua @@ -0,0 +1,10 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 8897}, 0)) then + e.self:Say("The final orders, follow me closely! I pray that the Kromrif have not learned of our plans to allign with the gnomes."); + eq.spawn2(110019,64,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/iceclad/#Snowfang_fisher.lua b/iceclad/#Snowfang_fisher.lua new file mode 100644 index 0000000..6b126e1 --- /dev/null +++ b/iceclad/#Snowfang_fisher.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Furless one wants something with snowfang? You here to help with curse?"); + elseif(e.message:findi("curse")) then + e.self:Emote("growls as the other fisher-gnolls bark at the mention of the curse. 'Some days ago we found flat, strong, stretchy thing. Many scribbles, many marks on it. Ever since fish not come to us... Rest of the snowfang think this is bad magic. To not believe this is foolish. But I not able to just get rid of bad magic.'"); + elseif(e.message:findi("bad magic")) then + e.self:Say("To cast away is not something we can do. Snowfang believe bad magic thrown away just make worse magic. Only way to get rid of badness is for friend to bring gift offering. Offering that means much to snowfang. If that is done magic is broken by the giving."); + elseif(e.message:findi("offering")) then + e.self:Say("Offering must be true and strong. To trade for anything else would be an insult to the spirits. If you want you can bring me true strong wooden pole and fine string for new pole. That would be true strong gift and maybe enough to break bad evil on this thing we find."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30295,item2 = 30296})) then + e.self:Emote("sniffs the offering and seems to relax. 'Very good, very worthy. You take this magic thing, with you maybe this evil is broken.' Before he can hand you the parchment a roar explodes from the ocean and a gigantic dark shadow slams into the ice floe."); + eq.spawn2(110014,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),128); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/iceclad/#Snowfang_icehunter.lua b/iceclad/#Snowfang_icehunter.lua new file mode 100644 index 0000000..9367ac6 --- /dev/null +++ b/iceclad/#Snowfang_icehunter.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + eq.set_timer("fish",600000); +end + +function event_timer(e) + if(e.timer == "fish") then + walrus = eq.ChooseRandom("slaps its feet against the hard ice, making walrus-like sounds.","dips its club into the water and splashes it around just a little, imitating fish sounds."); + e.self:Emote(walrus); + end +end \ No newline at end of file diff --git a/iceclad/Adinel_Jailbar.lua b/iceclad/Adinel_Jailbar.lua new file mode 100644 index 0000000..3d09673 --- /dev/null +++ b/iceclad/Adinel_Jailbar.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("wipes his hands on his trousers leaving a fresh streak of grease. 'Ye come ta see my collection of machinery supplies, have ye, swabby?'"); + elseif(e.message:findi("yes")) then + e.self:Say("Well then get ta lookin', pegleg! I've got stuff ye canna get anywhere else!"); + elseif(e.message:findi("stuff") or e.message:findi("where")) then + e.self:Say("You're startin' ta ask too many questions, pal."); + end +end diff --git a/iceclad/Ami.lua b/iceclad/Ami.lua new file mode 100644 index 0000000..6e4180d --- /dev/null +++ b/iceclad/Ami.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("flips through a few pages of a small book, reading intently before answering you. 'Ye scurvy dog. I'll strike yer colors 'fore ya can put me on a gibbet. Take that, ya crimp!' She flips through a few more pages then smiles at you. 'Arrrr!'"); + elseif(e.message:findi("scurvy dog")) then + e.self:Say("Hey, that's pretty good. You did it without a book too. Nice to meet you. I'm the bosun here."); + elseif(e.message:findi("bosun")) then + e.self:Say("Yup. I think it means I'm in charge of the flag cause that's what the Cap'n told me to take care of. I'm the one who made our symbol, so I get to protect it. I even got my own copy of the grammar manual so I can practice my pirate speech."); + elseif(e.message:findi("grammar manual")) then + e.self:Emote("nods and shows you the book for a moment. 'We don't have many of them and usually we share. My book is missing a chapter, though.'"); + elseif(e.message:findi("chapter")) then + e.self:Emote("nods. 'A mate of mine borrowed the P Chapter to draw a map on but then he went and got himself lost. I've memorized the rest of the book but that chapter. Oh, well, I guess I can get by with what I have. Walk the mizenmast and batten down the boom!' She looks at you proudly. 'Good, eh? I'm one of the best pirates we have.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30042}, 0)) then + e.self:Emote("bounces excitedly. 'Oh! I've been needing this!' She reads over the pages intently. 'Uh. Pirate - A sea robber.' She scratches her head. 'I totally forgot we were supposed to be robbing people. Put down yer weapons and hand over yer platinum and gold ya port side bilge suckers! Heh. This is great. Thank you, " .. e.other:GetCleanName() .. "' She grins and goes back to reading."); + e.other:QuestReward(e.self,0,0,0,0,18962,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/iceclad/Avatar_of_Below.lua b/iceclad/Avatar_of_Below.lua new file mode 100644 index 0000000..034806a --- /dev/null +++ b/iceclad/Avatar_of_Below.lua @@ -0,0 +1,13 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1199}, 0) or item_lib.check_turn_in(e.self, e.trade, {item1 = 8895}, 0)) then -- Runed Coldain Prayer Shawl (mark A or mark B) + e.self:Emote("holds the shawl up close to one eye to look at the rune sewn into it. He smiles to himself and then drops it to the ground and places one hand on it. A bright blue glow starts to emanate in the snow, then there is a sudden flash! The Avatar has dissipated. All that is left behind is the Shawl lying in the snow, shimmering with a new power. " .. e.other:GetCleanName() .. " slowly bends down to pick it up, and is infused with a blessing from Brell."); + e.other:QuestReward(e.self,0,0,0,0,1200,100000); -- Blessed Coldain Prayer Shawl + eq.get_entity_list():GetMobByNpcTypeID(110019):Say("I must go tell the Dain of these events immediately!"); + eq.get_entity_list():GetMobByNpcTypeID(110069):Say("Yar ya do that ya crazy Coldain."); + eq.depop(110019) + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/iceclad/Balix_Misteyes.lua b/iceclad/Balix_Misteyes.lua new file mode 100644 index 0000000..5576184 --- /dev/null +++ b/iceclad/Balix_Misteyes.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Outlander, hail. Share the fire. I have little but if you are in need then take what I have. If you need nothing then take nothing. Balix my name is. Shaman to the tribe of Snowfangs."); + elseif(e.message:findi("shaman")) then + e.self:Say("Yes, shaman. I listen to the land to tell my tribe what the winds and waters will bring. Good or bad. Little good and much bad these days. That is why I sit here listening."); + elseif(e.message:findi("listening")) then + e.self:Say("I am on spirit quest. No food do I take. All day I listen only. I wait until the land tells me how to help my tribe. Maybe nothing will happen but I cannot fail to try. Hard is this. Many dangerous creatures are near but none come close so far."); + elseif(e.message:findi("dangerous creatures")) then + e.self:Emote("growls under his breath. 'Most dangerous is the Garou. Evil spirit of the land. It was made from long dead wolf spirits when the tower spread its dark magics through the islands. It preys on the Snowfang. We have tried to hunt it but always it is too strong.'"); + elseif(e.message:findi("hunt")) then + e.self:Say("If you want to try, you can hunt Garou. If you kill, spread its soul to the air for cleansing, then all is good. Its skin is powerful from the magics that made it. With a cougar's bone, fresh with the spirit of earth, I can make you powerful talisman in thanks for your service to Snowfangs."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30055,item2 = 30032})) then + e.self:Emote("pulls its lips back as it scratches and cuts the skin, working it around the bloody puma bone. 'Good for hitting or for talisman. Powerful thing to hold. All Snowfang thank you. Now, all of us are safer.' "); + e.other:QuestReward(e.self,0,0,0,0,30056,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/iceclad/Bilf.lua b/iceclad/Bilf.lua new file mode 100644 index 0000000..6dad5e1 --- /dev/null +++ b/iceclad/Bilf.lua @@ -0,0 +1,33 @@ +local count = 0; + +function event_spawn(e) + eq.set_timer("roll",70000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Shove off, mate. We're busy 'scoutin'. Can't ya see? Hehehe!"); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(110054)) then + eq.get_entity_list():GetMobByNpcTypeID(110054):Say("Har har! Scoutin'. Yah, thats what we be doin'!"); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(110055)) then + eq.get_entity_list():GetMobByNpcTypeID(110055):Say("Har har! Scoutin'. Yah, thats what we be doin'!"); + end + end +end + +function event_timer(e) + count = count + 1; + if(count == 1) then + e.self:Emote("rolls a pair of handcarved dice. 'Har har! The bones be favorin' me today!'"); + elseif(count == 2) then + e.self:Emote("rolls a pair of handcarved dice. 'Bah! You loaded these dice! I never roll this bad!'") + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(110055)) then + eq.get_entity_list():GetMobByNpcTypeID(110055):Say("I ain't loaded nothin'. Just roll and lose yer chips. Har har!"); + end + elseif(count == 3) then + e.self:Emote("gets a strange smile and throws down a couple of chips. 'Time ta ante up. I'm feelin' lucky.'"); + elseif(count == 4) then + count = 0; + end +end \ No newline at end of file diff --git a/iceclad/Captain_Nalot.lua b/iceclad/Captain_Nalot.lua new file mode 100644 index 0000000..9d92b18 --- /dev/null +++ b/iceclad/Captain_Nalot.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("squints at you through one eye, the other covered by a metallic eyepatch. 'Garrr. What `ave we here? Another beller yellied land blubber eh? By the looks of ye someones mudder didnt know when ta throw a bad fish back. HAR HAR!'"); + elseif(e.message:findi("bad fish")) then + e.self:Say("That means I'm callin ya ugly as a piece o' whale blubber but twice as bad smellin, ya son of a water treadin " .. e.other:Race() .. ". Yer about as smart as the slime we use ta patch our boat hull, aren't ya?"); + elseif(e.message:findi("boat")) then + e.self:Say("Arrrr. So we ain't got a boat right now. What's that got ta do with anythin'? Just cause we ain't got a boat, or a way to sail the waters, or even know how ta sail, don't mean we aren't crusty and dangerous. Just watch yerself cause we're mean."); + elseif(e.message:findi("mean")) then + e.self:Say("Thats right! We're mean, nasty, devious 'n cruel. We'll knock ya down, bite yer knees, and steal yer money. Arrr. We won't always say please and thank you either! Just remember that and don't be tryin' anyhin' funny."); + elseif(e.message:findi("funny")) then + e.self:Say("Uh, I dunno what funny stuff. No one's ever asked that one. You know, just be nice ta everyone I guess. Think ya can do that?"); + elseif(e.message:findi("map")) then + e.self:Say("The map? What map? Oh wait, that thing I made ol' what's-his-name do ta get los... uh adventure. Uh, sure. If yer wantin' we've got a job for ya. If ya do it ya get ta be a real member o' me crew."); + elseif(e.message:findi("member of your crew")) then + e.self:Say("That means ya get ta take orders from me and ya get ta use fancy words like bilge hoistin' land blubbing beller yellied, and more. Anyways, we needed a map so me lads would stop gettin' lost, but the lad I sent out ain't come back with it. I even sent out a search party but I ain't heard from them either. If ya find 'im get the map and get back 'ere."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30047}, 0)) then + e.self:Emote("squints and then knocks hard on the metal half of his face to get his eye back in adjustment.. 'Arrr. This is perfect. Har! Now we can be plannin' our pillagin' and plunderin' all proper like. Good work, " .. e.other:GetCleanName() .. "!' Captain Nalot slaps you on the back and accidentally drops his eyepatch. Being a proper pirate now you conveniently forget to mention it to him."); + e.other:QuestReward(e.self,0,0,0,0,30008,50000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30040,item2 = 30039})) then -- Rum Box Key and Locked Rum Box + e.self:Say("Land ho! That be me rum! Where did ya get that? Ah nevermind. Gimme those things. Just a bit of a turn here... and a pick there... and a twist... and shes unlocked, har! Here, take a jug. It be the least I can do fer ye. We'll be havin a party tonight lads!"); + e.other:QuestReward(e.self,0,0,0,0,30034,5000); -- Capt. Nalot's Triple Strength Rum + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/iceclad/Corudoth.lua b/iceclad/Corudoth.lua new file mode 100644 index 0000000..8b17b93 --- /dev/null +++ b/iceclad/Corudoth.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("seems to completely ignore you. After close examination you begin to wonder if this creature is actually alive."); + elseif(e.message:findi("owes helssen")) then + e.self:Say("What?! I owe him nothing! Nothing at all! I didn't ask him to.., err. What proof do you have? How do I know he sent you? Bah, leave me, $race."); + elseif(e.message:findi("great foes")) then + e.self:Say("Yes. One of note was the vile and evil sorcerer Rosh. A better example of depravtity and anti-morality I cannot think of. He researched magics destined to end all life on this cold chunk of rock and snow. We made it our mission to destroy him. In the end we defeated him, but alas our friend and comrade was slain. Poor Abrams was left cursed forever to wander that spire of ultimate loathing, the Tower of Frozen Shadow."); + elseif(e.message:findi("abrams")) then + e.self:Say("Abrams was a brave warrior and a good friend. His great maul could always be counted on to strike true as he used his body to shield others from grievous wounds. He sacrificed himself to save us from the eternal suffering he now endures up in that dark tower. The book you now seek, is in his possesion. You must first destroy his tormented form to free him from his madness. Tell him you seek the Arcanum and then give him the lock of hair I just gave you. You also will need the key?"); + elseif(e.message:findi("key")) then + e.self:Say("We ambushed Rosh on an expedition into the cursed Tower. When we faced him, Abrams ran forward and grabbed the Arcanum. He held it to his chest as lightning and flame rained down upon him. With Rosh busy trying to save his book it gave Halldor and I enough time to strike Rosh down. We went to Abrams and found our friend left a smoking pile of Coldain ruin. He underwent a strange transformation in which the Arcanum was lost. We decided Halldor should keep the key."); + elseif(e.message:findi("halldor")) then + e.self:Say("Halldor has retired from the life of an adventurer as I have. I would not tell you where he is as he is a good friend, but what I owe Helssen is stronger than comraderie or even friendship so I must comply; it is the word of Veeshan. Halldor now defends the halls in the great city of Thurgadin. To get the key you must fight your way into the city and kill Halldor. I wish you a most horrendous death, $race. Now leave me to my sleep."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1710}, 0)) then -- inscribed velium tablet + e.self:Emote("curses and goes into a fit of frustration before finally giving in. The ancient sea turtle finally says, 'Fine. I don't know what Helssen wants with that but I know where you can find it. Years and years back I traveled with a group was called the Icy Mugs. We were a mercenary company out for fun and profit, and there was plenty of that. During our adventures we ran across a great many foes.'"); + e.other:QuestReward(e.self,0,0,0,0,1711,1000); -- Lock of Dwarven Hair + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/iceclad/Ergrez_Shortpaw.lua b/iceclad/Ergrez_Shortpaw.lua new file mode 100644 index 0000000..d707140 --- /dev/null +++ b/iceclad/Ergrez_Shortpaw.lua @@ -0,0 +1,51 @@ +function event_spawn(e) + eq.set_timer("skin",120000); +end + +function event_timer(e) + e.self:Emote("works at skinning and cleaning the raw furs around him."); +end + +function event_say(e) + if(e.message:findi("skinning")) then + e.self:Say("Yes. I take skin of animal that hunters catch and make into things. Very important, very big job for clan."); + elseif(e.message:findi("important")) then + e.self:Say("Is important because I make all the clothes, armor, bags, hut covers, and more. Life much harder for clan if I not here to clean and cure skins. Not many who have knowledge anymore."); + elseif(e.message:findi("armor")) then + e.self:Say("Many armors. All of animal hides from the islands. If you wanting armor then I can make for you. All I ask is you do me favor."); + elseif(e.message:findi("favor")) then + e.self:Say("Snowfangs in need of much help lately. Once we mighty but now weak. You help us get stronger. If you want armor of wolves or cougar then I need you bring twice as many materials. For each thing you wanting I need thing. Just tell me what furs you have and I tell you what I need."); + elseif(e.message:findi("low quality cougarskin")) then + e.self:Say("More cat skin. You bring more meat but this time bring walrus meat. Many gnolls need for fat. Keeps gnolls healthy."); + elseif(e.message:findi("medium quality cougarskin")) then + e.self:Say("Grrrrr. More cat. All I need for this is cutting shells. We not get them much but I need."); + elseif(e.message:findi("high quality cougarskin")) then + e.self:Emote("growls loudly. 'I not like making things of cat fur. Smells bad, hurts nose. You want me to work with that you bring food, lots of food. You bring me mammoth meats."); + elseif(e.message:findi("low quality dire wolf fur")) then + e.self:Say("Bad fur I make into cap for head. Keep your small furless skull warm. You bring me two bark bindings for that. Bindings for sewing."); + elseif(e.message:findi("medium quality dire wolf fur")) then + e.self:Say("Good wolf fur I make you cloak. All it take for cloak is fur and skinning rock. I need two skinning rock though. I very low on rocks."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30064,item2 = 30065,item3 = 30065})) then -- Medium Quality Cougarskin, Cutting Shells + e.self:Emote("works with the fur for awhile by skinning it and sewing it"); + e.other:QuestReward(e.self,0,0,0,0,30020); -- Cougarskin Boots + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30030,item2 = 13407,item3 = 13407})) then -- High Quality CougarSkin, Mammoth Meat + e.self:Emote("works with the fur for awhile by skinning it and sewing it"); + e.other:QuestReward(e.self,0,0,0,0,30027); -- Cougarskin mask + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30031,item2 = 30097,item3 = 30097})) then -- low Quality CougarSkin, Fatty Walrus Meat + e.self:Emote("works with the fur for awhile by skinning it and sewing it"); + e.other:QuestReward(e.self,0,0,0,0,30028); -- Cougarskin Sleeves + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30025,item2 = 30062,item3 = 30062})) then -- Medium Quality Dire wolf fur, Skinning Rock + e.self:Emote("works with the fur for awhile by skinning it and sewing it"); + e.other:QuestReward(e.self,0,0,0,0,25019); -- Dire wolf-hide Cloak + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30024,item2 = 30063,item3 = 30063})) then -- Low Quality Dire wolf fur, Bark Bindings + e.self:Emote("works with the fur for awhile by skinning it and sewing it"); + e.other:QuestReward(e.self,0,0,0,0,30029); -- Dire wolf-hide hood + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/iceclad/Errgriz.lua b/iceclad/Errgriz.lua new file mode 100644 index 0000000..656cd5b --- /dev/null +++ b/iceclad/Errgriz.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Errrr. You come for master. learning like me?"); + elseif(e.message:findi("learning")) then + e.self:Say("I am learning ways of skinning and tailoring. None left but the master so I must learn to help. For now I only clean the furs."); + elseif(e.message:findi("furs")) then + e.self:Say("Yes. I clean the furs and then the master makes things from them."); + elseif(e.message:findi("things do you make")) then + e.self:Say("I wish I could make things. Headcoverings, to keep cold from head is what I want to make. I think I ready but not able to make until I get furs. Master says to find skin of high quality, thick and strong, but I have no training in hunting."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30023}, 0)) then + e.self:Emote("starts to cut and scrape the furs. He growls softly as he works and his master watches his progress. 'Grrr. Much too small. I fail. I not ready to work on my own. Sorry to waste your time. Here, take what I made. Maybe you can find use for it.'"); + e.other:QuestReward(e.self,0,0,0,0,30037); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/iceclad/Garou.lua b/iceclad/Garou.lua new file mode 100644 index 0000000..d1ccbfd --- /dev/null +++ b/iceclad/Garou.lua @@ -0,0 +1,3 @@ +function event_spawn(e) + e.self:SetRunning(true); +end \ No newline at end of file diff --git a/iceclad/General_Bragmur.lua b/iceclad/General_Bragmur.lua new file mode 100644 index 0000000..c1a0970 --- /dev/null +++ b/iceclad/General_Bragmur.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Please keep yer voice down I am busy here. If you do not mind I would ask that ya kindly leave."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 8898}, 0)) then + e.self:Emote("begins to put the armor on, 'Finally the Dain has gotten word of my arrival here. I await his final orders before proceeding.'"); + eq.spawn2(110017,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/iceclad/Graktar_Bluehammer.lua b/iceclad/Graktar_Bluehammer.lua new file mode 100644 index 0000000..5a91225 --- /dev/null +++ b/iceclad/Graktar_Bluehammer.lua @@ -0,0 +1,16 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 25102}, 0)) then -- large note + e.self:Say("So, Vkjor has sent you to assist me? He must want me back fighting in the arena as soon as possible if he'd send a mercenary out here to help me. My brother Felkak went missing no less than a fortnight ago. He told me he was traveling to the great Eastern Wastes to hunt, however, I have found no sign of him. My younger brother often lied about where he was going in order to be 'free'. Take my ring and search the lands for one that looks exactly like it. If my brother is alive, show him this ring and he will give you his, to prove to me that he is alive. If he is dead... Bring me his ring as proof that he is. I have heard that he may be near the Tower of Frozen Shadows but many times have I warned him not to enter that dread place. You may wish to begin your search in that area."); + e.other:QuestReward(e.self,0,0,0,0,0,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 25193}, 0)) then -- signet ring + e.self:Emote("swipes the ring from your outstretched hand. 'Yes, this is Felkak's ring, a twin of my own. He would never part with this willingly so this is truly a sign of his passing. I thank you for delivering this news to me. Though it saddens me deeply, at least I will know now what has become of him. One day I may return to the arena but for now I must wander these lands to cool the fury of my heart. Please take what little coins I have as thanks in return.'"); + e.other:Faction(e.self,419,1); -- Faction: Kromrif + e.other:Faction(e.self,448,1); -- Faction: Kromzek + e.other:Faction(e.self,406,-1); -- Faction: Coldain + e.other:Faction(e.self,430,-1); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,5,0,15000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/iceclad/Grizlin_Bloodfang.lua b/iceclad/Grizlin_Bloodfang.lua new file mode 100644 index 0000000..6ca29bf --- /dev/null +++ b/iceclad/Grizlin_Bloodfang.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Lo outlander. Grizlin weaponsmaker for tribe. Make mighty blade from bone. Very important now.. need make many spear for hunter. Not make spear, then hunter not bring meat. Now my friend Keref sad, his pack gone north and Keref alone. Want to find way to help Keref but must make weapon for tribe. Maybe you go find what Keref need to make happy?"); + elseif(e.message:findi("harpoon")) then + e.self:Say("Ahh, Harpoon hard to make. Grizlin need many thing to make true harpoon. Will need strong staff, strong bone, strong rope."); + elseif(e.message:findi("strong staff")) then + e.self:Say("Good staff always properly carved with totem and rune. Strong and mighty, very good for harpoon making. Not make in many moons here. All wood kept for fire. Perhaps find among outland gnoll tribe where wood is plentiful"); + elseif(e.message:findi("bone")) then + e.self:Say("Mightiest bone come from whale. Very strong, very powerful. Yes, bone of mighty whale make very strong blade. Good for harpoon."); + elseif(e.message:findi("strong rope")) then + e.self:Say("Not know where find strong rope. For mighty harpoon, need very strong bone or harpoon break rope too much. Maybe furless ones with steel canoe have mighty rope."); + end + end + + function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6310,item2 = 30050,item3 = 30049})) then + e.self:Say("Yes, these good.' He forges the items into a finely crafted harpoon. Grizlin holds the weapon up and inspects it for a moment. 'Yes, this fine weapon. This hero weapon! Groumshak have harpoon much like this. May it bring much food for your pack, furless one.' He hands you the harpoon with a nod of his head.'"); + e.other:Faction(e.self,439,1); -- Faction: Snowfang Gnolls + e.other:Faction(e.self,431,-1); -- Faction: Ulthork + e.other:QuestReward(e.self,0,0,0,0,30052,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/iceclad/Joshel_the_Large.lua b/iceclad/Joshel_the_Large.lua new file mode 100644 index 0000000..f1b60de --- /dev/null +++ b/iceclad/Joshel_the_Large.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("That's right. Large, cause that's what I be. If'n ya don't like it, or even if ya do, ya best get to the dock on the other side o' this island. Ya never know when Icebreaker is gonna stop by again and yer not wantin' ta miss it."); + end +end diff --git a/iceclad/Keref_Spiritspear.lua b/iceclad/Keref_Spiritspear.lua new file mode 100644 index 0000000..b266837 --- /dev/null +++ b/iceclad/Keref_Spiritspear.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Bark! Lo furless one. My people are Snowfang. Once mighty tribe, now snowfang home lost to vengeful winter."); + elseif(e.message:findi("vengeful winter")) then + e.self:Say("Our tribe once many strong, then vengeful winter come. Tribe grow lost in storm of ice. Many moon, no food, no water, no home. Many snowfang die, many snowfang leave to find new home."); + elseif(e.message:findi("new home")) then + e.self:Say("Many go north, not see again. Many family go, Keref family go. Aroooooooo. Someday Keref become brave, like mighty hero Groumshak. Keref go find pack to north."); + elseif(e.message:findi("groumshak")) then + e.self:Say("Groumshak mighty snowfang hero. Groumshak make battle with furless one fifty paws high. When Groumshak return to tribe, vengeful winter fall. If you bring Keref mighty harpoon like Groumshak, then Keref become hero like Groumshak. Will give totem of great protection for thanks."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30052}, 0)) then + e.self:Emote("gasps in astonishment. 'This true hero weapon. This just like harpoon of mighty Groumshak! Now I can find family! Many thanks, friend to Snowfang. Take this for thanks. It protect from danger.' He hands you an intricately carved ice totem. A feeling of safety washes over you as he places it in your hand."); + e.other:Faction(e.self,439,3); -- Faction: Snowfang Gnolls + e.other:Faction(e.self,431,-1); -- Faction: Ulthork + e.other:QuestReward(e.self,0,0,0,0,30051,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/iceclad/Lodizal.lua b/iceclad/Lodizal.lua new file mode 100644 index 0000000..8a71c4e --- /dev/null +++ b/iceclad/Lodizal.lua @@ -0,0 +1,20 @@ +function event_waypoint_arrive(e) + if(e.wp == 1) then + e.self:Emote("sniffs and turns slowly, its huge head swinging from side to side as it looks for food."); + elseif(e.wp == 4) then + e.self:Emote("roars at the village angrily, its trail of destruction stretching behind."); + elseif(e.wp == 6) then + e.self:Emote("bellows one last time, its fiery maw satiated by its angry feeding. It heads towards the ocean, its gut full and its anger quenched."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(110050)) then + eq.get_entity_list():GetMobByNpcTypeID(110050):Emote("sniffs at the air, its teeth still bared in distrust. With a growl, it relaxes as it realizes the horrible sea monster has left the village in peace."); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(110008)) then + eq.get_entity_list():GetMobByNpcTypeID(110008):Emote("sniffs at the air, its teeth still bared in distrust. With a growl, it relaxes as it realizes the horrible sea monster has left the village in peace."); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(110010)) then + eq.get_entity_list():GetMobByNpcTypeID(110010):Emote("sniffs at the air, its teeth still bared in distrust. With a growl, it relaxes as it realizes the horrible sea monster has left the village in peace."); + end + elseif(e.wp == 7) then + e.self:Emote("bellows and thrashes around. His flippers kick hard snow and ice into the air. His maw snaps and opens like a promise of death."); + end +end diff --git a/iceclad/Madan_Eflik.lua b/iceclad/Madan_Eflik.lua new file mode 100644 index 0000000..4c557f0 --- /dev/null +++ b/iceclad/Madan_Eflik.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + eq.set_timer("rub",3000000); +end + +function event_timer(e) + e.self:Emote(eq.ChooseRandom("rubs her arms to warm herself up. 'Did you find me something other than biscuits yet? What? No? Stay on your side of the igloo, then, Sojan!","shivers violently. 'I hate this place. My sister always told me I shouldn't be a pirate and that you were nothing but a clockwork grease pouring imbecile!'")); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(110066)) then + eq.get_entity_list():GetMobByNpcTypeID(110066):Emote("sighs and stares at the ground solemnly"); -- Make Sojan the Sleepless response. + end +end diff --git a/iceclad/Masurt_Dok.lua b/iceclad/Masurt_Dok.lua new file mode 100644 index 0000000..838f9ca --- /dev/null +++ b/iceclad/Masurt_Dok.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("That's me name, me job too. 'Masert ub da dok,' as a mate once called me. Course I was the bosun at the time, and we weren't at a dock, but he was drunk. Captain Nalot's Triple Strength will do that to ya."); + elseif(e.message:findi("triple strength")) then + e.self:Say("Aye. A better rum I never had. Warms the stomach and brings a tear to yer eye. Our leader, Captain Nalot, used ta make it. Can't find any ingredients in this ice clad hell, though."); + elseif(e.message:findi("ingredient")) then + e.self:Say("I'm no brewer, mate. Best ask the Captain."); + end +end \ No newline at end of file diff --git a/iceclad/Nelet_Durzit.lua b/iceclad/Nelet_Durzit.lua new file mode 100644 index 0000000..e91c488 --- /dev/null +++ b/iceclad/Nelet_Durzit.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("sneezes and wipes his hand across his nose. 'H-h-h-i.'"); + e.self:DoAnim(52); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(110060)) then + eq.get_entity_list():GetMobByNpcTypeID(110060):Say("Nelet don't talk much anymore. All this cold really gets to 'im."); + end + elseif(e.message:findi("cold")) then + e.self:Emote("talks through clenched, chattering teeth. 'Y-y-yeah. C-cursed cold. Sh-sh-shot of gnomish pirate triple strength rum's all I need ta fix me up, Rendap tells me. N-n-nilham lost it all, though.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30034}, 0)) then + e.self:Emote("greedily swigs rum from the jug. After a few drinks, he starts to gag and make faces. 'Oh, geez! Rendap told me this stuff was strong but this tastes like clockwork grease! It burns but now I feel - ugh.' Nelet doubles over and passes out on the ground. As he falls over, a small silver trinket slips out of his pocket."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(110060)) then + eq.get_entity_list():GetMobByNpcTypeID(110060):Emote("points and laughs as Nelet falls over. 'That'll put hair on yer ears, boy. Suck it up. Least ya ain't shiverin' o' cold anymore, eh?'"); + end + e.other:QuestReward(e.self,0,0,0,0,30033); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/iceclad/Nilham_the_Chef.lua b/iceclad/Nilham_the_Chef.lua new file mode 100644 index 0000000..9b94bbe --- /dev/null +++ b/iceclad/Nilham_the_Chef.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ahoy, " .. e.other:GetCleanName() .. ". Welcome ta the brig. I didn't get ta the 'B' section of my piratisms manual so I'm not sure what a brig is but I'm guessin' it means 'really small place without enough food or water.' So, ya here ta stay or just visitin'?"); + elseif(e.message:findi("cat")) then + e.self:Say("That was a nasty cat. I dun think it was after us, though. I think it just smelled the fresh chunk of wooly rhino jerky I had. It didn't do anythin' but knock us over. I guess that's what it likes, walrus. After it knocked us over it slipped away towards the bridge island like a ghostly mist. I'm thinkin' I saw a glimmer in its maw while it was runnin' off."); + elseif(e.message:findi("crate")) then + e.self:Say("I'll be an aft port if I think anyone will ever see the crate and key again. If by some act o' Prexus you do, then take them ta the Cap'n. I'm sure he'd be thrilled to see it. Just don't remind him I'm here cause he might let me go and make me work again."); + elseif(e.message:findi("stay")) then + e.self:Emote("grins. 'Not sure what ya did ta have ta stay but take a seat. There's a good starin' wall right over there. Don't hurt yerself with excitement."); + elseif(e.message:findi("piratism")) then + e.self:Say("Aye. We all got a pirate grammar manual from the good cap'n. We were supposed ta learn how ta talk like proper pirates from all the books Cap'n Nalot read but I never had time cause I used ta be the cook and was too busy. That's really the only bad thing about this brig thing really."); + elseif(e.message:findi("bad thing")) then + e.self:Say("I don't have anythin' ta read. No books here at all. I don't mind bein kept in here cause I don't have ta cook or work anymore but it'd be great ta have somethin' ta read. I still wanna learn more words."); + elseif(e.message:findi("learn more words")) then + e.self:Say("That's how we decide who gets ta do what. Who can use the most pirate words. Cause I only got to the 'A' section of the book, I'm pretty low on the list. Thats why I'm the chef. I can only say things like 'Arrr', 'Avast yer afts' and 'Ahoy those afts!'."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18962}, 0)) then + e.self:Emote("looks at you with a gleam in his eye. 'Wow. Ya actually got one. Thanks, mate! Here, you can have my cuffs. I'm tired of 'em and they're startin' ta chafe.' He flips through the book with a grin. 'B - Bilgewater. Barnacle brained blunderhead. Blast yer ballast...' Nilham happily reads through the book."); + e.other:QuestReward(e.self,0,0,0,0,30041,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/iceclad/Novyak_the_Lookout.lua b/iceclad/Novyak_the_Lookout.lua new file mode 100644 index 0000000..ae33a27 --- /dev/null +++ b/iceclad/Novyak_the_Lookout.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("guys",2400000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What?! I can't talk! I gotta keep staring at the water!"); + elseif(e.message:findi("staring")) then + e.self:Say("Yup, yup. That's what I do. I am a lookout. Erm, what I mean is, I be a lookout, uhm, matey."); + elseif(e.message:findi("Lookout")) then + e.self:Say("Aye. I look for things in the water and let everyone else know if I see something. It's a rough job but as the first mate said, 'Someone's gotta do it, now get up there and don't get down til I tell yas ta get down!' The first mate has been pretty short with me since the accident."); + end +end + +function event_timer(e) + e.self:Say("Guys, can I get down now please?"); +end diff --git a/iceclad/Ratop.lua b/iceclad/Ratop.lua new file mode 100644 index 0000000..ccaeb4f --- /dev/null +++ b/iceclad/Ratop.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Squawk! Pieces of eight! Pieces of eight!"); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(110053)) then + eq.get_entity_list():GetMobByNpcTypeID(110053):Say("The cap'n said PIRATES! Not parrots ye knucklehead!' He whacks the other raider upside the head. 'now whars the tinkered rope!?'"); + e.self:Say("We be out. Youll be needin to make more. Arg!"); + end + end +end \ No newline at end of file diff --git a/iceclad/Relit.lua b/iceclad/Relit.lua new file mode 100644 index 0000000..7015adc --- /dev/null +++ b/iceclad/Relit.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oooerrrr. Avast yer bilge, uh, brain. How was that, Traboh?"); + end +end diff --git a/iceclad/Rendap.lua b/iceclad/Rendap.lua new file mode 100644 index 0000000..6323d05 --- /dev/null +++ b/iceclad/Rendap.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Arrr. Swab me ports and shiver me starboards! Another mainlander, eh? Come closer, laddy, I can't sees ya too well. Arr, that's better. If ya came fer frostbite, frozen pants, and an empty stomach then ya came to the right place. Plenty o' sights ta see here."); + elseif(e.message:findi("sight")) then + e.self:Say("Sights? Yar. Lots of 'em. Snow, ice, snow, water, snow, trees, snow, and then more snow. Har! This be the pumas' island but they're bein' 'friendly' enough ta let us live on it, provided we stay out of their line of sight, smell, hearing, and [stick to the coast]. Har har."); + elseif(e.message:findi("coast")) then + e.self:Say("Yar. Just keep yer left shoulder ta the ocean, walk along the coast, and you'll be findin' our cozy home away from ship. Just remember, we may be pirates but we're on the up an' up if yer not tryin' anythin' funny. G'luck ta ye, laddy."); + end +end \ No newline at end of file diff --git a/iceclad/Ritap.lua b/iceclad/Ritap.lua new file mode 100644 index 0000000..52eaf87 --- /dev/null +++ b/iceclad/Ritap.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Avast you! Ya best be shovin off if ye know whats good for you. We be pirate raiders and ya best not be messin with the likes of us!"); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(110052)) then + eq.get_entity_list():GetMobByNpcTypeID(110052):Say("Squawk! Pieces of eight! Pieces of eight!"); + e.self:Say("The cap'n said PIRATES! Not parrots ye knucklehead!' He whacks the other raider upside the head. 'now whars the tinkered rope!?'"); + eq.get_entity_list():GetMobByNpcTypeID(110052):Say("We be out. Youll be needin to make more. Arg!"); + end + elseif(e.message:findi("tinkered rope")) then + e.self:Say("Batten down yer yapper! Ahl be doin the talkin here. We be needin the rope to tie ye down fer ransom. Now fetch me the beard of a frost giant scout so's I can make some more rope to tie ye up with."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30048}, 0)) then + e.self:Say("Arg! By blubberbeards nostril! Ye'v done it!' He braids the beard together into a sturdy rope. 'Now take this here rope and tie yerself up! Come lets go tell the cap'n we'v captured us some prisoners!'"); + e.other:Faction(e.self,447,1); -- Faction: Pirates of Iceclad + e.other:QuestReward(e.self,0,0,0,0,30049,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/iceclad/Snowfang_fisher.lua b/iceclad/Snowfang_fisher.lua new file mode 100644 index 0000000..fe259c9 --- /dev/null +++ b/iceclad/Snowfang_fisher.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("fishing",math.random(90000,150000)); +end + +function event_timer(e) + if(e.timer == "fishing") then + eq.stop_timer("fishing"); + e.self:Say("growls and barks a little as it hooks and pulls up a fish."); + eq.set_timer("fishing",math.random(90000,150000)); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You make too much noise furless one. Quiet or all fish go away. Maybe even vengeful ocean spirit come because you anger all his sea spirits."); + end +end \ No newline at end of file diff --git a/iceclad/Snowfang_spearguard.lua b/iceclad/Snowfang_spearguard.lua new file mode 100644 index 0000000..8bc2913 --- /dev/null +++ b/iceclad/Snowfang_spearguard.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("sniffs at you. 'Another furless one. Strange looking you all are. We've had to chase away some of your kind because they try to hurt us. You seem ok though.' It sniffs at you again. 'If you want to stay safe, keep away from the tower."); + end +end \ No newline at end of file diff --git a/iceclad/Sojan_the_Sleepless.lua b/iceclad/Sojan_the_Sleepless.lua new file mode 100644 index 0000000..38686d5 --- /dev/null +++ b/iceclad/Sojan_the_Sleepless.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares at you through bleary eyes. 'I get enough conversation from my wife. If ya want water or biscuits, buy em! Otherwise, leave me alone!'"); + elseif(e.message:findi("conversation")) then + e.self:Say("Since ya like talkin', then fine. You wanna do me a favor? Go get me some wolf fur earmuffs so I don't gotta listen to ya, or her, any more."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 25104}, 0)) then + e.self:Say("Uhhh, thank you... Now I can uhh... work on fixing some things around... 'seems to nod off for a moment as he drops a small note on the ground.'"); + e.other:QuestReward(e.self,0,0,0,0,20474); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30037}, 0)) then -- Wolf Fur Earcovers + e.self:Emote("stares at you and then laughs before putting on the earmuffs. As he moves around, blissfully protected from noise, a fine chain slips from his coat. 'Hey! Look at that! What a fine chain. It looks familiar but I can't tell how. Oh, well, you can have it. It looks like it could be used to fill gaps or if needed to repair another similar metal object. I can do that if ya ever find need.'"); + e.other:QuestReward(e.self,{itemid = 30038}); -- Fine Gold Chain + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30057,item2 = 30038})) then -- Golden Broken Key and Fine Gold Chain + e.self:Emote("puts a tiny eyeglass up to his eye and studies the key and chain. 'Aye. This looks like the perfect metal to fix this key. Gimme just a moment.' He uses fine and minute tools to pick and push the chain and key over a fire. 'Ha! Don't say I ain't never done anythin' for ya. There ya go, " .. e.other:GetCleanName() .. ".'"); + e.other:QuestReward(e.self,{itemid = 30040}); -- Rum Box Key + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/iceclad/Soulbinder_Cubnitskin.lua b/iceclad/Soulbinder_Cubnitskin.lua new file mode 100644 index 0000000..80c75f8 --- /dev/null +++ b/iceclad/Soulbinder_Cubnitskin.lua @@ -0,0 +1,15 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID(),0,1); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/iceclad/Traboh.lua b/iceclad/Traboh.lua new file mode 100644 index 0000000..db24e14 --- /dev/null +++ b/iceclad/Traboh.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Arrr. Blast yer bilgewater brain! Can't ye see I'm guardin' this unsavory wharfrat? Shove off, mate!"); + end +end diff --git a/iceclad/Tsilos_the_Swabby.lua b/iceclad/Tsilos_the_Swabby.lua new file mode 100644 index 0000000..0705681 --- /dev/null +++ b/iceclad/Tsilos_the_Swabby.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("H-hi. I'm Tsilos. I'm a swabbie. That means I get to swab the decks. We don't have decks any more so they only let me run paths in the snow. I get to make lots of lines here and there so the other guys have nice places to walk on. It's not a bad job, except for the yelling."); + elseif(e.message:findi("yelling")) then + e.self:Say("All the shouting and ordering. It makes me nervous. I get a little scared when everyone is yelling."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(110069)) then + eq.get_entity_list():GetMobByNpcTypeID(110069):Say("WHAT?! Codsarnit boy! This be a pirate camp. Ye best batten down those matches and learn ta be tough or ya ain't ever gonna make it!"); + end + end +end + +function event_signal(e) + e.self:Emote("shivers. 'Y-yes Cap'n. I'm tough. I'm a t-tough pirate.."); +end \ No newline at end of file diff --git a/iceclad/Xorbinasticalus_Zimralicus.lua b/iceclad/Xorbinasticalus_Zimralicus.lua new file mode 100644 index 0000000..565e8b4 --- /dev/null +++ b/iceclad/Xorbinasticalus_Zimralicus.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("considers you for a moment. Your jaw seems to ache from having to say such a horrible name. The gnome pulls out a book and flips through each page, making sure not to wrinkle the paper. Finally he stops on one and glances up at you as he reads. 'Ahoy there me matey. Shiver me biscuits and hoist the bloomers.' He puts away the book and looks up at you. 'Ritual greetings and all. Have to stick to protocol. Nice to meet you. I'm the magics advisor here.'"); + elseif(e.message:findi("magic.* advisor")) then + e.self:Say("Yes. All things magical and mystical, that's my specialty. I'm not one of the original members of this 'quaint' encampment but I find myself amused by things here."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(110069)) then + eq.get_entity_list():GetMobByNpcTypeID(110069):Say("Hey! Don't think I'm not knowin' what's comin' outta that porthole of yers just cause ya use fancy words! We ain't quaint, we're big, mean, and most of all, we're pirates. Arrr!"); + e.self:Say("Erm. Arrrr. Aye, aye, skipper."); + end + elseif(e.message:findi("original member")) then + e.self:Emote("takes a deep breath and stares at the ceiling as if remembering a sentence long practiced and used. 'I only heard about this place recently so I thought I'd drop by and explore a bit for magics and I did but after awhile I met Captain Nalot and he told me that if I wanted I could have part of the magical 'booty' so I said yes and now I take care of all the new artifacts that are found which isn't really many because we're stuck on the coast so mostly I just sell scrolls.' Xorbin finishes and starts to wheeze, catching his breath."); + elseif(e.message:findi("scroll")) then + e.self:Say("Yes, yes. Scrolls are my specialty! I was surprised at how many magics I found in this land. Not all ice-based either. I've spent many months searching across this unexplored wasteland learning new magics from everywhere I could. Because of this I am now able to present you, Marvn, with the once in a lifetime, never see it again, no money back so keep your hands away from the fizzle, half as good but twice the price scroll collection. If you want some just browse my selection. They're good stuff, really."); + end +end diff --git a/iceclad/a_lost_pirate.lua b/iceclad/a_lost_pirate.lua new file mode 100644 index 0000000..f547df2 --- /dev/null +++ b/iceclad/a_lost_pirate.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("twitches and growls a little. 'Arrr. Grrr. Ahoy, mate. The name's Teep.' He shivers and you notice a little drool at the corner of his mouth. 'Ya ain't lost out here too, are ya?'"); + elseif(e.message:findi("not lost")) then + e.self:Emote("grins and stares through you with a mad gleam in his eye. 'Hehehe. Yah, yer lost aren't ya. I can tell from the crazy sound o' yer voice. Too bad we ain't got me map. The map would lead us straight back ta camp. Yah, that it would, boyo.'"); + elseif(e.message:findi("map")) then + e.self:Emote("nods. 'After we got ourselves stuck on this island I got it in me head to draw up a map so none o' the crew would ever get lost. So I set myself to explorin' and drawin'. Now the map is gone. Too bad, too, cause it was a map o' the whole place, not just the first island, but a bunch o' parts.' Mention of the map seems to have sobered him up a bit."); + elseif(e.message:findi("gone")) then + e.self:Say("Aye. I lost the first part walkin' through the woods. Some big wolf bowled me over 'n started to tear me book up. 'Fore I could stop, it he ran off. I'm not knowin' why. The second part, heh. That was worse."); + elseif(e.message:findi("second part")) then + e.self:Emote("shivers. 'The second piece I lost, well, that put the fear o' Bertox in me. I was still in the woods at the time. It was at night. Cold and crisp, it was. I heard a flappin' and squawkin' above me and I knew my time was near. So I up and jumped into a snow drift. Soon as that, somethin' swooped down where I was and started tearin' my camp up. When I came back, I saw nothin' but feathers and me torn up book. Another quarter o' me book was gone.'"); + elseif(e.message:findi("third part")) then + e.self:Say("Huh? Oh, the other pieces? I gave a piece to a mate o' mine 'cause he wanted to help. Nice enough fella but he couldn't find north from a hole in the hull. Last I saw he wandered off towards the bridge. The last piece went away after I stumbled and fell down here. After a while I didn't care, so I threw it in the water. It floated off. Seems like everythin' that goes wrong ta me is because of some danged wild animal. I can't quite figger it."); + elseif(e.message:findi("find the part")) then + e.self:Emote("laughs. 'Its yer funeral, boyo. I'm not even sure they're readable. Oh, well. Here, take this. It's the cover of the book I was puttin' the map in. If ya get the first four parts, put em in there. If ya get the fifth, just go give it ta Ami the way ya find it. Hey, if ya find em all, come get me so I can find me way back. I'm thinkin' I'd like ta go back now.'"); + e.other:SummonCursorItem(17053); -- Item: Map Binding + elseif(e.message:findi("chapter p")) then + e.self:Emote("stares at the water. 'I'm rememberin' that. Yah. Ami's book. Thats what I drew, erm, the fifth part o'n. It got lost in the ocean too.' He looks at you. 'Yer wantin' ta go out and find all o' these pieces?'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30046}, 0)) then + e.self:Emote("grins widely and slaps you on the arm. 'Har har! You're crazier than I am. And since I know that I must not be that crazy after all. Ahh, I haven't felt this good in ages..' He shuffles the pieces and jots down a few notes here and there. 'There, now it's really finished. Let's get us outta here. Hold this fer me.' As he starts to try and crawl up the hill, a sleek figure darts towards him."); + e.other:QuestReward(e.self,0,0,0,0,30047,50000); + eq.spawn2(110012,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/iceclad/an_agitated_snowfang.lua b/iceclad/an_agitated_snowfang.lua new file mode 100644 index 0000000..ce338f2 --- /dev/null +++ b/iceclad/an_agitated_snowfang.lua @@ -0,0 +1,18 @@ +function event_spawn(e) + eq.set_timer("depop",90000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("shivers and growls to itself. 'Much thanks must I give " .. e.other:GetCleanName() .. ". Furless one still wants magic thing, after all the troubles? Say quickly. Much pain from attack. Must go, shaman help.'"); + elseif(e.message:findi("magic thing")) then + e.other:QuestReward(e.self,0,0,0,0,30042); + eq.stop_timer("depop"); + eq.depop(); + end +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end diff --git a/iceclad/encounters/shawleight.lua b/iceclad/encounters/shawleight.lua new file mode 100644 index 0000000..b3e799e --- /dev/null +++ b/iceclad/encounters/shawleight.lua @@ -0,0 +1,91 @@ +function FirstGeneralSpawn(e) + eq.set_timer("depop",1800000); +end + +function FirstGeneraltimer(e) + eq.depop(); +end + +function GeneralWaypoint(e) + if(e.wp == 2) then + eq.get_entity_list():GetMobByNpcTypeID(110109):Shout("The tracking wolves have found the Coldain! To the South West, Charge him!"); + eq.spawn2(110025,0,0,7518,-3524,163,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- Kromrif dire wolf + eq.spawn2(110020,0,0,7594,-3558,164,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- Kromrif tracking wolf + eq.spawn2(110020,0,0,7606,-3552,160,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- Kromrif tracking wolf + eq.spawn2(110020,0,0,7583,-3566,162,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- Kromrif tracking wolf + elseif(e.wp == 4) then + eq.spawn2(110022,0,0,7221,-2243,175,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- frost_giant_skirmisher + eq.spawn2(110022,0,0,7237,-2238,176,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- frost_giant_skirmisher + eq.spawn2(110022,0,0,7208,-2254,168,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- frost_giant_skirmisher + eq.spawn2(110022,0,0,7228,-2231,176,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- frost_giant_skirmisher + elseif(e.wp == 6) then + eq.spawn2(110023,0,0,5837,-1053,193,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- Commander_Kvarid + eq.spawn2(110022,0,0,5894,-1128,190,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- frost_giant_skirmisher + eq.spawn2(110022,0,0,5905,-1122,191,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- frost_giant_skirmisher + eq.spawn2(110022,0,0,5884,-1139,184,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- frost_giant_skirmisher + elseif(e.wp == 15) then + eq.spawn2(110020,0,0,2216,1502,50,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- Kromrif tracking wolf + eq.spawn2(110020,0,0,2232,1512,54,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- Kromrif tracking wolf + eq.spawn2(110020,0,0,2206,1495,48,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- Kromrif tracking wolf + eq.spawn2(110020,0,0,2224,1514,54,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- Kromrif tracking wolf + eq.spawn2(110020,0,0,2205,1487,51,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- Kromrif tracking wolf + elseif(e.wp == 18) then + eq.spawn2(110024,0,0,2654,3753,273,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- Commander_Vjorik + eq.spawn2(110022,0,0,2610,3759,265,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- frost_giant_skirmisher + eq.spawn2(110022,0,0,2624,3722,272,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- frost_giant_skirmisher + eq.spawn2(110022,0,0,2508,3766,264,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- frost_giant_skirmisher + eq.spawn2(110022,0,0,2599,3748,263,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(110019),1); -- frost_giant_skirmisher + elseif(e.wp == 24) then + e.self:Say("Lo there gnomes! Tell me is your camp located nearby?"); + eq.get_entity_list():GetMobByNpcTypeID(110052):Say("Yar ye scruvy bearded dwarf, just over tha hill there."); + eq.get_entity_list():GetMobByNpcTypeID(110053):Say("Arrrrrrrrrrr!"); + elseif(e.wp == 28) then + eq.get_entity_list():GetMobByNpcTypeID(110069):CastToNPC():MoveTo(1305,4590,75,64,true); + eq.signal(110069,1); -- NPC: Captain_Nalot + elseif(e.wp == 29) then + eq.get_entity_list():GetMobByNpcTypeID(110069):Say("Hrm? Who is scuffin' around out here?"); + e.self:Say("Greetings Captian Nalot, I have come to you with a proposition to make."); + elseif(e.wp == 30) then + eq.get_entity_list():GetMobByNpcTypeID(110069):Say("Arrrrrr what is it ye want?"); + e.self:Say("Well ya see sir, we have a surplus of Velium that we would not mind sharing with you for yer tinkerin' but would ask a favor in return for it."); + elseif(e.wp == 31) then + eq.get_entity_list():GetMobByNpcTypeID(110069):Say("Velium eh? Well there matey lets hear what you have got to say!"); + e.self:Say("I represent the Dain in this matter, we would like for you to use yer Icebreaker there to head to Antonica and bring reinforcements for the war that is preparing to ensue. We are needin' all the help we can get against the Kromrif."); + elseif(e.wp == 32) then + eq.unique_spawn(110026,0,0,1310,4573,84,0):Emote("s voice echoes through the area. 'The efforts to help the Coldain and bring them together with the gnomes of Iceclad is quite impressive. There will be no doubt that they will continue to increase in power until they can overtake the Giants of Zek. Hey there, what is that on your shoulder?'"); + end +end + +function AvatarSpawn(e) + eq.set_timer("depop",1800000); +end + +function AvatarTimer(e) + eq.depop(); +end + +function AvatarSay(e) + if(e.message:findi("runed coldain prayer shawl")) then + e.self:Say("So it is the sacred rune of the Coldain. Let me have a closer look at it."); + end +end + +function NalotSignal(e) + eq.set_timer("return",300000); +end + +function NalotTimer(e) + eq.move_to(1325,4639,74,126,true); + eq.stop_timer("return"); +end + +function event_encounter_load(e) + eq.register_npc_event("shawleight", Event.spawn, 110017, FirstGeneralSpawn); + eq.register_npc_event("shawleight", Event.timer, 110017, FirstGeneraltimer); + eq.register_npc_event("shawleight", Event.waypoint_arrive, 110019, GeneralWaypoint); + eq.register_npc_event("shawleight", Event.spawn, 110026, AvatarSpawn); + eq.register_npc_event("shawleight", Event.timer, 110026, AvatarTimer); + eq.register_npc_event("shawleight", Event.say, 110026, AvatarSay); + eq.register_npc_event("shawleight", Event.signal, 110069, NalotSignal); + eq.register_npc_event("shawleight", Event.timer, 110069, NalotTimer); +end diff --git a/iceclad/encounters/stormfeather.lua b/iceclad/encounters/stormfeather.lua new file mode 100644 index 0000000..111336d --- /dev/null +++ b/iceclad/encounters/stormfeather.lua @@ -0,0 +1,24 @@ +function StormfeatherSpawn(e) + eq.set_timer("chance",1000); +end + +function Stormfeathertimer(e) + if(e.timer == "chance") then + eq.stop_timer("chance"); + if(math.random(100) < 50) then + eq.unique_spawn(110005,48,0,850,6042,194,193); -- NPC: Stormfeather + else + eq.depop_with_timer(); + end + end +end + +function StormfeatherDeath(e) + eq.depop_with_timer(110214); +end + +function event_encounter_load(e) + eq.register_npc_event("stormfeather", Event.spawn, 110214, StormfeatherSpawn); + eq.register_npc_event("stormfeather", Event.timer, 110214, Stormfeathertimer); + eq.register_npc_event("stormfeather", Event.death_complete, 110005, StormfeatherDeath); +end diff --git a/iceclad/enraged_walrus.lua b/iceclad/enraged_walrus.lua new file mode 100644 index 0000000..5c3366d --- /dev/null +++ b/iceclad/enraged_walrus.lua @@ -0,0 +1,4 @@ +function event_death_complete(e) + eq.depop_with_timer(110013); + eq.spawn2(110015,0,0,2049,852,-31.80,0); -- spawn the agitated snowfang +end \ No newline at end of file diff --git a/iceclad/pirate_runners_skiff.lua b/iceclad/pirate_runners_skiff.lua new file mode 100644 index 0000000..b5cc4a6 --- /dev/null +++ b/iceclad/pirate_runners_skiff.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Shuttle spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + if(e.wp == 4) then + eq.debug("Shuttle to nro (2) has reached the docks. Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + elseif(e.wp == 9) then + eq.debug("Shuttle to nro (2) has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(34,-1116,525,-6,0); -- Zone: cauldron + end, + function(ent) + if(ent:GetBoatID() == 843) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/iceclad/player.lua b/iceclad/player.lua new file mode 100644 index 0000000..f8390a8 --- /dev/null +++ b/iceclad/player.lua @@ -0,0 +1,12 @@ +function event_board_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug(" At: " .. hour .. ":" .. minute .. " BoatID: " .. e.boat_id .. " was boarded. Its name is: " .. e.self:GetBoatName() .. ".", 1); +end + +function event_leave_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + eq.debug(" At: " .. hour .. ":00 I left BoatID: " .. e.boat_id .. ".", 1); +end \ No newline at end of file diff --git a/iceclad/rabid_snow_cougar.lua b/iceclad/rabid_snow_cougar.lua new file mode 100644 index 0000000..b23ace0 --- /dev/null +++ b/iceclad/rabid_snow_cougar.lua @@ -0,0 +1,14 @@ +function event_spawn(e) + eq.set_timer("attack",1000); + eq.set_timer("depop",120000); +end + +function event_timer(e) + if(e.timer == "attack") then + eq.attack_npc_type(110057); + eq.stop_timer("attack"); + elseif(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(); + end +end \ No newline at end of file diff --git a/iceclad/script_init.lua b/iceclad/script_init.lua new file mode 100644 index 0000000..8cc57a1 --- /dev/null +++ b/iceclad/script_init.lua @@ -0,0 +1,2 @@ +eq.load_encounter("shawleight"); +eq.load_encounter("stormfeather"); diff --git a/innothule/Basher_Sklama.lua b/innothule/Basher_Sklama.lua new file mode 100644 index 0000000..6b437db --- /dev/null +++ b/innothule/Basher_Sklama.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Me hear dat dere are humans, elves and other weaklings hunting in da swamp."); + elseif(e.message:findi("captain")) then + e.self:Say("You speak of da skeleton. He belong to Kaglari. He in dis swamp on little island."); -- should spawn a skeleton for urako quest + end +end + +-- END of FILE Zone:innothule ID:228 -- Basher_Sklama + diff --git a/innothule/Dark_Deathsinger.lua b/innothule/Dark_Deathsinger.lua new file mode 100644 index 0000000..72ac6b1 --- /dev/null +++ b/innothule/Dark_Deathsinger.lua @@ -0,0 +1,19 @@ +--Quest Name: Bard Mail Quest + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. " - Are you [interested] in helping the League of Antonican Bards by delivering some [mail]?"); + elseif(e.message:findi("interested")) then + e.self:Say("I have messages that need to go to - well, right now I have one that needs to go to Freeport. Will you [deliver] mail to [Freeport] for me?"); + elseif(e.message:findi("mail") and not e.message:findi("deliver") and not e.message:findi("freeport")) then + e.self:Say("The League of Antonican Bards has a courier system made up of travelers and adventurers. We pay good gold to anyone who will take messages from bards such as myself to one of our more distant offices. Are you [interested]?"); + elseif(e.message:findi("deliver") or e.message:findi("Freeport")) then + e.self:Say("Take this letter to Felisity Starbright in Freeport. You can find her at the bard guild hall. I am sure she will compensate you for your trouble."); + e.other:SummonCursorItem(18159); -- Item: A Bardic Letter (Freeport) + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/innothule/Forager_Grik.lua b/innothule/Forager_Grik.lua new file mode 100644 index 0000000..a59bb35 --- /dev/null +++ b/innothule/Forager_Grik.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Grikk.. Please leave me be. I but a humble forager. My people are starving."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13375})) then + e.self:Say("Grrrikk.. This is Groak's vial!! He must be in danger. Here. Return this liquid to him. Be quick!"); + e.other:Faction(e.self,251,1); -- Faction: Frogloks of Guk + e.other:QuestReward(e.self,0,0,0,0,13376,500); -- Item: Ochre Liquid + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/innothule/Lynuga.lua b/innothule/Lynuga.lua new file mode 100644 index 0000000..aaa6dd3 --- /dev/null +++ b/innothule/Lynuga.lua @@ -0,0 +1,46 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hrrump?! Who you? " .. e.other:GetCleanName() .. "? What you want with Lynuga? Me am out [collecting]. Leave me be!"); + elseif(e.message:findi("collecting")) then + e.self:Say("I collect all sorts of things. Gems be my favorite. Me really like rubies. If you have ruby, give to me! Why you want to know? You want to steal my collection?!? I squish you if you do!!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local rewarditem = 0; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10035},0)) then -- Handin: Ruby + e.self:Say("Mmm. Ruby!! Me thank's you! Here take this, me got it off dead someone who try take my collection. Me think's this valuable thing.."); + if (math.random(100) < 6) then -- 5% + rewarditem = 10082; -- Ivandyr's Hoop + else + rewarditem = eq.ChooseRandom(10080, 10081); -- Random: Brutechopper, Midnight Mallet + end + e.other:Faction(e.self,222,5,0); -- Faction: Broken Skull Clan + e.other:Faction(e.self,308,-5,0); -- Faction: Shadowknights of Night Keep + e.other:Faction(e.self,235,-5,0); -- Faction: Da Bashers + e.other:QuestReward(e.self,0,0,0,0,rewarditem,100); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_spawn(e) + eq.set_timer("depop", 2700000); +end + +function event_combat(e) + if ( e.joined ) then + if ( not eq.is_paused_timer("depop") ) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop_with_timer(); + end +end diff --git a/jaggedpine/#Annous_Pineshadow.lua b/jaggedpine/#Annous_Pineshadow.lua new file mode 100644 index 0000000..bc979f3 --- /dev/null +++ b/jaggedpine/#Annous_Pineshadow.lua @@ -0,0 +1,72 @@ +-- gale weaver Quest + +function event_say(e) + if(e.message:findi("hail") or e.message:findi("long") or e.message:findi("sacred way") or e.message:findi("faith in my heart") or e.message:findi("willing") or e.message:findi("azure idol of karana")) then + if(e.other:GetFaction(e.self) < 2) then + if(e.message:findi("hail")) then + e.self:Say("Good day to you, " .. e.other:GetCleanName() .. ". I am Annous Pineshadow, high priest of The Rainkeeper and ambassador of Qeynos. It has been a [long] time since I last set foot within the Jaggedpine, and although not surprised, I am amazed and awestruck at the untouched purity of these sacred grounds. It is very much a relief to know that the forest has been sparred the taint of the venomous world that has become Norrath."); + elseif(e.message:findi("long"))then + e.self:Say("Sixty years -- give or take. This is the place of my birth and my home. When I had come of age, I ventured to Qeynos to learn the ways of the priest, finding myself lost in the ways of the druid. I adore the nature that Karana sustains, but I had always felt myself more suited for the path of preservation and servitude of the faith. When his majesty, Antonious III sealed the Jaggedpine, I was among those who were asked to remain behind in Qeynos. Only the druids and rangers of Karana remained in the Jaggedpine -- it was important to preserve only the bare minimum and we understood the need. We also did not wish to have our culture be entirely cut off and those who remained outside of the forest's confines were there to continue the faith and [sacred ways] of The Rainkeeper."); + elseif(e.message:findi("sacred way"))then + e.self:Say("There are hundreds of different rites, ceremonies, prayers, and rituals that are performed in one's devotion to The Rainkeeper. Many of these can be as simple as the performance of a duty, as a druid would protect their forest, while some may be as complex and consuming as a several day ceremony to usher in the changing seasons. Aaaah. . . but there is truly so much that in the time that's left for me here could not give proper justice for in my explanations -- nor do I believe that you would truly understand them by simply listening. You must [have the faith in your heart] and you must truly wish to uphold the ways of the Rainkeeper and do so to truly understand."); + elseif(e.message:findi("faith in my heart"))then + e.self:Say("I would not dare challenge that, my friend, but is your faith strong enough to withstand the greatest of consequences -- even the sacrifice of your own life in remaining true to that faith? Aaaah. . . but such is a question that cannot be merely asked and simply answered in words. One truly does not discover one's self until they are faces with the reality of such tests of faith. Perhaps, if [you are willing], I might guide you on a path that may lead to the discovery of such answers."); + elseif(e.message:findi("willing"))then + e.self:Say("Excellent, child. I am pleased to know that you are willing to go so far as to test your faith -- but do so not to me, or to anyone other than yourself and The Rainkeeper, else you shall find only a hollow shadow of the answers you seek, and a great void of disappointment. If you prove successful in your own eyes by completing this task, then you shall be among The Rainkeeper's sacred order of priests -- The Gale Weavers. Druids and Clerics alike make up this order, for our dedication is mutual in strength and our ultimate duties to The Rainkeeper are parallel. The first journey that you must embark on will result in the acquisition of the [Azure Idol of Karana] -- an ancient item that each of The Gale Weavers possess."); + elseif(e.message:findi("azure idol of karana"))then + e.self:Say("When the order was first founded by the Hierophant known as Tanirun Galeweaver, he bestowed upon all of his brethren a sacred idol carved by his own hands. It is said that when Tanirun blessed the Shrine of Karana with his gift of the storm, that the remaining essence of Karana's witness was divided among the idols. In the passing times, the idols were handed down when an old member passed beyond into the Eye of Karana's Storm and a new member was inducted in their predecessor's memory and honor. You will seek one of these idols -- one that at present has no owner and was stolen by the bandit raiders and return it to me. The man who possesses the idol is one known as Drayen Blackguard -- a member of the dreaded Blackguard family that has taken recent residence in the forest. You shall find him in the mountains of Rathe if our scouts are correct."); + end + elseif(e.other:GetFaction(e.self) < 6) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("prove myself worthy") or e.message:findi("dormant crystal sphere") or e.message:findi("unique to the rainkeeper") or e.message:findi("writ")) then + if(e.other:GetFaction(e.self) < 2 and eq.get_qglobals(e.self,e.other)["galeweaver"] == "1") then + if(e.message:findi("prove myself worthy")) then + e.self:Say("Then your endeavor shall continue, my child. Take this scroll -- to you now it holds no meaning but in due time you shall understand. Keep the scroll close to you until you have sought and successfully acquired the [Dormant Crystal Sphere] and [The Rainkeeper's Writ]."); + e.other:SummonCursorItem(8962); + elseif(e.message:findi("dormant crystal sphere")) then + e.self:Say("There are several magical spheres throughout Norrath but this sphere is [unique to The Rainkeeper]. It is said that when Karana blessed this area with his first storm in acceptance of the nomadic tribe that would settle here, that the droplets of rain left upon the pines and blades of grass was gathered by one of these nomads and stored in a plain clay jar that was then buried as a symbol of their own gratitude toward the storm. Nearly a century later when Karana's Shrine and the Throne of Karana's Thunder were near completion, one known as Tanirun Galeweaver found the jar. The water was still inside, preserved by means unexplainable through simple reason. It is said that Tanirun poured the water into his own hands and wove a spell, sealing the wind within the orb of this ancient rain that was now crystallized by Tanirun's spell."); + elseif(e.message:findi("unique to the rainkeeper")) then + e.self:Say("Tanirun's orb was used to make the first symbol that to this day is wielded by the members of the sacred order. His effects were duplicated by the first order and each bore an orb identical to Tanirun's. These orbs, as the idols, were passed down from member to member. As with the idol, we held an orb that had no bearer. However, before the Jaggedpine was sealed, the orb disappeared. We are not certain as to how or why, but we do know that if it lies within the hands of one who is not of Karana's faithful priests, it shall become dormant until awoken. I have heard rumors, distant whispers upon the wind and storm that the orb lies within the depths of Solusek's Eye -- nestled in the hands of a giant known as Neiroth the Tyrant. Find this ancient giant and retrieve the orb from him."); + elseif(e.message:findi("writ")) then + e.self:Say("When the order of The Gale Weavers was established, Tanirun and his brethren of the order constructed a sacred writ similar to a spell, but it cannot be invoked at the priest's whim. Like the storm, it is chaos. When the words are spoken, the elements of the storm will come as they wish, when they wish. This writ was used to conjure the essence of the storm into the orbs, creating the mirror of a sky where a storm rages eternally. The writ was lost to us sometime before the Jaggedpine was sealed. One known as Naundruar, a former high priest of our order, took the writ. He was furious, enraged that the order had been asked to divide and leave our sacred homeland. None are ultimately certain what horrible fate befell him, for his hatred toward Qeynos had infected his being like an incurable disease. In the southern plain of Karana you will find the remnants of this once great priest and with him, you shall find the writ."); + end + elseif(e.other:GetFaction(e.self) < 6) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 2 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8956}, 0)) then + e.self:Say("Marvelously done, my friend. The idol's return by your hand bodes well indeed toward the success of your quest. Now, it shall remain without a hand to possess it -- but in time, perhaps, it may find a suitable possessor in you. If [you wish to prove yourself worthy] of the idol and further prove your faith as notable enough to belong to the sacred order of The Gale Weavers, then speak your pledge and your test shall continue."); + e.other:Faction(e.self,1597,5); -- Residents of Jaggedpine + e.other:Faction(e.self,272,2); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,2); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,0,10000); + eq.set_global("galeweaver","1",1,"F"); + elseif(e.other:GetFaction(e.self) < 2 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8964,item2 = 8963, item3 = 8962})) then -- Writ, sphere, and scroll turn in + e.self:Say("You have done well, my child. The ancient scroll has impressed upon it a small mirror of your faith. As it was with you through your travels, the runes have changed to reflect your own heart and what lies within it. I have woven for you the Orb of the Gale -- your Orb of the Gale, but do not think that your journey ends here. It is still hollow -- the winds are dormant and the clouds lie in wait. Their lifeblood is missing, and you must seek it. To do this, you must venture to the realm where the Gale thrives -- the Plane of Sky. There are ethereal creatures known as Gale Weavers that dwell there. You must extinguish their temporary tangible form and from that, take the essence of the Gale that they have woven. Do not feel remorse for destroying these planar creatures, for you do not truly destroy them. Once you have obtained the Essence of the Gale, place it into the orb and seal it, creating the Orb of the Gale that must be returned to me."); + e.other:Faction(e.self,1597,5); -- Residents of Jaggedpine + e.other:Faction(e.self,272,2); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,2); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,17135,10000); + eq.delete_global("galeweaver"); + elseif(e.other:GetFaction(e.self) < 2 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8966}, 0)) then -- Turn in orb of the gale + e.self:Say("You astound me, my child. Well done indeed, and I am very pleased to know that you have been successful in these endeavors. It is an honor to bestow upon you this, our sacred symbol, and welcome you into the order of The Gale Weavers. Bear it proudly, but do not flaunt pride. Keep your sacred duties to The Rainkeeper first and foremost in your thoughts and actions -- the Gale Weaver shall guide you when you need guidance most, and it shall protect you when your time for failure has not yet come. The idol shall remain with me, where I shall bury it at the Shrine of Karana in honor of your coming into our ranks. When the time comes for you to pass beyond, it shall be unearthed by another who has taken my place as high priest of our order, for I will likely have passed into the Eye of Karana's Storm before your final day."); + e.other:Faction(e.self,1597,15); -- Residents of Jaggedpine + e.other:Faction(e.self,272,7); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,7); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,8967,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/jaggedpine/#Banker_Mardalson.lua b/jaggedpine/#Banker_Mardalson.lua new file mode 100644 index 0000000..c289bd7 --- /dev/null +++ b/jaggedpine/#Banker_Mardalson.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. I used to work for the Qeynos Hold as a book keeper but I got transferred here. I guess it is kind of a promotion. Definitely different way out here and I've gotten a [mixed reception] from some of the locals."); + elseif(e.message:findi("mixed reception")) then + e.self:Say("Well apparently there is some kind of minor feud going on between the locals. Some are upset about a recent change of name for this settlement from The Throne of Karana's Fury to Fort Jaggedpine. Seems some are embracing the change and others are old stick in the muds. I'll just do my job and stay out of it though."); + end +end \ No newline at end of file diff --git a/jaggedpine/#Cathleen_Goodroot.lua b/jaggedpine/#Cathleen_Goodroot.lua new file mode 100644 index 0000000..f5ad21f --- /dev/null +++ b/jaggedpine/#Cathleen_Goodroot.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", make yourself at home. We really appreciate all that you newcomers are doing to protect us."); + elseif(e.message:findi("fort") or e.message:findi("throne")) then + e.self:Say("Oh they can call this place whatever they want to call it really. I'm just happy that we have those nice paladins here to protect us. As long as I'm safe they can call this place whatever they want to call it. It doesn't change anything anyway."); + end +end \ No newline at end of file diff --git a/jaggedpine/#Cheyloh_Greenwood.lua b/jaggedpine/#Cheyloh_Greenwood.lua new file mode 100644 index 0000000..c4ec19a --- /dev/null +++ b/jaggedpine/#Cheyloh_Greenwood.lua @@ -0,0 +1,175 @@ +-- Cheyloh Greenwood +-- Jaggedpine druid armor quest + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Emote("gives a warm smile, 'Greetings traveler and welcome to Fort Jaggedpine, our humble, though suitable home. If you have need of my [wares or talents], then please do not hesitate to inquire. I am always more than willing to share our ancient knowledge with our kin of the outside world.'"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Cheyloh Greenwood, daughter of Nolan Greenwood and resident of the Jaggedpine for all the years of my still young life. Although my curiosity of the outside world is great and I am sure that there are countless stories of adventure that you could tell me, I must return to my duties. Please, do forgive me for dismissing you so quickly, my friend, but we are in a time of turmoil and must focus solely on the immediate threats. Perhaps, if your heart bears the will to serve The Rainkeeper and you are truly one of his faithful from The Glade, you should venture out into our forest and gleam for yourself what it is we all face -- citizens of Qeynos and the forest alike. Return when you have gained a stronger knowledge of what it is we face and perhaps I may be able to help you further."); + else + e.self:Emote("furrows her brow and eyes you warily, 'I am quite busy at this time, good traveler. Perhaps if The Rainkeeper one day finds you in his favor, and thus you gain the favor of the Residents of the Jaggedpine, when and if you return to us, I may be able to be of more assistance. For now, good traveler, I must ask that you leave me to my duties."); + end + elseif(e.message:findi("wares or talents")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("Here in the Jaggedpine, I serve as a seamstress and one of many protectors of our precious home. Our people will often come to me in search of my talents in the ways of weaving. Often times my father and his students will seek to borrow my knowledge of the natural world and The Rainkeeper to weave specific pieces of an [ancient suit of leather] worn by our most adept and dedicated of druids."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Cheyloh Greenwood, daughter of Nolan Greenwood and resident of the Jaggedpine for all the years of my still young life. Although my curiosity of the outside world is great and I am sure that there are countless stories of adventure that you could tell me, I must return to my duties. Please, do forgive me for dismissing you so quickly, my friend, but we are in a time of turmoil and must focus solely on the immediate threats. Perhaps, if your heart bears the will to serve The Rainkeeper and you are truly one of his faithful from The Glade, you should venture out into our forest and gleam for yourself what it is we all face -- citizens of Qeynos and the forest alike. Return when you have gained a stronger knowledge of what it is we face and perhaps I may be able to help you further."); + else + e.self:Emote("furrows her brow and eyes you warily, 'I am quite busy at this time, good traveler. Perhaps if The Rainkeeper one day finds you in his favor, and thus you gain the favor of the Residents of the Jaggedpine, when and if you return to us, I may be able to be of more assistance. For now, good traveler, I must ask that you leave me to my duties."); + end + elseif(e.message:findi("ancient suit of leather")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("When our ancestors were young to the Jaggedpine and the Throne of Karana's Thunder was in the fledgling years of its establishment, a young seamstress and druid by the name of Hymara Cloudweaver discovered the laws of accepting nature's gifts in return for our services in protecting her. Hymara used these gifts of the wilderness to sew a complex suit of armor, which she then wove energies of the wilderness into. These gifts were used solely for the purpose of the protection of the pine, and we uphold her legacy to t his day. The armor is acquired upon a [path of devotion] successfully walked by our most devoted of druids."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Cheyloh Greenwood, daughter of Nolan Greenwood and resident of the Jaggedpine for all the years of my still young life. Although my curiosity of the outside world is great and I am sure that there are countless stories of adventure that you could tell me, I must return to my duties. Please, do forgive me for dismissing you so quickly, my friend, but we are in a time of turmoil and must focus solely on the immediate threats. Perhaps, if your heart bears the will to serve The Rainkeeper and you are truly one of his faithful from The Glade, you should venture out into our forest and gleam for yourself what it is we all face -- citizens of Qeynos and the forest alike. Return when you have gained a stronger knowledge of what it is we face and perhaps I may be able to help you further."); + else + e.self:Emote("furrows her brow and eyes you warily, 'I am quite busy at this time, good traveler. Perhaps if The Rainkeeper one day finds you in his favor, and thus you gain the favor of the Residents of the Jaggedpine, when and if you return to us, I may be able to be of more assistance. For now, good traveler, I must ask that you leave me to my duties."); + end + elseif(e.message:findi("path of devotion")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("One must protect nature to the fullest of their abilities in both faith and conviction to walk this path. The world they ward will in-turn present her sacred gifts unto those who walk this path with the true desire, intent, and fulfillment of their duties. To weave specific components of the armor, the druid uses these gifts of the nature and once that druid has [proven themselves worthy] of these gifts, one such as I would aid in the final steps to create the armor."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Cheyloh Greenwood, daughter of Nolan Greenwood and resident of the Jaggedpine for all the years of my still young life. Although my curiosity of the outside world is great and I am sure that there are countless stories of adventure that you could tell me, I must return to my duties. Please, do forgive me for dismissing you so quickly, my friend, but we are in a time of turmoil and must focus solely on the immediate threats. Perhaps, if your heart bears the will to serve The Rainkeeper and you are truly one of his faithful from The Glade, you should venture out into our forest and gleam for yourself what it is we all face -- citizens of Qeynos and the forest alike. Return when you have gained a stronger knowledge of what it is we face and perhaps I may be able to help you further."); + else + e.self:Emote("furrows her brow and eyes you warily, 'I am quite busy at this time, good traveler. Perhaps if The Rainkeeper one day finds you in his favor, and thus you gain the favor of the Residents of the Jaggedpine, when and if you return to us, I may be able to be of more assistance. For now, good traveler, I must ask that you leave me to my duties."); + end + elseif(e.message:findi("prove myself worthy")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Emote("raises a brow and gives another gentle smile toward " .. e.other:GetCleanName() .. ", 'Very well, my friend. If you wish to take upon yourself the task to prove your devotion to nature, I will be more than willing to lend my talents justly to your cause. There are several individual [pieces] to this mystic suit of armor, and each piece requires a test of your faith and dedication to that which you have declared your life to protect."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Cheyloh Greenwood, daughter of Nolan Greenwood and resident of the Jaggedpine for all the years of my still young life. Although my curiosity of the outside world is great and I am sure that there are countless stories of adventure that you could tell me, I must return to my duties. Please, do forgive me for dismissing you so quickly, my friend, but we are in a time of turmoil and must focus solely on the immediate threats. Perhaps, if your heart bears the will to serve The Rainkeeper and you are truly one of his faithful from The Glade, you should venture out into our forest and gleam for yourself what it is we all face -- citizens of Qeynos and the forest alike. Return when you have gained a stronger knowledge of what it is we face and perhaps I may be able to help you further."); + else + e.self:Emote("furrows her brow and eyes you warily, 'I am quite busy at this time, good traveler. Perhaps if The Rainkeeper one day finds you in his favor, and thus you gain the favor of the Residents of the Jaggedpine, when and if you return to us, I may be able to be of more assistance. For now, good traveler, I must ask that you leave me to my duties."); + end + elseif(e.message:findi("pieces")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("My skills and knowledge of history extends my talents to the creation of the [leggings], [sleeves], [bracer], [boots], [gloves], and [circlet] of the Armor of the Pine. My father, Nolan Greenwood, is the only who holds the necessary faith and mastery in the knowledge of history that is needed to make the most sacred and powerful piece of this set -- the Tunic of the Pine. There are several components needed to complete each piece of armor that I specifically am able to create. Those components vary between each individual piece. You will need to endeavor through several tasks to complete the set, but as with nature, there is no true order to the tasks that you must complete. Tell me which piece you wish to [acquire], and I shall guide you as necessary."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Cheyloh Greenwood, daughter of Nolan Greenwood and resident of the Jaggedpine for all the years of my still young life. Although my curiosity of the outside world is great and I am sure that there are countless stories of adventure that you could tell me, I must return to my duties. Please, do forgive me for dismissing you so quickly, my friend, but we are in a time of turmoil and must focus solely on the immediate threats. Perhaps, if your heart bears the will to serve The Rainkeeper and you are truly one of his faithful from The Glade, you should venture out into our forest and gleam for yourself what it is we all face -- citizens of Qeynos and the forest alike. Return when you have gained a stronger knowledge of what it is we face and perhaps I may be able to help you further."); + else + e.self:Emote("furrows her brow and eyes you warily, 'I am quite busy at this time, good traveler. Perhaps if The Rainkeeper one day finds you in his favor, and thus you gain the favor of the Residents of the Jaggedpine, when and if you return to us, I may be able to be of more assistance. For now, good traveler, I must ask that you leave me to my duties."); + end + elseif(e.message:findi("rawhide leggings")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("To procure this item, you will need to venture to Surefall Glade and speak with my beloved fiancee, Lerian Wyndrunner. His talents in the ways of leather and hide are unsurpassed by any of our people in the Jaggedpine and his devotion and faith to The Rainkeeper make him all the more important to your cause. Approach him and inquire about the Moss Threaded Rawhide Leggings. He will know of your task and will guide you well."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Cheyloh Greenwood, daughter of Nolan Greenwood and resident of the Jaggedpine for all the years of my still young life. Although my curiosity of the outside world is great and I am sure that there are countless stories of adventure that you could tell me, I must return to my duties. Please, do forgive me for dismissing you so quickly, my friend, but we are in a time of turmoil and must focus solely on the immediate threats. Perhaps, if your heart bears the will to serve The Rainkeeper and you are truly one of his faithful from The Glade, you should venture out into our forest and gleam for yourself what it is we all face -- citizens of Qeynos and the forest alike. Return when you have gained a stronger knowledge of what it is we face and perhaps I may be able to help you further."); + else + e.self:Emote("furrows her brow and eyes you warily, 'I am quite busy at this time, good traveler. Perhaps if The Rainkeeper one day finds you in his favor, and thus you gain the favor of the Residents of the Jaggedpine, when and if you return to us, I may be able to be of more assistance. For now, good traveler, I must ask that you leave me to my duties."); + end + elseif(e.message:findi("leggings")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("Very well, " .. e.other:GetCleanName() .. ". There are two components that you will need to return to me; [Polished Jade Acorns] and [Moss Threaded Rawhide Leggings]. But procuring those items will not be an easy task, and I can assure that you will plunge yourself into danger to complete it. However, you should not know fear of this for we must often selflessly endanger ourselves to fulfill our ultimate goal in protecting and preserving the purity of nature. Through these endeavors, your success will be rewarded by nature's recognition and she shall grant to you the gifts you will need to complete this task."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Cheyloh Greenwood, daughter of Nolan Greenwood and resident of the Jaggedpine for all the years of my still young life. Although my curiosity of the outside world is great and I am sure that there are countless stories of adventure that you could tell me, I must return to my duties. Please, do forgive me for dismissing you so quickly, my friend, but we are in a time of turmoil and must focus solely on the immediate threats. Perhaps, if your heart bears the will to serve The Rainkeeper and you are truly one of his faithful from The Glade, you should venture out into our forest and gleam for yourself what it is we all face -- citizens of Qeynos and the forest alike. Return when you have gained a stronger knowledge of what it is we face and perhaps I may be able to help you further."); + else + e.self:Emote("furrows her brow and eyes you warily, 'I am quite busy at this time, good traveler. Perhaps if The Rainkeeper one day finds you in his favor, and thus you gain the favor of the Residents of the Jaggedpine, when and if you return to us, I may be able to be of more assistance. For now, good traveler, I must ask that you leave me to my duties."); + end + elseif(e.message:findi("polished jade acorns")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("Every piece of the Armor of the Pine requires a special stone. These stones have been carved into different shapes by our artisans and each one blessed by our elder warders of the pine. Unfortunately, the introduction of the poachers through the recently carved passageway between the forest and the den of Blackburrow has brought us a loss in these sacred items. The Blackguard family and their henchmen have raided our fort several times, stealing our materials to be sold illegally upon the underground market of Norrath. However, the poachers are very limited in their knowledge of this area and our ranger scouts have informed us that [Myraephe the Pure] killed the one who stole the specific stones we need."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Cheyloh Greenwood, daughter of Nolan Greenwood and resident of the Jaggedpine for all the years of my still young life. Although my curiosity of the outside world is great and I am sure that there are countless stories of adventure that you could tell me, I must return to my duties. Please, do forgive me for dismissing you so quickly, my friend, but we are in a time of turmoil and must focus solely on the immediate threats. Perhaps, if your heart bears the will to serve The Rainkeeper and you are truly one of his faithful from The Glade, you should venture out into our forest and gleam for yourself what it is we all face -- citizens of Qeynos and the forest alike. Return when you have gained a stronger knowledge of what it is we face and perhaps I may be able to help you further."); + else + e.self:Emote("furrows her brow and eyes you warily, 'I am quite busy at this time, good traveler. Perhaps if The Rainkeeper one day finds you in his favor, and thus you gain the favor of the Residents of the Jaggedpine, when and if you return to us, I may be able to be of more assistance. For now, good traveler, I must ask that you leave me to my duties."); + end + elseif(e.message:findi("myraephe the pure")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("The Hatchling River -- a beautiful waterway jealously protected by the nymph spirits known as Potameides, fuels the lifeblood of this forest. These naiads are beautiful creatures, who were benevolent to us until the development of great cultures and the construction of great cities destroyed much of nymph kind. The Potameides felt the loss of their sisters and became hostile to all mortals alike, viewing our presence as a threat to their very existence. Myraephe is one of the ancient Potameides and our scouts have said that in recent days she wears a necklace made of Polished Stone Acorns. Seek Myraede and retrieve the acorns as you will, my friend. Know neither regret nor sorrow for your actions as the Potameides intentions have been influenced by the threat of the Unkempt Wood to the east. The Potameid spirit will return to protect the river it is bound to, so long as the river itself does not become corrupt."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Cheyloh Greenwood, daughter of Nolan Greenwood and resident of the Jaggedpine for all the years of my still young life. Although my curiosity of the outside world is great and I am sure that there are countless stories of adventure that you could tell me, I must return to my duties. Please, do forgive me for dismissing you so quickly, my friend, but we are in a time of turmoil and must focus solely on the immediate threats. Perhaps, if your heart bears the will to serve The Rainkeeper and you are truly one of his faithful from The Glade, you should venture out into our forest and gleam for yourself what it is we all face -- citizens of Qeynos and the forest alike. Return when you have gained a stronger knowledge of what it is we face and perhaps I may be able to help you further."); + else + e.self:Emote("furrows her brow and eyes you warily, 'I am quite busy at this time, good traveler. Perhaps if The Rainkeeper one day finds you in his favor, and thus you gain the favor of the Residents of the Jaggedpine, when and if you return to us, I may be able to be of more assistance. For now, good traveler, I must ask that you leave me to my duties."); + end + elseif(e.message:findi("sleeves")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("If that is your wish, my friend. You will need to seek out two items and return them to me. In the depths of the Potameid caves located off of the Hatchling River, you will find the Potameid Protectors. Our ranger scouts have found many of our sacred jade ornaments scattered throughout the possession of the Potameides. The reports indicate that it is the protectors who hold the Polished Jade Leaves, which you must acquire for the final product. The second item that you must return to me are the Shark Tooth Sleeves. Seek out Lerian Wyndrunner in Surefall Glade and he will guide you in obtaining the Shark Tooth Sleeves."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Cheyloh Greenwood, daughter of Nolan Greenwood and resident of the Jaggedpine for all the years of my still young life. Although my curiosity of the outside world is great and I am sure that there are countless stories of adventure that you could tell me, I must return to my duties. Please, do forgive me for dismissing you so quickly, my friend, but we are in a time of turmoil and must focus solely on the immediate threats. Perhaps, if your heart bears the will to serve The Rainkeeper and you are truly one of his faithful from The Glade, you should venture out into our forest and gleam for yourself what it is we all face -- citizens of Qeynos and the forest alike. Return when you have gained a stronger knowledge of what it is we face and perhaps I may be able to help you further."); + else + e.self:Emote("furrows her brow and eyes you warily, 'I am quite busy at this time, good traveler. Perhaps if The Rainkeeper one day finds you in his favor, and thus you gain the favor of the Residents of the Jaggedpine, when and if you return to us, I may be able to be of more assistance. For now, good traveler, I must ask that you leave me to my duties."); + end + elseif(e.message:findi("boots")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("Then you shall endeavor to earn such a gift. I will guide and aid you where I can, as will Lerian Wyndrunner, whom you may find in Surefall Glade -- but it is you who will ultimately prove yourself worthy of this item and the sacred oath that is tied to it -- the oath of the guardian of nature. You must venture out into the world and procure several items that you will eventually return to me. The items I require are two Polished Jade Plates from the Potameid Guardians of the Hatchling River. Our rangers have reported much of our recently stolen jade ornaments to be in the possession of the Potameides -- the jade items likely came into their possession after they killed the poachers who raid our fort here on occasion. Lerian will guide you to acquire the second item if you approach and inquire to him about the Mithril Fern Boots."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Cheyloh Greenwood, daughter of Nolan Greenwood and resident of the Jaggedpine for all the years of my still young life. Although my curiosity of the outside world is great and I am sure that there are countless stories of adventure that you could tell me, I must return to my duties. Please, do forgive me for dismissing you so quickly, my friend, but we are in a time of turmoil and must focus solely on the immediate threats. Perhaps, if your heart bears the will to serve The Rainkeeper and you are truly one of his faithful from The Glade, you should venture out into our forest and gleam for yourself what it is we all face -- citizens of Qeynos and the forest alike. Return when you have gained a stronger knowledge of what it is we face and perhaps I may be able to help you further."); + else + e.self:Emote("furrows her brow and eyes you warily, 'I am quite busy at this time, good traveler. Perhaps if The Rainkeeper one day finds you in his favor, and thus you gain the favor of the Residents of the Jaggedpine, when and if you return to us, I may be able to be of more assistance. For now, good traveler, I must ask that you leave me to my duties."); + end + elseif(e.message:findi("bracer")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("Then you shall work to obtain that which you desire, my friend. Nature's gifts are not given without justification and you must prove yourself worthy of this most sacred of our items. You must venture out into the wilds and procure the Polished Jade Blossoms and the Bracer of Braided Pine, both to be returned to me. The Jade Blossoms are not traditional flora -- they are of the jade stones carved by our artisans and blessed by our elders. You will likely find them in the Potameid Caves, where many of our recently lost charms have been discovered in the recent past. The Potameid Temptresses use the blossoms as charms around their necks, or so the scouts have reported. To acquire the bracer, you must seek out Lerian Wyndrunner, who currently resides in the Surefall Glade. Speak with him about the Bracer of Braided Pine and he shall guide you to fulfilling this task."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Cheyloh Greenwood, daughter of Nolan Greenwood and resident of the Jaggedpine for all the years of my still young life. Although my curiosity of the outside world is great and I am sure that there are countless stories of adventure that you could tell me, I must return to my duties. Please, do forgive me for dismissing you so quickly, my friend, but we are in a time of turmoil and must focus solely on the immediate threats. Perhaps, if your heart bears the will to serve The Rainkeeper and you are truly one of his faithful from The Glade, you should venture out into our forest and gleam for yourself what it is we all face -- citizens of Qeynos and the forest alike. Return when you have gained a stronger knowledge of what it is we face and perhaps I may be able to help you further."); + else + e.self:Emote("furrows her brow and eyes you warily, 'I am quite busy at this time, good traveler. Perhaps if The Rainkeeper one day finds you in his favor, and thus you gain the favor of the Residents of the Jaggedpine, when and if you return to us, I may be able to be of more assistance. For now, good traveler, I must ask that you leave me to my duties."); + end + elseif(e.message:findi("gloves")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("You must continue to uphold the sacred duties that you have pledged your existence to and thus gain nature's recognition to fulfill this task. The items I require so that I might properly weave the gloves are Polished Jade Studs and Forest Woven Gloves. The Polished Jade Studs you will find in the Potameid Caves, where much of our sacred jade ornaments have found their way by the fates of the thieves and poachers who infest this land and frequently raid our homes. Our scouts believe the Potameid Matriarchs to hold the jade studs, and I would heed their advice to discourage any unnecessary danger to you. The Forest Woven Gloves will require further aid from a member of the Jaggedpine to obtain. Seek out my beloved, Lerian, in the Surefall Glade and inquire about the gloves. He will know who has sent you and what he must do to aid you."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Cheyloh Greenwood, daughter of Nolan Greenwood and resident of the Jaggedpine for all the years of my still young life. Although my curiosity of the outside world is great and I am sure that there are countless stories of adventure that you could tell me, I must return to my duties. Please, do forgive me for dismissing you so quickly, my friend, but we are in a time of turmoil and must focus solely on the immediate threats. Perhaps, if your heart bears the will to serve The Rainkeeper and you are truly one of his faithful from The Glade, you should venture out into our forest and gleam for yourself what it is we all face -- citizens of Qeynos and the forest alike. Return when you have gained a stronger knowledge of what it is we face and perhaps I may be able to help you further."); + else + e.self:Emote("furrows her brow and eyes you warily, 'I am quite busy at this time, good traveler. Perhaps if The Rainkeeper one day finds you in his favor, and thus you gain the favor of the Residents of the Jaggedpine, when and if you return to us, I may be able to be of more assistance. For now, good traveler, I must ask that you leave me to my duties."); + end + elseif(e.message:findi("circlet")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("Nature will provide to you what it is you provide to her -- if you protect her, she shall in-turn offer shelter and provide to you. I shall aid you, as is my duty here, but you must set out on your own before my aid can be granted. There are two items you must seek; a Polished Jade Tear that resides in the clutches of Lameriae the Alluring, a powerful Potameid Temptress who seduced and killed one of the Blackguard's most cunning of thieves and hunters. It is said that she holds the tear, which was given to her by the entranced Blackguard before he drowned to death. The second item you must retrieve for me is a Shadowjade Circlet that Jhaya Wyndrunner in Surefall Glade will aid you to acquire -- all you need to do approach and ask her."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Cheyloh Greenwood, daughter of Nolan Greenwood and resident of the Jaggedpine for all the years of my still young life. Although my curiosity of the outside world is great and I am sure that there are countless stories of adventure that you could tell me, I must return to my duties. Please, do forgive me for dismissing you so quickly, my friend, but we are in a time of turmoil and must focus solely on the immediate threats. Perhaps, if your heart bears the will to serve The Rainkeeper and you are truly one of his faithful from The Glade, you should venture out into our forest and gleam for yourself what it is we all face -- citizens of Qeynos and the forest alike. Return when you have gained a stronger knowledge of what it is we face and perhaps I may be able to help you further."); + else + e.self:Emote("furrows her brow and eyes you warily, 'I am quite busy at this time, good traveler. Perhaps if The Rainkeeper one day finds you in his favor, and thus you gain the favor of the Residents of the Jaggedpine, when and if you return to us, I may be able to be of more assistance. For now, good traveler, I must ask that you leave me to my duties."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 750 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8790,item2 = 8769})) then -- moss threaded leggings and jade acorns + e.self:Emote("smiles warmly at " .. e.other:GetCleanName() .. ", 'Excellent work, friend. I have sewn the Polished Jade Acorns into your leggings. May they serve you as well as you have served the natural world.'"); + e.other:Faction(e.self,1597,10); -- Residents of Jaggedpine + e.other:Faction(e.self,272,5); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,5); -- Protectors of Pine + e.other:Faction(e.self,262,2); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,8442); -- Leggings of the Pine + elseif(e.other:GetFactionValue(e.self) >= 750 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8796,item2 = 8795})) then -- shark tooth sleeves and jade leaves + e.self:Say("Marvelously done, my friend. I am pleased to know that the natural world has embraced and recognized you so. I have bound the moss thread to the Polished Jade Leaves and your sleeves are complete. Take them and wear them with the selfless knowledge that you are equal to all of nature’s most devoted warders.") + e.other:Faction(e.self,1597,10); -- Residents of Jaggedpine + e.other:Faction(e.self,272,5); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,5); -- Protectors of Pine + e.other:Faction(e.self,262,2); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,8445); -- Sleeves of the Pine + elseif(e.other:GetFactionValue(e.self) >= 750 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8877,item2 = 8876})) then -- mithril fern boots & 2x jade plates + e.self:Say("Aaaah. . . these will do nicely. Lerian's gifts upon the hide that you have expertly sewn into the boots have proved an extra enchantment that allowed me to appropriately fit the plates onto the toes and sides of the boots. You have earned this reward justly and without a selfish nature or compromise of your dedication to nature. May they serve you as you have served the world that has granted them to you.") + e.other:Faction(e.self,1597,10); -- Residents of Jaggedpine + e.other:Faction(e.self,272,5); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,5); -- Protectors of Pine + e.other:Faction(e.self,262,2); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,8758); -- boots of the pine + elseif(e.other:GetFactionValue(e.self) >= 750 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8865,item2 = 8864})) then -- bracer of braided pine & jade blossoms + e.self:Say("Marvelously done, my friend. I am pleased to know that the natural world has embraced and recognized you so. I have bound the braided pine to the Polished Jade Blossoms and your bracer is complete. Take it and wear it with the selfless knowledge that you are equal to all of nature's most devoted warders.") + e.other:Faction(e.self,1597,10); -- Residents of Jaggedpine + e.other:Faction(e.self,272,5); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,5); -- Protectors of Pine + e.other:Faction(e.self,262,2); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,8499); -- bracer of the pine + elseif(e.other:GetFactionValue(e.self) >= 750 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8871,item2 = 8870})) then -- forest woven gloves & jade studs + e.self:Say("Well done, " .. e.other:GetCleanName() .. ". The Jade Studs have been easily bound to the enchantment of the Forest Woven Gloves. Although you will not see bindings to hold the studs in-place, know that they are quite secure. Lerian's gifts are not to be underestimated, nor taken for granted. You have earned this item selflessly in displaying your protection of the natural order of this world, and in-turn, your ward has blessed you in many ways with the creation of this item. May it protect you as you have protected the land and order that forged it.") + e.other:Faction(e.self,1597,10); -- Residents of Jaggedpine + e.other:Faction(e.self,272,5); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,5); -- Protectors of Pine + e.other:Faction(e.self,262,2); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,8757); -- gloves of the pine + elseif(e.other:GetFactionValue(e.self) >= 750 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8883,item2 = 8882})) then -- shadowjade circlet & jade tear + e.self:Say("Marvelously done, my friend. I am pleased to know that the natural world has embraced and recognized you so. I have bound the shadowjade circlet to the Polished Jade Tear. Take it and wear it with the selfless knowledge that you are equal to all of nature's most devoted warders.") + e.other:Faction(e.self,1597,10); -- Residents of Jaggedpine + e.other:Faction(e.self,272,5); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,5); -- Protectors of Pine + e.other:Faction(e.self,262,2); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,8759); -- circlet of the pine + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/jaggedpine/#Derick_Goodroot.lua b/jaggedpine/#Derick_Goodroot.lua new file mode 100644 index 0000000..eea4df6 --- /dev/null +++ b/jaggedpine/#Derick_Goodroot.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("No, I don't have anything for sale and no I don't want any of your filthy money. Can't you see I have important work to do? Why don't you go talk to that banker and give it to him? There's been nothing but trouble since you all arrived. I'm sick and tired of you people traipsing through here like you own the place. Before you know it, this place will be a smelly den of inequity like Qeynos. I'd like to take that Banker Mardalson and all the rest and feed them to the [river]!"); + elseif(e.message:findi("river")) then + e.self:Say("Yeah, go have yourself a nice walk and visit the river. Say hello to the [potameids] while you're there. They'll be as happy as I am to see you."); + elseif(e.message:findi("potameid")) then + e.self:Say("Yes, Potameids. Water Nymphs. They guard the river. Legend has it that long ago the Unkempt asked their queen to prevent intruders from crossing the river and entering the Unkempt Woods. The Queen agreed and now to this day everyone that gets close to the river is seldom heard from again. Why don't you go take a look already and leave me alone!"); + end +end \ No newline at end of file diff --git a/jaggedpine/#Diedra_Twothorns.lua b/jaggedpine/#Diedra_Twothorns.lua new file mode 100644 index 0000000..971d227 --- /dev/null +++ b/jaggedpine/#Diedra_Twothorns.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Another newcomer, just what we need. I don't mind if you're here to help protect us against the gnoll threat but stay away from my daughter. I don't want her head to be filled up with any other crazy ideas. She has already taken to sneaking away to the city of Qeynos and doing Karana-knows-what with those heathens over there. So just do what you need to do and stay away from her!"); + elseif(e.message:findi("fort")) then + e.self:Say("It's just awful that name. It's all that Jeremy Leafrunner's fault. Well, his mother's fault anyway. It was she who lead the charge to have the name changed. Karana forgive us for forgetting our history and his gift to us! All this trouble with the gnolls is our punishment for that sleight against him. I'm sure of it!"); + elseif(e.message:findi("throne")) then + e.self:Say("Would that our settlement was still named The Throne of Karana's Fury. Perhaps we would not be facing his wrath right now. Surely he allowed the gnolls to move in to the north to chastise us for our insolence at forgetting his gift to us."); + end +end \ No newline at end of file diff --git a/jaggedpine/#Donna_Twothorns.lua b/jaggedpine/#Donna_Twothorns.lua new file mode 100644 index 0000000..ccda99b --- /dev/null +++ b/jaggedpine/#Donna_Twothorns.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well hello there! So many new people coming through here lately, it's so exciting!"); + elseif(e.message:findi("fort") or e.message:findi("throne")) then + e.self:Say("I don't care one way or the other really. I'm actually thinking of getting out of here for a while to see the world a little bit. It would probably be safer than sticking around here anyway, with the gnoll threat and everything. My mom is superstitious and thinks the gnoll problem is Karana's punishment for changing the name of this place. I don't buy it though."); + end +end \ No newline at end of file diff --git a/jaggedpine/#Farkus_Grime.lua b/jaggedpine/#Farkus_Grime.lua new file mode 100644 index 0000000..a1d52ba --- /dev/null +++ b/jaggedpine/#Farkus_Grime.lua @@ -0,0 +1,65 @@ +function event_spawn(e) + tellpause = 0; + already_tell = 0; +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hmm? What do you want?"); + elseif(e.message:findi("diseased bear liver")) then + e.self:Emote("clenches his teeth and speaks in a quiet but deadly tone, 'Keep your voice down you fool, mention of such a thing around here is dangerous! I'm always willing to help someone who shares the same... philosophy... as myself though. Are you [truly serious] about this?'"); + elseif(e.message:findi("truly serious")) then + e.self:Say("Very well, follow me and we'll have a little chat then."); + if(e.self:GetX() == 1830 and e.self:GetY() == 1316) then + eq.move_to(1390,1360,19,0,true); + elseif(e.self:GetX() == 1390 and e.self:GetY() == 1360 and already_tell == 0) then + already_tell = 1; + eq.set_timer("Secrets",2000); + end + end +end + +function event_timer(e) + if(e.timer == "Secrets") then + eq.set_timer("Secrets",7000); + tellpause = tellpause + 1; + if(tellpause == 1) then + e.self:Say("I had not pegged you as one allied with the Plaguebringer, may his blessing once again spread across the land."); + elseif(tellpause == 2) then + e.self:Say("So you wish for me to defile one of these so-called 'sacred' bears for you? I'm not sure what vile ritual you would need this liver for but I'd be delighted to assist you."); + elseif(tellpause == 3) then + e.self:Say("However, before I do this thing for you there's something I need for you to do for me to show your loyalty. And to help me to settle an outstanding score of course."); + elseif(tellpause == 4) then + e.self:Say("I want you to assassinate a Qeynos guard by the name of Nash. He has been a thorn in our side for some time. Bring me his head and I shall defile one of these bears for you."); + elseif(tellpause == 5) then + eq.move_to(1830,1316,-12,220,true); + eq.stop_timer("Secrets"); + already_tell = 0; + tellpause = 0; + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 8276}, 0)) then -- head of nash + e.self:Say("You've done well, I see we are of a like mind. I'll lure the bear outside so you can do your work."); + eq.start(41); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if(e.wp == 3) then + e.self:Emote("holds a bit of food out to the bear cub, 'Want it?'"); + eq.signal(181102,1); + elseif(e.wp == 4) then + e.self:Say("Follow me then little bear"); + elseif(e.wp == 5) then + e.self:Emote("gives the bear the tainted food."); + elseif(e.wp == 6) then + e.self:Say("The diseased within this food acts very quickly. The bear should be maddened by the illness shortly and his liver suitable for harvest."); + eq.signal(181102,2); + end +end diff --git a/jaggedpine/#Guard_Bossamir.lua b/jaggedpine/#Guard_Bossamir.lua new file mode 100644 index 0000000..1c8b1a3 --- /dev/null +++ b/jaggedpine/#Guard_Bossamir.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". We have been sent to protect Fort Jaggedpine against the gnoll threat. Sergeant Caelin seems confident being a veteran of many battles against the gnolls of Blackburrow. I am a bit [concerned] myself due to some rumors I have been hearing."); + elseif(e.message:findi("concerned")) then + e.self:Say("I have heard some disturbing things about the nature of the gnolls that inhabit the caves to the north. Though we guards of Qeynos may be confident of our skills against the younger gnolls, their lesser scouts and spies and the lone fanatics that foolishly attempt to breach the walls of Qeynos we have little in the way of experience against the [upper echelon] of gnoll leadership."); + elseif(e.message:findi("upper echelon")) then + e.self:Say("I have heard that the gnolls that have moved from Blackburrow into these caves were all former Captains and Elite Guards. Gnolls of this caliber are not the usual curs that plague our citizens like roaches. No, these gnolls are among those that mastermind the raids and arrange dark deals in shadowy back alleys with the enemies of Qeynos. Even more disturbing is that a [powerful warrior] is said to lead them."); + elseif(e.message:findi("powerful warrior")) then + e.self:Say("According to those that have gone against him and lived, his skill in combat is said to rival the likes of Kane Bayle and even Ebon Strongbear if such a thing is even possible. No doubt if this is true, he has been training his underlings for the inevitable invasion. I fear what may happen if all this is true. But I may just be getting worked up over nothing. You know how rumors fly and inflate as they pass from the mouths of gossips into the ears of the gullible."); + end +end \ No newline at end of file diff --git a/jaggedpine/#Guard_Finewine.lua b/jaggedpine/#Guard_Finewine.lua new file mode 100644 index 0000000..5506274 --- /dev/null +++ b/jaggedpine/#Guard_Finewine.lua @@ -0,0 +1,32 @@ +-- Quest: Qeynos Badge of Nobility (Badge #5) + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Yeah. Hi. Lovely place this. Humid, dark, wild animals all over the place, man eating plants, snakes and bugs finding their way into my armor and biting me where a man ought not be bit. And if [Bossamir] is right, we're soon to be cut down by ravaging gnolls. Why-oh-why did I get assigned to this job? Why wasn't I assigned to Qeynos where a man can get a decent meal and sleep in a nice bed at night? Oh I'm sorry. Did I say that out loud?"); + elseif(e.message:findi("bossamir")) then + e.self:Say("Hmm. . . Yeah, I have this tendency to prattle on when I'm completely miserable. According to what my colleague Bossamir has heard, these gnolls may be tougher then we thought. But that would be par for the course anyway with the way my pitiful life is going. Woe is me. The people in this backward settlement hate me, Sergeant Caelin hates me and I assume Kane hates me too because he sent me to the armpit of Antonica on a suicide mission."); + elseif(e.message:findi("pate")) then + if(e.other:GetFaction(e.self) < 5) then + e.self:Say("Oh yes! That would be great. Bring me some Pate and let me see that warning again and maybe I can actually read the whole thing without feeling faint."); + elseif(e.other:GetFaction(e.self) < 7)then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8283}, 0)) then + e.self:Say("So he wants to send me to jail simply because I'm not filling out some silly reports? How can I be expected to think in such a decrepit state? Maybe you could help me. If I had a meal worthy of someone of my breeding then maybe I could think. Bring me something elegant, I don't want anything dull and pedestrian. I don't know what I want though. Do you have any suggestions?"); + elseif(e.other:GetFaction(e.self) < 5 and (item_lib.check_turn_in(e.self, e.trade, {item1 = 8199}, 0) or item_lib.check_turn_in(e.self, e.trade, {item1 = 8198}, 0))) then -- Dryad Pate or Potameid Pate + e.self:Say("hmm... This is interesting... The taste is very refined but sort of... odd... We're almost there but I don't think you have the recipe quite right. Rather than that peasant Brandy, use this in your recipe instead. And rather than whatever other 'meat' you were using before use a Panther Liver. You do seem to have some skill as a chef, mayhaps you could work for me some day. Prepare some Panther Pate for me. Give me the Panther Pate and let me read that warning again."); + e.other:QuestReward(e.self,{items = {8284,8283}}); -- Finewine Family Brandy + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8278}, 0)) then -- Panther Pate + e.self:Say("Ah yes, this is perfect! I feel my head clearing already. Wait, is that the sun poking through the trees there or the moon? Hard to tell in this hideous jungle... Oh wait, yes. My shift reports for the last few weeks. Why don't you go ahead and turn these into Sergeant Caelin for me? I'm going to enjoy this fine pate."); + e.other:QuestReward(e.self,0,0,0,0,8279); -- Stack of Shift Reports + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/jaggedpine/#Jeremy_Leafrunner.lua b/jaggedpine/#Jeremy_Leafrunner.lua new file mode 100644 index 0000000..f999ee5 --- /dev/null +++ b/jaggedpine/#Jeremy_Leafrunner.lua @@ -0,0 +1,27 @@ +-- Quest for Jaggedpine - Jeremy Leafrunner: Jeremy's Letter + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there " .. e.other:GetCleanName() .. ". Nice day today isn't it? We really appreciate the help that the city of Qeynos has offered us in defense of [Fort Jaggedpine]."); + elseif(e.message:findi("Fort Jaggedpine")) then + e.self:Say("That's the name my grandfather and grandmother gave to this place a while ago. Great name don't you think? Well at least I think it is anyway. My grandmother moved away after my grandfather passed away a long time ago. Are you [planning a trip to Felwithe] any time soon?"); + elseif(e.message:findi("planning a trip to Felwithe")) then + e.self:Say("Hey that's great. I don't see much of my grandmother these days, would you be [willing to deliver a letter] to her?"); + elseif(e.message:findi("willing to deliver a letter")) then + e.self:Say("Thanks a bunch, I really appreciate it! Here take this to her. Her name is Elishia."); + e.other:SummonCursorItem(8969); -- Letter to Elishia + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 8970}, 0)) then -- Letter to Jeremy + e.self:Say("Thank you very much!"); + e.other:Faction(e.self,1597,10); -- Residents of Jaggedpine + e.other:Faction(e.self,272,5); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,5); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/jaggedpine/#Kaithys_Galestrider.lua b/jaggedpine/#Kaithys_Galestrider.lua new file mode 100644 index 0000000..d3cdc38 --- /dev/null +++ b/jaggedpine/#Kaithys_Galestrider.lua @@ -0,0 +1,80 @@ +-- NPC: #Kaithys_Galestrider in Jaggedpine +-- Quest: Silver Blade of Thunder (http://everquest.allakhazam.com/db/quest.html?quest=2137) + +function event_say(e) + if(e.message:findi("hail") or e.message:findi("great knowledge") or e.message:findi("greater threat") or e.message:findi("turmoil") or e.message:findi("interest") or e.message:findi("threat") or e.message:findi("report") or e.message:findi("group") or e.message:findi("troubling") or e.message:findi("philosophies") or e.message:findi("leave their woods") or e.message:findi("proven to be in vain") or e.message:findi("return the tome") or e.message:findi("key material") or e.message:findi("horrible danger") or e.message:findi("turned") or e.message:findi("victor") or e.message:findi("blade") or e.message:findi("purge the corruption")) then + if(e.other:GetFaction(e.self) < 2) then + if(e.message:findi("hail")) then + e.self:Emote("closes his eyes and gives a mid-bow of his head toward you. 'Greetings, traveler. It is an honor to be reunited with our kindred of the outside world of Norrath, and a great pleasure to make your acquaintance. I am Kaithys Galestrider, citizen and formerly one of many dedicated protectors of the Jaggedpine. Alas, the cycle of life has grown gray in this once vibrant body. Aaaah. . . but do not think that my spirit has grown weary as this body, dear child. I still retain a will of iron and my wisdom has only strengthened with the passing of time. [I still hold a great knowledge] unique to this old mind and my dedication toward this forest and our people is quite strong yet. Do not underestimate the power of sheer will, child, for it can be more cunning and deadly than even the sharpest of blades wielded by the mightiest of warriors.'"); + elseif(e.message:findi("great knowledge")) then + e.self:Emote("gives a brief grumble and harshly clears his throat before speaking in his rough, strong voice, 'All citizens of the Throne of Karana's Thunder will learn to uphold an artisan skill of some sort when they come of age. This is the necessity of those of us who have lived for so long in solitude -- cut off from the outside world and left to our own for existence. In conjunction with my former duties as a ranger of the Jaggedpine, I was found to be adept in the art of blacksmithing. My mentor, who has passed beyond into the great storm of Karana's Eye, taught me the ancient rites and magics used by those of nature?s ward to enhance the quality of our products wielded by our scouts. Unfortunately, I am at a loss to continue production of these weapons, as they are in great need since the arrival of our most unexpected [threat].'"); + elseif(e.message:findi("greater threat")) then + e.self:Say("One of the items stolen in the recent raids was a priceless and sacred tome -- the Tome of Thunder. This ancient tome was scribed by the first of our druids many centuries ago, when the Throne of Karana's Thunder and the Shrine of Karana were constructed. This tome detailed the legend of Karana, the legend of our people and the creation of these still standing monuments that act as a testament of The Rainkeeper's power and his influence among us. Our efforts to relocate the tome were proven unsuccessful until the aid of the Qeynos loyalists came to our side. A scout of the Jaggedpine Treefolk came across some information and his [report] is most disturbing if proven to be the true fate of the Tome of Thunder."); + elseif(e.message:findi("threat")) then + e.self:Emote("clears his throat and makes a motion with his strong arm toward the west, 'The gnolls of Blackburrow dug their way to our forest. Their reasons are apparently 'holy' ones for their kind as they were in search of the ancient shrine of Brell Serilis that was built by the dwarves in secrecy. . . how many years ago I am not certain of. Where the dwarves went and why, again I don't know. In any case, these 'questors' of their earthen deity have taken it upon themselves to make routine attacks on our home. I suppose they feel that if the shrine is now theirs, that the forest above should as well be their personal playing ground. Not that we care so much if the gnolls wish to pay homage to their god, mind you, but their intrusion here is far beyond a nuisance and inconvenience for with them came much more worrisome [turmoil].'"); + elseif(e.message:findi("turmoil")) then + e.self:Say("Much more has come through the gnoll-dug tunnel than the gnolls and their attacks upon our home. The vile criminals of your world have followed the gnolls' heels and infected our land with their greedy lusts for wealth. It seems that one cannot walk the forest without finding a rotting, half-skinned corpse of one of our sacred beasts anymore. They kill for profit -- not for necessity, and they do it endlessly it seems. Many of our scouts have seen dark figures moving in and out of the tunnels leading to Blackburrow and our brethren in Surefall Glade have been kind enough to inform us that these poachers and thieves are selling their prizes on the underground market of Norrath. But their greed does not end at the poaching of wild beasts, for they have taken an [interest] in our ways as well. . . something that will one day prove to be a great misfortune for them."); + elseif(e.message:findi("interest")) then + e.self:Say("As I have already said, the poachers seek profit, wealth, and infamy among the goodly citizens of your world -- and now ours. Like infectious parasites, they feed off of the recognition of their names and the fear that comes to those innocents who are cursed with their attentions. The way they earn this infamy is to directly assault those who would remember them and in this case, it is the Throne of Karana's Thunder that they have turned to in order to quench that venomous desire of theirs. They have raided the village and many of our brothers and sisters, stealing what they can that might fetch some price on their criminal's market. However, it has become a much more dangerous situation than mere thieving of family heirlooms -- we fear that they are unwittingly [aiding a much greater threat] to all protectors of the natural order."); + elseif(e.message:findi("report")) then + e.self:Emote("sighs and shakes his head in further display of his disappointment, 'It seems that the Tome of Thunder was something commissioned to be stolen -- that one who knew of the poachers and their recent activities in the Jaggedpine paid these criminals to steal this specific tome. The scout believes to have found the individual, or [group] rather, that sought and likely now holds the tome and if my suspicions are correct, then it does not bode well for all that pay homage to the sacred protection of nature.'"); + elseif(e.message:findi("group")) then + e.self:Say("The scout believes them to be a cult of militant, brutal, and viscous so-called druids and rangers who have resided in the planes of Karana and the Mountains of Rathe for decades now. This group calls themselves the Unkempt Druids -- but they are false bearers of the Unkempt name, my friend. The true Unkempt reside in solitude to the east in the Unkempt Wood, sealed off from the rest of the world as we were for so long. This is as much a blessing as it is unfortunate for the true unkempt are far more feral and dangerous than any ignorant cultists of your world could even dream to be. What these imposters wish with the Tome of Thunder we have to discover -- but the fact that they exist at all is the danger. We have worked long and hard to keep the unkempt ways unique to their inaccessible territory but this news that the unkempt philosophies, if only a small part of them, have reached the interest of outsiders is very [troubling]."); + elseif(e.message:findi("troubling")) then + e.self:Emote("coughs hard for a moment and then clears his throat, the old mans attentions clearly caught off-guard and his eyes wide with surprise, 'Why is this troubling, you ask?! Any who serves nature -- any part of it be them of the Mother of All or The Rainkeeper must realize that the [philosophies] and ways of the unkempt are not only the ways of chaotic, brutal, viscous, and murderous killers who hold no remorse for their actions against their fellow homid kin, but their ways are one of the greatest threats to ours. They have immersed themselves in the chaos of nature -- acting like a pack of wild, frenzied wolves that will kill any that stumbles into their territory, as well as their own kind when it is deemed 'necessary'. They are feral and wild, believing all semblance of civilization to be blasphemous to the protection of nature and they despise those like you and I because we accept and embrace our culture and use it as a part of our path.'"); + elseif(e.message:findi("philosophies")) then + e.self:Say("To be honest, we know very little about the unkempt as they are not ones to openly share their ways with outsiders in the civil manner of words. What we do know, however, is that where we try to accept and teach all who would lend ear the importance of the natural world -- allowing them to continue their culture and civilization in a way that would not disturb the precious and delicate order and balance of nature, the Unkempt hold a much different outlook. They would see any who give recognition or pledge any fealty to civilization or culture as enemies and thus, they would and will exterminate them. Well. . . so is the perception, in any case. However, we do know that the true unkempt have [no desire to leave their woods] leaving the only explanation for those beyond the Unkempt Woods' boundaries to be impostors."); + elseif(e.message:findi("leave their woods")) then + e.self:Say("We are not certain, but I believe that they are content where they lay. The true unkempt do not show the desire to convert the other orders dedicated to the preservation of nature to their ways through any mass scale mission. Much of this recluse nature is likely a result of the strong influence of the Tribes of the Dawn and the Moon. To be honest, the barricades keeping the unkempt sealed from the Jaggedpine were set in-place with the desire to keep our young, curious, and strong-headed rangers and druids from venturing into the territory. There was also an element of desire to keep the inhabitants of the forest there, for although they may not seem the missionary types, figuratively speaking of course, their ways may very well escape the confines of the Unkempt Wood and many thirsty and curious young druids and rangers might find themselves seduced by the allure and mystery of the Unkempt ways. Unfortunately, it seems that our efforts have [proven to be in vain]."); + elseif(e.message:findi("proven to be in vain")) then + e.self:Say("If what the scout of the glade says is true and the presence of unkempt cultists is indeed a reality then somehow the philosophies or some semblance of them have leaked out into the world. I sincerely doubt that their naming convention is but a coincidence. The true unkempt pay homage to the Mother of All exclusively, although they do so not within the traditional methods of worship and reverence. From what we have gathered, they view her as a spiritual manifestation of the cycle and balance of the natural world -- the divine force that ultimately fuses the delicate balance between life and death, creation and destruction together. That is why it is so difficult to understand why these cultists would want our tome. Perhaps they were misinformed by the one who had introduced them to the path of the unkempt. In any case, despite their reasons for reaving it into their possession, the tome must be [returned] to us."); + elseif(e.message:findi("return the tome")) then + e.self:Emote("furrows his heavy, wrinkled brow as he carefully studies you, 'If you believe you can brave such an endeavor, child, then I am willing to accept the offering of your services to us. The scout of the glade tracked the tome as far as the Mountains of Rathe. I would suggest that be the start of your search. Once you have retrieved the tome, return it to me with haste. We do not want you to be followed or any unnecessary attention being brought to us. When and if you return with the tome, I shall see what I can do to reward your efforts, but without the tome, I fear that my talents are of little use to one of your caliber. But mind you, child, a scout of The Rainkeeper may only use the reward I can provide -- the scouts I refer to are the rangers, rogues and bards who have dedicated themselves to the laws of the storm. If you cannot complete this task without reward and are unable to wield that which I can provide, then move along and know that I bear you no ill will for doing so.'"); + elseif(e.message:findi("key material")) then + e.self:Say("There is a blade, a cursed blade that I have held onto for many years now. Until Gurrin came of age and his skills in blacksmithing and his druidic magics had matured, I was unable to purify the curse and use the blade to create one of my finest creations yet. That weapon is the Blade of Rot -- a weapon that I procured during one of my finer moments as a young adventurer. You see, before the Jaggedpine was sealed, I had frequently left the confines of the forest in search of adventure and my own curiosity of the unknown world guided me. Shortly before the Jaggedpine was sealed, one of my companions stumbled upon a spell that would create a mysterious gateway to an unknown place. Of course, we were foolhardy and arrogant in our ways, so naturally we encouraged our wizard, Yanous, to create the gateway so that we might scout what lies beyond in the unknown. Little did we know the [horrible danger] we had brought upon ourselves."); + elseif(e.message:findi("horrible danger")) then + e.self:Emote("chuckles hoarsely to himself in fond remembrance of his youth, 'We, a group of able, adept, and arrogant adventurers found ourselves in a maelstrom of darkness, chaos, and hate. Aye, my child, we had miraculously found and foolishly walked through a gateway that led to the astral realm of the Prince of Hate. Awestruck, excited, and justly frightened, we dispelled any thoughts to turning away and readied our blades and minds for the battles of our young lives. After all, how could we turn away? This was a true adventure -- to be in the midst of the danger of dangers and engage in the battle of battles. We fought for what seemed to be eons; undead after undead and priest after priest -- each one falling to a torrent of blades and woven magical energies. We emerged victorious through even the seemingly impossible battles and then as we readied our blades for yet another planar villain, the [tides were turned].'"); + elseif(e.message:findi("turned")) then + e.self:Say("'Till the day that the Eye of Karana's Storm takes me, I will never forget the sight that fell before us. An unnatural behemoth; a monster of steel, bone, and flesh stood before us. Its blue-black flesh was like a sheet of silk stretched over unnaturally formed muscles beneath an exoskeleton of bone and steel-plated armor. The armor child, the armor breathed! It pulsed with life. . . or death, and it moved -- slithering around its host's form like cloth churned by a gentle breeze. Clutched in one of its massive talons was the twisted length of steel and bone, which it wielded with a grace I've yet to see surpassed and the deadly force of Innoruuk's very hatred. We engaged this agent of hate -- this nemesis of life for what seemed an immeasurable limit of time. All that I can remember are the deafening, monstrous roars bellowed by the knight and the blaze of steel, blood, and flesh that danced around us in the peril we engaged. [Victory] seemed impossible."); + elseif(e.message:findi("victor")) then + e.self:Emote("sighs, his demeanor now strikingly seriously, 'In the finest aspect of the world -- aye, we ultimately defeated the monster but not without consequence. My brother both in blood and in arms fell, as did our enchantress and my beloved, Malyrie. We could not save them. . . I still remember Malyrie's calling to me; pleading for us to flee and leave her to hold off the rushing hoards of Innoruuk's servants that sought to avenge their fallen champion. Yanous, a Koada'Dal wizard who I believe still lives but whom I have not seen in decades, fell upon instinct and phased us away from that place of death and hate. I can only assume that Malyrie perished shortly thereafter, and my brother's corpse was never laid to a proper burial. However, I was able to recover the massive [blade] that the knight wielded -- I don't know why exactly I recovered it, but it was a force strangely like a foreign instinct that forced me to take it up from the ground.'"); + elseif(e.message:findi("blade")) then + e.self:Say("When we returned to the Jaggedpine and several weeks after the mourning of our departed loved ones, I took the liberty of inspecting the blade carefully. It was a curious item, although saturated with the corruption and evil of the very seething hatred that inspires all of Innoruuk's creations. Through extensive research and Yanous' aid, I was able to determine that the blade was tied to the Deathrot Knight -- the creature that wielded the blade, but it was fading, attempting to return to the divine realm that it was forged in. Yanous placed an enchantment upon the weapon to keep the corruption dormant and its 'consciousness' at bay, so long as the weapon remained within the confines of the Jaggedpine. Unfortunately, [Yanous was unable to purge the corruption] from the blade entirely and we felt it wise to not speak its presence to the elder priests whom might have been able to do that which Yanous was unable."); + elseif(e.message:findi("purge the corruption")) then + e.self:Say("Though his powers as a wizard are great, his knowledge did not reach far enough into the occult and the spiritual realms of divine magic. He did what he could and it was more than enough for the time being. As I have already said, I have been waiting patiently for my assistant and apprentice to come of age and mature in his priestly power before I attempted to make proper use of this blade in honor of my brother and beloved's demise. But, the blade was stolen before I was able to present it in secret to Gurrin and I fear that it may have returned to the realm of hate and the Deathrot Knight may again be in existence. We must have the blade returned and the only way you can do this is to venture to the plane of hate and destroy the Deathrot Knight. You must return the blade to Gurrin with the Writ of Thunder and we shall be able to complete what was intended all those years ago."); + end + elseif(e.other:GetFaction(e.self) < 6) then + e.self:Emote("calmly clears his throat as he sternly raises a brow in careful study of you, 'Yes... yes, I can see that you have much potential, my friend. But you are young yet to the the ways of The Rainkeeper and your acceptance among our kin of the Jaggedpine has not yet reached a comfortable level that would allow me to extend the necessary trust. Well, perhaps you should return to the wilds and continue your efforts as you have, my friend, and return to me when you feel the grace of The Rainkeeper strengthen about you and the eyes of our people look more fondly upon you. Do not be disheartened, child, for we all must earn our place and I have faith that you will be up to the challenge most suitably."); + else + e.self:Emote("curls his lip and gives a gruff noise from his throat in disapproval, 'Begone from me, traveler! The incipid stench of corruption stinks all about you. Perhaps in time, you may find a lather pure enough to wash the stench from your very essence, but only through much effort and strife may you achieve such a feat."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 2 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8907}, 0)) then -- Tome of Thunder from an unkempt fanatic + e.self:Emote("examines the tome carefully, running his callused hands over the cover and spine and flipping through the ancient parchement within, 'Yes...nicely done, child. It is in miraculous condition for the recent fate that befell it. I am indebted to you and have the noblest intentions to repay your efforts. However, whilst you were away, my smithy was raided and most of my needed supplies to create the item I think a suitable reward for your efforts were stolen by the poachers. I will need to retrieve one of the [key materials] and take it with the Writ of Thunder to my assistant, Gurrin Nitestorm who you may find in the Surefall Glade.'"); + e.other:Faction(e.self,1597,5); -- Residents of Jaggedpine + e.other:Faction(e.self,272,2); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,2); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,8908,1000); -- Writ of Thunder + elseif(e.other:GetFaction(e.self) < 2 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8915}, 0)) then -- Purified Silver Blade turn in from Gurrin Nitestorm in Surefall + e.self:Emote("takes the blade and intently examines it. Satisfied with the purified quality, he nods to himself and proceeds to remove the gem from the hilt of the blade before returning it to Malvesti, 'You will need to seek out two items and return them to me. Those items are the Essence of Thunder and the Voice of Karana. The essence you will find in The Hole where one known as Ikurenm the Sly resides. Some time ago, before my initial acquisition of the blade, this imp stole the sacred rune from my mentor and only now are we able to retrieve it for its purpose has now reached its dawn. The second item, the Voice of Karana, you will find in the possession of Zrithsadioun the Tainted who wanders the planes of Southern Karana. Zrithsadioun is one of the plague worshiping gnolls of Infected Paw who is so twisted and vile that even his own people have cast him out. Very recently, one of our scouts overheard the gnolls of the shrine discussing a recent loss of their stolen bounty. One of the items that were stolen from them was..."); -- Final sentence incomplete from live + e.other:Faction(e.self,1597,5); -- Residents of Jaggedpine + e.other:Faction(e.self,272,2); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,2); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,17505,1000); -- Purified Silver Blade (Container) to combine Orb of Thunder(8914) in to form the Silver Blade of Thunder(8916) + elseif(e.other:GetFaction(e.self) < 2 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8912,item2 = 8913})) then -- Essence of Thunder(8912) and Voice of Karana(8913) + e.self:Emote("takes the hollow, smoky orb in one hand and the tiny wooden charm in the other. Slowly, the ancient ranger begins to speak in an unknown dialect. His chant causes the small charm to glow and the air around you to begin to sway in a gentle, chilled breeze. The scent of the storm fills your nostrils as the magical zephyr begins to rage, simulating the coming of a powerful tempest. The old ranger's voice booms out beyond the tempest gale and suddenly, he forces both of his hands together, sealing the small wooden charm of Karana's divine voice into the orb. The magical storm steadily fades as the two pieces are conjoined and handed to Trod, 'This is the Orb of Thunder. Place it within the hilt where the gem had once been and your task will be complete and your reward fulfilled. It has been a pleasure and I thank you for all that you have endeavored to aid me in completing this near half a century long goal of mine. May it serve you well, my friend."); + e.other:Faction(e.self,1597,10); -- Residents of Jaggedpine + e.other:Faction(e.self,272,5); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,5); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,8914,5000); -- Orb of Thunder + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/jaggedpine/#Lady_Deira.lua b/jaggedpine/#Lady_Deira.lua new file mode 100644 index 0000000..3db5f18 --- /dev/null +++ b/jaggedpine/#Lady_Deira.lua @@ -0,0 +1,76 @@ +-- Lady Deira +-- Crown of the Tempest Guard Quest + +function event_say(e) + if(e.message:findi("hail") or e.message:findi("duties") or e.message:findi("lost") or e.message:findi("undisciplined") or e.message:findi("secrets") or e.message:findi("no place") or e.message:findi("alive once again") or e.message:findi("ways of your ancestor") or e.message:findi("tempest guard") or e.message:findi("worthy to bear") or e.message:findi("items") or e.message:findi("Nyrein's Tome") or e.message:findi("Tempest Rune") or e.message:findi("entrusted with the stone") or e.message:findi("history") or e.message:findi("decision") or e.message:findi("truth") or e.message:findi("doubt") or e.message:findi("have his tale")) then + if(e.other:GetFaction(e.self) < 2) then + if(e.message:findi("hail")) then + e.self:Emote("closes her eyes and gives a formal, polite bow to you, 'I am Lady Deira, Veteran of Thunder and one of several ambassadors to the Jaggedpine from Qeynos. It is a pleasure to make your acquaintance, although I fear that I am not one for words or company at the moment. I have [duties] to uphold and must give the fullest of my attentions to the fort.'"); + elseif(e.message:findi("duties")) then + e.self:Say("When his majesty, Antonious IV, ordered the removal of the barricades that had separated the Jaggedpine forest from the rest of the Qeynos lands, the council of Qeynos hand-picked several ambassadors to venture to the forest and provide the proper support of both military needs and social reconstruction purposes. I was sent to aid in fortifying the military front to ward off the attacks of the gnolls and any other intruders that might climb through the gnolls' burrow. It has proven to be a very trying task as the gnolls are quite persistent in their attacks of Fort Jaggedpine and the fort's residents are rather. . . [lost] in the ways of modern warfare."); + elseif(e.message:findi("lost")) then + e.self:Say("I do not mean to insult either their integrity nor their abilities, it is merely that they have been cut off from us for so long and have never had the chance to benefit from the experiences of the passing times. Granted, much unfortunate turmoil and darkness has enshrouded our world and they were spared the suffering of Norrath for some time, but the lessons learned have been denied to them. They are capable scouts and unrivaled artisans who hold tradition in a sense of honor that is to be commended and respected, but they know little about war or defense. Their existence has been peaceful -- nearly tranquil in comparison and they struggle now. However, this does not mean that there is no hope to maintain the precious balance they have established and upheld since before the construction of the great cities of Norrath, nor does it mean that they are incapable; merely [undisciplined]."); + elseif(e.message:findi("undisciplined")) then + e.self:Say("Again, I do not speak out against the abilities that they do have -- they are able warders of nature and I do not underestimate the cunning of their scouts. It is when the obstacle is unknown that they find themselves without the knowledge to appropriately defend, nor are they trained to handle an onslaught of attacks that has been so generously afforded in the recent days. My duties are not only to aid in the protection of the fort and the people of the Jaggedpine, but I am also here to train their citizens in the manner of defense and offense of battle. They have been most receptive to my coming and have shown much interest in what lessons I have been able to offer thus far and in return, they have been most gracious in their hospitality and shared [secrets] of our mutual faith."); + elseif(e.message:findi("secrets")) then + e.self:Say("The people of Fort Jaggedpine are master artisans and their faith to The Rainkeeper is pure -- having been spared the change of the modern eras. Their ancient ways are some of the very precious and priceless jewels that we strive to protect in our presence here; but shields and steel can do only so much to protect and assure that this ancient culture survives. It must be passed on from generation to generation and faithful to faithful. I, like all of my fellow ambassadors from Qeynos, am devoted in spirituality to The Rainkeeper and thus the keepers of the ancient ways have been well received to our presence and inquiries. I recently have been taught the ancient secrets of their blacksmiths -- secrets that until recently held little to [no place] in the recent culture of the Jaggedpine."); + elseif(e.message:findi("no place")) then + e.self:Say("When the Jaggedpine forest was ordered to be sealed, only those who were directly connected with the natural world in their profession were allowed to remain in the forest's confines. This was a decision made not out of prejudice, but out of a fundamental necessity to maintain the bare minimum that was thought needed to preserve that which they sought to spare from the approaching corruption of the time. The warriors, knights, rogues, and the minority of the arcane scientists loyal to The Rainkeeper and the philosophy guarded by his faithful were warmly and hospitably accepted into the already existing guildhalls of the Qeynos city proper. However, the traditions of these minority professions dedicated to the philosophies and culture of The Rainkeeper did not die -- they merely faded for a while. But they are very much [alive once again]."); + elseif(e.message:findi("alive once again")) then + e.self:Say("With the reunion of the Jaggedpine forest with its sister, the Surefall Glade and reinstatement into the kingdom of Qeynos, the old ways of the minority followers have resurfaced. As I am a warrior whom has been dedicated to The Rainkeeper since I first took up the blade, I have been given the honor of being introduced and tutored in the [ways of my ancestors]."); + elseif(e.message:findi("ways of your ancestor")) then + e.self:Say("There are several rites that the Veterans of the Storm, the title bestowed to the warriors and knights loyal to The Rainkeeper, perform to place themselves among the ranks of The Rainkeeper's faithful. Unfortunately, this time of turmoil has kept much of these rites from being properly resurrected and performed, although they are not forgotten and the intentions to introduce them once again to the faithful remain strong still. However, there is one practice that the artisans and elders of Fort Jaggedpine have been able to relay to me. They are very traditional by nature and wished to reunite their distant brethren not only with the forest but also with the ways of their ancestors before them, so they invited me to learn the rites of the [Tempest Guard] and wield our ancient symbol."); + elseif(e.message:findi("worthy to bear")) then + e.self:Say("Very well and it is now that we shall begin. As with all things of the Jaggedpine and the ancient ways, you must endeavor on your own accord and initiative to achieve recognition among the ranks of this society. I shall give you the guidance toward the path, but you must willingly walk it -- and you must do so in facing many great dangers. The first steps that you must take are ones of material acquisition, or on a more fine of point, you must obtain the [items] that will be constructed into your symbol, should you prove worthy of it in the end."); + elseif(e.message:findi("Tempest Guard")) then + e.self:Say("The Tempest Guard is a title bestowed among the most devout and capable of the Storm's Veterans. I do not say this in boast or overconfidence, mind you. I walked the tremulous path and strove to earn this ancient and sacred place among my kin. Now, I am one of few to hold the title, for true warriors and knights dedicated to The Rainkeeper are rare and finding those whose hearts are truly set upon the path of storms are rarer yet. As I exist as a bearer of this rank, I am also one of the mentors that guide it. If a veteran of the storm views themselves as [worthy to bear the Tempest Guard symbol], then I shall be the one that tests the validity of their views."); + elseif(e.message:findi("items")) then + e.self:Say("You will be sent, as your first task, to retrieve two items that will be critical to the fulfillment and possible success of your trial. The Earthen Crown of the Underfoot, the first of the two items you must obtain, resides in the depths of The Hole. One named Tzitzi the Crazed holds the crown. Beware him, for although his madness is consuming, his cunning and wile are not to be underestimated. The second item that you must return to me with the crown is [Nyrein's Tome], which is rumored to exist in the depths of Kedge Keep."); + elseif(e.message:findi("Nyrein's Tome")) then + e.self:Say("When great cities were still in the dawn of their conception, Nyrein Shadowstorm was the first to bear the title of Tempest Guard. She was an able warrior who had defended her homeland of the Jaggedpine time and time again -- warding away the bestial foes of the Unkempt Wood and slaying the would-be raiders of the other nomadic tribes that sought to reave the precious forest for their own. It is said that the spirit of Karana himself blessed her -- guised in the form of a raging tempest that accompanied her through the campaign that would secure the Jaggedpine for our ancestors. It was then that she was bestowed the name of Tempest Guard and the circle of the Veterans of the Storm was set in-place. In her final campaign centuries past, she fell beneath the spell of the Kedge. What resides of her there is but a hollow shell -- the true Nyrein ascended into the Eye of Karana's Storm long ago and her physical essence is sadly but a tormented servant of the deep."); + elseif(e.message:findi("Tempest Rune")) then + e.self:Say("Long before the order of the Veterans of the Storm had been established; long before the Jaggedpine had been fully settled by our nomadic ancestors, a brave young scout came upon a most powerful item by the grace of an unlikely chance. This item was a simple white stone, yet engraved upon it was a beautiful, complex rune. The young warrior found the item to be more beautiful than anything he had seen before -- more beautiful than the lush forest; more beautiful than even the great tempest that had recently scorched the earth of his people's land. The young warrior thought the rune to be a gift from the storm -- from Karana himself. He returned it to the elders of his tribe, who also found the great beauty of this simple white stone to be divine. The young warrior was [entrusted with the stone] while the elders and early artisans introduced the design into their cultural and spiritual works."); + elseif(e.message:findi("entrusted with the stone")) then + e.self:Say("Our ancestors were not selfish people and although the stone's beauty overwhelmed them with an unspeakable spiritual purity, they knew that it had not fallen into this warrior's hand by simple chance. They felt that the great god of the storms had wished for the stone to fall into this young man's possession, and so they respectfully obliged what they interpreted to be their deity's will. As time passed and the completion of Karana's Shrine was near, the elders called upon the then able warrior to attend the final ceremony of the shrine's completion. It was then that the warrior knew the stone's purpose and as the storm was captured into the very rock of the shrine, he placed the stone upon one of the branches of the sacred tree that the shrine was built around. The lightning from the final moments of the storm was absorbed into the rune. Eventually, this rune would become a sacred symbol for all who pledge their blades to The Rainkeeper. However, [history] would weave a new turn to that tale."); + elseif(e.message:findi("history")) then + e.self:Say("When Antonious III ordered the sealing of the Jaggedpine Forest, Anumnan Dathry, then a Tempest Guard, was one of many who understood the need and supported the decision. The years passed and Anumnan grew old, putting aside his sword for the life of a priest. He would see his only heir would rise to hold the honor of Tempest Guard, however, his son would betray the Knights of Thunder. In this knight's eyes, the betrayal was not one performed out of malice; on the contrary, he felt that his slaying of the order's then senior knight was an act of pure devotion, for it was his thought that his superior had fallen into the clutches of a venomous shadow that lurks even now in the depths of Qeynos. It was thought that Anumnan's son had been manipulated by this evil and the slaughter of the knight was one orchestrated by the shadow he sought to purge. Anumnan then faced the gravest [decision] that any father and devoted priest fears."); + elseif(e.message:findi("decision")) then + e.self:Say("Anumnan, a high priest of The Rainkeeper and confidant of the Veteran order, was asked to aid in the judgment to be passed onto his only living heir, as it was his duty to his order and deity. As a priest, he knew what he had to do -- as a father, he fell into the clutches of a silent suffering that viscously wove anger, regret, pity, and undying love. It was his duty to aid the Council of the Storm in this decision and in the end, he agreed with the council to execute the fallen knight. The night his son's body was respectfully laid to final rest within the sacred temple of The Rainkeeper, Anumnan was confronted with a [truth] that would change him forever and set him on a pitiable path of insanity."); + elseif(e.message:findi("truth")) then + e.self:Say("As Anumnan paid his respects to his lost child in solitude and peace, a cloaked woman approached him. Callously, she held the aged priest to the envenomed point of her dagger and forced him to imbibe her tale. It was then that she revealed to Anumnan the truth -- the truth that his son's accusations and actions were not only correct and justified, but they had saved the entire order from complete corruption within the infectious shadow. She would reveal to Anumnan the name of the one who had betrayed his son and the order; the name of the one who had worked beside the corrupted knight and originally painted his son as their scapegoat. Before Anumnan could question the woman, she disappeared back into the darkness that had delivered her and this fateful news, leaving him alone in his consuming [doubt]."); + elseif(e.message:findi("doubt")) then + e.self:Say("Anumnan carried with him the entirety of doubt -- for he doubted everything now. He doubted the woman and her tale, he doubted her motives that in his mind were countless, he doubted himself, and he doubted his sacred order and faith. This doubt would eventually drive Anumnan mad and two years later, lead his hand to slay the one who bore the name the woman had uttered to him upon his son's grave. Out of respect for Anumnan, his son, and the order, we speak neither the name of our martyred brother nor that of the villain who had come so close to the Knights of Thunder's ruin. It is said that the crazed Anumnan hired several rogues to execute every ranking member of the Veterans of the Storm and return to him as proof of their demise the single, sacred rune that they wore about their necks. You see, " .. e.other:GetCleanName() .. ", Anumnan originally sought council with his closest of allies within the order when he began to doubt, but their ears [would not have his tale]."); + elseif(e.message:findi("have his tale")) then + e.self:Say("The order knew of Anumnan's grief and was saddened by the priest's sudden confusion, doubt, and questions. They kept his confidence well, however, and did not speak beyond their own circle of Anumnan's account of the rogue, but his madness would twist his allies' compassion into callous ignorance. Anumnan grew to believe that the corruption the rogue had spoken unto him had already seeped into the order and he began to nurture a festering lust for vengeance. Anumnan was never caught by Qeynos, but it is said that he sought refuge within the city of Freeport. Our intelligence was only able to find the remnants of Anumnan's tale reduced to that of a pitiable madman who dwells in the southern desert of Ro. Seek Anumnan and return him to the Eye of Karana's Storm that his caged spirit has sought for so long. Anumnan will also carry the rune that you seek, for as he destroyed the others, including his own, he still wears the one that had once belonged to his departed son."); + end + elseif(e.other:GetFaction(e.self) < 5)then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + elseif(e.other:GetFaction(e.self) < 6) then + e.self:Say("Leave my presence at once. Your ways of life are not acceptable to one who follows the Rainkeeper."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 2 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8918,item2 = 8917})) then + e.self:Say("You have done well thus far and I commend your actions and success. Now, the trials shall continue and this shall be the walk that tests your faith -- judging its suitability to bear the symbol. Take this, Nyrein's Prayer, to one known as Lord Mrallon in the city of Qeynos. He is aware of the rites of the Tempest Guard and will know full well of the path that has been set before you. With the prayer, he will expect the [Tempest Rune] that you must obtain before seeking him. Once you have the rune, you shall return it and the prayer to Lord Mrallon and should you prove successful in this task and thus worthy of the final trial, he shall guide you further."); + e.other:Faction(e.self,1597,10); -- Residents of Jaggedpine + e.other:Faction(e.self,272,5); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,5); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,8919,1000); + elseif(e.other:GetFaction(e.self) < 2 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8952}, 0)) then + e.self:Emote("gives you a warm, gentle smile and a bow of respect as she offers a white steel crown ornamented with a single blue gem. 'Welcome to the Veterans of the Storm. We honor you as Tempest Guard, Downz. Bear this symbol in humility and as a sign of your eternal pledge in service and protection of all that The Rainkeeper holds dear and sacred.'"); + e.other:Faction(e.self,1597,15); -- Residents of Jaggedpine + e.other:Faction(e.self,272,7); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,7); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,8954,2000); -- Crown of the Tempest Guard + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/jaggedpine/#Morgan_Wetstone.lua b/jaggedpine/#Morgan_Wetstone.lua new file mode 100644 index 0000000..cd1f902 --- /dev/null +++ b/jaggedpine/#Morgan_Wetstone.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met, " .. e.other:GetCleanName() .. ". Welcome to the Throne of Karana's Fury!"); + elseif(e.message:findi("throne")) then + e.self:Say("That is the proper name of our settlement. This clearing was a gift to our ancestors, given to us by Karana! I simply can't believe that a few blasphemous fools actually pushed to change the name to Fort Jaggedpine after all these years. It simply is not right!"); + elseif(e.message:findi("fort")) then + e.self:Say("Fort Jaggedpine? Bah, this is no military complex! It's just our tiny collection of houses and shops like it has been for generations. I hate the name myself."); + end +end \ No newline at end of file diff --git a/jaggedpine/#Nerdala_Darkcloud.lua b/jaggedpine/#Nerdala_Darkcloud.lua new file mode 100644 index 0000000..3c344f3 --- /dev/null +++ b/jaggedpine/#Nerdala_Darkcloud.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", what can I help you with today?"); + elseif(e.message:findi("pasta")) then + e.self:Say("So it's pasta recipes you're looking for, huh? Well, I'm going to have to put you to work then. Are you [willing to run a small errand] for me?"); + elseif(e.message:findi("willing") or e.message:findi("small errand")) then + e.self:Say("Well, that's nice of you. Here, take this Lunch Bag and bring it to Waldo Pinemyer. He is the steward of the Shrine of Karana on the far edge of forest. Take his lunch to him and bring the empty bag back to me and I'll let you have my pasta recipes."); + e.other:SummonCursorItem(8271); -- Lunch Bag + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 8272})) then -- Empty Lunch Bag + e.self:Say("Oh why thank you dear. Here's the pasta recipes as I promised."); + e.other:QuestReward(e.self,0,0,0,0,18427); -- Pasta For All + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/jaggedpine/#Nolan_Greenwood.lua b/jaggedpine/#Nolan_Greenwood.lua new file mode 100644 index 0000000..2862048 --- /dev/null +++ b/jaggedpine/#Nolan_Greenwood.lua @@ -0,0 +1,47 @@ +-- Nolan Greenwood +-- Jaggedpine druid armor quest + +function event_say(e) + if(e.message:findi("hail") or e.message:findi("ancient way") or e.message:findi("accept them") or e.message:findi("trials") or e.message:findi("tools") or e.message:findi("ask of her") or e.message:findi("guide me") or e.message:findi("silver griffon") or e.message:findi("jade studded")) then + if(e.other:GetFactionValue(e.self) >= 750) then + if(e.message:findi("hail")) then + e.self:Emote("gives a gentle nod to " .. e.other:GetCleanName() .. ". 'Greetings. I am Nolan Greenwood, warder of the Jaggedpine and retainer of our [ancient ways]. The recent introduction of [outsiders] whose faith and loyalties mimic our own toward The Rainkeeper has led to the rebirth of a long lost excitement and use for my talents, thus my presence here today. Usually, I would not be so easily found for when presented with the choice, for I prefer the sanctuary of the open forest to the confining walls of my room here at Fort Jaggedpine.'"); + elseif(e.message:findi("ancient way")) then + e.self:Say("As with any culture, my friend, there are countless established ways of life, worship, law, and order. It would be impossible for me to explain all of our ancient ways in a single conversation -- and even more impossible would it be for you to understand them. You must experience and [accept them as your own] to fully understand."); + elseif(e.message:findi("accept them")) then + e.self:Emote("raises a brow and gives a gentle, warm smile to " .. e.other:GetCleanName() .. "'s declaration. 'I see, and am very pleased to know that your interest has grown and your heart is opened to know the path of The Rainkeeper. As I retain the laws and order of nature that we of the Jaggedpine have sworn ourselves to, I will be more than willing to give you what words I can to guide you toward true discovery of what it means to be of The Rainkeeper's service and pledge. The rest shall be taught through your own experience in these [trials].'"); + elseif(e.message:findi("trials")) then + e.self:Say("To show your devotion to the natural world and strengthen your abilities to protect it, you must engage in a symbiotic relationship with nature. As you give your devotion and one day your life to the natural world, it will equally provide the [tools] that will aid you to execute the duties and protection you have pledged to uphold."); + elseif(e.message:findi("tools")) then + e.self:Say("Sustenance, shelter, and the necessities that we must have to survive are all provided by the world that we must protect. The wilderness will also lend its spiritual force to you, and it is the fullest potential of that spiritual force that I can see you and many other druids have yet to truly harness. Do not think that we reave these things from nature -- for as I said, our relationship must be mutual. If you invest the time and prayer to [ask of her], she shall provide the rest of these needs most willingly -- as a mother would her beloved child."); + elseif(e.message:findi("ask of her")) then + e.self:Say("These questions are not of the vocal expression, my friend. To request nature's aid, you must go in-search of that aid. In that search, you will provide unto her nothing less than a service equal to what it is you seek. My beloved daughter, Cheyloh, and I shall [guide you] through this quest."); + elseif(e.message:findi("guide me")) then + e.self:Say("I will give you the guidance of words and my knowledge of the details pertaining to your tasks. My experience and talents in the ways of making proper and the most efficient use of that which nature will grant you in gratitude of your service to her shall be at your disposal as necessary and appropriate. The first of your tasks will be to acquire and return to me two items -- [Silver Griffon Feathers] and a [Jade Studded Rawhide Tunic]."); + elseif(e.message:findi("silver griffon")) then + e.self:Say("There is a beast known as the Silver Griffon whom lurks in the darkest of shadows cast by Luclin's light. Although this creature was born of those that are natural, the Silver Griffon himself is not. Once a great and powerful creature of the Karana Plains, the beast known as the Silver Griffon was killed and its spirit corrupted by the priests of The Plaguebringer when their scourge was brought upon those plains not too long past. Put this creature to rest and from its ethereal wings, bring me its silver feathers."); + elseif(e.message:findi("jade studded")) then + e.self:Say("As the Qeynos faithful of The Rainkeeper have come to us, we have sent some of our most adept brothers and sisters to them as an act of good faith in hope that our ways would be exchanged. One such adept is Jhaya Wyndrunner. She, like myself, is a keeper of our ways -- a former apprentice of mine, in fact, and a master in the arts of weaving. Speak to her about the Jade Studded Rawhide Tunic and she will give you further guidance on how you may acquire it."); + end + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("gives a gentle smile and slight nod of his head in greetings, 'Hello, " .. e.other:GetCleanName() .. ". I am Nolan Greenwood, elder druid and resident of the Jaggedpine. Do forgive me for cutting this meeting short and please do not take offense to it, but there is much to be done and you have yet to prove yourself as trustworthy of our cause. Again, my most sincere apologies, but please do not be discouraged from seeking to prove yourself among us -- especially if you are one who holds the ways of The Rainkeeper as your own. Return to me when you have shown your experience and devotion to our cause and I will gladly receive you and whatever business you may have then."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + -- jade studded rawhide tunic and silver griffon feathers -> tunic of the pine + if(e.other:GetFactionValue(e.self) >= 750 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8761,item2 = 8760})) then + e.self:Say("You have done well, " .. e.other:GetCleanName() .. ". I am impressed and most pleased to know that you are adapting and accepting our ways so easily. Take this and may it protect you in these troubling times."); + e.other:Faction(e.self,1597,10); -- Residents of Jaggedpine + e.other:Faction(e.self,272,5); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,5); -- Protectors of Pine + e.other:Faction(e.self,262,2); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,8400,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/jaggedpine/#Pergan_Darkcloud.lua b/jaggedpine/#Pergan_Darkcloud.lua new file mode 100644 index 0000000..cdf9bc5 --- /dev/null +++ b/jaggedpine/#Pergan_Darkcloud.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ". My wife Nerdala and I have been in the business of making delicacies from the fresh ingredients available locally in our forest. Well, really my wife is the better cook but I'm pretty good at [making Noodles]."); + elseif(e.message:findi("making noodles")) then + e.self:Say("Noodles are pretty easy. They are just Flour, Egg and Water. It's how you use [the Noodles] after you make them that is important."); + elseif(e.message:findi("the noodles")) then + e.self:Say("There's a whole bunch of things you can do with them but the best thing you can do with them are to make [pastas] and casseroles."); + elseif(e.message:findi("pasta")) then + e.self:Say("Well, you're going to need to talk to my wife about those recipes. She guards them pretty closely though so you may have to do some prying. Now what I am really good at is making Omelets!"); + end +end \ No newline at end of file diff --git a/jaggedpine/#Ralleford_Twothorns.lua b/jaggedpine/#Ralleford_Twothorns.lua new file mode 100644 index 0000000..83079dd --- /dev/null +++ b/jaggedpine/#Ralleford_Twothorns.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Twothorn's residence. My name is Ralleford and this is my wife Diedra and daughter Donna. Things have been a bit [tense] around here lately."); + elseif(e.message:findi("tense")) then + e.self:Say("We've lived here in relative peace for a long time enjoying the tranquility of the forest living off the blessing provided us by Karana. However, some time ago the gnolls managed to tunnel their way through their burrow and have found an entryway into the forest. A group of them have moved out of Blackburrow and have set up residence in a cave to the north. Many of us are very [worried]."); + elseif(e.message:findi("worried")) then + e.self:Say("We have good reason to be worried. The gnolls have always been a threat to the city of Qeynos from what I gather, but they are a well-defended city with a standing army. We are but a small and simple community and we think that the gnolls may attack us very soon. I fear for the [safety of my daughter] the most."); + elseif(e.message:findi("daughter")) then + e.self:Say("Well, she's getting to that age now. As much as I'd like to keep her here at home she's pretty much grown and she's taken to the habit of sneaking out when she thinks we aren't looking and from what I hear, she's been visiting Qeynos. And with that dreamy and wistful look in her eye, something tells me she's found herself a boyfriend. If you happen to catch her wandering off, could you keep an eye on her just to make sure she's ok?"); + elseif(e.message:findi("fort") or e.message:findi("throne")) then + e.self:Say("I don't really mind the name change I guess. I'm a little nostalgic and kind of liked the old name but honestly, times change. My wife is a bit more opinionated then I am though. I'm just happy to have the guards here to protect my family and I from the threat of those accursed gnolls."); + end +end \ No newline at end of file diff --git a/jaggedpine/#Randel_Stormwind.lua b/jaggedpine/#Randel_Stormwind.lua new file mode 100644 index 0000000..9650d04 --- /dev/null +++ b/jaggedpine/#Randel_Stormwind.lua @@ -0,0 +1,44 @@ +-- Randel_Stormwind +-- Quest for Jaggedpine - Randel Stormwind: Jaggedpine Poacher Heads + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met, " .. e.other:GetCleanName() .. ". This has been a very stressful time for many of us and some of us have been kind of edgy lately. We've lived here for generations and in relative seclusion and we enjoyed a simple life for the most part. Unfortunately, this was not to last and the sudden [change] has left many on edge."); + elseif(e.message:findi("change")) then + e.self:Say("There are a lot of people that resent the outsiders and view their presence as corrupting our way of life. It's more then just the new guards and the sudden influx of people though. This is sort of a long story that begins when my grandfather was just a lad. It was during the rule of Antonius III that public [access] to the Jaggedpine Forest [was restricted]."); + elseif(e.message:findi("access was restricted") or e.message:findi("access restricted")) then + e.self:Say("The Protectors of the Pine became concerned when adventurers began wandering through Jaggedpine Forest and into the Unkempt Wood. Most that did were never heard from ever again. The residents of Surefall feared retaliation from the Unkempt for those trespassing into their territory and Antonius smartly reasoned that if Surefall Glade were to be taken, Qeynos would surely be next. So he declared Jaggedpine Forest and all points eastward off limits. So it was just our ancestors that dwelled on the [Throne of Karana's Fury]."); + elseif(e.message:findi("Throne of Karana")) then + e.self:Say("Yes, that was what this place was called until recently but I'll get to that part in a minute. We who acted as stewards were allowed to come and go as we pleased through Surefall Glade. For the longest time things were peaceful. Sure, we had problems with the odd [poacher] here or there but for the most part it was peaceful. However, trouble began when an [outsider] snuck through Surefall Glade and entered the Unkempt Wood."); + elseif(e.message:findi("poach")) then + e.self:Say("Yes poachers often sneak in and mindlessly kill our sacred bears for their skins. Often they'll kill a mother bear and leave their cubs for dead. If I am able, I'll take the cub and raise it. If I do my job well, I'm able to release the bear back into the wild once it is old enough to fend for itself. There is one [group] of poachers I'm particularly worried about though."); + elseif(e.message:findi("group")) then + e.self:Say("They are a pair of ne'er-do-well couples that have been terrorizing the animals recently, killing and maiming every creature they happen across. It's their sick idea of sport. They need to be stopped. They call themselves the [Pirates of the Pine]."); + elseif(e.message:findi("pirates of the pine")) then + e.self:Say("They are a bunch of good for nothing lowlives! I would stop them myself but sadly, I lack skill with a weapon. You on the other hand, look like you can handle yourself pretty well. If you are able to bring these four to justice, return to me with proof. You will be justly compensated for your efforts."); + elseif(e.message:findi("outsider")) then + e.self:Say("She was a Koada`Dal Enchantress that frequently visited the libraries of Erudin. She heard about the strange Tunare worshipers and sought to investigate them. She barely escaped with her life and was found half dead by a kind ranger by the name of Jorgan Leafrunner. He took her back here and nursed her back to health. As a matter of course, they fell in love with each other. [Love is blind] they say."); + elseif(e.message:findi("Love is blind")) then + e.self:Say("She was a woman of the world, very agnostic in her beliefs and much different at the core from Jorgan who was a devout follower of Tunare. She began to corrupt him with her worldly beliefs and to turn him away from Tunare. She thought our name for what we call home was silly and began a campaign to convince other to change the name to [Fort Jaggedpine]. Whether it was by magic or diplomacy, she was successful in her campaign and the name was changed."); + elseif(e.message:findi("Fort Jaggedpine")) then + e.self:Say("Well, as you can well see, this is not much of a fortress. It is more of a collection of cabins really. Many were angry with the change and feared that Karana would punish them for changing the name and failing to honor the [gift] he had bestowed upon us."); + elseif(e.message:findi("gift")) then + e.self:Say("Ages ago, around the time that Qeynos was first being built, a terrifying storm swept the land. A massive lightning strike caused a fire and then a tempest descended from the sky and all but cleared this land we stand upon today. A group looking for a place to settle took this as a sign from Karana and built their homes here and named this place the Throne of Karana's Fury. This is a story we've all heard as children. Many are starting to become [superstitious] and feel that the gnolls moving in is our punishment for removing Karana's name from our settlement."); + elseif(e.message:findi("superstitious")) then + e.self:Say("Well it was quite a while ago that this happened. And Jorgan Leafrunner passed away a long time ago. However, his grandson Jeremy Leafrunner still lives, as does his grandmother Elishia who moved back to Felwithe after her husband's death. Many blame them for the trouble we are having now and for the sudden changes to our way of life. Already I have noticed an increase in [poaching]."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9270,item2 = 9271,item3 = 9272,item4 = 9273})) then + e.self:Say("Great Karana's blessing!! I see justice by your hand is both swift and eternal. I would never have had the skill nor the heart to carry out these miscreant's punishment the way you have. I'm glad to call you a friend and not an enemy. Well, I did promise just compensation for your efforts and I'm true to my word. Please take this ring as a token of my gratitude."); + e.other:Faction(e.self,1597,50); -- Residents of Jaggedpine + e.other:Faction(e.self,272,25); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,25); -- Protectors of Pine + e.other:Faction(e.self,262,5); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,9226); -- Sigil Ring of Jaggedpine + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/jaggedpine/#Selia_Wetstone.lua b/jaggedpine/#Selia_Wetstone.lua new file mode 100644 index 0000000..c069769 --- /dev/null +++ b/jaggedpine/#Selia_Wetstone.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to our shop, " .. e.other:GetCleanName() .. ". Why don't you take a look at what my husband Morgan and I have for sale? Morgan is a great sketch artist but he's a bit old fashioned."); + elseif(e.message:findi("fort") or e.message:findi("throne")) then + e.self:Say("I don't know which I like better really. It is sad to see such a historic name be thrown away but at the same time, it was kind of a silly name I think."); + end +end \ No newline at end of file diff --git a/jaggedpine/#Sergeant_Caelin.lua b/jaggedpine/#Sergeant_Caelin.lua new file mode 100644 index 0000000..001ccbd --- /dev/null +++ b/jaggedpine/#Sergeant_Caelin.lua @@ -0,0 +1,55 @@ +-- Quest: Gnoll Canines (Complete) + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". You have nothing to fear from the gnolls. My men and I have been sent from Qeynos to help defend Fort Jaggedpine should those worthless curs make the mistake of assuming this will be a place of easy plunder. I've fought and slain scores of gnolls in my time. Were I not bound to my post here I would go forth and drive them from their dark cave to the north myself. However, I can offer you a [bounty], should you choose to take such a mission upon yourself."); + elseif(e.message:findi("bounty")) then + e.self:Say("If you choose to go and fight against the gnolls, I shall offer a bounty for every gnoll canine that you return to me. You look a bit more adventurous then many of those that live in this settlement. They seem a bit [docile]."); + elseif(e.message:findi("docile")) then + e.self:Say("Perhaps it comes from living in harmony with nature for an extended period of time but they are more concerned with trading food recipes and doing arts and crafts. I have offered to give them some basic training in the arts of war but they seem to have no interest. This is a dangerous world in which we live and failure to acknowledge that has meant the downfall of many a society. I won't let this happen on my watch, provided my [men] are on their toes."); + elseif(e.message:findi("men")) then + e.self:Say("Guard Bossamir is a model soldier and a good man. I'm happy to have him watching my back. That Finewine character however, he is not worth the cost of the sword he wields! All he does is whine and complain. He was born with a silver spoon in his mouth and his family enrolled him in the guard to teach him some discipline but I've had no luck with him. He hasn't even turned in a [shift report] for weeks. Captain Tillin will bust me down to private if I don't deliver those soon."); + elseif(e.message:findi("shift report")) then + if(e.other:GetFaction(e.self) < 5) then + e.self:Say("You have been helpful in our defense efforts. However, I can not be too careful about whom I trust with carrying this information. If you truly consider yourself an ally to Qeynos then no doubt you have assisted the city in its defense before. Show me your Qeynos Badge of Honor and I'll know I can trust you fully. I'll place my mark upon it should anyone question your authority to do this service for me."); + elseif(e.other:GetFaction(e.self) < 7)then + e.self:Say("I'm not quite sure I can trust you with that information yet."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2388}, 0)) then -- Qeynos Badge of Honor + if(e.other:GetFaction(e.self) < 5) then -- eats item if not amiable or better + e.self:Say("Very well. Were we within the city limits I would have had Guard Finewine court-martialed by now. Unfortunately, I don't have such a luxury out in the wild. I have written an Official Warning for Guard Finewine that states in no uncertain terms that he will most assuredly be court-martialed and spend the rest of his youth in jail unless he turns in his missing shift reports. Deliver this warning to him and return to me with his shift reports."); + e.other:QuestReward(e.self,{items = {8285,8283}}); -- Marked Qeynos Badge of Honor, official warning + end + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8279}, 0)) then -- Stack of Shift Reports + e.self:Say("Oh praise Karana, how did you manage to get these out of him? Never mind, I don't really care. Here, take this Compiled Report to Captain Tillin in Qeynos at once."); + e.other:QuestReward(e.self,0,0,0,0,8280); -- Compiled Report + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8287}, 0)) then -- Orders for Sergeant Caelin + e.self:Emote("face grows pale as he reads the orders. 'Bossamir was right. The gnolls are far stronger than we expected. We lack the resources for a frontal assault so we have no choice to but to resort to covert operations and strike teh gnolls at their heart. Their leader must fall and you look like the one for the job. Take this Writ of Execution and carry out the sentence. Your target is the leader of the gnolls, Barducks Darkpaw. Affix the Writ of Execution to the Head of Barducks Darkpaw and seal it in this Black Satchel. Return to me with the Closed Black Satchel and your Marked Qeynos Badge of Honor for your just reward."); + e.other:QuestReward(e.self,{items = {8282,17160}}); -- writ of execution, Black Satchel + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8286,item2 = 8285})) then -- Closed Black Satchel and Marked Qeynos Badge of Honor + e.self:Say("A job well done! Perhaps now that will throw the gnolls into disarray and show them that we are not to be trifled with! The people of Qeynos and it's surrounding territories are in a great debt to you. You have prove time and again your willingness to take great risks to protect those who can't protect themselves. I am hereby empowered to grant to you an honorary rank of nobility. Take this badge and wear it proudly."); + e.other:QuestReward(e.self,0,0,0,0,8968); -- Qeynos Badge of Nobility + else + local canine = item_lib.count_handed_item(e.self, e.trade, {8264}); + if(canine > 0) then + repeat + e.self:Say("Good work, that is one less gnoll we need to worry about"); + e.other:Faction(e.self,1597,5); -- Residents of Jaggedpine + e.other:Faction(e.self,272,2); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,2); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,0,1000); + canine = canine - 1; + until canine == 0; + end + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/jaggedpine/#Shayna_Thunderhand.lua b/jaggedpine/#Shayna_Thunderhand.lua new file mode 100644 index 0000000..6d6068d --- /dev/null +++ b/jaggedpine/#Shayna_Thunderhand.lua @@ -0,0 +1,65 @@ +-- Quest: Order of the Storm Caller + +function event_say(e) + if(e.message:findi("hail") or e.message:findi("organization") or e.message:findi("founding member") or e.message:findi("plans") or e.message:findi("ritual") or e.message:findi("item") or e.message:findi("establish themselves") or e.message:findi("great storm") or e.message:findi("order of the storm caller") or e.message:findi("decision") or e.message:findi("retreat") or e.message:findi("never forgive") or e.message:findi("traitorous") or e.message:findi("revenge") or e.message:findi("pieces") or e.message:findi("urwenae's tome") or e.message:findi("stolen") or e.message:findi("retrieve the ancient ashwood tome") or e.message:findi("aid the order") or e.message:findi("components")) then + if(e.other:GetFaction(e.self) < 2) then + if(e.message:findi("hail")) then + e.self:Emote("gives a soft smile and delicate motion with her hand and bow of her head, 'Greetings, " .. e.other:GetCleanName() .. ". It is a pleasure to make your acquaintance. I am Shayna Thunderhand -- sorceress of The Rainkeeper and one of many ambassadors to the Jaggedpine. The recent events have yielded quite an interesting turn in our [organization's] duties -- and we are very excited to once again be reunited with our brethren and homeland.'"); + elseif(e.message:findi("organization")) then + e.self:Say("The Order of the Storm Caller is one whose roots are tied with the foundation of Qeynos and it's establishments dedicated to the arcane sciences. When the Jaggedpine forest and it's culture and people were still a part of the Qeynos kingdom, the wizards, magicians, and enchanters of Qeynos invited those from the Jaggedpine to partake in their fledgling studies. Gladly, our ancestors did so and returned to the forest with their newfound knowledge and passion in the art of the arcane. It was then that our elders felt that a new order must be established -- the Order of the Storm Callers. As with all existing orders of The Rainkeeper, we had a [founding member] -- one who made it possible for us to maintain our studies and interweave it into our everlasting faith in Karana."); + elseif(e.message:findi("founding member")) then + e.self:Say("A wise and stoic woman by the name of Toliara Stormcaller was the first of our ancestors to master the art of wizardry. When she returned to the Jaggedpine with her newfound knowledge, the elders were very intrigued. She was asked to coordinate the efforts of all the Jaggedpine natives that had taken an interest and shown their adept talents in the ways of the arcane and form an opening ceremony to take place during the winter solstice celebration. Gladly and excitedly, she did so. The magicians, wizards, and enchanters loyal to The Rainkeeper met for several months, formulating [plans] and establishing [rituals] that would usher their order into the collective goal and cause of Karana's faithful."); + elseif(e.message:findi("item")) then + e.self:Say("The enchanters, who were also artisans highly skilled in the ways of jewel craft and even blacksmithing, were asked to forge a golden scepter with a hollow cradle at its peak. The magicians then conjured the elemental essences of the storm -- water and air and sealed them in an azure sphere that was created from pure, enchanted elemental water. Toliara and her fellow wizards would spend days researching and creating a spell and rune of their own with which they would fulfill the purpose of the item. She etched the sacred runes upon the base of the scepter and sealed the separate items into one whole. Upon the dawn of the winter solstice, the fledgling order met at the Shrine of Karana where they would then [firmly establish themselves] among Karana's most faithful."); + elseif(e.message:findi("plans") or e.message:findi("ritual")) then + e.self:Say("The night before the sacred annual ritual and festival, the hierophant of Karana passed into the great Eye of Karana's Storm. A new hierophant was to be named at the ceremony sited at the Throne of Karana's Thunder. It is tradition that when a new hierophant is recognized, that the elders of each artisan, spiritual, and military order present the sacred item of their order that would then be wielded in the sacred ceremony -- in this case, it was the winter solstice. Toliara called upon her brothers and sisters of the arcane sciences and together they forged an [item] of considerable power significant to that which The Rainkeeper sacredly represents."); + elseif(e.message:findi("establish themselves")) then + e.self:Say("The new hierophant was named and it was he that would lead the opening ceremonies of the solstice dawn. Tradition dictates that the head of each of The Rainkeeper's order would come forward, bearing their sacred item to the hierophant and each in their own way, respectfully representing their order and its foundation, aid the hierophant in the ceremony. Toliara, representing the fledgling arcane order, was last to present her order's item to the new hierophant -- whose curiosity was piqued by the beautiful and most apparently powerful item. The ceremony began and each item was used in the [conjuration of a great storm]."); + elseif(e.message:findi("great storm")) then + e.self:Say("The druids chanted around their hierophant, who held their order's sacred item. As they chanted, they brought forth the great blanket of silver clouds upon the horizon. The rangers, rogues, and bards in their musical chant ushered in the raging winds that guided the druids' clouds over the forest. It was the duty of the veterans, the warriors and knights, to call forth the thunder and begin the broiling of the storm. Toliara and her order then began an arcane chant. She raised the scepter upwards to the sky and collectively, the small order wove a single spell that arched from the scepter and struck the center of the tempest that responded in a great display of lightening and rain. Until the rise of the next dawn, the ceremonies continued -- each order respectively praising Karana. By the rise of second dawn and the end of the solstice celebrations, the [Order of the Storm Caller] was inducted into the ranks of Karana's faithful."); + elseif(e.message:findi("aid the order")) then + e.self:Say("Very well, my friend, and may Karana guide you through this path. There is one known as D'mitrious Irska, a powerful magician who can be found at the arcane hall in Qeynos. He is currently the senior member of our order and will be able to further aid you than I, for most unfortunately, many pages of the tome have been damaged by Vranol when he stole it. D'mitrious is more wise in this matter than myself and his willingness to aid you should be more than overwhelming once the scepter has been presented to him. However, he will require one [further component] with the scepter to secure his aid."); + elseif(e.message:findi("order of the storm caller")) then + e.self:Say("That is the name that was bestowed to the arcane order of Karana's faithful, led by Toliara. For several generations the order would thrive and become the primary ambassadors between the city proper of Qeynos and the forest. Eventually, when corruption threatened the land, it would be the Order of the Storm Caller that would act as the messengers and mediators between the political and spiritual interests of the Jaggedpine and ultimately, it would be their direct ties to the city that would influence the [decision] of Antonious III."); + elseif(e.message:findi("decision")) then + e.self:Say("All wished to spare the Jaggedpine from corruption for it was the sacred homeland of one of the city's largest and most prosperous religious and cultural foundations. The Order of the Storm Caller knew that separation was the only way to assure the forest's safety, for Qeynos would need all of its resources to defend against the approaching venomous shadow. However, not all were in favor of this decision. One known as Urwenae, an enchantress and at the time second to only the order's arch mage in power and influence, held strong opposition to removing themselves indefinitely from their sacred lands. However, she was overruled by the decision of her superiors and the majority of the Jaggedpine Orders, thus the forest was sealed. The Order of the Storm Caller, along with the Veterans of the Storm, would [retreat] fully from the forest to aid the inevitable battles in defending Qeynos and its kingdom from threat."); + elseif(e.message:findi("retreat")) then + e.self:Say("'Collectively, the council at Qeynos and the orders of Karana's faithful knew that it was best for the forest to have only the bare minimum of necessary inhabitants needed to preserve the culture and ancient ways remain behind. The shadow of corruption and turmoil was inevitable and Qeynos could not afford to spare these resources in such great quantity and the Orders agreed. The Veterans of the Storm, the knights and warriors of the Jaggedpine, and the Order of the Storm Caller were asked to relocate fully to Qeynos. There was little opposition to this decision, although the fanatical Urwenae [would never forgive her superiors and brethren] for allowing them to become separated from their homeland."); + elseif(e.message:findi("never forgive")) then + e.self:Say("She felt that all of Karana's Orders should remain in the forest -- that Qeynos' resources were plenty and that the threat of the shadow would surely call the aid of nearby Erudin and perhaps even Rivervale if Qeynos were to fall into such dire jeopardy. Despite her zealous and near-fanatical opposition to the ruling, she was a well-respected member of the Order and was in-line to inherent the position of arch-mage when her mentor and the current ranking member of the Order passed into the great Eye of Karana's Storm. For nearly a decade she waited in silence -- her disapproval of the decision a constant, although she cooperated with her Order, she rarely left the Orders' library. Eventually, she ascended to the roll of arch-mage over the Order of the Storm Caller and it was then that she had the opportunity to exact her vengeance against [those whom she thought as traitorous] heretics against Karana and their ancient, sacred path."); + elseif(e.message:findi("traitorous")) then + e.self:Say("Ultimately, she blamed everyone who had voluntarily and without opposition agreed to the ruling made ten years prior with the sealing of the Jaggedpine forest. Urwenae despised both her fellow members of the Order of the Storm Caller as well as the Veterans of the Storm -- viewing both groups as traitors. Ten years of reclusive behavior had given the necessary time for her planning to blossom and the death of her mentor and her ascension granted the perfect opportunity to execute her [revenge]. Upon the tenth anniversary of the Jaggedpine being sealed, a mere fortnight into her reign as arch-mage, Urwenae disbanded the Order in a violent display. A massacre was committed in the sacred halls of Qeynos' arcane studies -- an incident that was cleverly covered-up by the political council of Qeynos to keep the citizens from unnecessary worry regarding an external threat."); + elseif(e.message:findi("revenge")) then + e.self:Say("She had gathered a small group of like-minded followers -- mainly, her most adept pupils that trusted her explicitly and were thus easily manipulated by her. The Order met in the cellar level of the arcane hall in Qeynos and there, Urwenae and her pupils destroyed all but a select few members of the arcane order. Many of the elders survived -- escaping through portals of their own creation, although we lost many brave souls who attempted to remain behind and see their would-be executioners rightfully abolished. Urwenae and the two pupils, one being a powerful wizard that survived the encounter escaped through a portal when all that remained in the hall were dead. It is said that Urwenae then destroyed the sacred item that Toliara had forged all those centuries before, splitting the item into several pieces. As they are indestructible by design, Urwenae instructed her pupils to scatter the [pieces] throughout Norrath, while she herself would hide the scepter deep in the bowels of the Hole."); + elseif(e.message:findi("pieces")) then + e.self:Say("I cannot say for certain how Urwenae divided the scepter for the only documentation we possess was written in an ancient dialect that until recently, none could translate. The dialect is one of an ancient human tongue that dates centuries before the foundation of Qeynos -- even before the foundation of the Throne of Karana's Thunder. Of course this particular incident occurred in a more recent time, but Urwenae was well-versed in the ancient tongues of Norrath and knew well that her journal would be legible only by the most learned of Qeynos' scholars or the forest's elders, and even then her words would seem the fanciful tale of a madwoman -- for there never was a massacre in the arcane hall in Qeynos, or so was the common belief until now. Those of us who are descendants of the few survivors that preserved the order knew of the truth and until recently, we had in our possession [Urwenae's Tome]."); + elseif(e.message:findi("urwenae's tome")) then + e.self:Say("Urwenae's tome, an Ancient Ashwood Tome granted to her by her late mentor, detailed Urwenae's plans and what exactly she had done with the pieces of the scepter. You must understand, Urwenae was an arcane scientist -- and a brilliant one at that. However, she was fanatically organized and required documentation of everything -- a trait that was considered a merit before her madness had been discovered. The tome will likely detail where the missing pieces of the scepter lies and it may also copies of the lost, ancient scrolls scribed by Toliara and the first members of the order -- scrolls that detail the exact runes and arcane chants to re-create the enchantment of the scepter, which was likely broken when Urwenae dismantled it. Unfortunately, the tome was [stolen] by one of the bandits that have recently inhabited our forest."); + elseif(e.message:findi("stolen")) then + e.self:Say("I'm not entirely certain, although I doubt it was done for any purpose regarding the Order, our history, or any of the specific arcane knowledge contained within. Likely, the thief thought that it might fetch a price on the underground market of Norrath. The scouts have been able to identify the individual as Vranol Blackguard, the second eldest of the Blackguard family and one of its most dangerous members. We believe him to already be in High Pass. If [you can retrieve the Ancient Ashwood Tome] from him, if he still has it within his possession of course, then I would be more than willing to impart unto you our ancient arcane lore. However, this reward can only be wielded by one whose heart and faith belongs fervently to The Rainkeeper and their profession is of one of the three acceptable schools of magic. If you are unable to wield what reward I can provide, then I shall not bear ill will if you turn away, my friend."); + elseif(e.message:findi("retrieve the ancient ashwood tome")) then + e.self:Say("Marvelous! However, for me to reward you properly, you must seek our the tormented spirit of Urwenae. It is rumored that when she went into the depths of the erudite hereitcs' former home, that she was cursed by one of the ancient spirits there -- her mind and spirit forever trapped within the boundaries of the ruins. As the magic of the scepter was tied to its bearer, it is likely that the essence of the Gleaming Crystal Scepter remains with her, so long as her essence resides on the prime plane of Norrath. If you can find her, retrieve the scepter, and return it to me with the recovered tome, I shall be better able to properly reward you for your services to us."); + elseif(e.message:findi("components")) then + e.self:Say("The Scroll of the Tempest Eye, one scribed by Toliara herself as she completed her portion of the item, has been lost to us for some time. Urwenae tore the scroll from the pages of the tome and gave it to her pupil, Lazara, and instructed her to take them into Permafrost with the hopes that the threat of the great ice dragon that dwells there to ward any would-be heroes away. Like Urwenae, Lazara fell to an unknown, although dark fate and it is likely that the twisted impression of her former existence remains -- guarding the scroll with its unlife."); + end + elseif(e.other:GetFaction(e.self) < 6) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 2 and item_lib.check_turn_in(e.self, e.trade, {item1 = 9232,item2 = 9231})) then -- Ancient Ashwood Tome and Gleaming Crystal Scepter + e.self:Emote("Aaah. . . yes. Well done. Well done, indeed, my friend. The tome still contains the Toliara's ancient notes and we shall be able to restore the lost magic to the scepter.'' Shayna holds the scepter firmly in one hand and the opened tome in the other. In a powerful voice, she recites several arcane words. As she speaks in the magical rhythm of the spell, the scepter in her hand begins to faintly glow and seems almost to haze as if enshrouded in a blanket of dense fog for but a moment. Shayna reaches the last word of her spell and extends the misted scepter to you, ''This is the Scepter of Storms. It is not yet complete and requires its original pieces to be whole once again. If you wish to continue to [aid the Order of the Storm Caller], I shall be more than willing to complete the scepter for you -- as your worth to us shall be proven in the task.'"); + e.other:Faction(e.self,1597,5); -- Residents of Jaggedpine + e.other:Faction(e.self,272,2); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,2); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,9233,1000); -- Scepter of Storms + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/jaggedpine/#Tallien_Brightflash.lua b/jaggedpine/#Tallien_Brightflash.lua new file mode 100644 index 0000000..1ce6877 --- /dev/null +++ b/jaggedpine/#Tallien_Brightflash.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well hey-there yourself, welcome to Fort Jaggedpine! My business has really picked up lately with all these newcomers around lately. If you're handy, I've got just about all you'd want in the way of molds to make all kinds of baking supplies, from Cookie Molds to Frying Pans! Have a look!"); + elseif(e.message:findi("throne")) then + e.self:Say("I didn't much care for the name myself. I mean, it's great to honor Karana and everything but I mean a clearing is a clearing. No need to get all misty eyed about it."); + elseif(e.message:findi("fort")) then + e.self:Say("I personally like the name. Yes, my family has been living here for generations but personally I like the change. I certainly don't want to see our little settlement become as big as Qeynos but I don't mind seeing the new faces around and it is good for business too. Times change, that's all."); + end +end \ No newline at end of file diff --git a/jaggedpine/Chef_Brargus.lua b/jaggedpine/Chef_Brargus.lua new file mode 100644 index 0000000..8986659 --- /dev/null +++ b/jaggedpine/Chef_Brargus.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail") or e.message:findi("patty melt") or e.message:findi("grilled cheese sandwich") or e.message:findi("dryad pate")) then + if(e.other:GetFaction(e.self) < 6) then + if(e.message:findi("hail")) then + e.self:Say("Whatchoo want?"); + elseif(e.message:findi("dryad pate")) then + e.self:Say("You want my secret recipe for Nymph Pate? You don't look like you could even cook a [Patty Melt] without making a disgusting mess, let alone something as delicate and refined as Nymph Pate!"); + elseif(e.message:findi("patty melt")) then + e.self:Say("Yeah, you know a patty melt! It's like a [Grilled Cheese Sandwich] with some meat stuck in between the whole mess. Sheesh, are you a vegetarian or something?"); + elseif(e.message:findi("grilled cheese sandwich")) then + e.self:Say("Great Brell's gravy, you are inept aren't you! I'll say this slowly. You take some bread, then you take some cheese then you put them together and cook it with a frying pan! I'll tell you what, if you can manage to figure out how to make a Patty Melt, bring it back to me and if it's halfway edible I'll give you my recipe for Nymph Pate."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 6 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8194}, 0)) then -- Hand-In: Patty Melt + e.self:Emote("wolfs down the Patty Melt in one bite. 'Yeah, this isn't too bad I guess. Not nearly as good as I could have done though.'"); + e.self:Emote("scribbles on a piece of paper and hands it to " .. e.other:GetCleanName() .. ". 'Here is the recipe you wanted.'"); + e.other:QuestReward(e.self,0,0,0,0,18430); -- Elegant Pates + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/jaggedpine/Oracle_Jaarl.lua b/jaggedpine/Oracle_Jaarl.lua new file mode 100644 index 0000000..6558927 --- /dev/null +++ b/jaggedpine/Oracle_Jaarl.lua @@ -0,0 +1,44 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("shakes his body and his countless necklaces cause a loud rattle to echo off the stone walls. 'Hello " .. e.other:GetCleanName() .. ". Have you come to [worship] or have you just come for a visit to view our wonderful architecture and to [pay your respects].'"); + elseif(e.message:findi("worship")) then + e.self:Say("Very well. You worship quietly then. May Brell Serillis bless you."); + elseif(e.message:findi("respects")) then + e.self:Say("You have, well then! You can pay your respects by bringing me a [present]."); + elseif(e.message:findi("present")) then + e.self:Say("I like necklaces. I wear necklaces made from every kind of beast. The power of the beast is contained within each necklace. The more necklaces I wear, the greater my power! Bring me a Bear Fang Necklace, a Wolf Fang Necklace and a Panther Fang Necklace. This will show your devotion to the temple. Then perhaps I can do you a [favor]."); + elseif(e.message:findi("favor") or e.message:findi("heretic") or e.message:findi("mystic") or e.message:findi("treant finger") or e.message:findi("bear liver") or e.message:findi("griffon down") or e.message:findi("griffon skull")) then + if(e.other:GetFactionValue(e.self) >= 350) then + if(e.message:findi("favor")) then + e.self:Say("I see that you truly respect our temple and more importantly, myself. Since I have great power and you have given me many gifts, I am willing to give you a gift if you are skilled in the ways of the [mystic] or the [heretic]."); + elseif(e.message:findi("heretic") or e.message:findi("mystic")) then + e.self:Say("I can make a weapon for you, one that you may use to curse your enemies with terrible illness. I require several items. The shaft of the weapon will be made from a Treant Finger. I shall cover the shaft in Griffon Down and affix a Griffon Skull to the top. Finally, I shall need a Diseased Bear Liver with which to imbue the staff with its terrible magic."); + elseif(e.message:findi("treant finger")) then + e.self:Say("I doubt a treant would willingly hand over his finger. Remember , the older the treant the stronger the shaft of the weapon will be."); + elseif(e.message:findi("bear liver")) then + e.self:Say("The best person to talk to about that would be that human. I believe he calls himself Farkus Grime. He passes through here now and then and he seems to be fascinated with disease. Perhaps he could help you with that."); + elseif(e.message:findi("griffon down")) then + e.self:Say("I imagine you could find one of those from a Griffon."); + elseif(e.message:findi("griffon skull")) then + e.self:Say("I imagine you could find one of those from a Griffon."); + end + elseif(e.other:GetFaction(e.self) < 6) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 8258,item2 = 8261,item3 = 8257})) then + e.self:Emote("puts the necklaces around his neck as his body shakes, causing the various bits and pieces of bone and tooth to clatter loudly. 'Ah yes! I feel the power flowing through me, I am ever closer to the spirit world! I thank you for your devotion to the temple!'"); + e.other:Faction(e.self,1598,100); -- Anchorites of Brell Serilis + elseif(e.other:GetFactionValue(e.self) >= 350 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8268,item2 = 8267,item3 = 8266,item4 = 8265})) then + e.self:Say("Very well. These will do just fine. Here, it is finished. Take this and smite your enemies with terrible disease."); + e.other:QuestReward(e.self,0,0,0,0,8071); -- Rod of Ulceration + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/jaggedpine/Snarla_the_Fang.lua b/jaggedpine/Snarla_the_Fang.lua new file mode 100644 index 0000000..84d9b31 --- /dev/null +++ b/jaggedpine/Snarla_the_Fang.lua @@ -0,0 +1,46 @@ +function event_say(e) + if(e.message:findi("hail") or e.message:findi("respect temple") or e.message:findi("food") or e.message:findi("dryad pate") or e.message:findi("necklace")) then + if(e.other:GetFaction(e.self) < 7) then + if(e.message:findi("hail")) then + e.self:Say("Shhh. quiet! This is place of solitude and peace! You [respect temple] while you here if you know what good for you!"); + elseif(e.message:findi("respect temple")) then + e.self:Say("One way guests show respect is to bring the host [food]. Something really good would be nice."); + elseif(e.message:findi("food")) then + e.self:Say("Lessee. . . Dryad Pate is what I want. Bring me some [Dryad Pate] and then you be a good guest. Maybe then I return a favor for you."); + elseif(e.message:findi("dryad pate")) then + e.self:Say("I don't know how it made. Talk to the Brargus about it. He the cook."); + elseif(e.message:findi("necklace")) then + e.self:Say("I make many different kinds of necklaces for my friends from fangs of powerful creatures like bear, panther and wolf. You give me your token of friendship and I give you a pouch to keep some stuff in. After you get the stuff and seal the bag, bring it back and I make you a nice necklace to wear. Stuff I need is one Anaconda Skin and three Fangs. Fangs that make good necklaces are Wolf, Bear and Panther. Make sure all fangs are same. Necklaces with different fangs are neat but not as nice as ones with all same fangs, so I only make those ones."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 7 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8199}, 0)) then -- Hand-In: Dryad Pate + e.self:Say("Ohh. . . This really good, thanks! You take this token of friendship. You all smell the same so this way I know who you are. I can make nice [necklaces] for my friends."); + e.other:Faction(e.self,1598,20); -- Anchorites of Brell Serilis + e.other:QuestReward(e.self,0,0,0,0,8270); -- Token of Friendship + elseif(e.other:GetFaction(e.self) < 7 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8270}, 0)) then -- Hand-In: Token of Friendship + e.self:Say("Ok, here pouch to collect stuff. Come back when pouch full. Make sure you seal pouch or stuff may fall out."); + e.other:QuestReward(e.self,0,0,0,0,17263); -- Necklace Component Pouch + e.other:QuestReward(e.self,0,0,0,0,8270); -- Token of Friendship + elseif(e.other:GetFaction(e.self) < 7 and item_lib.check_turn_in(e.self, e.trade, {item1 = 9228}, 0)) then -- Hand-In: Sealed Wolf Fang Pouch + e.self:Say("Oh hello friend, I make this nice necklace for you! You wear this and feel the spirit of the wolf run through you!"); + e.other:Faction(e.self,1598,10); -- Anchorites of Brell Serilis + e.other:QuestReward(e.self,0,0,0,0,8258); -- Wolf Fang Necklace + elseif(e.other:GetFaction(e.self) < 7 and item_lib.check_turn_in(e.self, e.trade, {item1 = 9229}, 0)) then -- Hand-In: Sealed Bear Fang Pouch + e.self:Say("My friend returns again! I make this nice necklace for you. Wear this and feel the essence of the bear flow through you."); + e.other:Faction(e.self,1598,10); -- Anchorites of Brell Serilis + e.other:QuestReward(e.self,0,0,0,0,8261); -- Bear Fang Necklace + elseif(e.other:GetFaction(e.self) < 7 and item_lib.check_turn_in(e.self, e.trade, {item1 = 9230}, 0)) then -- Hand-In: Sealed Panther Fang Pouch + e.self:Say("Hello again friend. This nice panther fang, here you take this necklace I make you. It imbued with spirit of the cat."); + e.other:Faction(e.self,1598,10); -- Anchorites of Brell Serilis + e.other:QuestReward(e.self,0,0,0,0,8257); -- Panther Fang Necklace + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/jaggedpine/The_flame.lua b/jaggedpine/The_flame.lua new file mode 100644 index 0000000..5ba7b53 --- /dev/null +++ b/jaggedpine/The_flame.lua @@ -0,0 +1,12 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 60, ex + 60, ey - 60, ey + 60, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("coalesces into a corporeal form."); + eq.spawn2(181013,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); +end diff --git a/jaggedpine/The_wind.lua b/jaggedpine/The_wind.lua new file mode 100644 index 0000000..5ba7b53 --- /dev/null +++ b/jaggedpine/The_wind.lua @@ -0,0 +1,12 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 60, ex + 60, ey - 60, ey + 60, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("coalesces into a corporeal form."); + eq.spawn2(181013,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); +end diff --git a/jaggedpine/Waldo_Pinemyer.lua b/jaggedpine/Waldo_Pinemyer.lua new file mode 100644 index 0000000..91b91e1 --- /dev/null +++ b/jaggedpine/Waldo_Pinemyer.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Eh... Huh... What do you want? Can't you just leave an old man to meditate in peace. Now go away."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 8271})) then -- Lunch Bag + e.self:Say("Huh... Who are you? Oh, you have my lunch. Thank you. Mmmm... This is great. Nerdala sure is an amazing cook."); + e.other:QuestReward(e.self,0,0,0,0,8272); -- Empty Lunch Bag + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/jaggedpine/a_defiled_bear.lua b/jaggedpine/a_defiled_bear.lua new file mode 100644 index 0000000..11c1681 --- /dev/null +++ b/jaggedpine/a_defiled_bear.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end diff --git a/jaggedpine/a_docile_bear.lua b/jaggedpine/a_docile_bear.lua new file mode 100644 index 0000000..6076d56 --- /dev/null +++ b/jaggedpine/a_docile_bear.lua @@ -0,0 +1,28 @@ +local reaction = 0; + +function event_signal(e) + if(e.signal == 1) then + eq.follow(eq.get_entity_list():GetMobByNpcTypeID(181164):GetID(),15); + elseif(e.signal == 2) then + eq.stop_follow(); + eq.set_timer("react",3000); + end +end + +function event_timer(e) + if(e.timer == "react") then + reaction = reaction + 1; + if(reaction == 1) then + e.self:DoAnim(12); + elseif(reaction == 2) then + e.self:DoAnim(12); + elseif(reaction == 3) then + e.self:DoAnim(12); + elseif(reaction == 4) then + e.self:DoAnim(12); + eq.stop_timer("react"); + eq.unique_spawn(181015,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end + end +end diff --git a/jaggedpine/a_dryad.lua b/jaggedpine/a_dryad.lua new file mode 100644 index 0000000..2ac4a53 --- /dev/null +++ b/jaggedpine/a_dryad.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",120000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end diff --git a/jaggedpine/encounters/jpfwar.lua b/jaggedpine/encounters/jpfwar.lua new file mode 100644 index 0000000..5319a2f --- /dev/null +++ b/jaggedpine/encounters/jpfwar.lua @@ -0,0 +1,732 @@ +local gnoll00 = nil; +local gnoll01 = nil; +local gnoll02 = nil; +local gnoll03 = nil; +local gnoll04 = nil; +local gnoll05 = nil; +local gnoll06 = nil; +local gnoll07 = nil; +local gnoll08 = nil; +local gnoll09 = nil; +local gnoll10 = nil; +local gnoll11 = nil; +local gnoll12 = nil; +local gnoll13 = nil; +local gnoll14 = nil; +local gnoll15 = nil; +local gnoll16 = nil; +local gnoll17 = nil; +local gnoll18 = nil; +local gnoll19 = nil; +local gnoll20 = nil; +local gnoll21 = nil; +local gnoll22 = nil; +local gnoll23 = nil; +local gnoll24 = nil; +local gnoll25 = nil; +local gnoll26 = nil; +local gnoll27 = nil; +local gnoll28 = nil; +local gnoll29 = nil; +local gnoll30 = nil; +local gnoll31 = nil; +local gnoll32 = nil; +local gnoll33 = nil; +local gnoll34 = nil; +local gnoll35 = nil; +local gnoll36 = nil; +local gnoll37 = nil; +local gnoll38 = nil; +local gnoll39 = nil; +local gnoll40 = nil; +local gnoll41 = nil; +local gnoll42 = nil; +local gnoll43 = nil; +local gnoll44 = nil; +local assassin1 = nil; +local assassin2 = nil; +local assassin3 = nil; +local assassin4 = nil; +local jardor = nil; + +local gnoll = 0; +local gnollcount = 0; +local villagedeathcount = 0; + + +local VILLAGE_WAR_SPAWN = { + 181019, -- ##Shayna_Thunderhand + 181020, -- ##Kaithys_Galestrider + 181021, -- ##Annous_Pineshadow + 181023, -- ##Lady_Deira + 181024, -- ##Nolan_Greenwood + 181025, -- ##Cheyloh_Greenwood + 181026, -- ##Guard_Finewine + 181027, -- ##Guard_Bossamir + 181029, -- ##Jeremy_Leafrunner + 181031, -- ##Derick_Goodroot + 181033, -- ##Cathleen_Goodroot + 181034, -- ##Selia_Wetstone + 181035, -- ##Morgan_Wetstone + 181036, -- ##Tallien_Brightflash + 181038, -- ##Nerdala_Darkcloud + 181040, -- ##Pergan_Darkcloud + 181041, -- ##Banker_Mardalson + 181042, -- ##Ralleford_Twothorns + 181045, -- ##Donna_Twothorns + 181046, -- ##Diedra_Twothorns +}; + +function BarducksDeath(e) + eq.signal(181192,1); +end + +function ResetSpawn(e) + gnollcount = 0; + villagedeathcount = 0; +end + +function WarSignal(e) + if(e.signal == 1) then + eq.set_timer("timertostart",300000); + elseif(e.signal == 2) then + eq.stop_timer("gnollspawn"); + eq.set_timer("WarEnd",600000); + elseif(e.signal == 3) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(181041)) then + eq.get_entity_list():GetMobByNpcTypeID(181041):Say("Another one down, someone help! Quickly!"); + elseif(eq.get_entity_list():IsMobSpawnedByNpcTypeID(181026)) then + eq.get_entity_list():GetMobByNpcTypeID(181026):Say("I'm next, I just know it!"); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(181028)) then + eq.get_entity_list():GetMobByNpcTypeID(181028):Say("The gnolls have broken through! Regroup and try harder or we're doomed!"); + end + elseif(e.signal == 4) then + eq.spawn2(181028,0,0,1988,1084,-11,196); -- ##Sergeant_Caelin + gnoll = 0; + villagedeathcount = 0; + eq.set_timer("gnollspawn",3000); + end +end + +function WarTimer(e) + if(e.timer == "timertostart") then + eq.stop_timer("timertostart"); + eq.zone_emote(0,"The sound of war drums echo through the forest and a rough inhuman voice calls out a war cry. 'Brothers, now is the time of our revenge! Destroy the human settlement and claim it as our own! For Barducks and clan Darkpaw!'"); + eq.set_timer("gnollspawn",3000); + elseif(e.timer == "WarEnd") then + eq.stop_timer("WarEnd"); + gnollcount = 0; + villagedeathcount = 0; + eq.depop_all(181016); + eq.depop_all(181047); + for _, id in ipairs(VILLAGE_WAR_SPAWN) do + eq.depop(id); + end + elseif(e.timer == "gnollspawn") then + gnollcount = gnollcount + 1; + gnoll = 181016; + if(gnollcount == 1) then + VillageWarSpawn(e); + StaticVillageDepop(e); + elseif(gnollcount == 2) then + gnoll00 = GnollSpawnLocation(spn); + elseif(gnollcount == 3) then + gnoll01 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll00:GetID())) then + gnoll00:CastToNPC():MoveTo(1878,1086,-10,0,true); + end + elseif(gnollcount == 4) then + gnoll02 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll01:GetID())) then + gnoll01:CastToNPC():MoveTo(1840,1078,-10,0,true); + end + elseif(gnollcount == 5) then + gnoll03 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll02:GetID())) then + gnoll02:CastToNPC():MoveTo(1892,1053,-10,0,true); + end + elseif(gnollcount == 6) then + gnoll04 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll03:GetID())) then + gnoll03:CastToNPC():MoveTo(2059,1055,-11,0,true); + end + elseif(gnollcount == 7) then + gnoll05 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll04:GetID())) then + gnoll04:CastToNPC():MoveTo(2096,1072,-11,0,true); + end + elseif(gnollcount == 8) then + gnoll06 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll05:GetID())) then + gnoll05:CastToNPC():MoveTo(2096,1079,-11,0,true); + end + elseif(gnollcount == 9) then + gnoll07 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll06:GetID())) then + gnoll06:CastToNPC():MoveTo(2013,1090,-11,0,true); + end + elseif(gnollcount == 10) then + gnoll08 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll07:GetID())) then + gnoll07:CastToNPC():MoveTo(2016,1108,-11,0,true); + end + elseif(gnollcount == 11) then + gnoll09 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll08:GetID())) then + gnoll08:CastToNPC():MoveTo(2049,1123,-11,0,true); + end + elseif(gnollcount == 12) then + gnoll10 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll09:GetID())) then + gnoll09:CastToNPC():MoveTo(1919,1259,-11,0,true); + end + elseif(gnollcount == 13) then + gnoll11 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll10:GetID())) then + gnoll10:CastToNPC():MoveTo(1953,1329,-11,0,true); + end + elseif(gnollcount == 14) then + gnoll12 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll11:GetID())) then + gnoll11:CastToNPC():MoveTo(2048,1211,-12,0,true); + end + elseif(gnollcount == 15) then + gnoll13 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll12:GetID())) then + gnoll12:CastToNPC():MoveTo(1981,957,-12,0,true); + end + elseif(gnollcount == 16) then + gnoll14 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll13:GetID())) then + gnoll13:CastToNPC():MoveTo(1994,1084,-11,0,true); + end + elseif(gnollcount == 17) then + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll14:GetID())) then + gnoll14:CastToNPC():MoveTo(1994,1084,-11,0,true); + end + eq.set_timer("gnollspawn",245000); + elseif(gnollcount == 18) then + gnoll15 = GnollSpawnLocation(spn); + elseif(gnollcount == 19) then + gnoll16 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll15:GetID())) then + gnoll15:CastToNPC():MoveTo(1878,1086,-10,0,true); + end + elseif(gnollcount == 20) then + gnoll17 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll16:GetID())) then + gnoll16:CastToNPC():MoveTo(1840,1078,-10,0,true); + end + elseif(gnollcount == 21) then + gnoll18 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll17:GetID())) then + gnoll17:CastToNPC():MoveTo(1892,1053,-10,0,true); + end + elseif(gnollcount == 22) then + gnoll19 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll18:GetID())) then + gnoll18:CastToNPC():MoveTo(2059,1055,-11,0,true); + end + elseif(gnollcount == 23) then + gnoll20 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll19:GetID())) then + gnoll19:CastToNPC():MoveTo(2096,1072,-11,0,true); + end + elseif(gnollcount == 24) then + gnoll21 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll20:GetID())) then + gnoll20:CastToNPC():MoveTo(2096,1079,-11,0,true); + end + elseif(gnollcount == 25) then + gnoll22 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll21:GetID())) then + gnoll21:CastToNPC():MoveTo(2013,1090,-11,0,true); + end + elseif(gnollcount == 26) then + gnoll23 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll22:GetID())) then + gnoll22:CastToNPC():MoveTo(2016,1108,-11,0,true); + end + elseif(gnollcount == 27) then + gnoll24 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll23:GetID())) then + gnoll23:CastToNPC():MoveTo(2049,1123,-11,0,true); + end + elseif(gnollcount == 28) then + gnoll25 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll24:GetID())) then + gnoll24:CastToNPC():MoveTo(1919,1259,-11,0,true); + end + elseif(gnollcount == 29) then + gnoll26 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll25:GetID())) then + gnoll25:CastToNPC():MoveTo(1953,1329,-11,0,true); + end + elseif(gnollcount == 30) then + gnoll27 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll26:GetID())) then + gnoll26:CastToNPC():MoveTo(2048,1211,-12,0,true); + end + elseif(gnollcount == 31) then + gnoll28 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll27:GetID())) then + gnoll27:CastToNPC():MoveTo(1981,957,-12,0,true); + end + elseif(gnollcount == 32) then + gnoll29 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll28:GetID())) then + gnoll28:CastToNPC():MoveTo(1994,1084,-11,0,true); + end + elseif(gnollcount == 33) then + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll29:GetID())) then + gnoll29:CastToNPC():MoveTo(1994,1084,-11,0,true); + end + eq.set_timer("gnollspawn",245000); + elseif(gnollcount == 34) then + gnoll30 = GnollSpawnLocation(spn); + elseif(gnollcount == 35) then + gnoll31 = GnollSpawnLocation(spn); + assassin1 = eq.spawn2(181047,0,0,2027,1140,-12,0); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll30:GetID())) then + gnoll30:CastToNPC():MoveTo(1878,1086,-10,0,true); + end + elseif(gnollcount == 36) then + gnoll32 = GnollSpawnLocation(spn); + assassin2 = eq.spawn2(181047,0,0,1852,1269,-12,0); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll31:GetID())) then + gnoll31:CastToNPC():MoveTo(1840,1078,-10,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(assassin1:GetID())) then + assassin1:CastToNPC():MoveTo(2013,1090,-11,0,true); + end + elseif(gnollcount == 37) then + gnoll33 = GnollSpawnLocation(spn); + assassin3 = eq.spawn2(181047,0,0,1794,1042,-12,0); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll32:GetID())) then + gnoll32:CastToNPC():MoveTo(1892,1053,-10,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(assassin2:GetID())) then + assassin2:CastToNPC():MoveTo(1953,1329,-11,0,true); + end + elseif(gnollcount == 38) then + gnoll34 = GnollSpawnLocation(spn); + assassin4 = eq.spawn2(181047,0,0,2031,1148,-12,0); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll33:GetID())) then + gnoll33:CastToNPC():MoveTo(2059,1055,-11,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(assassin3:GetID())) then + assassin3:CastToNPC():MoveTo(1892,-829,-10,0,true); + end + elseif(gnollcount == 39) then + gnoll35 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll34:GetID())) then + gnoll34:CastToNPC():MoveTo(2096,1072,-11,0,true); + end + if(eq.get_entity_list():IsMobSpawnedByEntityID(assassin4:GetID())) then + assassin4:CastToNPC():MoveTo(2096,1072,-11,0,true); + end + elseif(gnollcount == 40) then + gnoll36 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll35:GetID())) then + gnoll35:CastToNPC():MoveTo(2096,1079,-11,0,true); + end + elseif(gnollcount == 41) then + gnoll37 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll36:GetID())) then + gnoll36:CastToNPC():MoveTo(2013,1090,-11,0,true); + end + elseif(gnollcount == 42) then + gnoll38 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll37:GetID())) then + gnoll37:CastToNPC():MoveTo(2016,1108,-11,0,true); + end + elseif(gnollcount == 43) then + gnoll39 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll38:GetID())) then + gnoll38:CastToNPC():MoveTo(2049,1123,-11,0,true); + end + elseif(gnollcount == 44) then + gnoll40 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll39:GetID())) then + gnoll39:CastToNPC():MoveTo(1919,1259,-11,0,true); + end + elseif(gnollcount == 45) then + gnoll41 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll40:GetID())) then + gnoll40:CastToNPC():MoveTo(1953,1329,-11,0,true); + end + elseif(gnollcount == 46) then + gnoll42 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll41:GetID())) then + gnoll41:CastToNPC():MoveTo(2048,1211,-12,0,true); + end + elseif(gnollcount == 47) then + gnoll43 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll42:GetID())) then + gnoll42:CastToNPC():MoveTo(1981,957,-12,0,true); + end + elseif(gnollcount == 48) then + gnoll44 = GnollSpawnLocation(spn); + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll43:GetID())) then + gnoll43:CastToNPC():MoveTo(1994,1084,-11,0,true); + end + elseif(gnollcount == 49) then + if(eq.get_entity_list():IsMobSpawnedByEntityID(gnoll44:GetID())) then + gnoll44:CastToNPC():MoveTo(1994,1084,-11,0,true); + end + eq.set_timer("gnollspawn",245000); + elseif(gnollcount == 50) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(181028) and villagedeathcount == 0) then + gnoll = 181049; + eq.stop_timer("gnollspawn"); + eq.zone_emote(0,"an inhuman voice screams from the distance, 'You may have defeated some of my brothers but clan Darkpaw is far from broken! Prepare yourselves, for you shall soon know my wrath!'"); + jardor = GnollSpawnLocation(spn); + eq.depop(181028); + jardor:CastToNPC():AssignWaypoints(42); + end + elseif(gnollcount == 51) then + eq.stop_timer("gnollspawn"); + eq.set_timer("FinalWarEnd",900000); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(181028)) then + if(villagedeathcount >= 5) then + eq.get_entity_list():GetMobByNpcTypeID(181028):Shout("It appears the gnolls have been routed but at what a cost? Many of the innocents I have sworn to protect have perished this day. Karana forgive my dreadful failure. If you can show me that you assisted in defense of the fort, you shall be compensated."); + elseif(villagedeathcount > 0) then + eq.get_entity_list():GetMobByNpcTypeID(181028):Shout("It appears the gnolls have been routed. Alas some of the residents of Fort Jaggedpine have perished. Those who can present proof they have helped in defending the fort this day shall be rewarded."); + elseif(villagedeathcount == 0) then + eq.get_entity_list():GetMobByNpcTypeID(181028):Shout("It appears the gnolls have been routed with nary a casualty to report! My thanks to everyone, all that can prove they have assisted with this spectacular victory shall be richly rewarded!"); + end + eq.depop_all(181016); + eq.depop_all(181047); + eq.unique_spawn(181048,0,0,1988,1084,-11,196); + eq.depop(181028); + end + end + elseif(e.timer == "FinalWarEnd") then + eq.stop_timer("FinalWarEnd"); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(181048)) then + eq.get_entity_list():GetMobByNpcTypeID(181048):Say("What a day. I'm going to rest now. Thank you everyone."); + end + gnollcount = 0; + villagedeathcount = 0; + eq.depop(181048); + for _, id in ipairs(VILLAGE_WAR_SPAWN) do + eq.depop(id); + end + end +end + +function GnollSpawn(e) + e.self:SetRunning(true); +end + +function SergeantDeath(e) + eq.signal(181192,2); +end + +function SergeantSay(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". If you're not good with a weapon, fast with a spell or strong at heart I suggest you run with all haste away from this place. If you are however, we could really use some help to protect these people and I may be able to compensate you for your efforts. That is... If we survive the battle of course."); + end +end + +function DeathCount(e) + villagedeathcount = villagedeathcount + 1; + eq.signal(181192,3); +end + +function SergeantTrade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 8368})) then + if(villagedeathcount >= 5) then + ThirdTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(8389,8392),5000); + elseif(villagedeathcount > 0) then + SecondTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(8384,8389),10000); + elseif(villagedeathcount == 0) then + FirstTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(8384,8376),15000); + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 8369})) then + if(villagedeathcount >= 5) then + ThirdTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(8390,8393),5000); + elseif(villagedeathcount > 0) then + SecondTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(8385,8390),10000); + elseif(villagedeathcount == 0) then + FirstTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(8385,8377),15000); + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 8370})) then + if(villagedeathcount >= 5) then + ThirdTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(9187,8394),5000); + elseif(villagedeathcount > 0) then + SecondTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(9174,9187),10000); + elseif(villagedeathcount == 0) then + FirstTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(9174,8378),15000); + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 8371})) then -- mnk / bst + if(villagedeathcount >= 5) then + ThirdTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(8391,8395),5000); + elseif(villagedeathcount > 0) then + SecondTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(8386,8391),10000); + elseif(villagedeathcount == 0) then + FirstTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(8386,8391),15000); -- need tier 1 item + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 8372})) then + if(villagedeathcount >= 5) then + ThirdTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(9189,8396),5000); + elseif(villagedeathcount > 0) then + SecondTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(8388,9189),10000); + elseif(villagedeathcount == 0) then + FirstTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(8388,8380),15000); + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 8373})) then + if(villagedeathcount >= 5) then + ThirdTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(9190,8397),5000); + elseif(villagedeathcount > 0) then + SecondTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(8387,9190),10000); + elseif(villagedeathcount == 0) then + FirstTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(8387,8381),15000); + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 8374})) then + if(villagedeathcount >= 5) then + ThirdTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(9191,8398),5000); + elseif(villagedeathcount > 0) then + SecondTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(9191,9186),10000); + elseif(villagedeathcount == 0) then + FirstTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(8382,9186),15000); + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 8375})) then + if(villagedeathcount >= 5) then + ThirdTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(9188,8399),5000); + elseif(villagedeathcount > 0) then + SecondTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(9185,9188),10000); + elseif(villagedeathcount == 0) then + FirstTier(e); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(9185,8383),15000); + end + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function JardorSpawn(e) + e.self:SetRunning(true); +end + +function JardorWaypoint(e) + if(e.wp == 2) then + eq.signal(181192,4); + end +end + +function JardorDeath(e) + eq.signal(181192,4); +end + +function JardorCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function ThirdTier(e) + e.self:Say("You are brave and a valiant one, " .. e.other:GetCleanName() .. ". Alas, the people whom I have been sworn to protect have been mostly wiped out. Take this as a token of my gratitude for your assistance today."); + e.other:Faction(e.self,1597,10); -- Residents of Jaggedpine + e.other:Faction(e.self,272,5); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,5); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos +end + +function SecondTier(e) + e.self:Say("Thank you for your help. Without you, things may have been much worse. Loss of life is a tragic thing indeed. Wear this in remembrance of this day."); + e.other:Faction(e.self,1597,25); -- Residents of Jaggedpine + e.other:Faction(e.self,272,12); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,12); -- Protectors of Pine + e.other:Faction(e.self,262,2); -- Guards of Qeynos +end + +function FirstTier(e) + e.self:Say("That was excellent work on your part! Take this as your reward, we all owe you our lives!"); + e.other:Faction(e.self,1597,50); -- Residents of Jaggedpine + e.other:Faction(e.self,272,25); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,25); -- Protectors of Pine + e.other:Faction(e.self,262,5); -- Guards of Qeynos +end + +function VillageWarSpawn(e) + eq.spawn2(181019,0,0,2083,1120,-11,104); -- ##Shayna_Thunderhand + eq.spawn2(181020,0,0,1895,1007,-11,127); -- ##Kaithys_Galestrider + eq.spawn2(181021,0,0,2074,1206,-12,208); -- ##Annous_Pineshadow + eq.spawn2(181023,0,0,1970,1233,-11,126); -- ##Lady_Deira + eq.spawn2(181024,0,0,1820,1064,-10,64); -- ##Nolan_Greenwood + eq.spawn2(181025,0,0,1967,1267,-11,126); -- ##Cheyloh_Greenwood + eq.spawn2(181026,0,0,1931,1225,-11,131); -- ##Guard_Finewine + eq.spawn2(181027,0,0,1856,1000,-10,130); -- ##Guard_Bossamir + eq.spawn2(181028,0,0,1988,1084,-11,196); -- ##Sergeant_Caelin + eq.spawn2(181029,0,0,1981,957,-13,227); -- ##Jeremy_Leafrunner + eq.spawn2(181031,0,0,1953,1329,-11,132); -- ##Derick_Goodroot + eq.spawn2(181033,0,0,1919,1259,-11,3); -- ##Cathleen_Goodroot + eq.spawn2(181034,0,0,2049,1115,-11,137); -- ##Selia_Wetstone + eq.spawn2(181035,0,0,2020,1108,-11,72); -- ##Morgan_Wetstone + eq.spawn2(181036,0,0,2020,1090,-11,72); -- ##Tallien_Brightflash + eq.spawn2(181038,0,0,2088,1079,-11,197); -- ##Nerdala_Darkcloud + eq.spawn2(181040,0,0,2088,1072,-11,197); -- ##Pergan_Darkcloud + eq.spawn2(181041,0,0,2059,1055,-11,6); -- ##Banker_Mardalson + eq.spawn2(181042,0,0,1892,1053,-10,194); -- ##Ralleford_Twothorns + eq.spawn2(181045,0,0,1840,1078,-10,10); -- ##Donna_Twothorns + eq.spawn2(181046,0,0,1878,1086,-10,137); -- ##Diedra_Twothorns +end + +function StaticVillageDepop(e) + eq.depop_with_timer(181175); + eq.depop_with_timer(181205); + eq.depop_with_timer(181166); + eq.depop_with_timer(181103); + eq.depop_with_timer(181085); + eq.depop_with_timer(181086); + eq.depop_with_timer(181173); + eq.depop_with_timer(181195); + eq.depop_with_timer(181206); + eq.depop_with_timer(181090); + eq.depop_with_timer(181160); + eq.depop_with_timer(181180); + eq.depop_with_timer(181182); + eq.depop_with_timer(181203); + eq.depop_with_timer(181210); + eq.depop_with_timer(181165); + eq.depop_with_timer(181179); + eq.depop_with_timer(181099); + eq.depop_with_timer(181183); + eq.depop_with_timer(181163); + eq.depop_with_timer(181161); +end + +function GnollSpawnLocation(spn) + gnollspawn = math.random(80); + if(gnollspawn < 2) then + spn = eq.spawn2(gnoll,0,0,732,1382,-29,0); + elseif(gnollspawn < 4) then + spn = eq.spawn2(gnoll,0,0,354,-951,-28,0); + elseif(gnollspawn < 6) then + spn = eq.spawn2(gnoll,0,0,913,688,-19,0); + elseif(gnollspawn < 8) then + spn = eq.spawn2(gnoll,0,0,1562,1481,11,0); + elseif(gnollspawn < 10) then + spn = eq.spawn2(gnoll,0,0,255,-823,-12,0); + elseif(gnollspawn < 12) then + spn = eq.spawn2(gnoll,0,0,434,998,-19,0); + elseif(gnollspawn < 14) then + spn = eq.spawn2(gnoll,0,0,419,1288,-13,0); + elseif(gnollspawn < 16) then + spn = eq.spawn2(gnoll,0,0,1171,-1292,14,0); + elseif(gnollspawn < 18) then + spn = eq.spawn2(gnoll,0,0,260,436,-22,0); + elseif(gnollspawn < 20) then + spn = eq.spawn2(gnoll,0,0,435,-1772,-12,0); + elseif(gnollspawn < 22) then + spn = eq.spawn2(gnoll,0,0,467,1841,-20,0); + elseif(gnollspawn < 24) then + spn = eq.spawn2(gnoll,0,0,1028,-1872,25,0); + elseif(gnollspawn < 26) then + spn = eq.spawn2(gnoll,0,0,684,950,-30,0); + elseif(gnollspawn < 28) then + spn = eq.spawn2(gnoll,0,0,643,347,-21,0); + elseif(gnollspawn < 30) then + spn = eq.spawn2(gnoll,0,0,1302,-1641,-13,0); + elseif(gnollspawn < 32) then + spn = eq.spawn2(gnoll,0,0,348,557,-18,0); + elseif(gnollspawn < 34) then + spn = eq.spawn2(gnoll,0,0,772,220,-15,0); + elseif(gnollspawn < 36) then + spn = eq.spawn2(gnoll,0,0,594,-391,29,0); + elseif(gnollspawn < 38) then + spn = eq.spawn2(gnoll,0,0,1277,-117,-19,0); + elseif(gnollspawn < 40) then + spn = eq.spawn2(gnoll,0,0,475,294,-18,0); + elseif(gnollspawn < 42) then + spn = eq.spawn2(gnoll,0,0,209,1522,-28,0); + elseif(gnollspawn < 44) then + spn = eq.spawn2(gnoll,0,0,1285,-1646,-13,0); + elseif(gnollspawn < 46) then + spn = eq.spawn2(gnoll,0,0,768,1113,-13,0); + elseif(gnollspawn < 48) then + spn = eq.spawn2(gnoll,0,0,219,-796,-9,0); + elseif(gnollspawn < 50) then + spn = eq.spawn2(gnoll,0,0,297,1660,-15,0); + elseif(gnollspawn < 52) then + spn = eq.spawn2(gnoll,0,0,630,-1867,40,0); + elseif(gnollspawn < 54) then + spn = eq.spawn2(gnoll,0,0,217,1541,-28,0); + elseif(gnollspawn < 56) then + spn = eq.spawn2(gnoll,0,0,1044,1595,-12,0); + elseif(gnollspawn < 58) then + spn = eq.spawn2(gnoll,0,0,984,-1004,80,0); + elseif(gnollspawn < 60) then + spn = eq.spawn2(gnoll,0,0,1652,1732,4,0); + elseif(gnollspawn < 62) then + spn = eq.spawn2(gnoll,0,0,398,445,-14,0); + elseif(gnollspawn < 64) then + spn = eq.spawn2(gnoll,0,0,915,977,8,0); + elseif(gnollspawn < 66) then + spn = eq.spawn2(gnoll,0,0,883,1150,-5,0); + elseif(gnollspawn < 68) then + spn = eq.spawn2(gnoll,0,0,295,-71,-9,0); + elseif(gnollspawn < 70) then + spn = eq.spawn2(gnoll,0,0,430,684,-26,0); + elseif(gnollspawn < 72) then + spn = eq.spawn2(gnoll,0,0,1697,-1335,7,0); + elseif(gnollspawn < 74) then + spn = eq.spawn2(gnoll,0,0,723,-898,-24,0); + elseif(gnollspawn < 76) then + spn = eq.spawn2(gnoll,0,0,678,-1725,21,0); + elseif(gnollspawn < 78) then + spn = eq.spawn2(gnoll,0,0,822,-1741,68,0); + elseif(gnollspawn <= 80) then + spn = eq.spawn2(gnoll,0,0,153,620,-13,0); + end + return spn; +end + +function event_encounter_load(e) + eq.register_npc_event("jpfwar", Event.death, 181070, BarducksDeath); + eq.register_npc_event("jpfwar", Event.spawn, 181192, ResetSpawn); + eq.register_npc_event("jpfwar", Event.signal, 181192, WarSignal); + eq.register_npc_event("jpfwar", Event.timer, 181192, WarTimer); + eq.register_npc_event("jpfwar", Event.spawn, 181016, GnollSpawn); + eq.register_npc_event("jpfwar", Event.death, 181028, SergeantDeath); + eq.register_npc_event("jpfwar", Event.say, 181028, SergeantSay); + eq.register_npc_event("jpfwar", Event.trade, 181048, SergeantTrade); + eq.register_npc_event("jpfwar", Event.spawn, 181049, JardorSpawn); + eq.register_npc_event("jpfwar", Event.waypoint_arrive, 181049, JardorWaypoint); + eq.register_npc_event("jpfwar", Event.death, 181049, JardorDeath); + eq.register_npc_event("jpfwar", Event.combat, 181049, JardorCombat); + + for _, id in ipairs(VILLAGE_WAR_SPAWN) do + eq.register_npc_event("jpfwar", Event.death, id, DeathCount); + end +end diff --git a/jaggedpine/script_init.lua b/jaggedpine/script_init.lua new file mode 100644 index 0000000..3a56997 --- /dev/null +++ b/jaggedpine/script_init.lua @@ -0,0 +1 @@ +eq.load_encounter("jpfwar"); diff --git a/kael/#Chanter_Bjroern.lua b/kael/#Chanter_Bjroern.lua new file mode 100644 index 0000000..e28a333 --- /dev/null +++ b/kael/#Chanter_Bjroern.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("'s eyes glow red as he looks down at you."); + end +end diff --git a/kael/#Chanter_Bonebinder.lua b/kael/#Chanter_Bonebinder.lua new file mode 100644 index 0000000..e28a333 --- /dev/null +++ b/kael/#Chanter_Bonebinder.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("'s eyes glow red as he looks down at you."); + end +end diff --git a/kael/#Chanter_Dethsek.lua b/kael/#Chanter_Dethsek.lua new file mode 100644 index 0000000..e28a333 --- /dev/null +++ b/kael/#Chanter_Dethsek.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("'s eyes glow red as he looks down at you."); + end +end diff --git a/kael/#Chanter_Kllejnor.lua b/kael/#Chanter_Kllejnor.lua new file mode 100644 index 0000000..e28a333 --- /dev/null +++ b/kael/#Chanter_Kllejnor.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("'s eyes glow red as he looks down at you."); + end +end diff --git a/kael/#Chanter_Vellnod.lua b/kael/#Chanter_Vellnod.lua new file mode 100644 index 0000000..e28a333 --- /dev/null +++ b/kael/#Chanter_Vellnod.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("'s eyes glow red as he looks down at you."); + end +end diff --git a/kael/#Chanter_Windlasher.lua b/kael/#Chanter_Windlasher.lua new file mode 100644 index 0000000..e28a333 --- /dev/null +++ b/kael/#Chanter_Windlasher.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("'s eyes glow red as he looks down at you."); + end +end diff --git a/kael/#Drendar_Blackblade.lua b/kael/#Drendar_Blackblade.lua new file mode 100644 index 0000000..268fa96 --- /dev/null +++ b/kael/#Drendar_Blackblade.lua @@ -0,0 +1,12 @@ +function event_combat(e) + + if (not e.joined) then + e.self:SetRunning(false); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I do not wish to speak with your kind. If you have business with the king attend to it now, " .. e.other:Race() .. "."); + end +end \ No newline at end of file diff --git a/kael/#Ice_Chanter_Ijelin.lua b/kael/#Ice_Chanter_Ijelin.lua new file mode 100644 index 0000000..cb7d774 --- /dev/null +++ b/kael/#Ice_Chanter_Ijelin.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares through you."); + end +end diff --git a/kael/#Icecrafter_Iceskull.lua b/kael/#Icecrafter_Iceskull.lua new file mode 100644 index 0000000..cb7d774 --- /dev/null +++ b/kael/#Icecrafter_Iceskull.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares through you."); + end +end diff --git a/kael/#Icecrafter_Leyreon.lua b/kael/#Icecrafter_Leyreon.lua new file mode 100644 index 0000000..cb7d774 --- /dev/null +++ b/kael/#Icecrafter_Leyreon.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares through you."); + end +end diff --git a/kael/#Icecrafter_Sleestael.lua b/kael/#Icecrafter_Sleestael.lua new file mode 100644 index 0000000..cb7d774 --- /dev/null +++ b/kael/#Icecrafter_Sleestael.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares through you."); + end +end diff --git a/kael/#Iceweaver_Beldikan.lua b/kael/#Iceweaver_Beldikan.lua new file mode 100644 index 0000000..cb7d774 --- /dev/null +++ b/kael/#Iceweaver_Beldikan.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares through you."); + end +end diff --git a/kael/#Iceweaver_Bonethrower.lua b/kael/#Iceweaver_Bonethrower.lua new file mode 100644 index 0000000..cb7d774 --- /dev/null +++ b/kael/#Iceweaver_Bonethrower.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares through you."); + end +end diff --git a/kael/#Iceweaver_Cavestrider.lua b/kael/#Iceweaver_Cavestrider.lua new file mode 100644 index 0000000..cb7d774 --- /dev/null +++ b/kael/#Iceweaver_Cavestrider.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares through you."); + end +end diff --git a/kael/#Iceweaver_Maldekil.lua b/kael/#Iceweaver_Maldekil.lua new file mode 100644 index 0000000..cb7d774 --- /dev/null +++ b/kael/#Iceweaver_Maldekil.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares through you."); + end +end diff --git a/kael/#Iceweaver_Pelryen.lua b/kael/#Iceweaver_Pelryen.lua new file mode 100644 index 0000000..cb7d774 --- /dev/null +++ b/kael/#Iceweaver_Pelryen.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares through you."); + end +end diff --git a/kael/#Iceweaver_Sjeon.lua b/kael/#Iceweaver_Sjeon.lua new file mode 100644 index 0000000..cb7d774 --- /dev/null +++ b/kael/#Iceweaver_Sjeon.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares through you."); + end +end diff --git a/kael/#Irrek_Bloodfist.lua b/kael/#Irrek_Bloodfist.lua new file mode 100644 index 0000000..5ed32cc --- /dev/null +++ b/kael/#Irrek_Bloodfist.lua @@ -0,0 +1,12 @@ +function event_combat(e) + + if (not e.joined) then + e.self:SetRunning(false); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I long for the day when we might assault the temple of the Dragons. We shall cover the land in a warm blanket of blood."); + end +end \ No newline at end of file diff --git a/kael/#Klraggek_the_Slayer.lua b/kael/#Klraggek_the_Slayer.lua new file mode 100644 index 0000000..12bc61a --- /dev/null +++ b/kael/#Klraggek_the_Slayer.lua @@ -0,0 +1,12 @@ +function event_combat(e) + + if (not e.joined) then + e.self:SetRunning(false); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares down at you and tightens his sword grip."); + end +end \ No newline at end of file diff --git a/kael/#Oracle_Bloodstorm.lua b/kael/#Oracle_Bloodstorm.lua new file mode 100644 index 0000000..e28a333 --- /dev/null +++ b/kael/#Oracle_Bloodstorm.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("'s eyes glow red as he looks down at you."); + end +end diff --git a/kael/#Oracle_Elvekren.lua b/kael/#Oracle_Elvekren.lua new file mode 100644 index 0000000..e28a333 --- /dev/null +++ b/kael/#Oracle_Elvekren.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("'s eyes glow red as he looks down at you."); + end +end diff --git a/kael/#Oracle_Kaeren.lua b/kael/#Oracle_Kaeren.lua new file mode 100644 index 0000000..e28a333 --- /dev/null +++ b/kael/#Oracle_Kaeren.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("'s eyes glow red as he looks down at you."); + end +end diff --git a/kael/#Oracle_Weldom.lua b/kael/#Oracle_Weldom.lua new file mode 100644 index 0000000..e28a333 --- /dev/null +++ b/kael/#Oracle_Weldom.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("'s eyes glow red as he looks down at you."); + end +end diff --git a/kael/#Sentinel_Belstaerm.lua b/kael/#Sentinel_Belstaerm.lua new file mode 100644 index 0000000..1b29466 --- /dev/null +++ b/kael/#Sentinel_Belstaerm.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("watches you but does not say a word."); + end +end diff --git a/kael/#Sentinel_Bjhern.lua b/kael/#Sentinel_Bjhern.lua new file mode 100644 index 0000000..1b29466 --- /dev/null +++ b/kael/#Sentinel_Bjhern.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("watches you but does not say a word."); + end +end diff --git a/kael/#Sentinel_Blackaxe.lua b/kael/#Sentinel_Blackaxe.lua new file mode 100644 index 0000000..2242a16 --- /dev/null +++ b/kael/#Sentinel_Blackaxe.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("silenty watches you."); + end +end diff --git a/kael/#Sentinel_Brajnor.lua b/kael/#Sentinel_Brajnor.lua new file mode 100644 index 0000000..2242a16 --- /dev/null +++ b/kael/#Sentinel_Brajnor.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("silenty watches you."); + end +end diff --git a/kael/#Sentinel_Bvakkren.lua b/kael/#Sentinel_Bvakkren.lua new file mode 100644 index 0000000..1b29466 --- /dev/null +++ b/kael/#Sentinel_Bvakkren.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("watches you but does not say a word."); + end +end diff --git a/kael/#Sentinel_Bvellor.lua b/kael/#Sentinel_Bvellor.lua new file mode 100644 index 0000000..2242a16 --- /dev/null +++ b/kael/#Sentinel_Bvellor.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("silenty watches you."); + end +end diff --git a/kael/#Sentinel_Crrlarn.lua b/kael/#Sentinel_Crrlarn.lua new file mode 100644 index 0000000..1b29466 --- /dev/null +++ b/kael/#Sentinel_Crrlarn.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("watches you but does not say a word."); + end +end diff --git a/kael/#Sentinel_Dekrendar.lua b/kael/#Sentinel_Dekrendar.lua new file mode 100644 index 0000000..1b29466 --- /dev/null +++ b/kael/#Sentinel_Dekrendar.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("watches you but does not say a word."); + end +end diff --git a/kael/#Sentinel_Dragonbane.lua b/kael/#Sentinel_Dragonbane.lua new file mode 100644 index 0000000..2242a16 --- /dev/null +++ b/kael/#Sentinel_Dragonbane.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("silenty watches you."); + end +end diff --git a/kael/#Sentinel_Drakeslayer.lua b/kael/#Sentinel_Drakeslayer.lua new file mode 100644 index 0000000..f084f96 --- /dev/null +++ b/kael/#Sentinel_Drakeslayer.lua @@ -0,0 +1,15 @@ +function event_signal(e) + + if (e.signal == 1) then + + local kyenka = eq.get_entity_list():GetMobByNpcTypeID(113133); + + eq.follow(kyenka:GetID()); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("silenty watches you."); + end +end diff --git a/kael/#Sentinel_Estrek.lua b/kael/#Sentinel_Estrek.lua new file mode 100644 index 0000000..1b29466 --- /dev/null +++ b/kael/#Sentinel_Estrek.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("watches you but does not say a word."); + end +end diff --git a/kael/#Sentinel_Felshrefh.lua b/kael/#Sentinel_Felshrefh.lua new file mode 100644 index 0000000..1b29466 --- /dev/null +++ b/kael/#Sentinel_Felshrefh.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("watches you but does not say a word."); + end +end diff --git a/kael/#Sentinel_Fhaard.lua b/kael/#Sentinel_Fhaard.lua new file mode 100644 index 0000000..1b29466 --- /dev/null +++ b/kael/#Sentinel_Fhaard.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("watches you but does not say a word."); + end +end diff --git a/kael/#Sentinel_Fleshflayer.lua b/kael/#Sentinel_Fleshflayer.lua new file mode 100644 index 0000000..2242a16 --- /dev/null +++ b/kael/#Sentinel_Fleshflayer.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("silenty watches you."); + end +end diff --git a/kael/#Sentinel_Fyjrael.lua b/kael/#Sentinel_Fyjrael.lua new file mode 100644 index 0000000..1b29466 --- /dev/null +++ b/kael/#Sentinel_Fyjrael.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("watches you but does not say a word."); + end +end diff --git a/kael/#Sentinel_Harzok.lua b/kael/#Sentinel_Harzok.lua new file mode 100644 index 0000000..2242a16 --- /dev/null +++ b/kael/#Sentinel_Harzok.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("silenty watches you."); + end +end diff --git a/kael/#Sentinel_Lergremor.lua b/kael/#Sentinel_Lergremor.lua new file mode 100644 index 0000000..1b29466 --- /dev/null +++ b/kael/#Sentinel_Lergremor.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("watches you but does not say a word."); + end +end diff --git a/kael/#Sentinel_Maldevor.lua b/kael/#Sentinel_Maldevor.lua new file mode 100644 index 0000000..1b29466 --- /dev/null +++ b/kael/#Sentinel_Maldevor.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("watches you but does not say a word."); + end +end diff --git a/kael/#Sentinel_Mjakkor.lua b/kael/#Sentinel_Mjakkor.lua new file mode 100644 index 0000000..1b29466 --- /dev/null +++ b/kael/#Sentinel_Mjakkor.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("watches you but does not say a word."); + end +end diff --git a/kael/#Sentinel_Mjrell.lua b/kael/#Sentinel_Mjrell.lua new file mode 100644 index 0000000..1b29466 --- /dev/null +++ b/kael/#Sentinel_Mjrell.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("watches you but does not say a word."); + end +end diff --git a/kael/#Sentinel_Nellenar.lua b/kael/#Sentinel_Nellenar.lua new file mode 100644 index 0000000..1b29466 --- /dev/null +++ b/kael/#Sentinel_Nellenar.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("watches you but does not say a word."); + end +end diff --git a/kael/#Sentinel_Othkel.lua b/kael/#Sentinel_Othkel.lua new file mode 100644 index 0000000..2242a16 --- /dev/null +++ b/kael/#Sentinel_Othkel.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("silenty watches you."); + end +end diff --git a/kael/#Sentinel_Pylrek.lua b/kael/#Sentinel_Pylrek.lua new file mode 100644 index 0000000..1b29466 --- /dev/null +++ b/kael/#Sentinel_Pylrek.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("watches you but does not say a word."); + end +end diff --git a/kael/#Sentinel_Rethdeyn.lua b/kael/#Sentinel_Rethdeyn.lua new file mode 100644 index 0000000..2242a16 --- /dev/null +++ b/kael/#Sentinel_Rethdeyn.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("silenty watches you."); + end +end diff --git a/kael/#Sentinel_Sellov.lua b/kael/#Sentinel_Sellov.lua new file mode 100644 index 0000000..2242a16 --- /dev/null +++ b/kael/#Sentinel_Sellov.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("silenty watches you."); + end +end diff --git a/kael/#Sentinel_Stonetrader.lua b/kael/#Sentinel_Stonetrader.lua new file mode 100644 index 0000000..2242a16 --- /dev/null +++ b/kael/#Sentinel_Stonetrader.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("silenty watches you."); + end +end diff --git a/kael/#Sentinel_Stormbeard.lua b/kael/#Sentinel_Stormbeard.lua new file mode 100644 index 0000000..2242a16 --- /dev/null +++ b/kael/#Sentinel_Stormbeard.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("silenty watches you."); + end +end diff --git a/kael/#Sentinel_Sunderdrake.lua b/kael/#Sentinel_Sunderdrake.lua new file mode 100644 index 0000000..2242a16 --- /dev/null +++ b/kael/#Sentinel_Sunderdrake.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("silenty watches you."); + end +end diff --git a/kael/#Sentinel_Thernek.lua b/kael/#Sentinel_Thernek.lua new file mode 100644 index 0000000..2242a16 --- /dev/null +++ b/kael/#Sentinel_Thernek.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("silenty watches you."); + end +end diff --git a/kael/#Sentinel_Thunderfist.lua b/kael/#Sentinel_Thunderfist.lua new file mode 100644 index 0000000..2242a16 --- /dev/null +++ b/kael/#Sentinel_Thunderfist.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("silenty watches you."); + end +end diff --git a/kael/#Sentinel_Thurdiel.lua b/kael/#Sentinel_Thurdiel.lua new file mode 100644 index 0000000..2242a16 --- /dev/null +++ b/kael/#Sentinel_Thurdiel.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("silenty watches you."); + end +end diff --git a/kael/#Sentinel_Tyorpen.lua b/kael/#Sentinel_Tyorpen.lua new file mode 100644 index 0000000..1b29466 --- /dev/null +++ b/kael/#Sentinel_Tyorpen.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("watches you but does not say a word."); + end +end diff --git a/kael/#Sentinel_Uthjaern.lua b/kael/#Sentinel_Uthjaern.lua new file mode 100644 index 0000000..2242a16 --- /dev/null +++ b/kael/#Sentinel_Uthjaern.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("silenty watches you."); + end +end diff --git a/kael/#Sentinel_Uthnorn.lua b/kael/#Sentinel_Uthnorn.lua new file mode 100644 index 0000000..1b29466 --- /dev/null +++ b/kael/#Sentinel_Uthnorn.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("watches you but does not say a word."); + end +end diff --git a/kael/#Sentinel_Vejleorn.lua b/kael/#Sentinel_Vejleorn.lua new file mode 100644 index 0000000..1b29466 --- /dev/null +++ b/kael/#Sentinel_Vejleorn.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("watches you but does not say a word."); + end +end diff --git a/kael/#Sentinel_Veldrendyr.lua b/kael/#Sentinel_Veldrendyr.lua new file mode 100644 index 0000000..2242a16 --- /dev/null +++ b/kael/#Sentinel_Veldrendyr.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("silenty watches you."); + end +end diff --git a/kael/#Sentinel_Vllejenar.lua b/kael/#Sentinel_Vllejenar.lua new file mode 100644 index 0000000..1b29466 --- /dev/null +++ b/kael/#Sentinel_Vllejenar.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("watches you but does not say a word."); + end +end diff --git a/kael/#Sentinel_Weldren.lua b/kael/#Sentinel_Weldren.lua new file mode 100644 index 0000000..f084f96 --- /dev/null +++ b/kael/#Sentinel_Weldren.lua @@ -0,0 +1,15 @@ +function event_signal(e) + + if (e.signal == 1) then + + local kyenka = eq.get_entity_list():GetMobByNpcTypeID(113133); + + eq.follow(kyenka:GetID()); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("silenty watches you."); + end +end diff --git a/kael/#Sentinel_Yeljom.lua b/kael/#Sentinel_Yeljom.lua new file mode 100644 index 0000000..2242a16 --- /dev/null +++ b/kael/#Sentinel_Yeljom.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("silenty watches you."); + end +end diff --git a/kael/#The_Idol_of_Rallos_Zek.lua b/kael/#The_Idol_of_Rallos_Zek.lua new file mode 100644 index 0000000..dbaf03e --- /dev/null +++ b/kael/#The_Idol_of_Rallos_Zek.lua @@ -0,0 +1,7 @@ +-- On death, spawns the Avatar of War + +function event_death_complete(e) + eq.set_global("Avatar","1",7,"F"); + eq.delete_global("Idol"); + eq.unique_spawn(113244,0,0,1292,1058,-95,259); -- NPC: The_Avatar_of_War +end diff --git a/kael/#Velden_Dragonbane.lua b/kael/#Velden_Dragonbane.lua new file mode 100644 index 0000000..1eab5af --- /dev/null +++ b/kael/#Velden_Dragonbane.lua @@ -0,0 +1,12 @@ +function event_combat(e) + + if (not e.joined) then + e.self:SetRunning(false); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("watches you carefully, not saying a word."); + end +end \ No newline at end of file diff --git a/kael/#Vkjen_Thunderslayer.lua b/kael/#Vkjen_Thunderslayer.lua new file mode 100644 index 0000000..2189ba9 --- /dev/null +++ b/kael/#Vkjen_Thunderslayer.lua @@ -0,0 +1,12 @@ +function event_combat(e) + + if (not e.joined) then + e.self:SetRunning(false); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greater ones than you have stood before King Tormax. Show respect fool."); + end +end \ No newline at end of file diff --git a/kael/#a_kromrif_recruiter.lua b/kael/#a_kromrif_recruiter.lua new file mode 100644 index 0000000..8091fff --- /dev/null +++ b/kael/#a_kromrif_recruiter.lua @@ -0,0 +1,43 @@ +-- Wage War Upon The Coldain + +function event_say(e) + if(e.other:GetFaction(e.self) < 6) then + if(e.message:findi("hail")) then + e.self:Say("Greetings, little thing. You have entered into the great city of Kael Drakkel, home of the Kromzek as well as a few of my kind, the Kromrif. If you are to walk among my people as a peer you must prove yourself as a friend, not a foe."); + elseif(e.message:findi("prove")) then + e.self:Say("Leave this place then and return when you have waged war upon the Coldain. Remove their heads from their bodies and return them to me. I will spread the word of your deeds amongst my people if you do so, " .. e.other:Race() .. "."); + elseif(e.message:findi("coldain")) then + e.self:Say("The Coldain are the ice dwarves who dwell in the city of Thurgadin. They are a blight upon the land known as Velious, speaking the word of their god, Brell."); + end + else + e.self:Say("I will do nothing to help beings like you!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local head = 0; + + if(e.other:GetFaction(e.self) < 6 and item_lib.check_turn_in(e.self, e.trade, {item1 = 30081, item2 = 30081, item3 = 30081, item4 = 30081}, 0)) then + head = 4; + elseif(e.other:GetFaction(e.self) < 6 and item_lib.check_turn_in(e.self, e.trade, {item1 = 30081, item2 = 30081, item3 = 30081}, 0)) then + head = 3; + elseif(e.other:GetFaction(e.self) < 6 and item_lib.check_turn_in(e.self, e.trade, {item1 = 30081, item2 = 30081}, 0)) then + head = 2; + elseif(e.other:GetFaction(e.self) < 6 and item_lib.check_turn_in(e.self, e.trade, {item1 = 30081}, 0)) then + head = 1; + end + + if(head > 0) then + for i = 1, head do + e.self:Say("Very good, " .. e.other:Race() .. ". Slay more of the beasts and your name will be known by all of the Kromrif!"); + e.other:Faction(e.self,419,35); -- Kromrif + e.other:Faction(e.self,448,8); -- Kromzek + e.other:Faction(e.self,406,-17); -- Coldain + e.other:Faction(e.self,430,-3); -- Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,0,5000); + end + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/kael/113121.lua b/kael/113121.lua new file mode 100644 index 0000000..b71c983 --- /dev/null +++ b/kael/113121.lua @@ -0,0 +1,21 @@ +function event_spawn(e) + eq.set_timer("kael",1000); +end + +function event_timer(e) + local qglobals = eq.get_qglobals(); + + if(e.timer == "kael") then + + if ( qglobals["Idol"] and qglobals["Idol"] == "1" ) then + eq.unique_spawn(113341,0,0,1289,1300,-90,259); -- NPC: #The_Idol_of_Rallos_Zek + end + + if ( qglobals["Avatar"] and qglobals["Avatar"] == "1" ) then + eq.unique_spawn(113244,0,0,1292,1058,-95,259); -- NPC: The_Avatar_of_War + end + + eq.stop_timer("kael"); + end + +end diff --git a/kael/113182.lua b/kael/113182.lua new file mode 100644 index 0000000..8454224 --- /dev/null +++ b/kael/113182.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("I enjoy a good day at the arena."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/113598.lua b/kael/113598.lua new file mode 100644 index 0000000..95bfa7f --- /dev/null +++ b/kael/113598.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("I am trying to watch the games!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/Armor_of_Zek.lua b/kael/Armor_of_Zek.lua new file mode 100644 index 0000000..5c9194b --- /dev/null +++ b/kael/Armor_of_Zek.lua @@ -0,0 +1,9 @@ +function event_signal(e) + + if (e.signal == 1) then + + local statue = eq.get_entity_list():GetMobByNpcTypeID(113000); + + eq.follow(statue:GetID()); + end +end diff --git a/kael/Barlek_Stonefist.lua b/kael/Barlek_Stonefist.lua new file mode 100644 index 0000000..6578abb --- /dev/null +++ b/kael/Barlek_Stonefist.lua @@ -0,0 +1,52 @@ +--Paladin + +local quest_helper = require('velious_quest_helper'); +local KAEL_ARMOR = quest_helper.KAEL_ARMOR; + +local QUEST_ITEMS = { + quest_helper:melee_helmet(KAEL_ARMOR.Plate_Helmet, 25370), --Helm + quest_helper:melee_chest(KAEL_ARMOR.Breastplate, 25371), -- Breastplate + quest_helper:melee_arms(KAEL_ARMOR.Plate_Vambraces, 25372), -- Arms + quest_helper:melee_bracer(KAEL_ARMOR.Plate_Bracer, 25373), --Bracer + quest_helper:melee_gloves(KAEL_ARMOR.Plate_Gauntlets, 25374), --gloves + quest_helper:melee_legs(KAEL_ARMOR.Plate_Greaves, 25375), --legs + quest_helper:melee_boots(KAEL_ARMOR.Plate_Boots, 25376), --boots +} + +function event_say(e) + if (e.other:GetFaction(e.self) < 2) then -- Must be Ally + if (e.message:findi("hail")) then + e.self:Say("Greetings to you. I seek the service of devout knights who have distinguished themselves. Are you a paladin? If not then be gone.") + elseif (e.message:findi("paladin")) then + e.self:Say("A paladin of your order has not made it this far for quite some time. Well, I wonder what it is you seek here. Do you seek heroic and chivalrous deeds to distinguish yourself from your brethren? Do you need accoutrements to aid you in your battles perhaps? You are in luck, knight for I have both for you. Do you wish to partake of my quests?") + elseif (e.message:findi("partake of your quests")) then + e.self:Say("Excellent. By serving my cause, you, in turn, will further your own. I require certain components to aid me and if you bring them to me, I shall reward you for your honorable service. You may choose from among these items, a helm, a breastplate, armplates, bracers, gauntlets, greaves, and boots.") + elseif (e.message:findi("helm")) then + e.self:Say("All that I require is an ancient tarnished plate helmet and three pieces of crushed coral. This should be a small task for one such as you. Go now and I shall await your return.") + elseif(e.message:findi("breastplate")) then + e.self:Say("As the resolve of your faith shall protect you, so shall this breastplate. All that is required is an ancient tarnished breastplate, and three flawless diamonds. Do this quickly so that you may return to your place in the field of battle.") + elseif(e.message:findi("armplates")) then + e.self:Say("So, a pair of armplates, is what you require? Well, I require an ancient tarnished plate vambraces as well as three flawed emeralds before you will receive your prize.") + elseif(e.message:findi("bracers")) then + e.self:Say("Bracers for the mighty? Retrieve these components and I shall forge the item for you. Bring me an ancient tarnished plate bracelet as well as three crushed flame emeralds.") + elseif(e.message:findi("gauntlets")) then + e.self:Say("Mighty gauntlets to smite your foes for the glory of the greater good. It is no easy task but I shall require a pair of an ancient tarnished plate gauntlets and three crushed topaz.") + elseif(e.message:findi("greaves")) then + e.self:Say("Sturdy are the pillars that support the temple. I shall make you as strong with these leggings. Gather three flawed sapphires of the sea and a set of ancient tarnished plate greaves.") + elseif(e.message:findi("boots")) then + e.self:Say("A pair of boots you shall have once you have gotten a pair of an ancient tarnished plate boots and a set of three crushed pieces of black marble.") + end + elseif (e.other:GetFaction(e.self) < 5) then -- amiably or better + if(e.message:findi("hail")) then + e.self:Say("We have nothing to talk about small one."); + end + elseif (e.other:GetFaction(e.self) >= 5) then + if(e.message:findi("hail")) then + e.self:Say("You must prove your dedication to Kael Drakkal and the Kromzek clan before I will speak to you."); + end + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.kael_armor_success) +end diff --git a/kael/Bendad_the_Trader.lua b/kael/Bendad_the_Trader.lua new file mode 100644 index 0000000..b4861a3 --- /dev/null +++ b/kael/Bendad_the_Trader.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("points to his price list."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/Bjarorm_Mjlorn.lua b/kael/Bjarorm_Mjlorn.lua new file mode 100644 index 0000000..4f2a365 --- /dev/null +++ b/kael/Bjarorm_Mjlorn.lua @@ -0,0 +1,52 @@ +--necro + +local quest_helper = require('velious_quest_helper'); +local KAEL_ARMOR = quest_helper.KAEL_ARMOR; + +local QUEST_ITEMS = { + quest_helper:silk_helmet(KAEL_ARMOR.Silk_Turban, 25412), + quest_helper:silk_chest(KAEL_ARMOR.Silk_Robe, 25413), + quest_helper:silk_arms(KAEL_ARMOR.Silk_Sleeves, 25414), + quest_helper:silk_bracer(KAEL_ARMOR.Silk_Wristband, 25415), + quest_helper:silk_gloves(KAEL_ARMOR.Silk_Gloves, 25416), + quest_helper:silk_legs(KAEL_ARMOR.Silk_Pantaloons, 25417), + quest_helper:silk_boots(KAEL_ARMOR.Silk_Boots, 25418), +} + +function event_say(e) + if(e.other:GetFaction(e.self) < 2) then --Must be ally + if(e.message:findi("hail")) then + e.self:Say("I seek those who practice the dark magicks. I seek those who call themselves necromancers. Are you a necromancer?"); + elseif(e.message:findi("necromancer")) then + e.self:Say("Excellent. Are you sure enough of your skills to undertake my tasks? If not, get out of my sight, weakling!"); + elseif(e.message:findi("task")) then + e.self:Say("I thought so. One should never back down from a challenge. Once you have completed them I will have a cap, a robe, sleeves, wristbands, gloves, leggings and boots to reward you with."); + elseif(e.message:findi("cap")) then + e.self:Say("For you to receive my gift, I shall require an ancient silk turban and three crushed flame opals."); + elseif(e.message:findi("robe")) then + e.self:Say("This exquisite robe shall be yours in exchange for an ancient silk robe and three pristine emeralds."); + elseif(e.message:findi("sleeve")) then + e.self:Say("For these durable sleeves, you must fetch me a pair of ancient silk sleeves and three flawed topazes."); + elseif(e.message:findi("wristband")) then + e.self:Say("The crafting of this wristband requires that you bring me an ancient silk wristband and three crushed pieces of onyx sapphire."); + elseif(e.message:findi("glove")) then + e.self:Say("For this fine pair of gloves you must seek out and return to me a pair of ancient silk gloves and a crushed topaz."); + elseif(e.message:findi("legging")) then + e.self:Say("This pair of leggings will be yours provided you supply me with a pair of ancient silk pantaloons as well as three nephrites."); + elseif(e.message:findi("boot")) then + e.self:Say("These supple boots shall be yours upon receipt of a pair of ancient silk boots and a trilogy of crushed jaundice gems."); + end + elseif (e.other:GetFaction(e.self) < 5) then -- amiably or better + if(e.message:findi("hail")) then + e.self:Say("We have nothing to talk about small one."); + end + elseif (e.other:GetFaction(e.self) >= 5) then + if(e.message:findi("hail")) then + e.self:Say("You must prove your dedication to Kael Drakkal and the Kromzek clan before I will speak to you."); + end + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.kael_armor_success); +end diff --git a/kael/Bjorak_Stonefist.lua b/kael/Bjorak_Stonefist.lua new file mode 100644 index 0000000..9fff650 --- /dev/null +++ b/kael/Bjorak_Stonefist.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Get your tickets here! Tasty Coldain heads! Get them while they last!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/Bjoskhua_Blackfist.lua b/kael/Bjoskhua_Blackfist.lua new file mode 100644 index 0000000..13f63ec --- /dev/null +++ b/kael/Bjoskhua_Blackfist.lua @@ -0,0 +1,63 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("'s lips do not move, though your mind is filled with a voice. 'What is it you want, mortal? I have little patience for those who do not come here to study.'"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("study")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Emote("looks you over and his voice invades your mind again. 'What is it you wish to study?'"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("combat")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Those who walk the path of the fist are fierce indeed. Stories in my books tell of great contests once held. Contests of skill without weapons. Only the body and the warriors' training would keep them alive. The last warriors to survive would be given a set of magical chest straps as a status symbol."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("clrakk")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Clrakk is my youngest brother. He walks a path of shadows and deceit. If he were to battle, it would not be one without weapons or armor. I may use these as a bargaining chip some day. I do not think my family has any more need of these old chest straps."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("chest strap")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The chest straps are simply a status symbol to some gladiators and warriors. They are passed down from generation to generation. When a warrior enters one of these contests of the fist, they wear the chest straps of their family. My family was awarded a set of the enchanted chest straps ages ago. None of my brothers save Clrakk would even consider entering the contest."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("contest")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Ages ago there was a race of fish men named the Kedge. Prexus spread them throughout the waters of the world and they were prosperous. Rumors abound that even near the waters of Velious they had great cities. All at once they seemed to be wiped from the face of Norrath. One of the travelers I recently spoke to informed me that a single Kedge may still live in the lands of Faydwer. As grotesque as it sounds, the backbone of a Kedge may be used to create indestructible scroll cases. Bring me the backbone of this fishman, if he exists, and you will find yourself a richer person."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 20524}, 0)) then + e.self:Say("Excellent, I guess his entire race is now wiped from Norrath. This will indeed make a wonderful scroll case. I am a giant of my word. Take your prized item and be gone, you greedy little beast!"); + e.other:Faction(e.self,419,10); -- Kromrif + e.other:Faction(e.self,448,2); -- Kromzek + e.other:Faction(e.self,406,-5); -- Coldain + e.other:Faction(e.self,430,-1); -- Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,25053,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kael/Bjrakor_the_Cold.lua b/kael/Bjrakor_the_Cold.lua new file mode 100644 index 0000000..602d6c0 --- /dev/null +++ b/kael/Bjrakor_the_Cold.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("The arena is a place to gain glory and honor, " .. e.other:Race() .. ". Do not stain it with your presence."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/Bygloirn_Omorden.lua b/kael/Bygloirn_Omorden.lua new file mode 100644 index 0000000..aafabe1 --- /dev/null +++ b/kael/Bygloirn_Omorden.lua @@ -0,0 +1,52 @@ +--bard + +local quest_helper = require('velious_quest_helper'); +local KAEL_ARMOR = quest_helper.KAEL_ARMOR; + +local QUEST_ITEMS = { + quest_helper:melee_helmet(KAEL_ARMOR.Plate_Helmet, 25384), --Helm + quest_helper:melee_chest(KAEL_ARMOR.Breastplate, 25385), -- Breastplate + quest_helper:melee_arms(KAEL_ARMOR.Plate_Vambraces, 25386), -- Arms + quest_helper:melee_bracer(KAEL_ARMOR.Plate_Bracer, 25387), --Bracer + quest_helper:melee_gloves(KAEL_ARMOR.Plate_Gauntlets, 25388), --gloves + quest_helper:melee_legs(KAEL_ARMOR.Plate_Greaves, 25389), --legs + quest_helper:melee_boots(KAEL_ARMOR.Plate_Boots, 25390), --boots +} + +function event_say(e) + if(e.other:GetFaction(e.self) < 2) then -- Must be ally + if(e.message:findi("hail")) then + e.self:Say("Hail! I long to speak with a minstrel. I am curious about what has gone on beyond our borders here. Are you a bard? If not then I have no use for you."); + elseif(e.message:findi("bard")) then + e.self:Say("So troubadour, what news and stories have you from the New World? Oh, I forget my manners. We shall exchange talk another time. You seek something do you not? A new outfit perhaps?"); + elseif(e.message:findi("new outfit")) then + e.self:Say("Well then, I have just what you need. Now, my terms of payment is thus, you gather some things for me and in return I shall craft you the finest armor a bard has ever seen! A new outfit comprised of a helm, breastplate, armplates, bracers, gauntlets, greaves, and boots shall make you the envy of your peers, my little friend."); + elseif(e.message:findi("helm")) then + e.self:Say("A brand new shiny helm shall be yours once I have an ancient tarnished plate helmet and three pieces of crushed coral. May the audience swoon in your presence."); + elseif(e.message:findi("breastplate")) then + e.self:Say("I have need of an ancient tarnished breastplate and three flawless diamonds. Find these for me and I shall craft you a breastplate, minstrel. May it protect you from unruly audiences with rotten vegetables."); + elseif(e.message:findi("armplate")) then + e.self:Say("A gorgeous pair of armplates shall be yours once you have retrieved a pair of ancient tarnished plate vambraces and three flawed emeralds. The detail and craftsmanship is stunning!"); + elseif(e.message:findi("bracer")) then + e.self:Say("A pair of bracers shall be yours upon receipt of an ancient tarnished plate bracer and three crushed flame emeralds. May your songs never falter during a tactical retreat."); + elseif(e.message:findi("gauntlet")) then + e.self:Say("It would be a shame if your hands were to be injured and not be able to play your instruments wouldn't it? I shall craft some gauntlets so that your nimble digits remain intact. Bring me a pair of ancient tarnished plate gauntlets as well as three crushed topaz."); + elseif(e.message:findi("greave")) then + e.self:Say("Some new greaves would do you some good. The pair you have now looks quite stained and worn. Nevermind, fetch me a pair of ancient tarnished plate greaves and three flawed sea sapphires."); + elseif(e.message:findi("boot")) then + e.self:Say("A fancy pair of boots you want is it? Yes, I can see the pair you have now looks a bit worn from running so much. All I require is a set of three crushed pieces of black marble and a pair of ancient tarnished plate boots."); + end + elseif (e.other:GetFaction(e.self) < 5) then -- amiably or better + if(e.message:findi("hail")) then + e.self:Say("We have nothing to talk about small one."); + end + elseif (e.other:GetFaction(e.self) >= 5) then + if(e.message:findi("hail")) then + e.self:Say("You must prove your dedication to Kael Drakkal and the Kromzek clan before I will speak to you."); + end + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.kael_armor_success) +end diff --git a/kael/Captain_Bvellos.lua b/kael/Captain_Bvellos.lua new file mode 100644 index 0000000..b874ab1 --- /dev/null +++ b/kael/Captain_Bvellos.lua @@ -0,0 +1,81 @@ +-- Captain_Bvellos +-- Bvellos' Bounty, Mask of War + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am the captain of the Kael militia. I will be watching those of your kind who have come to Kael Drakkel as mercenaries and bounty hunters. You may have come here to serve king Tormax but Kael is my home and I intend to keep it a safe place for the Kromzek. Keep yourself out of trouble or you will end up in a world of pain."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("work")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Are you looking for work, " .. e.other:GetCleanName() .. "? I may have a use for one of your kind. I believe that several nobles in this fine city are not all they appear to be. I have suspicions about that filthy Wenglawks. He will do whatever it takes to amass his own wealth. My sources tell me that he may very well be trading with the Coldain, or worse yet, the dragons. If you could find me proof of his underhanded dealings, I would be most pleased."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("proof")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The more convincing the proof is, the better. There must be a record of his actions somewhere."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("safe")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("With the influx of mercenaries into Kael Drakkel, I have seen minor crimes increase. I have had to increase my militia patrols. A majority of my militia work longer hours than they did before. There was a time when we only had to watch for the dragons from the sky and the Coldain from the outside. Now we must watch within."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("mercenaries")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I have several bounties open if you are interested. Bring me the head of a Coldain and I will reward you with a small sum of money and spread the word of your good work. There is also a bounty upon the nefarious Icepaw kobolds who serve the outcast Velketor. I require four of the paws of those little beasts."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + local head = item_lib.count_handed_item(e.self, e.trade, {30081}); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 25301, item2 = 25301, item3 = 25301, item4 = 25301}, 0)) then + e.self:Say("You have done well to hunt down these foul dogs."); + e.self:Emote("reaches into a large bag and pulls something shiny from within its depths 'Take this as a reward."); + e.other:Faction(e.self,448,40); -- Faction: Kromzek + e.other:Faction(e.self,419,10); -- Faction: Kromrif + e.other:Faction(e.self,429,10); -- Faction: King Tormax + e.other:Faction(e.self,430,-20); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,{itemid = eq.ChooseRandom(25077,25084,25018)}); -- Item(s): Silvery Mask (25077), Antlered Mask (25084), Giant Scalemail Tunic (25018) + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1718}, 0)) then -- Wurmscale Scroll + e.self:Say("This indeed points to Wenglawks being a traitor. If only there were more proof I could take this to the king. Thank you, " .. e.other:GetCleanName() .. ", you have done a great service for Kael. Take this mask as a reward for your service to this city."); + e.other:Faction(e.self,448,50); -- Faction: Kromzek + e.other:Faction(e.self,419,12); -- Faction: Kromrif + e.other:Faction(e.self,429,12); -- Faction: King Tormax + e.other:Faction(e.self,430,-25); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,25024,1000); + end + + if(head > 0) then + repeat + e.self:Say("Excellent, " .. e.other:GetCleanName() .. ". Here is the bounty as promised."); + e.other:Faction(e.self,448,40); -- Faction: Kromzek + e.other:Faction(e.self,419,10); -- Faction: Kromrif + e.other:Faction(e.self,429,10); -- Faction: King Tormax + e.other:Faction(e.self,430,-20); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,math.random(5,8),0,1000); + head = head - 1; + until head == 0 + end + + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kael/Clrakk_Blackfist.lua b/kael/Clrakk_Blackfist.lua new file mode 100644 index 0000000..980ac18 --- /dev/null +++ b/kael/Clrakk_Blackfist.lua @@ -0,0 +1,48 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Emote("looks down at you. 'What is it you want, " .. e.other:GetCleanName() .. "? Why do you speak to the great Knight Clrakk Blackfist?"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("bring strife")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The Coldain have grown complacent. The defenses of their city are built to keep my kind and dragonkind at bay. However, their defenses against the smaller races such as yourself are not nearly as sophisticated. I wish to kill many Coldain, but now is not the time for that. There is a particular Coldain whose death will strike fear into the hearts of many. His name is Deaen Greyforge, a Coldain knight. He is both feared and respected by his kind. If you can destroy him, it will send a message to the Coldain that they are not safe from the wrath of the giants. Kill him and chop his body into bits. Bring me a few pieces as proof that the fool is dead."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("knight")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Yes, I am a knight. One who walks a dark path of blood and hatred. In your realms, one such as myself is called a shadowknight."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 25115}, 0)) then -- Hand of Deaen Greyforge + e.self:Say("You truly are a bringer of strife, " .. e.other:GetCleanName() .. ". Take this. I hope it will assist you. Use it in our war against the Coldain scum."); + -- confirmeed live faction + e.other:Faction(e.self,419,10); -- Kromrif + e.other:Faction(e.self,448,2); -- Kromzek + e.other:Faction(e.self,406,-5); -- Coldain + e.other:Faction(e.self,430,-1); -- Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,25054,1000); -- Mask of Malediction + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 25114}, 0)) then -- Legs of Deaen Greyforge + e.self:Say("You truly are a bringer of strife, " .. e.other:GetCleanName() .. ". Take this. I hope it will assist you. Use it in our war against the Coldain scum."); + -- confirmeed live faction + e.other:Faction(e.self,419,10); -- Kromrif + e.other:Faction(e.self,448,2); -- Kromzek + e.other:Faction(e.self,406,-5); -- Coldain + e.other:Faction(e.self,430,-1); -- Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,25051,1000); -- Dark Spear of Venom + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kael/Dagron_Stonecutter.lua b/kael/Dagron_Stonecutter.lua new file mode 100644 index 0000000..ebb1fd2 --- /dev/null +++ b/kael/Dagron_Stonecutter.lua @@ -0,0 +1,50 @@ +--monk + +local quest_helper = require('velious_quest_helper'); +local KAEL_ARMOR = quest_helper.KAEL_ARMOR; + +local QUEST_ITEMS = { + quest_helper:melee_helmet(KAEL_ARMOR.Leather_Cap, 25440), --helm + quest_helper:melee_chest(KAEL_ARMOR.Leather_Tunic, 25441), -- Breastplate + quest_helper:melee_arms(KAEL_ARMOR.Leather_Sleeves, 25442), -- Arms + quest_helper:melee_bracer(KAEL_ARMOR.Leather_Bracelet, 25443), --Bracer + quest_helper:melee_gloves(KAEL_ARMOR.Leather_Gloves, 25444), --gloves + quest_helper:melee_legs(KAEL_ARMOR.Leather_Leggings, 25445), --legs + quest_helper:melee_boots(KAEL_ARMOR.Leather_Boots, 25446), --boots +} + +function event_say(e) + if(e.other:GetFaction(e.self) < 2) then -- Must be ally + if(e.message:findi("hail")) then + e.self:Say("Greetings to you. I seek one who has chosen the path of monkhood. What do you call yourself?"); + elseif(e.message:findi("monk")) then + e.self:Say("Good. I had hoped you were one. As seeker of the way you are in constant training to push yourself to your physical and mental limits. It is an admirable quality and I wish to aid you. I will provide you with a cap, a tunic, sleeves, bracers, gloves, leggings and boots."); + elseif(e.message:findi("cap")) then + e.self:Say("I shall weave one of exceptional quality for you but you must gather the items first. I require an ancient leather cap and a set of three pieces of crushed coral."); + elseif(e.message:findi("tunic")) then + e.self:Say("You shall be an imposing force with this tunic. Solid as the unmoving mountains, it shall protect you. Once I have gained an ancient leather tunic and three flawless diamonds, the item is yours."); + elseif(e.message:findi("sleeve")) then + e.self:Say("As the mighty stone that parts the flow of water, so shall these sleeves divert harm against you. Bring me three flawed emeralds and a pair of ancient leather sleeves."); + elseif(e.message:findi("bracer")) then + e.self:Say("For a bracer I shall require an ancient leather bracelet and a set of three crushed flame emeralds. Do this and the reward shall be yours to keep."); + elseif(e.message:findi("glove")) then + e.self:Say("Your hands are like the wind, everflowing and moving. Subtle one moment, then a howling wind raining blow upon blow to your foes. These gloves shall aid you. In order to complete them I require a pair of ancient leather gloves and three crushed topaz."); + elseif(e.message:findi("legging")) then + e.self:Say("The leggings shall protect you, as the valley shelters the still pool within its center from the howling winds. Furnish a pair of ancient leather leggings and a set of three flawed sea sapphires for me and they are yours."); + elseif(e.message:findi("boot")) then + e.self:Say("Your feet are hard as any stone and as swift as a coiled serpent but even the swiftest feet require protection so I shall provide you with these. They should help. Acquire a pair of ancient tarnished boots and three crushed pieces of black marble."); + end + elseif (e.other:GetFaction(e.self) < 5) then -- amiably or better + if(e.message:findi("hail")) then + e.self:Say("We have nothing to talk about small one."); + end + elseif (e.other:GetFaction(e.self) >= 5) then + if(e.message:findi("hail")) then + e.self:Say("You must prove your dedication to Kael Drakkal and the Kromzek clan before I will speak to you."); + end + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.kael_armor_success) +end diff --git a/kael/Dlammaz_Stormslayer.lua b/kael/Dlammaz_Stormslayer.lua new file mode 100644 index 0000000..baf1024 --- /dev/null +++ b/kael/Dlammaz_Stormslayer.lua @@ -0,0 +1,88 @@ +-- Dragon Heads quests + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Welcome to the castle of King Tormax. It is quite an accomplishment for one of your kind to have lived this long in the service of our great King Tormax. You must be powerful indeed. My power is like a storm - I may rage and destroy my foes with great fury."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("foes")) then + if(e.other:GetFactionValue(e.self) >= 400) then + e.self:Say("The dragons are the greatest threat to Kael Drakkel. For some reason they believe that this land we inhabit is holy and should not be tread upon. I cannot count the number of wurms I have beaten back from the gates of Kael Drakkel in the past. We giants will live on, though, for each year their numbers thin and ours only grow. With the help of mercenaries such as yourself we may be able to eradicate them from the face of Velious."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("eradicate")) then + if(e.other:GetFactionValue(e.self) >= 400) then + e.self:Say("I dream of the day when the only dragons in Velious are the ones whose skins line my boots. Some day my dream will come true. Until the day I can gather a force powerful enough to assault their homes, I will slay whatever foul beasts tread near Kael Drakkel."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("assault")) then + if(e.other:GetFactionValue(e.self) >= 400) then + e.self:Say("That is an aspiration of King Tormax. One day, it may be possible for us to do so. Encountering so many dragons at once may very well be suicide though. Enough of my banter about dragons. What is it that brings you to Dragon Death Keep? Do you seek more challenging tasks?"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("challenging tasks")) then + if(e.other:GetFactionValue(e.self) >= 400) then + e.self:Say("If you are as mighty as I believe you to be, travel out from this city and fight off the draconian menace. For the head of an elder dragon you will be handsomely rewarded."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("reward")) then + if(e.other:GetFactionValue(e.self) >= 400) then + e.self:Emote("pats the huge axe at his side and drapes his shimmering cloak over his shoulders."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("axe")) then + if(e.other:GetFactionValue(e.self) >= 400) then + e.self:Say("My axe is named Frostbringer. It was given to me by the great King Tormax for my service to him. Serving the king can be quite advantageous."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("cloak")) then + if(e.other:GetFactionValue(e.self) >= 400) then + e.self:Say("The cloak of the Maelstrom allows me to rage like a great storm. It is but a simple possession - the head of an elder dragon would be worth far more to my kind."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 400 and item_lib.check_turn_in(e.self, e.trade, {item1 = 25119},0)) then + e.self:Say("The bards will sing of your greatness, " .. e.other:GetCleanName() .. ". Rage on like the Maelstrom when you wear this cloak. You have done a great service for the city of Kael Drakkel, and we Kromzek do not soon forget great deeds."); + e.other:Faction(e.self,429, 25); -- King Tormax + e.other:Faction(e.self,448, 25); -- Kromzek + e.other:Faction(e.self,436, -12); -- Yelinak + e.other:Faction(e.self,405, -12); -- Dain Frostreaver IV + e.other:QuestReward(e.self,0,0,0,0,25023,5000); + elseif(e.other:GetFactionValue(e.self) >= 400 and item_lib.check_turn_in(e.self, e.trade, {item1 = 25118},0)) then + e.self:Say("We shall hang this head from the halls of Dragondeath Keep and sing your praises, " .. e.other:GetCleanName() .. ". Take my axe as a reward for your great deeds. You are a true hero for Kael Drakkel!"); + e.other:Faction(e.self,429, 25); -- King Tormax + e.other:Faction(e.self,448, 25); -- Kromzek + e.other:Faction(e.self,436, -12); -- Yelinak + e.other:Faction(e.self,405, -12); -- Dain Frostreaver IV + e.other:QuestReward(e.self,0,0,0,0,25022,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kael/Doldigun_Steinwielder.lua b/kael/Doldigun_Steinwielder.lua new file mode 100644 index 0000000..08e2bee --- /dev/null +++ b/kael/Doldigun_Steinwielder.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I... umm... I was caught by a band of giants roaming outside Thurgadin last week and they brought me here... Honest!"); + eq.set_timer("read",24000); + elseif(e.message:findi("rescue")) then + e.self:Emote("laughs as he vanishes into the shadows, 'You have my eternal gratitude outlander! Lotta good that'll do ya! Farewell meddling fools... May you fall with the Dain!"); + eq.depop(); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18172}, 0)) then + e.self:Say("I was just following orders! I swear it! Here, this is proof! Take it and be gone. If you continue harassing me I'll call for help and you'll never make it out of here alive."); + e.other:QuestReward(e.self,0,0,0,0,1464,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + e.self:Say("Hiya Peff... err... uhh... outlander? I have heard tales of your deeds, please tell me you've come to rescue me from these heathens. The Dain would certainly reward you for such a noble act."); + eq.stop_timer("read"); +end \ No newline at end of file diff --git a/kael/Fjokar_Frozenshard.lua b/kael/Fjokar_Frozenshard.lua new file mode 100644 index 0000000..42cb4b0 --- /dev/null +++ b/kael/Fjokar_Frozenshard.lua @@ -0,0 +1,71 @@ +-- Wenglawks The Traitor + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Today is a good day in Kael Drakkel. Don't you think?"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("today is a good day")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("snickers. Do you always repeat what others say, Human? Pestering me is a good way to end up dead."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("wenglawk")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Wenglawks masquerades as a noble. As family lines go, his is even more diluted than those two Iceshard brothers. He is a petty merchant and traitor. One day I will find my proof of this."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("iceshard brother")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Klaggan and Vorken, those two ruffians who somehow have managed to become the lords of the Kromrif manor. They were nothing but a pair of thugs no less than twenty years ago. I remember watching them kill and maim the innocent among the Kromrif tribes. If it were not for King Tormax's protection, I would slay them."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("kromrif")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The Frost giants are a proud race, but they are not nearly as powerful and blessed as we Kromzek. Our cousins may be strong, but the might of an enraged storm giant is something to behold."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("courier")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Those Kromzek deserve to die. They know very well what he is up to. I will hunt them for sport, moving silently through the streets of Kael Drakkel, and invisibly through the outside world. Wenglawks has some sort of underhanded deals going on with the dragons. I have yet to find anything which will persuade King Tormax to allow me to slay him, unfortunately."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("dead")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Emote("pats an ice covered spear at his side. 'This spear has been the demise of many. A swift stab to the back of an unsuspecting foe is all that it takes. I am still waiting for that thick headed Wenglawks to discover who has been killing his poor couriers."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1717},0)) then -- Sealed Letter (Sealed Letter to Wenglawks) + e.self:Say("You have found what I was unable to. King Tormax's protection of Wenglawks will end soon. His death will be so very delightful to invoke. 'rushes out of the room, dropping his spear as he does.'"); + e.other:Faction(e.self,429, 20); -- King Tormax + e.other:Faction(e.self,448, 20); -- Kromzek + e.other:Faction(e.self,436, -10); -- Yelinak + e.other:Faction(e.self,405, -10); -- Dain Frostreaver IV + e.other:QuestReward(e.self,0,0,0,0,25030,75000); -- Frozen Shard + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kael/Gkrean_Prophet_of_Tallon.lua b/kael/Gkrean_Prophet_of_Tallon.lua new file mode 100644 index 0000000..f76bad2 --- /dev/null +++ b/kael/Gkrean_Prophet_of_Tallon.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.other:GetFaction(e.self) < 5) then + if(e.message:findi("hail")) then + e.self:Say("You have entered the sacred temple of Tallon Zek. This is the Temple of Tactics, where we teach what must be done to achieve goals in the most efficient manner."); + elseif(e.message:findi("teach")) then + e.self:Say("I cannot teach one of your kind the arts of war. I must teach the other Kromzek at this time. If you were to serve the Temple of Tactics I might consider giving you a few words of wisdom."); + elseif(e.message:findi("serve the temple")) then + e.self:Say("The great father of war, Rallos Zek, wishes the destruction of the inferior race known as the Coldain. As the high priest of Tallon Zek, I see that they use great tactics to evade destruction. Find the ones who teach these tactics to the other Coldain and bring back the books that contain the ancient Coldain tactics and strategies. Do not waste my time without a scroll or book that those tiny beasts hold."); + end + elseif(e.other:GetFaction(e.self) < 6) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 5 and (item_lib.check_turn_in(e.self, e.trade, {item1 = 24987}, 0) or item_lib.check_turn_in(e.self, e.trade, {item1 = 24988}, 0))) then + e.self:Say("You are a brave little beast to gain this tome. Let me impart a bit of wisdom to you. Tactics must change - if you do not ever adapt to new surroundings, environments and rules, you will surely perish."); + e.other:Faction(e.self,448,20); -- Faction: Kromzek + e.other:Faction(e.self,419,5); -- Faction: Kromrif + e.other:Faction(e.self,429,5); -- Faction: King Tormax + e.other:Faction(e.self,430,-10); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(25037,25038,25039,25042),50000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/kael/Gleed_Dragonhunter.lua b/kael/Gleed_Dragonhunter.lua new file mode 100644 index 0000000..7047e18 --- /dev/null +++ b/kael/Gleed_Dragonhunter.lua @@ -0,0 +1,37 @@ +-- Gleed's Bow + +function event_say(e) + if(e.other:GetFaction(e.self) < 6) then + if(e.message:findi("hail")) then + e.self:Emote("sighs as he looks down at you. 'I grow tired of this city. I so long for the tundra and lands of the wild.'"); + elseif(e.message:findi("tundra") or e.message:findi("wild")) then + e.self:Say("I enjoy training these animals, don't get me wrong, but the open wastes, where the great animals and dragons roam free are what I crave. Before I came to serve King Tormax, I wandered those wastes, hunting young dragons and elder wurms. The whistle of an arrow from my bow was like sweet music - each slash of my sword a sweet song."); + elseif(e.message:findi("young dragon")) then + e.self:Say("Yes, I hunted true dragons. The younger ones, at least. With my bow I could shoot them from such a distance they would never see what was coming."); + elseif(e.message:findi("bow")) then + e.self:Emote("unslings an intricately carved bow from his back and shows it to you. 'I crafted this bow myself. It was to be a great slayer of wurms and dragons and it was, for a time. Now it goes to waste in the city, far from the beasts I long to slay. Far from the hunt and the excitement.'"); + elseif(e.message:findi("waste")) then + e.self:Say("It is such a shame, this bow deserves to be used. If only there were someone who would use it to hunt the beasts - someone to slay them and skin them like they should be."); + elseif(e.message:findi("beast")) then + e.self:Say("You will, little one? One such as yourself is a hunter? I did not know your kind had any skill in such things. In fact, I do not believe your kind could hunt a wurm, not without my wonderful bow. I will not simply hand it to a foolish " .. e.other:Race() .. ". Hunt down some big game before you bother talking to me again. Perhaps if you bring me the tail of the elusive Vluudeen."); + end + elseif(e.other:GetFaction(e.self) < 7) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 6 and item_lib.check_turn_in(e.self, e.trade, {item1 = 25137}, 0)) then + e.self:Say("My, you do have a hunters spirit! If you could track down Vluudeen and slay him without the aid of my bow, you must be worthy. Take the bow, huntsman. Use it to slay others of Vluudeen's kind."); + e.other:Faction(e.self,419,35); -- Faction: Kromrif + e.other:Faction(e.self,448,8); -- Faction: Kromzek + e.other:Faction(e.self,406,-17); -- Faction: Coldain + e.other:Faction(e.self,430,-3); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,25033,35000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kael/Gragek_Mjlorkigar.lua b/kael/Gragek_Mjlorkigar.lua new file mode 100644 index 0000000..b292c3c --- /dev/null +++ b/kael/Gragek_Mjlorkigar.lua @@ -0,0 +1,53 @@ +-- ranger + +local quest_helper = require('velious_quest_helper'); +local KAEL_ARMOR = quest_helper.KAEL_ARMOR; + +local QUEST_ITEMS = { + quest_helper:melee_helmet(KAEL_ARMOR.Chain_Coif, 25363), --Helm + quest_helper:melee_chest(KAEL_ARMOR.Chain_Tunic, 25364), -- Breastplate + quest_helper:melee_arms(KAEL_ARMOR.Chain_Sleeves, 25365), -- Arms + quest_helper:melee_bracer(KAEL_ARMOR.Chain_Bracer, 25366), --Bracer + quest_helper:melee_gloves(KAEL_ARMOR.Chain_Gauntlets, 25367), --gloves + quest_helper:melee_legs(KAEL_ARMOR.Chain_Leggings, 25368), --legs + quest_helper:melee_boots(KAEL_ARMOR.Chain_Boots, 25369), --boots +} + +function event_say(e) + if(e.other:GetFaction(e.self) < 2) then --Must be ally + if(e.message:findi("hail")) then + e.self:Say("Greetings to you. I seek one who is a protector of nature. A ranger is what you call them I believe. Are you a ranger?"); + elseif(e.message:findi("ranger")) then + e.self:Say("I have not seen your kind in quite some time. Do you seek aid in your never-ending fight against those who do nature harm? There is no need to answer for I see within your eyes, the commitment and the conviction. None the less, the tasks I set before you shall be none the easier. Are you ready to submit to my will?"); + elseif(e.message:findi("ready to submit")) then + e.self:Say("That is good for there is nothing like the wrath of nature, woodlands warrior. And Natures wrath shall you be, with this armor to protect you in your struggle. I shall forge a coif, breastplate, sleeves, bracers, gauntlets, leggings, and boots for you."); + elseif(e.message:findi("coif")) then + e.self:Say("This coif shall protect you from battle and the elements. What I require of you is this. Three crushed coral pieces and a ancient tarnished chain coif."); + elseif(e.message:findi("breastplate")) then + e.self:Say("Even as the hardiest tree in the forest requires protection, so shall this breastplate protect you. Bring these components for me, an ancient tarnished chain tunic as well as three flawless diamonds."); + elseif(e.message:findi("sleeve")) then + e.self:Say("I require an ancient tarnished chain sleeves and three flawed emeralds. Do this so that I may grant you these special sleeves as a gift for your diligence."); + elseif(e.message:findi("bracer")) then + e.self:Say("This shall help shield your forearms from any stray blows. Bring me an ancient tarnished chain wristguard and a trilogy of crushed flame emeralds."); + elseif(e.message:findi("gauntlet")) then + e.self:Say("Bring me these items, for I will not grant you your pair until then. A pair of ancient tarnished chain gauntlets as well as three crushed topaz."); + elseif(e.message:findi("legging")) then + e.self:Say("A pair of leggings you seek? I seek something as well. Bring me a pair of an ancient tarnished chain leggings and three flawed sea sapphires. Go now. The struggle continues as we speak."); + elseif(e.message:findi("boot")) then + e.self:Say("For the boots, I shall require a pair of an ancient tarnished chain boots and three crushed pieces of black marble."); + end + elseif (e.other:GetFaction(e.self) < 5) then -- amiably or better + if(e.message:findi("hail")) then + e.self:Say("We have nothing to talk about small one."); + end + elseif (e.other:GetFaction(e.self) >= 5) then + if(e.message:findi("hail")) then + e.self:Say("You must prove your dedication to Kael Drakkal and the Kromzek clan before I will speak to you."); + end + end + +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.kael_armor_success) +end diff --git a/kael/Graggaz_Fleshflayer.lua b/kael/Graggaz_Fleshflayer.lua new file mode 100644 index 0000000..e8e6fc0 --- /dev/null +++ b/kael/Graggaz_Fleshflayer.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("There is nothing like flaying a beast and making something out of the leftovers."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/Grand_Armsmith_Korin.lua b/kael/Grand_Armsmith_Korin.lua new file mode 100644 index 0000000..26279c8 --- /dev/null +++ b/kael/Grand_Armsmith_Korin.lua @@ -0,0 +1,53 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 500) then + e.self:Say("What do you want from me " .. e.other:Race() .. "? I can only imagine that you are here to ask me to use my obviously superior smithing talents to create some [special helmets] to help protect your obviously frail body."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You are still young to the true armies of Rallos, " .. e.other:GetCleanName() .. ", come back after you have served us more."); + else + e.self:Say("Go back to the dog pit where you belong, " .. e.other:Race() .. ", you are not welcome here."); + end + elseif(e.message:findi("special helmet")) then + if(e.other:GetFactionValue(e.self) >= 500) then + e.self:Say("Just as I suspected " .. e.other:Race() .. ". Using my superior skills I can customize a plate helmet to help better protect you. Give me your Malevolent Crown, Warlord's Crown, Shining Helm, Templar's Crown, Troubadour's Helm, Frostreaver's Velium Crown, Crown of the Kromzek Kings or a Cowl of Mortality and I shall make you a new helm that will better protect you."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You are still young to the true armies of Rallos, " .. e.other:GetCleanName() .. ", come back after you have served us more."); + else + e.self:Say("Go back to the dog pit where you belong, " .. e.other:Race() .. ", you are not welcome here."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 4) then + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 25349}, 0)) then -- Malevolant Crown - Shadowknight + e.self:Say("Ah, here is your helm, " .. e.other:GetCleanName() .. ", may it serve you as well as you have served us."); + e.other:QuestReward(e.self,0,0,0,0,31520); -- Custom Malevolent Crown + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 25433}, 0)) then -- Warlord's Crown - Warrior + e.self:Say("Ah, here is your helm, " .. e.other:GetCleanName() .. ", may it serve you as well as you have served us."); + e.other:QuestReward(e.self,0,0,0,0,31524); -- Custom Warlord's Crown + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 25370}, 0)) then -- Shining Helm - Paladin + e.self:Say("Ah, here is your helm, " .. e.other:GetCleanName() .. ", may it serve you as well as you have served us."); + e.other:QuestReward(e.self,0,0,0,0,31521); -- Custom Shining Helm + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 25391}, 0)) then -- Templar's Crown - Cleric + e.self:Say("Ah, here is your helm, " .. e.other:GetCleanName() .. ", may it serve you as well as you have served us."); + e.other:QuestReward(e.self,0,0,0,0,31523); -- Custom Templar's Crown + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 25384}, 0)) then -- Troubadour's Helm - Bard + e.self:Say("Ah, here is your helm, " .. e.other:GetCleanName() .. ", may it serve you as well as you have served us."); + e.other:QuestReward(e.self,0,0,0,0,31522); -- Custom Troubadour's Helm + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30507}, 0)) then -- Frostreaver's Velium Crown + e.self:Say("Ah, here is your helm, " .. e.other:GetCleanName() .. ", may it serve you as well as you have served us."); + e.other:QuestReward(e.self,0,0,0,0,2610); -- Custom Frostreaver's Velium Crown + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 25194}, 0)) then -- Crown of the Kromzek Kings + e.self:Say("Ah, here is your helm, " .. e.other:GetCleanName() .. ", may it serve you as well as you have served us."); + e.other:QuestReward(e.self,0,0,0,0,2611); -- Custom Crown of the Kromzek Kings + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 26025}, 0)) then -- Cowl of Mortality + e.self:Say("Ah, here is your helm, " .. e.other:GetCleanName() .. ", may it serve you as well as you have served us."); + e.other:QuestReward(e.self,0,0,0,0,2612); -- Custom Cowl of Mortality + end + end + item_lib.return_items(e.self, e.other, e.trade) +end + \ No newline at end of file diff --git a/kael/High_Priest_of_Tallon_Zek.lua b/kael/High_Priest_of_Tallon_Zek.lua new file mode 100644 index 0000000..f5d2346 --- /dev/null +++ b/kael/High_Priest_of_Tallon_Zek.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("If you seek the high prophet, return another time, " .. e.other:Race() .. "."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/High_Priest_of_Vallon_Zek.lua b/kael/High_Priest_of_Vallon_Zek.lua new file mode 100644 index 0000000..f5d2346 --- /dev/null +++ b/kael/High_Priest_of_Vallon_Zek.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("If you seek the high prophet, return another time, " .. e.other:Race() .. "."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/Jaglorm_Ygorr.lua b/kael/Jaglorm_Ygorr.lua new file mode 100644 index 0000000..0457fea --- /dev/null +++ b/kael/Jaglorm_Ygorr.lua @@ -0,0 +1,50 @@ +--druid + +local quest_helper = require('velious_quest_helper'); +local KAEL_ARMOR = quest_helper.KAEL_ARMOR; + +local QUEST_ITEMS = { + quest_helper:priest_helmet(KAEL_ARMOR.Leather_Cap, 25398), --helm + quest_helper:priest_chest(KAEL_ARMOR.Leather_Tunic, 25399), -- Breastplate + quest_helper:priest_arms(KAEL_ARMOR.Leather_Sleeves, 25400), -- Arms + quest_helper:priest_bracer(KAEL_ARMOR.Leather_Bracelet, 25401), --Bracer + quest_helper:priest_gloves(KAEL_ARMOR.Leather_Gloves, 25402), --gloves + quest_helper:priest_legs(KAEL_ARMOR.Leather_Leggings, 25403), --legs + quest_helper:priest_boots(KAEL_ARMOR.Leather_Boots, 25404), --boots +} + +function event_say(e) + if(e.other:GetFaction(e.self) < 2) then --Must be ally + if(e.message:findi("hail")) then + e.self:Say("Greetings to you. I seek one that calls himself a druid. What do you call yourself, manling?"); + elseif(e.message:findi("druid")) then + e.self:Say("Good. I had hoped you were one. As nature's guardian, you fight the never-ending struggle against those who seek to defile it. It is an admirable quality and I wish to aid you. I will provide you with a cap, a tunic, sleeves, bracers, gloves, leggings and boots."); + elseif(e.message:findi("cap")) then + e.self:Say("I shall weave one of exceptional quality for you but you must gather the ingredients first. I require an ancient leather cap and three crushed onyx sapphires."); + elseif(e.message:findi("tunic")) then + e.self:Say("You shall be a force of nature with this tunic. Once I have gained an ancient leather tunic and three pieces of black marble the item is yours."); + elseif(e.message:findi("sleeve")) then + e.self:Say("As the bark protects the limbs of the tree, so shall these sleeves protect your arms. Bring me a pair of an ancient leather sleeves and three jaundice gems."); + elseif(e.message:findi("bracer")) then + e.self:Say("For a bracer I shall require an ancient leather bracelet, and three crushed opals. Do this and the reward shall be yours to keep."); + elseif(e.message:findi("glove")) then + e.self:Say("The gloves shall help protect you from the elements and harm. In order for me to complete them I require a pair of an ancient leather gloves and three crushed lava rubys."); + elseif(e.message:findi("legging")) then + e.self:Say("As the roots support the mighty oak, so shall these leggings support you. Furnish a pair of an ancient leather leggings as well as three chipped onyx sapphires and they are yours."); + elseif(e.message:findi("boot")) then + e.self:Say("Even the swiftest feet need protection so I shall provide you with these. They should help. Acquire a pair of ancient boots and three crushed flame emeralds."); + end + elseif (e.other:GetFaction(e.self) < 5) then -- amiably or better + if(e.message:findi("hail")) then + e.self:Say("We have nothing to talk about small one."); + end + elseif (e.other:GetFaction(e.self) >= 5) then + if(e.message:findi("hail")) then + e.self:Say("You must prove your dedication to Kael Drakkal and the Kromzek clan before I will speak to you."); + end + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.kael_armor_success) +end diff --git a/kael/Kael_Militia_Captain.lua b/kael/Kael_Militia_Captain.lua new file mode 100644 index 0000000..e5d04f6 --- /dev/null +++ b/kael/Kael_Militia_Captain.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("looks down at you and goes back to work."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/Kallis_Stormcaller.lua b/kael/Kallis_Stormcaller.lua new file mode 100644 index 0000000..2732346 --- /dev/null +++ b/kael/Kallis_Stormcaller.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -300) then + e.self:Say("Greetings, " .. e.other:Race() .. ". Turn back while you can. Beyond this point is the temple of our great lord, Rallos Zek. The Vindicators who guard it will not let an infidel tread upon this holy ground."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("vindicator")) then + if(e.other:GetFactionValue(e.self) >= -300) then + e.self:Say("The Vindicators are the most devout followers of Rallos. A great number of them spend half of the season guarding the temple and the second half of the season destroying the foes of King Tormax."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/Keldor_Dek-Torek.lua b/kael/Keldor_Dek-Torek.lua new file mode 100644 index 0000000..feb6724 --- /dev/null +++ b/kael/Keldor_Dek-Torek.lua @@ -0,0 +1,53 @@ +function event_spawn(e) + eq.set_timer("king",math.random(2700000,7500000)); + eq.set_timer("med",math.random(270000)); +end + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Emote("continues to do what he was doing before you attemped to interrupt him."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_timer(e) + if(e.timer == "med") then + e.self:Emote(eq.ChooseRandom("'s eyes glow for a moment.","seems to be concentrating on a far off place.","whispers, 'Velketor... I know you are watching.'")); + eq.set_timer("med",math.random(270000)); + end + if(e.timer == "king") then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(113215)) then + eq.stop_timer("med"); + eq.stop_timer("king") + e.self:CastToNPC():AssignWaypoints(27); + else + eq.set_timer("king",math.random(2700000,7500000)); + end + end +end + +function event_waypoint_arrive(e) + if(e.wp == 11) then + eq.zone_emote(0,"Keldor Dek' Torek says 'Greetings my lord. I have been deep in meditation and have some news which you might find most interesting.'") + eq.zone_emote(0,"King Tormax says 'What is it you have seen in your vision, Keldor? Another vision of that old fool Yelniak?'") + elseif(e.wp == 12) then + eq.zone_emote(0,"Keldor Dek' Torek says 'Much worse my lord. I watched you die with my own eyes. At the hands of outlanders and dragons. I fear that my old master is toying with my mind.'"); + eq.zone_emote(0,"King Tormax says 'That fool Velketor? Get a hold of yourself, Keldor. Your magic is as strong as his and Lord Rallos smiles upon you. Now stop this nonsense of Velketor, he is more a threat to the Coldain than he is to me. I cast him out of this city once and I could strike him down again if need be.'"); + elseif(e.wp == 13) then + eq.zone_emote(0,"Keldor Dek' Torek says 'I pray my visions are false, my lord. I have seen other things though... Things which worry my immensely. The outlanders, they have begun to side themselves who worship Lord Zek have forsaken him. I suggest that yo have the temple of Lord Zek become more heavily protected. The outlanders should not tread upon its holy ground.'"); + eq.zone_emote(0,"King Tormax says 'So it will be then. The halls of the great temple of Rallos Zek shall not be walked by any other than the true children of Zek, the giants. We will have to work harder to recruit outlanders into our service as well. If we are to wipe the dragons from the face of Velious we will need hundreds of powerful mercenaries to fight along side us.'"); + elseif(e.wp == 14) then + eq.zone_emote(0,"Keldor Dek' Torek says 'How shall we entice the outlanders into our service my lord?'"); + eq.zone_emote(0,"King Tormax says 'I shall have the smiths begin crafting great armor and weapons at a scale these outlanders can use. Those who serve us well will be rewarded with thease creations. Keldor, begin crafting magical items the likes of which thise realm has never seen to reward the sorcerers who will aid us. Perhaps I will even grant a title to those who can help us reach our great goal!'"); + elseif(e.wp == 15) then + eq.zone_emote(0,"Keldor Dek' Torek says 'I will begin at once my lord. May Rallos smile upon us all.'"); + eq.zone_emote(0,"King Tormax says 'I am sure he will, faithful servant.'"); + elseif(e.wp == 29) then + e.self:CastToNPC():StopWandering(); + eq.set_timer("med",math.random(270000)); + eq.set_timer("king",math.random(2700000,7500000)); + end +end diff --git a/kael/Kelenek_Bluadfeth.lua b/kael/Kelenek_Bluadfeth.lua new file mode 100644 index 0000000..fac72bd --- /dev/null +++ b/kael/Kelenek_Bluadfeth.lua @@ -0,0 +1,52 @@ +--rogue + +local quest_helper = require('velious_quest_helper'); +local KAEL_ARMOR = quest_helper.KAEL_ARMOR; + +local QUEST_ITEMS = { + quest_helper:melee_helmet(KAEL_ARMOR.Chain_Coif, 25377), --Helm + quest_helper:melee_chest(KAEL_ARMOR.Chain_Tunic, 25378), -- Breastplate + quest_helper:melee_arms(KAEL_ARMOR.Chain_Sleeves, 25379), -- Arms + quest_helper:melee_bracer(KAEL_ARMOR.Chain_Bracer, 25380), --Bracer + quest_helper:melee_gloves(KAEL_ARMOR.Chain_Gauntlets, 25381), --gloves + quest_helper:melee_legs(KAEL_ARMOR.Chain_Leggings, 25382), --legs + quest_helper:melee_boots(KAEL_ARMOR.Chain_Boots, 25383), --boots +} + +function event_say(e) + if(e.other:GetFaction(e.self) < 2) then --Must be ally + if(e.message:findi("hail")) then + e.self:Say("What do we have here? A cutthroat, perhaps? If not then go away, for I have words to speak with a rogue."); + elseif(e.message:findi("rogue")) then + e.self:Say("I commend you on your skill, making it this far. I have a job for you, thief. Several in fact and quite simple for an assassin such as yourself. I am in need of certain components and will reward you well if they are brought to me. Do I have your services?"); + elseif(e.message:findi("services")) then + e.self:Say("Excellent. Now, down to business. I shall pay you in trade for the items I seek. What I have for you is as such, a coif, a breastplate, armplates, bracers, gauntlets, greaves and boots. These should aid you in your skullduggery."); + elseif(e.message:findi("coif")) then + e.self:Say("I am need of an ancient tarnished chain coif and three crushed pieces of coral. For your services I shall give you a coif suitable for one such as you."); + elseif(e.message:findi("breastplate")) then + e.self:Say("For the breastplate you must seek out an ancient tarnished chain tunic and three flawless diamonds. Only then will you receive a breastplate of my crafting."); + elseif(e.message:findi("armplate")) then + e.self:Say("For the armplates I shall give you, I require this; an ancient tarnished chain sleeves and three flawed emeralds."); + elseif(e.message:findi("bracer")) then + e.self:Say("An ancient tarnished bracer and three crushed flame emeralds is what I require of you. A bracer of my making is your reward."); + elseif(e.message:findi("gauntlet")) then + e.self:Say("I need an ancient tarnished chain gauntlets as well as three crushed topaz. Once I have these you shall have your reward."); + elseif(e.message:findi("greave")) then + e.self:Say("A pair of leggings will be your once you completed this task for me, thief. Bring unto me a pair of ancient tarnished chain leggings and a trilogy of flawed sea sapphires."); + elseif(e.message:findi("boot")) then + e.self:Say("A fine pair of boots shall you have to skulk around in, once I have a pair of an ancient tarnished chain boots and three pieces of crushed black marble."); + end + elseif (e.other:GetFaction(e.self) < 5) then -- amiably or better + if(e.message:findi("hail")) then + e.self:Say("We have nothing to talk about small one."); + end + elseif (e.other:GetFaction(e.self) >= 5) then + if(e.message:findi("hail")) then + e.self:Say("You must prove your dedication to Kael Drakkal and the Kromzek clan before I will speak to you."); + end + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.kael_armor_success) +end diff --git a/kael/Kellek_Felhammer.lua b/kael/Kellek_Felhammer.lua new file mode 100644 index 0000000..c2cb474 --- /dev/null +++ b/kael/Kellek_Felhammer.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("If you want a conversation, find one of your own kind to talk to. I'm just here to sell this fine ale."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 25279}, 0)) then -- Voucher for toolset + e.self:Say("Here you go " .. e.other:GetCleanName() .. ". I dunno why master Wenglawks trusts you with this but take it anyways and don't mess up.' smacks his fists together as he looks at you."); + e.other:QuestReward(e.self,0,0,0,0,25104); -- Summon: Coldain Toolset + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 25280}, 0)) then -- Voucher for spear + e.self:Say("Another delivery eh? Be careful with this spear, if you break it I'll break you."); + e.other:QuestReward(e.self,0,0,0,0,25106); -- Bekerak's New Spear + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 25281}, 0)) then -- Mechanical Net Delivery + e.self:Say("It's hard to believe a " .. e.other:Race() .. " like you is going to make a trip like this. I don't envy you little fool."); + e.other:QuestReward(e.self,0,0,0,0,25107); -- Mechanical Net + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1722}, 0)) then -- Helssen's Voucher + e.self:Say("I still cannot believe we are giving such a prized possesion as the Collar of the Storm to a mere mercenary. You better pray you don't bring shame upon the smith who created and enchanted this item. Oh and here is your seal as Helssen has ordered me to give you. It is proof of your service to us."); + e.other:QuestReward(e.self,{items = {1723,1721},exp = 2000}); -- Noble's Seal, Collar of the Storm + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kael/Kevelak_Whitefang.lua b/kael/Kevelak_Whitefang.lua new file mode 100644 index 0000000..26719ba --- /dev/null +++ b/kael/Kevelak_Whitefang.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("If it's interesting, I sell it."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/King_Tormax.lua b/kael/King_Tormax.lua new file mode 100644 index 0000000..ad3586c --- /dev/null +++ b/kael/King_Tormax.lua @@ -0,0 +1,140 @@ +-- Gauntlets of Dragon Slaying +-- Belt of Dwarf Slaying + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". You know who I am, but I only vaguely know of you. My purpose is simple, I will rule these lands like my father, and my grandfather before him. All tasks but two are inconsequential to me."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You may have proven yourself worthy to serve the Kromzek, " .. e.other:GetCleanName() .. ", but you have yet to earn my trust."); + else + e.self:Say("Why do I even suffer such lesser beings in my presence? Remove yourself, " .. e.other:Race() .. ", else I'll have my guards relieve you of your head."); + end + elseif(e.message:findi("task")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The tasks are simple, " .. e.other:Race() .. ". I wish the death of the other 'powers' of this frozen waste land. If you are able to destroy either of my mortal foes, bring me proof of your exploits and you will be known as the hero of Kael Drakkel."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You may have proven yourself worthy to serve the Kromzek, " .. e.other:GetCleanName() .. ", but you have yet to earn my trust."); + else + e.self:Say("Why do I even suffer such lesser beings in my presence? Remove yourself, " .. e.other:Race() .. ", else I'll have my guards relieve you of your head."); + end + elseif(e.message:findi("power")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Emote("laughs deeply. 'I speak of the foolish old dragon Yelinak and that pitiful Dain Frostreaver.'"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You may have proven yourself worthy to serve the Kromzek, " .. e.other:GetCleanName() .. ", but you have yet to earn my trust."); + else + e.self:Say("Why do I even suffer such lesser beings in my presence? Remove yourself, " .. e.other:Race() .. ", else I'll have my guards relieve you of your head."); + end + elseif(e.message:findi("yelinak")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Yelinak's mate was slain by my ancestor Porlos single-handedly. Since that time, the great beast has stalked my line. Unable to slay any of us..."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You may have proven yourself worthy to serve the Kromzek, " .. e.other:GetCleanName() .. ", but you have yet to earn my trust."); + else + e.self:Say("Why do I even suffer such lesser beings in my presence? Remove yourself, " .. e.other:Race() .. ", else I'll have my guards relieve you of your head."); + end + elseif(e.message:findi("dain")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Dain Frostreaver is the leader of the disgusting Coldain. Some day they will be cleansed from this holy land."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You may have proven yourself worthy to serve the Kromzek, " .. e.other:GetCleanName() .. ", but you have yet to earn my trust."); + else + e.self:Say("Why do I even suffer such lesser beings in my presence? Remove yourself, " .. e.other:Race() .. ", else I'll have my guards relieve you of your head."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30501}, 0)) then -- Dain head + if(e.other:GetFaction(e.self) < 8) then + e.other:Faction(e.self,429,500); -- Faction: King Tormax + e.other:Faction(e.self,448,500); -- Faction: Kromzek + e.other:Faction(e.self,436,-250); -- Faction: Yelinak + e.other:Faction(e.self,405,-250); -- Faction: Dain Frostreaver IV + e.other:QuestReward(e.self,0,0,0,0,25858,500000); + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 24984}, 0)) then -- Yelinak head + if(e.other:GetFaction(e.self) < 8) then + e.other:Faction(e.self,429,500); -- Faction: King Tormax + e.other:Faction(e.self,448,500); -- Faction: Kromzek + e.other:Faction(e.self,436,-250); -- Faction: Yelinak + e.other:Faction(e.self,405,-250); -- Faction: Dain Frostreaver IV + e.other:QuestReward(e.self,0,0,0,0,25857,500000); + end + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_combat(e) + + if (e.joined) then + eq.set_timer("help", 300000); + help_tormax(e); + else + eq.stop_timer("help"); + end + +end + +function event_timer(e) + if(e.timer == "help") then + e.self:Shout("King Tormax shouts 'Those who raise arms against me will suffer my wrath!'"); + help_tormax(e); + end +end + + +function help_tormax(e) + local kyenka = eq.get_entity_list():GetMobByNpcTypeID(113133); + + if (kyenka.valid and not kyenka:IsEngaged()) then + kyenka:CastToNPC():SetRunning(true); + kyenka:CastToNPC():MoveTo(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0, false); + end + + local yetarr = eq.get_entity_list():GetMobByNpcTypeID(113247); + + if (yetarr.valid and not yetarr:IsEngaged()) then + yetarr:CastToNPC():SetRunning(true); + yetarr:CastToNPC():MoveTo(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0, false); + end + + local vkjen = eq.get_entity_list():GetMobByNpcTypeID(113036); + + if (vkjen.valid and not vkjen:IsEngaged()) then + vkjen:CastToNPC():SetRunning(true); + vkjen:CastToNPC():MoveTo(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0, false); + end + + local klraggek = eq.get_entity_list():GetMobByNpcTypeID(113098); + + if (klraggek.valid and not klraggek:IsEngaged()) then + klraggek:CastToNPC():SetRunning(true); + klraggek:CastToNPC():MoveTo(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0, false); + end + + local drendar = eq.get_entity_list():GetMobByNpcTypeID(113037); + + if (drendar.valid and not drendar:IsEngaged()) then + drendar:CastToNPC():SetRunning(true); + drendar:CastToNPC():MoveTo(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0, false); + end + + local irrek = eq.get_entity_list():GetMobByNpcTypeID(113302); + + if (irrek.valid and not irrek:IsEngaged()) then + irrek:CastToNPC():SetRunning(true); + irrek:CastToNPC():MoveTo(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0, false); + end + + local velden = eq.get_entity_list():GetMobByNpcTypeID(113382); + + if (velden.valid and not velden:IsEngaged()) then + velden:CastToNPC():SetRunning(true); + velden:CastToNPC():MoveTo(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0, false); + end +end diff --git a/kael/Klaggan_Iceshard.lua b/kael/Klaggan_Iceshard.lua new file mode 100644 index 0000000..248851d --- /dev/null +++ b/kael/Klaggan_Iceshard.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You stand before the great Klaggan Iceshard. My bones are old but my muscles are still strong, little one. I do not wish to speak with your kind. My brother Vorken may be more sympathetic to you but I will have nothing to do with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/Korakaz.lua b/kael/Korakaz.lua new file mode 100644 index 0000000..4d909aa --- /dev/null +++ b/kael/Korakaz.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 400) then + e.self:Say("I will cut them all down! Every last one of them!"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("them")) then + if(e.other:GetFactionValue(e.self) >= 400) then + e.self:Say("The dragons and the Coldain! All of the infidels! They must be crushed! They must be smashed!"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("crush")) then + if(e.other:GetFactionValue(e.self) >= 400) then + e.self:Say("Leave me be or I will crush you too!"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/Kragek_Thunderforge.lua b/kael/Kragek_Thunderforge.lua new file mode 100644 index 0000000..56c3cb9 --- /dev/null +++ b/kael/Kragek_Thunderforge.lua @@ -0,0 +1,52 @@ +--warrior + +local quest_helper = require('velious_quest_helper'); +local KAEL_ARMOR = quest_helper.KAEL_ARMOR; + +local QUEST_ITEMS = { + quest_helper:melee_helmet(KAEL_ARMOR.Plate_Helmet, 25433), --Helm + quest_helper:melee_chest(KAEL_ARMOR.Breastplate, 25434), -- Breastplate + quest_helper:melee_arms(KAEL_ARMOR.Plate_Vambraces, 25435), -- Arms + quest_helper:melee_bracer(KAEL_ARMOR.Plate_Bracer, 25436), --Bracer + quest_helper:melee_gloves(KAEL_ARMOR.Plate_Gauntlets, 25437), --gloves + quest_helper:melee_legs(KAEL_ARMOR.Plate_Greaves, 25438), --legs + quest_helper:melee_boots(KAEL_ARMOR.Plate_Boots, 25439), --boots +} + +function event_say(e) + if (e.other:GetFaction(e.self) <= 1) then + if(e.message:findi("hail")) then + e.self:Say("Greetings to you. I seek the service of a powerful warrior. Are you a warrior? If not then be gone."); + elseif(e.message:findi("warrior")) then + e.self:Say("Excellent. I see that you are a seasoned veteran of many battles. I admire your strength and ferocity. Life is but a series of battles, is it not?"); + elseif(e.message:findi("series of battle")) then + e.self:Say("We share the same view then. I wish to test your skills in battle. Not with me of course, for I will destroy you where you stand. Instead I wish for you to retrieve some trinkets for me and once I have them I will reward you handsomely with a helm, a breastplate, armplates, bracers, gauntlets, greaves, or boots."); + elseif(e.message:findi("helm")) then + e.self:Say("All I require are an ancient tarnished plate helmet and three crushed coral pieces. This should be a small task for one such as you. Go now and I shall await your return."); + elseif(e.message:findi("breastplate")) then + e.self:Say("As the resolve of your discipline and strength shall endure through a battle, so shall this breastplate. All that is required are an ancient tarnished breastplate, and three flawless diamonds. Do this quickly so that you may return to the field of battle."); + elseif(e.message:findi("armplate")) then + e.self:Say("So, a pair of armplates, is what you require? Well, I require an ancient tarnished plate vambraces as well as three flawed emeralds before you will receive your prize.") + elseif(e.message:findi("bracer")) then + e.self:Say("Bracers for the mighty? Retrieve these components and I shall forge the item for you. Bring me an ancient tarnished plate bracelet as well as three crushed flame emeralds.") + elseif(e.message:findi("gauntlet")) then + e.self:Say("Mighty gauntlets to smite your foes for the glory of the greater good. It is no easy task but I shall require a pair of an ancient tarnished plate gauntlets and three crushed topaz.") + elseif(e.message:findi("greave")) then + e.self:Say("Sturdy are the pillars that support the temple. I shall make you as strong with these leggings. Gather three flawed sapphires of the sea and a set of ancient tarnished plate greaves.") + elseif(e.message:findi("boot")) then + e.self:Say("A pair of boots you shall have once you have gotten a pair of an ancient tarnished plate boots and a set of three crushed pieces of black marble.") + end + elseif (e.other:GetFaction(e.self) < 5) then -- amiably or better + if(e.message:findi("hail")) then + e.self:Say("We have nothing to talk about small one."); + end + elseif (e.other:GetFaction(e.self) >= 5) then + if(e.message:findi("hail")) then + e.self:Say("You must prove your dedication to Kael Drakkal and the Kromzek clan before I will speak to you."); + end + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.kael_armor_success) +end diff --git a/kael/Kyenka.lua b/kael/Kyenka.lua new file mode 100644 index 0000000..8aa8d2e --- /dev/null +++ b/kael/Kyenka.lua @@ -0,0 +1,64 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("My, it is the great " .. e.other:GetCleanName() .. " who stands before me! Rumors of your greatness have spread even to the court of King Tormax. I am Kyenka, Duke of Kael Drakkel. I advise King Tormax on matters concerning the nefarious dragons."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("dragon")) then + if(e.other:GetFactionValue(e.self) >= 400) then + e.self:Say("The living dragons of this realm are the bane of Kael Drakkel and its people. Eventually they will be gone and only we Kromzek will remain. We will purge this land of their menace."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("purge")) then + if(e.other:GetFactionValue(e.self) >= 400) then + e.self:Say("The beasts must be slain. They only bring strife to this world. You are a powerful mercenary, and are sympathetic to my cause, I would assume. You could become rich beyond your wildest dreams by assisting King Tormax and me."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("assist")) then + if(e.other:GetFactionValue(e.self) >= 400) then + e.self:Say("Rally together a band of adventurers and track down and slay the elder dragons of this continent. For each head you return to me I will impart a gift to you."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 400 and item_lib.check_turn_in(e.self, e.trade, {item1 = 25119}, 0)) then + e.self:Say("This beast must have taken quite a force to slay. These boots have been crafted to reward your kind for such great efforts. Take them and wear them with pride. They will be a warning to other dragons that you are a great slayer of their kind."); + e.other:Faction(e.self,448,30); -- Faction: Kromzek + e.other:Faction(e.self,419,7); -- Faction: Kromrif + e.other:Faction(e.self,429,7); -- Faction: King Tormax + e.other:Faction(e.self,430,-15); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,25029,75000); + elseif(e.other:GetFactionValue(e.self) >= 400 and item_lib.check_turn_in(e.self, e.trade, {item1 = 25118}, 0)) then + e.self:Say("You serve the crown well, " .. e.other:GetCleanName() .. ". This is one less beast to ruin our lands. Take these pauldrons which I have fashioned from the first dragon scales brought to King Tormax's court."); + e.other:Faction(e.self,448,30); -- Faction: Kromzek + e.other:Faction(e.self,419,7); -- Faction: Kromrif + e.other:Faction(e.self,429,7); -- Faction: King Tormax + e.other:Faction(e.self,430,-15); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,25028,75000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_combat(e) + + if (not e.joined) then + e.self:SetRunning(false); + else + eq.signal(113137, 1); -- NPC: #Sentinel_Weldren + eq.signal(113136, 1); -- NPC: #Sentinel_Drakeslayer + end +end diff --git a/kael/Mjeldor_Felstorm.lua b/kael/Mjeldor_Felstorm.lua new file mode 100644 index 0000000..24e74ef --- /dev/null +++ b/kael/Mjeldor_Felstorm.lua @@ -0,0 +1,50 @@ +--mage + +local quest_helper = require('velious_quest_helper'); +local KAEL_ARMOR = quest_helper.KAEL_ARMOR; + +local QUEST_ITEMS = { + quest_helper:silk_helmet(KAEL_ARMOR.Silk_Turban, 25419), + quest_helper:silk_chest(KAEL_ARMOR.Silk_Robe, 25420), + quest_helper:silk_arms(KAEL_ARMOR.Silk_Sleeves, 25421), + quest_helper:silk_bracer(KAEL_ARMOR.Silk_Wristband, 25422), + quest_helper:silk_gloves(KAEL_ARMOR.Silk_Gloves, 25423), + quest_helper:silk_legs(KAEL_ARMOR.Silk_Pantaloons, 25424), + quest_helper:silk_boots(KAEL_ARMOR.Silk_Boots, 25425), +} + +function event_say(e) + if(e.other:GetFaction(e.self) < 2) then --Must be ally + if(e.message:findi("hail")) then + e.self:Say("Greetings to you. I seek those who call themselves magicians. Are you a magician, little one?"); + elseif(e.message:findi("magician")) then + e.self:Say("I thought so. I have several tasks for you to accomplish. Once you have completed them I will have a cap, a robe, sleeves, wristbands, gloves, leggings and boots to reward you with."); + elseif(e.message:findi("cap")) then + e.self:Say("For you to receive my gift, I shall require an ancient silk turban and three crushed flame opals."); + elseif(e.message:findi("robe")) then + e.self:Say("This exquisite robe shall be yours in exchange for an ancient silk robe and three pristine emeralds."); + elseif(e.message:findi("sleeve")) then + e.self:Say("For these durable sleeves, you must fetch me a pair of ancient silk sleeves and three flawed topazes."); + elseif(e.message:findi("wristband")) then + e.self:Say("The crafting of this wristband requires that you bring me an ancient silk wristband and three crushed pieces of onyx sapphire."); + elseif(e.message:findi("glove")) then + e.self:Say("For this fine pair of gloves you must seek out and return to me three crushed topazes and a pair of ancient silk gloves."); + elseif(e.message:findi("legging")) then + e.self:Say("This pair of leggings will be yours provided you supply me with a pair of ancient silk pantaloons as well as three nephrites."); + elseif(e.message:findi("boot")) then + e.self:Say("These supple boots shall be yours upon receipt of a pair of ancient silk boots and a trilogy of crushed jaundice gems."); + end + elseif (e.other:GetFaction(e.self) < 5) then -- amiably or better + if(e.message:findi("hail")) then + e.self:Say("We have nothing to talk about small one."); + end + elseif (e.other:GetFaction(e.self) >= 5) then + if(e.message:findi("hail")) then + e.self:Say("You must prove your dedication to Kael Drakkal and the Kromzek clan before I will speak to you."); + end + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.kael_armor_success); +end diff --git a/kael/Nerik_Wolfsoul.lua b/kael/Nerik_Wolfsoul.lua new file mode 100644 index 0000000..efe2ab6 --- /dev/null +++ b/kael/Nerik_Wolfsoul.lua @@ -0,0 +1,50 @@ +--Beastlord + +local quest_helper = require('velious_quest_helper'); +local KAEL_ARMOR = quest_helper.KAEL_ARMOR; + +local QUEST_ITEMS = { + quest_helper:melee_helmet(KAEL_ARMOR.Leather_Cap, 5439), --helm + quest_helper:melee_chest(KAEL_ARMOR.Leather_Tunic, 5440), --bp + quest_helper:melee_arms(KAEL_ARMOR.Leather_Sleeves, 5441), -- arms + quest_helper:melee_bracer(KAEL_ARMOR.Leather_Bracelet, 5442), --bracer + quest_helper:melee_gloves(KAEL_ARMOR.Leather_Gloves, 5443), -- gloves + quest_helper:melee_legs(KAEL_ARMOR.Leather_Leggings, 5444), -- legs + quest_helper:melee_boots(KAEL_ARMOR.Leather_Boots, 5445), -- boots +} + +function event_say(e) + if (e.other:GetFaction(e.self) <= 1) then + if (e.message:findi("hail")) then + e.self:Say("Greetings to you. I seek one who is known as a beastlord. What do you call yourself, " .. e.other:GetCleanName() .. "?"); + elseif (e.message:findi("beastlord")) then + e.self:Say("Then perhaps you would be interested in some armor that I can make you. I can make you a cap, tunic, leggings, bracer, boots, sleeves, and gloves if you bring me the correct items."); + elseif (e.message:findi("cap")) then + e.self:Say("I shall weave one of exceptional quality for you but you must gather the items first. I require an ancient leather cap and a set of three pieces of crushed coral."); + elseif (e.message:findi("tunic")) then + e.self:Say("You shall be an imposing force with this tunic. Solid as the unmoving mountains, it shall protect you. Once I have gained an ancient leather tunic and three flawless diamonds, the item is yours."); + elseif (e.message:findi("sleeve")) then + e.self:Say("As the mighty stone that parts the flow of water, so shall these sleeves divert harm against you. Bring me three flawed emeralds and a pair of ancient leather sleeves."); + elseif (e.message:findi("bracer")) then + e.self:Say("For a bracer I shall require an ancient leather bracelet and a set of three crushed flame emeralds. Do this and the reward shall be yours to keep."); + elseif (e.message:findi("glove")) then + e.self:Say("Your hands are like the wind, everflowing and moving. Subtle one moment, then a howling wind raining blow upon blow to your foes. These gloves shall aid you. In order to complete them I require a pair of ancient leather gloves and three crushed topaz."); + elseif (e.message:findi("legging")) then + e.self:Say("The leggings shall protect you, as the valley shelters the still pool within its center from the howling winds. Furnish a pair of ancient leather leggings and a set of three flawed sea sapphires for me and they are yours."); + elseif (e.message:findi("boot")) then + e.self:Say("Your feet are hard as any stone and as swift as a coiled serpent but even the swiftest feet require protection so I shall provide you with these. They should help. Acquire a pair of ancient tarnished boots and three crushed pieces of black marble."); + end + elseif (e.other:GetFaction(e.self) < 5) then -- amiably or better + if(e.message:findi("hail")) then + e.self:Say("We have nothing to talk about small one."); + end + elseif (e.other:GetFaction(e.self) >= 5) then + if(e.message:findi("hail")) then + e.self:Say("You must prove your dedication to Kael Drakkal and the Kromzek clan before I will speak to you."); + end + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.kael_armor_success) +end diff --git a/kael/Noble_Helssen.lua b/kael/Noble_Helssen.lua new file mode 100644 index 0000000..fa83ebc --- /dev/null +++ b/kael/Noble_Helssen.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You obviously have no idea where you have trespassed so I will generously allow you to live. I suggest you leave immediately before my generosity runs out however......Unless, you're looking for work."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("looking for work")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Well, you might do. Out in the deepest scar, known as the Wakening Land we have deployed several mercenaries to harass the local annoying population. They are in need of constant supplies so we hire those we can trust to deliver those supplies to the mercenaries wandering out in the field. Are you interested, " .. e.other:Race() .. "?"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("interested")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Very well. Take this pack of supplies to any of the Mercenaries you come across in the field. They will pay you upon delivery. Return here for more supplies to deliver when you are ready."); + e.other:SummonCursorItem(1724); -- Item: Field Supplies + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("plane of growth")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Our soldiers fell victim to the denizens of that plane and unless we can find some way to stop this from happening, the land of Wakening will never be under our control. Many have suggested just destroying the Nexus but they are short-sighted fools. My vision is not only to control the resources that forest provides, but also to control the very force of Growth itself! You will help me to do this, mercenary."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("help you")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The tablet I have given you is inscribed with runes of binding. I am owed a favor and it has come time to use it. There is a venerable sea turtle that lives along the warmer part of the coast, where the ice floes begin to break up. His name is Corudoth. Find him and speak with him. Remind him of his obligation to me and if he is not forthcoming in his answers, tell him he owes me. Then show him the tablet. He will tell you what to do. He will most likely be beneath the ocean. The mask I gave you should help."); + e.other:SummonCursorItem(1713); -- Enchanted Velium Mask + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I have much to do, " .. e.other:GetCleanName() .. ". Do not waste my time unless you have the Arcanum AND the key to open it."; + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1709}, 0)) then -- Report of Failure + e.self:Emote("takes the report from you and places it in a pocket without even glancing at it. He says, 'Do not worry, " .. e.other:GetCleanName() .. ". I know of the planar creatures who eliminated my troops. The fault is not yours but of that fool Drioc's. The Savage land is not just a simple forest as those idiots in the field believe. It is a cradle of life and the forces that drive it. Within that forest is a nexus, a gateway to another plane of existence, the Plane of Growth.'"); + -- live faction verified + e.other:Faction(e.self,448,15); -- Faction: Kromzek + e.other:Faction(e.self,419,3); -- Faction: Kromrif + e.other:Faction(e.self,429,3); -- Faction: King Tormax + e.other:Faction(e.self,430,-7); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,1710,1000); -- inscribed velium tablet + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1722}, 0)) then -- Helssen's Voucher + e.self:Say("Excellent choice, " .. e.other:Race() .. ". Competence and a sense of style. When we are ready to take the Wakening I will most definitely welcome your participation. Here is your reward."); + e.other:QuestReward(e.self,{items = {1723,1720},exp = 2000}); -- Noble's Seal, Helssen's Prismatic Trinket + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1712,item2 = 1714},1,text)) then -- Arcanum of Roth, Ancient Rusted Key + e.self:Say("Ahhh, you suprise me mercenary. You have found the book as well as the key to open it. I must begin my research as soon as possible. But first, your reward. With this voucher you can receive 1 of the 3 treasures I will offer you. If given to Kellek you will receive an item worthy of a hearty and rugged combatant. If given to Wenglawks you will aquire an item to be worn by only the most pious. And if given to me I will give you a sorcerous trinket of my own design."); + e.other:Faction(e.self,448,11); -- Faction: Kromzek + e.other:Faction(e.self,419,5); -- Faction: Kromrif + e.other:Faction(e.self,429,5); -- Faction: King Tormax + e.other:Faction(e.self,430,-5); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,1722,2000); -- Helssen's Voucher + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kael/Nojas_Blackfist.lua b/kael/Nojas_Blackfist.lua new file mode 100644 index 0000000..a6b5a3e --- /dev/null +++ b/kael/Nojas_Blackfist.lua @@ -0,0 +1,48 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("What brings you to the hall of the frost giants, little one? Have you come to serve our lord and master? Or are you simply a scout for a raiding party? I warn you, do not make war on my kin. I will twist the elements to my will and destroy you if that is your intent."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("serve")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("You could best serve the masters by serving me. The more time I have to tend to my research the better. I have several minor tasks which you could easily handle..."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("minor task")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("In the wreched jungle to the west there lives a race of faries protected by Tunare and her other minions. These abominations are called the Sifaye. I belive that the strength of the Wakening lands is linked not only to Tunare herself, but her connection with these foul beasts. Bring me the wings of one of their so called knights and the heads of three commoners and I will reward you for such busy work."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("elements")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The elements of nature, of course! Over the years, I have learned that I can bend the powers of nature and the spirits of those long passed to my will and achieve many things."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 25112,item2 = 25113,item3 = 25113,item4 = 25113})) then + e.self:Say("Congratulations, slayer of tiny beasts. Take this living tattoe for your troubles. If you wish to continue to serve me, find a way to capture more noble sifaye... alive."); + -- verified live faction + e.other:Faction(e.self,419,10); -- Kromrif + e.other:Faction(e.self,448,2); -- Kromzek + e.other:Faction(e.self,406,-5); -- Coldain + e.other:Faction(e.self,430,-1); -- Claw of Veeshan + e.other:QuestReward(e.self,0,0,0,0,25056,5000); -- Silver Dragon Tattoo + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kael/Pollos_Stormkeeper.lua b/kael/Pollos_Stormkeeper.lua new file mode 100644 index 0000000..ac5da3b --- /dev/null +++ b/kael/Pollos_Stormkeeper.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("I can place things into my vault if you so desire. " .. e.other:GetCleanName() .. "."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/Reivaj_the_Battlerager.lua b/kael/Reivaj_the_Battlerager.lua new file mode 100644 index 0000000..c79e089 --- /dev/null +++ b/kael/Reivaj_the_Battlerager.lua @@ -0,0 +1,72 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". You tread in the halls of Iceshard manor. Are you here with a purpose or are you lost?"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("lost")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Turn around and go to your left through the hallways, then turn right and go straight. That should lead you out of this fine manor"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("purpose")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I do not know what purpose you would serve to the Kromrif. If you seek to amass a fortune you have come to the wrong man. I am but a simple battlerager, wielding my blade for the Iceshard brothers when needed."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("rallos zek")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The great war god guides my blade and has helped shape my day to day life... I feel as if there is something greater mapped out for my life than what I have here."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("plan")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I have been planning to travel forth from Kael Drakkel and destroy any Coldain who have spread from their safe home in Thurgadin. It is always a nice trip, I will take several of the elder Kromrif with me as well. Perhaps we will track down the elusive wurm, Blizzent."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("blizzent")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Blizzent is an ancient ice wurm Vorken speaks of occasionally. If I remember the story correctly, Blizzent once bit Vorken and Klaggen and has had a desire to have another taste. I have never seen the wurm myself. He may not even be alive still. If I were able to slay Blizzent and retrieve proof of it, I could probably get in good with master Vorken."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("battle")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Yes, I am a warrior who thrives on battle. I have great faith in Rallos Zek and I call upon his power to make me more efficient in battle. I am not like the foolish berserkers. They howl like animals and create strange totems. They simply unleash their anger upon the world whereas I focus and destroy my foes with the aid of Rallos Zek."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 25117}, 0)) then + e.other:Faction(e.self,419,25); -- Kromrif + e.other:Faction(e.self,448,6); -- Kromzek + e.other:Faction(e.self,406,-12); -- Coldain + e.other:Faction(e.self,430,-2); -- Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,25083,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kael/Semkak_Prophet_of_Vallon.lua b/kael/Semkak_Prophet_of_Vallon.lua new file mode 100644 index 0000000..6160124 --- /dev/null +++ b/kael/Semkak_Prophet_of_Vallon.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.other:GetFaction(e.self) < 5) then + if(e.message:findi("hail")) then + e.self:Say("You have entered the sacred temple of Vallon Zek. This is the Temple of Strategy. We teach what must be done to be a great leader. Forethought is a powerful tool."); + elseif(e.message:findi("teach")) then + e.self:Say("I cannot teach one of your kind the arts of war at this time. I must teach the other Kromzek and Kromrif that proper strategy will allow us to win the war against the dragons. If you were to serve the temple of Vallon, I might consider giving you a few words of advice about strategy."); + elseif(e.message:findi("serve the temple")) then + e.self:Say("The dragons of Velious are ancient and wise beyond belief. They have ageless strategies to destroy their foes. The Temple of Strategy must gain the knowledge they hold. I have heard rumors of a great dragon burial ground. If this tomb indeed exists, find it and seek out the knowledge of the dragons who are now dead. Bring whatever you believe will teach us their strategies and tactics of the past."); + end + elseif(e.other:GetFaction(e.self) < 6) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 5 and (item_lib.check_turn_in(e.self, e.trade, {item1 = 24986}, 0) or item_lib.check_turn_in(e.self, e.trade, {item1 = 24985}, 0))) then + e.self:Say("This tablet holds great knowledge. The Temple of Strategy thanks you, " .. e.other:GetCleanName() .. ". Take this and know that your own strategies are wise indeed if you have acquired this tablet from the depths of the dragons' graveyard."); + e.other:Faction(e.self,448,20); -- Faction: Kromzek + e.other:Faction(e.self,419,5); -- Faction: Kromrif + e.other:Faction(e.self,429,5); -- Faction: King Tormax + e.other:Faction(e.self,430,-10); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(25036, 25040, 25034, 25035),50000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kael/Slaggak_the_Trainer.lua b/kael/Slaggak_the_Trainer.lua new file mode 100644 index 0000000..1bd6353 --- /dev/null +++ b/kael/Slaggak_the_Trainer.lua @@ -0,0 +1,49 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= -100) then + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:Race() .. ". I am Slaggak, the trainer. The Kromrif here will soon be ready to serve the great and honorable King Tormax."); + elseif(e.message:findi("serve")) then + e.self:Say("So you say, little one. Why are you here, then? You should be out slaying those pestering little Coldain or maybe those damnable shard wurms and wyverns."); + elseif(e.message:findi("coldain")) then + e.self:Say("The Coldain are the ice dwarves. They have defiled our lands for long enough. Thinking of them makes my blood run hot. With my new position as trainer, I am not allowed to roam the lands and slaughter their kind as I once did.' Slaggak sighs. 'I long for the days when I could fashion necklaces from their skulls."); + elseif(e.message:findi("shard wurm")) then + e.self:Say("You must have seen the shard wurms by now! The lizards that roam the lands eating whatever they can find? They can grow to be quite ferocious! Not nearly as ferocious as their ancient cousins, the dragons, but a nuisance nonetheless. We have a bounty on those beasts here in Kael Drakkel."); + elseif(e.message:findi("skull")) then + e.self:Say("Go from here and seek out the Coldain, slay them, and return to me with their heads. I wish to fashion four skull talismans as I once did. If you can do this for me, I will surely let King Tormax know of your deeds and reward you with a piece of armor from the Militia armory."); + elseif(e.message:findi("bounty")) then + e.self:Say("If you think you have what it takes to slay the shard wurms or their relatives, the wyverns, bring back proof of your exploits. For every four shard wurm fang you bring me, I am authorized to reward you with a pair of cerulean greaves. Every fourth ice wyvern stinger will grant you a pair of vambraces."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 7) then + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30081,item2 = 30081,item3 = 30081,item4 = 30081}, 0)) then + e.self:Emote("looks down at you as you hold up the skulls of the wretched little dwarves. 'Excellent work, " .. e.other:GetCleanName() .. ". Here is your reward as promised. A piece of prize armor crafted for war."); + e.other:Faction(e.self,419,40); -- Faction: Kromrif + e.other:Faction(e.self,448,10); -- Faction: Kromzek + e.other:Faction(e.self,406,-20); -- Faction: Coldain + e.other:Faction(e.self,430,-4); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(25011, 25016, 25013, 25010, 25017, 25014, 25007, 25005, 25015, 25009, 25006, 25012, 25018),50000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 25100,item2 = 25100,item3 = 25100,item4 = 25100}, 0)) then + e.self:Say("Excellent work, " .. e.other:GetCleanName() .. ". Here is your reward as promised. A piece of prize armor crafted for war."); + e.other:Faction(e.self,419,40); -- Faction: Kromrif + e.other:Faction(e.self,448,10); -- Faction: Kromzek + e.other:Faction(e.self,406,-20); -- Faction: Coldain + e.other:Faction(e.self,430,-4); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,25071,50000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 25101,item2 = 25101,item3 = 25101,item4 = 25101}, 0)) then + e.self:Say("Excellent work, " .. e.other:GetCleanName() .. ". Here is your reward as promised. A piece of prize armor crafted for war."); + e.other:Faction(e.self,419,40); -- Faction: Kromrif + e.other:Faction(e.self,448,10); -- Faction: Kromzek + e.other:Faction(e.self,406,-20); -- Faction: Coldain + e.other:Faction(e.self,430,-4); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,25070,50000); + end + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kael/Staff_Sergeant_Drioc.lua b/kael/Staff_Sergeant_Drioc.lua new file mode 100644 index 0000000..4829a4f --- /dev/null +++ b/kael/Staff_Sergeant_Drioc.lua @@ -0,0 +1,37 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("glances over at you with a sneer and says, 'I have much to do and organize. If you have anything of importance to say you had best speak up now or leave before I lose my patience.'"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("do")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I oversee the deployment and of our staff and handle all mercenary contracts that come through the Militia.If you're looking for work then I may have some for you. If you're not looking for work then get out of my sight before I decide to take my frustrations out on you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("work")) then + if(e.other:GetFactionValue(e.self) >= 400) then + e.self:Emote("stops looking over his papers and takes a moment to size you up. You fight the urge to run in fear as the collosal humanoid considers you. After a moment he says, 'Very well. Our campaign to conquer the so called Tunarean Court has need of reinforcements. The Kromrif are already spread to thinly in the Eastern Wastes so mercenaries will have to do. Take these orders to the commanding officer in the field and follow his orders. Payment will be discussed after you complete your assignment.'"); + e.other:SummonCursorItem(1702); -- Mercenary Assignment + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1706}, 0)) then -- Krofer's Requisition + e.self:Emote("takes the note and begins reading. Seeing a certain passage, he squints and rereads, his brow furrowed. He glances over at you and says, 'Very well. I will assign you a squad lead by Corporal Hlash. They will rendezvous with you out in the field. Oh and take this back to Krofer.'"); + e.other:QuestReward(e.self,0,0,0,0,1707); -- Signed Requisition + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1709}, 0)) then -- Report of Failure + e.self:Emote("reads over the report, his face begins to turn red with anger. Drioc shouts, 'How can this be?! I sent you a squad of some of our best trained men and you had them destroyed!! This was supposed to be a routine raid and you return in FAILURE!! I would crush you under my boot right now if I wasn't so angry but I think I'll send you to my finacier. YOU can explain what happened and why his investments have been lost. Now take your carcass out of here!'"); + e.other:QuestReward(e.self,{itemid = 1709}); -- Report of Failure + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kael/Stoem_Lekbar.lua b/kael/Stoem_Lekbar.lua new file mode 100644 index 0000000..8623754 --- /dev/null +++ b/kael/Stoem_Lekbar.lua @@ -0,0 +1,51 @@ +--enchanter + +local quest_helper = require('velious_quest_helper'); +local KAEL_ARMOR = quest_helper.KAEL_ARMOR; + +local QUEST_ITEMS = { + quest_helper:silk_helmet(KAEL_ARMOR.Silk_Turban, 25426), + quest_helper:silk_chest(KAEL_ARMOR.Silk_Robe, 25427), + quest_helper:silk_arms(KAEL_ARMOR.Silk_Sleeves, 25428), + quest_helper:silk_bracer(KAEL_ARMOR.Silk_Wristband, 25429), + quest_helper:silk_gloves(KAEL_ARMOR.Silk_Gloves, 25430), + quest_helper:silk_legs(KAEL_ARMOR.Silk_Pantaloons, 25431), + quest_helper:silk_boots(KAEL_ARMOR.Silk_Boots, 25432), +} + +function event_say(e) + if(e.other:GetFaction(e.self) < 2) then --Must be ally + if(e.message:findi("hail")) then + e.self:Say("Greetings to you. I seek those who call themselves enchanters. Are you an enchanter?"); + elseif(e.message:findi("enchanter")) then + e.self:Say("I thought so. I have several tasks for you to accomplish. Once you have completed them I will have a cap, a robe, sleeves, wristbands, gloves, leggings and boots to reward you with."); + elseif(e.message:findi("cap")) then + e.self:Say("For you to receive my gift, I shall require an ancient silk turban and three crushed flame opals."); + elseif(e.message:findi("robe")) then + e.self:Say("This exquisite robe shall be yours in exchange for an ancient silk robe and three pristine emeralds."); + elseif(e.message:findi("sleeve")) then + e.self:Say("For these durable sleeves, you must fetch me a pair of ancient silk sleeves and three flawed topazes."); + elseif(e.message:findi("wristband")) then + e.self:Say("The crafting of this wristband requires that you bring me an ancient silk wristband and three crushed pieces of onyx sapphire."); + elseif(e.message:findi("glove")) then + e.self:Say("For this fine pair of gloves you must seek out and return to me three crushed topazes and a pair of ancient silk gloves."); + elseif(e.message:findi("legging")) then + e.self:Say("This pair of leggings will be yours provided you supply me with a pair of ancient silk pantaloons as well as three nephrites."); + elseif(e.message:findi("boot")) then + e.self:Say("These supple boots shall be yours upon receipt of a pair of ancient silk boots and a trilogy of crushed jaundice gems."); + end + elseif (e.other:GetFaction(e.self) < 5) then -- amiably or better + if(e.message:findi("hail")) then + e.self:Say("We have nothing to talk about small one."); + end + elseif (e.other:GetFaction(e.self) >= 5) then + if(e.message:findi("hail")) then + e.self:Say("You must prove your dedication to Kael Drakkal and the Kromzek clan before I will speak to you."); + end + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.kael_armor_success); +end + diff --git a/kael/Svekk_Fangbinder.lua b/kael/Svekk_Fangbinder.lua new file mode 100644 index 0000000..d0d451e --- /dev/null +++ b/kael/Svekk_Fangbinder.lua @@ -0,0 +1,55 @@ +function event_say(e) + if(e.other:GetFaction(e.self) < 6) then + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Svekk, a humble servant of Wenglawks. It is my job to keep track of the supplies here. I also sell mundane wares."); + elseif(e.message:findi("supplies")) then + e.self:Say("We have all kinds of supplies! Normally we deliver them to the giants who live outside Kael."); + elseif(e.message:findi("giant")) then + e.self:Say("There are several encampments in the eastern wastes that barter for supplies with us monthly. The great divide also has a small outpost of Kromrif who strive to beat the Coldain back into their city of Thurgadin and of course the outposts in the wakening lands. Our last batch of deliveries did not reach their intended targets. The runners have not been heard from since they were dispatched either."); + elseif(e.message:findi("eastern waste")) then + e.self:Say("The Kromrif of the Eastern wastes are more savage than those who dwell within Kael Drakkel. Normally they can fend for themselves but recently Fjloaren of the Icebane clan has requested we help them with a shipment of supplies. We have yet to receive payment for the supplies but you are more than welcome to purchase supplies for them and deliver them. It has been a most unforgiving season upon the wastes I believe."); + elseif(e.message:findi("wakening land")) then + e.self:Say("Korzak Stonehammer is the name of the man whom we usually deliver to in the Wakening Land. His men are attempting to expand Kael further into that accursed forest. If you buy a pack of supplies and deliver it to him I am sure he would repay you handsomely. A single pack will only cost you a mere five hundred pieces of gold."); + elseif(e.message:findi("great divide")) then + e.self:Say("If you wish to deliver supplies to the warriors in the great divide that is wonderful. One small problem arises. I do not know you, " .. e.other:Race() .. ". I would not trust you as far as I could throw a dragon. If you pay for the supplies and deliver them the men at the fortress will surely repay you. A pack of basic supplies only costs a meager five hundred gold pieces. If you choose to purchase the supplies and deliver them take them to a man named Bekerak Coldbones at the outpost."); + elseif(e.message:findi("klezendian")) then + e.self:Say("Klezendian crystals can be found in the Crystal Caverns beneath the eastern wastes. The Rygorr orcs mine Velium and various metals from its rich walls. Be warned though, the crystal caverns are not a safe place, nameless beasts and even some Coldain call It their home."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 6) then + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 25278}, 0)) then -- Velium Torque + e.self:Say("Ahh, a Velium torque! Here, I'll give you one hundred pieces of gold for that!' Svekk places the torque in his pocket and drops some coins at his feet."); + e.other:Faction(e.self,448,10); -- Faction: Kromzek + e.other:Faction(e.self,419,2); -- Faction: Kromrif + e.other:Faction(e.self,429,2); -- Faction: King Tormax + e.other:Faction(e.self,430,-5); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,15,0,250); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 25267}, 0)) then -- Bekerak's Letter to Svekk + e.self:Say("This is unbelievable! The fool is asking for things I don't even have in stock! Listen, " .. e.other:GetCleanName() .. ", you're the one that wanted to help them out, I'm just here working for Wenglawks. I can get most of these supplies ready but I have no source for Klezendian Crystals. I will start bundling the more mundane items Bekerak wants. If you find any Klezendian return to me with the crystal and this voucher."); + e.other:Faction(e.self,448,10); -- Faction: Kromzek + e.other:Faction(e.self,419,2); -- Faction: Kromrif + e.other:Faction(e.self,429,2); -- Faction: King Tormax + e.other:Faction(e.self,430,-5); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,25270,250); -- Supply Voucher + elseif(item_lib.check_turn_in(e.self, e.trade, {copper = 50000}, 0)) then + e.self:Emote("heaves a large pack from a pile in the corner and sets it before you. 'I wish you luck in your endeavor, " .. e.other:Race() .. "'"); + e.other:QuestReward(e.self,0,0,0,0,25266); -- Giant Sack of Supplies + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 25270,item2 = 25271})) then -- Supply Voucher / Klezendian Crystal + e.self:Say("Did you travel to the crystal caverns to get that crystal, " .. e.other:GetCleanName() .. "? You are quite brave for a " .. e.other:Race() .. ". I have the other supplies ready for your trip, they are quite heavy but I think you will get by."); + e.other:Faction(e.self,448,10); -- Faction: Kromzek + e.other:Faction(e.self,419,2); -- Faction: Kromrif + e.other:Faction(e.self,429,2); -- Faction: King Tormax + e.other:Faction(e.self,430,-5); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,25269,250); -- Large Supply Sack for Bekerak + end + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/kael/The_Avatar_of_War.lua b/kael/The_Avatar_of_War.lua new file mode 100644 index 0000000..9f42eae --- /dev/null +++ b/kael/The_Avatar_of_War.lua @@ -0,0 +1,23 @@ +function event_spawn(e) + eq.set_timer("depop",3600000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_death_complete(e) + eq.delete_global("Avatar"); +end diff --git a/kael/The_Statue_of_Rallos_Zek.lua b/kael/The_Statue_of_Rallos_Zek.lua new file mode 100644 index 0000000..64817e7 --- /dev/null +++ b/kael/The_Statue_of_Rallos_Zek.lua @@ -0,0 +1,14 @@ +-- On death, spawns the Idol of Rallos Zek + +function event_death_complete(e) + e.self:Shout("Protect the Idol of Zek!"); + eq.set_global("Idol","1",7,"F"); + eq.unique_spawn(113341,0,0,1289,1300,-90,259); -- NPC: #The_Idol_of_Rallos_Zek +end + +function event_combat(e) + + if (e.joined) then + eq.signal(113131, 1); -- NPC: Armor_of_Zek + end +end diff --git a/kael/The_sound_of.lua b/kael/The_sound_of.lua new file mode 100644 index 0000000..5c8c7a5 --- /dev/null +++ b/kael/The_sound_of.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 45, xloc + 45, yloc - 45, yloc + 45, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("chanting seems to be coming from all directions."); + eq.depop_with_timer(); +end diff --git a/kael/Tuuak.lua b/kael/Tuuak.lua new file mode 100644 index 0000000..221fdb0 --- /dev/null +++ b/kael/Tuuak.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Another fine day for ice fishing here in Kael."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("fishing")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("You should get a rod and fish, too. It can be very relaxing."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/Ulkar_Jollkarek.lua b/kael/Ulkar_Jollkarek.lua new file mode 100644 index 0000000..d58ad6d --- /dev/null +++ b/kael/Ulkar_Jollkarek.lua @@ -0,0 +1,53 @@ +--wizard + +local quest_helper = require('velious_quest_helper'); +local KAEL_ARMOR = quest_helper.KAEL_ARMOR; + +local QUEST_ITEMS = { + quest_helper:silk_helmet(KAEL_ARMOR.Silk_Turban, 25405), + quest_helper:silk_chest(KAEL_ARMOR.Silk_Robe, 25406), + quest_helper:silk_arms(KAEL_ARMOR.Silk_Sleeves, 25407), + quest_helper:silk_bracer(KAEL_ARMOR.Silk_Wristband, 25408), + quest_helper:silk_gloves(KAEL_ARMOR.Silk_Gloves, 25409), + quest_helper:silk_legs(KAEL_ARMOR.Silk_Pantaloons, 25410), + quest_helper:silk_boots(KAEL_ARMOR.Silk_Boots, 25411), +} + +function event_say(e) + if(e.other:GetFaction(e.self) < 2) then --Must be ally + if(e.message:findi("hail")) then + e.self:Say("Greetings to you. I seek one that calls himself a wizard. What do you call yourself, manling?"); + elseif(e.message:findi("wizard")) then + e.self:Say("Excellent. Are you sure enough of your skills to undertake my tasks? If not, get out of my sight, weakling!"); + elseif(e.message:findi("task")) then + e.self:Say("I thought so. One should never back down from a challenge. Once you have completed them I will have a cap, a robe, sleeves, wristbands, gloves, leggings and boots to reward you with."); + elseif(e.message:findi("cap")) then + e.self:Say("For you to receive my gift, I shall require an ancient silk turban and three crushed flame opals."); + elseif(e.message:findi("robe")) then + e.self:Say("This exquisite robe shall be yours in exchange for an ancient silk robe and three pristine emeralds."); + elseif(e.message:findi("sleeve")) then + e.self:Say("For these durable sleeves, you must fetch me a pair of ancient silk sleeves and three flawed topazes."); + elseif(e.message:findi("wristband")) then + e.self:Say("The crafting of this wristband requires that you bring me an ancient silk wristband and three crushed pieces of onyx sapphire."); + elseif(e.message:findi("glove")) then + e.self:Say("For this fine pair of gloves you must seek out and return to me three crushed topazes and a pair of ancient silk gloves."); + elseif(e.message:findi("legging")) then + e.self:Say("This pair of leggings will be yours provided you supply me with a pair of ancient silk pantaloons as well as three nephrites."); + elseif(e.message:findi("boot")) then + e.self:Say("These supple boots shall be yours upon receipt of a pair of ancient silk boots and a trilogy of crushed jaundice gems."); + end + elseif (e.other:GetFaction(e.self) < 5) then -- amiably or better + if(e.message:findi("hail")) then + e.self:Say("We have nothing to talk about small one."); + end + elseif (e.other:GetFaction(e.self) >= 5) then + if(e.message:findi("hail")) then + e.self:Say("You must prove your dedication to Kael Drakkal and the Kromzek clan before I will speak to you."); + end + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.kael_armor_success); +end + diff --git a/kael/Vealok_the_Angry.lua b/kael/Vealok_the_Angry.lua new file mode 100644 index 0000000..ef8ad3e --- /dev/null +++ b/kael/Vealok_the_Angry.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Emote("looks down at you and laughs. 'Your kind should stay out of the arena! You might get stepped on by a real gladiator!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/Veldern_Blackhammer.lua b/kael/Veldern_Blackhammer.lua new file mode 100644 index 0000000..7ece5f2 --- /dev/null +++ b/kael/Veldern_Blackhammer.lua @@ -0,0 +1,52 @@ +--shadowknight + +local quest_helper = require('velious_quest_helper'); +local KAEL_ARMOR = quest_helper.KAEL_ARMOR; + +local QUEST_ITEMS = { + quest_helper:melee_helmet(KAEL_ARMOR.Plate_Helmet, 25349), --Helm + quest_helper:melee_chest(KAEL_ARMOR.Breastplate, 25350), -- Breastplate + quest_helper:melee_arms(KAEL_ARMOR.Plate_Vambraces, 25351), -- Arms + quest_helper:melee_bracer(KAEL_ARMOR.Plate_Bracer, 25352), --Bracer + quest_helper:melee_gloves(KAEL_ARMOR.Plate_Gauntlets, 25353), --gloves + quest_helper:melee_legs(KAEL_ARMOR.Plate_Greaves, 25354), --legs + quest_helper:melee_boots(KAEL_ARMOR.Plate_Boots, 25355), --boots +} + +function event_say(e) + if(e.other:GetFaction(e.self) < 2) then --Must be ally + if(e.message:findi("hail")) then + e.self:Emote("looks around. 'Who dares address me? Oh, it is a " .. e.other:Race() .. ". Only a shadowknight may address me and proceed further. Are you a shadowknight? Speak, oaf! Otherwise take your prattle elsewhere.'"); + elseif(e.message:findi("shadowknight")) then + e.self:Say("What is it you want little one? Some armor perhaps? To make a pretty meal? I hate when bits of armor get stuck in my gullet. It is very annoying."); + elseif(e.message:findi("some armor")) then + e.self:Emote("laughs deeply at you. 'You are so transparent, " .. e.other:GetCleanName() .. ". Well, if armor is what you wish, then only the best shall you have for I will not waste my time on nothing less. This is what I will make for you, granted that you can acquire the components for me, a helm, breastplate, armplates, bracers, gauntlets, leggings, and boots.'"); + elseif(e.message:findi("helm")) then + e.self:Say("For the helm I shall require an ancient tarnished plate helmet and three pieces of crushed coral. Does your tiny mind comprehend the task set before you? If so, then get them immediately! I am beginning to get hungry and you are looking all the better as a snack."); + elseif(e.message:findi("breastplate")) then + e.self:Say("For the breastplate, I require this. An ancient tarnished breastplate and three flawless diamonds. Nothing more, nothing less. For perfection, there is a price, insignificant one."); + elseif(e.message:findi("armplate")) then + e.self:Say("For the armplates, I need these components, an ancient tarnished plate vambraces as well as three flawed emeralds. Now go and fetch them before I change my mind."); + elseif(e.message:findi("bracer")) then + e.self:Say("For the bracers, I will require an ancient tarnished plate bracer and three crushed flame emeralds. Now go away before I use your insides as decoration for my boot."); + elseif(e.message:findi("gauntlet")) then + e.self:Say("Your hands are quite important are they not? For without them, you cannot use your precious weapons or shields to protect yourself. You humor me with your feeble attempts. Fetch me an ancient tarnished plate gauntlets and three crushed pieces of topaz for your precious little hands."); + elseif(e.message:findi("legging")) then + e.self:Say("Legs... they are my favorite part of any meal. I like to pull them off first and...Oh, yes, where was I? The leggings. Go and retrieve an ancient tarnished plate greave as well as three flawed sea sapphires. Now, leave my sight before I sample one of yours."); + elseif(e.message:findi("boot")) then + e.self:Say("You wish to have a pair of boots? Then acquire these items for me. A pair of ancient tarnished plate boots and three pieces of crushed black marble. I tire of your prattle. Go away now."); + end + elseif (e.other:GetFaction(e.self) < 5) then -- amiably or better + if(e.message:findi("hail")) then + e.self:Say("We have nothing to talk about small one."); + end + elseif (e.other:GetFaction(e.self) >= 5) then + if(e.message:findi("hail")) then + e.self:Say("You must prove your dedication to Kael Drakkal and the Kromzek clan before I will speak to you."); + end + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.kael_armor_success) +end diff --git a/kael/Vkaak.lua b/kael/Vkaak.lua new file mode 100644 index 0000000..085c086 --- /dev/null +++ b/kael/Vkaak.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I'll have no trouble around here. One wrong move and I'll snap your neck."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/Vkjor.lua b/kael/Vkjor.lua new file mode 100644 index 0000000..9e23f39 --- /dev/null +++ b/kael/Vkjor.lua @@ -0,0 +1,38 @@ +function event_say(e) + if(e.other:GetFaction(e.self) < 5) then + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:Race() .. ". Welcome to the great arena of Kael Drakkel. I am Vkjor, master of the arena. The games begin and end when I wish them to. Gladiators train themselves year round to entertain the populace of Kael. Have you come to watch, or is there something else I can help you with?"); + elseif(e.message:findi("watch")) then + e.self:Say("Well then, if you present me with a ticket I might consider having a few gladiators come forth and fight."); + elseif(e.message:findi("something else") or e.message:findi("help you with")) then + e.self:Say("What is it you need? Do you wish to be a gladiator or something along those lines? I do not allow your kind to fight in the arena, I am sorry to say. It is a sacred place for the children of Zek. If you wish to hone your battle skills, however, I do have several things I need taken care of."); + elseif(e.message:findi("taken care")) then + e.self:Say("I have several things which must be dealt with. However I must know if you are capable of the tasks before I send you off. Do you fight like an ice wurm or a dragon?"); + elseif(e.message:findi("dragon")) then + e.self:Say("If you fight like a dragon, I suppose destroying one might not be that hard for you. Several years ago, Nevederia led a flight of dragons to defile the Temple of Rallos Zek. We beat them back to the skies but not without our losses."); + elseif(e.message:findi("loss")) then + e.self:Say("My youngest son, Vkjrog, now rests with Rallos Zek in the Plane of War. The loss has sapped me nearly of my will to live. However, a few things keep me going - my duty to keep the arena in order and the knowledge that I might still bring pain and suffering to Nevederia. I wish her to suffer as I did with the loss of a child. She may stay safe in the Temple of Veeshan but her brood does not. Slay her three children and bring me proof of their deaths so they may serve as my message to Nevederia. I will compensate you with a pair of gloves fit for a fine warlord if you can give me this satisfaction."); + elseif(e.message:findi("ice wurm")) then + e.self:Say("Very well, young one. A friend of mine named Graktar recently traveled to the Eastern Wastes in search of the remains of his brother, Vkalth. Please take this note to Graktar and assist him in his search. Return to me when you have news of his fate."); + e.other:SummonCursorItem(25102); -- Large note + end + elseif(e.other:GetFaction(e.self) < 7) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 25128,item2 = 25129,item3 = 25127})) then -- Bloody claws of Draazak, Jerigozia, and Veredenia + e.self:Emote("looks down at you, shocked. 'I honestly did not expect you to be able to destroy her children, " .. e.other:GetCleanName() .. ". Vkjrog must have guided your hand as you slew those beasts. Nevederia will now know sorrow the like of which she has never felt.' Vkjor drops a shiny pair of gauntlets on the ground before you as he turns his attention to the bloody claws he now holds.'"); + e.other:Faction(e.self,448,75); -- Faction: Kromzek + e.other:Faction(e.self,419,18); -- Faction: Kromrif + e.other:Faction(e.self,429,18); -- Faction: King Tormax + e.other:Faction(e.self,430,-37); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,25078,75000); -- Silver Steel Gauntlets + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kael/Vorken_Iceshard.lua b/kael/Vorken_Iceshard.lua new file mode 100644 index 0000000..fabb02a --- /dev/null +++ b/kael/Vorken_Iceshard.lua @@ -0,0 +1,130 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I am Vorken Iceshard, one of the lords of Iceshard manor. In this day and age you can never tell where one's allegiances are. Leave my servants in peace or you may leave in pieces."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("allegiances")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Loyalties, of course, little one. Each day I see more mercenaries come to Kael, seeking their fortunes. King Tormax will use your kind to wage war on the dragons and upon the Coldain. But I question the motives of your kind."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("motives")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("My motives are simple. I will acquire as much power and prestige as possible before I die. Such is life for me, a constant search for power and wealth. But my great power and wealth have not brought me happiness. Enough of my motives, what drives you? A constant search for more power, a search for security and happiness? Or do you truly believe in the rhetoric of King Tormax which advocates that we eradicate the dragons?"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("power")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I understand. You seek wealth and power. Believe me, young one, it will not bring you happiness. Each item you acquire will only quell your lust for more power for a short time. There is always something slightly better to gain. Would yet another useless possession really make you feel better? Let me tell you a little story."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("story")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Before I ascended to power here in Kael Drakkel, I lived as a nomad in the eastern wastes. My brother Klaggan and I did as we pleased, not abiding by the laws of the Kromrif leaders at the time. With each 'crime' we committed we drew the attention of Beleveios Thunderstone, the so called leader of the wandering giants at that time. His anger with us grew so much that he eventually came looking for us."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("beleveios")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Beleveios came seeking my brother and me to slay us and end the whining of the weaker giants. The day is still crisp in my mind. Four of his greatest champions fell upon my brother and me in our encampment, attempting to slay us in our sleep. We Iceshards are not so easy to slay, however. Klaggan awoke as they attempted to slit our throats and snapped the neck of one of our assailants. I leaped to my feet as well, and with my trusty axe I slashed at the knaves who had come to [murder] us."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("murder")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Yes, they tried to stop our actions without so much as a trial by honorable combat. My brother and I slaughtered Beleveios' most powerful guards as he watched. When the last one fell, I was covered in the blood of my foes, as was Klaggan. Beleveios stood there dumbfounded, before he dropped to his knees begging for our mercy and forgiveness. He prattled on about his [family], and wanting to protect his people. I would hear no more of this. His head lay on the ground not long after that."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("family")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I took little heed of Beleveios' ranting about his family at the time. I have not thought of it much until recently either. I have heard rumors that his son has been attempting to gain support from the other Kromrif. The whispers on the wind speak of my assassination by this fool who wants vengeance for a father who would murder men in their sleep. If you wish powerful possessions, then seek out the son of Beleveios Thunderstone and slay him. Bring me his head as proof and I will reward you with what you seek so avidly."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("dragons")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("So your cause is to destroy the dragons as King Tormax says? If you wish to be noticed by King Tormax, you must do great deeds."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("great deed")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("If you expected to come to Kael Drakkel and immediately have an audience with the king, you are a bigger fool than most. Go out and slay the weaker members of dragonkind. That might gain his favor. If you do hunt the wurms and drakes, you may be able to please me as well."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("please you")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("In my youth, I was bitten by a very intelligent wurm named Bllizent. My brother and I were foolish enough to try to slay the great beast. He tasted my flesh and the flesh of my brother that day and I fear he liked it too much. I have nightmares of this beast's return to taste me again. I would rest easier at night if I knew Bllizent was dead and gone. He will be quite an elderly wurm if he is still alive today."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("true kromrif warrior")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("That is good to hear. I hope his soul reaches the Plane of War. Perhaps I will meet him there some day."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 25117}, 0)) then + if (e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("So, the beast was still alive! Now I may rest easier knowing my dreams are only dreams and not a prophecy of his return to finish me off. The king will surely hear of your deeds, " .. e.other:GetCleanName() .. ". Take this belt as a token of my gratitude."); + -- verified faction on live + e.other:Faction(e.self,419,20); -- kromrif + e.other:Faction(e.self,448,5); -- kromzek + e.other:Faction(e.self,406,-10); -- coldain + e.other:Faction(e.self,430,-2); -- claws of veeshan + e.other:QuestReward(e.self,0,0,0,0,25049,1000); + else + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + e.self:SummonItem(25117); -- Item: Bllizents Fang + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 25116}, 0)) then + if (e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Congratulations, mercenary. You have earned your precious reward. Tell me, did Ekelng whine like his father for forgiveness, or did he die like a true Kromrif warrior?"); + -- verified faction on live + e.other:Faction(e.self,419,20); -- kromrif + e.other:Faction(e.self,448,5); -- kromzek + e.other:Faction(e.self,406,-10); -- coldain + e.other:Faction(e.self,430,-2); -- claws of veeshan + e.other:QuestReward(e.self,0,0,0,0,25048,1000); + else + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + e.self:SummonItem(25116); -- Item: Head of Ekelng Thunderstone + end + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kael/Vylleam_Vyaeltor.lua b/kael/Vylleam_Vyaeltor.lua new file mode 100644 index 0000000..d76813b --- /dev/null +++ b/kael/Vylleam_Vyaeltor.lua @@ -0,0 +1,52 @@ +--cleric + +local quest_helper = require('velious_quest_helper'); +local KAEL_ARMOR = quest_helper.KAEL_ARMOR; + +local QUEST_ITEMS = { + quest_helper:priest_helmet(KAEL_ARMOR.Plate_Helmet, 25391), --helm + quest_helper:priest_chest(KAEL_ARMOR.Breastplate, 25392), -- Breastplate + quest_helper:priest_arms(KAEL_ARMOR.Plate_Vambraces, 25393), -- Arms + quest_helper:priest_bracer(KAEL_ARMOR.Plate_Bracer, 25394), --Bracer + quest_helper:priest_gloves(KAEL_ARMOR.Plate_Gauntlets, 25395), --gloves + quest_helper:priest_legs(KAEL_ARMOR.Plate_Greaves, 25396), --legs + quest_helper:priest_boots(KAEL_ARMOR.Plate_Boots, 25397), --boots +} + +function event_say(e) + if(e.other:GetFaction(e.self) < 2) then -- Must be Ally + if(e.message:findi("hail")) then + e.self:Emote("bows 'Greetings to you. You are far away from your homelands, stranger. I am looking for someone. Someone that the outlanders call a cleric. Are you a cleric?'"); + elseif(e.message:findi("cleric")) then + e.self:Say("Ahhh... most pious one. I sense the aura of your devotion and conviction and it is strong about you. A shame you are so short lived, mortal. But I see potential in you and for that I shall aid you in your calling. Do you wish my aid?"); + elseif(e.message:findi("aid")) then + e.self:Say("Then I have a set of goals for you. Once you have achieved them, you shall be rewarded with such as these; a helm, a breastplate, armplates, bracers, gauntlets, greaves and boots. May they protect you from your enemies."); + elseif(e.message:findi("helm")) then + e.self:Say("I shall craft a helm for you but you must seek these items out for me first. I have need of an ancient tarnished plate helmet and three crushed onyx sapphires."); + elseif(e.message:findi("breastplate")) then + e.self:Say("Such as your faith protects you so shall this breastplate. I must have an ancient tarnished breastplate and three pieces of black marble."); + elseif(e.message:findi("armplate")) then + e.self:Say("For the armplates, I shall require a pair of an ancient tarnished plate armplates as well as three jaundice gems. Go forth and seek these out."); + elseif(e.message:findi("bracer")) then + e.self:Say("For the bracers, faithful one, I shall require the acquisition of an ancient tarnished plate bracer and three crushed opals."); + elseif(e.message:findi("gauntlet")) then + e.self:Say("I will need a pair of a ancient tarnished gauntlets three crushed lava rubys, so that I may make your reward."); + elseif(e.message:findi("greave")) then + e.self:Say("You shall acquire a pair of an ancient tarnished plate greaves and three chipped onyx sapphires for me. I await your return."); + elseif(e.message:findi("boot")) then + e.self:Say("With your aid I shall make a pair of fine boots for you. All that is needed is a pair of an ancient tarnished plate boots and a trilogy of crushed flame emeralds."); + end + elseif (e.other:GetFaction(e.self) < 5) then -- amiably or better + if(e.message:findi("hail")) then + e.self:Say("We have nothing to talk about small one."); + end + elseif (e.other:GetFaction(e.self) >= 5) then + if(e.message:findi("hail")) then + e.self:Say("You must prove your dedication to Kael Drakkal and the Kromzek clan before I will speak to you."); + end + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.kael_armor_success) +end diff --git a/kael/Wenglawks_Kkeak.lua b/kael/Wenglawks_Kkeak.lua new file mode 100644 index 0000000..ef20569 --- /dev/null +++ b/kael/Wenglawks_Kkeak.lua @@ -0,0 +1,79 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ", I have heard of you. My name is Wenglawks Kkeak. Welcome to my humble home. My sources tell me you are a [mercenary]. Is this true?"); + elseif(e.message:findi("mercenary")) then + e.self:Say("Well then, I suppose you might be [looking] for work. Are you?"); + elseif(e.message:findi("looking")) then + e.self:Say("I have been looking for a few good people to deliver goods for me. I have several [deliveries] to clients which must be made soon. My last delivery person ended up dead, unfortunately."); + elseif(e.message:findi("deliveries")) then + e.self:Say("I have three clients whose orders must be taken care of. These will not be simple deliveries. I want you not only to deliver the items but to assist them if they need help using their packages. Do you wish to hear of the first task I have for you?"); + elseif(e.message:findi("first task")) then + e.self:Say("One of my clients lives on the shores of the Iceclad Ocean. His name is Sojan. Supposedly he is some kind of pirate from the other lands. However, I could not care less what he calls himself. He paid me well to acquire him a set of Coldain tools and they were not easy to come by. Are you willing to take this [package] to Sonjan?"); + elseif(e.message:findi("deliver good")) then + -- Toolset Delivery (kael) + e.self:Say("Wonderful, " .. e.other:GetCleanName() .. ". Take this note to Kellek and he will give you the tools."); + e.other:SummonCursorItem(25279); -- Summon: Voucher for toolset + elseif(e.message:findi("undertake")) then + -- Spear Delivery (kael) + e.self:Say("In the great divide there is a small outpost of kromrif. In that outpost you will find Bekerak, my client. I have acquired this new hunting spear for him and he may wish to test it out. Because of one simple mistake, once in my past, he thinks all of my wares are shoddy. I need the payment for the transaction still so don't let him get away without giving it to you. Take this voucher to Kellek and he will give you the spear."); + e.other:SummonCursorItem(25280); -- Summon: Voucher for Spear + elseif(e.message:findi("third client")) then + -- Mechanical Net Delivery (kael) + e.self:Say("Are you sure you will be up to this journey? It will take a hardened person to survive the trip. Let alone find my client. Do you really [want to go] out into the dangerous lands in the west?"); + elseif(e.message:findi("want to go")) then + -- Mechanical Net Delivery (kael) + e.self:Say("I'm not sure if I can [trust] you with this. If you die on the trip, I will be losing profit! The other deliveries were much simpler, I remind you. Can I really [trust] you as far as I can throw you? Wait, that's a bad example - I could probably throw you quite far."); + elseif(e.message:findi("trust")) then + -- Mechanical Net Delivery (kael) + e.self:Say("I will curse your immortal soul if you fail, " .. e.other:GetCleanName() .. ". In the depths of the icy waters of the cobalt scar lives an outcast siren who preys upon her own kind. We have a deal, I will provide her with an excellent hunting net and she will provide me with a giant cloak made of the scales of her kind. Take this voucher to Kellek and deliver the net. Do whatever it takes to get my cloak."); + e.other:SummonCursorItem(25281); -- Summon: Voucher for Mechanical Net + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28600,platinum = 200}, 0)) then + -- Key to Cobalt Scar (skyshrine) + e.self:Say("Here is the information your employer requested. Now be gone. I have more business to take care of."); + e.other:QuestReward(e.self,0,0,0,0,28601); -- Message to Herald + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20474}, 0)) then -- Receipt + e.self:Say("I assume the delivery went well? You can have these as payment. One of my customers just decided he does not wish to buy them. They are rather sturdy! I do have another task available if you wish to [undertake] it."); + e.other:QuestReward(e.self,0,0,0,0,25062,1000); -- Engraved Bone Pauldrons + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 25130}, 0)) then -- Giant Icewurm Talisman + e.self:Say("He has reconsidered the offer, you say? This is most excellent! I hope this will be acceptable payment for your troubles, " .. e.other:GetCleanName() .. ". My cash situation is not the best at this point in time. I do have a [third client] who needs delivery..."); + e.other:QuestReward(e.self,0,0,0,0,25061,1500); -- Bracer of Midnight + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 25110}, 0)) then -- Giant Siren Scale Cloak + e.self:Say("It is truly a sight to behold. This is the most fashionable cloak I have yet to see. Even King Tormax will be green with envy. This old bag has served me well, I hope you find it to your liking."); + e.other:QuestReward(e.self,0,0,0,0,17049,2000); -- Wenglawks Manly Purse + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1722}, 0)) then -- Helssen's Voucher + e.self:Say("So you are the mercenary I have been hearing about! Not what I expected. Anyway, here is your reward. Carry it well. Also, this noble's seal will prove your loyalty to anyone who is skeptical."); + e.other:QuestReward(e.self,{items = {1719,1723},exp = 2000}); -- Girdle of Reflection, Noble's Seal + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29068, platinum = 100}, 0)) then + e.self:Say("Here is the information your employer requested. Now be gone. I have more business to take care of."); + e.other:QuestReward(e.self,0,0,0,0,29626); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if(e.wp == 23) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(113066) or eq.get_entity_list():IsMobSpawnedByNpcTypeID(113166) or eq.get_entity_list():IsMobSpawnedByNpcTypeID(113065)) then + eq.zone_emote(0,"Wenglawks Kkeak says 'Well well, how is business going today gentlemen?'"); + eq.zone_emote(0,"Graggaz Fleshflayer says 'You're not wanted around here, Wenglawks. Go back to your bar and count your ill gotten gains.'"); + eq.zone_emote(0,"Kevelak Whitefang says 'I hope Bvellos finds out what you've been up to. Your head would look nice on a pike in front of Dragon Death Keep.'"); + eq.zone_emote(0,"Wevek Redforge says 'What is it you want, Wenglawks? We're honest merchants around here.'"); + end + elseif(e.wp == 24) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(113066) or eq.get_entity_list():IsMobSpawnedByNpcTypeID(113065)) then + eq.zone_emote(0,"Wenglawks Kkeak says 'Hold your tongues fools. How dare you accuse me of such things when I come here simply to extend an offer to you. If you are not interested in a proposition I am sure I can find someone else...'"); + eq.zone_emote(0,"Graggaz Fleshflayer says 'Watch what you say, Wevek. You might end up with a knife in your back if you don't deal with this knave.'"); + eq.zone_emote(0,"Wevek Redforge says 'I'm not interested in any of your 'deals.' I won't end up face down with a knife in my back like your delivery man...'"); + end + elseif(e.wp == 25) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(113065)) then + eq.zone_emote(0,"Wenglawks Kkeak says 'Very well then. I see you are all fools. Enjoy trading with the outlanders while you can. My business will continue to thrive long after they are gone.'"); + eq.zone_emote(0,"Wevek Redforge says 'Your days are numbered, Wenglawks. Enjoy them while you can. Rallos Zek does not smile upon traitors.'"); + end + end +end \ No newline at end of file diff --git a/kael/Wevek_Redforge.lua b/kael/Wevek_Redforge.lua new file mode 100644 index 0000000..8c0a328 --- /dev/null +++ b/kael/Wevek_Redforge.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("The steel of Kael Drakkel is like no other. Perhaps you would be interested in some of my wares?"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/Weyen_Stonetrader.lua b/kael/Weyen_Stonetrader.lua new file mode 100644 index 0000000..1155584 --- /dev/null +++ b/kael/Weyen_Stonetrader.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I store things for King Tormax. I will offer my services to you as well."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/Yeeldan_Spiritcaller.lua b/kael/Yeeldan_Spiritcaller.lua new file mode 100644 index 0000000..6bff877 --- /dev/null +++ b/kael/Yeeldan_Spiritcaller.lua @@ -0,0 +1,52 @@ +--shaman + +local quest_helper = require('velious_quest_helper'); +local KAEL_ARMOR = quest_helper.KAEL_ARMOR; + +local QUEST_ITEMS = { + quest_helper:priest_helmet(KAEL_ARMOR.Chain_Coif, 25356), --helm + quest_helper:priest_chest(KAEL_ARMOR.Chain_Tunic, 25357), -- Breastplate + quest_helper:priest_arms(KAEL_ARMOR.Chain_Sleeves, 25358), -- Arms + quest_helper:priest_bracer(KAEL_ARMOR.Chain_Bracer, 25359), --Bracer + quest_helper:priest_gloves(KAEL_ARMOR.Chain_Gauntlets, 25360), --gloves + quest_helper:priest_legs(KAEL_ARMOR.Chain_Leggings, 25361), --legs + quest_helper:priest_boots(KAEL_ARMOR.Chain_Boots, 25362), --boots +} + +function event_say(e) + if(e.other:GetFaction(e.self) <= 1) then --Must be ally + if(e.message:findi("hail")) then + e.self:Emote("speaks in a rumbling tone. 'Greetings. I only wish to speak to a shaman. Are you what I seek?'"); + elseif(e.message:findi("shaman")) then + e.self:Say("I sense the spirit of your totem within you and it is strong with power. You have learned much from your travels and I shall help you, by providing you with protection from harm and the elements, in the form of armor"); + elseif(e.message:findi("armor")) then + e.self:Say("For you I shall make a coif, breastplate, sleeves, bracers, gauntlets, leggings, and boots. Each piece is a quest unto itself. To seek the components, you must search the lands for them and test the power of the spirit within."); + elseif(e.message:findi("coif")) then + e.self:Say("The coif I shall make will be comprised of an ancient tarnished coif and three crushed onyx sapphires. I shall be waiting."); + elseif(e.message:findi("breastplate")) then + e.self:Say("A breastplate to protect the spirit within. I shall make one for you granted that you retrieve the components I shall need. An ancient tarnished chain tunic and three pieces of black marble. I await your return."); + elseif(e.message:findi("sleeve")) then + e.self:Say("Sleeves I shall make upon receipt of three jaundice gems and an ancient tarnished chain sleeve. Complete this simple task and they are yours."); + elseif(e.message:findi("bracer")) then + e.self:Say("A bracer of mystic power I shall grant you. All I require is the acquisition of an ancient tarnished chain bracer and three crushed opal."); + elseif(e.message:findi("gauntlet")) then + e.self:Say("I shall require an ancient tarnished pair of chain gauntlets and three crushed lava rubys to complete my ritual."); + elseif(e.message:findi("legging")) then + e.self:Say("You seek leggings? Then provide for me, three chipped onyx and a pair of ancient tarnished chain leggings. I will give these to you for your service."); + elseif(e.message:findi("boot")) then + e.self:Say("These boots will help you in your battles to come. I shall grant them upon receipt of three crushed flame emeralds and a pair of an ancient tarnished chain boots."); + end + elseif (e.other:GetFaction(e.self) < 5) then -- amiably or better + if(e.message:findi("hail")) then + e.self:Say("We have nothing to talk about small one."); + end + elseif (e.other:GetFaction(e.self) >= 5) then + if(e.message:findi("hail")) then + e.self:Say("You must prove your dedication to Kael Drakkal and the Kromzek clan before I will speak to you."); + end + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.kael_armor_success) +end diff --git a/kael/Yetarr.lua b/kael/Yetarr.lua new file mode 100644 index 0000000..4c20b4d --- /dev/null +++ b/kael/Yetarr.lua @@ -0,0 +1,69 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("" .. e.other:GetCleanName() .. ", your name has reached my ears more than a few times. Rumors fly that your kind will be the downfall of both the dragons and the Coldain."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("dragon")) then + if(e.other:GetFactionValue(e.self) >= 400) then + e.self:Say("The dragons are not my primary concern, Kyenka has a greater hatred for them. I leave matters regarding to them in his capable hands. My worries are of the Coldain."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("coldain")) then + if(e.other:GetFactionValue(e.self) >= 400) then + e.self:Say("I do not fully trust the Kromrif to keep Kael Drakkel protected from the menace of the tiny savages. The Kromrif do not actively seek to kill them. If the Coldain are left to breed they will one day swarm over Kael and no number of Kromzek warriors will be able to save us."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("kromrif")) then + if(e.other:GetFactionValue(e.self) >= 400) then + e.self:Say("The Frost giants who call Kael their home have grown far too lax. So few of them train daily and actively seek out the Coldain to slay. I have advised King Tormax to send Kromzek raiding parties to raze Thurgadin, however, each time he reminds me that our strongest warriors must stay to guard against the dragon menace. What I need is a band of mercenaries to seek out and assassinate key Coldain leaders. We must destroy their ability to make war."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("assassinate")) then + if(e.other:GetFactionValue(e.self) >= 400) then + e.self:Say("Perhaps assassinate is not the best word. I simply wish the death of some of the more compitent (sic) advisors of that foolish Dain. Within the halls of Icewell keep dwells a huntsman that has stood by the Dains side since he was a mere child. The court scribe is also more then he appears to be. Bring me their heads, I will reward you for each one. That is the only proof I will take of their deaths."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 400 and item_lib.check_turn_in(e.self, e.trade, {item1 = 25122}, 0)) then -- Head of the Huntsman + e.self:Say("The death of this one must be causing great strife amoung the Coldain. Your work is greatly appreciated. I wish I could reward you with more, but these boots are among the few things I have to give."); + e.other:Faction(e.self,448,30); -- Faction: Kromzek + e.other:Faction(e.self,419,7); -- Faction: Kromrif + e.other:Faction(e.self,429,7); -- Faction: King Tormax + e.other:Faction(e.self,430,-15); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,25027,75000); -- Coldain Skin Boots + elseif(e.other:GetFactionValue(e.self) >= 400 and item_lib.check_turn_in(e.self, e.trade, {item1 = 25123}, 0)) then -- Head of the Royal Scribe + e.self:Say("Take these gloves and continue to strike fear into the heart of the Coldain. A daring raid upon Icewell Keep itself deserves no less."); + e.other:Faction(e.self,448,30); -- Faction: Kromzek + e.other:Faction(e.self,419,7); -- Faction: Kromrif + e.other:Faction(e.self,429,7); -- Faction: King Tormax + e.other:Faction(e.self,430,-15); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,25026,75000); -- Coldain Skin Gloves + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_combat(e) + + if (not e.joined) then + e.self:SetRunning(false); + end +end diff --git a/kael/Ymik.lua b/kael/Ymik.lua new file mode 100644 index 0000000..959ad36 --- /dev/null +++ b/kael/Ymik.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("All of your necessities can be found here, small one."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/a_Drakkel_Dire_Wolf.lua b/kael/a_Drakkel_Dire_Wolf.lua new file mode 100644 index 0000000..ce67ed7 --- /dev/null +++ b/kael/a_Drakkel_Dire_Wolf.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("sniffs at you hungrily."); + end +end diff --git a/kael/a_Frost_Giant_Lord.lua b/kael/a_Frost_Giant_Lord.lua new file mode 100644 index 0000000..2629112 --- /dev/null +++ b/kael/a_Frost_Giant_Lord.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Iceshard Manor, home of the Iceshard brothers, Klaggen and Vorken."); + end +end diff --git a/kael/a_Protector_of_Zek.lua b/kael/a_Protector_of_Zek.lua new file mode 100644 index 0000000..a327844 --- /dev/null +++ b/kael/a_Protector_of_Zek.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Emote("continues to stand guard."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/a_Storm_Giant_Warlord.lua b/kael/a_Storm_Giant_Warlord.lua new file mode 100644 index 0000000..f87e16d --- /dev/null +++ b/kael/a_Storm_Giant_Warlord.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("The fall of the Coldain and the dragons will some day come. We giants will stride this land as the chosen of Rallos Zek once more."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/a_barbarian_mercenary.lua b/kael/a_barbarian_mercenary.lua new file mode 100644 index 0000000..785fada --- /dev/null +++ b/kael/a_barbarian_mercenary.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("This better be good, " .. e.other:Race() .. "! Well? Spit it OUT!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1724}, 0)) then + e.self:Say("It's about time, whelp. Take your payment and leave, you're scaring away my... clients."); + e.other:Faction(e.self,448,3); -- Faction: Kromzek + e.other:Faction(e.self,419,1); -- Faction: Kromrif + e.other:Faction(e.self,429,1); -- Faction: King Tormax + e.other:Faction(e.self,430,-1); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,math.random(10),math.random(10),math.random(10),0,0,500); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kael/a_cleric_of_Tallon_Zek.lua b/kael/a_cleric_of_Tallon_Zek.lua new file mode 100644 index 0000000..c0956ce --- /dev/null +++ b/kael/a_cleric_of_Tallon_Zek.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Do not sully this temple with your presence."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/a_cleric_of_Vallon_Zek.lua b/kael/a_cleric_of_Vallon_Zek.lua new file mode 100644 index 0000000..0b8f5dc --- /dev/null +++ b/kael/a_cleric_of_Vallon_Zek.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Do not attempt to defile this temple, runt!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/a_domesticated_direwolf.lua b/kael/a_domesticated_direwolf.lua new file mode 100644 index 0000000..c0f3faa --- /dev/null +++ b/kael/a_domesticated_direwolf.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("sniffs at you and wags its tail."); + end +end diff --git a/kael/a_fish.lua b/kael/a_fish.lua new file mode 100644 index 0000000..88696fc --- /dev/null +++ b/kael/a_fish.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 45, xloc + 45, yloc - 45, yloc + 45, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("nearly jumps onto the ice."); + eq.depop_with_timer(); +end diff --git a/kael/a_frost_giant_berserker.lua b/kael/a_frost_giant_berserker.lua new file mode 100644 index 0000000..523b744 --- /dev/null +++ b/kael/a_frost_giant_berserker.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Emote("growls like a fierce animal."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/a_frost_giant_commoner.lua b/kael/a_frost_giant_commoner.lua new file mode 100644 index 0000000..c3823f6 --- /dev/null +++ b/kael/a_frost_giant_commoner.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Don't bother me, you ugly little thing!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/a_frost_giant_gladiator.lua b/kael/a_frost_giant_gladiator.lua new file mode 100644 index 0000000..b41a717 --- /dev/null +++ b/kael/a_frost_giant_gladiator.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("I am here to make sure no one flees the arena as a coward."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end \ No newline at end of file diff --git a/kael/a_frost_giant_wolf_tamer.lua b/kael/a_frost_giant_wolf_tamer.lua new file mode 100644 index 0000000..427ac34 --- /dev/null +++ b/kael/a_frost_giant_wolf_tamer.lua @@ -0,0 +1,54 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Yes, small one? You seek to interrupt my work for what reason?"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("looking for work")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Do you not see the wolves? I train them. I break them of their pride and make them into useful servants. Only when they willingly accept the harness are they useful."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("harness")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Aye. Good metal. We make their harnesses and wraps here in Kael from strong black steel. You can't break a beast without a good strong harness. I've learned that from years of working with them."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("more work")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Yes. I was charged with a certain... delivery. Apparently one of our good friends named Erdarf in Thurgadin needs a shipment of one karsin acid bottle. You can find such a thing in Crystal Caverns. Maybe one of the orc dogs has it. Find a way to get one of those bottles to our good friend eh? When you do, let me see whatever it is you find on him."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30245}, 0) or item_lib.check_turn_in(e.self, e.trade, {item1 = 30246}, 0)) then + e.self:Say("Ahhh. Now this is interesting indeed. I see. Crafty little ice gnats. Here, perhaps you can find use for one of our harnesses. Fair trade eh? If you want more work let me know."); + e.other:QuestReward(e.self,0,0,0,0,30249); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30270}, 0)) then + e.self:Say("Ahhh. Now that really is an interesting little trinket. You know, that might be interesting with a harness."); + e.other:QuestReward(e.self,0,0,0,0,30273); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30273}, 0)) then + e.self:Say("Yes. Exactly as I thought. Hrm. I'd keep this but you've done much work. You may be one of the filthy outlanders but you can keep it. You can save your thanks."); + e.other:QuestReward(e.self,0,0,0,0,30274); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30273,item2 = 30249}, 0)) then + e.self:Say("Yes. Exactly as I thought. Hrm. I'd keep this but you've done much work. You may be one of the filthy outlanders but you can keep it. You can save your thanks."); + e.other:QuestReward(e.self,{items = {30274,30249}}); -- Item: Blood Wolf Harness + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kael/a_gust_of_wind.lua b/kael/a_gust_of_wind.lua new file mode 100644 index 0000000..1af17cc --- /dev/null +++ b/kael/a_gust_of_wind.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 45, xloc + 45, yloc - 45, yloc + 45, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("blows through the cavern."); + eq.depop_with_timer(); +end diff --git a/kael/a_large_commoner.lua b/kael/a_large_commoner.lua new file mode 100644 index 0000000..386e289 --- /dev/null +++ b/kael/a_large_commoner.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Get out of my sight, " .. e.other:Race() .. "."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/a_lesser_storm_giant_noble.lua b/kael/a_lesser_storm_giant_noble.lua new file mode 100644 index 0000000..0a47fb2 --- /dev/null +++ b/kael/a_lesser_storm_giant_noble.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Get out of my sight! Your kind is ruining this city!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/a_priest_of_Tallon_Zek.lua b/kael/a_priest_of_Tallon_Zek.lua new file mode 100644 index 0000000..3b79519 --- /dev/null +++ b/kael/a_priest_of_Tallon_Zek.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("You enter the halls of the great Temple of Tallon Zek. Tread carefully here, little one."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/a_priest_of_Vallon_Zek.lua b/kael/a_priest_of_Vallon_Zek.lua new file mode 100644 index 0000000..a9395aa --- /dev/null +++ b/kael/a_priest_of_Vallon_Zek.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("You enter the halls of the great Temple of Vallon Zek. Tread carefully here, little one."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/a_storm_giant_berserker.lua b/kael/a_storm_giant_berserker.lua new file mode 100644 index 0000000..523b744 --- /dev/null +++ b/kael/a_storm_giant_berserker.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Emote("growls like a fierce animal."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/a_storm_giant_commoner.lua b/kael/a_storm_giant_commoner.lua new file mode 100644 index 0000000..95b4fd4 --- /dev/null +++ b/kael/a_storm_giant_commoner.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Emote("goes about his business, ignoring you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/a_storm_giant_gladiator.lua b/kael/a_storm_giant_gladiator.lua new file mode 100644 index 0000000..b41a717 --- /dev/null +++ b/kael/a_storm_giant_gladiator.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("I am here to make sure no one flees the arena as a coward."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end \ No newline at end of file diff --git a/kael/a_visiting_noble.lua b/kael/a_visiting_noble.lua new file mode 100644 index 0000000..d07e061 --- /dev/null +++ b/kael/a_visiting_noble.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("The court of King Tormax is often full of intrigue."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/encounters/plate_cycle.lua b/kael/encounters/plate_cycle.lua new file mode 100644 index 0000000..f0c9d07 --- /dev/null +++ b/kael/encounters/plate_cycle.lua @@ -0,0 +1,110 @@ +function DoldigunWaypoint(e) + if(e.wp == 7) then + eq.depop_with_timer(113486); -- depop sunuva (plate trigger) + end +end + +function Doldigun2Spawn(e) + e.self:SetRunning(true); +end + +function DoldigunSpawn(e) + eq.set_timer("depop",300000); +end + +function GrondonSpawn(e) + eq.set_timer("depop",300000); +end + +function KromzogSpawn(e) + eq.set_timer("depop",300000); +end + +function DoldigunCombat(e) + if(e.joined) then + eq.stop_timer("depop"); + eq.unique_spawn(113261,0,0,1170,-825,-116,177); -- NPC: Grondon_Zekkin + eq.unique_spawn(113262,0,0,1175,-856,-116,204); -- NPC: Kromzog_Zekkin + eq.depop(); + end +end + +function DoldigunTimer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(); + end +end + +function GrondonTimer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(); + end +end + +function GrondonCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function KromzogTimer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(); + end +end + +function KromzogCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function GrondonDeath(e) + eq.unique_spawn(113263,28,0,1133,-911,-116,0); -- NPC: Vinric_Thunderclap +end + +function KromzogDeath(e) + eq.unique_spawn(113264,29,0,1125,-768,-116,0); -- NPC: Zlirron_Windchill +end + +function ZlirronDeath(e) + eq.unique_spawn(113265,28,0,1133,-911,-116,0); -- NPC: Khalerogg_Dorfenbane +end + +function KhaleroggDeath(e) + eq.unique_spawn(113266,29,0,1125,-768,-116,0); -- NPC: Valorankt_Zekkin +end + +function ValoranktDeath(e) + eq.unique_spawn(113260,30,0,1143,-840,-126,0); -- NPC: #Doldigun_Steinwielder +end + +function event_encounter_load(e) + eq.register_npc_event("plate_cycle", Event.waypoint_arrive, 113260, DoldigunWaypoint); + eq.register_npc_event("plate_cycle", Event.spawn, 113260, Doldigun2Spawn); + eq.register_npc_event("plate_cycle", Event.spawn, 113249, DoldigunSpawn); + eq.register_npc_event("plate_cycle", Event.timer, 113249, DoldigunTimer); + eq.register_npc_event("plate_cycle", Event.combat, 113249, DoldigunCombat); + eq.register_npc_event("plate_cycle", Event.spawn, 113261, GrondonSpawn); + eq.register_npc_event("plate_cycle", Event.timer, 113261, GrondonTimer); + eq.register_npc_event("plate_cycle", Event.combat, 113261, GrondonCombat); + eq.register_npc_event("plate_cycle", Event.spawn, 113262, KromzogSpawn); + eq.register_npc_event("plate_cycle", Event.timer, 113262, KromzogTimer); + eq.register_npc_event("plate_cycle", Event.combat, 113262, KromzogCombat); + eq.register_npc_event("plate_cycle", Event.death_complete, 113261, GrondonDeath); + eq.register_npc_event("plate_cycle", Event.death_complete, 113262, KromzogDeath); + eq.register_npc_event("plate_cycle", Event.death_complete, 113264, ZlirronDeath); + eq.register_npc_event("plate_cycle", Event.death_complete, 113265, KhaleroggDeath); + eq.register_npc_event("plate_cycle", Event.death_complete, 113266, ValoranktDeath); +end diff --git a/kael/encounters/vindicator.lua b/kael/encounters/vindicator.lua new file mode 100644 index 0000000..cbf75cb --- /dev/null +++ b/kael/encounters/vindicator.lua @@ -0,0 +1,24 @@ +function VindiCombat(e) + if(e.joined)then + eq.signal(113120,1); -- NPC: a_temple_guardian + eq.signal(113352,1); -- NPC: a_temple_guardian + end +end + +function Temple1Signal(e) + if(e.signal == 1) then + eq.follow(eq.get_entity_list():GetMobByNpcTypeID(113118):GetID()); + end +end + +function Temple2Signal(e) + if(e.signal == 1) then + eq.follow(eq.get_entity_list():GetMobByNpcTypeID(113118):GetID(),5); + end +end + +function event_encounter_load(e) + eq.register_npc_event("vindicator", Event.combat, 113118, VindiCombat); + eq.register_npc_event("vindicator", Event.signal, 113120, Temple1Signal); + eq.register_npc_event("vindicator", Event.signal, 113352, Temple2Signal); +end diff --git a/kael/frost_giant_fisherman.lua b/kael/frost_giant_fisherman.lua new file mode 100644 index 0000000..4b54c1e --- /dev/null +++ b/kael/frost_giant_fisherman.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Emote("ignores you as he stares at the water."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/protector_of_Zek.lua b/kael/protector_of_Zek.lua new file mode 100644 index 0000000..a327844 --- /dev/null +++ b/kael/protector_of_Zek.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Emote("continues to stand guard."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/script_init.lua b/kael/script_init.lua new file mode 100644 index 0000000..72de22c --- /dev/null +++ b/kael/script_init.lua @@ -0,0 +1,2 @@ +eq.load_encounter("plate_cycle"); +eq.load_encounter("vindicator"); diff --git a/kael/storm_giant_general.lua b/kael/storm_giant_general.lua new file mode 100644 index 0000000..f87e16d --- /dev/null +++ b/kael/storm_giant_general.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("The fall of the Coldain and the dragons will some day come. We giants will stride this land as the chosen of Rallos Zek once more."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/kael/sunuva.lua b/kael/sunuva.lua new file mode 100644 index 0000000..9686398 --- /dev/null +++ b/kael/sunuva.lua @@ -0,0 +1,41 @@ +function event_spawn(e) + eq.set_timer("proxsay",2000); +end + + function event_timer(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 14, xloc + 20, yloc - 10, yloc + 10); + eq.enable_proximity_say(); + eq.stop_timer("proxsay"); + end + +function event_proximity_say(e) + local xloc = e.other:GetX(); + local yloc = e.other:GetY(); + local nxloc = e.self:GetX(); + local nyloc = e.self:GetY(); + local xdiff = xloc - nxloc; + local ydiff = yloc - nyloc; + if(e.message:findi("hail") and e.other:GetGM()) then -- debug only + e.self:Say("Your x is ".. xdiff .." and your y is " .. ydiff .." from me!"); + end + if(e.message:findi("the dain shall be slain for the peace we must obtain")) then + if(eq.get_entity_list():IsMobSpawnBySpawnID(337949) == false + and eq.get_entity_list():IsMobSpawnBySpawnID(337959) == false + and eq.get_entity_list():IsMobSpawnBySpawnID(337948) == false + and eq.get_entity_list():IsMobSpawnBySpawnID(337960) == false + and eq.get_entity_list():IsMobSpawnBySpawnID(337847) == false + and eq.get_entity_list():IsMobSpawnBySpawnID(337960) == false + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(113260) == false + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(113261) == false + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(113262) == false + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(113263) == false + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(113264) == false + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(113265) == false + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(113266) == false) then + eq.unique_spawn(113249,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + end + end +end diff --git a/kael/water.lua b/kael/water.lua new file mode 100644 index 0000000..2ad5bd9 --- /dev/null +++ b/kael/water.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 45, xloc + 45, yloc - 45, yloc + 45, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("drips from the stalactite to the stalagmite."); + eq.depop_with_timer(); +end diff --git a/kaesora/a_freed_soul.lua b/kaesora/a_freed_soul.lua new file mode 100644 index 0000000..bdcead9 --- /dev/null +++ b/kaesora/a_freed_soul.lua @@ -0,0 +1,27 @@ +-- on live it is a fire based aoe on death reported to be around 552 pts damage +-- exact spell is not specified. using Firebomb, fire based aoe - max damage 499 + +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_death(e) + if(math.random(100) < 75) then + e.self:CastSpell(1017, e.other:GetID()); -- fishnova + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaesora/a_tome_keeper.lua b/kaesora/a_tome_keeper.lua new file mode 100644 index 0000000..73d63e6 --- /dev/null +++ b/kaesora/a_tome_keeper.lua @@ -0,0 +1,23 @@ +--The tome keeper will give us one of a few possible tomes, chosen randomly, that will tell us how to proceed on the next part of the Shackle of Tynonnium quest. +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("shows awareness of you, but ignores you completely."); + elseif(e.message:findi("peace of mind")) then + e.self:Emote("begins to speak to you without movement of his rotted mouth, you realize his words are pouring into your mind. 'You seek peace of mind, and may you have it. First though, your Shackle of Steel. One Shackle for one tome.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4196})) then + e.self:Emote("drops a tattered tome at your feet and says nothing more. You pick it up and place it among your things."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(18359,18462,18463,18464,18465,18466,18467,18468,18469,18470)); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaesora/enraged_spectral_librarian.lua b/kaesora/enraged_spectral_librarian.lua new file mode 100644 index 0000000..cade9cb --- /dev/null +++ b/kaesora/enraged_spectral_librarian.lua @@ -0,0 +1,59 @@ +-- spawn 3 A Freed Soul on death +-- enchanter epic - Test of Charm + +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_death_complete(e) + free_spawn = math.random(2,6) + if(free_spawn < 3) then + eq.spawn2(88093,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(88093,0,0,e.self:GetX()+5,e.self:GetY()+5,e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + elseif(free_spawn == 3) then + eq.spawn2(88093,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(88093,0,0,e.self:GetX()+5,e.self:GetY()+5,e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(88093,0,0,e.self:GetX()-5,e.self:GetY()-5,e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + elseif(free_spawn == 4) then + eq.spawn2(88093,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(88093,0,0,e.self:GetX()+5,e.self:GetY()+5,e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(88093,0,0,e.self:GetX()-5,e.self:GetY()-5,e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(88093,0,0,e.self:GetX()+5,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + elseif(free_spawn == 5) then + eq.spawn2(88093,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(88093,0,0,e.self:GetX()-5,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(88093,0,0,e.self:GetX()+5,e.self:GetY()+5,e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(88093,0,0,e.self:GetX()-5,e.self:GetY()-5,e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(88093,0,0,e.self:GetX()+5,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + elseif(free_spawn > 5) then + eq.spawn2(88093,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(88093,0,0,e.self:GetX()-5,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(88093,0,0,e.self:GetX()+5,e.self:GetY()+5,e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(88093,0,0,e.self:GetX()-5,e.self:GetY()-5,e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(88093,0,0,e.self:GetX()+5,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(88093,0,0,e.self:GetX(),e.self:GetY()+5,e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + end +end + +function event_combat(e) + if(e.joined) then + eq.stop_timer("depop"); + else + eq.set_timer("depop",300000); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaesora/failed_crypt_raider.lua b/kaesora/failed_crypt_raider.lua new file mode 100644 index 0000000..03da93a --- /dev/null +++ b/kaesora/failed_crypt_raider.lua @@ -0,0 +1,15 @@ +--This is just some flavor text for the failed crypt raider, who holds one of the scrolls for the seventh Greenmist quest. +function event_death_complete(e) + e.self:Say("Never.. to feel the mist.. again.."); +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaesora/spectral_librarian.lua b/kaesora/spectral_librarian.lua new file mode 100644 index 0000000..d57ab93 --- /dev/null +++ b/kaesora/spectral_librarian.lua @@ -0,0 +1,17 @@ +-- Test of Charm - enchanter epic - Enchanted Diamond + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10631})) then + e.self:Say("You have no idea what it is like to be trapped in this place. Take your precious little stone and leave this place."); + e.other:QuestReward(e.self,0,0,0,0,10618); + eq.spawn2(88087,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaesora/tortured_librarian.lua b/kaesora/tortured_librarian.lua new file mode 100644 index 0000000..21e7d54 --- /dev/null +++ b/kaesora/tortured_librarian.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Bring to me that which was taken.") + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "All must be returned!"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18069, item2 = 18068},1,text1)) then + e.self:Emote("fades out of existence. The air smells of death. Something has appeared in your hand."); + eq.depop_with_timer(); + e.other:QuestReward(e.self,0,0,0,0,12889); + end + item_lib.return_items(e.self, e.other, e.trade) -- return unused items +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladima/Barrith_the_Brave.lua b/kaladima/Barrith_the_Brave.lua new file mode 100644 index 0000000..1d0cdf8 --- /dev/null +++ b/kaladima/Barrith_the_Brave.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Good day t'ye. " .. e.other:GetCleanName() .. "! 'Tis sure good t'see ye here. I've been doin' a bit of thinkin' about the past. Ah yes. me past t'would surprise even ye. Alas. I cannae dwell on it now. I am Barrith the Brave. I must be searchin' for a hero worthy of havin' the eyes of the gods upon them."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladima/Beno_Targnarle.lua b/kaladima/Beno_Targnarle.lua new file mode 100644 index 0000000..9a9c94e --- /dev/null +++ b/kaladima/Beno_Targnarle.lua @@ -0,0 +1,98 @@ +function event_say(e) + local shifty = "Your shifty eyes tell me that you are no ally of the Stormguard."; + local prove = "Prove yourself to the Stormguard and then we shall talk. Perhaps you may assist Master Canloe and show your worth to us."; + if(e.message:findi("hail")) then + e.self:Say("Step forth, young " .. e.other:GetCleanName() .. "! I heard that you have come of age! The spirit of adventure has entered your body. That is good. Go and speak with the others. They shall help you. I am afraid I have no time to spend conversing. There is much I have to [ponder]."); + elseif(e.message:findi("ponder")) then + if(e.other:GetFaction(e.self) < 5) then + e.self:Say("Must you know everyone's business? Hmm.. Maybe you can be of assistance. You see, I have been instructed by Furtog to tend to a matter of extreme urgency, which is keeping me from clearing the mines of rats. Will you assist and [exterminate the rats]?"); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say(prove); + else + e.self:Say(shifty); + end + elseif(e.message:findi("exterminate")) then + if(e.other:GetFaction(e.self) < 5) then + e.self:Say("Very good! I shall reward you for every four giant rat pelts returned to me. And be on the lookout for a [metal rat]!"); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say(prove); + else + e.self:Say(shifty); + end + elseif(e.message:findi("metal")) then + if(e.other:GetFaction(e.self) < 5) then + e.self:Say("I cannot tell you how many reports I have heard of metal rats in Kaladim. I first thought it was a vision obtained from having too many Tumpy Tonics, but Furtog himself is said to have seen them. If you ever catch sight of the little metal beast, give chase!! Return its metal carcass to me and I shall reward you."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say(prove); + else + e.self:Say(shifty); + end + elseif(e.message:findi("matter")) then + if(e.other:GetFaction(e.self) < 5) then + e.self:Say("I am apprehensive about sending one who is so young out into the world, but I have a good feeling about you, " .. e.other:GetCleanName() .. ". Someone has stolen the [Eye of Stormhammer]. You must journey to Antonica and go to a place called Highpass Hold. The rogue who has it is locked up in the prison. We have arranged for his extradition to Kaladim. Please give the jail clerk this note of release."); + e.other:SummonCursorItem(18935); -- Sealed Note + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say(prove); + else + e.self:Say(shifty); + end + elseif(e.message:findi("eye")) then + if(e.other:GetFaction(e.self) < 6) then + e.self:Say("The great statue of Kazon Stormhammer was once encrusted with two great gems from the mines of Butcherblock. So big were they that it took the magic of the high elves to assist us in lifting them to the statue's face. In the year 2995, somehow, someone stole one of the eyes. We decided to keep the remaining eye in the vault. Now, even that has been stolen from us! Only the most trusted warriors may be involved in this [important Stormguard matter]."); + else + e.self:Say(shifty); + end + elseif(e.message:findi("doran")) then + if(e.other:GetFaction(e.self) < 6) then + e.self:Say("Doran resides on an island in the Ocean of Tears. The island is filled with beautiful maidens. I could think of worse places to live."); + else + e.self:Say(shifty); + end + elseif(e.message:findi("irontoe")) then + e.self:Say("The Irontoe Brigade was formed by Drumpy Irontoe. It was once the finest band of warriors in Kaladim. They were the elite branch of the Stormguard. King Kazon sent them on a mission to the lands of the Crushbone orcs. At the Battle of Busted Skull they met their fate."); + elseif(e.message:findi("tumpy")) then + e.self:Say("If you frequent the pubs, you just may run into Tumpy Irontoe. He was once the brave leader of the Irontoe Brigade. Whatever you do, do not mention the Battle of Busted Skull. I am sure that would bring back some bad memories for him."); + elseif(e.message:findi("trondle")) then + e.self:Say("Trondle Ogrebane is the legendary dwarven warrior who single-handedly exterminated the ogre clan called the [Mudtoes]. He was recently killed in battle. It took an entire legion of Crushbone orcs to bring him down. Furtog is still fuming about that."); + elseif(e.message:findi("mudtoes")) then + e.self:Say("The Mudtoes were a small clan of ogres. They lived somewhere in the Butcherblock Mountains. They had an insatiable appetite for dwarves. They were finally destroyed by the hand of Trondle Ogrebane."); + elseif(e.message:findi("crushbone orc")) then + e.self:Say("The army of the Crushbone orcs is deadly indeed. They are great military strategists. It was a legion of them that brought down the great [Trondle Ogrebane]. Speak with Furtog Ogrebane about the Crushbones. He has need of warriors such as you."); + elseif(e.message:findi("battle of busted skull")) then + e.self:Say("The Battle of Busted Skull was fought in the land of the Crushbone orcs. King Kazon sent the entire Irontoe Brigade to retrieve an ancient artifact from an old dwarven outpost. The battle was fierce. At its end, only a handful of Irontoes made it back. After that, the Irontoe Brigade survivors left Kaladim for good. All except Tumpy Irontoe."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local temphandins = 0; + local text = "Good work, but I require four giant rat pelts."; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13054, item2 = 13054, item3 = 13054, item4 = 13054},1,text)) then -- Giant Rat Pelt + e.self:Say("Great work, young one! We shall soon rid our mines of these pests. Keep a lookout for that [metal rat]. Here is a small reward for such fine work. Soon, you shall be know as Kaladim's resident exterminator."); + e.other:Faction(e.self,312, 10); -- Storm Guard + e.other:Faction(e.self,274, 1); -- Kazon Stormhammer + e.other:Faction(e.self,293, 1); -- Miner's Guild 249 + e.other:Faction(e.self,290, 2); -- Merchants of Kaladim + e.other:Faction(e.self,232, -2); -- Craknek Warriors + e.other:QuestReward(e.self,0,math.random(5),0,0,0,eq.ChooseRandom(13036,1051,13003,13002,10015,13009),500); + elseif((e.other:GetFaction(e.self) < 5) and (item_lib.check_turn_in(e.self, e.trade, {item1 = 13282}))) then -- Scrap Metal + e.self:Say("I thank you, my friend. I was to destroy this metal monster months ago. I could never find him. Please accept this reward for such good service. Oh yes.. And take this card to a man named [Doran Vargnus]. He is a fine blacksmith. I am sure he will reward you with one of his finest suits of armor. Perhaps you may now assist in an [important Stormguard matter]."); + e.other:Faction(e.self,312, 20); -- Storm Guard + e.other:Faction(e.self,274, 5); -- Kazon Stormhammer + e.other:Faction(e.self,293, 3); -- Miner's Guild 249 + e.other:Faction(e.self,290, 5); -- Merchants of Kaladim + e.other:Faction(e.self,232, -5); -- Craknek Warriors + e.other:QuestReward(e.self,math.random(5),0,0,0,13995,500); -- Knight (Card) + elseif((e.other:GetFaction(e.self) < 5) and (item_lib.check_turn_in(e.self, e.trade, {item1 = 13321}))) then -- Eye of Stormhammer + --Quest text, exp, cash, factions made up + e.self:Say("You've found it! I'm glad you managed to hunt down and return the stolen eye for us, " .. e.other:GetCleanName() .. ". Such effort requires a similar reward so take this and use it well."); + e.other:Faction(e.self,312, 20); -- Storm Guard + e.other:Faction(e.self,274, 5); -- Kazon Stormhammer + e.other:Faction(e.self,293, 3); -- Miner's Guild 249 + e.other:Faction(e.self,290, 5); -- Merchants of Kaladim + e.other:Faction(e.self,232, -5); -- Craknek Warriors + e.other:QuestReward(e.self,math.random(5),0,0,0,5415,5000); -- Avenger Battle Axe + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kaladima/Bronlor_Lightblade.lua b/kaladima/Bronlor_Lightblade.lua new file mode 100644 index 0000000..927dc09 --- /dev/null +++ b/kaladima/Bronlor_Lightblade.lua @@ -0,0 +1,41 @@ +function event_say(e) + if(e.message:findi("hail")) then + -- Initiate Symbol of Brell Serilis (Start) + e.self:Say("Allo dere " .. e.other:GetCleanName() .. ", how does ye fare today? Are ye a [priest] of the great Brell Serilis? If ye are not I mean nothing against yar but I am on a mission to administer guidance to a holy priest of milord Brell Serilis."); + elseif(e.message:findi("priest")) then + -- Initiate Symbol of Brell Serilis + e.self:Say("Well now were talkin " .. e.other:GetCleanName() .. ". I think if ye have been doing well in your training then ye will be ready to assist me in with the problem we been havin with those dern good fer nothin [green rascals]."); + elseif(e.message:findi("green rascals")) then + -- Initiate Symbol of Brell Serilis + e.self:Say("Well of course I be talkin bout dose goblins that have tried to storm our front gates fer some time. I reckon dey are up to no good sense I hear dey just be a few from a well trained horde of goblin invaders that are planning an attack me thinks. Will ye [help] us in finding and slaying these goblins?"); + elseif(e.message:findi("help")) then + -- Initiate Symbol of Brell Serilis + e.self:Say("Dats great to here " .. e.other:GetCleanName() .. "! To prove to me that you have found and slain these beasts bring four sets of the beads that dey carry around their necks. I dont know much about dem but Id reckon dey have set up camp close by here. The night watch that haulted the first attack by these goblins described the fighting style to be of the highest goblin caliber. I hope this helps, good luck to ye."); + elseif(e.message:findi("task")) then + -- Disciple Symbol of Brell Serilis (Start) + e.self:Say("Ah ye are ready fer yer task are ya " .. e.other:GetCleanName() .. ". I must say dat I am quite impressed with the excellent job dat ya did taking care of those strong goblins. Ok well ye came for yer task so here it tis. I need to get this note to me friend Taldrik, however he has told me that he was heading to the Oasis that is finest in norrath for sum relaxin time. Although I would love to go myself but Im afraid I hab many duties to uphold here. Will you [deliver] my note to Taldrik?"); + elseif(e.message:findi("deliver")) then + -- Disciple Symbol of Brell Serilis + e.self:Say("Fantastic " .. e.other:GetCleanName() .. "! I knew that ye would be able to help me. Please take this note to Taldrik, whereber he may be and be sure to give him his favorite [drinks] or he may be very grumpy."); + -- Summon: a note to Taldrik + e.other:SummonCursorItem(2429); -- Item: A Note To Taldrik + elseif(e.message:findi("drinks")) then + -- Disciple Symbol of Brell Serilis + e.self:Say("Oh yes of course. Taldriks favorites if I can remembur correctly be Elven wine, Freeport stout, and of course Dwarven ale! Bring these drinks to him with your note and after ye tell him you are sent from muh to continue your training im shure he will warm up to ye fer sure."); + end +end + +function event_trade(e) + local item_lib = require("items"); + -- Handin: Enraged Goblin Beads + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2396, item2 = 2396, item3 = 2396, item4 = 2396})) then + -- Initiate Symbol of Brell Serilis (End) + e.self:Say("I knew I was able to trust ye to help me rid the land of these nasty goblins! The Bloodforge Brigade salutes ye " .. e.other:GetCleanName() .. ". Ye will be well known in our city for being the young one that helped rid our mountains of these goblins. Please take this as a symbol of your devotion to your faith and your God and return to me when ye are ready for yer next [task]."); + e.other:Faction(e.self,227,5); -- +Clerics of Underfoot + e.other:Faction(e.self,274,5); -- +Kazon Stormhammer + e.other:Faction(e.self,293,3); -- +Miners Guild 249 + e.other:QuestReward(e.self,0,0,0,0,1430,25); -- Item: Initiate Symbol of Brell Serilis + + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kaladima/Byzar_Bloodforge.lua b/kaladima/Byzar_Bloodforge.lua new file mode 100644 index 0000000..86be425 --- /dev/null +++ b/kaladima/Byzar_Bloodforge.lua @@ -0,0 +1,64 @@ +--NPC: Byzar_Bloodforge --Zone: kaladima +--modified by Qadar + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("State your business!! I have no time for chitchat. Well.. speak up. toad!! What?!!.. Have you come here to [return goblin beads]?"); + elseif(e.message:findi("return goblin beads")) then + e.self:Say("If you wish to return Runnyeye Warbeads you best have at least four of them. Do not waste my time with any less. If I am in a good mood I just may reward you with some trash, err.. I mean equipment from our armory."); + elseif(e.message:findi("Zarchoomi") or e.message:findi("Corflunk")) then + e.self:Say("Do not speak the names of Zarchoomi and Corflunk!! I have heard enough of those ogres!! I would pay greatly for their heads!!"); + elseif(e.message:findi("take a little trip")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Yes. You will do. My sister was once engaged to a fellow warrior. He disgraced her and left her crying at the altar. I will have his head for such a slap in the face of my family. His name was Trumpy Irontoe, once a member of the now defunct Irontoe Brigade. I know not where he went. Find his whereabouts and return his head to me. Do so, and I shall make you an honorary member of the Bloodforge Brigade."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("Prove yourself to the Stormguard and then we shall talk. Perhaps you may assist Master Canloe and show your worth to us."); + else + e.self:Say("Your shifty eyes tell me that you are no ally of the Stormguard.") + end + elseif(e.message:findi("irontoe")) then + e.self:Say("The Irontoe Brigade was formed by Drumpy Irontoe. It was once the finest band of warriors in Kaladim. They were the elite branch of the Stormguard. King Kazon sent them on a mission to the lands of the Crushbone orcs. At the Battle of Busted Skull they met their fate."); + elseif(e.message:findi("tumpy")) then + e.self:Say("If you frequent the pubs, you just may run into Tumpy Irontoe. He was once the brave leader of the Irontoe Brigade. Whatever you do, do not mention the Battle of Busted Skull. I am sure that would bring back some bad memories for him."); + elseif(e.message:findi("trondle")) then + e.self:Say("Trondle Ogrebane is the legendary dwarven warrior who single-handedly exterminated the ogre clan called the [Mudtoes]. He was recently killed in battle. It took an entire legion of Crushbone orcs to bring him down. Furtog is still fuming about that."); + elseif(e.message:findi("mudtoes")) then + e.self:Say("The Mudtoes were a small clan of ogres. They lived somewhere in the Butcherblock Mountains. They had an insatiable appetite for dwarves. They were finally destroyed by the hand of Trondle Ogrebane."); + elseif(e.message:findi("crushbone orc")) then + e.self:Say("The army of the Crushbone orcs is deadly indeed. They are great military strategists. It was a legion of them that brought down the great [Trondle Ogrebane]. Speak with Furtog Ogrebane about the Crushbones. He has need of warriors such as you."); + elseif(e.message:findi("battle of busted skull")) then + e.self:Say("The Battle of Busted Skull was fought in the land of the Crushbone orcs. King Kazon sent the entire Irontoe Brigade to retrieve an ancient artifact from an old dwarven outpost. The battle was fierce. At its end, only a handful of Irontoes made it back. After that, the Irontoe Brigade survivors left Kaladim for good. All except Tumpy Irontoe."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "What good is one?! I called for the heads of both Corflunk and Zarchoomi!"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13931, item2 = 13931, item3 = 13931, item4 = 13931})) then + e.self:Say("You finally have proven yourself a warrior, a slow one!! Take this reward and ask for nothing else. You should be proud to defend Kaladim and expect no reward."); + e.other:Faction(e.self,312,5); -- StormGuard better + e.other:Faction(e.self,274,1); -- KazonStormhammer better + e.other:Faction(e.self,293,1); -- MinersGuild249 better + e.other:Faction(e.self,290,1); -- MerchantsOfKaladim better + e.other:Faction(e.self,232,-1); -- CraknekWarriors worse + e.other:QuestReward(e.self,math.random(10),math.random(5),math.random(5),0,eq.ChooseRandom(2113,2114,2115,2116,2117,2118,2119,2120,2121,2122),1000); -- Item(s): Small Tattered Skullcap (2113), Small Tattered Mask (2114), Small Tattered Gorget (2115), Small Tattered Shoulderpads (2117), Small Tattered Belt (2119), Small Tattered Wristbands (2121), Small Tattered Gloves (2122) + elseif(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13741, item2 = 13740},1,text)) then + e.self:Say("I underestimated you. You are truly a great warrior. I reward you with a piece of my own Bloodforge armor. You would be fine Bloodforge Brigade material! How would you like to [take a little trip] in the name of the Bloodforge Brigade?"); + e.other:Faction(e.self,312,20); -- StormGuard better + e.other:Faction(e.self,274,3); -- KazonStormhammer better + e.other:Faction(e.self,293,3); -- MinersGuild249 better + e.other:Faction(e.self,290,5); -- MerchantsOfKaladim better + e.other:Faction(e.self,232,-5); -- CraknekWarriors worse + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(3090,3091,3092,3093,3094,3095,3096),1000); -- Item(s): Bloodforge Helm (3090), Bloodforge Helm (3090), Bloodforge Helm (3090), Bloodforge Helm (3090), Bloodforge Helm (3090), Bloodforge Helm (3090), Bloodforge Mail (3091), Bloodforge Armplates (3092), Bloodforge Bracers (3093), Bloodforge Gauntlets (3094), Bloodforge Legplates (3095), Bloodforge Boots (3096) + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12136})) then + e.self:Say("Ha!! His death brings me great happiness. I owe you much. Take this hammer. It is the hammer of the Bloodforge Brigade. May it serve you well. Now go, so I can enjoy this moment of happiness alone."); + e.other:Faction(e.self,312,5); -- StormGuard better + e.other:Faction(e.self,274,1); -- KazonStormhammer better + e.other:Faction(e.self,293,1); -- MinersGuild249 better + e.other:Faction(e.self,290,1); -- MerchantsOfKaladim better + e.other:Faction(e.self,232,-1); -- CraknekWarriors worse + e.other:QuestReward(e.self,0,0,0,0,13314,10000); -- Item: Bloodforge Hammer + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kaladima/Canloe_Nusback.lua b/kaladima/Canloe_Nusback.lua new file mode 100644 index 0000000..b93c7f0 --- /dev/null +++ b/kaladima/Canloe_Nusback.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Step forward and speak up, young " .. e.other:GetCleanName() .. "! Kaladim can always use another warrior. Are you [ready to serve Kaladim] or has a yellow streak appeared down your back?"); + elseif(e.message:findi("ready to serve kaladim")) then + e.self:Say("Then serve you shall. Let your training begin on the battlefields of Faydwer. Seek out and destroy all [Crushbone orcs]. Return their belts to me. I shall also reward you for every two orc legionnaire shoulder pads returned. A warrior great enough to slay one legionnaire shall surely have no problem with another. Go. and let the cleansing of Faydwer begin."); + elseif(e.message:findi("crushbone orcs")) then + e.self:Say("The army of the Crushbone orcs is deadly indeed. They are great military strategists. It was a legion of them that brought down the great [Trondle Ogrebane]. Speak with Furtog Ogrebane about the Crushbones. He has need of warriors such as you."); + elseif(e.message:findi("trondle")) then + e.self:Say("Trondle Ogrebane is the legary dwarven warrior who single-handedly exterminated the ogre clan called the [Mudtoes]. He was recently killed in battle. It took an entire legion of Crushbone orcs to bring him down. Furtog is still fuming about that."); + elseif(e.message:findi("mudtoes")) then + e.self:Say("The Mudtoes were a small clan of ogres. They lived somewhere in the Butcherblock Mountains. They had an insatiable appetite for dwarves. They were finally destroyed by the hand of Trondle Ogrebane."); + elseif(e.message:findi("irontoe")) then + e.self:Say("The Irontoe Brigade was formed by Drumpy Irontoe. It was once the finest band of warriors in Kaladim. They were the elite branch of the Stormguard. King Kazon sent them on a mission to the lands of the Crushbone orcs. At the Battle of Busted Skull they met their fate."); + elseif(e.message:findi("tumpy")) then + e.self:Say("If you frequent the pubs, you just may run into Tumpy Irontoe. He was once the brave leader of the Irontoe Brigade. Whatever you do, do not mention the Battle of Busted Skull. I am sure that would bring back some bad memories for him."); + elseif(e.message:findi("battle of busted skull")) then + e.self:Say("The Battle of Busted Skull was fought in the land of the Crushbone orcs. King Kazon sent the entire Irontoe Brigade to retrieve an ancient artifact from an old dwarven outpost. The battle was fierce. At its end, only a handful of Irontoes made it back. After that, the Irontoe Brigade survivors left Kaladim for good. All except Tumpy Irontoe."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + -- experience reward verified from live packet for both shoulder and belt + local belt = item_lib.count_handed_item(e.self, e.trade, {13318}); + local shoulder = item_lib.count_handed_item(e.self, e.trade, {13319}, 2); + local text = "Yes, yes!! You have slain one legionnaire, but I reward for proof of two. Certainly you do not find another battle with the legionnaires difficult!!"; + + if(belt > 0) then + repeat + e.self:Say("Good work, warrior! Now continue with your training. Only on the battlefield can one become a great warrior."); + e.other:Faction(e.self,312,10); -- Storm Guard + e.other:Faction(e.self,274,1); -- Kazon Stormhammer + e.other:Faction(e.self,293,2); -- Miners Guild 249 + e.other:Faction(e.self,290,1); -- Merchants of Kaladim + e.other:Faction(e.self,232,-2); -- Craknek Warriors + e.other:QuestReward(e.self,0,eq.ChooseRandom(5,6,7,8,9,10,11,12,13,14,15),0,0,eq.ChooseRandom(9009,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124),4600); + belt = belt - 1; + until belt == 0 + end + + if(shoulder > 0) then + repeat + e.self:Say("Aha!! You have downed a Crushbone legionnaire!! You have shown yourself to be a strong warrior. Take this. This is more becoming of a great warrior such as yourself. Let no creature stand in the way of the Stormguard!"); + e.other:Faction(e.self,312,15); -- Storm Guard + e.other:Faction(e.self,274,2); -- Kazon Stormhammer + e.other:Faction(e.self,293,2); -- Miners Guild 249 + e.other:Faction(e.self,290,3); -- Merchants of Kaladim + e.other:Faction(e.self,232,-3); -- Craknek Warriors + e.other:QuestReward(e.self,0,0,4,0,10017,29400); + shoulder = shoulder - 1; + until shoulder == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- revised by robregen. +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladima/Dirjadak_Barbrawler.lua b/kaladima/Dirjadak_Barbrawler.lua new file mode 100644 index 0000000..9fc3dbf --- /dev/null +++ b/kaladima/Dirjadak_Barbrawler.lua @@ -0,0 +1,58 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail to ye too " .. e.other:GetCleanName() .. ", what brings ye to Kaladim`s hall of champions? I am Dirjadak Barbrawler and its gud to meet ye. I pride myself on being one of the finest Warlords to have ever served in Brells Army. However, my days nowadays aren't all that exciting. I just spend me time training young ones that are born into the life of a Kaladim Champion. If you are a young [warrior] of Brell I might have some work for you."); + elseif(e.message:findi("warrior")) then + e.self:Say("Excellent " .. e.other:GetCleanName() .. ", you must surely have been sent to me to begin yer training then. Aye? If you are [interested] in beginning yer training as a Champion of Kaladim I will be happy to present you with yer instructions for crafting yer own set of Axebringers Platemail Armor."); + elseif(e.message:findi("interested")) then + e.self:Say("Dats great to here dere young one. First and foremost you will need dis Dusty Mail Assembly Kit to combine all the various items that you will need to collect from different parts of the Butcherblock Mountains and in our great city of Kaladim. As you collect specific items from yer surroundings, you will use them in certain quantities in this kit to create armor materials that will then be placed in a forge with armor molds to fashion yer armor. Once you are [ready] to begin collecting the supplies for yer materials I will be happy to supply you with the necessary material recipes and molds to craft yer armor."); + -- Summon: Dusty Mail Assembly Kit + e.other:SummonCursorItem(17247); -- Item: Dusty Mail Assembly Kit + elseif(e.message:findi("ready")) then + e.self:Say("Glad to ere that I am indeed Aye! When you have decided what armor piece you would like to collect please simply tell me what piece it is that you want to craft and I will supply you material recipe and mold necessary for crafting Axebringers Platemail [Helm], [Bracer], [Armguards], [Boots], [Greaves], [Gauntlets], and [Breastplate]."); + elseif(e.message:findi("armguards")) then + e.self:Say("To create yer armguards material you will need to combine 2 Bricks of Crude Bronze, 2 Giant Scarab Claw, and 1 Torch in yer assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion yer very own Armguards of the Axebringer."); + -- Summon: Crude Vambraces Mold + e.other:SummonCursorItem(19635); -- Item: Crude Vambrace Mold + elseif(e.message:findi("boots")) then + e.self:Say("To create yer boots material you will need to combine 3 Bricks of Crude Bronze, 1 Skunk Eye and 1 Water Flask in yer assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion yer very own Boots of the Axebringer."); + -- Summon: Crude Boots Mold + e.other:SummonCursorItem(19634); -- Item: Crude Boot Mold + elseif(e.message:findi("bracer")) then + e.self:Say("To create yer bracer material you will need to combine 1 Bricks of Crude Bronze, 1 Scarab Carapace, 1 Giant Bat Fur and 1 White Wine in yer assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion yer very own Bracer of the Axebringer."); + -- Summon: Crude Bracer Mold + e.other:SummonCursorItem(19632); -- Item: Crude Bracer Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("To create yer breastplate material you will need to combine 5 Bricks of Crude Bronze, 1 Glyndas Tongue, 1 Pristine Forest Drakeling Scale, 1 Golden Bandit Tooth, 1 Goblin Brain and 1 Aqua Goblin Headdress in yer assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion yer very own Breastplate of the Axebringer. I would also like to see you after you have completed yer breastplate because I have a final [favor] to ask of ye."); + -- Summon: Crude Breastplate Mold + e.other:SummonCursorItem(19637); -- Item: Crude Breastplate Mold + elseif(e.message:findi("gauntlets")) then + e.self:Say("To create yer gauntlets material you will need to combine 3 Bricks of Crude Bronze, 1 Chunk of Meat, 1 Giant Scarab Eye, and 1 Cracked Giant Scarab Carapace in yer assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion yer very own Gauntlets of the Axebringer."); + -- Summon: Crude Gauntlets Mold + e.other:SummonCursorItem(19633); -- Item: Crude Gauntlets Mold + elseif(e.message:findi("greaves")) then + e.self:Say("To create yer greaves material you will need to combine 4 Bricks of Crude Bronze, 1 Skunk Scent Gland , 1 Giant Scarab Egg Sack and 1 Small Lantern in yer assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion yer very own Greaves of the Axebringer."); + -- Summon: Crude Greaves Mold + e.other:SummonCursorItem(19636); -- Item: Crude Greaves Mold + elseif(e.message:findi("helm")) then + e.self:Say("To create yer helm material you will need to combine 2 Bricks of Crude Bronze, 1 Aviak Chick Talon, 1 Spider Leg and 1 Fishing Bait in yer assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion yer very own Helm of the Axebringer."); + -- Summon: Crude Helm Mold + e.other:SummonCursorItem(19631); -- Item: Crude Helm Mold + elseif(e.message:findi("favor")) then + e.self:Say("Well ya see young one, I am a dwarf and I like me Ale. But there is one thing that I like more then my Ale and that's me mug! While out in the mountains late one evening not too long ago I had a few too many then I should have me wife says. Har har. Anyways, when me woke up da next morning me mug was gone so I had to have lost it out there somewhere. If you should find my mug and were able to return it to me intact or not I would be very grateful! Return my mug to me along with 2 Pristine Krag Claws and I will reward you with a blade worthy of Brells finest battlemaster. Now git going!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28064, item2 = 28064, item3 = 28063})) then + e.self:Say("Here is that blade I promised you " .. e.other:GetCleanName() .. "."); + -- Summon: Gem-Etched Battle Axe + e.other:QuestReward(e.self,{itemid = 26076}); -- Item: Gem-Etched Battle Axe + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladima/Furtog_Ogrebane.lua b/kaladima/Furtog_Ogrebane.lua new file mode 100644 index 0000000..00f8745 --- /dev/null +++ b/kaladima/Furtog_Ogrebane.lua @@ -0,0 +1,44 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, mighty " .. e.other:GetCleanName() .. "! Welcome to Stormguard Hall. I am Captain Furtog Ogrebane, only surviving descendant of the legendary Trondle Ogrebane, slayer of the [Mudtoes]. If you wish to serve the grand city of Kaladim. I urge you to speak with any of the trainers. Good day."); + elseif(e.message:findi("mudtoes") and not e.message:findi("searching")) then + e.self:Say("The Mudtoes were a small but mighty clan of ogres. My great father [Trondle] destroyed them. I have heard disturbing rumors of one Mudtoe surviving. Would you mind [searching for the Mudtoes] or have you other duties to perform?"); + elseif(e.message:findi("trondle")) then + e.self:Say("Trondle was my great father and slayer of the Mudtoes. He was killed by those vile Crushbone orcs. If you truly wish to help Kaladim remain safe. speak with trainer Canloe Nusback. Say that you are ready to serve Kaladim."); + elseif(e.message:findi("searching")) then + e.self:Say("I have heard persistent rumors of two Mudtoe ogres who survived the slaughter. Go to the port of Butcherblock. Those dock hands must have heard of the name [Mudtoe]. Bring me the remaining heads of the Mudtoes!! I want all the Mudtoes dead!! Do not return until you have them both!!"); + elseif(e.message:findi("irontoe")) then + e.self:Say("The Irontoe Brigade was formed by Drumpy Irontoe. It was once the finest band of warriors in Kaladim. They were the elite branch of the Stormguard. King Kazon sent them on a mission to the lands of the Crushbone orcs. At the Battle of Busted Skull they met their fate."); + elseif(e.message:findi("tumpy")) then + e.self:Say("If you frequent the pubs, you just may run into Tumpy Irontoe. He was once the brave leader of the Irontoe Brigade. Whatever you do, do not mention the Battle of Busted Skull. I am sure that would bring back some bad memories for him."); + elseif(e.message:findi("crushbone orc")) then + e.self:Say("The army of the Crushbone orcs is deadly indeed. They are great military strategists. It was a legion of them that brought down the great [Trondle Ogrebane]. Speak with Furtog Ogrebane about the Crushbones. He has need of warriors such as you."); + elseif(e.message:findi("battle of busted skull")) then + e.self:Say("The Battle of Busted Skull was fought in the land of the Crushbone orcs. King Kazon sent the entire Irontoe Brigade to retrieve an ancient artifact from an old dwarven outpost. The battle was fierce. At its end, only a handful of Irontoes made it back. After that, the Irontoe Brigade survivors left Kaladim for good. All except Tumpy Irontoe."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "There is another! I have reports that there were two Mudtoe ogres on the island chain in the Ocean of Tears. I want both heads!"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18766})) then -- Recruitment Letter + e.self:Say("Greetings, friend, and welcome to Stormguard Hall! I am Furtog Ogrebane, Captain of the Guard. We shall train you to be a fearless warrior, who will serve and protect King Kazon well. Here is your tunic. Now, let's begin your training."); + e.other:Faction(e.self,312,100); -- Storm Guard + e.other:Faction(e.self,274,15); -- Kazon Stormhammer + e.other:Faction(e.self,293,15); -- Miners Guild 249 + e.other:Faction(e.self,290,25); -- Merchants of Kaladim + e.other:Faction(e.self,232,-25); -- Craknek Warriors + e.other:QuestReward(e.self,0,0,0,0,13515,20); -- Dirt Stained Tunic* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13316, item2 = 13317},1,text)) then -- Ogre Heads + e.self:Say("Finally my great father's work has been completed. All the Mudtoe ogres have been exterminated. Thank you. Take this weapon which my father pried from the cold, dead hands of the Mudtoe ogre captain. It is called an ogre war maul. May you wield it with honor in the name of Kaladim."); + -- confirmed live factions + e.other:Faction(e.self,312, 50); -- Storm Guard + e.other:Faction(e.self,274, 7); -- Kazon Stormhammer + e.other:Faction(e.self,293, 7); -- Miners Guild 249 + e.other:Faction(e.self,290, 12); -- Merchants of Kaladim + e.other:Faction(e.self,232, -12); -- Craknek Warriors + e.other:QuestReward(e.self,0,math.random(10), math.random(10), math.random(3),6302,250); -- Ogre War Maul + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kaladima/Gretta_Mottle.lua b/kaladima/Gretta_Mottle.lua new file mode 100644 index 0000000..0abca2d --- /dev/null +++ b/kaladima/Gretta_Mottle.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings. " .. e.other:GetCleanName() .. ". I'm Gretta Mottle. Tumpy has been kind enough to let me to set up my bakery in his fine establishment here. Unfortunately, with that nasty plague corruptin' the crops in the Plains of Karana, things are goin' a bit slow for me. I keep runnin' out of bread and muffins to sell. Because of flour bein' easily spoiled now, it takes longer to make 'em just right. My assistant Buggle is still learnin' how to cook. Hehe.. All he can make is Meat Pie. If I don't get any [help to bake] soon I won't be able to keep the supply up with the demand."); + elseif(e.message:findi("what help to bake")) then + e.self:Say("Glad to hear it. Are ye thinkin' of helpin' me to [bake muffins] or did ye want to [fetch some bread] for me?"); + elseif(e.message:findi("what bake muffins")) then + e.self:Say("Ah. if ye want to help me with the bakin"); + elseif(e.message:findi("what fetch some bread")) then + e.self:Say("The only one who can make bread almost as good as I can is Jarlen Meadowgreen. He lives a long way off though.. in the southern Plains of Karana. If ye travel there, tell him that you are there to pick up some bread loaves for me."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Emote("smells the aroma in the air and says, 'Mmm... Mmm... That sure smells good. You truly are a fine baker. Here, take this payment for such fine bakin.'"); + e.other:Faction(e.self,290,2); --Merchants of Kaladim + e.other:Faction(e.self,312,1); --Storm Guard + e.other:Faction(e.self,322,-1); --Miners Guild 628 + e.other:Faction(e.self,293,1); --Miners Guild 249 + e.other:Faction(e.self,274,1); --Kazon Stormhammer + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("Well now, what do we have here? You actually went out of your way to fetch bread for me? Thank ye so kindly. Please accept this payment for your service."); + e.other:Faction(e.self,290,4); --Merchants of Kaladim + e.other:Faction(e.self,312,1); --Storm Guard + e.other:Faction(e.self,322,-1); --Miners Guild 628 + e.other:Faction(e.self,293,1); --Miners Guild 249 + e.other:Faction(e.self,274,1); --Kazon Stormhammer + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/kaladima/Guard_Adolar.lua b/kaladima/Guard_Adolar.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladima/Guard_Adolar.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladima/Guard_Adolmer.lua b/kaladima/Guard_Adolmer.lua new file mode 100644 index 0000000..597cc28 --- /dev/null +++ b/kaladima/Guard_Adolmer.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 4) then + e.self:DoAnim(36); --kneel + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladima/Guard_Anathur.lua b/kaladima/Guard_Anathur.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladima/Guard_Anathur.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladima/Guard_Badmer.lua b/kaladima/Guard_Badmer.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladima/Guard_Badmer.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladima/Guard_Bobbin.lua b/kaladima/Guard_Bobbin.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladima/Guard_Bobbin.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladima/Guard_Cardaff.lua b/kaladima/Guard_Cardaff.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladima/Guard_Cardaff.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladima/Guard_Didek.lua b/kaladima/Guard_Didek.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladima/Guard_Didek.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladima/Guard_Dinamin.lua b/kaladima/Guard_Dinamin.lua new file mode 100644 index 0000000..c640105 --- /dev/null +++ b/kaladima/Guard_Dinamin.lua @@ -0,0 +1,44 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 6) then + e.self:DoAnim(36); --kneel + elseif(e.wp == 21) then + e.self:DoAnim(36); --kneel + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladima/Guard_Dinler.lua b/kaladima/Guard_Dinler.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladima/Guard_Dinler.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladima/Guard_Gabbles.lua b/kaladima/Guard_Gabbles.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladima/Guard_Gabbles.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladima/Guard_Hinolmer.lua b/kaladima/Guard_Hinolmer.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladima/Guard_Hinolmer.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladima/Guard_Humkor.lua b/kaladima/Guard_Humkor.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladima/Guard_Humkor.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladima/Guard_Humphet.lua b/kaladima/Guard_Humphet.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladima/Guard_Humphet.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladima/Guard_Kathur.lua b/kaladima/Guard_Kathur.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladima/Guard_Kathur.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladima/Guard_Kindor.lua b/kaladima/Guard_Kindor.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladima/Guard_Kindor.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladima/Guard_Koranin.lua b/kaladima/Guard_Koranin.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladima/Guard_Koranin.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladima/Guard_Ninadek.lua b/kaladima/Guard_Ninadek.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladima/Guard_Ninadek.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladima/Guard_Ninaf.lua b/kaladima/Guard_Ninaf.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladima/Guard_Ninaf.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladima/Guard_Stump.lua b/kaladima/Guard_Stump.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladima/Guard_Stump.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladima/Guard_Tantan.lua b/kaladima/Guard_Tantan.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladima/Guard_Tantan.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladima/Hanamaf_Darkfoam.lua b/kaladima/Hanamaf_Darkfoam.lua new file mode 100644 index 0000000..232a641 --- /dev/null +++ b/kaladima/Hanamaf_Darkfoam.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome!! Welcome!! Have a seat at the bar and try some of my rich. dwarven ale!!"); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladima/Hogunk_Ventille.lua b/kaladima/Hogunk_Ventille.lua new file mode 100644 index 0000000..6b98097 --- /dev/null +++ b/kaladima/Hogunk_Ventille.lua @@ -0,0 +1,43 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail. and welcome to Stormguard Hall. home to all great warriors! Are you also a [warrior of the Stormguard] or do you [follow another guild]?"); + elseif(e.message:findi("i am a warrior of the stormguard")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("As I thought. You do not appear to be one who relies on wits rather than brawn. no offense. I have word that a Stormguard on duty has deserted his post at one of the guardposts in the Butcherblocks. I want you to go and seek him out. He is Guard Bundin. Return his Stormguard axe to me. along with his head. There shall be no cowards in the Stormguard!!"); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("Prove yourself to the Stormguard and then we shall talk. Perhaps you may assist Master Canloe and show your worth to us."); + else + e.self:Say("Your shifty eyes tell me that you are no ally of the Stormguard.") + end + elseif(e.message:findi("i follow another guild")) then + e.self:Say("Then go to your guild. This is the hall of the dwarven warriors - not a place for common folk to lounge around."); + elseif(e.message:findi("irontoe")) then + e.self:Say("The Irontoe Brigade was formed by Drumpy Irontoe. It was once the finest band of warriors in Kaladim. They were the elite branch of the Stormguard. King Kazon sent them on a mission to the lands of the Crushbone orcs. At the Battle of Busted Skull they met their fate."); + elseif(e.message:findi("tumpy")) then + e.self:Say("If you frequent the pubs, you just may run into Tumpy Irontoe. He was once the brave leader of the Irontoe Brigade. Whatever you do, do not mention the Battle of Busted Skull. I am sure that would bring back some bad memories for him."); + elseif(e.message:findi("trondle")) then + e.self:Say("Trondle Ogrebane is the legendary dwarven warrior who single-handedly exterminated the ogre clan called the [Mudtoes]. He was recently killed in battle. It took an entire legion of Crushbone orcs to bring him down. Furtog is still fuming about that."); + elseif(e.message:findi("mudtoes")) then + e.self:Say("The Mudtoes were a small clan of ogres. They lived somewhere in the Butcherblock Mountains. They had an insatiable appetite for dwarves. They were finally destroyed by the hand of Trondle Ogrebane."); + elseif(e.message:findi("crushbone orc")) then + e.self:Say("The army of the Crushbone orcs is deadly indeed. They are great military strategists. It was a legion of them that brought down the great [Trondle Ogrebane]. Speak with Furtog Ogrebane about the Crushbones. He has need of warriors such as you."); + elseif(e.message:findi("battle of busted skull")) then + e.self:Say("The Battle of Busted Skull was fought in the land of the Crushbone orcs. King Kazon sent the entire Irontoe Brigade to retrieve an ancient artifact from an old dwarven outpost. The battle was fierce. At its end, only a handful of Irontoes made it back. After that, the Irontoe Brigade survivors left Kaladim for good. All except Tumpy Irontoe."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Aren't you forgetting something? I instructed you to return with Guard Bundin's Head and his Stormguard axe."; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12156, item2 = 5014},1,text)) then + e.self:Say("I shall display this in the guard hall. Let it be a warning to all those who dare to run from battle. As for you, that was splendid work, but next time, remember to wrap decapitated heads in something drip-proof. Those stains will never come out! Oh yes, and here is your reward."); + e.other:Faction(e.self,274,2); -- Faction: Kazon Stormhammer + e.other:Faction(e.self,312,15); -- Faction: Storm Guard + e.other:Faction(e.self,293,2); -- Faction: Miners Guild 249 + e.other:Faction(e.self,5025,3); -- Faction: Kaladim Merchants + e.other:Faction(e.self,232,-3); -- Faction: Craknek Warriors + e.other:QuestReward(e.self,math.random(10),math.random(10),math.random(16),0,eq.ChooseRandom(5027,5034,6019,6024,7013,6018,5070,5071,6351),5000); -- Item(s): Bronze Long Sword (5027), Bronze Scimitar (5034), Bronze Mace (6019), Bronze Morning Star (6024), Bronze Rapier (7013), Fine Steel Morning Star (6351) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kaladima/Kalameky_Darkfoam.lua b/kaladima/Kalameky_Darkfoam.lua new file mode 100644 index 0000000..de6443b --- /dev/null +++ b/kaladima/Kalameky_Darkfoam.lua @@ -0,0 +1,9 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18906})) then + e.self:Say("Why, that..! Bah! Fine. Stupid as a newborn gob. He's not gonna get this, then. Hey, you might as well take it. It was gonna be his reward fer a job well done."); + e.other:QuestReward(e.self,0,0,0,0,23359,30000); -- Item: Targ Shield + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kaladima/Kilam_Oresinger.lua b/kaladima/Kilam_Oresinger.lua new file mode 100644 index 0000000..e9b0f11 --- /dev/null +++ b/kaladima/Kilam_Oresinger.lua @@ -0,0 +1,14 @@ +--Quest Name: Bard Mail Quest + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail. " .. e.other:GetCleanName() .. " -Are you [interested] in helping the League of Antonican Bards by delivering some [mail]?"); + elseif(e.message:findi("mail") and not e.message:findi("deliver") and not e.message:findi("Kelethin")) then + e.self:Say("The League of Antonican Bards has a courier system made up of travelers and adventurers. We pay good gold to anyone who will take messages from bards such as myself to one of our more central offices. Are you [interested]?"); + elseif(e.message:findi("interested")) then + e.self:Say("I have messages that need to go to - well. right now I have one that needs to go to Kelethin. Will you [deliver] mail to [Kelethin] for me?"); + elseif(e.message:findi("deliver") or e.message:findi("Kelethin")) then + e.self:Say("Take this letter to Jakum Webdancer in Kelethin. You can find him at the bard guild hall. I am sure he will compensate you for your troubles."); + e.other:SummonCursorItem(18162); -- Item: A Bardic Letter (Kelethin) + end +end diff --git a/kaladima/Soulbinder_Torvald.lua b/kaladima/Soulbinder_Torvald.lua new file mode 100644 index 0000000..80c75f8 --- /dev/null +++ b/kaladima/Soulbinder_Torvald.lua @@ -0,0 +1,15 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID(),0,1); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kaladima/Tumpy_Irontoe.lua b/kaladima/Tumpy_Irontoe.lua new file mode 100644 index 0000000..0d1c6aa --- /dev/null +++ b/kaladima/Tumpy_Irontoe.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Irontoe's! The finest watering hole this side of Oggok! If you're looking for anything special and it ain't behind the bar, just ask. Maybe I can make it."); + elseif(e.message:findi("tumpy tonic")) then + e.self:Say("So you want a Tumpy Tonic? I can make you one. All I need is a flask of water and a kiola nut. The kiola nut can be bought in the Ocean of Tears island chain."); + elseif(e.message:findi("trumpy")) then + e.self:Say("Trumpy... I have not seen him in ages! We were both members of the Irontoe Brigade. Last I heard, he was drinking his life away in the great city of Qeynos."); + elseif(e.message:findi("drumpy") or e.message:findi("crumpy")) then + e.self:Say("Sounds like you ran into one of my old pals from the Irontoe Brigade. I hope he is doing okay. Ah, those were the days..."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Okay. Where are the other ingredients?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13340, item2 = 13006},1,text)) then --Kiola Nut, Water Flask + e.self:Say("Here you go. One Tumpy Tonic. Don't drink that too fast now."); + e.other:QuestReward(e.self,0,0,0,0,12114,1000); --Tumpy Tonic + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kaladima/Vacto_Molunel.lua b/kaladima/Vacto_Molunel.lua new file mode 100644 index 0000000..0ba1b82 --- /dev/null +++ b/kaladima/Vacto_Molunel.lua @@ -0,0 +1,86 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met, " .. e.other:GetCleanName() .. "! I am Vacto Molunel. If you are seeking to outfit yourself with the finest weapons in all of Kaladim. I am the one to see. I also posses a [rare talent] you might find useful."); + elseif(e.message:findi("rare talent")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Piqued your interest, did I? Well, you see, I am one of the few dwarves who possess the knowledge and talent to craft a unique type of armor entirely out of scarab carapaces. While my specialty is making [scarab helms]. I have also been convinced to make [scarab breastplates] and [scarab boots] from time to time. All of the pieces I craft are to dwarven proportions, but I have had some gnomish and halfling customers as well. They come from all over for my armor."); + else + e.self:Say("Your shifty eyes tell me that you are no ally of the Stormguard.") + end + elseif(e.message:findi("scarab helms")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Interested in a scarab helm, are you? Well, because my talent is so unique and my time is so valuable, I am afraid I could only make you a helm if you were to provide me with the two scarab carapaces necessary to accommodate a head such as yours. I will also need a payment of 5 gold pieces. The Butcherblocks are crawling with worker scarabs that have just the right size carapaces for our needs."); + else + e.self:Say("Your shifty eyes tell me that you are no ally of the Stormguard.") + end + elseif(e.message:findi("scarab breastplates")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Ah.. A scarab breastplate.. hmm. Well, if you want to convince me to go though the trouble of crafting one of those, not only will you have to pay my fee of 23 gold pieces, you must provide me with a pristine giant scarab carapace. I refuse to make a breastplate with cracked carapaces."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("Prove yourself to the Stormguard and then we shall talk. Perhaps you may assist Master Canloe and show your worth to us."); + else + e.self:Say("Your shifty eyes tell me that you are no ally of the Stormguard.") + end + elseif(e.message:findi("scarab boots")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Ah.. Scarab Boots.. hmm. Well, if you want to convince me to go though the trouble of crafting a pair of those, not only will you have to pay my fee of 17 gold pieces, you must provide me with a cracked giant scarab shell and 2 scarab legs."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("Prove yourself to the Stormguard and then we shall talk. Perhaps you may assist Master Canloe and show your worth to us."); + else + e.self:Say("Your shifty eyes tell me that you are no ally of the Stormguard.") + end + elseif(e.message:findi("irontoe")) then + e.self:Say("The Irontoe Brigade was formed by Drumpy Irontoe. It was once the finest band of warriors in Kaladim. They were the elite branch of the Stormguard. King Kazon sent them on a mission to the lands of the Crushbone orcs. At the Battle of Busted Skull they met their fate."); + elseif(e.message:findi("tumpy")) then + e.self:Say("If you frequent the pubs, you just may run into Tumpy Irontoe. He was once the brave leader of the Irontoe Brigade. Whatever you do, do not mention the Battle of Busted Skull. I am sure that would bring back some bad memories for him."); + elseif(e.message:findi("trondle")) then + e.self:Say("Trondle Ogrebane is the legendary dwarven warrior who single-handedly exterminated the ogre clan called the [Mudtoes]. He was recently killed in battle. It took an entire legion of Crushbone orcs to bring him down. Furtog is still fuming about that."); + elseif(e.message:findi("mudtoes")) then + e.self:Say("The Mudtoes were a small clan of ogres. They lived somewhere in the Butcherblock Mountains. They had an insatiable appetite for dwarves. They were finally destroyed by the hand of Trondle Ogrebane."); + elseif(e.message:findi("crushbone orc")) then + e.self:Say("The army of the Crushbone orcs is deadly indeed. They are great military strategists. It was a legion of them that brought down the great [Trondle Ogrebane]. Speak with Furtog Ogrebane about the Crushbones. He has need of warriors such as you."); + elseif(e.message:findi("battle of busted skull")) then + e.self:Say("The Battle of Busted Skull was fought in the land of the Crushbone orcs. King Kazon sent the entire Irontoe Brigade to retrieve an ancient artifact from an old dwarven outpost. The battle was fierce. At its end, only a handful of Irontoes made it back. After that, the Irontoe Brigade survivors left Kaladim for good. All except Tumpy Irontoe."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "Well, that is one of the items I need to make scarab boots. Do you have the rest?"; + local text2 = "This is good, but in order to finish the job, I need both a pristine giant scarab carapace and 23 gold."; + local text3 = "Remember, for the scarab helm I require you give me two scarab carapaces as well as 5 gold."; + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13849, item2 = 13849, gold = 4},1,text3)) then -- helm + e.self:Say("Excellent. Here is your helm. Wear it with pride! And be sure to occasionally wipe out the insulating mucus that tends to build up on its underside. It will make your hair fall out. One more thing, would you be interested in [scarab boots] to match your helm?"); + e.other:Faction(e.self,312,2,0); -- Storm Guard + e.other:Faction(e.self,274,1,0); -- Kazon Stormhammer + e.other:Faction(e.self,293,1,0); -- Miners Guild 249 + e.other:Faction(e.self,290,1,0); -- Merchants of Kaladim + e.other:Faction(e.self,232,-1,0); -- Craknek Warrior + e.other:QuestReward(e.self,0,0,0,0,2175,5000); + end + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13133, gold = 22},1,text2)) then -- breastplate + e.self:Say("If I do say so myself, this is one of the finest breastplates in all of Norrath. I am truly a master at my craft. You might want to wipe out some of the excess scarab goo before wearing it, though."); + e.other:Faction(e.self,312,5,0); -- Storm Guard + e.other:Faction(e.self,274,1,0); -- Kazon Stormhammer + e.other:Faction(e.self,293,1,0); -- Miners Guild 249 + e.other:Faction(e.self,290,1,0); -- Merchants of Kaladim + e.other:Faction(e.self,232,-1,0); -- Craknek Warrior + e.other:QuestReward(e.self,0,0,0,0,2176,5000); + end + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13132, item2 = 13848, item3 = 13848, gold = 16},1,text1)) then -- boots + e.self:Say("Very good! Let me see here. Thread the legs around like this and... There you go. Wear them with pride!"); + e.other:Faction(e.self,312,3,0); -- Storm Guard + e.other:Faction(e.self,274,1,0); -- Kazon Stormhammer + e.other:Faction(e.self,293,1,0); -- Miners Guild 249 + e.other:Faction(e.self,290,1,0); -- Merchants of Kaladim + e.other:Faction(e.self,232,-1,0); -- Craknek Warrior + e.other:QuestReward(e.self,0,0,0,0,2177,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladimb/Aanina_Rockfinder.lua b/kaladimb/Aanina_Rockfinder.lua new file mode 100644 index 0000000..7052d23 --- /dev/null +++ b/kaladimb/Aanina_Rockfinder.lua @@ -0,0 +1,12 @@ +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20879})) then + e.self:Say("Ah, nice of you to come and pick this up for Ganelorn! I know he is a busy fellow. I certainly hope that his girlfriend will like this gift."); + e.other:QuestReward(e.self,{itemid = 20880}); -- Item: A Gift + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladimb/Bndainy_Everhot.lua b/kaladimb/Bndainy_Everhot.lua new file mode 100644 index 0000000..2b9e900 --- /dev/null +++ b/kaladimb/Bndainy_Everhot.lua @@ -0,0 +1,12 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Everhot Forge! I supply weapon molds for skilled blacksmiths. Care to view my wares?"); + elseif(e.message:findi("wares")) then + e.self:Say("The various molds that I have for sale are used in the smithing of weapons. Simply use the necessary molds with a sheet of metal, a forge, and a water flask. Weapons with hilts and pommels will also need molds for those pieces and weapons such as pole-arms and axes require an oak shaft."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladimb/Brenthalion_Aleslammer.lua b/kaladimb/Brenthalion_Aleslammer.lua new file mode 100644 index 0000000..d7ae126 --- /dev/null +++ b/kaladimb/Brenthalion_Aleslammer.lua @@ -0,0 +1,54 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Lo dere " .. e.other:GetCleanName() .. "! I be Brenthalion Aleslammer Holy Defender of Brell! I can see that ye found my temple of Brell that I have resided over for many years. I have been appointed by da King Kazon himself to make sure dat all our young paladins get da [training] dey need before dey go out to explore da world. Aye."); + elseif(e.message:findi("training")) then + e.self:Say("Ye see " .. e.other:GetCleanName() .. ", learning all the correct fighting tactics along with learning your way around your homeland can be no easy task for a young one new to Kaladim. That is why I have developed a series of training exercises that help me monitor our young ones as they progress through the ranks of the Paladin on their path to true enlightenment! If you are a young [paladin] of Brell I would be happy to explain to you how the exercises work and I would also recommend that you take part in them!"); + elseif(e.message:findi("paladin")) then + e.self:Say("Well I would be lyin if`n hearing dose words didn't bring a smile to me face every time that I hear dem. First thing you will need a Magical Mail Assembly Kit that you will use to combine different magical items in that will create an armor material. Once you have created a armor material you can then take it to a forge along with a armor mold to fashion an armor piece. If you are able to collect all the items for them you will have the potential to make a full set of Underfoot Defenders Platemail! If`n ye are [ready to begin] collecting yer items I will be happy to give you your Magical Mail Assembly Kit and git you started!"); + elseif(e.message:findi("ready")) then + e.self:Say("Excellent " .. e.other:GetCleanName() .. "! Here is your Magical Mail Assembly Kit. Once you are ready to collect the items for a specific armor piece simply tell me what piece of Underfoot Defenders Platemail that you want to craft. I can provide you with the material recipe and enchanted armor molds for Underfoot Platemail [Helm], [Bracer], [Armguards], [Boots], [Greaves], [Gauntlets], and [Breastplate]."); + e.other:SummonCursorItem(17249); -- Item: Magical Mail Assembly Kit + elseif(e.message:findi("armguards")) then + e.self:Say("To create yer armguards material you will need to combine 2 Bricks of Crude Bronze, 2 Scarab Legs, and 1 Spiderling Silk in yer assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion yer very own Underfoot Defenders Armguards."); + e.other:SummonCursorItem(19635); -- Item: Crude Vambrace Mold + elseif(e.message:findi("boots")) then + e.self:Say("To create yer boots material you will need to combine 3 Bricks of Crude Bronze, 1 Aqua Goblin Foot, 2 Ogre Jawbones in yer assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion yer very own Underfoot Defenders Boots."); + e.other:SummonCursorItem(19634); -- Item: Crude Boot Mold + elseif(e.message:findi("bracer")) then + e.self:Say("To create yer bracer material you will need to combine 1 Brick of Crude Bronze, 1 RunnyEye Warbeads, 1 Shattered Warbeads and 1 Gypsy Wine in yer assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion yer very own Underfoot Defenders Bracer."); + e.other:SummonCursorItem(19632); -- Item: Crude Bracer Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("To create yer breastplate material you will need to combine 5 Bricks of Crude Bronze, 1 Scarab Carapace, 1 Golden Bandit Tooth, 1 Pristine Forest Drakeling Scale, 1 Skunk Tail and 1 Enraged Goblin Beads in yer assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion yer very own Underfoot Defenders Breastplate. When you have finished completing your armor set I would like you to return to me for I have one [final task] for you to complete. Aye."); + e.other:SummonCursorItem(19637); -- Item: Crude Breastplate Mold + elseif(e.message:findi("task")) then + e.self:Say("Da final task is simply dere young " .. e.other:GetCleanName() .. ". I myself likes to collect many trophies as well as beer steins ye see. Well sense my days have been occupied by trainin da newest up and coming lads and lasses I haven't gotten a chance to go prize hunting like I once did. So if`n yer up for da task I would like ye to collect me some [valuable trophies] fer my collection."); + elseif(e.message:findi("valuable trophies")) then + e.self:Say("There are 3 signifigant trophies I would love to have fer me trophy room. If ye can collect and bring me 1 Enraged Goblin Beads, 1 Green Goblin Head and 1 Aqua Goblin Head I will surely reward ye with a blade worthy of the finest defenders Brell has to offer. Aye."); + elseif(e.message:findi("gauntlets")) then + e.self:Say("To create yer gauntlets material you will need to combine 3 Bricks of Crude Bronze, 1 Margyls Tongue, 1 Insignia of Greenblood, and 2 Rock Spiderling Legs in yer assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion yer very own Underfoot Defenders Gauntlets."); + e.other:SummonCursorItem(19633); -- Item: Crude Gauntlets Mold + elseif(e.message:findi("greaves")) then + e.self:Say("To create yer greaves material you will need to combine 4 Bricks of Crude Bronze, 1 Basilisk Tongue, 1 Orc Skull , and 1 Scarab Eye in yer assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion yer very own Underfoot Defenders Greaves."); + e.other:SummonCursorItem(19636); -- Item: Crude Greaves Mold + elseif(e.message:findi("helm")) then + e.self:Say("To create yer helm material you will need to combine 2 Bricks of Crude Bronze, 1 Aviak Eye, 1 Goblin Skull and 1 Ration in yer assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion yer very own Underfoot Defenders Helm."); + e.other:SummonCursorItem(19631); -- Item: Crude Helm Mold + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2396, item2 = 28065, item3 = 28066})) then + e.self:Say("Dese will surely be a great addition to me trophy room " .. e.other:GetCleanName() .. "! I knew I could count on you to not have a problem collecting these things for me. As I promised, I have prepared you a fine blade that will surely guide you to victory wherever your travels may take you. Gud luck to ye " .. e.other:GetCleanName() .. ", hammers high!"); + e.other:Faction(e.self,227,1); -- Faction: Clerics of Underfoot + e.other:Faction(e.self,274,1); -- Faction: Kazon Stormhammer + e.other:Faction(e.self,293,1); -- Faction: Miners Guild 249 + e.other:QuestReward(e.self,0,0,0,0,26077,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladimb/Bumle_Reminjar.lua b/kaladimb/Bumle_Reminjar.lua new file mode 100644 index 0000000..d4dee84 --- /dev/null +++ b/kaladimb/Bumle_Reminjar.lua @@ -0,0 +1,46 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome, " .. e.other:GetCleanName() .. ". The Cathedral of Underfoot welcomes all good persons. May you find peace from the dangers of Butcherblock within these walls. The paladins of this holy place are very much aware of the evils outside Kaladim. The threat of goblins and [birdmen] has increased."); + elseif(e.message:findi("birdmen")) then + e.self:Say("The birdmen I speak of are the aviak krags. These vile creatures have desecrated our land. They have dared to perch upon our great statue. The king has instructed all noble paladins in this order to [destroy the krag chicks]."); + elseif(e.message:findi("chicks")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Yes. You are known to have aided our cause. You shall continue by returning any aviak chick talons to me. I will reward you for the return of no fewer than four at a time. Go, and serve the will of the king!"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Clerics of Underfoot have yet to see your faith directed towards our wills. Perhaps you should assist Master Gunlok Jure in the crusade against the undead."); + else + e.self:Say("How dare you approach a member of the Clerics of Underfoot?! Dogs such as you lie in the same bed as aviaks and ogres!") + end + elseif(e.message:findi("elders")) then + if(e.other:GetFactionValue(e.self) >= 500) then -- need kindly for response + e.self:Say("The krag elders are the strongest of the aviaks. Their might has been well-documented by our order. Our high ranking paladins are ordered to slay the eagles. If you are with us, return four aviak talons to me and a fine reward shall be yours. Perhaps even our cathedral tailors and scribes may donate to your quest."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Clerics of Underfoot have yet to see your faith directed towards our wills. Perhaps you should assist Master Gunlok Jure in the crusade against the undead."); + else + e.self:Say("How dare you approach a member of the Clerics of Underfoot?! Dogs such as you lie in the same bed as aviaks and ogres!") + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I shall reward you for no less than four aviak chick talons."; + local text1 = "There is only a reward for the return of four aviak talons."; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12157, item2 = 12157, item3 = 12157, item4 = 12157},1,text)) then + e.self:Say("You have done well. Your deeds shall be recorded within our journals. Here, then, is your reward. May you strive to serve us to the full extent of your powers. The [elders] must also die."); + -- faction from ZAM post + e.other:Faction(e.self,227, 5); --Clerics Of Underfoot + e.other:Faction(e.self,274, 5); --Kazon Stormhammer + e.other:Faction(e.self,293, 3); --Miner's Guild 249 + e.other:QuestReward(e.self,math.random(0,5),math.random(0,5),0,0,eq.ChooseRandom(2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,5045,6041),5000); -- Item(s): Small Patchwork Tunic (2116), Small Patchwork Sleeves (2120), Small Patchwork Pants (2123), Small Patchwork Boots (2124), Small tattered and patchwork set, tarnished long sword, cast-iron warhammer + elseif(e.other:GetFactionValue(e.self) >= 500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12158, item2 = 12158, item3 = 12158, item4 = 12158},1,text1)) then -- need kindly + e.self:Say("Fine work! You shall be known for your great deeds. Take this and may it aid you in your defense of Kaladim. Hail King Kazon!"); + -- confirmed live faction + e.other:Faction(e.self,227, 10); --Clerics Of Underfoot + e.other:Faction(e.self,274, 10); --Kazon Stormhammer + e.other:Faction(e.self,293, 7); --Miner's Guild 249 + e.other:QuestReward(e.self,math.random(0,5),math.random(0,5),0,0,eq.ChooseRandom(2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,5082,6041,6042,6046,7032),10000); -- small tattered and patchwork set, random cast-iron weapons. + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kaladimb/Cleaner_VII.lua b/kaladimb/Cleaner_VII.lua new file mode 100644 index 0000000..5b42f02 --- /dev/null +++ b/kaladimb/Cleaner_VII.lua @@ -0,0 +1,10 @@ +function event_waypoint_arrive(e) + if(e.wp == 5) then + e.self:SetRunning(true); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladimb/Crovsar_Dirkbringer.lua b/kaladimb/Crovsar_Dirkbringer.lua new file mode 100644 index 0000000..a87a8cd --- /dev/null +++ b/kaladimb/Crovsar_Dirkbringer.lua @@ -0,0 +1,60 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Gud to meet ye there " .. e.other:GetCleanName() .. ". Me names Crovsar Dirkbringer and I run dis here mining operation. Anyone else that tell ye different simply aint telling da truth! I like to spend most of me time minin but I also like to help our young miners pick dere way to glory as a great rogue! Er I mean a great miner! Aye, dats it. If ye are a young minin [rogue] of Kaladim den I might just have some things for ye to do."); + elseif(e.message:findi("rogue")) then + e.self:Say("A young rogue ye say ye is eh Gilborn? Well den If`n yer ready to git your hands dirty and yer pockets full I will be happy to explain to you the [training] exercises dat I have our new recruits all undergo to earn dere keep in dese here mines!"); + elseif(e.message:findi("training")) then + e.self:Say("Well den it must be obvious that not just any young miner can git his things and venture out into da world without the proper armor to protect dem Aye? Dis is why I have developed training exercises dat will test both yer fightin and collectin skills and will in da end yield you a full set of Apprentice Miners Chainmail! Now makin da armor will nat be hard at all because I will be able to give you the tools necessary too craft da armor pieces once you have created da correct armor [materials]."); + elseif(e.message:findi("materials")) then + e.self:Say("Now were talkin! I can see dat ye are very interested in carving yer way into da Kaladim history books so lets git started. First off you will use this Dusty Mail Assembly Kit to collect various magical items that can be combined in da kit to create the armor materials that I spoke of earlier. You will then take the material to a forge along with patterns that I will present ye with to create da specific armor piece ye asked for. When ye are ready simply say what armor piece ye want to craft and I can provide ye with the armor material recipes and patterns for Apprentice Miners [Coifs], [Bracers], [Sleeves], [Boots], [Legplates], [Gauntlets] and [Tunics]."); + --Summon: Dusty Mail Assembly Kit + e.other:SummonCursorItem(17247) + elseif(e.message:findi("boots")) then + e.self:Say("To create your boots material you will need to combine 3 Bricks of Crude Bronze, 1 Cracked Giant Scarab Carapace, 2 Runny Eye Warbeads and 1 Snake Scale and 1 Spiderling Silk in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Apprentice Miners Boots."); + --Summon: Crude Boots Mold + e.other:SummonCursorItem(19634); -- Item: Crude Boot Mold + elseif(e.message:findi("bracers")) then + e.self:Say("To create your bracer material you will need to combine 1 Bricks of Crude Bronze, 1 Orc Scoutsmans Wrist Pouch, 1 Towering Brute War Helm and 1 Bandage in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Apprentice Miners Bracer."); + --Summon: Crude Bracer Mold + e.other:SummonCursorItem(19632); -- Item: Crude Bracer Mold + elseif(e.message:findi("coifs")) then + e.self:Say("To create your coif material you will need to combine 2 Bricks of Crude Bronze, 1 Skunk Scent Gland, 1 Snake Scale and 1 Mead in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Apprentice Miners Coif."); + --Summon: Crude Helm Mold + e.other:SummonCursorItem(19631); -- Item: Crude Helm Mold + elseif(e.message:findi("gauntlets")) then + e.self:Say("To create your gauntlets material you will need to combine 3 Bricks of Crude Bronze, 1 Barmas Tongue, 1 Aqua Goblin Headdress, 1 Goblin Parts and 1 Dwarven Bandit Coinpurse in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Apprentice Miners Gauntlets."); + --Summon: Crude Gauntlets Mold + e.other:SummonCursorItem(19633); -- Item: Crude Gauntlets Mold + elseif(e.message:findi("legplates")) then + e.self:Say("To create your legplates material you will need to combine 4 Bricks of Crude Bronze, 1 Symbol of Hatred, 1 Aqua Goblin Tongue and 1 Severed Greenblood Finger in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Apprentice Miners Legplates."); + --Summon: Crude Greaves Mold + e.other:SummonCursorItem(19636); -- Item: Crude Greaves Mold + elseif(e.message:findi("sleeves")) then + e.self:Say("To create your sleeves material you will need to combine 2 Bricks of Crude Bronze, 2 Giant Bat Fur, 1 Spider Legs and 1 Giant Scarab Egg Sack in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Apprentice Miners Sleeves."); + --Summon: Crude Vambraces Mold + e.other:SummonCursorItem(19635); -- Item: Crude Vambrace Mold + elseif(e.message:findi("tunics")) then + e.self:Say("To create your tunic material you will need to combine 5 Bricks of Crude Bronze, 1 Enraged Goblin Beads, 1 Pristine Forest Drakeling Scale, 1 Golden Bandit Tooth, 1 Basilisk Tongue and 1 Goblin Parts in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Apprentice Miners Tunic. When ye finish yer tunic come on back fer I got one more [assignment] for a miner that I know I can trust!"); + --Summon: Crude Breastplate Mold + e.other:SummonCursorItem(19637); -- Item: Crude Breastplate Mold + elseif(e.message:findi("assignment")) then + e.self:Say("Well da assignment is simple " .. e.other:GetCleanName() .. ". I jess simply need ye to fetch me some items that I need to create a minin pick dat I plan on distributing to all da new miners around dese parts dat pass my exercises, much like yerself. If you would like to help me [collect] the items I need I could perhaps fix ye up one of dese first minin picks. Whatta ya say dere " .. e.other:GetCleanName() .. "?"); + elseif(e.message:findi("collect")) then + e.self:Say("Das great news to hear indeed! Please seek out 1 Aqua Goblin Backbone and 2 Pristine Skunk Claws and I will surely reward ye for yer trouble. I hope to see ye soon!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28067, item2 = 28068, item3 = 28068})) then + e.self:Say("Ah thank ye " .. e.other:GetCleanName() .. ". Here is yer minin pick."); + --Summon: Sharpened Mining Pick + e.other:QuestReward(e.self,0,0,0,0,26078); -- Item: Sharpened Mining Pick + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladimb/Datur_Nightseer.lua b/kaladimb/Datur_Nightseer.lua new file mode 100644 index 0000000..05f4d62 --- /dev/null +++ b/kaladimb/Datur_Nightseer.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to our temple. We are the paladins of the Church of Underfoot. I am lord of our holy order. I call upon you to assist us in the defense of Kaladim. Speak with the master paladins or priests and find ways to prove your allegiance to Brell."); + elseif(e.message:findi("honored member")) then + if(e.other:GetFactionValue(e.self) >= 50) then + e.self:Say("Yes. The light of righteousness shines from within you."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Clerics of Underfoot have yet to see your faith directed towards our wills. Perhaps you should assist Master Gunlok Jure in the crusade against the undead."); + else + e.self:Say("How dare you approach a member of the Clerics of Underfoot?! Dogs such as you lie in the same bed as aviaks and ogres!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18768})) then + e.self:Say("Welcome, we are the Paladins of the Underfoot. I am Datur, and I will help teach you the word and will of the Duke of Below, Brell Serilis. Here is our guild tunic. Let's get started, shall we?"); + e.other:Faction(e.self,227,100); -- Clerics of Underfoot + e.other:Faction(e.self,274,100); -- Kazon Stormhammer + e.other:Faction(e.self,293,75); -- Miners Guild 249 + e.other:QuestReward(e.self,0,0,0,0,13514,20); -- Item: Dusty Tunic* + elseif((e.other:GetFaction(e.self) < 5) and (item_lib.check_turn_in(e.self, e.trade, {item1 = 12279}))) then + e.self:Say("The chalice is returned!! Praise be to Brell!! You have proven yourself to our church and have earned our respect. Let me welcome you into our brotherhood with the Cape of Underfoot. Wear it with pride as all of our finest paladins do."); + -- verifed live faction + e.other:Faction(e.self,227, 15); -- Faction: Clerics of Underfoot + e.other:Faction(e.self,274, 15); -- Faction: Kazon Stormhammer + e.other:Faction(e.self,293, 11); -- Faction: Miners Guild 249 + e.other:QuestReward(e.self,0,0,0,math.random(5),12281,2500); -- Item: Cape of Underfoot + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kaladimb/Diggins.lua b/kaladimb/Diggins.lua new file mode 100644 index 0000000..b73c5d0 --- /dev/null +++ b/kaladimb/Diggins.lua @@ -0,0 +1,67 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("How is life treating you, bud? What are you doing around the mines? Either you are a [member of 628] or you are lost. If you are lost, I can't help you. I ain't no guide."); + else + e.self:Say("The word around the mines is that you are not to be trusted. You'd best leave before my dagger finds a new home in your back."); + end + elseif(e.message:findi("628")) then + if(e.other:GetFactionValue(e.self) >= 200) then -- Requires mid amiable + e.self:Say("It's my duty to assign [guild tasks] to all new members of Mining Guild 628."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Don't take this personally, but I can't quite trust you with such matters. Maybe a few less Butcherblock bandits would prove your worth."); + else + e.self:Say("The word around the mines is that you are not to be trusted. You'd best leave before my dagger finds a new home in your back."); + end + elseif(e.message:findi("tasks")) then + if(e.other:GetFactionValue(e.self) >= 200) then -- Requires mid amiable + e.self:Say("I see you are interested in helping out. Good! For starters, go into the surrounding territory of Kaladim and destroy all the goblins. We hear they sometimes carry necklaces of ornate design. 628 wants these Runnyeye warbeads. You bring me no fewer than four and I will pay you and maybe, just maybe, I may have an extra piercing weapon lying around which has your name on it."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Don't take this personally, but I can't quite trust you with such matters. Maybe a few less Butcherblock bandits would prove your worth."); + else + e.self:Say("The word around the mines is that you are not to be trusted. You'd best leave before my dagger finds a new home in your back."); + end + elseif(e.message:findi("pick")) then + if(e.other:GetFactionValue(e.self) >= 200) then -- Requires mid amiable + e.self:Say("So you want to earn a parrying pick? Consider it an honor that I am even speaking of this with you. The guild had these picks made just for us. It is a magic item used to fend off attacks. Before you can have one, you will have to do me a [great favor]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Don't take this personally, but I can't quite trust you with such matters. Maybe a few less Butcherblock bandits would prove your worth."); + else + e.self:Say("The word around the mines is that you are not to be trusted. You'd best leave before my dagger finds a new home in your back."); + end + elseif(e.message:findi("great favor")) then + if(e.other:GetFactionValue(e.self) >= 200) then -- Requires mid amiable + e.self:Say("Mater has asked me to exterminate the dwarven family of Dunfire. They were once members of our guild. They left and now use their talents to aid the Butcherblock bandits. We will not allow them to speak of the skills we taught them. Go and rip out their tongues. Return the tongues of Crytil, Rondo, Keldyn, and Barma Dunfire and the parrying pick is yours."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Don't take this personally, but I can't quite trust you with such matters. Maybe a few less Butcherblock bandits would prove your worth."); + else + e.self:Say("The word around the mines is that you are not to be trusted. You'd best leave before my dagger finds a new home in your back."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Didn't I explain to you that I will only reward you upon the return of FOUR Runnyeye warbeads?"; + local text1 = "I called for the Tongues of Crytil, Rondo, Keldyn and Barma!"; + + if(e.other:GetFactionValue(e.self) >= 200 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13931, item2 = 13931, item3 = 13931, item4 = 13931},1,text)) then -- RunnyEye Warbeads + e.self:Say("Good work. We shall add these to the stash. Here is your reward, as promised. Be happy with it and continue your work. Maybe soon you shall be able to [earn a parrying pick]."); + -- verified live faction + e.other:Faction(e.self,322, 10); -- Miners Guild 628 + e.other:Faction(e.self,223, -1); -- Circle Of Unseen Hands + e.other:Faction(e.self,379, -1); -- Butcherblock Bandits + e.other:Faction(e.self,241, 1); -- Deeppockets + e.other:Faction(e.self,244, -1); -- Ebon Mask + e.other:QuestReward(e.self,math.random(0,5),math.random(0,5),0,0,eq.ChooseRandom(7007,7008,7009,7010),5000); -- Item(s): Rusty Dagger (7007), Rusty Rapier (7008), Rusty Spear (7009), Rusty Shortened Spear (7010) + elseif(e.other:GetFactionValue(e.self) >= 200 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12170, item2 = 12172, item3 = 12174, item4 = 12178},1,text1)) then -- Dunfire Tongues + e.self:Say("Excellent work!! You are quite an asset to this mining guild. Please accept this Parrying Pick 628 for your great service. If you truly wish to serve our guild. Go and speak with Mater. Tell him you are [ready to earn Mining Pick 628]."); + e.other:Faction(e.self,322, 10); -- Miners Guild 628 + e.other:Faction(e.self,223, -1); -- Circle Of Unseen Hands + e.other:Faction(e.self,379, -1); -- Butcherblock Bandits + e.other:Faction(e.self,241, 1); -- Deeppockets + e.other:Faction(e.self,244, -1); -- Ebon Mask + e.other:QuestReward(e.self,0,0,0,0,12166,5000); -- Parrying Pick 628 + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kaladimb/Donnel_Ratsbome.lua b/kaladimb/Donnel_Ratsbome.lua new file mode 100644 index 0000000..23a2b2d --- /dev/null +++ b/kaladimb/Donnel_Ratsbome.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + end +end \ No newline at end of file diff --git a/kaladimb/Dunony_Chestire.lua b/kaladimb/Dunony_Chestire.lua new file mode 100644 index 0000000..4a31cc7 --- /dev/null +++ b/kaladimb/Dunony_Chestire.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say('Hello. I am the guild master.'); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladimb/Founy_Jestands.lua b/kaladimb/Founy_Jestands.lua new file mode 100644 index 0000000..747ab89 --- /dev/null +++ b/kaladimb/Founy_Jestands.lua @@ -0,0 +1,21 @@ +-- Rogue Epic NPC/Guildmaster -- Founy_Jestands + +function event_say(e) + if(e.message:findi("stanos")) then + e.self:Say("Um, er.. Have you actually seen Stanos? How.. is he? Um, I have things I should be doing. I've got to figure out how this pottery wheel got stuck on my foot, for one thing. Er, I really don't have anything to tell you about Stanos, really, I swear it."); + elseif(e.message:findi("note") or e.message:findi("letter") or e.message:findi("parchment")) then + e.self:Say("I don't know what you're talking about, if you know what I mean.' Founy fingers his belt pouch. 'You should leave now, if you know what's good for you. Don't make me sic the crew on you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + + +--Quest by: Solid11 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladimb/Giant_Rat.lua b/kaladimb/Giant_Rat.lua new file mode 100644 index 0000000..5b42f02 --- /dev/null +++ b/kaladimb/Giant_Rat.lua @@ -0,0 +1,10 @@ +function event_waypoint_arrive(e) + if(e.wp == 5) then + e.self:SetRunning(true); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladimb/Guard_Ainamar.lua b/kaladimb/Guard_Ainamar.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladimb/Guard_Ainamar.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladimb/Guard_Dalammer.lua b/kaladimb/Guard_Dalammer.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladimb/Guard_Dalammer.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladimb/Guard_Dalthur.lua b/kaladimb/Guard_Dalthur.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladimb/Guard_Dalthur.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladimb/Guard_Doradek.lua b/kaladimb/Guard_Doradek.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladimb/Guard_Doradek.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladimb/Guard_Jure.lua b/kaladimb/Guard_Jure.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladimb/Guard_Jure.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladimb/Guard_Kaldolar.lua b/kaladimb/Guard_Kaldolar.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladimb/Guard_Kaldolar.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladimb/Guard_Kanuf.lua b/kaladimb/Guard_Kanuf.lua new file mode 100644 index 0000000..368d7ce --- /dev/null +++ b/kaladimb/Guard_Kanuf.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("armor")) then + e.self:Say("If armor it is you're seeking, then go no further than Everhot Forge in North Kaladim. The Everhots are the finest smiths to have walked Norrath. Many have come from far and wide to be trained in their skills."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The warriors of Kaladim are the Stormguard. The fiercest warriors on all Norrath. Stormguard Hall is in South Kaladim and includes the white marble arena."); + elseif(e.message:findi("supplies")) then + e.self:Say("If you are looking for supplies, I can suggest Gurtha's Wares near the bridge in South Kaladim."); + elseif(e.message:findi("bank")) then + e.self:Say("You can find Ratsbone Treasury next to the mine entrance in North Kaladim."); + elseif(e.message:findi("stormguard")) then + e.self:Say("In South Kaladim you will find the Stormguard, the warrior guild. They train on the arena grounds."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("I have heard rumors of a rogue guild in Kaladim, but have seen none."); + elseif(e.message:findi("healer")) then + e.self:Say("If you are injured, I suggest you rush to North Kaladim and visit the Underfoot Cathedral. Just go through tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("mine")) then + e.self:Say("The mines of Kaladim can be entered in North Kaladim. The opening is adjacent to the Ratsbone Treasury."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Our Paladins of Underfoot can be found to the rear of the Cathedral of Underfoot in North Kaladim."); + elseif(e.message:findi("cathedral")) then + e.self:Say("The Cathedral of Underfoot is the home of the clerics and paladins of Kaladim. It is found in North Kaladim through a tunnel behind Ratsbone Treasury."); + elseif(e.message:findi("kiln") or e.message:findi("pottery")) then + e.self:Say("I know of one public kiln and pottery wheel and they are near the bridge in South Kaladim."); + elseif(e.message:findi("oven")) then + e.self:Say("There is a public oven in North Kaladim at Greybloom Farm."); + elseif(e.message:findi("leather")) then + e.self:Say("If you seek leather goods, stop by Tanned Assets in South Kaladim. It is near the arena."); + elseif(e.message:findi("what.* bloodforge")) then + e.self:Say("The Bloodforge Brigade was created to take the place of the now defunct Irontoe Brigade. I hear they are a much stronger force to reckon with."); + end +end \ No newline at end of file diff --git a/kaladimb/Gunlok_Jure.lua b/kaladimb/Gunlok_Jure.lua new file mode 100644 index 0000000..79011b5 --- /dev/null +++ b/kaladimb/Gunlok_Jure.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! Bow before the greatness of the Clerics of Underfoot! It is good to be a paladin in such an order as ours - to fight the good fight and defend Kaladim from the evil and undead. If you be a paladin, then I pray you find the [courage to battle the undead]."); + elseif(e.message:findi("courage")) then + e.self:Say("Yes!! To battle the undead is our greatest call. There has been a rise in the number of dwarven skeletons seen in the Butcherblocks. If you are a true member of this order, I shall reward you for the return of four bone chips. We shall defend our land from evil!"); + elseif(e.message:findi("remains")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("My brother Cromil ventured to the Plains of Karana on the continent of Antonica. He never returned. Rumor has it that his undead skeleton is now part of an undead army in the plains. To end this curse, I ask all good paladins of this temple to return his bones to me. Nothing less than a spell is my reward for such a deed."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("The Clerics of Underfoot have yet to see your faith directed towards our wills. Perhaps you should assist Master Gunlok Jure in the crusade against the undead."); + else + e.self:Say("How dare you approach a member of the Clerics of Underfoot?! Dogs such as you lie in the same bed as aviaks and ogres!") + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13073, item2 = 13073, item3 = 13073, item4 = 13073},0)) then + e.self:Say("You have done well. We thank you for your deed with this humble reward. The power behind the raising of our dead shall soon be found. You will earn more respect with more bone chips. I only wish you could assist in the return of the [remains of Cromil]."); + -- confirmed live faction + e.other:Faction(e.self,227,10); -- Clerics of Underfoot + e.other:Faction(e.self,274,10); -- Kazon Stormhammer + e.other:Faction(e.self,293,7); -- Miners Guild 249 + e.other:QuestReward(e.self,math.random(0,10),math.random(0,10),math.random(0,5),0,eq.ChooseRandom(2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,5013,5014,5016,5023,6011,13002,13003),250); -- Item(s): Small Patchwork and small tattered set, Rusty Short Sword (5013), Rusty Axe (5014), Rusty Broad Sword (5016), Rusty Two Handed Sword (5023), Rusty Mace (6011), Torch (13002), Small Lantern (13003) + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13332})) then -- Dwarf Bones + e.self:Say("Many thanks, my friend. Now my brother can rest in peace. Please take this spell. May it serve you well."); + -- confirmed live faction + e.other:Faction(e.self,227,20); -- Clerics of Underfoot + e.other:Faction(e.self,274,20); -- Kazon Stormhammer + e.other:Faction(e.self,293,15); -- Miners Guild 249 + e.other:QuestReward(e.self,math.random(0,10),math.random(0,10),math.random(0,5),0,eq.ChooseRandom(15201,15209,15223,15230),10000); -- random low level cleric/paladin spell. + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kaladimb/Haldorak_Foamymugs.lua b/kaladimb/Haldorak_Foamymugs.lua new file mode 100644 index 0000000..9e5e838 --- /dev/null +++ b/kaladimb/Haldorak_Foamymugs.lua @@ -0,0 +1,70 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail dere me friend. I be Haldorak Foamymugs High Priest of Clerics dat heed the call of Brell. I am a very busy Dwarf for I have many new house recruits to train. Ye see I am in charge of all the young ones that pass through our halls. They must all undergo and pass me [tests] before they are truly ready to travel the dangerous world of Norrath."); + elseif(e.message:findi("tests")) then + e.self:Say("Well ye see " .. e.other:GetCleanName() .. ", we cant just send anyone out into dis world to spread Brells word and not make sure dey are properly trained in the ways of battle. Dis is why I have created some exercises for our young ones so that dey may be able to do which will in the end enable them to make a full set of their own armor. If`n ye are a young [cleric] of Brell well den these special exercise will surely be right for ye! Aye."); + elseif(e.message:findi("cleric")) then + e.self:Say("Well den lets not waste anytime and lets get you started! Here is yer Assembly Kit of Brell. In this kit ye will be collected many different items from both da Mountains of Butcherblock as well is in our great minin city o Kaladim! You will then place certain items in yer kit to create armor materials that you will then combine in a forge with an armor mold to make yer armor piece. If`n yer ready to begin craftin yer armor then I will be glad to present you with da material [recipes]!"); + -- Holy Assembly Kit + e.other:SummonCursorItem(17253); -- Item: Holy Assembly Kit + elseif(e.message:findi("recipes")) then + e.self:Say("Now yer talking " .. e.other:GetCleanName() .. ", I be glad to see yer ready to begin crafting yer honor and heed yer calling as a servant o Brell! I have the armor material recipes and molds for Brells Blessed Platemail [Helm], [Bracer], [Armguards], [Boots], [Greaves], [Gauntlets], and [Breastplate]. All ye must do is simply tell me what armor piece ye want to craft and I will gladly present ye with the material recipe and armor mold necessary fer craftin it."); + elseif(e.message:findi("armguards")) then + -- Quest: Brells Blessed Platemail Armguards + e.self:Say("To create yer armguards material you will need to combine 2 Bricks of Crude Bronze, 1 Spiderling Silk and 1 Scarab Leg and 1 Elven Wine in yer assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion yer very own Brells Blessed Armguards."); + -- Crude Vambrace Mold + e.other:SummonCursorItem(19635); -- Item: Crude Vambrace Mold + elseif(e.message:findi("boots")) then + -- Quest: Brells Blessed Platemail Boots + e.self:Say("To create yer boots material you will need to combine 3 Bricks of Crude Bronze, 1 Basilisk Tongue, 1 Bat Wing and 1 Bottle of Milk in yer assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion yer very own Brells Blessed Boots."); + -- Crude Boot Mold + e.other:SummonCursorItem(19634); -- Item: Crude Boot Mold + elseif(e.message:findi("bracer")) then + -- Quest: Brells Blessed Platemail Bracer + e.self:Say("To create yer bracer material you will need to combine 1 Bricks of Crude Bronze, 2 Snake Fangs, 1 Bone Chip and 1 Cask in yer assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion yer very own Brells Blessed Bracer."); + -- Crude Bracer Mold + e.other:SummonCursorItem(19632); -- Item: Crude Bracer Mold + elseif(e.message:findi("breastplate")) then + -- Quest: Brells Blessed Platemail Breastplate + e.self:Say("To create yer breastplate material you will need to combine 5 Bricks of Crude Bronze, 1 Glynns Tongue, 1 Dwarven Bandit Coinpurse, 1 Pristine Forest Drakeling Scale, 1 Undead Pawn Tibia and 1 Golden Bandit Tooth in yer assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion yer very own Brells Blessed Breastplate. Please come back to see me after ye has completed yer final armor piece? I need a lil [help] with something that only a proven disciple of Brell can complete."); + -- Crude Breastplate Mold + e.other:SummonCursorItem(19637); -- Item: Crude Breastplate Mold + elseif(e.message:findi("gauntlets")) then + -- Quest: Brells Blessed Platemail Gauntlets + e.self:Say("To create yer gauntlets material you will need to combine 3 Bricks of Crude Bronze, 1 Krag Chick Beak, 1 Rock Spiderling Legs, and 2 Bat Wings in yer assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion yer very own Brells Blessed Gauntlets."); + -- Crude Gauntlets Mold + e.other:SummonCursorItem(19633); -- Item: Crude Gauntlets Mold + elseif(e.message:findi("greaves")) then + -- Quest: Brells Blessed Platemail Greaves + e.self:Say("To create yer greaves material you will need to combine 4 Bricks of Crude Bronze, 2 Snake Scales , 1 Gundls Tongue and 1 Raw Bamboo in yer assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion yer very own Brells Blessed Greaves."); + -- Crude Greaves Mold + e.other:SummonCursorItem(19636); -- Item: Crude Greaves Mold + elseif(e.message:findi("helm")) then + -- Quest: Brells Blessed Platemail Helm + e.self:Say("To create yer helm material you will need to combine 2 Bricks of Crude Bronze, 1 Snake Egg, 1 Bat Fur and 1 Bottle in yer assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion yer very own Brells Blessed Helm."); + -- Crude Helm Mold + e.other:SummonCursorItem(19631); -- Item: Crude Helm Mold + elseif(e.message:findi("help")) then + -- Quest: Brells Blessed Platemail Help + e.self:Say("A helper ye say ye is Aye? Well den let me tell ye what I need assistance with. There has been an overwhelming number of goblins seen in the surrounding areas lately, and well dat gives me da creeps. These goblins are known to be allied with the bandits that infest our lands and they must be stopped before its too late. If you would like to help me I need you to collect some very important [items]."); + elseif(e.message:findi("items")) then + -- Quest: Brells Blessed Platemail Help + e.self:Say("I need someone to collect blood samples form dese vile goblins for me so that I can have my resident alchemist study them. We are interested in the genetics of these dern goblins so that we can know exactly how powerful they are and what we are up against. Aye. Please bring me 2 samples of da Green Goblin Blood and 2 samples of da Aqua Goblin Blood and I will surely reward you for yer great deeds."); + end +end + +function event_trade(e) + local item_lib = require("items"); + -- Handin: Aqua Goblin Blood, Green Goblin Blood + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28062, item2 = 28062, item3 = 28061, item4 = 28061})) then + -- Quest: Brells Blessed Platemail Help (End) + e.self:Say("Well done " .. e.other:GetCleanName() .. "! Here is your reward."); + -- Blessed Brellium Warhammer + e.other:QuestReward(e.self,0,0,0,0,26075); -- Item: Blessed Brellium Warhammer + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladimb/Harnoff_Splitrock.lua b/kaladimb/Harnoff_Splitrock.lua new file mode 100644 index 0000000..84a9a80 --- /dev/null +++ b/kaladimb/Harnoff_Splitrock.lua @@ -0,0 +1,35 @@ +--Quest: Restock High Quality Ore (North Kaladim) + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetins to ya friend Dwarf! I've got some of the finest quality steel ores in all the lands! It's a bit troublesome ta keep a large enough supply of it though, it bein sought after by every smith ya know. If you're needin some cash or ore how bout you [run an errand] fer me?"); + elseif(e.message:findi("errand")) then + e.self:Say("I was hopin you'd be up fer the job! Take this here crate and fill it with either Small Bricks of Unrefined Ore or Large Bricks of Unrefined Ore and I'll pay ya when ye return."); + e.other:SummonCursorItem(17814); --Empty Ore Crate + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10952})) then --Small Shipment of High Quality Ore + e.self:Say("Thank you! I will prepare the ore for sale and be open for business again momentarily. Here is your payment for your services."); + e.other:Faction(e.self,290,5); --Merchants of Kaladim + e.other:Faction(e.self,312,1); --Storm Guard + e.other:Faction(e.self,322,-1); --Miners Guild 628 + e.other:Faction(e.self,293,1); --Miners Guild 249 + e.other:Faction(e.self,274,1); --Kazon Stormhammer + e.other:QuestReward(e.self,0,0,0,14,0,5000); + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10953})) then --Large Shipment of High Quality Ore + e.self:Say("Thank you! I will prepare the ore for sale and be open for business again momentarily. Here is your payment for your services."); + e.other:Faction(e.self,274,5); --Kazon Stormhammer + e.other:Faction(e.self,290,1); --Merchants of Kaladim + e.other:Faction(e.self,322,-1); --Miners Guild 628 + e.other:Faction(e.self,293,1); --Miners Guild 249 + e.other:Faction(e.self,312,1); --Storm Guard + e.other:QuestReward(e.self,0,0,0,44,0,5000); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kaladimb/Infected_Rat.lua b/kaladimb/Infected_Rat.lua new file mode 100644 index 0000000..5b42f02 --- /dev/null +++ b/kaladimb/Infected_Rat.lua @@ -0,0 +1,10 @@ +function event_waypoint_arrive(e) + if(e.wp == 5) then + e.self:SetRunning(true); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladimb/Jark.lua b/kaladimb/Jark.lua new file mode 100644 index 0000000..25a79ed --- /dev/null +++ b/kaladimb/Jark.lua @@ -0,0 +1,34 @@ +-- Paladin Epic 1.0 +function event_spawn(e) + eq.set_timer("Nothin",4200000); +end + +function event_timer(e) + e.self:Emote("strikes the wall with his pick. A dull clang sounds throughout the cave. 'Arrr. Nothin' here either."); +end + + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("strikes the wall with his pick. A clacking sound echoes through the cave. 'Har har. There's something all right.'"); + elseif(e.message:findi("something")) then + e.self:Say("Huh? Oh, I struck me some silver. Ain't gonna make me rich but it'll sure pay for me minin' costs. Speakin of, that wife o' mine was supposed ta bring me food already. Hey, you, wanna go get me my dinner? I ain't got nothing ta pay ya with but I sure would appreciate it."); + elseif(e.message:findi("dinner")) then + e.self:Say("Har, I know you were a good sort. Nella has it. She's out there somewhere in the lower areas. She likes to visit the temple, so maybe she's there. Just tell 'er Jark sent ya and she'll prolly have everythin' ready fer me."); + eq.unique_spawn(67090,0,0,178.5,708.9,3.4,194.2); --spawn Nella Stonebraids + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29007})) then --cold plate of beef and bread + e.self:Say("Har, har! No time fer eatin' now! While you were gone I struck me a rich vein. Lookie here! Ya ever seen a gem so pure? It's tiny but clear as glass. Ya take it, " .. e.other:GetCleanName() .. ". Ya showed me some kindness, least I can do. Besides, still a share here for me."); + e.other:QuestReward(e.self,0,0,0,0,29006); --pure crystal + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladimb/Jeet.lua b/kaladimb/Jeet.lua new file mode 100644 index 0000000..2e219df --- /dev/null +++ b/kaladimb/Jeet.lua @@ -0,0 +1,87 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFaction(e.self) < 8) then + e.self:Say("What business do you have here?!! This here is the mine and that means if you ain't a [member of Miner's Guild 628], you'd best be moving on!!"); + else + e.self:Say("The word around the mines is that you are not to be trusted. You'd best leave before my dagger finds a new home in your back."); + end + elseif(e.message:findi("cleaner")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Darn that blasted clockwork cleaner!! No one in Kaladim even knows what it is! They all think it's some kinda rat in armor!! Rat paladins?!! The name fits. We miners have seen many like it in the gnome city during heists, err.. visits. We have to get rid of this one in Kaladim!! If you smash it and get its scrap metal, I am authorized to give you a mining cap, if you are a member of Miner's Guild 628."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("Don't take this personally, but I can't quite trust you with such matters. Maybe a few less Butcherblock bandits would prove your worth."); + else + e.self:Say("The word around the mines is that you are not to be trusted. You'd best leave before my dagger finds a new home in your back."); + end + elseif(e.message:findi("628") or e.message:findi("volunteer") or e.message:findi("run") or e.message:findi("collect")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- Requires amiable on live + if(e.message:findi("628")) then + e.self:Say("Well, then, get off yer rump and give us a hand! If you don't have a mining pick, then get down there and use your fingernails!! If you're new and you want to earn a pick, you can [volunteer to exterminate the rats] that have been infesting the mines!!"); + elseif(e.message:findi("volunteer")) then + e.self:Say("Well, someone has to do the dirty work around here. Let it be you new miners. Go patrol the mines and if you see any rats, bash them good!! Return to me with four rat pelts and I will give you some armor as payment. If you want a 628 mining cap, yer gonna have to smash that infernal [cleaner]!!"); + elseif(e.message:findi("run")) then + e.self:Say("Well, as you most likely know, we are a non-profit organization, at least here in Kaladim. We need to make our profit elsewhere and that means a little bit of thieving. Presently we need loyal members to [collect the gnome profit]."); + elseif(e.message:findi("collect")) then + e.self:Say("Take this key. Don't lose it!! You will need to use it on a metal rat called a scrubber. They are all over Ak'Anon. You must find the one that responds to the number, '628'. If it responds, use the key on it. It will hand over a bag with the 'gnome take'. Return it to me. Get moving!!"); + e.other:SummonCursorItem(12164); -- Scrubber Key + end + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("Don't take this personally, but I can't quite trust you with such matters. Maybe a few less Butcherblock bandits would prove your worth."); + else + e.self:Say("The word around the mines is that you are not to be trusted. You'd best leave before my dagger finds a new home in your back."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "What are you?! Some kinda' slacker?! I told you to return with FOUR rat pelts!"; + + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13054, item2 = 13054, item3 = 13054, item4 = 13054},1,text)) then -- Giant Rat Pelt + e.self:Say("It's about time you managed to smash these four!! Here. You do good work. We could use someone like you to [run to the gnome city]."); + e.other:Faction(e.self,322, 20); -- Miners Guild 628 + e.other:Faction(e.self,223, -1); -- Circle Of Unseen Hands + e.other:Faction(e.self,379, -1); -- Butcherblock Bandits + e.other:Faction(e.self,241, 1); -- Deeppockets + e.other:Faction(e.self,244, -3); -- Ebon Mask + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124),5000); -- Item(s): Small patchwork and small tattered set + elseif(e.other:GetFaction(e.self) < 4 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13282})) then -- Scrap Metal + e.self:Say("Great work!! We need this junk for something and we sure didn't need this rat sucking up any of our gems. Here. This is a Mining Cap 628. It's not much, but it is the mark of our miners and provides light for mining purposes. Hold onto it. You never know when we may call upon you to produce it."); + e.other:Faction(e.self,322, 15); -- Miners Guild 628 + e.other:Faction(e.self,223, -1); -- Circle Of Unseen Hands + e.other:Faction(e.self,379, -1); -- Butcherblock Bandits + e.other:Faction(e.self,241, 1); -- Deeppockets + e.other:Faction(e.self,244, -2); -- Ebon Mask + e.other:QuestReward(e.self,0,0,0,0,12165,5000); -- Miners Cap 628 + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12167})) then -- Gnome Take (Bad) + e.self:Say("What is all this junk!! That blasted tin rat is supposed to be heisting expensive goods from rich gnomes - not all this garbage!! Here. This is your cut of this junk."); + -- verified live faction + e.other:Faction(e.self,322, 5); -- Miners Guild 628 + e.other:Faction(e.self,223, -1); -- Circle Of Unseen Hands + e.other:Faction(e.self,379, -1); -- Butcherblock Bandits + e.other:Faction(e.self,241, 1); -- Deeppockets + e.other:Faction(e.self,244, -1); -- Ebon Mask + e.other:QuestReward(e.self,0,math.random(5),0,0,eq.ChooseRandom(10009,10015,10500,13220,10500,10016),5000); + elseif((e.other:GetFaction(e.self) < 5) and (item_lib.check_turn_in(e.self, e.trade, {item1 = 12162}))) then -- Gnome Take (Good) + e.self:Say("Good work miner. This is a fantastic haul!! Those wrinkly little gnomes don't know what is going on. Here is your cut. Now get back to work."); + -- verified live faction + e.other:Faction(e.self,322, 25); -- Miners Guild 628 + e.other:Faction(e.self,223, -1); -- Circle Of Unseen Hands + e.other:Faction(e.self,379, -1); -- Butcherblock Bandits + e.other:Faction(e.self,241, 1); -- Deeppockets + e.other:Faction(e.self,244, -3); -- Ebon Mask + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10005,10038,10017,10020,10006,10320),5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("I am working on it, Mater!!"); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladimb/Kinlo_Strongarm.lua b/kaladimb/Kinlo_Strongarm.lua new file mode 100644 index 0000000..0dc2e46 --- /dev/null +++ b/kaladimb/Kinlo_Strongarm.lua @@ -0,0 +1,52 @@ +-- enchanted clay quest/refined mithril blade -- ranger epic + +function event_spawn(e) + eq.set_timer("chant",math.random(1800000,2700000)); +end + +function event_timer(e) + e.self:Say("Mud, rock, crystals, gems, metal. Arrrrrr!"); +end + +function event_say(e)--indifferent or better + if(e.other:GetFaction(e.self) < 6) then + if(e.message:findi("mud")) then + e.self:Say("Eh? Oh, the clay. Arrr. Lots o' that mud round 'ere. Mostly, a good dwarf not be needin' somethin' so soft 'n squishy but the womenfolk, you know, the elves come lookin' fer it. If ye be one o' those pansy elves wantin' some mud fer workin' into fairy statues, flashy trinkets, 'n pig sticker arrers then I can get it for ye. Course I'd be lowerin' meself, a good dwarf, ta be diggin' that kinda mush outta the ground, but I can do it fer ya."); + elseif(e.message:findi("do it for me")) then + e.self:Say("Arrr. Shaddap. I ain't doin' it til ya bring me somethin'. A fee, I guess ye'd call it, fer lowerin' meself ta elf woman work. Go get me a good strong axe and I'll do it fer ye. Mebbe somethin' with a good tinted polish on it. I got plenty o' axes but no tinted ones. Har har! Colored axe. Somethin' to go with the color left on the blade after I be crackin open a gobbo head."); + elseif(e.message:findi("ancient")) then + e.self:Say("The ancient smiths, for what I think yer askin' about, ain't been around fer a long time, laddy. Last anyone heard o' the ancients was 'fore my time even. There be more than a few tales about 'em."); + elseif(e.message:findi("tales")) then + e.self:Say("There be some who talk about how the ancient smiths went down to work fer the Duke o' Below, sayin' he be needin' some fine dwarven smiths fer makin' some castle or some such. There be tales that the ancients were so good at smithin' that the Duke took 'em down and made 'em head smiths over his minions. There's even tales that some o' the smiths' souls were trapped in their hammers, stuck there by some necromancer or somethin', as punishment or retribution."); + elseif(e.message:findi("hammer")) then + e.self:Say("Aye. Some says their souls were bound into their hammers by an Erudite necromancer and enchanter. They say they used the power of the hammers ta profit by makin' ships, boats, and houses better than any other merchants. Sad tale, if'n it be true."); + elseif(e.message:findi("necromancer") or e.message:findi("enchanter")) then + e.self:Say("I'm not knowin' more about the story, lad. Everythin' I know is already in what I said. Aye, Erudites. I suppose if yer wantin' ta run after shortbeard tales ya can look over on that plague island they call Odus."); + elseif((e.message:findi("rock")) or (e.message:findi("gem")) or (e.message:findi("metal"))) then + e.self:Say("Aye, good stuff ta be workin' with."); + elseif(e.message:findi("arrrr")) then + e.self:Say("Har, har! Ooooo! Arrrrrr!"); + end + else + e.self:Emote("will not speak to you."); + end +end + +function event_trade(e) + local item_lib = require("items");--indifferent or better + if(e.other:GetFaction(e.self) < 7 and item_lib.check_turn_in(e.self, e.trade, {item1 = 5664},0)) then + e.self:Say("Arrrrr. Ooooo. Arrrrrr... Yah, now that's what I be callin' a good lookin' axe. I be crackin' a few skulls with this one. Oh, here's yer block o' mud. Our priests o' Brell use the mud pit fer relievin' themselves after really hard ale blessin' ceremonies, so ya ain't got ta be enchantin' it in holy water or anythin' cause they already have. Har har!"); + e.other:QuestReward(e.self,0,0,0,0,20455); + elseif(e.other:GetFaction(e.self) < 7 and item_lib.check_turn_in(e.self, e.trade, {item1 = 20478},0)) then + e.self:Emote("examines the hammer respectfully, admiring its craftsmanship. He strikes it against his anvil and winces as a howl fills the air. 'This is one of the ancients' hammers? I can almost, well, almost hear it callin ta me. It's strong, that's fer sure, lad. I don't know how ye got it, but aye, a dwarf could make a mighty blade with this. It's lookin like this thing still has its owner inside it though. I'm not knowin how, and not wantin to know, but fer yer own good ye better find some way ta get 'im out.'"); + e.other:QuestReward(e.self,0,0,0,0,20478); + elseif(e.other:GetFaction(e.self) < 7 and item_lib.check_turn_in(e.self, e.trade, {item1 = 20485},0)) then + e.self:Emote("looks at the hammer and nods once before slamming the head against his anvil, and shattering the head. In a cloud of dust, another dwarf appears from the cloud and tosses you a hunk of metal. Kinlo stares in awe."); + e.other:QuestReward(e.self,0,0,0,0,20482); + eq.spawn2(67089,0,0,-189.5,346.8,1.8,34.5); -- NPC: Usbak_the_Old + elseif(e.other:GetFaction(e.self) < 7 and item_lib.check_turn_in(e.self, e.trade, {item1 = 20482},0)) then + e.self:Say("Erm. Well, I ain't never worked with this stuff but here's what I got for ya. It ain't bad, pretty much like the one ye got there. I suppose ye should take the one the ancient made and show it ta yer friend."); + e.other:QuestReward(e.self,0,0,0,0,20483); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kaladimb/Marsha_Stonepenner.lua b/kaladimb/Marsha_Stonepenner.lua new file mode 100644 index 0000000..047ffa0 --- /dev/null +++ b/kaladimb/Marsha_Stonepenner.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". The Mining Journal has all the news fit fer dwarven eyes to feast upon."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladimb/Mater.lua b/kaladimb/Mater.lua new file mode 100644 index 0000000..31f419e --- /dev/null +++ b/kaladimb/Mater.lua @@ -0,0 +1,56 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFaction(e.self) < 8) then + e.self:Say("Welcome to the mines of Kaladim!"); + else + e.self:Say("The word around the mines is that you are not to be trusted. You'd best leave before my dagger finds a new home in your back."); + end + elseif(e.message:findi("ready to earn mining pick 628")) then + if(e.other:GetFaction(e.self) < 5) then -- Requires high amiable on live + e.self:Say("So you have heard of Mining Pick 628 and feel you are ready to wield one? You shall earn one with the return of the ogre head of [Boog Mudtoe] and the 300 gold pieces he still owes me. Don't return unless you have the head and the 300 gold!!"); + end + if(e.other:GetFaction(e.self) < 6) then + e.self:Say("Don't take this personally, but I can't quite trust you with such matters. Maybe a few less Butcherblock bandits would prove your worth."); + else + e.self:Say("The word around the mines is that you are not to be trusted. You'd best leave before my dagger finds a new home in your back."); + end + elseif(e.message:findi("boog mudtoe")) then + if(e.other:GetFaction(e.self) < 5) then -- Requires high amiable on live + e.self:Say("Boog Mudtoe is one of the last remaining ogres of the Mudtoe clan. We helped him escape the assault of the Stormguard for a small fee. Unfortunately for him, we have come to believe his head to be more valuable than the fee. We hear there is someone near the port of Butcherblock who knows of the Mudtoe's whereabouts."); + end + if(e.other:GetFaction(e.self) < 6) then + e.self:Say("Don't take this personally, but I can't quite trust you with such matters. Maybe a few less Butcherblock bandits would prove your worth."); + else + e.self:Say("The word around the mines is that you are not to be trusted. You'd best leave before my dagger finds a new home in your back."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I will not hand you a Mining Pick 628 until I see Boog Mudtoe's ogre head and my 300 gold pieces!"; + + if(e.other:GetFaction(e.self) < 6 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13316, gold = 300},1,text)) then -- Ogre Head + e.self:Say("Very good!! You found him. His head shall bring us a great reward from the Stormguard. And as for you, here is your Mining Pick 628. Only a member of 628 can wield this fine weapon. We are the only ones who can wield it in such a way as to pierce our foes."); + e.other:Faction(e.self,322, 10); -- Miners Guild 628 + e.other:Faction(e.self,223, -10); -- Circle Of Unseen Hands + e.other:Faction(e.self,379, -10); -- Butcherblock Bandits + e.other:Faction(e.self,241, 10); -- Deeppockets + e.other:Faction(e.self,244, -10); -- Ebon Mask + e.other:QuestReward(e.self,0,0,0,0,12161,5000); -- Mining Pick 628 + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18767})) then --Small, Folded Note + e.self:Say("Ah, welcome! We could use some fresh blood around here. The name's Mater, and I run this little outfit. Work hard for me, and I will reward you well. Cross me, and you'll find yourself buried under the mine cap. Now, let's get to work."); + e.other:Faction(e.self,322, 100); -- Miners Guild 628 + e.other:Faction(e.self,223, -5); -- Circle of Unseen Hands + e.other:Faction(e.self,379, -5); -- Butcherblock Bandits + e.other:Faction(e.self,241, 5); -- Deeppoockets + e.other:Faction(e.self,244, -15); -- Ebon Mask + e.other:QuestReward(e.self,0,0,0,0,13516,20); --Ruined Miner's Tunic + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + e.self:Say("Blast all these pesky rats!! Jeet, you need to get one of the new rogues.. I mean miners, to get rid of them!!"); + eq.signal(67018,1); -- NPC: Jeet +end diff --git a/kaladimb/Murlond_Everhot.lua b/kaladimb/Murlond_Everhot.lua new file mode 100644 index 0000000..b2e9ac9 --- /dev/null +++ b/kaladimb/Murlond_Everhot.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello, friend! I am Murlond, crafter of the strongest steel and [brellium weapons]!"); + elseif(e.message:findi("brellium")) then + e.self:Say("Brellium is an ore that is mined here in Kaladim! It can only be worked in the unique Stormguard forge! If ye're lookin' ta craft a brellium battle axe or battle hammer, ye'll need a mold for the head of the weapon, an oak shaft for the handle, some earthen temper, and either a sheet of brellium fer the battle hammer or a folded sheet of brellium fer the battle axe. If ye are in favor with the clerics of Underfoot, perhaps ye can convince one of them to assist ye in the crafting of [imbued weapons]."); + elseif(e.message:findi("imbued")) then + e.self:Say("Imbued battle axes of Brell, and imbued battle hammers of Brell are crafted in the same fashion as yer standard brellium weapon, only ye must forge a ruby that has been imbued by a cleric into the weapon at the time of its creation."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladimb/Myre.lua b/kaladimb/Myre.lua new file mode 100644 index 0000000..d0db96f --- /dev/null +++ b/kaladimb/Myre.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("I am not here to chitchat dear. If you need some gear, I can help. If you want to talk, go find a tavern."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladimb/Nella_Stonebraids.lua b/kaladimb/Nella_Stonebraids.lua new file mode 100644 index 0000000..b9ab40d --- /dev/null +++ b/kaladimb/Nella_Stonebraids.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("glances your direction, then returns to what she was doing."); + elseif(e.message:findi("jark") or e.message:findi("dinner")) then + e.self:Say("Ach! I forgot me husband's dinner. I'm so sorry. I was sendin' my wishes ta Brell for health and long life. I was just floatin' coins into the wishin' pool. Usually it's for children but things haven't been so good lately. Here, please take this to him and tell him where I was."); + e.other:SummonCursorItem(29007); -- Item: cold plate of beef and bread + eq.depop(); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladimb/Nultal_Malfoot.lua b/kaladimb/Nultal_Malfoot.lua new file mode 100644 index 0000000..8e4b135 --- /dev/null +++ b/kaladimb/Nultal_Malfoot.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("May the power of Underfoot be with you. Welcome. I am here to serve the will of the king as should you. If you [need healing], then speak. Or perhaps you are here to [return skunk glands]?"); + elseif(e.message:findi("healing")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Before the power of Underfoot can attempt to bind your wounds you must pay tribute. Three gold coins!!"); + else + e.self:Say("How dare you approach a member of the Clerics of Underfoot?! Dogs such as you lie in the same bed as aviaks and ogres!") + end + elseif(e.message:findi("glands")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I have made an offer to all clerics of this cathedral. I shall reward one cleric scroll from our scribes for the return of four skunk scent glands. This offer is best left to our clerics."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("The Clerics of Underfoot have yet to see your faith directed towards our wills. Perhaps you should assist Master Gunlok Jure in the crusade against the undead."); + else + e.self:Say("How dare you approach a member of the Clerics of Underfoot?! Dogs such as you lie in the same bed as aviaks and ogres!") + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "There shall be no scroll until I see four skunk scent glands."; + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {gold = 3})) then + e.self:Say("Be healed!"); + e.self:CastSpell(17,e.other:GetID(),0,1); --Light Healing + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 14030, item2 = 14030, item3 = 14030, item4 = 14030},1,text)) then --Skunk Scent Gland + e.self:Say("I thank you for your good deed. I trust it was not a problem. Take this scroll. A cleric of this cathedral will find it useful. May the power of Underfoot be with you."); + e.other:Faction(e.self,227,5,0); --Clerics of Underfoot + e.other:Faction(e.self,274,5,0); --Kazon Stormhammer + e.other:Faction(e.self,293,3,0); --Miners Guild 249 + e.other:QuestReward(e.self,0,5,0,0,eq.ChooseRandom(15203,15229,15560,15036,15216),2000); --Random Spell: Cure Poison, Fear, Furor, Gate, Stun + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kaladimb/Priestess_Ghalea.lua b/kaladimb/Priestess_Ghalea.lua new file mode 100644 index 0000000..0ba18f4 --- /dev/null +++ b/kaladimb/Priestess_Ghalea.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Church of Underfoot. Please open your soul to the greatness of Brell Serilis. May he guide you in all your future eavors. And may your soles long for the [Soil of Underfoot]."); + elseif(e.message:findi("soil")) then + if(e.other:GetFaction(e.self) > 3 ) then -- kindly or better to get quest. + e.self:Say("The Clerics of Underfoot have yet to see your faith directed towards our wills. Perhaps you should assist Master Gunlok Jure in the crusade against the undead."); + else + e.self:Say("I can trust you with the soil of Underfoot, but first you must obtain four portions of fairy dust. Return them to me and I shall mix it and pray over it. Then I shall give you a pouch of soil of Underfoot."); + end + elseif(e.message:findi("candle")) then + e.self:Say("The Candle of Bravery is used for temple ceremonies here in Kaladim. When the candle burns out, I must venture to the frigid village of Halas far to the north of the continent of Antonica. There I will take the candlestick and the [soil of Underfoot] to Dok. He must create the candle in the very ornate candlestick."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "'I will need four portions of fairy dust to create the soil of Underfoot."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18765})) then + e.self:Say("Welcome to the Underfoot Cathedral. I am High Priestess Ghalea. Here is your guild tunic. Now. let's get you started helping us spread the will of Brell."); + e.other:Faction(e.self,227,100); -- Clerics of Underfoot + e.other:Faction(e.self,274,100); -- Kazon Stormhammer + e.other:Faction(e.self,293,75); -- Miners Guild 249 + e.other:QuestReward(e.self,0,0,0,0,13514,20); -- Item: Dusty Tunic* + elseif(e.other:GetFaction(e.self) < 4 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12106, item2 = 12106, item3 = 12106, item4 = 12106},1,text)) then -- Fairy Dust need kindly as verified from live + e.self:Say("May the mighty power of Brell saturate this soil with his divinity. Here you are, my noble friend. You may have a pouch of the soil of Underfoot."); + -- verified live faction + e.other:Faction(e.self,227,5); -- Clerics of Underfoot + e.other:Faction(e.self,274,5); --Kazon Stormhammer + e.other:Faction(e.self,293,3); --Miner's guild 249 + e.other:QuestReward(e.self,0,0,0,0,12282,1000); -- Soil of Underfoot + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kaladimb/Ragunk_Everhot.lua b/kaladimb/Ragunk_Everhot.lua new file mode 100644 index 0000000..adb9e13 --- /dev/null +++ b/kaladimb/Ragunk_Everhot.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ye Gods, that's the stuff!' Ragunk burps loudly as he takes a swig from a small flask on his forge. 'Fit for the King himself! Maybe I can get this [armor] finished on time!"); + elseif(e.message:findi("armor")) then + e.self:Say("Don't interrupt me, child. I'm drinking.' Ragunk staggers and takes another swig from his flask. 'Say, do you know anything about [chainmail] or [platemail]?"); + elseif(e.message:findi("chainmail")) then + e.self:Say("Hah! I thought not. I've recently come into contact with a very interesting person. Very interesting indeed.' Rungak burps again. 'Not that I ever saw his face mind, that bloody dark robe is enormous! He did have some good ideas about [brellium] though."); + elseif(e.message:findi("platemail")) then + e.self:Say("Heavy duty stuff, very serious it is. With enchanted brellium chain jointing, my dwarven hammer, earthen temper, a small plate mold and a few [infused sheets] of brellium, the sky is the limit! It looks as if it'd take imbuing, too."); + elseif(e.message:findi("brellium")) then + e.self:Say("Well, he showed me how to work it into stronger rings than before. Taking a few velium rings, and then working in a large brick of enchanted brellium, with my dwarven smithy hammer, and a little [strange temper]. Then I used that to make the chainmail. Such a simple [method]!"); + elseif(e.message:findi("infused sheet")) then + e.self:Say("An enchanted large brick of brellium can be worked into a folded velium sheet with a dwarven smithy hammer. Don't forget that [strange temper], too - that's the secret to all this!"); + elseif(e.message:findi("strange temper")) then + e.self:Say("My new friend gave me enough to make several sets of armor, it really is quite something.' Ragunk takes a mouthful of pungent drink from his flask, you think that his eyes look a little nervous. 'I'm not sure what's in it, but my old Dwarven eyes detected a fine, blue powder within. Who knows!"); + elseif(e.message:findi("method")) then + e.self:Say("You're all questions, aren't you! Take your dwarven hammer, and a small piece of leather armor, earthen temper, a small sectional mold and then some of the infused brellium rings, and you've a handy set of linked chain! I may try imbuing later, maybe peridot or ruby would work. All in the dwarf forge, of course!"); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladimb/Tortuk_Everhot.lua b/kaladimb/Tortuk_Everhot.lua new file mode 100644 index 0000000..f1feed2 --- /dev/null +++ b/kaladimb/Tortuk_Everhot.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to the Everhot Forges! Home of the finest smiths in all of Kaladim! I teach experienced smiths how to work [brellium ore] and craft the finest dwarven [battle shields] and [dwarven plate]."); + elseif(e.message:findi("dwarven plate")) then + e.self:Say("So ye're interested in crafting dwarven plate, are ye? In order to successfully craft yerself some dwarven plate, ye'll need ta go to the Stormguard forge with the appropriate small plate section mold, some earthen temper, yer dwarven smithy hammer, some leather padding, brellium chain jointing, and the correct amount of metal ye need fer the piece ye are planning on crafting. Visors, collars, bracers, and boots require one folded sheet of brellium. Helms, pauldrons, girdles, vambraces, and gauntlets require two folded sheets of brellium. Breastplates, cloaks, and greaves require three folded sheets of brellium. Ye can also have a cleric imbue a ruby for ye ta forge inta the plate if ye be a friend ta our father Brell."); + elseif(e.message:findi("brellium ore")) then + e.self:Say("Brellium is a dense, sturdy ore mined here in Kaladim. It takes a strong arm and our unique Stormguard Forge to work due to the ore's strength and resistance to heat. Brellium is worked in the same fashion as standard ore but must be tempered with dwarven ale instead of water."); + elseif(e.message:findi("battle shield")) then + e.self:Emote("grins widely beneath his thick, soot-covered beard and says, 'Ta craft yerself a battle shield, ye'll need ta get yerself a small kite shield mold, a block of brellium, a dwarven smithy hammer, and some earthen temper. Don't ye forget that brellium items can only be crafted in the unique Stormguard Forge. If ye be one o' Brell's faithfull then ye may want ta have a cleric imbue a ruby for ye ta craft inta the shield."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kaladimb/Trantor_Everhot.lua b/kaladimb/Trantor_Everhot.lua new file mode 100644 index 0000000..a302fe2 --- /dev/null +++ b/kaladimb/Trantor_Everhot.lua @@ -0,0 +1,30 @@ +--Quest for North Kaladim - Trantor Everhot: Tumpy Tonics + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Yes, yes!! I am a very busy man. I've got blueprints to work on, [dwarven wire] to perfect and formulae to calculate. In between those tasks, I have to find time to head down to Irontoe's and down a few Tumpy Tonics."); + elseif(e.message:findi("dwarven wire")) then + e.self:Say("Oh!! Interested in my dwarven wire, are you? Many are. I have no problem letting you use a spool, but I have to warn you that I have not perfected the strength of it yet. I will make you a trade. A couple of [Tumpy Tonics] for a spool."); + elseif(e.message:findi("tumpy tonics")) then + e.self:Say("Aaah!! I love Tumpy Tonics. They were created by Tumpy Irontoe. He was once a member of the famed Irontoe Brigade. Since they disbanded and left for parts unknown he decided to stay in Kaladim and open Irontoe's, the finest well in Faydwer."); + elseif(e.message:findi("irontoe")) then + e.self:Say("If you're asking about the Brigade, who knows where they are?! If you're looking for Irontoe Tavern, it's here in Kaladim, near the arena."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Hey! Only one?!"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12114, item2 = 12114},1,text)) then --Tumpy Tonic (Only 2) + e.self:Say("Great! I did not have the time to get down to Irontoe's today. Here. Like I said. A spool of dwarven wire. Now go away. I ain't sharing these tonics."); + e.other:Faction(e.self,312,1); --Storm Guard + e.other:Faction(e.self,274,1); --Kazon Stormhammer + e.other:Faction(e.self,293,1); --Miners Guild 249 + e.other:Faction(e.self,290,1); --Merchants of Kaladim + e.other:Faction(e.self,232,-1); --Craknek Warriors + e.other:QuestReward(e.self,0,0,0,0,12111,1000); --Dwarven Wire + + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kaladimb/Usbak_the_Old.lua b/kaladimb/Usbak_the_Old.lua new file mode 100644 index 0000000..6f2b112 --- /dev/null +++ b/kaladimb/Usbak_the_Old.lua @@ -0,0 +1,23 @@ +-- refined ancient sword - ranger epic +function event_spawn(e) + eq.set_timer("depop",1800000); +end + +function event_timer(e) + eq.depop(); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Took ya long enough! Ye'd think ya had an Orc head on them shoulders there. I'm owin' ya for yer help though. Else I'd have been on that darn hammer for ages. Ye said ya had an ancient blade or somethin ta be smithin. If so lemme see it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20477},0)) then + e.self:Emote("admires the blade and then starts to bang the edge with a hammer. 'Hah, that was a good blade, no doubt. Ain't seen one I couldn't make better though. I'm knowin' yer cause and all I know is ye should take that ancient blade ta yer friend in the woods, he'll know what to do now. With that I'm gonna be takin muh leave. Debt paid and all. If'n yer wantin' another blade, which ye do, ye got enough ore left that Kinlo can do it for ye'"); + e.other:QuestReward(e.self,0,0,0,0,20481); --refined ancient sword + eq.depop(); + end +end diff --git a/karnor/#Venril_Sathir.lua b/karnor/#Venril_Sathir.lua new file mode 100644 index 0000000..e81310e --- /dev/null +++ b/karnor/#Venril_Sathir.lua @@ -0,0 +1,9 @@ +-- triggered version of Venril Sathir. set to despawn in 1 hour if left alone. + +function event_spawn(e) + eq.set_timer("depop",3600000); +end + +function event_timer(e) + eq.depop(); +end diff --git a/karnor/Spirit_of_Venril_Sathir.lua b/karnor/Spirit_of_Venril_Sathir.lua new file mode 100644 index 0000000..2967099 --- /dev/null +++ b/karnor/Spirit_of_Venril_Sathir.lua @@ -0,0 +1,30 @@ +-- pulsing green stone - ranger/druid epic + +function event_spawn(e) + eq.set_timer("depop",1800000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("So mortals, you seek to end the tainting of Tunare's children? So be it, I have no cares. My death has been caused by this foolishness and I want no more to do with it. Bring me a scroll with the knowledge of resurrection so that I may once again live. I will hand you that which you seek."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 15392})) then + e.self:Say("I am alive! My thanks to you, " .. e.other:GetCleanName() .. ". And now I will aid you in your quest for preserving the forests of norrath. Your carcass will help nurture the soils of the wilderness."); + eq.spawn2(102021,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/karnor/Venril_Sathir.lua b/karnor/Venril_Sathir.lua new file mode 100644 index 0000000..4cd0cfb --- /dev/null +++ b/karnor/Venril_Sathir.lua @@ -0,0 +1,6 @@ +-- pulsing green stone - ranger/druid epic +function event_spawn(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(102099)) then -- Depop VSR if VSR is up. + eq.depop_with_timer(102099); + end +end diff --git a/karnor/Venril_Sathirs_remains.lua b/karnor/Venril_Sathirs_remains.lua new file mode 100644 index 0000000..df0b3aa --- /dev/null +++ b/karnor/Venril_Sathirs_remains.lua @@ -0,0 +1,27 @@ +-- pulsing green stone - ranger/druid epic +function event_spawn(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(102010)) then -- if VS is up. VSR will depop. + eq.depop_with_timer(); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("The living fire. I seek the fires of life. Bring them."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10295})) then + e.self:Emote("grasps the glowing sphere of fireflies from your hands. Tendrils of mystical energy begin to flow forth from the swarm of glowing insects like tiny fingers. The glowing tendrils begin to reach into the ribcage of the rotting remains of Venril Sathir, coalescing into the form of an iksar ghost."); + eq.spawn2(102019,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/karnor/a_human_skeleton.lua b/karnor/a_human_skeleton.lua new file mode 100644 index 0000000..a6dae58 --- /dev/null +++ b/karnor/a_human_skeleton.lua @@ -0,0 +1,21 @@ +-- Quest: Brain Bite (Concussion) +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Save my.. Soul.. Find.. Wizard.. Desp.."); + end +end + +function event_trade(e) + local item_lib = require("items"); + -- Hand in Ryla's Bottle + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12964})) then + e.other:QuestReward(e.self,0,0,0,0,12967); -- Bottle of swirling smoke (Ryla's soul) + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/katta/##Legionnaire_Claudius.lua b/katta/##Legionnaire_Claudius.lua new file mode 100644 index 0000000..b77ad97 --- /dev/null +++ b/katta/##Legionnaire_Claudius.lua @@ -0,0 +1,21 @@ +local count = 0; + +function event_spawn(e) + eq.set_timer("attack",2000); +end + +function event_timer(e) + if(e.timer == "attack") then + count = count + 1; + if(count == 1) then + eq.spawn2(160139,0,0,-1191,-6,-266,0); + elseif(count == 2) then + eq.spawn2(160139,0,0,-1191,-6,-266,0); + eq.spawn2(160139,0,0,-1191,-6,-266,0); + eq.spawn2(160138,0,0,-1005,54,-266,0); + elseif(count == 3) then + e.self:Say("I have been discovered! You should have left well enough alone!!!") + eq.stop_timer("attack"); + end + end +end diff --git a/katta/#Legionnaire_Claudius.lua b/katta/#Legionnaire_Claudius.lua new file mode 100644 index 0000000..8413f0f --- /dev/null +++ b/katta/#Legionnaire_Claudius.lua @@ -0,0 +1,35 @@ +function event_say(e) + local vahn = eq.get_entity_list():GetMobByNpcTypeID(160137); + if(e.message:findi("traitor to the Validus Custodus")) then + if(vahn.valid) then + eq.unique_spawn(160140,0,0,vahn:CastToNPC():GetX(),vahn:CastToNPC():GetY(),vahn:CastToNPC():GetZ(),vahn:CastToNPC():GetHeading()); + eq.depop(160137); + eq.unique_spawn(160141,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop(); + end + end +end + +function event_waypoint_arrive(e) + local vahn = eq.get_entity_list():GetMobByNpcTypeID(160137); + if(e.wp == 34) then + eq.unique_spawn(160137,0,0,-1149,67,-265,100); + elseif(e.wp == 35) then + if(vahn.valid) then + vahn:Emote("speaks with Legionnaire Claudius in hushed tones. Their whispers cannot be heard, but there is certainly something suspicious in their demeanor."); + end + elseif(e.wp == 36) then + if(vahn.valid) then + vahn:Emote("passes something to Claudius and gets a rolled up parchment in return. Their business appears to be completed and both parties prepare to go about their business."); + end + elseif(e.wp == 37) then + if(vahn.valid) then + vahn:Emote("glances in either direction and nods at Claudius before disappearing back into the shadows."); + e.self:Emote("looks to Vahn tentatively, 'We shall meet again soon.'"); + vahn:Say("Perhaps"); + vahn:Emote("steps out of the shadows as though appearing out of thin air."); + end + eq.depop(160137); + eq.depop(); + end +end \ No newline at end of file diff --git a/katta/#Miller.lua b/katta/#Miller.lua new file mode 100644 index 0000000..23228f2 --- /dev/null +++ b/katta/#Miller.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ho there. Whatcha want? Yer interruptin' Arboast's story- he was just in the middle of laying some truth on me."); + end +end diff --git a/katta/#Nathyn_Illuminious.lua b/katta/#Nathyn_Illuminious.lua new file mode 100644 index 0000000..caf569c --- /dev/null +++ b/katta/#Nathyn_Illuminious.lua @@ -0,0 +1,26 @@ +function event_say(e) + local qglobals = eq.get_qglobals(e.self,e.other); + + if(e.message:findi("hail")) then + e.self:Say("I do not believe that I invited you to enter my home. If this is not a visit concerning a pressing issue that may pique my concern then please remove yourself from these premises. I am a very busy man and have no time to waste on the concern of commoners."); + elseif(qglobals["first_badge_nathyn"] ~= nil and e.message:findi("valdanov zefeer")) then + e.self:Say("Valdanov Zevfeer was a talented alchemist from Shadow Haven with whom I had many dealings. He would bring me components for my enchantment research from all the various environments here on Luclin. Since Valdanov had been such a valuable aid to me in the past I decided to return the favor and allowed him residence within my abode and helped to further fund his research as long as he assisted me in my own enchantment studies. He has since left to continue to pursue his own interests and I have not heard from him in [quite some time]."); + elseif(qglobals["first_badge_nathyn"] ~= nil and e.message:findi("quite some time")) then + e.self:Say("Valdanov departed many years ago. He had become dangerously obsessive with his research of vampyre physiology and the effects of various alchemical formulae on the undead creatures. His obsession began when a traveler arrived in Katta Castellum speaking of a Vah Shir vampyre. Valdanov began leaving the safety of the city frequently in search of this undead Vah Shir and for questionable alchemical reagents with which he insisted on testing on [captured vampyres] being studied by the Magus Conlegium."); + elseif(qglobals["first_badge_nathyn"] ~= nil and e.message:findi("captured vampyres")) then + e.self:Say("After an unfortunate mishap with an escaped vampyre in the city the Magus Conlegium and the Validus Custodus declared that no vampyres shall ever again enter the city of Katta Castellum and only their ashes or blood may be studied under the careful observation of the Magus Conlegium. I am very sorry but I have some pressing business I must attend to and I'm afraid I have nothing more to offer. You may take this information back to Magistrate Phenic as he has requested."); + e.other:QuestReward(e.self,0,0,0,0,31755); -- Report of Nathyns Questioning + eq.delete_global("first_badge_nathyn"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31752}, 0)) then + e.self:Say("Ahh I see you're assisting Phenic. Perhaps looking into more information on [Valdanov Zefeer]?"); + eq.set_global("first_badge_nathyn","1",0,"F"); + e.other:QuestReward(e.self,0,0,0,0,31754); -- Second Badge of Service + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/#a_coterie_assassin.lua b/katta/#a_coterie_assassin.lua new file mode 100644 index 0000000..007e456 --- /dev/null +++ b/katta/#a_coterie_assassin.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",math.random(300000,1200000)); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end diff --git a/katta/Aerin_K-Vekn.lua b/katta/Aerin_K-Vekn.lua new file mode 100644 index 0000000..03ba56c --- /dev/null +++ b/katta/Aerin_K-Vekn.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". Are you a [Norrathian]?"); + elseif(e.message:findi("Norrathian")) then + e.self:Say("My husband has told me many tales of the lands of Norrath. I wish to one day see them myself but apparently most people would not accept our family there. We are fortunate I suppose to be living in Katta Castellum where people do not judge each other by their appearances but instead by their integrity."); + end +end diff --git a/katta/Arabella_Augustleaf.lua b/katta/Arabella_Augustleaf.lua new file mode 100644 index 0000000..2cb64cd --- /dev/null +++ b/katta/Arabella_Augustleaf.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Midnight Ceramics! The clay native to these lands is excellent for crafting a wide variety of ceramics. You'll have a bit of trouble if you're planning on sun baking your creations however! giggle... giggle."); + end +end diff --git a/katta/Arbogast.lua b/katta/Arbogast.lua new file mode 100644 index 0000000..a9e5e0b --- /dev/null +++ b/katta/Arbogast.lua @@ -0,0 +1,83 @@ +function event_say(e) + miller = eq.get_entity_list():GetMobByNpcTypeID(160376); + + if(e.message:findi("hail")) then + e.self:Say("Hello there weary adventurer. do you come seeking the truth?"); + elseif(e.message:findi("truth")) then + e.self:Say("The truth is a precarious thing, twisted and torn by those that would deceive for their own nefarious purposes. That is why there are people like me to guide the ignorant masses that know no better than to believe that which they are told."); + if(miller.valid) then + miller:Say("Yeah, you tell 'em Arbogast! I bet this one doesn't even know what's going on right under his nose in this here city. Like for example, you probably don't even know the truth about about his importantness Phenic Dionicas do you?"); + end + elseif(e.message:findi("phenic")) then + e.self:Say("He that battles what he truly is only truly battles himself. Phenic Dionicas for years has made quite a show of his war on the Vampyres of Tenebrous. This misdirection of truth serves only to keep people from discovering that he himself is a foul demon of the night. Miller and I, for our singular vision of that which is true, are not well liked in this city and so cannot obtain proof for your disbelieving eyes."); + elseif(e.message:findi("proof")) then + e.self:Say("You wish to see the truth for yourself? That is good, you will be taking your first step down a winding road to the only fulfillment this existence has to offer: enlightenment. Take this flask of water, I have blessed it such that it will singe the skin of the unholy. Go to Phenic Dionicas and give it to him, then you will see... you will see."); + if(miller.valid) then + miller:Say("Yeah, splash it right in his unliving face!"); + end + e.other:SummonCursorItem(29899); + elseif(e.message:findi("tsaph")) then + e.self:Say("When you fake your death to discredit another you only discredit yourself when another sees your death was faked. Yes, you heard me correctly, Tsaph Katta lives on here in this city, can you guess who it is he pretends to be?"); + if(miller.valid) then + miller:Say("Ooh! I know, I know! Nathyn Illuminious!!!"); + e.self:Say("Yes, yes, I know you know... very good Miller"); + miller:Emote("beams a smile your way."); + end + elseif(e.message:findi("exist")) then + e.self:Say("You are beginning to see the truest truths as the only true truths now, are you not? That large blue orb that hangs in the Luclin sky from time to time is nothing more than an overgrown comet. What appear to be land masses and other geological features are in actuality powerful illusions cast upon the comet by Tsaph Katta himself so that panic does not spread amongst the ignorant masses. I am not one to spread conjecture, but it is possible that Katta's astronomers have discovered that the comet is hurtling slowly toward Luclin and will destroy all life on the planet, so you can see why he would want to keep the truth about the [Exodus] from his journal."); + elseif(e.message:findi("exodus")) then + e.self:Say("The Exodus is the single biggest lie propagated onto the people of Katta Castellum in the known history of the intelligent races. Hogwash I tell you."); + if(miller.valid) then + miller:Say("A bloody, boldfaced lie!"); + e.self:Say("A story told to children. Tsaph Katta wove together a tale of Seru trying to kill him on the fantasy world of 'Norrath' and how the entire combine fled here to escape from him... a wheel of lies, do you see how they interconnect? Why, I'll bet that even in Shadowhaven, the very site of this alleged 'Exodus' and home to one of the grandest libraries you will ever see, not a single shred of reliable evidence regarding such an event could be found. HA! You bring me a book on this 'Exodus' and Miller here will eat his hat! Especially if the book is wrapped in that gold paper I gave you..."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + miller = eq.get_entity_list():GetMobByNpcTypeID(160376); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29898}, 0)) then + e.self:Say("He simply gave this to you? Cunning indeed for him to cover his weakness so thoroughly- he must have powerful protective enchantments in place, no doubt put in place by his good friend and associate, Tsaph Katta!"); + e.other:Faction(e.self,1577,10); + e.other:QuestReward(e.self,0,0,0,0,17516,100000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29692}, 0)) then + e.self:Say("Ahh, you have retrieved the memoirs, let me see.' Arbogast opens the book and starts flipping through pages, 'Yes here, you... no, wait it must be back... hrmmm, maybe he... but it must... Well, that was pretty clever of old Tsaph Katta, removing any record of who he truly is- probably did it to cover up the fact that Norrath does not really exist."); + e.other:Faction(e.self,1577,10); + e.other:QuestReward(e.self,0,0,0,0,17517,100000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29694}, 0)) then + e.self:Say("Ahhh, excellent... I am glad to see your interest piqued. It is the truth that will liberate the masses when the masses fail to liberate the truth. To continue to divine and demystify the truth from the mistruth, I employ a powerful component known to the Akheva as 'Akuel xi ans Vius' which translated means 'Thing that tells Truth."); + e.other:Faction(e.self,1577,10); + e.other:QuestReward(e.self,0,0,0,0,17518,100000); -- black wrapping paper + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(160226)) then + eq.get_entity_list():GetMobByNpcTypeID(160226):Say("It translates to 'Gift of the Dark' you fool!"); + e.self:Say("Oh, the foolish and naive, they are the salt of the land... anyhow, bring me two of these wrapped in the black paper you have and I shall reward you, my new ally of truth, with a cherished robe that was given us by Seru himself. Isn't that right Miller? Miller...") + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29695}, 0)) then -- black wrapped item + e.self:Say("Oh, would you look at that?"); + e.other:Faction(e.self,1577,10); + e.other:QuestReward(e.self,0,0,0,0,0,100000); + if(miller.valid) then + miller:Emote("looks a bit distressed and says to Arbogast, 'You said he would die getting these and we could keep...' Arbogast silences Miller with a kick under the table and smiles broadly at you, 'Well done and my very sincere thanks to you. The cloak is in the bank, Miller and I each hold a piece of it. We will go get it for you now.' Miller and Arbogast lean in close to each other and discuss this in whispers for a moment before getting up and heading out, Miller looking most dejected.") + miller:CastToNPC():DoAnim(27); + e.self:Say("Right then, let's get going Miller."); + miller:CastToNPC():AssignWaypoints(24); + end + eq.start(23); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if(e.wp == 9) then + if(miller.valid) then + miller:Emote("and Arbogast do their business with the bank, Miller retrieving a heavy brown cloak and Arbogast a beautiful golden clasp. They look up at each other, unable to bear the thought of actually parting with their treasures when Arbogast says, 'You know what? I think we'll keep them. Thanks for your help, don't be a stranger. Come now Miller, let's not be a bother.' With that, they both tear off out the door"); + miller:Say("Wait for me!"); + eq.spawn2(160111,26,0,miller:CastToNPC():GetX(),miller:CastToNPC():GetY(),miller:CastToNPC():GetZ(),miller:CastToNPC():GetHeading()); + eq.depop_with_timer(160376); + end + eq.spawn2(160004,25,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end +end diff --git a/katta/Arialestra_Dionicas.lua b/katta/Arialestra_Dionicas.lua new file mode 100644 index 0000000..f92b5fa --- /dev/null +++ b/katta/Arialestra_Dionicas.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met " .. e.other:GetCleanName() .. "! I pray that you have learned of the teachings of Tsaph Katta during your visit to Katta Castellum. I am Arialestra Dionicas, the Governess of Faith. Many begin to lose faith in such dark times but through our devotion to the will of Tsaph Katta and the maintaining of the traditional teachings of the Gods of Light we are able to move forward and progress despite the burdens of our troubles."); + end +end diff --git a/katta/Avir_Sterbla.lua b/katta/Avir_Sterbla.lua new file mode 100644 index 0000000..1a39ca3 --- /dev/null +++ b/katta/Avir_Sterbla.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". I am Avir Sterbla, Governor of Magician Studies here at the Magus Conlegium of Katta Castellum. I am currently in the middle of researching more effective magical methods of combating the [vampyres] of the Coterie of the Eternal Night. Governor Drenic Garrison has been assisting me with the scientific side of the research, that having to do with physical materials that have detrimental effects on the vampyres while my research is more with magical elements."); + elseif(e.message:findi("vampyres")) then + -- Part of Vampyre Ash and Blood + e.self:Say("The vampyres are becoming a larger threat to the safety of our citizens and it is the responsibility of the Magus Conlegium to find magical ways of stifling this threat while the Validus Custodus fight them with physical means. However, I am running short on research components. I will trade for every four samples of vampyre blood or every four piles of vampyre ashes."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + -- Handin: 4x Vampyre Ashes (2692) or 4x Vampyre Blood (2693) + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2692,item2 = 2692,item3 = 2692,item4 = 2692}, 0) or item_lib.check_turn_in(e.self, e.trade, {item1 = 2693,item2 = 2693,item3 = 2693,item4 = 2693}, 0)) then + e.self:Say("Thank you " .. e.other:GetCleanName() .. "! These samples will be put to good use I assure you. The Coterie will not stand much longer against the forces of Katta Castellum."); + e.other:Faction(e.self,1504,3); -- +Magus Conlegium + e.other:Faction(e.self,1502,1); -- +Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- +Validus Custodus + e.other:Faction(e.self,1483,-1); -- -Seru + e.other:Faction(e.self,1484,-1); -- -Hand of Seru + e.other:Faction(e.self,1485,-1); -- -Eye of Seru + e.other:Faction(e.self,1541,-1); -- -Hand Legionnaries + e.other:QuestReward(e.self,{items = {10015,10015,10015,10015,10015,10015,10015,10015},exp = 5000}); -- Malachite 8x + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Berk_Thurstone.lua b/katta/Berk_Thurstone.lua new file mode 100644 index 0000000..f2444e1 --- /dev/null +++ b/katta/Berk_Thurstone.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("startles and gazes up at you. 'Careful, careful... I am nearly out of [pyrrhotite].'"); + elseif(e.message:findi("pyrrhotite")) then + e.self:Say("Pyrrhotite is the name of this ore I have my hands on here. Ye see, I may still look an able-bodied dwarf, full o' spit and fire, but the time is coming where'n I may lose a step or two and they will take me off post- I want to be prepared for that time. I have been doing some [experiments] on this piece of rock, trying to have something to bring to Toktonn and maybe secure a job in ore studies for meself after retirin' from the Validus Custodus."); + elseif(e.message:findi("experiments")) then + e.self:Say("Well, there is a powerful magnetic quality to this particular rock, but it is very inconsistent. If I can figure out what makes it tick, it'd sure be a boon to some o' that crazy engineering the gnomes're always doing. This sample is running out though, and it ain't easy to come by what with the durned grimlings hogging the mines, I'd sure appreciate it if someone were to bring me some more. Careful though, it's deceptively heavy."); + elseif(e.message:findi("grimling")) then + e.self:Say("Bah! Them uglies ain't much fer sharin' the mines outside the city in Tenebrous, I tell ye that much."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29843}, 0)) then -- Handin: 1x Pyrrhotite Sample (29843) + e.self:Say("Aww, noice, this'll do just right. Thanks millions, " .. e.other:GetCleanName() .. ". Yer ok by me, ye are."); + -- live faction verified + e.other:Faction(e.self,1503,4); -- +Validus Custodus + e.other:Faction(e.self,1502,1); -- +Katta Castellum Citizens + e.other:Faction(e.self,1504,1); -- +Magus Conlegium + e.other:Faction(e.self,1505,-1); -- -Nathyn Illuminious + e.other:Faction(e.self,1506,-1); -- -Coterie of the Eternal Night + e.other:Faction(e.self,1483,-1); -- -Seru + e.other:Faction(e.self,1484,-2); -- -Hand of Seru + e.other:Faction(e.self,1485,-1); -- -Eye of Seru + e.other:Faction(e.self,1541,-1); -- -Hand Legionnaries + e.other:QuestReward(e.self,0,0,0,0,0,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/katta/Blaylok_Geerlok.lua b/katta/Blaylok_Geerlok.lua new file mode 100644 index 0000000..9d5088b --- /dev/null +++ b/katta/Blaylok_Geerlok.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks up from his workbench and sets down an unidentifiable contraption. 'Oh, excuse me! Please have a look at my wares and let me know if there's anything you need"); + end +end diff --git a/katta/Broote_Malicus.lua b/katta/Broote_Malicus.lua new file mode 100644 index 0000000..8357c0a --- /dev/null +++ b/katta/Broote_Malicus.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! I am Magistrate Broote Malicus of the Loyalist Combine Empire. Have you come to me to learn of the Vah Shir or for another matter?"); + elseif(e.message:findi("come to learn")) then + e.self:Say("The Vah Shir are a noble and honorably race who were displaced from their previous homeland to the moon of Luclin. The details of the means and cause of their arrival is hazy but it seems that unlike our ancestors of the Combine Empire it was not an intentional sojourn. When the Vah Shir arrived their society was thrust into disarray and they had to rebuild from the rubble of their previous glory. The Vah Shir shaman were no longer able to contact the spirits they had been so familiar with back in their former homeland much like my own [ancestors]."); + elseif(e.message:findi("ancestors")) then + e.self:Say("I come from a long lineage of practitioners of traditional shamanism. When my ancestors first arrived on Luclin the spirits they were familiar with and had contacted for their rituals for so many years were unreachable. Eventually a relationship was formed with the spirits native to Luclin and our shamanistic traditions were restored, albeit with slight modifications due to dealing with previously foreign spirits. The shaman that resided here in Katta Castellum were able to assist the Vah Shir spiritists in becoming familiar with the native spirits so that their traditions too could be restored. In exchange for the aid of the Loyalist Combine Empire the Vah Shir taught us the ways of the Beastlord, a path which I now follow as did my father and his father before him."); + end +end diff --git a/katta/Celris_Shadetracker.lua b/katta/Celris_Shadetracker.lua new file mode 100644 index 0000000..5d875c0 --- /dev/null +++ b/katta/Celris_Shadetracker.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail " .. e.other:GetCleanName() .. "! It is a pleasure to have such seasoned adventurers visit our noble city. I am Magistrate Celris Shadetracker of the Loyalist Combine Empire. I was of the original members of the Combine Empire to arrive here on Luclin and have since become quite familiar with its many lands and their inhabitants. I used to travel extensively but in my old age I have found comfort in remaining here at the Tsaph Katta Hall telling younger explorers of my many journeys and teaching them of the [dangers] that abound."); + elseif(e.message:findi("dangers")) then + e.self:Say("There are dangers everywhere for one does not know what to expect or is not careful and attentive while traveling the lands of Luclin. Among the largest of dangers in this region of Luclin are the vampyres of the Coterie of the Eternal Night. The coterie has been particularly active lately and we have already lost scouts attempting to track their [activities]."); + elseif(e.message:findi("activities")) then + e.self:Say("One of the vampyre volatilis, the winged leaders of the Coterie of the Eternal Night, has been followed flying from their Aerie in the Tenebrous Mountains to a small vampyre settlement in the Maidens Eye far to the south. The volatilis appears to be picking up shipments of wineskins from a vampyre at the settlement and bringing them to their Aerie. I doubt that the skins actually contain wine or any other such relatively harmless liquid. If you could return one of these skins to me I will gladly honor you as I would one of my own scouts."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7776}, 0)) then -- Skin of Blood Like Substance + e.self:Say("You have done well " .. e.other:GetCleanName() .. "! I will have this substance examined by our experts at the Magus Conlegium. Perhaps the results will give us some clue as to what teh Coterie of the Eternal Night is collecting it for."); + e.other:Faction(e.self,1561, 8); -- Concillium Universus + e.other:Faction(e.self,1483, -1); -- Seru + e.other:Faction(e.self,1484, -4); -- Hand of Seru + e.other:QuestReward(e.self,0,0,0,0,7777,10000); -- Validus Scout Cloak + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Centurion_Engrov.lua b/katta/Centurion_Engrov.lua new file mode 100644 index 0000000..84ddd23 --- /dev/null +++ b/katta/Centurion_Engrov.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings adventurer! I am sorry but I can not engage in conversation while I am on duty. you never know when an enemy will show itself."); + end +end diff --git a/katta/Centurion_Kroldus.lua b/katta/Centurion_Kroldus.lua new file mode 100644 index 0000000..84ddd23 --- /dev/null +++ b/katta/Centurion_Kroldus.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings adventurer! I am sorry but I can not engage in conversation while I am on duty. you never know when an enemy will show itself."); + end +end diff --git a/katta/Centurion_Queniton.lua b/katta/Centurion_Queniton.lua new file mode 100644 index 0000000..84ddd23 --- /dev/null +++ b/katta/Centurion_Queniton.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings adventurer! I am sorry but I can not engage in conversation while I am on duty. you never know when an enemy will show itself."); + end +end diff --git a/katta/Centurion_Relicor.lua b/katta/Centurion_Relicor.lua new file mode 100644 index 0000000..84ddd23 --- /dev/null +++ b/katta/Centurion_Relicor.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings adventurer! I am sorry but I can not engage in conversation while I am on duty. you never know when an enemy will show itself."); + end +end diff --git a/katta/Centurion_Talekor.lua b/katta/Centurion_Talekor.lua new file mode 100644 index 0000000..84ddd23 --- /dev/null +++ b/katta/Centurion_Talekor.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings adventurer! I am sorry but I can not engage in conversation while I am on duty. you never know when an enemy will show itself."); + end +end diff --git a/katta/Condor.lua b/katta/Condor.lua new file mode 100644 index 0000000..f853f09 --- /dev/null +++ b/katta/Condor.lua @@ -0,0 +1,30 @@ +function event_spawn(e) + eq.set_timer("attack",1000); +end + +function event_timer(e) + if(e.timer == "attack") then + eq.attack_npc_type(160141); + eq.stop_timer("attack"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29846}, 0)) then -- recording stone + e.self:Say("Pefect, this should give us some idea of what they may or may not know. 'as he puts the stone in his belt pouch.' Very well done, my friend. Have you ever considered a career in espoinage? Take this. I have little need for it these days - Tilbok will know how to recharge it, 'he says with a wry grin before disappearing back into the shadaows."); + e.other:Faction(e.self,1503,5); -- Validus Custodus + e.other:Faction(e.self,1502,1); -- Katta Castellum Citizens + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1505,-1); -- Nathyn Illuminious + e.other:Faction(e.self,1506,-1); -- Coterie of the Eternal Night + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1484,-2); -- Hand of Seru + e.other:Faction(e.self,1485,-1); -- Eye of Seru + e.other:Faction(e.self,1541,-1); -- Hand Legionnaries + e.other:QuestReward(e.self,0,0,0,0,5105,5000); -- Mask of Espionage + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Corporal_Donfeld.lua b/katta/Corporal_Donfeld.lua new file mode 100644 index 0000000..5fedf57 --- /dev/null +++ b/katta/Corporal_Donfeld.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh yes. hello there. I am sorry to be so short, but Governor Erikal had asked me to investigate the [Recuso] and... well, the going has been slow as of yet."); + elseif(e.message:findi("recuso")) then + e.self:Say("The Recuso are a delitescent people that wander the lands outside Sanctus Seru. They do not have the most open society, so gathering information on them has been tricky. We have reason to believe that they are quite hostile towards Seru and therefore our potential allies- the enemy of my enemy is my friend and all of that. To learn more about them, it was decided we send someone in to try to blend into their society, but he is more than a week past due checking in and we can spare no one to [go after him]."); + elseif(e.other:GetFactionValue(e.self) >= 350 and e.message:findi("go after him")) then + e.self:Say("It is quite the journey, are you sure that you are up for it? Your best bet would be to start the search in Marus Seru where the Recuso can be found. Legionnaire Marais had a lead in Shadowhaven as well, but I do not believe it had gotten him anywhere yet. You will need to give him this, he has the other half and will recognize it as a signal that you were sent directly by me. Oh, and let me give you a file to hold your evidence in, do you have [room] for it, my friend?"); + e.other:SummonCursorItem(18332); -- Torn Half of a Note + elseif(e.other:GetFactionValue(e.self) >= 350 and e.message:findi("room")) then + e.self:Say("Here, this should do, there may be some extra space in there when you are done. Just put all the evidence you find in it and get it back to me as soon as you can. Best of luck to you, and my thanks as well."); + e.other:SummonCursorItem(17515); -- Recuso Case File + elseif(e.message:findi("seru")) then + e.self:Say("I know that to most it seems as though we do not even pay attention to each other anymore, but the silent war between Seru and Katta has never really subsided."); + elseif(e.message:findi("erikal")) then + e.self:Say("Erikal Wolfeye is Katta Castellum's Governor of exploration and reconnaissance. His office is upstairs with the other Governors."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 350 and item_lib.check_turn_in(e.self, e.trade, {item1 = 29893}, 0)) then + e.self:Say("Outstanding work, " .. e.other:GetCleanName() .. " - Marais' sacrifice will not be in vain. It seems the Recuso are not the potential allies we had hoped for, but once I get someone from the Magus Conlegium to open this book it should prove educational indeed. In a silent war, learning the secrets of your adversary is paramount. This belt honors one of our finest heroes, wear it proudly for the service you have done the Validus Custodus."); + e.other:Faction(e.self,1503, 2); -- Validus Custodus + e.other:Faction(e.self,1502, 1); -- Katta Castellum Citizens + e.other:Faction(e.self,1504, 1); -- Magus Conlegium + e.other:Faction(e.self,1505, -1); -- Nathyn Illuminious + e.other:Faction(e.self,1506, -1); -- Coterie of the Eternal Night + e.other:Faction(e.self,1483, -1); -- Seru + e.other:Faction(e.self,1484, -1); -- Hand of Seru + e.other:Faction(e.self,1485, -1); -- Eye of Seru + e.other:Faction(e.self,1541, -1); -- Hand Legionnaries + e.other:QuestReward(e.self,0,0,0,0,29894,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Corporal_Kent.lua b/katta/Corporal_Kent.lua new file mode 100644 index 0000000..46a218d --- /dev/null +++ b/katta/Corporal_Kent.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ho there, who are you? Are you [reporting for duty] or just annoying me?"); + elseif(e.other:GetFaction(e.self) < 5 and e.message:findi("reporting for duty")) then + e.self:Say("Outstanding, now tuck in that tunic. We are trying out some new Shadowscream armor from Barkhem, the smith in Shar Vahl, and some of his students. They will cut us a nice deal if we deliver some of the supplies, so go fill this up with shrieking substances for me. What are you staring at? Go!! And suck in that gut!"); + e.other:SummonCursorItem(17497); -- Sonic Receptacle + elseif(e.message:findi("annoying")) then + e.self:Say("Well isn't that clever, " .. e.other:GetCleanName() .. "? I'll see that my superiors hear about your attitude."); + e.other:Faction(e.self,1503,-1); -- Validus Custodus + elseif(e.message:findi("shrieking")) then + e.self:Say("You can get them from sonic wolves. Why are you still here?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29842}, 0)) then -- Full Sonic Receptacle + e.self:Say("Well done, " .. e.other:GetCleanName() .. ", this should really help keep our costs down. Here, take these, and keep up the good work. Dismissed!"); + -- live faction verified + e.other:Faction(e.self,1503,4); -- +Validus Custodus + e.other:Faction(e.self,1502,1); -- +Katta Castellum Citizens + e.other:Faction(e.self,1504,1); -- +Magus Conlegium + e.other:Faction(e.self,1505,-1); -- -Nathyn Illuminnious + e.other:Faction(e.self,1506,-1); -- -Coterie of the Eternal Night + e.other:Faction(e.self,1483,-1); -- -Seru + e.other:Faction(e.self,1484,-2); -- -Hand of Seru + e.other:Faction(e.self,1485,-1); -- -Eye of Seru + e.other:Faction(e.self,1541,-1); -- -Hand Legionnaries + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10664, 10668, 10663, 10665),50000); -- Combine Throwing Spear, Validus Custodus Flight Arrow, Combine Throwing Knife, Combine Shuriken + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Dersino.lua b/katta/Dersino.lua new file mode 100644 index 0000000..2ed45b1 --- /dev/null +++ b/katta/Dersino.lua @@ -0,0 +1,19 @@ +-- Beriol's Research + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello stranger. Im very busy with my work, is there something specific you need to speak to me about?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4769}, 0)) then + e.self:Say("Ah, of course, my teacher Beriol needs some of these books for his research, here they are. It is a shame my studies have taken me so far from my roots. Hopefully I can return home soon and Visit my family and friends. In the mean time It was very nice to meet you and I wish you the best of luck. Please also return of you wish to deliver more books to my friend Beriol."); + e.other:Faction(e.self,1511,25); -- house of midst + e.other:Faction(e.self,1508,2); -- traders of the haven + e.other:QuestReward(e.self,0,0,0,0,4770,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Dianna_Dilsm.lua b/katta/Dianna_Dilsm.lua new file mode 100644 index 0000000..5e56ac8 --- /dev/null +++ b/katta/Dianna_Dilsm.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings friend. I assist Arabella with her ceramics shop by drawing accurate and detailed pottery sketches. Feel free to browse through my stacks of sketches. you may find one suitable for your pottery endeavors."); + end +end diff --git a/katta/Did.lua b/katta/Did.lua new file mode 100644 index 0000000..013567d --- /dev/null +++ b/katta/Did.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("something touch your foot?"); + eq.depop_with_timer(); +end diff --git a/katta/Dralin_K-Vekn.lua b/katta/Dralin_K-Vekn.lua new file mode 100644 index 0000000..df08d74 --- /dev/null +++ b/katta/Dralin_K-Vekn.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Dralin K'Vekn. Several hundred years ago I was the Teir'Dal ambassador to the Combine Empire under Tsaph Katta. I was present when the traitorous Seru made his assassination attempt on Tsaph Katta and divided the Combine Empire into the two factions that exist to this day. I was forced to flee to Luclin with the Loyalist Combine in order to escape death at the hands of the [Inquisition]. Adjusting to a new life on Luclin with no others of my kind was a long, perilous, and often times lonely task. I do not regret it though, I have a beautiful wife and a healthy son now and this place is my home and the [Loyalists] my people."); + elseif(e.message:findi("Inquisition")) then + e.self:Say("The followers of Seru that split from the Combine Empire have become known as the Inquisition. They were opposed, to among other things, diplomatic negotiations with Neriak. Obviously if the aftermath of the attempted assassination on Tsaph Katta had gone differently I would have been among Serus assassins next targets. Seru would have went to war with Neriak, Oggok, and Grobb in his fanatical obsession to utterly destroy all civilizations that hold values, morals, and creeds different than his own. Fortunately in his power madness to control all of the Combine Empire Seru followed us through the portal to Luclin and a second Age of Blood was narrowly avoided."); + elseif(e.message:findi("loyalists")) then + e.self:Say("Those of the Combine Empire that remained loyal to Tsaph Kattas teachings, philosophies, and ideals have become known as the Loyalists. When we were forced to flee to Luclin to prevent the bloodshed desired by the Inquisition we arrived deep at the core of the moon, at the location that is now Shadow Haven. We left behind a few of our numbers to watch the portal from Norrath and to discover a means to return home. The rest of us set out to explore the tunnel systems and made our way to the surface here on the dark side. It was decided we would settle on the cliffs overlooking the Twilight Sea and a great wall was erected to protect us from the strange natives of Luclin while we built our [new homes]."); + elseif(e.message:findi("new home")) then + e.self:Say(" As you can see we have been here for quite some time and only myself and a handful of other longed lived individuals have ever seen life on Norrath. To the humans of this city and the majority of the demi-humans as well, Luclin and Katta Castellum are the only homes they know."); + end +end diff --git a/katta/Drenic_Garrison.lua b/katta/Drenic_Garrison.lua new file mode 100644 index 0000000..7b0c974 --- /dev/null +++ b/katta/Drenic_Garrison.lua @@ -0,0 +1,50 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings! I am Drenic Garrison, Governor of Science here in Katta Castellum. I am currently involved in several scientific endeavors with the other governors and am in need of assistance supplying my researchers with the proper [materials and samples] for their studies."); + elseif(e.message:findi("materials and samples")) then + e.self:Say("The Magus Conlegium are assisting with some studies on the physiology of the Vampyres of the Coterie of the Eternal Night and are in need of [ash and blood] samples. Maralicis Dilsm our Governor of Health is assisting in research on [counteragents] to the venom and diseases native to Luclin. Finally, there have been reports from the agents of Erikal Wolfeye that there is a civilation of [snake people] that live on the furthest reaches of the light side of Luclin in a region devoid of atmosphere."); + elseif(e.message:findi("ash and blood")) then + -- Start of Vampyre Ash and Blood + e.self:Say("Every four piles of vampyre ashes or four samples of vampyre blood that is collected should be delivered to Avir Sterbla in the Magus Conlegium. Avir is the Governor of Magician Studies and is currently working with Kellari Autumnfall, Lathin Firetree, and myself on developing better weapons and spells to battle the Coterie of the Eternal Night. Avir is zealous in his battle with the vampyres, he lost a relative to their wicked coterie many years ago."); + elseif(e.message:findi("counteragents")) then + -- Start of Counteragents + e.self:Say("Since our Empires first arrival on Luclin a citizen or in some cases several citizens occasionally fall victim to terrible diseases and toxins. The effects on our people were devastating at first but over the years we have become more accustomed to life on this moon. Still, if we were able to eradicate these diseases and poisons entirely many lives would be saved. The damp subterranean Fungus Grove and Paludal caverns are among the most infested areas. If you brave those dank passageways and return with a Muck Beetle Mandible, Black Fungal Fiend Spores, Green Fungal Fiend Spores, and a Grimfang Poison Sack I will gladly take them to the researchers for further study and experimentation."); + elseif(e.message:findi("snake people")) then + -- Start of Undead Snake Organs + e.self:Say("To the west beyond the Twilight Sea is an airless grey region between the light and dark sides of Luclin. Some time ago our scouts cooperating with powerful members of the Magus Conlegium attempted to chart the expanses of the barren treacherous region. During this excursion the scouts and magi encountered a small group of strange snake like men. The magi detected no magical aid that was allowing the creatures to move freely in the airless void without danger of suffocation. When approached the snake men quickly fled. We wish to know how these creatures survive in such conditions. If they prove to be a hostile species then we will have to resort to examining their [anatomy]."); + elseif(e.message:findi("anatomy")) then + -- Part of Undead Snake Organs + e.self:Say("I wish to examine the lungs or whatever breathing organs these creatures have. It would not be prudent to hunt and kill a living member of this species and society we know practically nothing about but there are several undead snake men in the region as well. I will require three such organs however to perform the proper experiments."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + -- Handin: 1x Muck Beetle Mandible (10412), 1x Black Fungal Fiend Spores (10413), 1x Green Fungal Fiend Spores (10414), 1x Grimfang Poison Sac (10415) + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10412,item2 = 10413,item3 = 10414,item4 = 10415})) then + -- End of Counteragents + e.self:Say("Excellent work, the Loyalist Empire is grateful for your assistance. Governor Maralicis and I will have our researchers resume their work on curing Luclin of its diseases."); + e.other:Faction(e.self,1504,5); -- +Magus Conlegium + e.other:Faction(e.self,1502,1); -- +Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- +Validus Custodus + e.other:Faction(e.self,1483,-1); -- -Seru + e.other:Faction(e.self,1484,-1); -- -Hand of Seru + e.other:Faction(e.self,1485,-1); -- -Eye of Seru + e.other:Faction(e.self,1541,-1); -- -Hand Legionnaries + e.other:QuestReward(e.self,0,0,0,0,31743,5000); -- Mug of Purifying Tonic + -- Handin: 3x Shissar Organs (10416) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10416,item2 = 10416,item3 = 10416})) then + -- End of Undead Snake Organs + e.self:Say("Excellent work " .. e.other:GetCleanName() .. "! The acquisition of these organs is a fantastic accomplishment!"); + e.other:Faction(e.self,1504,10); -- +Magus Conlegium + e.other:Faction(e.self,1502,1); -- +Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- +Validus Custodus + e.other:Faction(e.self,1483,-1); -- -Seru + e.other:Faction(e.self,1484,-1); -- -Hand of Seru + e.other:Faction(e.self,1485,-2); -- -Eye of Seru + e.other:Faction(e.self,1541,-1); -- -Hand Legionnaries + e.other:QuestReward(e.self,0,0,0,0,31744,5000); -- Amulet of the Grey Wastes + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Elnerick_Augustleaf.lua b/katta/Elnerick_Augustleaf.lua new file mode 100644 index 0000000..d9d7d36 --- /dev/null +++ b/katta/Elnerick_Augustleaf.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". I am Magistrate Elnerick Augustleaf of Katta Castellum and the Loyalist Empire. If it is arcane knowledge that you seek you have come to an excellent place to study. Not only do we have wondrous magical resources available at the Magus Conlegium but the teachings of Tsaph Katta are well known to all of our citizens and aid in preparing the mind for the freedom of thought and mental and emotional discipline needed to become a great wizard."); + elseif(e.message:findi("serve katta")) then + e.self:Say("Ah, I was told you would come. I hope that you have retrieved the shards from each Praesertum Leader? Please show them to me."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + -- 29881 : Shard of the Shoulder + -- 29882 : Shard of the Eye + -- 29883 : Shard of the Hand + -- 29884 : Shard of the Heart + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29881,item2 = 29882,item3 = 29883,item4 = 29884})) then + e.self:Emote("takes the four shards and places them on the table. Slow incantations and streams of mana flow from him. The shards begin to move across the table towards each other until they fuse into one. 'I have focused each shard into one single key. The magic holding it together is strong but the enchantment will fade over time. You will must use it wisely for it will deteriorate with use. Lcea has requested I give you this seal to prove your service to this city. Take the seal and the Arx Key, I hope that you can accomplish what you are about to be asked. May your service to this town never be forgotten.'"); + e.other:Faction(e.self,1561,50); -- concillium universus + e.other:Faction(e.self,1483,-5); -- seru + e.other:Faction(e.self,1486,-25); -- heart of seru + -- Confirmed Live Experience + e.other:QuestReward(e.self,{items = {3650,7096},exp = 10000}); -- 7096 Seal of Katta, 3650 Arx Key + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Erikal_Wolfeye.lua b/katta/Erikal_Wolfeye.lua new file mode 100644 index 0000000..f91a561 --- /dev/null +++ b/katta/Erikal_Wolfeye.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". I am Erikal Wolfeye, Governor of exploration. Unfortunately, my duties to Katta Castellum tend to keep me from doing much of the actual exploring, but we have many fine men and women out in the field. That reminds me, I will have to check in with [Corporal Donfeld] and see how his new project is going."); + elseif(e.message:findi("donfeld")) then + e.self:Say("Corporal Donfeld has a very important job to do for me - reaching out and trying to make new allies is crucial to our future here on Luclin."); + end +end diff --git a/katta/Evonna_Songslinger.lua b/katta/Evonna_Songslinger.lua new file mode 100644 index 0000000..4cc5839 --- /dev/null +++ b/katta/Evonna_Songslinger.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail! Care to sing a song with us?"); + end +end diff --git a/katta/Fallar_Grolden.lua b/katta/Fallar_Grolden.lua new file mode 100644 index 0000000..c0e1273 --- /dev/null +++ b/katta/Fallar_Grolden.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to The Second Skin Armory! I would recommend a suit of my excellent quality plate armor if you're planning on leaving the protection of the city walls. I wouldn't be caught dead out there without it!! Hahaha!"); + end +end diff --git a/katta/Galren_Fuzzytoes.lua b/katta/Galren_Fuzzytoes.lua new file mode 100644 index 0000000..f527e1b --- /dev/null +++ b/katta/Galren_Fuzzytoes.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Listen, I do not have time to chat right now. I am a very busy man."); + end +end diff --git a/katta/Glixx_Tobbnokcog.lua b/katta/Glixx_Tobbnokcog.lua new file mode 100644 index 0000000..4ad7251 --- /dev/null +++ b/katta/Glixx_Tobbnokcog.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met " .. e.other:GetCleanName() .. "! You'll have to excuse me if I do not look directly at you when I speak, my vision is all but completely gone in my old age. My eyes do not stray out of disrespect. I am Magistrate Glixx Tobbnokcog of the Loyalist Combine Empire. I am one of the handful of Loyalist to first arrive here on Luclin that are left. I am glad to have been able to live to see the city I helped plan and design become such a wonderful center of learning and wisdom. May the teachings of Tsaph Katta live forever due to the dedication of the people of Katta Castellum."); + end +end diff --git a/katta/Granic_Malicus.lua b/katta/Granic_Malicus.lua new file mode 100644 index 0000000..1b45e57 --- /dev/null +++ b/katta/Granic_Malicus.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Lightening Blades Smithy! If it's excellent quality weapons that you seek than you have come to the right place. You'll not find better blades for sale anywhere on Luclin."); + end +end diff --git a/katta/Gundal_Bronzebrow.lua b/katta/Gundal_Bronzebrow.lua new file mode 100644 index 0000000..0c6e17c --- /dev/null +++ b/katta/Gundal_Bronzebrow.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings foreigner! I have for sale quality ores and clay that has been brought here by brave miners who dare the wilds of Luclin! Those grimlings don't take to kindly to people mining ore in their territory."); + end +end diff --git a/katta/Heracus_Helsin.lua b/katta/Heracus_Helsin.lua new file mode 100644 index 0000000..31b2915 --- /dev/null +++ b/katta/Heracus_Helsin.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome, adventurer, to the Katta Castellum Reserve! I assure you your coin and belongings will be safe within our fine establishment."); + end +end diff --git a/katta/Holin_Aeridia.lua b/katta/Holin_Aeridia.lua new file mode 100644 index 0000000..09d15c7 --- /dev/null +++ b/katta/Holin_Aeridia.lua @@ -0,0 +1,21 @@ +function event(e) + eq.set_timer("depop",600000); +end + +function event_timer(e) + eq.depop(); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10682}, 0)) then + e.self:Emote("reaches forward as his hands materialize to grasp the box of belongings then places them carefully in his crypt. He then reaches towards " .. e.other:GetCleanName() .. " again as an etherial staff materializes in his hands and is offered to " .. e.other:GetCleanName() .. "."); + e.other:Faction(e.self,1538,10); -- Spirits of Katta Castellum + e.other:Faction(e.self,1505,-1); -- Nathyn Illuminious + e.other:Faction(e.self,1502,1); -- Katta Castellum Citizens + e.other:QuestReward(e.self,0,0,0,0,10685,1000); -- Staff of Ethereal Energy + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Incantator_Jak_Masric.lua b/katta/Incantator_Jak_Masric.lua new file mode 100644 index 0000000..6e73e70 --- /dev/null +++ b/katta/Incantator_Jak_Masric.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. I am in the middle of some important research so regrettably do not have the time to converse."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7373,item2 = 7374,item3 = 7374,item4 = 7374})) then + e.self:Say("Hopefully these robes still contain enough of a magical imprint from the shades to be useful in successfully warding the Magus Conlegium from their kind. Thank you for you assistance. Keep this token as a symbol of your allegiance to the Magus Conlegium."); + e.other:Faction(e.self,1504,10); -- Magus Conlegium + e.other:Faction(e.self,1502,1); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1484,-1); -- Hand of Seru + e.other:Faction(e.self,1485,-2); -- Eye of Seru + e.other:Faction(e.self,1541,-2); -- Hand Legionnaries + e.other:QuestReward(e.self,0,0,0,0,7394,100000); -- Magus Conlegium Token + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Jacob_Rutledge.lua b/katta/Jacob_Rutledge.lua new file mode 100644 index 0000000..2d473f7 --- /dev/null +++ b/katta/Jacob_Rutledge.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Make your self welcome friend! We're all here for the same reason. To relax with congenial company and get a bit sloshed to forget about the vampyre villains and Inquisition spies lurking about! Haha! At any rate you're safe here with us friend!"); + end +end diff --git a/katta/Jarin_Lorean.lua b/katta/Jarin_Lorean.lua new file mode 100644 index 0000000..fe299ac --- /dev/null +++ b/katta/Jarin_Lorean.lua @@ -0,0 +1,23 @@ +-- Duke Norfin's Delivery + +function event_say(e) + if (e.other:GetFaction(e.self) <= 5) then + if(e.message:findi("hail")) then + e.self:Say("Can't you see I'm, eh, busy here? Leave me be."); + elseif(e.message:findi("the good")) then + e.self:Say("You will, will you. That would be great. Make sure the guards don't stop you while you have this stuff. And if you get caught, I'll deny any knowledge of you. Now get out of here."); + e.other:SummonCursorItem(19840); -- Item: Smuggled Goods + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19841}, 0)) then + e.self:Emote("glances nervously about, 'So you're here on 'official' business eh? Well, there's not much I can do right now. I have the goods but someone caught scent of what I've been doing and there are too many people watching me to leave right now. You can tell our mutual friend that he needs to wait for things to calm down or send someone else to bring back the goods.'"); + e.other:Faction(e.self,1605,25); -- haven smuggler association + e.other:Faction(e.self,1542,25); -- haven smugglers + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Kellari_Autumnfall.lua b/katta/Kellari_Autumnfall.lua new file mode 100644 index 0000000..e87c0f1 --- /dev/null +++ b/katta/Kellari_Autumnfall.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings friend. I am Kellari Autumnfall. Governess of Enchantment Studies. May I help you? If you are not here for a formal appointment. I'm afraid that I'm going to have to get back to work. I'm quite busy at the moment. so please excuse me."); + elseif(e.message:findi("unja sent me")) then + e.self:Say("Governor Unja sent you? That's a relief! I am in dire need of an adventurer's services at this time. The other governors have placed me in charge of deciphering the nature of the recent epidemic of undead attacks within our city's walls. I would assign some of the guards to handle this matter, but I feel that it may be best for someone who is not as well known to get more information on these attacks. Not that I do not trust our guards, mind you."); + elseif(e.message:findi("undead attack")) then + e.self:Say("Most of the attacks have come from the area around the cemetery. We have noticed that the undead there have all been covered in what appears to be the same set of arcane symbols. I will need a complete set of those symbols to progress any further in my research. Oddly enough, the last set that I had was removed from my quarters without my authorization. Just make sure this set is completely legible. The skin samples must not be damaged. Do you think you can handle this matter?"); + elseif(e.message:findi("colain")) then + e.self:Say("She's been assisting with the burial ceremonies for quite some time, so she's had access to the bodies. Bah! She's shown promise as a cleric, but this has to be her doing. I've seen these glyphs in some of her books. Please take the note that I just handed you to the courier that is waiting at the gate in Tenebrous. I will alert the other governors and get the guards mobilized. Colain Jasior should not make it out of the city, but the courier will ensure that she has no place to run to if she does."); + elseif(e.message:findi("handle this matter")) then + e.self:Say("Please, place the skin samples in the separate trays within this box and return it to me. Maybe, I'll have an idea of what to do from there by the time you're done. Thank you for your assistance. Good hunting."); + e.other:QuestReward(e.self,0,0,0,0,17103); -- 10 Tray Specimen Kit + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3870}, 0)) then -- completed specimen kit + e.self:Emote("looks at the various trays in the kit and turns pale, even for her normal complexion. She looks at you and says, 'This is much worse than we thought. We assumed that this was caused by someone from within our ranks, but I would never have thought that Colain was involved"); + e.other:QuestReward(e.self,math.random(10),math.random(10),math.random(10),math.random(10),3872,5000); -- note from kellari + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Keylara_Abanjabi.lua b/katta/Keylara_Abanjabi.lua new file mode 100644 index 0000000..9247e39 --- /dev/null +++ b/katta/Keylara_Abanjabi.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, brave " .. e.other:GetCleanName() .. "! I am Magistrate Keylara Abanjabi of Katta Castellum, Grand City of the Loyalist Combine Empire. I hope that your stay here is a pleasant one. Even in these dark times the will and teachings of Tsaph Katta light the way for our citizens to live amiable and fulfilling lives."); + end +end diff --git a/katta/Kitty_Barleou.lua b/katta/Kitty_Barleou.lua new file mode 100644 index 0000000..1b1ada7 --- /dev/null +++ b/katta/Kitty_Barleou.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Luclin Survivalist Supplies. We carry the finest quality products for the adventurer or traveling merchant. May I interest you in a Phosphorescent Lantern?"); + end +end diff --git a/katta/Klandar_Bronzebrow.lua b/katta/Klandar_Bronzebrow.lua new file mode 100644 index 0000000..af6c1f8 --- /dev/null +++ b/katta/Klandar_Bronzebrow.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("salutes " .. e.other:GetCleanName() .. " crisply and gazes with dark eyes as unyielding as solid stone and as wise as the oldest mountains. 'Well met " .. e.other:GetCleanName() .. ". I am Magistrate Klandar Bronzebrow of the Loyalist Combine Empire. I pray that your stay here will be an enlightening one, you'll not find the prejudices here that are indicative to most cities and kingdoms. We of the Loyalist Combine follow the path of unity as taught by the great Tsaph Katta and all are welcome within our city gates that have purity of heart and clarity of thought.'"); + end +end diff --git a/katta/Kroldar_Strongarm.lua b/katta/Kroldar_Strongarm.lua new file mode 100644 index 0000000..7ad0ac8 --- /dev/null +++ b/katta/Kroldar_Strongarm.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am Governor Kroldar Strongarm of Katta Castellum. It is my duty to command the Validus Custodus in matters of Warfare. The Empire of the Loyalist Combine is currently engaged in a long lasting war with the Inquisition Combine of Sanctus Seru and the vile undead of the [Coterie of the Eternal Night]."); + elseif(e.message:findi("eternal night")) then + -- Start of Vampyre Fang + e.self:Say("The Coterie of the Eternal Night are not an enemy to be taken lightly. Our vampyre hunters must be dedicated to the annihilation of the undead. These vampyres tend to hold grudges that may last several of our lifetimes and their twisted vengeance may be inflicted on your descendents unless every one of the twisted abominations is destroyed. Should you bring me the fangs of four vampyres I will know you have taken the first step and are dedicated to the cause."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + -- Handin: 4x Vampyre Fang (2691) + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2691,item2 = 2691,item3 = 2691,item4 = 2691}, 0)) then + -- End of Vamprye Fang + e.self:Say("You have dedicated yourself to the war with the Coterie of the Eternal Night. I will continue to reward you for the fangs of every four vampyres that you slay. Should you be ambitious and skilled enough to confront the coterie leaders and live I will respectfully grant you honor that you deserve."); + e.other:Faction(e.self,1503,5); -- +Validus Custodus + e.other:Faction(e.self,1502,1); -- +Katta Castellum Citizens + e.other:Faction(e.self,1504,1); -- +Magus Conlegium + e.other:Faction(e.self,1505,-1); -- -Nathyn Illuminious + e.other:Faction(e.self,1506,-1); -- -Coterie of the Eternal Night + e.other:Faction(e.self,1483,-1); -- -Seru + e.other:Faction(e.self,1484,-1); -- -Hand of Seru + e.other:Faction(e.self,1485,-1); -- -Eye of Seru + e.other:Faction(e.self,1541,-1); -- -Hand Legionnaries + e.other:QuestReward(e.self,0,0,0,0,31728,5000); -- Vial of Blessed Water + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Lathin_Firetree.lua b/katta/Lathin_Firetree.lua new file mode 100644 index 0000000..ea15b5a --- /dev/null +++ b/katta/Lathin_Firetree.lua @@ -0,0 +1,38 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met brave " .. e.other:Race() .. ". I am Lathin Firetree, Governor of Wizardry here at the Magus Conlegium. I have an abundance of research and experimentation to attend to so unless you have an issue of importance to present or are going to assist me with the research I must get back to my studies."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7270,item2 = 7169})) then + e.self:Say("Phenic wishes me to summon the Shade that is the owner of this belt for questioning. That is quite a dangerous request but it is not uncommon of Phenic to be a risk taker when it comes to his plots against the Coterie of the Eternal Night. Take this sketch and find a skilled potter to craft you a likeness of a shade from a large block of clay as a focus item for the ritual. When you have the unfired figurine fire it in a kiln with this special glaze on a High Quality Firing Sheet and return to me."); + e.other:Faction(e.self,1504,2); -- Magus Conlegium + e.other:Faction(e.self,1502,1); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1484,-1); -- Hand of Seru + e.other:Faction(e.self,1485,-1); -- Eye of Seru + e.other:Faction(e.self,1541,-1); -- Hand Legionnaries + e.other:QuestReward(e.self,{items = {7271,7272},exp = 1000000}); -- Shade Figurine Sketch, Conlegium Enchanted Glaze + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 7273}, 0)) then + e.self:Say("Excellent, this figurine will work wonderfully. A group of my best summoners is gathering on the first floor at the largest of the summoning circles to call forth the shade. Please take the figurine to Theurgus Ajeea Polaja immediately."); + e.other:Faction(e.self,1504,5); + e.other:Faction(e.self,1502,1); + e.other:Faction(e.self,1503,1); + e.other:Faction(e.self,1483,-1); + e.other:Faction(e.self,1484,-1); + e.other:Faction(e.self,1485,-1); + e.other:Faction(e.self,1541,-1); + e.other:QuestReward(e.self,0,0,0,0,7779); -- Second Shade Summoning Figurine + eq.depop_with_timer(160410); -- depop Theurgus + eq.depop_with_timer(160252); -- depop Incanter + eq.depop_with_timer(160253); -- depop Preecantor + eq.unique_spawn(160133,0,0,-75,-807,8,164); -- -- Theurgus_Ajeea_Polaja + eq.unique_spawn(160142,0,0,-120,-808,8,88); -- -- Praecantor_Sels_Dawneyes + eq.unique_spawn(160160,0,0,-97,-858,8,0); -- -- Incantator_Jak_Masric + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Lcea_Katta.lua b/katta/Lcea_Katta.lua new file mode 100644 index 0000000..e2e51fe --- /dev/null +++ b/katta/Lcea_Katta.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("arx key")) then + e.self:Say("The Arx Key, yes. I have read the compiled reports that have been brought to us and it seems to gain access to Arx Seru you need four shards, one from each Praesertum leader. When the time is ready each leader inserts their shard into the door of Arx Seru at the same time, and they are transported within the building. We need you to retrieve the four shards. When you have done so seek out Elnerick Augustleaf, and tell him that you serve Katta. His powers over the arcane are great and I believe he can form the shards into a single master key. Once you have received the Arx Key, place the seal given to you by Elnerick and your Runed earring in this jewel box and give it to me. I eagerly await your return."); + e.other:SummonCursorItem(17613); -- 17613 Lcea's Jewel Box (container 2 slots) + end +end + +function event_trade(e) + local item_lib = require("items"); + + -- 7000 : Lcea's Jewel Box + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7000}, 0)) then + e.self:Say("Amazing! I had no doubt in your loyalty to Katta but I underestimated your ability to actually acomplish getting the Arx Key. Now that you have this key you must know what I ask of you next. Seru must be defeated, if there will ever be peace in Katta and truth spread among the people of Sanctus Seru. Destroy this vile betrayer, bring me his head, and your Signet Earring. Go now before they have time to retaliate your previous attacks!"); + e.other:Faction(e.self,1561,100); -- concillium universus + e.other:Faction(e.self,1483,-10); -- seru + e.other:Faction(e.self,1486,-50); -- heart of seru + -- Confirmed Live Experience + e.other:QuestReward(e.self,{itemid = 29860,exp = 10000}); -- 29860 Signet Earring of Veracity + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29860,item2 = 7810})) then + e.self:Say("This is astounding, I find myself at a loss for words. You have done Katta a great justice, Sanctus Seru will never be the same now that the truth is known. Their leader has fallen."); + e.other:Faction(e.self,1561,200); -- concillium universus + e.other:Faction(e.self,1483,-20); -- seru + e.other:Faction(e.self,1486,-100); -- heart of seru + e.other:QuestReward(e.self,0,0,0,0,29861,20000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Legionnaire.lua b/katta/Legionnaire.lua new file mode 100644 index 0000000..f03dc1a --- /dev/null +++ b/katta/Legionnaire.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + eq.set_timer("attack",1000); +end + +function event_timer(e) + if(e.timer == "attack") then + eq.attack_npc_type(160140); + eq.stop_timer("attack"); + end +end diff --git a/katta/Legionnaire_Akixok.lua b/katta/Legionnaire_Akixok.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Akixok.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Avoretes.lua b/katta/Legionnaire_Avoretes.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Avoretes.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Banictus.lua b/katta/Legionnaire_Banictus.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Banictus.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Brugnar.lua b/katta/Legionnaire_Brugnar.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Brugnar.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Byronius.lua b/katta/Legionnaire_Byronius.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Byronius.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Claudius.lua b/katta/Legionnaire_Claudius.lua new file mode 100644 index 0000000..2db3b0a --- /dev/null +++ b/katta/Legionnaire_Claudius.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("ZZZzzzzzzzzzzz"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29845}, 0)) then -- Field Orders + e.self:Say("Huh? What? Oh, umm, let's see here... OK I best get these taken care of right away. Thank you."); + e.other:Faction(e.self,1503,1); -- +Validus Custodus + e.other:Faction(e.self,1502,1); -- +Katta Castellum Citizens + e.other:Faction(e.self,1504,1); -- +Magus Conlegium + e.other:Faction(e.self,1505,-1); -- -Nathyn Illuminious + e.other:Faction(e.self,1506,-1); -- -Coterie of the Eternal Night + e.other:Faction(e.self,1483,-1); -- -Seru + e.other:Faction(e.self,1484,-1); -- -Hand of Seru + e.other:Faction(e.self,1485,-1); -- -Eye of Seru + e.other:Faction(e.self,1541,-1); -- -Hand Legionnaries + e.other:QuestReward(e.self,0,0,0,0,0,1000); + eq.spawn2(160136,30,0,-2107,99,33,0); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Legionnaire_Cobnoggin.lua b/katta/Legionnaire_Cobnoggin.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Cobnoggin.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Erallic.lua b/katta/Legionnaire_Erallic.lua new file mode 100644 index 0000000..223421b --- /dev/null +++ b/katta/Legionnaire_Erallic.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3881}, 0)) then + e.self:Emote("gasps silently for air and the falls completely still! No one seems to have heard you."); + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1502,1); -- Katta Castellum Citizens + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1505,-1); -- Nathyn Illuminious + e.other:Faction(e.self,1506,-1); -- Coterie of the Eternal Night + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1484,-1); -- Hand of Seru + e.other:Faction(e.self,1485,-1); -- Eye of Seru + e.other:Faction(e.self,1541,-1); -- Hand Legionnaires + e.other:QuestReward(e.self,0,0,0,0,3883); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Legionnaire_Garrok.lua b/katta/Legionnaire_Garrok.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Garrok.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Hoblle.lua b/katta/Legionnaire_Hoblle.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Hoblle.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Hugby.lua b/katta/Legionnaire_Hugby.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Hugby.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Loxscog.lua b/katta/Legionnaire_Loxscog.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Loxscog.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Neville.lua b/katta/Legionnaire_Neville.lua new file mode 100644 index 0000000..624bb98 --- /dev/null +++ b/katta/Legionnaire_Neville.lua @@ -0,0 +1,29 @@ +-- Zone Katta Legionnaire_Neville ID 160263 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("coughs a bit and looks up at you with tired, bleary eyes, 'Ugh, I have not had such a cold as this since I was a boy. I have heard of a tea-maker in the city of the Vah Shir that makes a stamina enhancing tea. I would like to try some and see if it might help.'"); + elseif(e.message:findi("tea maker")) then + e.self:Say("ACHOO! Excuse me. It was some kind of root tea... saucy greyroot... sparkly greenroot... something like that I think. The brewer's name was... Adam... Lama... Oh I just cannot think straight."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31772}, 0)) then + e.self:Say("Oh that is good. I feel a little better already, thanks " .. e.other:GetCleanName() .. "! A little more of that stuff and I'll be better in no time."); + -- verified on live + e.other:Faction(e.self,1503, 2); -- Validus Custodus + e.other:Faction(e.self,1502, 1); -- Katta Castellum Citizens + e.other:Faction(e.self,1504, 1); -- Magus Conlegium + e.other:Faction(e.self,1505, -1); -- Nathyn Illuminious + e.other:Faction(e.self,1506, -1); -- Coterie of the Eternal Night + e.other:Faction(e.self,1483, -1); -- Seru + e.other:Faction(e.self,1484, -1); -- Hand of Seru + e.other:Faction(e.self,1485, -1); -- Eye of Seru + e.other:Faction(e.self,1541, -1); -- Hand Legionnaries + e.other:QuestReward(e.self,0,0,0,0,0,20000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Legionnaire_Perealos.lua b/katta/Legionnaire_Perealos.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Perealos.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Poggle.lua b/katta/Legionnaire_Poggle.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Poggle.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Quentin.lua b/katta/Legionnaire_Quentin.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Quentin.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Remigius.lua b/katta/Legionnaire_Remigius.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Remigius.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Revones.lua b/katta/Legionnaire_Revones.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Revones.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Rokgar.lua b/katta/Legionnaire_Rokgar.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Rokgar.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Romaric.lua b/katta/Legionnaire_Romaric.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Romaric.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Tribledek.lua b/katta/Legionnaire_Tribledek.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Tribledek.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Urolic.lua b/katta/Legionnaire_Urolic.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Urolic.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Veak.lua b/katta/Legionnaire_Veak.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Veak.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Ximbl.lua b/katta/Legionnaire_Ximbl.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Ximbl.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Yarolok.lua b/katta/Legionnaire_Yarolok.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Yarolok.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Yolicus.lua b/katta/Legionnaire_Yolicus.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Yolicus.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Legionnaire_Zalobnokin.lua b/katta/Legionnaire_Zalobnokin.lua new file mode 100644 index 0000000..144619e --- /dev/null +++ b/katta/Legionnaire_Zalobnokin.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend. I am sorry but I musn't converse while I am on duty."); + end +end diff --git a/katta/Lizsa_Barleou.lua b/katta/Lizsa_Barleou.lua new file mode 100644 index 0000000..a67185a --- /dev/null +++ b/katta/Lizsa_Barleou.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met " .. e.other:GetCleanName() .. "! I am the governess of negotiation and communication here in Katta Castellum. The majority of my dealings are with the government representatives of Shadow Haven since most of our dealings with Shar Vahl are handled by Magistrate Broote and Governess Rallena with the Shar Vahl Spiritists. Sanctus Seru unfortunately is still determined to stamp out all who do not submit to the iron fisted rule of Seru and is not open to negotiation or communication unless absolutely necessary."); + end +end diff --git a/katta/Lyneea_Doyle.lua b/katta/Lyneea_Doyle.lua new file mode 100644 index 0000000..5ed6f8a --- /dev/null +++ b/katta/Lyneea_Doyle.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings! You look like a healthy " .. e.other:Race() .. ". We should play a game of coppers some time! You wouldn't be afraid to drink against a woman would ya?"); + end +end diff --git a/katta/Maralicis_Dilsm.lua b/katta/Maralicis_Dilsm.lua new file mode 100644 index 0000000..8565d72 --- /dev/null +++ b/katta/Maralicis_Dilsm.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met adventurer! I am Maralicis Dilsm, Governor of Health and Martial Training here in Katta Castellum. It is important for members of the Validus Custodus to learn to use their bodies as weapons and not rely solely on the edge of a sword or a skin of steel. Enemies come in many shapes and forms and not all of them will be faced when expected, one must know how to fight unprepared."); + end +end diff --git a/katta/Margy_O-Koyle.lua b/katta/Margy_O-Koyle.lua new file mode 100644 index 0000000..b04a53a --- /dev/null +++ b/katta/Margy_O-Koyle.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Here ya go. feel free to browse the selection of herbs I have to offer. Don't be thinkin you'll be walkin away with em fer free though."); + end +end diff --git a/katta/Maria_Whispersong.lua b/katta/Maria_Whispersong.lua new file mode 100644 index 0000000..5959cc7 --- /dev/null +++ b/katta/Maria_Whispersong.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Starlight Music. If it's a musical instrument you seek you may be interested in my higher quality instruments that are hand crafted right here in Katta Castellum by the most skilled of craftsman."); + end +end diff --git a/katta/Markil_Jurbac.lua b/katta/Markil_Jurbac.lua new file mode 100644 index 0000000..8c72cc0 --- /dev/null +++ b/katta/Markil_Jurbac.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Governor Markil Jurbac. It is my primary duty to uphold the law in Katta Castellum. How may I be of assistance to you?"); + elseif(e.message:findi("halle")) then + e.self:Say("Legionnaire Halle? She was doing some work for Phenic and now... Forgive the bureaucrat in me but do you have something official?"); + elseif(e.message:findi("phenic")) then + e.self:Say("Magistrate Phenic Dionicas sets a fine example for any to follow- from one of our finest soldiers to one of our finest magistrates, Katta Cestellum is better of for his presence. Have you some business with him?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18331}, 0)) then -- Sealed Message + e.self:Emote("lowers his head and mourns the loss of Halle. 'Tis the greatest shame of all when good people are lost to the most cowardly of deeds. I will seek Governor Tilbok's council in this matter... I have never been able to wrap my head around this kind of treachery and he may very well have more information. Give this dossier to Tilbok, it has all of the information he will need."); + e.other:Faction(e.self,1503, 2); -- Validus Custodus + e.other:Faction(e.self,1502, 1); -- Katta Castellum Citizens + e.other:Faction(e.self,1504, 1); -- Magus Conlegium + e.other:Faction(e.self,1505, -1); -- Nathyn Illuminious + e.other:Faction(e.self,1506, -1); -- Coterie of the Eternal Night + e.other:Faction(e.self,1483, -1); -- Seru + e.other:Faction(e.self,1484, -1); -- Hand of Seru + e.other:Faction(e.self,1485, -1); -- Eye of Seru + e.other:Faction(e.self,1541, -1); -- Hand Legionnaries + e.other:QuestReward(e.self,0,0,0,0,29844,1000); -- Dossier + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Maryssa_Talbson.lua b/katta/Maryssa_Talbson.lua new file mode 100644 index 0000000..f33a0c0 --- /dev/null +++ b/katta/Maryssa_Talbson.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What's your poison friend? Why don't you try some Kerreopi. it's lots of fun!"); + end +end diff --git a/katta/Mehgyn_Garrison.lua b/katta/Mehgyn_Garrison.lua new file mode 100644 index 0000000..4e323d2 --- /dev/null +++ b/katta/Mehgyn_Garrison.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! I am Mehgyn Garrison the Governess of Entertainment here in Katta Castellum. Entertainment is essential for healthy morale and happy citizens. I organize the festivals of the combine holidays and teach music and instrument theory and technique to those wishing to learn the ways of a minstrel."); + end +end diff --git a/katta/Melodei_Cruzsia.lua b/katta/Melodei_Cruzsia.lua new file mode 100644 index 0000000..05faa7b --- /dev/null +++ b/katta/Melodei_Cruzsia.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("A pleasure to make your acquaintance. I was not aware that Nathyn was expecting more guests. I suppose some company will do him good, his mood hasn't been all that great lately."); + end +end diff --git a/katta/Miguel_Talbson.lua b/katta/Miguel_Talbson.lua new file mode 100644 index 0000000..82cde93 --- /dev/null +++ b/katta/Miguel_Talbson.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings friend! Pull on up to the bar and have a drink. and watch out for that Lyneea if she asks you to play a game of coppers! I've seen that lass outdrink that drunken dwarf Borean and that's quite a task!"); + end +end diff --git a/katta/Monika_Helsin.lua b/katta/Monika_Helsin.lua new file mode 100644 index 0000000..dbd7d95 --- /dev/null +++ b/katta/Monika_Helsin.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the fine gems and jewelry section of Adornments of the Night! You will find our gems to be the finest cut and purest quality gems available for all your jewelry needs!"); + end +end diff --git a/katta/Morfesh_O-Koyle.lua b/katta/Morfesh_O-Koyle.lua new file mode 100644 index 0000000..ee2da9c --- /dev/null +++ b/katta/Morfesh_O-Koyle.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("A warm welcome friend! If you are a practitioner of the alchemical arts you may interested in the wide selection of rare and imported herbs that my family and I have to offer."); + end +end diff --git a/katta/Olam_Polaja.lua b/katta/Olam_Polaja.lua new file mode 100644 index 0000000..83d3a99 --- /dev/null +++ b/katta/Olam_Polaja.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings stranger. A word of advice if I may. Don't get yourself suckered into a game of coppers with this woman. she has an iron gullet!"); + end +end diff --git a/katta/Phenic_Dionicas.lua b/katta/Phenic_Dionicas.lua new file mode 100644 index 0000000..b10587c --- /dev/null +++ b/katta/Phenic_Dionicas.lua @@ -0,0 +1,66 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings adventurer. I am Phenic Dionicas, Magistrate of the Loyalist Combine Empire. I hope the [vampyres] did not cause you troubles on your journey here. "); + elseif(e.message:findi("vampyres")) then + e.self:Say("Aye, the vampyres of the Coterie of the Eternal Night. I was among the first to ever [discover] the vampyre threat when I was just a young boy freshly initiated into the [Validus Custodus]."); + elseif(e.message:findi("discover")) then + e.self:Say("I was on a routine trade route patrol through the tenebrous mountains and the grimling forest when we were attacked by a pack of the vile undead. The creatures that attacked us wore the garments of Shadow Haven merchants and nearly my entire patrol was slain by their claws and fangs. Only [Heratius Grolden] and myself made it back to the safety of Katta Castellum alive and shortly after I was the only survivor of the attack."); + elseif(e.message:findi("Validus Custodus")) then + e.self:Say("The Validus Custodus is the army of the Loyalist Empire. It was formerly known as the Tsaph Katta Militia when the city of Katta Castellum was still being erected upon the cliffs that it now stands. As the city grew and the duties of the militia expanded the governors and magistrates of the time met in council and the Validus Custodus was formed. My father Galin Dionicas was elected the first Commander and Chief of the Validus Custodus. Commander Galin was slain in his sleep the very same night that Heratius body was stolen from the graveyard by the vile Coterie of the Eternal Night. Their deeds shall not go unpunished."); + elseif(e.message:findi("Heratius Grolden")) then + e.self:Say("Heratius Grolden was a boyhood friend of mine and a brave legionnaire in the Validus Custodus. He was buried with honor in the graveyard of Katta Castellum. Several nights after his burial Heratius' grave had been dug up and his body was missing. I suspect and fear that the Coterie of the Eternal Night returned for him to make him one of their own. I pray to whatever gods are listening that some day we are able to [track down the defilers]!"); + elseif(e.other:GetFaction(e.self) < 6 and e.message:findi("track down the defilers")) then + e.self:Say("It has been several decades since the first group of vampyres that are responsible for the death of Heratius Grolden were encountered. I have been watching for signs of their origins since that time to little avail. What we do know is that they wore the apparel of merchants from Shadow Haven. How and why they were turned into the bloodsucking creatures they became is still a mystery and shrouded in many rumors. Take this official request form to the merchant records keeper in Shadow Haven and he may be able to provide you with records of any merchant caravans that departed for Katta Castellum within a reasonable time before the attacks and never returned."); + e.other:SummonCursorItem(31753); --Request Form + elseif(e.other:GetFaction(e.self) > 5 and e.message:findi("track down the defilers")) then + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + elseif(e.message:findi("Valdanov Zevfeer")) then + e.self:Say("Valdanov Zevfeer was a traveling alchemist and magical reagent peddler that used to occasionally visit Katta Castellum. At one point before the initial vampyre attacks he decided to remain in Katta Castellum for a while with the wealthy Katta citizen Nathyn Illuminious. Apparently that decision saved his life as according to the records you have provided the caravan he arrived with never completed the return trip to Shadow Haven. That is as much as I know about the individual as he primarily kept to himself during his stay here."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local qglobals = eq.get_qglobals(e.self,e.other); + local text = "I require the Ashes of Valdanov Zevfeer, the Magus Conlegium Token, and the Katta Castellum Badge of Service in order to reward you the honor you strive for."; + if(e.other:GetFaction(e.self) < 6 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18330}, 0)) then + e.self:Say("I was afraid of this. I do not know how much Halle managed to tell you, but we have had our suspicions about one of the Legionnaires ever since she overheard him talking in his sleep. She was meant to get close to him, I guess she found something out... I should have been more careful! Take this to Governor Markil, it concerns his men and I've no doubt he can handle it. Thank you much for your help."); + e.other:Faction(e.self,1561,2); -- Concillium Universus + e.other:Faction(e.self, 1483, -1); -- Seru + e.other:Faction(e.self, 1486, -1); -- Heart of Seru + e.other:QuestReward(e.self,0,0,0,0,18331,1000); -- Sealed Message + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18352}, 0)) then + e.self:Say("Most interesting. One of the names on this list I recognize. The alchemist [Valdanov Zevfeer]. Nathyn Illuminious would know more of Valdanov. Present this badge to Nathyn so that he knows you have been sent by the Magistrates to inquire about this issue and question him about the alchemist."); + e.other:Faction(e.self,1561,2); + e.other:Faction(e.self,1483,-1); + e.other:Faction(e.self,1486,-1); + e.other:QuestReward(e.self,0,0,0,0,31752,1000); -- First Badge of Service (Katta Castellum Badge of Service) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31755}, 0)) then + e.self:Say("So Valdanov had an interest in a Vah Shir vampyre?!! Perhaps we should seek out this Vah Shir and find more clues. Take these orders to Legionnaire Falion during his next shift at the Tenebrous Mountains Gate, he will question any travelers that pass by about this mysterious Vah Shir. Should you locate the Vah Shir Vampyre attempt to present him with your Badge of Service for questioning, he just may agree to cooperate rather than anger the Validus Custodus."); + e.other:Faction(e.self,1561,2); + e.other:Faction(e.self,1483,-1); + e.other:Faction(e.self,1486,-1); + e.other:QuestReward(e.self,0,0,0,0,31756,1000); -- Orders for Legionnaire Falion + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18449}, 0)) then + e.self:Emote(" listens to your account of the events that have occurred since last you spoke and reads through the journal. 'This investigation is getting more and more baffling the further we delve. Among other things, I am wondering if the shade that was imprisoned in the chest is the same that was providing Valdanov with the blood for his research. Take the belt that the shade was wearing with these instructions to Governor Lathin at the Magus Conlegium. In the meantime I will pay a visit to Nathyn Illuminious."); + e.other:Faction(e.self,1561,4); + e.other:Faction(e.self,1483,-1); + e.other:Faction(e.self,1486,-2); + e.other:QuestReward(e.self,0,0,0,0,7270); -- Instructions for Lathin Firetree + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 7361}, 0)) then -- Enchanted Record of Events + e.self:Say("There is much that is disturbing about these revelations. I will make sure the Validus Custodus is alert than they already are to the presence of powerful vampyre among our citizens. If you can find this Valdanov Zevfeer slay him and bring me his ashes your Katta Castellum Badge of Service, and your Magus Conlegium Token I will bestow upon you an honorable reward."); + e.other:Faction(e.self,1561,25); + e.other:Faction(e.self,1483,-2); + e.other:Faction(e.self,1486,-12); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29899}, 0)) then + e.self:Emote("looks at you and smiles despite the fact that you have splashed water all over him- he does not appear to be burning at all. 'Oh, excuse me. You seem to have spilled your water, here have some of mine my friend. Good day to you, " .. e.other:GetCleanName() .. ",' he says."); + e.other:QuestReward(e.self,0,0,0,0,29898); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 7397,item2 = 31757,item3 = 7394}, 1, text)) then + e.self:Say("You have done a great service for Katta Castellum and the Loyalist Empire. I award you for your honorable Services. Know that you will be remembered for your deeds."); + e.other:Faction(e.self,1561,50); + e.other:Faction(e.self,1483,-5); + e.other:Faction(e.self,1486,-25); + e.other:QuestReward(e.self,0,0,0,0,7398,100000); -- Loyalist Shield of Honor + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Praecantor_Ury_Polaja.lua b/katta/Praecantor_Ury_Polaja.lua new file mode 100644 index 0000000..2d4e054 --- /dev/null +++ b/katta/Praecantor_Ury_Polaja.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Shhh! We must maintain our concentration and please stand back! We are dealing with creatures that could be very dangerous should we loose control over them!"); + end +end diff --git a/katta/Raesha_Dawneyes.lua b/katta/Raesha_Dawneyes.lua new file mode 100644 index 0000000..3cab3b4 --- /dev/null +++ b/katta/Raesha_Dawneyes.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome friend! You have come to the right place if you are looking to learn how to sew the finest tailored garments in all of Luclin!"); + end +end diff --git a/katta/Raien_Talikar.lua b/katta/Raien_Talikar.lua new file mode 100644 index 0000000..fd09e75 --- /dev/null +++ b/katta/Raien_Talikar.lua @@ -0,0 +1,21 @@ +function event(e) + eq.set_timer("depop",600000); +end + +function event_timer(e) + eq.depop(); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10683}, 0)) then + e.self:Emote("reaches forward as his hands materialize to grasp the box of belongings then places them carefully in his crypt. He then reaches towards " .. e.other:GetCleanName() .. " again as an etherial scimitar materializes in his hands and is offered to " .. e.other:GetCleanName() .. "."); + e.other:Faction(e.self,1538,10); -- Spirits of Katta Castellum + e.other:Faction(e.self,1505,-1); -- Nathyn Illuminious + e.other:Faction(e.self,1502,1); -- Katta Castellum Citizens + e.other:QuestReward(e.self,0,0,0,0,10699,1000); -- Scimitar of Ethereal Energy + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Rallena_Doyle.lua b/katta/Rallena_Doyle.lua new file mode 100644 index 0000000..0008fee --- /dev/null +++ b/katta/Rallena_Doyle.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Rallena Doyle, Governess of Shamanism here in Katta Castellum. I work closely with Magistrate Malicus in maintaining the practice of traditional shamanism here on Luclin and maintaining a healthy relationship with the native spirits and the Vah Shir Spiritists in Shar Vahl.'"); + end +end diff --git a/katta/Rallic_Aristos.lua b/katta/Rallic_Aristos.lua new file mode 100644 index 0000000..e3e724a --- /dev/null +++ b/katta/Rallic_Aristos.lua @@ -0,0 +1,27 @@ +-- The Acrylia Plans + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met " .. e.other:GetCleanName() .. "! I am Rallic Aristos. Governor of trade and economy here in Katta Castellum. I know it sounds like a lot of parchment pushing and coin counting but maintaining good trade relations with the various Houses of Shadow Haven and the haggling Vah Shir of Shar Vahl is not as easy at it may sound. Then there is the issue of the [acrylia mines] in the Tenebrous Mountains."); + elseif(e.message:findi("acrylia mines")) then + e.self:Say("The Tenebrous Mountains are rich with veins of the valuable acrylia ore. Unfortunately the mines were dug and controlled by a tribe of savage grimlings from the forests to the south. Negotiations have been attempted with the grimlings but to no avail. Several of the other governors and I have been developing a [plan] to take the mines or establish mines of our own. In either case the mines will have to be defended from attacks by the grimlings unless when placed in that predicament they finally resort to trade negotiations."); + elseif(e.message:findi("plan")) then + e.self:Say("The full plans are not at my disposal but one of my concerns that may be instrumental in our success is the acquisition of grimling documents carried by a grimling courier who is seen frequently running from the forest to the mines. If one of the Validus Custodus attempts to obtain the runners pouch the grimlings will surely retaliate. if adventurers like yourselves obtained it however and quietly delivered it to me we may be able to move forward with our plans."); + elseif(e.message:findi("required materials")) then + e.self:Say("The rest of the materials are a pelt from an owlbear of the highest quality, a silk cord made from shades, and a silk thread also made from shades."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31730}, 0)) then + e.self:Say("Excellent. The contents of the pouch shall be examined immediately. Take this pattern for a crafting a pack that will be sure to lighten the burden of its contents. I'm afraid I do not have the rest of the [required materials] at hand."); + e.other:Faction(e.self,1561,5); -- concilium universe + e.other:Faction(e.self,1483,-1); -- seru + e.other:Faction(e.self,1486,-2); -- heart of seru + e.other:QuestReward(e.self,0,0,0,0,31729,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/katta/Rebecca_Wolfeye.lua b/katta/Rebecca_Wolfeye.lua new file mode 100644 index 0000000..2cf2575 --- /dev/null +++ b/katta/Rebecca_Wolfeye.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to our shop! You'll need a strong sturdy bow if you're planning on shooting vampyres instead of straw targets. I have all the supplies you'll need to construct such a bow."); + end +end diff --git a/katta/Roshawna_Rhorer.lua b/katta/Roshawna_Rhorer.lua new file mode 100644 index 0000000..aa9452b --- /dev/null +++ b/katta/Roshawna_Rhorer.lua @@ -0,0 +1,32 @@ +-- Rakshasa Skulls + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("A pleasure to speak with you! You appear to be a foreigner to Katta Castellum as well. I hope your reasons for visiting this noble city are more leisurely than my own. In addition to my normal duties as a Shar Vahl Emissary to Katta Castellum there is the issue of the [Tormented Vah Shir] in Tenebrous Mountains that must be dealt with."); + elseif(e.message:findi("tormented vah shir")) then + e.self:Say("Recently the skeletons of Vah Shir have been spotted wandering the Tenebrous Mountains ferociously and blindly attacking the living. There are legends among my people that speak of Vah Shir warriors that were murdered dishonorably in their sleep by a traitor allied with [dark spirits]. The spirits of these murdered warriors become trapped in their decaying mortal shells for often many years before they are driven mad by the despair, rage, and torturous experience. When this negative spirit energy becomes strong enough the corpses rise and attempt to slaughter all that crosses their path in their state of eternal rage. Spirits tormented in such a manner must be assisted so that they may finally find peace in death. Will you [help the souls] find peace?"); + elseif(e.message:findi("dark spirits")) then + e.self:Say("Not all spirits that can be called upon by those who are in touch with the spirit realms are of good intentions. There are spirits who seek to destroy and corrupt.These dark spirits are best avoided and kept from manifesting their influence on the mortal realms.Unfortunately the foolish or the weak willed are tempted by their promises of power. Most who deal with the dark spirits are shortly driven mad by the spirits influence or destroyed by the very powers they were promised. There are tales however of powerful shaman capable of harnessing and controlling the dark spirits and their evil powers of corruption. These wicked traitors to the Vah Shir teachings are called [Rakshasa]."); + elseif(e.message:findi("rakshasa")) then + e.self:Say("Like I said the Rakshasa are spoken of only in old tales. Whether they truly existed or not can not be proven for sure and the elder spiritualist insist they are nothing more than creatures of fiction. If there truly is a Rakshasa alive today it would be a powerful creature indeed. They are said to no longer have a physical body of their own, having traded it to a powerful evil spirit so that it may enter the mortal realm in exchange for dark gifts. Because the Rakshasa no longer has a physical body of its own it must take the forms of other creatures and can not be destroyed with conventional weapons."); + elseif(e.message:findi("help the souls")) then + e.self:Say("The only way for a tormented undead Vah Shir to be put to rest is to destroy its body and take its skull to Shar Vahl where our spiritualists can perform a ritual to cleanse and free the imprisoned spirit. Fill this chest with skulls and return it to me and I will make the preparations for it to be sent to Shar Vahl. The spiritualists there have just recently received word of the situation and will be prepared to perform the proper rituals when the time comes."); + e.other:SummonCursorItem(17079); -- Runed Iron Bound Chest + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31836}, 0)) then + e.self:Emote("purrs an incantation and waves her claws back and forth over the chest. The runes inscribed on the chest and iron bands begin to softly glow with a golden light. 'You have done a great service for these poor souls. I have sent for a courier to come for the chest of skulls but he is quite late in his arrival. I will keep it safe until the courier arrives."); + e.other:Faction(e.self,1513,5); -- Guardian of Shar Vahl + e.other:QuestReward(e.self,0,0,0,17,0,10000); + eq.unique_spawn(160171,31,0,-544,665,4,0); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31839}, 0)) then -- Resealed Runed Iron Bound Chest + e.self:Say("It appears this situation is much more dire than we had first presumed. It would be unsafe to send this crate within the walls of Shar Vahl should another innocent be possessed and the tormented vah shir be resurrected once more. I shall scribe a note explaining the occurrences for you to deliver along with the crate to Spiritist Roleko at the vah shir outpost in Grimling Forest."); + e.other:Faction(e.self,1513,2); -- Guardian of Shar Vahl + e.other:QuestReward(e.self,{items = {31840,31841},exp = 10000}); -- Resealed Warded Iron Bound Chest, Roshawna's Report of Occurrences + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Rowle_Shieldson.lua b/katta/Rowle_Shieldson.lua new file mode 100644 index 0000000..d21e090 --- /dev/null +++ b/katta/Rowle_Shieldson.lua @@ -0,0 +1,33 @@ +-- Beer for the guards + +function event_say(e) + local tack = eq.get_entity_list():GetMobByNpcTypeID(160398); + if(e.message:findi("hail")) then + if(tack.valid) then + tack:Say("Oi there, friend!"); + end + e.self:Say("Sure'n this one came from Norrath, eh Tack? One wonders if'n a bottle o' one on o' the finer things in life might be in our future, if we were to ask politely?"); + if(tack.valid) then + tack:Say("Yar, Rowle. So whadda ye say, friend? We stand around drinkin' water on duty all day, and that ain't no life fer a dwarf. Now we bin hearin' bout all these new ales and suchnot comin' up from Norrath. Ye think ye might be so kind as to share a pint and raise our spirits?"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19967}, 0)) then + e.self:Emote("takes a wee sip and smacks his lips together, proclaiming, 'Ahhh, a finer stout has never passed my lips, ' before draining the mug in one gulp. 'Yer a saint amongst us, I say. Feel free to keep 'em coming, " .. e.other:GetCleanName() .. "!'"); + e.other:Faction(e.self,1503,1); -- validus custodus + e.other:Faction(e.self,1502,1); -- katta castellum citizens + e.other:Faction(e.self,1504,1); -- magus conlegium + e.other:Faction(e.self,1505,-1); -- nathyn illuminious + e.other:Faction(e.self,1506,-1); -- coterie of the eternal night + e.other:Faction(e.self,1483,-4); -- seru + e.other:Faction(e.self,1484,-1); -- hand of seru + e.other:Faction(e.self,1485,-1); -- eye of seru + e.other:Faction(e.self,1541,-1); -- hand legionnaires + e.other:QuestReward(e.self,0,0,0,0,0,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Salic_Whispersong.lua b/katta/Salic_Whispersong.lua new file mode 100644 index 0000000..33264b9 --- /dev/null +++ b/katta/Salic_Whispersong.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met " .. e.other:GetCleanName() .. "! I am Magistrate Salic Whispersong of Katta Castellum and the Empire of the Loyalist Combine. I assist the scholars of Katta Castellum with study and documentation of the rich and detailed history of our grand city. Should you find the need to discover a tid bit of information regarding our city or empires past I will be of service of point you in the right direction."); + end +end diff --git a/katta/Saumeem_Unja.lua b/katta/Saumeem_Unja.lua new file mode 100644 index 0000000..500952f --- /dev/null +++ b/katta/Saumeem_Unja.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail " .. e.other:GetCleanName() .. ", it is a pleasure to meet you. As the Governor of Defense for Katta Castellum it is my duty to ensure the safety of the city from outside enemies. At present the most imminent threat to the safety of our citizens is the Coterie of the Eternal Night and their [assassins]. There are other matters of defense as well however that you may be of [assistance] in dealing with."); + elseif(e.message:findi("assassins")) then + -- Start of Assassins Part1 + e.self:Say("The Coterie of the Eternal Night has trained several of their members to infiltrate the defenses of Katta Castellum and capture or kill citizens of our great city. Few of these assassins are successful at breaching the gate but the ones that do succeed tend to hide in shadowy corners waiting for an opportune moment to emerge and attack their victims. Should you discover one of these undead assassins slay it immediately. Kill four such assassins and deliver their Coterie Assassin Garrotes to me and you shall be honored by the Validus Custodus."); + elseif(e.message:findi("assistance")) then + -- Start of Assistance + e.self:Say("Ah... Im glad that you have asked. There is a special matter that may benefit from your skills as an adventurer. I would love to explain the matter in full detail, but Im afraid that I am not your best source of information at this juncture. The matter was delegated to Kellari Autumnfall. Seek her out and see if she requires your assistance. She is looking into a matter of grave importance. Tell her that I sent you, should she ask. Be well and good luck with it."); + elseif(e.message:findi("coterie infiltrators")) then + -- Start of Assassins Part2 + e.self:Say("They are undead Illusionists capable of disguising themselves as mortals. The signs of an infiltrator are often difficult to spot but should you identify an infiltrator within the city slay it, bring me two of the creatures fangs, a Gem of Condensed Flame and your Reflective Combine Claymore and I shall bestow upon you a greater reward."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + -- Handin: 4x Coterie Assassin Garrotes (31799) + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31799,item2 = 31799,item3 = 31799,item4 = 31799}, 0)) then + -- End of Assassins Part1 + e.self:Say("I see you have met with success " .. e.other:GetCleanName() .. "! You have earned the respect of the Validus Custodus. Please take this as a symbol of our gratitude and your bravery. You are gaining notoriety with the Coterie, be wary of the [Coterie Infiltrators]."); + e.other:Faction(e.self,1503,10); -- +Validus Custodus + e.other:Faction(e.self,1502,1); -- +Katta Castellum Citizens + e.other:Faction(e.self,1504,1); -- +Magus Conlegium + e.other:Faction(e.self,1505,-1); -- -Nathyn Illuminious + e.other:Faction(e.self,1506,-1); -- -Coterie of the Eternal Night + e.other:Faction(e.self,1483,-1); -- -Seru + e.other:Faction(e.self,1484,-5); -- -Hand of Seru + e.other:Faction(e.self,1485,-1); -- -Eye of Seru + e.other:Faction(e.self,1541,-1); -- -Hand Legionnaries + e.other:QuestReward(e.self,0,0,0,0,31829,1000); -- Reflective Combine Claymore + -- Handin: 2x Vampyre Infiltrator Fang (31832), 1x Gem of Condensed Flame (31831), 1x Reflective Combine Claymore (31829) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31832,item2 = 31832,item3 = 31831,item4 = 31829})) then + -- End of Assassins Part2 + e.self:Say("Congratulations " .. e.other:GetCleanName() .. "! You have done great deeds for the Validus Custodus and the safety of Katta Castellum. I award you with Ashbringer, a weapon wielded in the past by some of the Validus Custodus most fervent undead slayers. May it pass into good hands and may it continue to turn the undead to ash and dust."); + e.other:Faction(e.self,1503,10); -- +Validus Custodus + e.other:Faction(e.self,1502,1); -- +Katta Castellum Citizens + e.other:Faction(e.self,1504,1); -- +Magus Conlegium + e.other:Faction(e.self,1505,-1); -- -Nathyn Illuminious + e.other:Faction(e.self,1506,-1); -- -Coterie of the Eternal Night + e.other:Faction(e.self,1483,-1); -- -Seru + e.other:Faction(e.self,1484,-5); -- -Hand of Seru + e.other:Faction(e.self,1485,-1); -- -Eye of Seru + e.other:Faction(e.self,1541,-1); -- -Hand Legionnaries + e.other:QuestReward(e.self,0,0,0,0,31830,1000); -- Ashbringer + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3873}, 0)) then -- Colain head turn-in for Saureem's Assistance + e.self:Say("It is very unfortunate that you had to be exposed to such corruption. Please, do not consider what you have seen during this situation to be the standard for our community. This was a rare occurrence. This situation did however allow you to prove yourself to us. We thank you for your bravery and selfless action in this matter. May you be followed by favor and may this small gift from my fellow governors and me assist you in your journeys."); + e.other:Faction(e.self,1503,50); -- +Validus Custodus + e.other:Faction(e.self,1502,5); -- +Katta Castellum Citizens + e.other:Faction(e.self,1504,5); -- +Magus Conlegium + e.other:Faction(e.self,1505,-5); -- -Nathyn Illuminious + e.other:Faction(e.self,1506,-5); -- -Coterie of the Eternal Night + e.other:Faction(e.self,1483,-5); -- -Seru + e.other:Faction(e.self,1484,-25); -- -Hand of Seru + e.other:Faction(e.self,1485,-5); -- -Eye of Seru + e.other:Faction(e.self,1541,-5); -- -Hand Legionnaries + e.other:QuestReward(e.self,0,0,0,0,3875,1000); -- Elaborately Gilded Wooden Spear + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Shara_Aristos.lua b/katta/Shara_Aristos.lua new file mode 100644 index 0000000..f749324 --- /dev/null +++ b/katta/Shara_Aristos.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings good " .. e.other:GetCleanName() .. "! I am Shara Aristos. Governess of History and Lore. I aid the scholars and Magistrate Salic in keeping accurate and detailed records of the history of Katta Castellum and the Combine Empire as well as organize and record lore on an abundance of topics."); + end +end diff --git a/katta/Sharra_O-Koyle.lua b/katta/Sharra_O-Koyle.lua new file mode 100644 index 0000000..1ba0aaf --- /dev/null +++ b/katta/Sharra_O-Koyle.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail friend! I've got a well stocked supply of alchemical herbs for sale. If you're interested you're welcome to browse my wares."); + end +end diff --git a/katta/Shay_Aristos.lua b/katta/Shay_Aristos.lua new file mode 100644 index 0000000..27dfcf4 --- /dev/null +++ b/katta/Shay_Aristos.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Adornments of the Night! We carry tailoring supplies and fine clothing for all occasions! Please feel free to examine our selection!"); + end +end diff --git a/katta/Shoeon_Malicus.lua b/katta/Shoeon_Malicus.lua new file mode 100644 index 0000000..1d984b3 --- /dev/null +++ b/katta/Shoeon_Malicus.lua @@ -0,0 +1,21 @@ +function event(e) + eq.set_timer("depop",600000); +end + +function event_timer(e) + eq.depop(); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10684}, 0)) then + e.self:Emote("reaches forward as his hands materialize to grasp the box of belongings then places them carefully in his crypt. He then reaches towards " .. e.other:GetCleanName() .. " again as an etherial warhammer materializes in his hands and is offered to " .. e.other:GetCleanName() .. "."); + e.other:Faction(e.self,1538,10); -- Spirits of Katta Castellum + e.other:Faction(e.self,1505,-1); -- Nathyn Illuminious + e.other:Faction(e.self,1502,1); -- Katta Castellum Citizens + e.other:QuestReward(e.self,0,0,0,0,10686,1000); -- Warhammer of Ethereal Energy + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Strange.lua b/katta/Strange.lua new file mode 100644 index 0000000..697bf25 --- /dev/null +++ b/katta/Strange.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("sounds seem to be coming from the soil in front of you."); + eq.depop_with_timer(); +end diff --git a/katta/Tack_Shieldson.lua b/katta/Tack_Shieldson.lua new file mode 100644 index 0000000..784c249 --- /dev/null +++ b/katta/Tack_Shieldson.lua @@ -0,0 +1,39 @@ +-- Beer for the guards + +function event_say(e) + local rowle = eq.get_entity_list():GetMobByNpcTypeID(160207); + if(e.message:findi("share a pint")) then + if(rowle.valid) then + rowle:Say("That'd be great! By Brell, a short beer or a honey mead'd be a nice change from?"); + end + e.self:Say("Shhhhhh!!' He runs over and kicks Rowle in the kneecap and chuckles under his beard in your direction. Speaking under his breath to Rowle, 'Don' be such an idjit, now this lad came all the way from Norrath, why not try some of the fabled ales we'd heard our pappy's talkin' of?"); + if(rowle.valid) then + rowle:Emote("catches on slowly, 'ahhh, roight! Good show, Tack! D'ye think 'e would go te that kinda trouble fer us?'"); + end + elseif(e.message:findi("trouble")) then + if(rowle.valid) then + rowle:Emote("clears his throat and flashes a broken-toothed grin your way, 'Ye know, me dwarven heart longs for me first taste o' some underfoot brown, a reputed fine stout not available 'ere on Luclin... Ye know, if ye can manage it that is.'"); + end + e.self:Say("Ahhh, worthy o' Brell hisself or so they say. Ye know when I was just a pup, back before the exodus, me uncle used te talk about stompin' trolls and then sitting back with a Boot Beer te celebrate the day's victory. I, ummm, really would be able te get in touch with me heritage were I able to sample some o' that fine stout. Ye'd be a true friend to the Validus Custodus fer helpin' us out friend. My thanks to ye in advance."); + end +end + + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19188}, 0)) then + e.self:Emote("gingerly takes the boot from you, handling it as though it were a fine porcelain. With a look of thanks to you he slowly lifts it to his lips and suddenly tips it back to empty it in one gulp, frothing his beard in the process. 'Yar! That's the ticket! Damn fine stuff that is, just like me uncle always said. A service to the Validus Custodus have ye done, my friend... And I'd be happy to assist ye in that service again sometime. HAR!'"); + e.other:Faction(e.self,1503,1); -- validus custodus + e.other:Faction(e.self,1502,1); -- katta castellum citizens + e.other:Faction(e.self,1504,1); -- magus conlegium + e.other:Faction(e.self,1505,-1); -- nathyn illuminious + e.other:Faction(e.self,1506,-1); -- coterie of the eternal night + e.other:Faction(e.self,1483,-1); -- seru + e.other:Faction(e.self,1484,-1); -- hand of seru + e.other:Faction(e.self,1485,-1); -- eye of seru + e.other:Faction(e.self,1541,-1); -- hand legionnaires + e.other:QuestReward(e.self,0,0,0,0,0,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Teepa_Berrytoe.lua b/katta/Teepa_Berrytoe.lua new file mode 100644 index 0000000..2ea3d82 --- /dev/null +++ b/katta/Teepa_Berrytoe.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, friend. I am Magistrate Teepa Berrytoe of Katta Castellum. If you are a tradesman or craftsman I'm sure you will find the workshops of Katta Castellum to be quite exceptional and our citizen craftsman are renowned for their meticulous attention to detail and quality."); + end +end diff --git a/katta/Terasol.lua b/katta/Terasol.lua new file mode 100644 index 0000000..3b34ecc --- /dev/null +++ b/katta/Terasol.lua @@ -0,0 +1,20 @@ +-- Mining Operation + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Nice to meet you, " .. e.other:GetCleanName() .. ". I have usually the finest mining supplies one can find. However, I am waiting for a shipment so please check back later."); + elseif(e.message:findi("take the mining pick")) then + e.self:Say("Very well then. Here are the new mining picks. Send Daesorak my regards."); + e.other:SummonCursorItem(4755); -- Item: A Bundle of Mining Picks + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4754}, 0)) then + e.self:Say("Ah, of course, you must be sent to pick up the supplies that Daesorak has been needing for his mining operation. I was wondering when that crazy Dwarf was going to come and pick these up. I imagine then that you will [take the mining picks] to Daesorak?"); + e.other:QuestReward(e.self,0,0,0,0,0,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/The_ground.lua b/katta/The_ground.lua new file mode 100644 index 0000000..18ef7fa --- /dev/null +++ b/katta/The_ground.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("to your right just shook."); + eq.depop_with_timer(); +end diff --git a/katta/The_smell.lua b/katta/The_smell.lua new file mode 100644 index 0000000..d00d520 --- /dev/null +++ b/katta/The_smell.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("of decay seems to be moving with you."); + eq.depop_with_timer(); +end diff --git a/katta/The_study.lua b/katta/The_study.lua new file mode 100644 index 0000000..c4bb906 --- /dev/null +++ b/katta/The_study.lua @@ -0,0 +1,22 @@ +function event_spawn(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(160097)) then + eq.set_timer("depop_servant", 10000); + end +end + +function event_combat(e) + e.self:Emote("locks behind you.. You get the feeling you are not alone."); + eq.set_timer("servant",5000); +end + +function event_timer(e) + if(e.timer == "servant") then + eq.stop_timer("servant"); + eq.stop_timer("depop_servant"); + eq.unique_spawn(160097, 0, 0, -719, 288, 35, 0); + eq.depop_with_timer(); + elseif(e.timer == "depop_servant") then + eq.stop_timer("depop_servant"); + eq.depop(160097); + end +end diff --git a/katta/Tilbok_Furrunner.lua b/katta/Tilbok_Furrunner.lua new file mode 100644 index 0000000..5de113d --- /dev/null +++ b/katta/Tilbok_Furrunner.lua @@ -0,0 +1,72 @@ +-- Quests for Katta Castellum - Tilbok Furrunner: Runed Earring of Veracity, Signet Earring of Veracity and Traitor to the Validus Custodus + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ". Pleasure to meet you, I am Governor Tilbok Furrunner. I am tasked with the gathering and security of information for the Concilium Universus, the ruling council of our fine city."); + elseif(e.message:findi("purpose")) then + e.self:Say("The teaching in the city is that Katta feigned his death to blame it on Seru. When in fact Seru actually poisoned Katta. The crusade that Seru leads is false and must be stopped. We must gain access to Seru's [chambers] and destroy him and show the city the truth."); + elseif(e.message:findi("chambers")) then + e.self:Say("We do not know much about Seru's Chamber, that is what we need you to find out. This will require great effort on your part. We need you to infiltrate Sanctus Seru and bring back reports from each Consillium. I do not know who will have these reports, and I have only heard rumor that they exist. Return to me with the Satchel full, and your Etched Earring."); + elseif(e.message:findi("action")) then + e.self:Say("You must go see Lcea. She was Tsaph Katta's closest advisor. This matter has escalated greatly and must be placed in her hands. Ask her about the [Arx Key] she will no doubt ask in your service retrieving it. I salute your service to the city and wish you well."); + elseif(e.message:findi("praesertum")) then -- This text is from where? + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("who is Seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("i will help")) then + e.self:Say("Excellent. Find Claudius and give that to him- it's gibberish but he and his new friends won't know that now will they? We have been watching someone named Vahn enter the city under the guise of a trader. We know he works for Seru, but we were not sure what he was doing here, so we let him be- trouble was he kept giving us the slip passing through the tunnels. Looks now like we may have found a connection. The plan sounds complicated and I don't want to confuse you, but if you stick with me it will all go just fine. You with me so far, " .. e.other:GetCleanName() .. "?"); + e.other:QuestReward(e.self,0,0,0,0,29846); -- Recording Stone + elseif(e.message:findi("i am with you")) then + e.self:Say("OK, now you follow Claudius but not so closely that he can see you. Keep this stone on you, it is imbued with the power to record anything spoken within a certain distance and will be a great asset to us when this is all said and done. If Claudius does meet up with Vahn, I want you to walk right up to him and say, 'traitor to the Validus Custodus' and do it quickly- they won't give you much time. That should rattle him a bit and it will be the signal for my men to come in and take care of them. After the arrest, just give that recording stone to Condor. Best of luck to you, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("Where is claudius")) then + e.self:Say("Claudius is a bit of a lazy sod anyway. If he ain't asleep in a bunk downstairs right now, you can bet your undergarments he will be soon."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29891}, 0)) then -- Report to Tilbok + e.self:Emote("reads through the report, hands you a small satchel then starts to explain. 'Finally, news from Euzan. I knew that it would take a long time to get planted within Seru, but I still worried about their mission constantly. This report shows that you have earned trust from Euzan, so I in turn will show the same trust. Euzan and Torsten were placed in the city for information. They are deep undercover and risk their life everyday. Every person in that city is ingrained with the [purpose] of either destroying Katta or converting his people.'"); + e.other:Faction(e.self,1503,10); -- Validus Custodus + e.other:Faction(e.self,1502,1); -- Katta Castellum Citizens + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1505,-1); -- Nathyn Illuminious + e.other:Faction(e.self,1506,-1); -- Coterie of the Eternal Night + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1484,-5); -- Hand of Seru + e.other:Faction(e.self,1485,-1); -- Eye of Seru + e.other:Faction(e.self,1541,-1); -- Hand Legionnaries + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,17121,1000); -- Report Satchel + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29858,item2 = 29889})) then -- Etched Earring of Veracity and Full Satchel + e.self:Say("According to these reports Seru resides in a building called the Arx Seru. It is the large complex in the center of the four Praesertum Consillium. We must take [action] now. Do not underestimate the power of Sanctus Seru for what they do they feel is right."); + e.other:Faction(e.self,1503,20); -- Validus Custodus + e.other:Faction(e.self,1502,2); -- Katta Castellum Citizens + e.other:Faction(e.self,1504,2); -- Magus Conlegium + e.other:Faction(e.self,1505,-2); -- Nathyn Illuminious + e.other:Faction(e.self,1506,-2); -- Coterie of the Eternal Night + e.other:Faction(e.self,1483,-2); -- Seru + e.other:Faction(e.self,1484,-10); -- Hand of Seru + e.other:Faction(e.self,1485,-2); -- Eye of Seru + e.other:Faction(e.self,1541,-2); -- Hand Legionnaries + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,29859,10000); -- Runed Earring of Veracity + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29844}, 0)) then -- Dossier: Case 3463827 + e.self:Emote("reads through the dossier and then looks at you, eyebrow raised curiously, 'look at the mess you have gotten yourself in the middle of,' he says with a chuckle, while beginning to jot a note. 'Here take this and...' he stops midsentence. 'I guess I haven't even given you the chance to say whether or not you want to help. Would you like to see this through to the end?'"); + e.other:Faction(e.self,1503,2); -- Validus Custodus + e.other:Faction(e.self,1502,1); -- Katta Castellum Citizens + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1505,-1); -- Nathyn Illuminious + e.other:Faction(e.self,1506,-1); -- Coterie of the Eternal Night + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1484,-1); -- Hand of Seru + e.other:Faction(e.self,1485,-1); -- Eye of Seru + e.other:Faction(e.self,1541,-1); -- Hand Legionnaries + e.other:QuestReward(e.self,0,0,0,0,29845,5000); -- Field Orders + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 5105}, 0)) then + e.self:Say("I see you've spoken with Condor, and no doubt he told you I can recharge this for you. Well, it's true, but don't go around telling everyone. It's not something I like to make public, you know. Keep up the good work, though, we all appreciate it around here."); + e.other:QuestReward(e.self,0,0,0,0,5105); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Tobala_Honeyjar.lua b/katta/Tobala_Honeyjar.lua new file mode 100644 index 0000000..df54cd8 --- /dev/null +++ b/katta/Tobala_Honeyjar.lua @@ -0,0 +1,35 @@ +-- Fertilizer & rare plants + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. "! I am Governess Tobala Honeyjar of Katta Castellum. Overseeing the maintenance of the [Nocturnal Gardens] is just one of my duties as the governess of agriculture and ecology."); + elseif(e.message:findi("nocturnal gardens")) then + e.self:Say("These are the Nocturnal Gardens in which we now stand. It is a collection of flora from various regions of the dark side of Luclin. It is a shame that we are not capable of supplying the nutrients necessary to maintain flora from the light side of Luclin. If you wish to assist in the maintenance of the garden I have some [tasks] you may be helpful in completing."); + elseif(e.message:findi("tasks")) then + e.self:Say("I am in need of ingredients to create more [fertilizer] and in need of a competent forager to gather some [rare plants] for me."); + elseif(e.message:findi("fertilizer")) then + e.self:Say("How humble of you to assist me with my mundane tasks! Take this bag and fill it with Three piles of Owlbear Dung, Three Piles of Fungus Compost, and Two Piles of Netherbian Nitrate."); + e.other:QuestReward(e.self,0,0,0,0,17870); + elseif(e.message:findi("rare plants")) then + e.self:Say("I am seeking seeds and plants that I may extract the seeds from that are native to the light side of Luclin so that I am prepared should the Illuminarium Industria succeed in constructing a lantern that will provide the plants with the nutrients they need to survive here on the dark side. It would be a tremendous help if you could bring me a Twilight Orchid, Dawnflower Seeds, a Red Sands Cactus, and a Letalis Zenith Vine."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31779}, 0)) then + e.self:Say("Oh! Thank you so much! You have saved much time and trouble! Now if only those tinkerers in the Illuminarium Industria could figure out how to get that artificial light working!"); + e.other:Faction(e.self,1561,2); -- concillium universus + e.other:Faction(e.self,1486,-1); -- heart of seru + e.other:Faction(e.self,1483,-1); -- seru + e.other:QuestReward(e.self,0,0,0,0,12809,500); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14936,item2 = 14931,item3 = 14952,item4 = 14953}, 0)) then + e.self:Say("Oh! Thank you so much! You have saved much time and trouble! Now if only those tinkerers in the Illuminarium Industria could figure out how to get that artificial light working!"); + e.other:Faction(e.self,1561,2); -- concillium universus + e.other:Faction(e.self,1486,-1); -- heart of seru + e.other:Faction(e.self,1483,-1); -- seru + e.other:QuestReward(e.self,0,0,0,0,10695,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Toktonn_Geerlok.lua b/katta/Toktonn_Geerlok.lua new file mode 100644 index 0000000..25b3a7b --- /dev/null +++ b/katta/Toktonn_Geerlok.lua @@ -0,0 +1,22 @@ +-- Grimling Picks + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met, kind " .. e.other:Race() .. ". I am Governor Toktonn Geerlok of the Loyalist Combine. It is my duty to oversee all matters concerning engineering, construction, and maintenance within Katta Castellum. There is a wonderful ore native to Luclin called [Acrylia] that has proved to be a valuable asset to my crew and I."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Yes, it is a marvelous luminescent ore that when properly smelted has properties similar to the finest of steels, and sometimes even better. Depending on the purity of the ore of course. The Tenebrous Mountains are rich with very pure acrylia veins but unfortunately the Grimlings have overrun the mines and are not willing to allow others to mine the ore. Instead they horde it for their tribes to the south. I am permitted by the Validus Custodus to reward those seeking to cleanse the mines of the Grimlings. More precisely to pay a reward for every four grimling mining picks presented to me."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2695,item2 = 2695,item3 = 2695,item4 = 2695}, 0)) then + e.self:Say("Excellent! Soon the grimlings may be coerced into being less stingy with their precious ore!"); + e.other:Faction(e.self,1561,4); -- concillium universus + e.other:Faction(e.self,1483,-1); -- seru + e.other:Faction(e.self,1486,-2); -- heart of seru + e.other:QuestReward(e.self,0,0,0,0,31727,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Triblix_Tikbok.lua b/katta/Triblix_Tikbok.lua new file mode 100644 index 0000000..efc91fb --- /dev/null +++ b/katta/Triblix_Tikbok.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Pleasure to meet ya! Have you come to the Illuminarium Industria to gaggle about or have you come looking for [some work]?"); + elseif(e.message:findi("some work")) then + e.self:Say("Well in that case I sure could use the assistance of a powerful $race such as yourself. You see my job here is to construct the lighting for Katta Castellum and Im always in need of more supplies. I need a fresh supply of [zelniak oil] for the standard city street lanterns and a fresh supply of [acrylian phosphate] to construct more phosporous lanterns and torches."); + elseif(e.message:findi("acrylian phosphate")) then + -- Start of Acrylia Phosphate + e.self:Say("Acrylian phosphate is an uncommon mineral deposit containing the same mineral compound that provides acrylia ore with its self luminescence. The acrylian phosphate also burns very well and at extremely high temperatures for very long periods of time. I will trade with you for every four piles of acrylian phosphate you can supply me."); + elseif(e.message:findi("zelniak oil")) then + -- Start Zelniak Oil + e.self:Say("Zelniaks are strange creatures that live on the light side of Luclin. Their fat can be boiled in a brew barrel with a flask of water and poured into an empty bottle to produce an oil that is an excellent fuel for lanterns. I will trade for every four bottles of zelniak oil you produce for me."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + -- Handin: 4x Acrylian Phosphate (10690) + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10690,item2 = 10690,item3 = 10690,item4 = 10690}, 0)) then + -- End of Acrylia Phosphate + e.self:Say("Thank you " .. e.other:GetCleanName() .. "! This acrylian phosphate is such a wonderful mineral both for producing extremely long lasting lights and also for the aversion vampyres seem to have to the way it burns!"); + e.other:Faction(e.self,1502,2); -- +Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- +Validus Custodus + e.other:Faction(e.self,1504,1); -- +Magus Conlegium + e.other:Faction(e.self,1499,-1); -- -Citizens of Seru + e.other:Faction(e.self,1483,-1); -- -Seru + e.other:Faction(e.self,1487,-1); -- -Shoulders of Seru + e.other:QuestReward(e.self,0,0,0,0,2596,500); -- Phosphorous Torch + -- Handin: 4x Zelniak Oil (10691) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10691,item2 = 10691,item3 = 10691,item4 = 10691}, 0)) then + -- End of Zelniak Oil + e.self:Say("Thank you " .. e.other:GetCleanName() .. "! It would be pretty hard to see around here if we didnt keep the fires burning, it never being daytime and all."); + e.other:Faction(e.self,1502,2); -- +Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- +Validus Custodus + e.other:Faction(e.self,1504,1); -- +Magus Conlegium + e.other:Faction(e.self,1499,-1); -- -Citizens of Seru + e.other:Faction(e.self,1483,-1); -- -Seru + e.other:Faction(e.self,1487,-1); -- -Shoulders of Seru + e.other:QuestReward(e.self,0,0,math.random(5),0,10694,500); -- Combine Fire Flask + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Vanessa_Rutledge.lua b/katta/Vanessa_Rutledge.lua new file mode 100644 index 0000000..34ea622 --- /dev/null +++ b/katta/Vanessa_Rutledge.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Nectar of Unity Tavern! My family has been running this establishment since the very birth of Katta Castellum. Please stay and sample our fine selection of imported and house brews! I am sure you will find the company here in the tavern quite pleasant as well."); + end +end diff --git a/katta/Yaeorat.lua b/katta/Yaeorat.lua new file mode 100644 index 0000000..43b5ceb --- /dev/null +++ b/katta/Yaeorat.lua @@ -0,0 +1,17 @@ +-- Gemmed Sword Hilt + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ah, hello there stranger. I do not often receive visitors in my workshop, what brings you here today?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4762}, 0)) then -- Gemmed Sword Hilt + e.self:Say("Ah, a Gemmed sword hilt attached with a note from my old friend Daloran. It is a shame that I have not seen him for such a long time. Being so busy with my work has prevented me from seeing and of my family or friends, really. Alas, this hilt has a positive energy eminating from it and not destructive as Daloran feared. Please take this back to him as I'm sure he awaits it."); + e.other:QuestReward(e.self,0,0,0,0,4763,5000); -- Gem Encrusted Sword Hilt + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Yavik_Teralin.lua b/katta/Yavik_Teralin.lua new file mode 100644 index 0000000..3c47140 --- /dev/null +++ b/katta/Yavik_Teralin.lua @@ -0,0 +1,35 @@ +function event_spawn(e) + eq.set_timer("tree", 1800000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings friend! Pull up a stool and order some of the finest ale in all of Luclin. If it's a [tale or two] you're lookin to hear as well I would suggest staying away from those two fools Arbogast and Miller. They're full of more hot air than a red dragon!"); + elseif(e.message:findi("tale or two")) then + e.self:Say("I could tell you some interesting stories. I spent many years serving as a scout in the Validus Custodus. I've seen places and things that'll cause you to loose sleep for many days. One of the most facinating things I've seen however was while I was out on patrol near the [Acrylia Caverns]."); + elseif(e.message:findi("acrylia caverns")) then + e.self:Say("The Acrylia Caverns are teeming with grimlings that tend to be a bit more evolved than your run of the mill dirtballs you find living in villages elsewhere on luclin. I was with a small patrol of scouts watching for any indication of the Acrylia Caverns Grimlings sending aid to the grimlings in Tenebrous Mountains during one of the Validus Custodus campains to rid the tenebrous mines of the little buggers. What we [discovered] was something quite different."); + elseif(e.message:findi("discovered")) then + e.self:Say("We spotted a small group of grimlings leaving the caverns hauling a cart full of acrylia ore. The strange thing was. this acrylia was darker than normal and instead of the normal golden hued veins it was covered with veins blacker than any darkness I've ever seen. I shadowed these grimlings to a grimling village some distance from the caverns where they exchanged some of this [black acrylia] with others of their kind."); + elseif(e.message:findi("black acrylia")) then + e.self:Say("Seems the grimlings use this rare acrylia ore to craft fierce weapons that not only cut or bash but strangle the spirits of those they harm. I observed some of their [method for crafting] the black acrylia but not being knowledgeable of the smithing arts myself and the distance at which I had to observe made the details a bit obscure."); + elseif(e.message:findi("method for crafting")) then + e.self:Say("I explained my observations to one of our master smiths here in Katta Castellum and he has since successfully worked the ore. The difficulty of obtaining the [necessary supplies] for crafting the black acrylia however prevents the Validus Custodus and Magus Conlegium from doing extensive research of the strange ore."); + elseif(e.message:findi("necessary supplies")) then + e.self:Say("We have discovered that the grimlings use a special Black Acrylia Temper when crafting sheets of black acrylia and then again when crafting those sheets into weapons with the appropriate weapon molds. I saw this substance during my observations and after many attempts we seem to have discovered its [ingredients]."); + elseif(e.message:findi("ingredients")) then + e.self:Say("We believe the grimlings brew a mixture of Essence of Darkness. Akheva Blood. and Distilled Mana to create the temper. We have attempted this formulae and it does indeed seem to enhance the innate magical powers of the black acrylia ore. allowing it to be crafted into weapons of terrible devastation. Be careful what you do with this knowledge friend. I would hate for the Inquisition to find the means of equipping their legions with weapons the likes of which I have described."); + end +end + +function event_timer(e) + if(e.timer == "tree") then + e.self:Say("You ever communed with a tree? Most people just walk right past them and don't take the time to stop and really appreciate what that tree means."); + eq.set_timer("Danika", 150000); + elseif(e.timer == "Danika") then + eq.stop_timer("Danika"); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(160225)) then + eq.get_entity_list():GetMobByNpcTypeID(160225):Say("I think you should take it easy with that ale there, Yavik."); + end + end +end diff --git a/katta/Yolanda_Honeyjar.lua b/katta/Yolanda_Honeyjar.lua new file mode 100644 index 0000000..c1521f9 --- /dev/null +++ b/katta/Yolanda_Honeyjar.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("sniffs the sweetly scented air. 'Ah, nothing will make your mouth water quite like the scent of fresh pastries! I've got the supplies you need to be well on your way to becoming an excellent chef!"); + end +end diff --git a/katta/You_hear.lua b/katta/You_hear.lua new file mode 100644 index 0000000..c418a1e --- /dev/null +++ b/katta/You_hear.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("something digging just to your left."); + eq.depop_with_timer(); +end diff --git a/katta/You_kick.lua b/katta/You_kick.lua new file mode 100644 index 0000000..ddc2b41 --- /dev/null +++ b/katta/You_kick.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("over some wilted flowers."); + eq.depop_with_timer(); +end diff --git a/katta/You_step.lua b/katta/You_step.lua new file mode 100644 index 0000000..ffbab9b --- /dev/null +++ b/katta/You_step.lua @@ -0,0 +1,12 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("on a fresh grave and the soil around you springs to life!"); + eq.spawn2(eq.ChooseRandom(160006,160007,160095,160096),0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); +end diff --git a/katta/Your_foot.lua b/katta/Your_foot.lua new file mode 100644 index 0000000..bcd15ac --- /dev/null +++ b/katta/Your_foot.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("sinks into the soft surface of a weathered grave."); + eq.depop_with_timer(); +end diff --git a/katta/Yurddle_the_Caretaker.lua b/katta/Yurddle_the_Caretaker.lua new file mode 100644 index 0000000..4bffd80 --- /dev/null +++ b/katta/Yurddle_the_Caretaker.lua @@ -0,0 +1,58 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings stranger. It's nice to have visitors of the living sort. Seems like my work here is never done. When I'm not having to dig fresh graves and keep the mausoleum clean I'm having to refill old graves that have been dug up by the [restless dead] or them disrespectful [grave robbers]!"); + elseif(e.message:findi("restless dead")) then + e.self:Say("That's right. We've got our fair share of undead lurking around our fine city. Most of the sorry souls aren't as troublesome as the vampyres and we've even got a few [friendly spirits] right here in this very mausoleum."); + elseif(e.message:findi("friendly spirits")) then + e.self:Say("Every so often when Norrath is near its zenith a group of spirits gathers at the podium and chairs over there. Seems they were some of the original Loyalists that arrived here on Luclin and helped build our great city of Katta Castellum. Their bodies are at rest in the stone crypts along these mausoleum walls and guarded by the [gargoyle warders]. Yet even in death their spirits convene to discuss the condition of Katta Castellum and the teachings of Tsaph Katta."); + elseif(e.message:findi("gargoyle warders")) then + e.self:Say("The gargoyles that guard the residents of this mausoleum are quite fascinating. They were carved late in the construction of Katta Castellum by a very talented dwarven stone worker. Gundle Chislebeard. Gundle used a type of stone found in the very cliffs Katta Castellum is built upon. At first the gargoyles were nothing more than impressive statues but then over time they began to [change]."); + elseif(e.message:findi("change")) then + e.self:Say("I noticed the eyes of the gargoyles developed a slight glow to them. then they began to shift every so often. The movements were so slight that I probably would not have noticed had I not been working near them every day. Then one night a group of robbers entered the mausoleum and attempted to remove the lids of several crypts. The gargoyles came to life and chased the bandits away. The common presumption is that the spirits of fallen Validus Custodus Legionnaires inhabit the stone forms and continue the duties they performed in life."); + elseif(e.message:findi("grave robbers")) then + e.self:Say("It is unfortunate that there are so many disrespectful people that would rob the graves of the dead. The citizens of Katta Castellum do not commit such crimes against their ancestors but thieves from Shadow Haven. greedy Vampyres. and even members of the traitorous Inquisition seeking old combine relics have been caught digging up the dead. I have [lists of belongings] that have been stolen. it would please the spirits of Katta Castellum greatly if these items are returned."); + elseif(e.message:findi("list of belongings")) then + e.self:Say("Here are some lists of items that have been stolen from the crypts of the mausoleum in the past. You may bring each crypts set of four missing items to me separately. It is not necessary to find all three sets of items before returning but any set you do return must be complete to please the spirits. Perhaps you should ask around the shops in the other cities of Luclin if the merchants there have seen the missing items."); + e.other:QuestReward(e.self,0,0,0,0,18353) -- List of Stolen Items + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10670,item2 = 10673,item3 = 10672,item4 = 10671})) then + e.self:Say("I require the Aeridia Family Signet Ring, the Sealed Golden Scroll Tube, the Faded Silver Embroidered Robe, and the Tarnished Copper Runed Wand that were stolen from Holin Aeridias crypt."); + e.self:Say("Give this box to the ghost of Holin Aeridia."); + eq.unique_spawn(160168,0,0,-1702,-633,11,2); + e.other:Faction(e.self,1502,2); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-1); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru + e.other:QuestReward(e.self,0,0,0,0,10682,1000); -- Holin Aeridia's Belongings + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10674,item2 = 10675,item3 = 10676,item4 = 10677})) then + e.self:Say("I require the Ancient Ornate Combine Dagger, Talikar Family Signet Ring, Faded Portrait of a Lady, and the Antique Platinum Medal that were stolen from Raien Talikars crypt."); + e.self:Say("Give this crate to the ghost of Raien Talikar."); + eq.unique_spawn(160169,0,0,-1730,-568,11,100); + e.other:Faction(e.self,1502,2); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-1); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru + e.other:QuestReward(e.self,0,0,0,0,10683,1000); -- Raien Talikars Belongings + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10678,item2 = 10679,item3 = 10680,item4 = 10681})) then + e.self:Say("I require the Gold Embroidered Kilt, Silver Embroidered Tabard, Ancient Ceremonial Varhammer, and Old Sealed Medicine Pouch that were stolen from Shoeon Malicus' crypt."); + e.self:Say("Give this crate to the ghost of Shoeon Malicus."); + eq.unique_spawn(160170,0,0,-1667,-559,11,130); + e.other:Faction(e.self,1502,2); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-1); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru + e.other:QuestReward(e.self,0,0,0,0,10684,1000); -- Shoeon Malicus' Belongings + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/Zyleea_Geerlok.lua b/katta/Zyleea_Geerlok.lua new file mode 100644 index 0000000..d3041e0 --- /dev/null +++ b/katta/Zyleea_Geerlok.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there! If you don't find what you are looking for in my selection of wares perhaps my husband Blaylok will be able to provide it for you."); + end +end diff --git a/katta/a_coterie_assassin.lua b/katta/a_coterie_assassin.lua new file mode 100644 index 0000000..1d5f238 --- /dev/null +++ b/katta/a_coterie_assassin.lua @@ -0,0 +1,8 @@ +function event_combat(e) + if(e.joined) then + if(math.random(100) < 25) then + eq.spawn2(160230,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + end + eq.depop_with_timer(); + end +end diff --git a/katta/a_ghastly_apparition.lua b/katta/a_ghastly_apparition.lua new file mode 100644 index 0000000..2ac4a53 --- /dev/null +++ b/katta/a_ghastly_apparition.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",120000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end diff --git a/katta/a_locked_chest.lua b/katta/a_locked_chest.lua new file mode 100644 index 0000000..7fc1a1d --- /dev/null +++ b/katta/a_locked_chest.lua @@ -0,0 +1,8 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31758}, 0)) then + eq.spawn2(160002,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),128):AddToHateList(e.other,1); -- an_imprisoned_shade + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/katta/a_magus_protectorate.lua b/katta/a_magus_protectorate.lua new file mode 100644 index 0000000..de83568 --- /dev/null +++ b/katta/a_magus_protectorate.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". Please be careful while visiting the Magus Conlegium you would not want to start any trouble either intentionally nor accidentally."); + end +end diff --git a/katta/a_molded_skeleton.lua b/katta/a_molded_skeleton.lua new file mode 100644 index 0000000..2ac4a53 --- /dev/null +++ b/katta/a_molded_skeleton.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",120000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end diff --git a/katta/a_muddy_corpse.lua b/katta/a_muddy_corpse.lua new file mode 100644 index 0000000..2ac4a53 --- /dev/null +++ b/katta/a_muddy_corpse.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",120000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end diff --git a/katta/a_reanimated_Vah_Shir.lua b/katta/a_reanimated_Vah_Shir.lua new file mode 100644 index 0000000..5ee67ef --- /dev/null +++ b/katta/a_reanimated_Vah_Shir.lua @@ -0,0 +1,21 @@ +-- Rakshasa Skulls + +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end \ No newline at end of file diff --git a/katta/a_reanimated_corpse.lua b/katta/a_reanimated_corpse.lua new file mode 100644 index 0000000..2ac4a53 --- /dev/null +++ b/katta/a_reanimated_corpse.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",120000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end diff --git a/katta/a_vah_shir_courier.lua b/katta/a_vah_shir_courier.lua new file mode 100644 index 0000000..5243a0b --- /dev/null +++ b/katta/a_vah_shir_courier.lua @@ -0,0 +1,46 @@ +function event_spawn(e) + eq.set_timer("run",1000); +end + +function event_timer(e) + if(e.timer == "run") then + e.self:SetRunning(true); + end +end + +function event_waypoint_arrive(e) + rosh = eq.get_entity_list():GetMobByNpcTypeID(160126); + if(e.wp == 4) then + e.self:SetRunning(false); + elseif(e.wp == 8) then + if(rosh.valid) then + e.self:Say("Sorry for the delay mistress, I ran into a spot of trouble on the way here. I am prepared to deliver your crate to the spiritists back home."); + rosh:Say("I hope your journey back to Shar Vahl is less eventful. Please make haste, the spiritists must receive this crate as soon as possible."); + e.self:Emote("tucks the crate of skulls under his arm and nods to Roshawna. Suddenly the courier begins to shake, his fur stands on end, and his eyes glaze over expressionlessly. The courier runs for the gates of Katta Castellum with an otherworldly howl echoing in his wake."); + e.self:AddItem(17079,1); + rosh:Say("Stop him! Stop the courier! An evil spirit has possessed him! He must not escape with those skulls! Catch him and bring back that crate of skulls!"); + e.self:SetRunning(true); + end + end +end + +function event_death_complete(e) + if(e.self:GetWaypointID() > 8 and e.self:GetWaypointID() <= 14) then + eq.spawn2(160172,0,0,e.self:GetX() + 5,e.self:GetY(),e.self:GetZ(),0); + eq.spawn2(160172,0,0,e.self:GetX() + 3,e.self:GetY(),e.self:GetZ(),0); + eq.spawn2(160172,0,0,e.self:GetX() - 3,e.self:GetY(),e.self:GetZ(),0); + eq.spawn2(160172,0,0,e.self:GetX() - 5,e.self:GetY(),e.self:GetZ(),0); + eq.spawn2(160172,0,0,e.self:GetX(),e.self:GetY() + 5,e.self:GetZ(),0); + eq.spawn2(160172,0,0,e.self:GetX(),e.self:GetY() + 3,e.self:GetZ(),0); + eq.spawn2(160172,0,0,e.self:GetX(),e.self:GetY() - 3,e.self:GetZ(),0); + eq.spawn2(160172,0,0,e.self:GetX(),e.self:GetY() - 5,e.self:GetZ(),0); + elseif(e.self:GetWaypointID() > 14) then + eq.spawn2(160172,0,0,e.self:GetX() + 5,e.self:GetY(),e.self:GetZ(),0); + eq.spawn2(160172,0,0,e.self:GetX() + 3,e.self:GetY(),e.self:GetZ(),0); + eq.spawn2(160172,0,0,e.self:GetX() - 3,e.self:GetY(),e.self:GetZ(),0); + eq.spawn2(160172,0,0,e.self:GetX() - 5,e.self:GetY(),e.self:GetZ(),0); + eq.spawn2(160172,0,0,e.self:GetX(),e.self:GetY() + 5,e.self:GetZ(),0); + eq.spawn2(160172,0,0,e.self:GetX(),e.self:GetY() + 3,e.self:GetZ(),0); + eq.spawn2(160172,0,0,e.self:GetX(),e.self:GetY() - 3,e.self:GetZ(),0); + end +end diff --git a/katta/encounters/lyneea.lua b/katta/encounters/lyneea.lua new file mode 100644 index 0000000..c9097c9 --- /dev/null +++ b/katta/encounters/lyneea.lua @@ -0,0 +1,98 @@ +local ThreadManager = require("thread_manager"); +local Lyneea = nil; + +function LyneeaLecture() + Lyneea:Say("You ready for some coppers Olam? I've got a fresh mug of Loyalist Ale waitin ta be drunk!"); + ThreadManager:Wait(0.65); + + local olam = eq.get_entity_list():GetMobByNpcTypeID(160223); + if(olam.valid) then + olam:Say("All right you begin, I am going to beat you this time!"); + end + ThreadManager:Wait(0.65); + + Lyneea:Emote("attempts to flip a copper into a mug on the table and misses!"); + ThreadManager:Wait(0.65); + + if(olam.valid) then + olam:Emote("attempts to flip a copper into a mug on the table and misses!"); + end + ThreadManager:Wait(0.65); + + Lyneea:Emote("attempts to flip a copper into a mug on the table and succeeds!"); + ThreadManager:Wait(0.65); + + if(olam.valid) then + olam:Emote("drinks a gulp of ale 'Nice toss!'"); + end + ThreadManager:Wait(0.65); + + if(olam.valid) then + olam:Emote("attempts to flip a copper into a mug on the table and succeeds!") + end + ThreadManager:Wait(0.65); + + Lyneea:Emote("drinks a gulp of ale"); + ThreadManager:Wait(0.65); + + Lyneea:Emote("attempts to flip a copper into a mug on the table and succeeds!"); + ThreadManager:Wait(0.65); + + if(olam.valid) then + olam:Emote("drinks a gulp of ale 'Nice toss!'"); + end + ThreadManager:Wait(0.65); + + if(olam.valid) then + olam:Emote("attempts to flip a copper into a mug on the table and misses!"); + end + ThreadManager:Wait(0.65); + ThreadManager:Wait(0.65); + ThreadManager:Wait(0.65); + ThreadManager:Wait(0.65); + + Lyneea:Emote("attempts to flip a copper into a mug on the table and succeeds!"); + ThreadManager:Wait(0.65); + + if(olam.valid) then + olam:Emote("takes another gulp of ale and begins to look dizzy"); + end + ThreadManager:Wait(0.65); + + Lyneea:Say("Are you feeling all right?"); + ThreadManager:Wait(0.65); + + if(olam.valid) then + olam:Emote("I'll...be...fine....uhn.."); + olam:CastToNPC():DoAnim(16); + end + ThreadManager:Wait(0.65); + + local jacob = eq.get_entity_list():GetMobByNpcTypeID(160257); + if(jacob.valid) then + jacob:Say("I hope you're planning on cleaning that spill up for us, Olam!"); + end + ThreadManager:Wait(0.65); + + Lyneea:Say("You never can hold your liquor Olam!"); +end + +function LyneeaHeartbeat(e) + Lyneea = e.self; + if(e.timer == "start") then + ThreadManager:Create("LyneeaLecture",LyneeaLecture) + elseif(e.timer == "Lyneea_hb") then + ThreadManager:GarbageCollect(); + ThreadManager:Resume("LyneeaLecture"); + end +end + +function LyneeaSpawn(e) + eq.set_timer("start", 690000); + eq.set_timer("Lyneea_hb", 8000); +end + +function event_encounter_load(e) + eq.register_npc_event("lyneea", Event.timer, 160219, LyneeaHeartbeat); + eq.register_npc_event("lyneea", Event.spawn, 160219, LyneeaSpawn); +end diff --git a/katta/encounters/vampyre.lua b/katta/encounters/vampyre.lua new file mode 100644 index 0000000..1d2e07d --- /dev/null +++ b/katta/encounters/vampyre.lua @@ -0,0 +1,177 @@ +local ThreadManager = require("thread_manager"); +local Autarkic = nil; + +function AutarkicLecture() + local Incanter = eq.get_entity_list():GetMobByNpcTypeID(160160); + local Praecantor = eq.get_entity_list():GetMobByNpcTypeID(160142); + local Theurgus = eq.get_entity_list():GetMobByNpcTypeID(160133); + + Autarkic:Say("Meddling fleshlings! Why have you pulled back to this forsaken castellum? Do you fear that I will seek vengeance on Nathyn Illuminious and the city that shelters him for my years of captivity here? Or do you seek something more dangerous, knowledge of the dark path of shadows?"); + ThreadManager:Wait(0.65); + + if(Incanter.valid) then + Incanter:Say("We neither fear you nor seek to be drawn into your dark ways, Lord Sfarosh. You will provide us some information as demanded by the Magistrates of the Loyalist Empire. The questions are simple, answer quickly and the sooner you shall be freed from this summoning. What is your history with the alchemist Valdanov Zevfeer?"); + end + ThreadManager:Wait(0.65); + + Autarkic:Say("A simple question indeed. I simply supplied him with Akhevan blood for his experimentation, that is all. The Order of Autarkic Umbrage is no friend of the Akheva and it was possible that his research could uncover some useful information for my order. Valdanovs own motivation for his experimentation was none of my concern, but the outcome is quite fascinating I must admit."); + ThreadManager:Wait(0.65); + + if(Praecantor.valid) then + Praecantor:Say("So it seems you are aware of the outcome of his hidden experimentation. Care to enlighten us as to what that outcome was?"); + end + ThreadManager:Wait(0.65); + + Autarkic:Say("I am amazed at how little you fleshlings know of what occurs within the very walls of your own castellum. It is known by my Order that Akhevan blood has strange mutagenic effects on the bodies of non-akheves if introduced to their circulatory systems. The process by which the Shadow Tegi are infused with the blood is quite complicated and painful but I would deduce that a vampyre like Valdanov merely had to ingest the blood for the mutagenic agents to effect his physiology, causing the permenent change into what I believe you call a Vampyre Volatilis. I have no dealings with Valdanov since his mutation as I was imprisoned in Nathyns mansion until freed by these foolish fleshings."); + ThreadManager:Wait(0.65); + + if(Theurgus.valid) then + Theurgus:Say("How was it that you came to be imprisoned in the mansion of Nathyn Illuminious?"); + end + ThreadManager:Wait(0.65); + + Autarkic:Say("I was paying a visit to Valdanov with more Akhevan blood, not knowing he had already been banished by Nathyn from Katta Castellum for becoming the monster that he became. I must admit, Nathyn is a powerful and cunning creature. He was prepared for my arrival, captured me with his sorceries, and imprisoned me in that enchanted chest. I was not offered an explanation, nor do I know how he discovered my dealings with Valdanov, I assume he obtained that knowledge from questioning Valdanov about his mutation."); + ThreadManager:Wait(0.65); + + Autarkic:Say("It seems some allies are arriving! Foolish fleshlings, run while you have the chance!"); + if(Theurgus.valid) then + Theurgus:CastToNPC():SetAppearance(3); + end + if(Praecantor.valid) then + Praecantor:Say("Ajeea! What's happened?! I sense there are dark powers at work here!"); + end + if(Incanter.valid) then + Incanter:Say("The circle of containment is breaking down without Ajeea! Prepare yourselves!"); + end + ThreadManager:Wait(0.65); + + Autarkic:Say("Your feeble fleshling magic has failed you! Your souls shall be slaves of the Order of Autarkic Umbrage!"); + if(Praecantor.valid) then + Praecantor:Emote("rushes to Ajeea, lifts her comotose body with a magical force and they both vanish in a flash of light."); + Incanter:Say("Eliminate the shades! Selis and I will get Ajeea to safety and concentrate on a ward to prevent any further intrusion and stifle the shades power! Seek me out and bring me the robes of these shades when they have been slain so that we may research placing a more permanent ward against such creatures on the Conlegium."); + eq.depop(160133); + eq.depop(160142); + eq.depop(160160); + end + Autarkic:Say("Attempt to slay me if you so desire, and if you succeed it matters not. I will return as I am a creature of shadows and shadows never die, merely slumber!"); + eq.unique_spawn(160166,0,0,Autarkic:CastToNPC():GetX(),Autarkic:CastToNPC():GetY(),Autarkic:CastToNPC():GetZ(),Autarkic:CastToNPC():GetHeading()); -- #Autarkic_Lord_Sfarosh + eq.spawn2(160167,0,0,-25,-762,4,160); -- an autarkic umbrage shade + eq.spawn2(160167,0,0,-164,-760,4,96); -- an autarkic umbrage shade + eq.spawn2(160167,0,0,-30,-901,4,224); -- an autarkic umbrage shade + eq.depop(160165); +end + +function AutarkicHeartbeat(e) + Autarkic = e.self; + if(e.timer == "start") then + ThreadManager:Create("AutarkicLecture",AutarkicLecture) + eq.stop_timer("start"); + elseif(e.timer == "Autarkic_hb") then + ThreadManager:GarbageCollect(); + ThreadManager:Resume("AutarkicLecture"); + end +end + +function AutarkicSpawn(e) + eq.set_timer("start", 1000); + eq.set_timer("Autarkic_hb", 7000); +end + +function TheurgusSpawn(e) + eq.set_timer("depop",900000); +end + +function TheurgusTimer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(160142); + eq.depop(160160); + eq.depop(); + elseif(e.timer == "starting") then + local Incanter = eq.get_entity_list():GetMobByNpcTypeID(160160); + if(Incanter.valid) then + Incanter:Emote("begins chanting in an arcane language."); + end + local Praecantor = eq.get_entity_list():GetMobByNpcTypeID(160142); + if(Praecantor.valid) then + Praecantor:Emote("begins chanting in an arcane language."); + end + local Theurgus = eq.get_entity_list():GetMobByNpcTypeID(160133); + if(Theurgus.valid) then + Theurgus:Emote("begins chanting in an arcane language."); + end + eq.unique_spawn(160165,0,0,-97,-822,11,0); -- Autarkic Lord Sfarosh + eq.stop_timer("starting"); + end +end + +function Autarkic2Spawn(e) + eq.set_timer("depop",740000); +end + +function Autarkic2Timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function Autarkic2Combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function umbrageSpawn(e) + eq.set_timer("depop",740000); +end + +function umbrageTimer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function umbrageCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function TheurgusTrade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7779}, 0)) then + e.self:Say("Perfect. We shall begin the summoning and questioning. This enchanted scroll will magically scribe all that transpires within its radius of perception. Take it to Magistrate Phenic after the summoning and questioning are completed."); + e.other:Faction(e.self,1504,5); + e.other:Faction(e.self,1502,1); + e.other:Faction(e.self,1503,1); + e.other:Faction(e.self,1483,-1); + e.other:Faction(e.self,1484,-1); + e.other:Faction(e.self,1485,-1); + e.other:Faction(e.self,1541,-1); + e.other:QuestReward(e.self,0,0,0,0,7361); -- Enchanted Record of Events + eq.set_timer("starting",10000); + end +end + +function event_encounter_load(e) + eq.register_npc_event("vampyre", Event.timer, 160133, TheurgusTimer); + eq.register_npc_event("vampyre", Event.spawn, 160133, TheurgusSpawn); + eq.register_npc_event("vampyre", Event.trade, 160133, TheurgusTrade); + eq.register_npc_event("vampyre", Event.timer, 160165, AutarkicHeartbeat); + eq.register_npc_event("vampyre", Event.spawn, 160165, AutarkicSpawn); + eq.register_npc_event("vampyre", Event.spawn, 160166, Autarkic2Spawn); + eq.register_npc_event("vampyre", Event.timer, 160166, Autarkic2Timer); + eq.register_npc_event("vampyre", Event.combat, 160166, Autarkic2Combat); + eq.register_npc_event("vampyre", Event.spawn, 160167, umbrageSpawn); + eq.register_npc_event("vampyre", Event.timer, 160167, umbrageTimer); + eq.register_npc_event("vampyre", Event.combat, 160167, umbrageCombat); +end diff --git a/katta/script_init.lua b/katta/script_init.lua new file mode 100644 index 0000000..6be2512 --- /dev/null +++ b/katta/script_init.lua @@ -0,0 +1,2 @@ +eq.load_encounter("lyneea"); +eq.load_encounter("vampyre"); diff --git a/kedge/Swirlspine_Guardian.lua b/kedge/Swirlspine_Guardian.lua new file mode 100644 index 0000000..0058168 --- /dev/null +++ b/kedge/Swirlspine_Guardian.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.set_timer("depop",1500000); +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/kedge/a_golden_haired_mermaid.lua b/kedge/a_golden_haired_mermaid.lua new file mode 100644 index 0000000..9da8967 --- /dev/null +++ b/kedge/a_golden_haired_mermaid.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.set_timer("depop",900000); +end + +function event_timer(e) + eq.depop_with_timer(); +end \ No newline at end of file diff --git a/kedge/a_shimmering_sailfin.lua b/kedge/a_shimmering_sailfin.lua new file mode 100644 index 0000000..576c17e --- /dev/null +++ b/kedge/a_shimmering_sailfin.lua @@ -0,0 +1,7 @@ +function event_death(e) + if(math.random(100) < 75) then + e.self:CastSpell(1017, e.other:GetID()); -- fishnova + end +end + +-- Created by Torven diff --git a/kedge/a_swirlspine_seahorse.lua b/kedge/a_swirlspine_seahorse.lua new file mode 100644 index 0000000..bd57006 --- /dev/null +++ b/kedge/a_swirlspine_seahorse.lua @@ -0,0 +1,5 @@ +function event_death_complete(e) + if(math.random(100) < 45) then + eq.spawn2(64092,0,0,133,-22,-283,0); -- NPC: Swirlspine_Guardian + end +end \ No newline at end of file diff --git a/kedge/tainted_seahorse.lua b/kedge/tainted_seahorse.lua new file mode 100644 index 0000000..0101b68 --- /dev/null +++ b/kedge/tainted_seahorse.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(64050,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end diff --git a/kerraridge/Allix.lua b/kerraridge/Allix.lua new file mode 100644 index 0000000..1e58a4a --- /dev/null +++ b/kerraridge/Allix.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= -500) then + if(e.message:findi("hail")) then + e.self:Say("Rrraaarrr! Hello furless. You come to study from [mighty warrior] yes?"); + elseif(e.message:findi("mighty warrior")) then + e.self:Say("Errr. Well, Allix not yet mighty warrior but soon yes. Allix just come of age and soon will enter training to become mighty Pasdar. Errr. Allix little nervous. Allix missing [one thing] to become mighty Pasdar."); + elseif(e.message:findi("one thing")) then + e.self:Say("Well, Allix not have to have but is good. Is leaf. Ajrah leaf. Powerful magic in the leaf. Pasdar hold's next to body, keep's body strong and mind clear. Not have to have but Pasdar without Ajrah Leaf is poor Pasdar. Someday Allix travel to the mighty plain's of East Karana and get one from tree's."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 6349})) then + e.self:Say("Ajrah! Raaarrr! Ajrah Leaf! Allix destined to be mighty saiar now! Allix unsure how to thank you. Here, take this. Is my most treasured tunic."); + e.other:Faction(e.self,382,4); -- Faction: Kerra Isle + e.other:QuestReward(e.self,0,0,0,0,1120,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/kerraridge/Erfer_Longclaw.lua b/kerraridge/Erfer_Longclaw.lua new file mode 100644 index 0000000..9e051d7 --- /dev/null +++ b/kerraridge/Erfer_Longclaw.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Erfer not on duty. Is Erfer's time off. Please leave Erfer to buy his drinks."); + end +end diff --git a/kerraridge/Errrak_Thickshank.lua b/kerraridge/Errrak_Thickshank.lua new file mode 100644 index 0000000..bcdb242 --- /dev/null +++ b/kerraridge/Errrak_Thickshank.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= -500) then + if(e.message:findi("Hail")) then + e.self:Say("What? What do you want. furless? My tseq. Graalf. lies sick and you waste time with talk when you [cannot help]."); + elseif(e.message:findi("cannot help")) then + e.self:Say("The shamans. they have said I need [talismans] to ward the sickness from Graalf."); + elseif(e.message:findi("talisman")) then + e.self:Say("Errr? You wish to help? We will see. I need a tiger's skin. from a tigerrr not of ourrr village. for its brave spirit. an aviaks charm. and a giant snake fang for the poison that can be made into an antidote. If you truly intend to help. then good speed and hurry!"); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 7005, item2 = 13737, item3 = 13762})) then + e.self:Say("I cannot believe. Thank you. Please, take this talisman. I bought from wandering shaman but it no help Graalf, maybe it help you. Now please go, Errrak must see if this will help Graalf."); + e.other:Faction(e.self,382,5); -- Faction: Kerra Isle + e.other:QuestReward(e.self,0,0,0,0,10139); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:kerraridge ID:74080 -- Errrak_Thickshank +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kerraridge/Falthrik_Lothoro.lua b/kerraridge/Falthrik_Lothoro.lua new file mode 100644 index 0000000..1c98e60 --- /dev/null +++ b/kerraridge/Falthrik_Lothoro.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= -500) then + if(e.message:findi("hail")) then + e.self:Say("Grrrreetings. traveler. Falthrik tells his [stories] now. Seat yourself near the fire if you wish to [listen]."); + elseif(e.message:findi("stories")) then + e.self:Say("Once Falthrik was mighty saiar but no more. Years have weakened Falthrik's knees. made his back frail. dulled his once powerful claws. Falthrik now earns his rank and keep in the pride by telling stories. amusing the people. teaching the young his knowledge with stories."); + elseif(e.message:findi("listen")) then + e.self:Say("Rrrrr. Many stories Falthrik has to tell. Most would not suit you. would not translate to common well but perhaps I tell you [history] of Kerrans. stories of their past and present."); + elseif(e.message:findi("history")) then + e.self:Say("So you wish to listen? That is good. Then sit. listen to the story of the pride. Our stories all start the same. In the beginning there was the mighty Kejaan. No one remembers the lineage of Kejaan. Many think he didn't have one. It is said no god made him. that his spirit came from the winds and his body from the rocks. Wherever he came from. his [legends] are many."); + elseif(e.message:findi("legends")) then + e.self:Say("Kejaan traveled the land of Odus far and wide. He visited the splintered and fighting tribes of Kerrans and gathered together his companions. Kerrans of power and knowledge. Together Kejaan and his companions tamed the wild lands of Odus. They journeyed through jungle. desert. and beach killing monsters and evil. They made the land safe for all Kerrans. This is when the [golden time] started."); + elseif(e.message:findi("golden time")) then + e.self:Say("Rrrrr.. The golden time. After Kejaan and his companions tamed the lands. he came back to the splintered tribes. With his strength of claw and mind. he [united] all the Kerran people around him. made them into a mighty civilization. Made them strong and smart."); + elseif(e.message:findi("united")) then + e.self:Say("For many hundreds of years. Kerrans were mighty and wise. Elves. dwarves. humans. all races knew the might of Kerra. All things end though. and our empire fell eventually. our proud history and achievements torn apart and destroyed by the foul Erudites. We could have shared land but the haughty Erudites would not share. so they [destroyed]."); + elseif(e.message:findi("destroyed")) then + e.self:Say("Destroyed utterly. Tried to remove all trace of great Kerran works. Cities. statues. writings. All gone. Kerrans fled to this tiny island. forced to leave by Erudites. Many Kerrans. many of our finest. died on journey here. Poets. warriors. shamans. children. Kerrans settled here. made this little island of dirt home. continued [old customs and traditions]."); + elseif(e.message:findi("old customs and tradition")) then + e.self:Say("Yes. How we live. Way we organize. In Kerran peoples. magic runs greatest in females. They grow larger and stronger. It is females who are most worshipped and revered as mothers and protectors. That is why all adult female Kerrans live in inner village and all [males] live on beach."); + elseif(e.message:findi("males")) then + e.self:Say("Male Kerran smaller and quicker than female. Male Kerran make good guards. Females watch after Kerran souls and guide Kerrans. males guard Kerran safety. All Kerrans understand their [place] in life."); + elseif(e.message:findi("place")) then + e.self:Say("Many places. Young live on beach and learn how to be shamans. guards. or tradespeople. Old live their last days on beach teaching young. Males guard all of Kerra. Females guard inner village. leaders. and talk to spirits. It is right way of things. Rrrrr.. I have talked for so long. Must eat and rest now."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end +--END of FILE Zone:kerraridge ID:74019 -- Falthrik_Lothoro + + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kerraridge/Feren.lua b/kerraridge/Feren.lua new file mode 100644 index 0000000..cca12bf --- /dev/null +++ b/kerraridge/Feren.lua @@ -0,0 +1,32 @@ +-- Razortooth + +function event_say(e) + if(e.other:GetFactionValue(e.self) >= -500) then + if(e.message:findi("Hail")) then + e.self:Say("Rarr. Me is Feren. Me is fisher. That means Feren catches [fish]."); + elseif(e.message:findi("what fish")) then + e.self:Say("All kinds of fish. Tasty fish. All day Feren catches the fishes so all Kerran can eat. I do for good of all Kerran. Rrrrr. One thing bother Feren always though. Is bad fish. [Razortooth]."); + elseif(e.message:findi("what razortooth")) then + e.self:Say("Rrrrrr! Razortooth mean fish. Razortooth eat fish off Feren's line. Razortooth gnaw Feren's boat. Razortooth smart and dangerous. Feren never able to catch Razortooth. This haunt Feren for months. If you was able to catch Razortooth. Feren be forever grateful. Maybe even give you possessions."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 6348})) then --Razor Tooth + e.self:Say("Rarr, Feren not haunted by Razortooth no more. Feren grateful and give you this possession."); + e.other:Faction(e.self,382,10); -- Kerra Isle + e.other:QuestReward(e.self,0,0,0,2,1062,500); --Kerran Fishingpole + end + item_lib.return_items(e.self, e.other, e.trade) --return items if not the ones required +end + +--END of FILE Zone:kerraridge ID:74088 -- Feren +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kerraridge/Feskr_Drinkmaker.lua b/kerraridge/Feskr_Drinkmaker.lua new file mode 100644 index 0000000..565418b --- /dev/null +++ b/kerraridge/Feskr_Drinkmaker.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= -500) then + if(e.message:findi("Hail")) then + e.self:Say("Erh? If you not be here to help Feskr with his [problem] then Feskr want you to leave."); + elseif(e.message:findi("what problem")) then + e.self:Say("You wish to help? Orrderrr of supplies I rrequest not arrive; ship sink. Now Feskr needs supplies. Feskr need bottle of Tunare's Finest. thunderhoof mushroom. tea leaf. and handmade backpack. Rrrr. strange items but Feskr need to sell. You bring. Feskr give you nice bag."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12360, item2 = 14914, item3 = 14915, item4 = 17969})) then + e.self:Say("Ahhh. This will help. Many Kerrans will like these. Here. Take this old bag. I have too many. Maybe it help you."); + e.other:Faction(e.self,382,5); -- Faction: Kerra Isle + e.other:QuestReward(e.self,0,0,0,0,17032,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:kerraridge ID:74076 -- Feskr_Drinkmaker +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kerraridge/Graalf_Sharpclaw.lua b/kerraridge/Graalf_Sharpclaw.lua new file mode 100644 index 0000000..1efc359 --- /dev/null +++ b/kerraridge/Graalf_Sharpclaw.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Rrrrrrrr..."); + end +end diff --git a/kerraridge/Iffrir_Soulcaller.lua b/kerraridge/Iffrir_Soulcaller.lua new file mode 100644 index 0000000..89500ec --- /dev/null +++ b/kerraridge/Iffrir_Soulcaller.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hrrrm.. Iffrir does not much care for smell of this place but the selling of good drinks is not permitted within the inner village so any priestess must come here for them."); + end +end + +--END of FILE Zone:kerraridge ID:74084 -- Iffrir_Soulcaller +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kerraridge/Kirran_Mirrah.lua b/kerraridge/Kirran_Mirrah.lua new file mode 100644 index 0000000..b01b809 --- /dev/null +++ b/kerraridge/Kirran_Mirrah.lua @@ -0,0 +1,10 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9968})) then + e.self:Say("Ahhhhhhhh! I can't believe that you ---- ahhhhhhhh! Die you, you, you evil evil heretic!"); + eq.attack(e.other:GetName()); + e.other:QuestReward(e.self,{itemid = 9967}); --Karran's Head + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kerraridge/Marl_Kastane.lua b/kerraridge/Marl_Kastane.lua new file mode 100644 index 0000000..10b2227 --- /dev/null +++ b/kerraridge/Marl_Kastane.lua @@ -0,0 +1,67 @@ +-- Part of SK Epic 1.0 + +function event_say(e) + local charfaction = e.other:GetFactionValue(e.self); -- Faction: True Spirit + local qglobals = eq.get_qglobals(e.self,e.other); + + if(e.message:findi("Hail")) then + e.self:Say("Begone!! You do not have the will to do the things I require!"); + elseif(e.message:findi("will of Innoruuk")) then + e.self:Say("You speak of a myth, friend. Such an object does not exist in this age and the secret of its creation lies locked in my mind, where it shall stay. It has been passed down through generations in my line, not to be revealed to a soul until the prophecy has come to pass."); + elseif(e.message:findi("prophecy")) then + if(charfaction >= -77 and qglobals["Marl"] ~= nil) then + e.self:Say("I suppose it is time for the secret to be shared. Ages ago, two brothers were born. Glohnor was highly favored by the pompous Lightbringer, whose name we do not utter. Lhranc was chosen by the Prince of Hate to bring destruction and turmoil to the sons of men. The one thing they shared in common was their love of the fair priestess, Kyrenna. Kyrenna fell deeply in love with Glohnor. When Lhranc discovered this, he was overcome with rage and unwisely attacked his brother, who happened to be far more adept in combat. The fight cost Lhranc dearly. He lost his dignity as well as an eye in the struggle. He was ordered to leave Freeport and live his life in exile from the only home he had ever known."); + elseif(charfaction >= -83) then + e.self:Say("My apologies, " .. e.other:GetCleanName() .. ", I have said too much already. Instead, I have an errand to occupy your thoughts. Take this as proof that you are sent from me and find my brother in Paineel. I haven't spoken with him in some time now and his well being is essential to our family's destiny."); + e.other:SummonCursorItem(14375); -- Item: Seal of Kastane + end + elseif(e.message:findi("Lhranc")) then + if(charfaction >= -77) then + e.self:Say("Lhranc wandered the deserts of Ro for weeks, sinking deeper into depression and giving in to rage. Reports from the local merchants and caravans had him roaming the dunes muttering to himself incoherently. Eventually, he was forgotten, blending in with the hermits and madmen common to that region, forgotten by all save one."); + end + elseif(e.message:findi("one")) then + if(charfaction >= -77) then + e.self:Say("Innoruuk had not forsaken Lhranc. Once his rage and hate had matured and sufficiently altered his soul, the dark prince summoned him and gave him dominion over the demons that had enslaved his mind. He was given a weapon that made him powerful enough to slay any enemy that stood in his way. He was to become the first human to harness the power of the almighty shadowknight. After years of traveling and teaching mankind his newfound abilities, Lhranc sneaked back into Freeport through a series of sewers in search of revenge against his brother and in hopes of kidnapping Kyrenna, the source of his obsession. Waiting until Glohnor was alone, Lhranc sprang from the shadows and slew his brother. This was the act that brought about his curse."); + end + elseif(e.message:findi("curse")) then + if(charfaction >= -77) then + e.self:Say("As I said, Glohnor was highly favored by the Lightbringer. When the contemptible god of honor discovered what had been done, he transformed Lhranc into a deformed spectral knight and placed him in the ruined city. Lhranc then used what remained of his power to summon Kyrenna to his side and bind her there in a timeless, seamless sphere. He struggled for centuries to break her will and convince her to serve Innoruuk, certain that together they could remove his curse. But then, there was the prediction."); + end + elseif(e.message:findi("prediction")) then + if(charfaction >= -77) then + e.self:Say("The prophecy states that one day Kyrenna will escape the clutches of Lhranc and that she will resurrect Glohnor. Together, it reads, they will destroy Lhranc and undo all he has done. I trust that I do not need to tell you, " .. e.other:GetCleanName() .. ", that this would decimate our foothold in Norrath. When the prophecy was written, its words spread across the land. A dark council was held to construct a plan that would frustrate the words of the prophets. My ancestors were responsible for robbing Glohnor's tomb and securing his remains. For generations we have been charged with the duty of guarding those remains and the secret plan, should the corpse be discovered."); + end + elseif(e.message:findi("secret plan")) then + if(charfaction >= -77) then + e.self:Say("The plan is a last resort only to be tried if Kyrenna indeed escapes and the remains are discovered. Judging by my brother's words that time is now. It will take the most powerful hero all the courage and dedication he can muster to complete the ritual."); + end + elseif(e.message:findi("complete the ritual")) then + if(charfaction >= -77) then + e.self:Say("It would seem we have no choice, and this is our only hope. I must first make a dark shroud. To do this I must stain it with the blood of an innocent. Go find me this rare blood so I can start the creating of the shroud."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local charfaction = e.other:GetFactionValue(e.self); -- Faction: True Spirit + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14376})) then + e.self:Emote("reads the note, eyes widening in panic. He raises his eyes to you and says, 'This is grave news, friend. If the prophecy is allowed to be fulfilled, our strength will vanish into obscurity. Goodness and purity will spread like a plague across the land and the servants of Hate will be powerless to stop it!'"); + e.other:Faction(e.self,404, 3); -- Faction: True Spirit + eq.set_global("Marl","1",1,"F"); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14381})) then + e.self:Say("Here, you take this shroud. You must now find the spirit of glohnor and place this item on him. This should force him back into his mummified body and then you must destroy this newly raised form and return to me its wrappings."); + e.other:Faction(e.self,404, 5); -- Faction: True Spirit + e.other:QuestReward(e.self,{itemid = 14377}); -- Item: Dark Shroud + eq.delete_global("Marl"); + eq.depop_with_timer(); + elseif(charfaction >= -72) then + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14379})) then + e.self:Say("You've done it! Your efforts will stand as a tribute to our kind for time eternal, my friend. Although nothing could possibly serve as a just reward for your accomplishments, please accept this as well as my eternal gratitude. It has been fashioned from the wraps of the mummy and shall protect you well."); + e.other:Faction(e.self,404, 5); -- Faction: True Spirit + e.other:QuestReward(e.self,{itemid = 14370}); -- Item: Will of Innoruuk + end + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kerraridge/Melixis.lua b/kerraridge/Melixis.lua new file mode 100644 index 0000000..589a43f --- /dev/null +++ b/kerraridge/Melixis.lua @@ -0,0 +1,39 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= -500) then + if(e.message:findi("hail")) then + e.self:Say("Welcome to Melixis' shop. Rrrr. Feel free to brrrowse thrrrough my warrres. Melixis also find some [shiny tings] she may trade you."); + elseif(e.message:findi("shiny tings")) then + e.self:Say("In Melixis' travels of the Odus, she find a [dull ring], a [kinda shiny ring], and a [really shiny ring]. Maybe you want to trade for those tings? Rrrr..."); + elseif(e.message:findi("dull ring")) then + e.self:Say("For dat ting? You brrring Melixis some bracket mildew. Rarr..."); + elseif(e.message:findi("kinda shiny ring")) then + e.self:Say("Hmm... Hamed need faerix spores forrr potion. Rrrrr. You brring some to Melixis and she give you the kinda shiny ring."); + elseif(e.message:findi("really shiny ring")) then + e.self:Say("You go find degenerated guk weed and Melixis gives you the really shiny ring."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 14042})) then + e.self:Say("Many thanks... rrrr... here is dull ring."); + e.other:QuestReward(e.self,0,0,0,0,13733); + elseif(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 14043})) then + e.self:Say("You have gotten the spores that I asked for, very well, here is the ring as agreed"); + e.other:QuestReward(e.self,0,0,0,0,13731); + elseif(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 14044})) then + e.self:Say("You done good job, furless one. Here is really shiny ring. Rarr..."); + e.other:QuestReward(e.self,0,0,0,0,13732); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--EOF - The text is not accurate, if anyone has the correct text please feel free to update the file accordingly +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/kerraridge/Raarrk.lua b/kerraridge/Raarrk.lua new file mode 100644 index 0000000..6de96d7 --- /dev/null +++ b/kerraridge/Raarrk.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Rrrrr. Raarrk sell drinks. You want drinks from Raarrk? Raarrk have happy drinks."); + end +end \ No newline at end of file diff --git a/kerraridge/Roary_Fishpouncer.lua b/kerraridge/Roary_Fishpouncer.lua new file mode 100644 index 0000000..aecf5e8 --- /dev/null +++ b/kerraridge/Roary_Fishpouncer.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Rrrr.. catching and prrreparing fish is my specialty. Perrrhaps you could fetch for me some [rrrare fish] so that I may demonstrate my skill? Rrrr."); + elseif(e.message:findi("rrrare fish")) then + e.self:Say("Rrrr.. my most delectable dish is prrreparrred frrrom rrraw darkwater piranha. Unforrrtunately. the pirrranha only surrrvives in the murrrky waterrrs of the wicked Nektulos forrrest. I will rrreward any brrrave fisherman who can brrring me some rrraw darkwater pirranha."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Rrrrr... I need both the spear and a frrresh fish to prrrepare the spear with the oil."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12318})) then + e.self:Say("Rrrr... my mouth is waterrring alrrrready. Ourrr trribe shall feast well tonight. You have prrroven yourself a fisherrrman worrrthy of one of my special spearrrs. They are coated with a specially prrrepared fish oil. When all the oil has washed off, you may rrreturn the spear to me along with a frrresh fish and I will rrreapply the oil for you."); + e.other:Faction(e.self,382,20); -- Faction: Kerra Isle + e.other:QuestReward(e.self,0,0,0,0,7027); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 7027, item2 = 13019},1,text)) then -- recharge, kerran fishing spear and fresh fish + e.self:Say("Rrrr... been doing some deepwater fishing, I presume? Here is your spear with a frrresh coat of my special oil."); + e.other:QuestReward(e.self,0,0,0,0,7027); + end +end + +--END of FILE Zone:kerraridge ID:74075 -- Roary_Fishpouncer +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/kerraridge/Shazda_Asad.lua b/kerraridge/Shazda_Asad.lua new file mode 100644 index 0000000..e108043 --- /dev/null +++ b/kerraridge/Shazda_Asad.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= -500) then + if(e.message:findi("hail")) then + e.self:Say("Rrrr..I am Asad. Shazda of the Kerran [Sejah]. It is my duty to ensure the safety of what lands have not been taken from us by the Erudites. and to train my soldiers in the fighting styles of our heritage."); + elseif(e.message:findi("sejah")) then + e.self:Say("The soldiers of our sejah are all trained from the time they are weaned from their matriarchs. If you wish to be honored by the sejah you must prove to us your loyalty and devotion to the defense of our lands. In Toxxulia Forest there are Erudite emissaries who constantly attempt to encroach upon our territory. Bring me the head of one such emissary."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12319})) then + e.self:Say("Excellent work, young ayyar! You have proven your willingness to dispose of the enemies of our tribe, now you must face one of their most murderous sentries! Bring me the head of Sentinel Creot and I shall induct you into our sejah!"); + e.other:Faction(e.self,382,20); -- Faction: Kerra Isle + e.other:QuestReward(e.self,0,6,0,0,10343,5000); + elseif(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12438})) then + e.self:Say("You have proven your devotion to our cause and defeated one of the greatest threats to our people. I welcome you into the Kerran Sejah. Wear this bracer as a symbol of your station in the Kerran tribes."); + e.other:Faction(e.self,382,55); -- Faction: Kerra Isle + e.other:QuestReward(e.self,0,0,0,5,3147,6500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:kerraridge ID:74012 -- Shazda_Asad +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kerraridge/Thalith_Mamluk.lua b/kerraridge/Thalith_Mamluk.lua new file mode 100644 index 0000000..802a9e1 --- /dev/null +++ b/kerraridge/Thalith_Mamluk.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= -500) then + if(e.message:findi("Hail")) then + e.self:Say("Wha? Rarrrr! Thalith try to fish but with [rrrats] and you botherring him. he cannot concentrate on water! Go away. let Thalith fish!"); + elseif(e.message:findi("rats")) then + e.self:Say("Rats. Yes. Small, furry, brown, with teeth. They come, bite my paws, steal my bait, chew on lines and rods. They nasty little beasts and easy to kill but me not able to leave this position or fish get away. Errr. Maybe you keep the rats away? You kill baddest rat, Sharptooth. You bring me his tooth. I be very happy.") + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 6347})) then + e.self:Say("You.. You kill the rats? Errr. Thalith thanks you. Here. Take this. It's good luck charm I've had for years."); + e.other:Faction(e.self,382,2); -- Faction: Kerra Isle + e.other:QuestReward(e.self,0,0,0,0,1061,18000); + end +end diff --git a/kerraridge/Urkath_Greyface.lua b/kerraridge/Urkath_Greyface.lua new file mode 100644 index 0000000..001dc62 --- /dev/null +++ b/kerraridge/Urkath_Greyface.lua @@ -0,0 +1,35 @@ +function event_spawn(e) + eq.set_timer("wish",3000000); +end + +function event_timer(e) + e.self:Say("Errrrrmf. If only just that [wish] for Urrkath?"); +end + +function event_say(e) + if(e.other:GetFactionValue(e.self) >= -500) then + if(e.message:findi("hail")) then + e.self:Say("Errr? What you say to Urrrkath? Ah. Hello to you as well, furrrless type person."); + elseif(e.message:findi("wish")) then + e.self:Say("Wish? Oh. Urrkath old kerran. Urrkath pass on soon. It great disappointment that Urrkath never see beautiful forest of elves. Now all Urrkaath want is sylvani leaf from elf forest. So me can see at least little part of forest."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1155})) then + e.self:Say("Errr? This is.. this is silvani leaf! Rrrrrr.. So nice. This means much to Urrkath, furrrless one. Please, take this for such kind work."); + e.other:Faction(e.self,382,5); -- Faction: Kerra Isle + e.other:QuestReward(e.self,0,0,0,0,2045,500); + end +end + +--END of FILE Zone:kerraridge ID:74090 -- Urkath_Greyface +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/kerraridge/Wislen_Mamluk.lua b/kerraridge/Wislen_Mamluk.lua new file mode 100644 index 0000000..51448ae --- /dev/null +++ b/kerraridge/Wislen_Mamluk.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= -500) then + if(e.message:findi("hail")) then + e.self:Say("Why you bother Wislen? Wislen trying to get fishies. Leave Wislen alone to get [fish]. please."); + elseif(e.message:findi("fish")) then + e.self:Say("Fish. Wislen fish. Wislen is mamluk. not just fisher. Mamluk is warrior but they also helps provide for all Kerran. This is hadi place in life. We happy doing this. Please. let Wislen fish now."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +--END of FILE Zone:kerraridge ID:74021 -- Wislen_Mamluk +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/kerraridge/a_banished_kerran.lua b/kerraridge/a_banished_kerran.lua new file mode 100644 index 0000000..de0feff --- /dev/null +++ b/kerraridge/a_banished_kerran.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Rrrrrr.. Away frrrom this isle of death and.. prrrr.. punishment."); + elseif(e.message:findi("remains of thipt")) then + e.self:Say("Clawknight Thipt wished to learn the ways of Ashen. Prrr.. Together we go into green goblins' lair to train. Prrr.. We find too many and he is too weak. Separated and unable to find him, I hear his death cry. Prr.. I cannot make it back, eyes upon me. Now I must find one sent by Ashen to aid in the recoverrry of his remains."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12369})) then + e.self:Say("Ashen Order!! Prrr.. My order. I have been expecting one of us. Prrr.. Help me rejoin my native land. Take this box. Combine all the [remains of Thipt] within the box and return it to me. This shall aid me in my redemption."); + e.other:QuestReward(e.self,0,0,0,0,17985,500); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12371})) then + e.self:Say("Prrr.. Thank you brother of Ashen. I can now spend my time upon this island in peace, until my penance is serrrved. He dabs his paw into the mud and places it upon a tattered parchment. Take this message to Puab. Farrrwell."); + e.other:QuestReward(e.self,0,0,0,0,12370,500); -- a pawprint + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:kerraridge ID:74029 -- a_banished_Kerran \ No newline at end of file diff --git a/kerraridge/kerran_tseq.lua b/kerraridge/kerran_tseq.lua new file mode 100644 index 0000000..32293c3 --- /dev/null +++ b/kerraridge/kerran_tseq.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= -500) then + if(e.message:findi("hail")) then + e.self:Say("Errr. You smell funny. You bring us [toy]?"); + elseif(e.message:findi("toy")) then + e.self:Say("You go, bring us gnome toy. You not come back or we eat you and then you die like short one. Gnome toy! You bring. You good person."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 6344})) then + e.self:Say("Rreeee! Great toy. Shiny. We not need this old toy anymore. You take. Now go way, this our toy, we play."); + e.other:Faction(e.self,382,4); -- Faction: Kerra Isle + e.other:QuestReward(e.self,0,0,0,0,13748); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kithicor/#Adjutant_D-kan.lua b/kithicor/#Adjutant_D-kan.lua new file mode 100644 index 0000000..f6bf4f3 --- /dev/null +++ b/kithicor/#Adjutant_D-kan.lua @@ -0,0 +1,22 @@ +-- Rogue Epic NPC -- --Adjutant_D'kan +function event_say(e) + e.self:Emote("ignores you."); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28057})) then + e.self:Say("The General will take care of you!"); + e.other:QuestReward(e.self,0,0,0,0,0,500); + eq.unique_spawn(20205,0,0,2297,827,275,128); -- NPC: General_V`ghera + end + item_lib.return_items(e.self, e.other, e.trade) + +end + +--END of FILE Quest by: Solid11 Zone:kithicor ID:20065 -- --Adjutant_D'kan +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kithicor/#Advisor_C-zatl.lua b/kithicor/#Advisor_C-zatl.lua new file mode 100644 index 0000000..35024d8 --- /dev/null +++ b/kithicor/#Advisor_C-zatl.lua @@ -0,0 +1,21 @@ +-- Rogue Epic NPC -- --Advisor_C`zatl +function event_say(e) + e.self:Emote("ignores you."); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28057})) then + e.self:Say("The General will take care of you!"); + e.other:QuestReward(e.self,0,0,0,0,0,500); + eq.unique_spawn(20205,0,0,2297,827,275,128); -- NPC: General_V`ghera + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Quest by: Solid11 Zone:kithicor ID:20055 -- --Advisor_C`zatl +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kithicor/#Brigadier_G-tav.lua b/kithicor/#Brigadier_G-tav.lua new file mode 100644 index 0000000..c936345 --- /dev/null +++ b/kithicor/#Brigadier_G-tav.lua @@ -0,0 +1,21 @@ +-- Rogue Epic NPC -- --Brigadier_G'tav +function event_say(e) + e.self:Emote("ignores you."); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28057})) then + e.self:Say("The General will take care of you!"); + e.other:QuestReward(e.self,0,0,0,0,0,500); + eq.unique_spawn(20205,0,0,2297,827,275,128); -- NPC: General_V`ghera + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Quest by: Solid11 Zone:kithicor ID:20061 -- --General_G'tav +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kithicor/#Coercer_Q-ioul.lua b/kithicor/#Coercer_Q-ioul.lua new file mode 100644 index 0000000..ef771c7 --- /dev/null +++ b/kithicor/#Coercer_Q-ioul.lua @@ -0,0 +1,21 @@ +-- Rogue Epic NPC -- --Coercer_Q'ioul +function event_say(e) + e.self:Emote("ignores you."); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28057})) then + e.self:Say("The General will take care of you!"); + e.other:QuestReward(e.self,0,0,0,0,0,500); + eq.unique_spawn(20205,0,0,2297,827,275,128); -- NPC: General_V`ghera + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Quest by: Solid11 Zone:kithicor ID:20054 -- --Coercer_Q'ioul +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kithicor/#Ioltos_V-ghera.lua b/kithicor/#Ioltos_V-ghera.lua new file mode 100644 index 0000000..55c759e --- /dev/null +++ b/kithicor/#Ioltos_V-ghera.lua @@ -0,0 +1,21 @@ +-- Rogue Epic NPC -- --Ioltos_V'ghera +function event_say(e) + e.self:Emote("ignores you."); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28057})) then + e.self:Say("The General will take care of you!"); + e.other:QuestReward(e.self,0,0,0,0,0,500); + eq.unique_spawn(20205,0,0,2297,827,275,128); -- NPC: General_V`ghera + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Quest by: Solid11 Zone:kithicor ID:20062 -- --Ioltos_V'ghera +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kithicor/#Tasi_V-ghera.lua b/kithicor/#Tasi_V-ghera.lua new file mode 100644 index 0000000..f3c116e --- /dev/null +++ b/kithicor/#Tasi_V-ghera.lua @@ -0,0 +1,21 @@ +-- Rogue Epic NPC -- --Tasi_V'ghera +function event_say(e) + e.self:Emote("ignores you."); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28057})) then + e.self:Say("The General will take care of you!"); + e.other:QuestReward(e.self,0,0,0,0,0,500); + eq.unique_spawn(20205,0,0,2297,827,275,128); -- NPC: General_V`ghera + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Quest by: Solid11 Zone:kithicor ID:20063 -- --Tasi_V'ghera +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kithicor/#War_Priestess_T-zan.lua b/kithicor/#War_Priestess_T-zan.lua new file mode 100644 index 0000000..1b470ef --- /dev/null +++ b/kithicor/#War_Priestess_T-zan.lua @@ -0,0 +1,21 @@ +-- Rogue Epic NPC -- --War_Priestess_T`zan +function event_say(e) + e.self:Emote("ignores you."); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28057})) then + e.self:Say("The General will take care of you!"); + e.other:QuestReward(e.self,0,0,0,0,0,500); + eq.unique_spawn(20205,0,0,2297,827,275,128); -- NPC: General_V`ghera + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Quest by: Solid11 Zone:kithicor ID:20064 -- --War_Priestess_T`zan +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kithicor/Brollus_Hoost.lua b/kithicor/Brollus_Hoost.lua new file mode 100644 index 0000000..1fd9a64 --- /dev/null +++ b/kithicor/Brollus_Hoost.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, friend."); + end +end \ No newline at end of file diff --git a/kithicor/Eenot.lua b/kithicor/Eenot.lua new file mode 100644 index 0000000..fd76ae7 --- /dev/null +++ b/kithicor/Eenot.lua @@ -0,0 +1,8 @@ +function event_spawn(e) + e.self:AI_SetRoambox(1000,4670,466,900,-817,5000); + eq.set_timer("depop",2700000); +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/kithicor/Gandari.lua b/kithicor/Gandari.lua new file mode 100644 index 0000000..4410963 --- /dev/null +++ b/kithicor/Gandari.lua @@ -0,0 +1,57 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Most call me Gandari the Terse. You here for [ivy armor]?"); + elseif(e.message:findi("ivy armor")) then + e.self:Say("I reward brave rangers with ivy etched armor - [Helm]s. [Tunic]s. [Sleeves] and [Bracers]. [Interested]?"); + elseif(e.message:findi("bracer")) then + e.self:Say("I do not haggle, I do not bargain. The Bottom of the Rune of Ivy from the plains of Everfrost, a Watery Ring from the Cauldron of Tears and a Fire Emerald to warm my heart. Bring these to me and you shall earn your reward."); + elseif(e.message:findi("helm")) then + e.self:Say("I do not haggle, I do not bargain. The Top of the Rune of Ivy from the Castle Mistmoore, a Cyclops Charm from Tarskuk and a Sapphire of Sky Blue. Bring these to me and you shall earn your reward."); + elseif(e.message:findi("sleeve")) then + e.self:Say("I do not haggle, I do not bargain. A Heart of Fire from the Caverns of Solusek, the Left side of the Rune of Ivy from the Griffon Grimfeather and two Star Rubies of sparkling hue. Bring these to me and you shall earn your reward."); + elseif(e.message:findi("tunic")) then + e.self:Say("I do not haggle, I do not bargain. The Skull of Meldrath, the Right side of the Rune of Ivy from the Thistle Brownie and two Rubies of Fiery Red. Bring these to me and you shall earn your reward."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "Wait, " .. e.other:GetCleanName() .. ", are you not forgetting something?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10569, item2 = 10546, item3 = 10033},1,text1)) then -- bracers + e.self:Say("Well done. May Karana bless your soul."); + e.other:Faction(e.self,269,10); -- kithicor residence + e.other:Faction(e.self,302,1); -- protectors of the pine + e.other:Faction(e.self,272,1); -- jaggedpine treefolk + e.other:Faction(e.self,324,-1); -- unkempt druids + e.other:QuestReward(e.self,0,0,0,0,3189,10000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10566, item2 = 10570, item3 = 10034},1,text1)) then -- helm + e.self:Say("Well done. May Karana bless your soul."); + e.other:Faction(e.self,269,10); -- kithicor residence + e.other:Faction(e.self,302,1); -- protectors of the pine + e.other:Faction(e.self,272,1); -- jaggedpine treefolk + e.other:Faction(e.self,324,-1); -- unkempt druids + e.other:QuestReward(e.self,0,0,0,0,3181,10000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10548, item2 = 10568, item3 = 10032, item4 = 10032},1,text1)) then -- sleeves + e.self:Say("Well done. May Karana bless your soul."); + e.other:Faction(e.self,269,10); -- kithicor residence + e.other:Faction(e.self,302,1); -- protectors of the pine + e.other:Faction(e.self,272,1); -- jaggedpine treefolk + e.other:Faction(e.self,324,-1); -- unkempt druids + e.other:QuestReward(e.self,0,0,0,0,3188,10000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10571, item2 = 10567, item3 = 10035, item4 = 10035},1,text1)) then -- tunic + e.self:Say("Well done. May Karana bless your soul."); + e.other:Faction(e.self,269,10); -- kithicor residence + e.other:Faction(e.self,302,1); -- protectors of the pine + e.other:Faction(e.self,272,1); -- jaggedpine treefolk + e.other:Faction(e.self,324,-1); -- unkempt druids + e.other:QuestReward(e.self,0,0,0,0,3184,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:kithicor ID:20095 -- Gandari +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kithicor/Ged_Twigborn.lua b/kithicor/Ged_Twigborn.lua new file mode 100644 index 0000000..5487a6f --- /dev/null +++ b/kithicor/Ged_Twigborn.lua @@ -0,0 +1,79 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". What brings you to this neck of the woods? You must have heard of my expert tanning skills. I craft some of the finest skin garments this side of Highpass Hold."); + else + e.self:Say("I am sorry but I just would not feel comfortable helping you with that right now. Maybe if you did more good deeds for the people of Kithicor Woods, I might reconsider."); + end + elseif(e.message:findi("garment")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("Gloves are my specialty. I make four varieties; ratskin, wolfskin, bearskin, and my most sought after type, lionskin."); + else + e.self:Say("I am sorry but I just would not feel comfortable helping you with that right now. Maybe if you did more good deeds for the people of Kithicor Woods, I might reconsider."); + end + elseif(e.message:findi("wolfskin glove")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Wolfskin gloves? Those will cost you 13 gold pieces and you need to bring me a high quality wolf skin as well."); + else + e.self:Say("I am sorry but I just would not feel comfortable helping you with that right now. Maybe if you did more good deeds for the people of Kithicor Woods, I might reconsider."); + end + elseif(e.message:findi("bearskin glove")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Ah... My bearskin gloves are the finest you will find anywhere. They will cost you 25 gold pieces and you also need to give me a high quality bear skin before I can get to work."); + else + e.self:Say("I am sorry but I just would not feel comfortable helping you with that right now. Maybe if you did more good deeds for the people of Kithicor Woods, I might reconsider."); + end + elseif(e.message:findi("lionskin glove")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Interested in the best, are you? Well, it will cost you. In addition to a high quality lionskin, I require payment of 96 gold pieces for me to craft you my exquisite lionskin gloves. Search the northern plains of Karana for highland lions as their skins are the most supple."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I know you are doing good for us here in Kithicor but I can only provide that kind of aid to heroes. Keep up the good work and I may help you in the future."); + else + e.self:Say("I am sorry but I just would not feel comfortable helping you with that right now. Maybe if you did more good deeds for the people of Kithicor Woods, I might reconsider."); + end + elseif(e.message:findi("ratskin glove")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("Interested in some ratskin gloves, are you? Well, before I can start, I need you to provide me a giant rat pelt and 6 gold pieces. I need to make a living at this, after all..."); + else + e.self:Say("I am sorry but I just would not feel comfortable helping you with that right now. Maybe if you did more good deeds for the people of Kithicor Woods, I might reconsider."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "Wolfskin gloves, huh? Very well, but I am still missing one of the things I require to make them."; + local text2 = "Oh, I love working with fine bearskin! But, if you want your gloves, you must give me the rest of the items I require."; + local text3 = "Excellent choice! My lionskin gloves are known throughout Norrath. But before I can make them, I need both a high quality lion skin AND ninety-six gold pieces."; + + if(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13054})) then --doesn't require gold like dialogue says + e.self:Say("Ok! Let me see here.. Hmmm.. Oh, excellent.. Here you go. Some of my finest work, if I must say so myself."); + e.other:Faction(e.self,269,2); -- kithicor residence + e.other:Faction(e.self,302,1); -- protectors of the pine + e.other:Faction(e.self,272,1); -- jaggedpine treefolk + e.other:Faction(e.self,324,-1); -- unkempt druids + e.other:QuestReward(e.self,0,0,0,0,2312,500); + elseif(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13755,gold = 13},1,text1)) then + e.self:Say("Ok! Let me see here.. Hmmm.. Oh, excellent.. Here you go. Some of my finest work, if I must say so myself."); + e.other:Faction(e.self,269,2); -- kithicor residence + e.other:Faction(e.self,302,1); -- protectors of the pine + e.other:Faction(e.self,272,1); -- jaggedpine treefolk + e.other:Faction(e.self,324,-1); -- unkempt druids + e.other:QuestReward(e.self,0,0,0,0,2313,1000); + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13752,gold = 25},1,text2)) then + e.self:Say("Ok! Let me see here.. Hmmm.. Oh, excellent.. Here you go. Some of my finest work, if I must say so myself."); + e.other:Faction(e.self,269,2); -- kithicor residence + e.other:Faction(e.self,302,1); -- protectors of the pine + e.other:Faction(e.self,272,1); -- jaggedpine treefolk + e.other:Faction(e.self,324,-1); -- unkempt druids + e.other:QuestReward(e.self,0,0,0,0,2314,1500); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13766,gold = 96},1,text3)) then + e.self:Say("Ok! Let me see here.. Hmmm.. Oh, excellent.. Here you go. Some of my finest work, if I must say so myself."); + e.other:Faction(e.self,269,5); -- kithicor residence + e.other:Faction(e.self,302,1); -- protectors of the pine + e.other:Faction(e.self,272,1); -- jaggedpine treefolk + e.other:Faction(e.self,324,-1); -- unkempt druids + e.other:QuestReward(e.self,0,0,0,0,2315,2000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kithicor/General_V-ghera.lua b/kithicor/General_V-ghera.lua new file mode 100644 index 0000000..496fd31 --- /dev/null +++ b/kithicor/General_V-ghera.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("Stanos")) then + e.self:Say("Stanos? Stanos!! That dog, I WILL see him dead for what he cost me. Outcast I am, stripped of my position, my god has forsaken me, blaming ME for the loss of some tome. And you, " .. e.other:GetCleanName() .. ", you have aided him. For that, you will die first. Please, struggle and beg, I do so enjoy watching my victims squirm, and I have little joy left in my life now. If you want my favor, perhaps if you came bearing Stanos' head I would be more forgiving. But I doubt it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28058})) then + e.self:Say("Life is indeed sweet! Thank you, " .. e.other:GetCleanName() .. ", you have done me a great service this day. Take this, Stanos was kind enough to return it to me, and I have no use for it now. Know that you have the blessing of Innoruuk for this deed! But of course, I leave it to you to leave here alive. A leader has to feed his minions, you know."); + e.other:Faction(e.self,420,500); -- Faction: Fallen of Bloody Kithicor + e.other:QuestReward(e.self,0,0,0,0,2475,50000); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Originally submitted by ShadowBlade, corrected turn-in text by Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kithicor/Giz_X-Tin.lua b/kithicor/Giz_X-Tin.lua new file mode 100644 index 0000000..271e2a5 --- /dev/null +++ b/kithicor/Giz_X-Tin.lua @@ -0,0 +1,16 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20446})) then + e.self:Emote("flips you a coin after he recognizes the ring. 'It seems we have a mutual 'acquaintance.' The coin repays an old debt. You don't have to worry about what that is. Luckily, Lord Innoruuk has informed me of your coming and your desires. Fortunately, I have all the answers you require right here at the end of my friend's blade. I think I'll be paying my old 'friend' a visit.'"); + e.other:QuestReward(e.self,0,0,0,0,20447); + eq.spawn2(20190,0,0,e.self:GetX()+20,e.self:GetY()+20,e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- EOF zone: kithicor ID: 20058 NPC: Giz_X`tin +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/kithicor/Grim_Oakfist.lua b/kithicor/Grim_Oakfist.lua new file mode 100644 index 0000000..2eb7ba5 --- /dev/null +++ b/kithicor/Grim_Oakfist.lua @@ -0,0 +1,37 @@ +function event_say(e) + if((e.other:GetFaction(e.self) < 5) and (e.self:GetClass() == 7)) then + if(e.message:findi("hail")) then + e.self:Say("It is good to finally meet one who respects the disciplines of the Ashen Order. All I have met are rangers. They have interfered with my [mission in the woods]."); + elseif(e.message:findi("mission in the wood")) then + e.self:Say("I have come here to avenge my family. One season past, they were attacked by a trio of deadly tigers. I came here to hunt the beasts down, but then I found the local rangers and residents here protect the tigers. They seem to be legends in these parts. The tigers even have name's!! They call them Eenot, Reggit and Kobb. I wish I had help from a [fellow monk]."); + elseif(e.message:findi("fellow monk")) then + e.self:Say("Good!! The rangers are watching me so you must go alone. I can only wait until the morning, then I must go. If you find all three tigers, return their pelts to me and I shall reward you with something discovered for monks only."); + eq.unique_spawn(20276, 0, 0, 4184, -745, 548); -- Spawn Eenot + eq.unique_spawn(20277, 0, 0, 1084, -707, 225); -- Spawn Reggit + eq.unique_spawn(20000, 8, 0, -585, -165, -38); -- Spawn Kobb + elseif(e.message:findi("treant fist")) then + e.self:Say("The treant fists were created by great craftsmen. They are for the fists of a monk and offer greater dexterity and increase the durability of one's soul. My last pair were given to Master Puab of the Ashen House training grounds."); + eq.depop_with_timer(); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I asked you to hunt down all three of the tigers."; + + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12341, item2 = 12342, item3 = 12343},1,text)) then + e.self:Say("Good work. I hope you had no run ins with the local rangers. Here is my reward. An object from the past which I found in my journeys. Wish that I could reward you also with [treant fists]."); + e.other:Faction(e.self,361,10); -- Ashen Order Faction ID-361 + e.other:Faction(e.self,281,1); -- Knights of Truth Faction ID-281 + e.other:Faction(e.self,309,1); -- Silent Fist Clan Faction ID-309 + e.other:QuestReward(e.self,0,0,0,0,12367,5000); -- Collar of Neshika ID-12367 + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:kithicor ID:20220 -- Grim_Oakfist +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kithicor/Kithicor.lua b/kithicor/Kithicor.lua new file mode 100644 index 0000000..fbb44fb --- /dev/null +++ b/kithicor/Kithicor.lua @@ -0,0 +1,13 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20877})) then + e.self:Say("Wow, this is certainly something I have not seen in a long time. It was said that this species of snake had been wiped out due to the poachers and griffins. It was very noble of you to help in saving this species. I will see that these are raised properly. Please wear this icon with pride so other rangers will know of the good deed you have done."); + e.other:Faction(e.self,269,10); -- kithicor resident + e.other:Faction(e.self,302,1); -- protectors of pine + e.other:Faction(e.self,272,1); -- jaggedpine treefolk + e.other:Faction(e.self,324,-1); -- unkemtp druid + e.other:QuestReward(e.self,0,0,0,0,20878,100000); -- symbol of achievement + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/kithicor/Kobb.lua b/kithicor/Kobb.lua new file mode 100644 index 0000000..fd76ae7 --- /dev/null +++ b/kithicor/Kobb.lua @@ -0,0 +1,8 @@ +function event_spawn(e) + e.self:AI_SetRoambox(1000,4670,466,900,-817,5000); + eq.set_timer("depop",2700000); +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/kithicor/Leaf_Falldim.lua b/kithicor/Leaf_Falldim.lua new file mode 100644 index 0000000..a0a5014 --- /dev/null +++ b/kithicor/Leaf_Falldim.lua @@ -0,0 +1,53 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. " .. e.other:GetCleanName() .. "! Respect the woods and all its inhabitants or face the wrath of the rangers. Do not end up like [Maldyn Greenburn]."); + elseif(e.message:findi("maldyn greenburn")) then + e.self:Say("Maldyn was once one of us. He was the finest of archers. Everyone aspired to be like him. He soon was tempted to hunt. The animals of these woods found themselves nothing more than moving targets for Maldyn's training. We held a trial and exiled him to parts unknown. He would take with him Morin's [Bow of Kithicor]. I was asked to find a worthy ranger to [retrieve the bow]."); + elseif(e.message:findi("bow of kithicor")) then + e.self:Say("The Bow of Kithicor was carved from an ancient tree. It has great powers which were but a portion of the tree's mana. I seek a brave ranger to [retrieve the bow]."); + elseif(e.message:findi("retrieve the bow")) then + e.self:Say("Search the lands of the Unkempt Druids in the Rathe Mountains. I have heard of his arrows being found inside its territories and of his death wish to hunt down its leader. Retrieve the bow and return it to me and I shall give you the ivy etched gauntlets."); + elseif(e.message:findi("ivy etched legging")) then + e.self:Say("'I will make you an offer. If you be a ranger, as they are made for only a ranger, you must venture to Faydwer. There you shall seek out Lieutenant Leafstalker of the Kelethin army. He sent a message of his retrieval of the Quiver of Kithicor. Tell him you want it and return it to me. Oh... and one more [small item]."); + elseif(e.message:findi("small item")) then + e.self:Say("Along with the quiver you shall journey to Erudin and purchase a Star of Odus gem to add to the quiver. Consider the coins you shall spend an offering to the woods."); + elseif(e.message:findi("ivy etched boot")) then + e.self:Say("'If you wish the ivy etched boots, you shall do me a favor. I am testing new arrow tips and wish a few of the hardest minerals I know of. From the mines of the Temple of Solusek Ro, ronium. From the land of Mistmoore, fetch me Mistmoore granite. Return these to me along with a guild offering of 2000 gold pieces."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "I asked for a guild donation of 2000 gold coins, Mistmoore granite and a bar of ronium."; + local text2 = "This is but a portion of the bow. I must have the other part."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12321,item2 = 12320},1,text2)) then + e.self:Say("You have performed well, brave ranger. Put these upon your hands. Protection from the strongest of bowstring and magic are their greatest power. I do believe we have another mission which may yield you the [ivy etched leggings]."); + e.other:Faction(e.self,269,10); -- kithicor residence + e.other:Faction(e.self,302,1); -- protectors of the pine + e.other:Faction(e.self,272,1); -- jaggedpine treefolk + e.other:Faction(e.self,324,-1); -- unkempt druids + e.other:QuestReward(e.self,0,0,0,0,3190,10000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10059,item2 = 12328})) then + e.self:Say("Wonderful!! I see he did find it. How lucky we are that he did all the hard work. My thanks to you are embodied in these ivy etched leggings. Now you may [earn the ivy etched boots] to go along with them."); + e.other:Faction(e.self,269,10); -- kithicor residence + e.other:Faction(e.self,302,1); -- protectors of the pine + e.other:Faction(e.self,272,1); -- jaggedpine treefolk + e.other:Faction(e.self,324,-1); -- unkempt druids + e.other:QuestReward(e.self,0,0,0,0,3191,10000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12305,item2 = 12306,gold = 1000},1,text1)) then + e.self:Say("You have succeeded!! I believe I owe you the ivy etched boots."); + e.other:Faction(e.self,269,10); -- kithicor residence + e.other:Faction(e.self,302,1); -- protectors of the pine + e.other:Faction(e.self,272,1); -- jaggedpine treefolk + e.other:Faction(e.self,324,-1); -- unkempt druids + e.other:QuestReward(e.self,0,0,0,0,3192,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:kithicor ID:20077 -- Leaf_Falldim +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/kithicor/Morin_Shadowbane.lua b/kithicor/Morin_Shadowbane.lua new file mode 100644 index 0000000..98ff17c --- /dev/null +++ b/kithicor/Morin_Shadowbane.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". I am the leader of this beleagured troop of rangers. Even though the once fair Kithicor slowly succumbs to the [darkness] at hand, we shall not abandon the woods without a fight."); + elseif(e.message:findi("darkness")) then + e.self:Say("The denizens of these woods are slowly being overrun by dark fiends and shadowed men. As valiantly as we have fought, our numbers dwindle. We know very little about our aggressors, but if we [acquire some information] or perhaps [fine weapons], then we may yet have a chance to retake the woods once more."); + elseif(e.message:findi("acquire some information")) then + e.self:Say("Your tracking skills are invaluable to our cause, brave " .. e.other:GetCleanName() .. ". Our scouts have reported of a Ghoul Messenger. They have spotted him traveling between Kithicor and an undead camp in the Plains of Karana. They have attempted to track the monster and obtain any Strategic Domumentation he may be carrying. Perhaps you can succeed where others have failed. Perhaps you can earn my personal short sword."); + elseif(e.message:findi("fine weapons")) then + e.self:Say("My soldiers are valiant, but poorly equipped. I have heard of a magical weapon of great power, some call it the Ebony Blade. Amongst the Froglocks there can be found a Minotaur who wields this sword of might. If you are a ranger and could provide me with this sword then I would gladly exchange it with my own meager weapon. If you prefer, you may attempt to [acquire some information] for us instead."); + elseif(e.message:findi("another service")) then + e.self:Say("Very well then, your help will bring us closer to solving the mystery of Kithicor! Find Bryn Fynndel in Lesser Faydark and tell him Morin sent you. His band of elven warriors are observing the activities of the Crushbone Orcs and Mistmoore dark elves, perhaps you can help them shed some light on our plight."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 16548})) then --Handin: 1x a Strategic Map of Kithicor (16548) + e.self:Say("Excellent work, " .. e.other:GetCleanName() .. "!! It is obvious that you are a highly skilled tracker and warrior. Accept this reward, my personal sword which has served me well in countless battles. Perhaps you are willing to perform [another service] on our behalf?"); + e.other:QuestReward(e.self,0,0,0,0,5422,5000); --Short Sword of Morin (5422) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5405})) then --Handin: 1x Ebony Bladed Sword (5405) + e.self:Say("Excellent work, " .. e.other:GetCleanName() .. "!! It is obvious that you are a highly skilled tracker and warrior. Accept this reward, my personal sword which has served me well in countless battles. Perhaps you are willing to perform [another service] on our behalf?"); + e.other:QuestReward(e.self,0,0,0,0,5422,5000); --Short Sword of Morin (5422) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20638})) then --Handin: 1x Sealed Ghoul Boss' Log Book (20638) + e.self:Say("We meet again, " .. e.other:GetCleanName() .. ". The ghoul boss' log reveals much of the machinations of our dark oppressors, but not enough. Deliver these orders to Bryn in Lesser Faydark, and he will provide you with another weapon to aid in our defense of Kithicor."); + e.other:QuestReward(e.self,0,0,0,0,20639,1000); --Orders for Bryn + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/kithicor/Reggit.lua b/kithicor/Reggit.lua new file mode 100644 index 0000000..fd76ae7 --- /dev/null +++ b/kithicor/Reggit.lua @@ -0,0 +1,8 @@ +function event_spawn(e) + e.self:AI_SetRoambox(1000,4670,466,900,-817,5000); + eq.set_timer("depop",2700000); +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/kurn/a_skeletal_cook.lua b/kurn/a_skeletal_cook.lua new file mode 100644 index 0000000..819d4fa --- /dev/null +++ b/kurn/a_skeletal_cook.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Some cracked old bone's, two zombie flesh, and a salt minnow make up the rest. Throw inside a skull and mix, and I would have a delightful dish. But with no eye's I have no sight to make Kurn's delicious delight. And if I could I would not eat without a tongue behind my teeth."); + end +end + +function event_trade(e) + local item_lib = require("items"); --Handin: a Glowing Skull + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12401})) then + e.self:Emote("The cook's bone's crack as he reaches out to take the skull from your hand's. A voice in your mind say's, Thank you. Now I can leave this dreadful place. Please take this as I no longer have any use for it. The cook places the skull back in your hand's before collapsing into a lifeless pile of bone's."); + e.other:QuestReward(e.self,0,0,0,0,1115); --Summon: The Skull of Torture + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakeofillomen/#tainted_barracuda.lua b/lakeofillomen/#tainted_barracuda.lua new file mode 100644 index 0000000..6f5cee9 --- /dev/null +++ b/lakeofillomen/#tainted_barracuda.lua @@ -0,0 +1,13 @@ +function event_death_complete(e) + eq.spawn2(85224,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakeofillomen/Astral_Projection.lua b/lakeofillomen/Astral_Projection.lua new file mode 100644 index 0000000..73030a6 --- /dev/null +++ b/lakeofillomen/Astral_Projection.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("ignores you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1687},0)) then + -- Monk Epic 1.0 + eq.depop_with_timer(); + -- Spawn: Vorash + eq.spawn2(85211,0,0,e.self:GetX()+5,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + -- Spawn: Deep + eq.spawn2(85223,0,0,e.self:GetX()-5,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakeofillomen/Bruiser_Noz.lua b/lakeofillomen/Bruiser_Noz.lua new file mode 100644 index 0000000..70f3a7e --- /dev/null +++ b/lakeofillomen/Bruiser_Noz.lua @@ -0,0 +1,20 @@ +--Shaman Skull Quest 6 +function event_spawn(e) + e.self:Say("Stay out of this, Klok !! I didn't spend 30 seasons in the legion to be pestered by the likes of you!! Here I am, you little croak!! You want my skull? Come and get it!!"); + eq.signal(85140, 50000); --signal Klok_sargin to say something +end + +function event_signal(e) + e.self:Say("Ha!! Who dares to take what is Bruiser's!! I will make swamp mush out of them!!"); + eq.attack(e.other:GetName()); +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakeofillomen/Klok_Foob.lua b/lakeofillomen/Klok_Foob.lua new file mode 100644 index 0000000..fbaaf86 --- /dev/null +++ b/lakeofillomen/Klok_Foob.lua @@ -0,0 +1,37 @@ +function event_say(e) + if(e.message:findi("hail")) then + -- Catfish Croak Sandwich [Part 1] + e.self:Say("Buy, buy, buy. Go ahead, make a purchase. I am not here to talk. Go to Cabilis for talk. Come to Foob for armor. Now hurry and.. Ooh.. Foob is starvings. Foob wish he had his [munch break favorite]."); + elseif(e.message:findi("munch break favorite")) then + -- Catfish Croak Sandwich [Part 2] + e.self:Emote("rubs his tummy. 'Oh!! Catfish croak sandwich is my favorite, it is. Can only eats on my break. I haves one and one is what the Haggle Baron says to Foob. Only thing is Foob gets way tired from standing. Foob needs some broodling to [fetch the catfish croak sandwich] for him.'"); + elseif(e.message:findi("fetch.*sandwich")) then + -- Catfish Croak Sandwich [Part 3] + e.self:Say("What?!! You dus gets Foob his sandwich for his munch break!! You be a good tail. Gets me two sandwiches, one fer break and one fer work, then me pay you something for the troubles. But it be no trouble. Foob is sure you know [how to make sandwich]."); + elseif(e.message:findi("how.*sandwich")) then + -- Catfish Croak Sandwich [Part 4] + e.self:Emote("chortles loudly in disbelief. 'How you not know? It da best food. You gots to get a sewer catfish which swims in da Cabilis, and find lizard who have thin sliced froglok. Then all you need is shrub lettuce and honey mush bread. All dis in da oven makes a good sandwich.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "No. Foob needs two sandwiches to makes it through da day."; + + --Handin: 2x Catfish Croak Sandwich (12451) + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12451, item2 = 12451},1,text)) then + -- Catfish Croak Sandwich [Part 8][End] + e.self:Say("Me thanks you very much!! Now me stop da tummy grumbles. You have this. And you takes dis. Foob make special, not sold yet, you test it. It is not toughest, but it take a little bashing just like you. It is called Foobscale!!"); + --Summon: Foobscale Coif(12448) then + e.other:Faction(e.self,440,15); --Cabilis Residents + e.other:Faction(e.self,441,3); --Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,12448); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Quest: Catfish Croak Sandwich (Submitted By: Senzo) +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakeofillomen/Klok_Sargin.lua b/lakeofillomen/Klok_Sargin.lua new file mode 100644 index 0000000..8194ca7 --- /dev/null +++ b/lakeofillomen/Klok_Sargin.lua @@ -0,0 +1,28 @@ +--Shaman Skull Quest 6 +function event_say(e) + if(e.message:findi("Sisters of Scale") and e.other:GetFaction(e.self) <= 5) then + e.self:Say("Looking for the skull I had for sale? I am afraid I sold it to a staunch lizard champion. I would gladly give you his name if you would do me a [slight favor]."); + elseif(e.message:findi("slight favor") and e.other:GetFaction(e.self) <= 5) then + e.self:Say("The lake garrison has requested that I work on a helm similar to the ones worn by sarnak dragoons. The problem is.. I need one to examine. You go get me one and I will tell you who purchased the skull."); + end +end + +function event_trade(e) + local item_lib = require("items"); + --Turn in the Sarnak Dragoon Helm dropped off of Sarnak Dragoons in lake of ill omen + if(e.other:GetFaction(e.self) <= 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12761})) then + e.self:Say("Uhh. Thanks. I sort of told the lizard who bought the skull that you were asking for him, and, well, he was kinda mad, and... " .. e.other:GetCleanName() .. ", meet Bruiser."); + eq.unique_spawn(85226,0,0,e.self:GetX() + 5,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Bruiser Noz + end + item_lib.return_items(e.self, e.other, e.trade) --return items if not the ones required +end + +function event_signal(e) + e.self:Say("Ye.. Ye.. Yes.. Yes, Bruiser."); + eq.signal(85226,51); -- NPC: Bruiser_Noz +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakeofillomen/Professor_Akabao.lua b/lakeofillomen/Professor_Akabao.lua new file mode 100644 index 0000000..49726a3 --- /dev/null +++ b/lakeofillomen/Professor_Akabao.lua @@ -0,0 +1,29 @@ +-- Part of quest for Veeshan's Peak key +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Salutations, traveler! I dont get many visitors in these isolated regions. Have you come to learn of the ancient tribes of the Iksar?"); + elseif(e.message:findi("tribes")) then + e.self:Say("There were five tribes of Iksars that rose from the ashes of the Shissar Empire and founded their kingdoms on the continent of Kunark. Three of the tribes were extinguished many years later by the Kunzar tribe which is the tribe that the current Iksar are descendant from. I focus my studies on learning of the extinct tribe of Kylong."); + elseif(e.message:findi("kylong")) then + e.self:Say("The Kylong were a mountain dwelling tribe of Iksar that strove for esoteric knowledge. They had vast libraries of ancient magical tomes that had been acquired from the Shissar sorcerers, and strove to understand and put the rituals documented in the tomes to practical use. When the Kunzar armies marched upon the Kylong, the three greatest Kylong mystics shattered the Medallion of Kylong, a holy relic of their tribe, and fled their mountain homes in order to prevent the Kunzar from reassembling the Medallion of Kylong."); + elseif(e.message:findi("medallion")) then + e.self:Say("I have been attempting to learn of the destinations of the three Kylong leaders that held the fragments of the medallion. I know only that they sought shelters to hide and continue the practice of their mystical arts In order to one day return their tribe to it's former glory. Their remains may exist beneath some of the fortresses that are centers of Iksar and Sarnak necromancy. I have seen indications that some of the tomes within those fortresses are in fact the very tomes once cherished by the Kylong. Should you manage to recover the broken pieces of the Medallion of Kylong bring them to me so that I may restore the ancient artifact."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Are you daft? How can I reconstruct the medallion of the Kylong without all three pieces?!"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19962, item2 = 19963, item3 = 19964},1,text)) then + e.self:Say("For ages this medallion has been scattered across these inhospitable lands, I had just about given up hope of locating the pieces and rebuilding this piece of Iksar history. You may keep it. It is enough to know that I have done my part to restore such an artifact to the people of Norrath."); + e.other:QuestReward(e.self,0,0,0,0,19955,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Quest by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakeofillomen/Trooper_Curlish.lua b/lakeofillomen/Trooper_Curlish.lua new file mode 100644 index 0000000..fd48379 --- /dev/null +++ b/lakeofillomen/Trooper_Curlish.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Have you tried to drink from the lake? It is poisoned with salt! If you plan on venturing to the far side of the lake. you had best visit one of the Kloks to purchase a Water Extractor."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakeofillomen/Trooper_Digdul.lua b/lakeofillomen/Trooper_Digdul.lua new file mode 100644 index 0000000..7bbe787 --- /dev/null +++ b/lakeofillomen/Trooper_Digdul.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("I've heard rumors of disappearing fishermen on the Lake of Ill Omen. Strange sightings abound. If I were you. I'd do my best to avoid those waters."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakeofillomen/Trooper_Eshzik.lua b/lakeofillomen/Trooper_Eshzik.lua new file mode 100644 index 0000000..d80d70f --- /dev/null +++ b/lakeofillomen/Trooper_Eshzik.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("puts his guard up and glances from left to right. 'Be on the lookout for Sabertooth Cats. Many troopers have been wounded by their sharp, piercing teeth."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakeofillomen/Trooper_Frogzin.lua b/lakeofillomen/Trooper_Frogzin.lua new file mode 100644 index 0000000..aad9272 --- /dev/null +++ b/lakeofillomen/Trooper_Frogzin.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Mind yourself in these parts! There are many dangers. Stay away from the water, if you know whats good for you."); + elseif(e.message:findi("sign the restraining order")) then + e.self:Emote("looks very upset at your mention of the order. 'I cannot believe I have been banned from what little enjoyment can be found in Cabilis. Oh, well, I cannot argue with a legion order. Hand me the order so that I may sign it.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18240})) then --Legion Order (0 signed) + e.self:Emote("grabs the order from your hand and mumbles something unpleasant and vaguely threatening. He then hands the signed order back to you."); + e.other:QuestReward(e.self,0,0,0,0,18241); --Legion Order (1 signed) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/lakeofillomen/Trooper_Hegwez.lua b/lakeofillomen/Trooper_Hegwez.lua new file mode 100644 index 0000000..f1df1ba --- /dev/null +++ b/lakeofillomen/Trooper_Hegwez.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail. adventurer! Stay close to the gates or risk your life. The Lake of Ill Omen is aptly named."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakeofillomen/Trooper_Kylpog.lua b/lakeofillomen/Trooper_Kylpog.lua new file mode 100644 index 0000000..93142a3 --- /dev/null +++ b/lakeofillomen/Trooper_Kylpog.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("My father once dove to the depths of the lake. He said there were many dangers. but reported seeing structures still standing and glints of treasure in the muck below."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakeofillomen/Trooper_Larrin.lua b/lakeofillomen/Trooper_Larrin.lua new file mode 100644 index 0000000..c211edc --- /dev/null +++ b/lakeofillomen/Trooper_Larrin.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("The babble in the gatehouse has been the appearance of sarnak hatchlings in the surrounding area. Where are they coming from?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakeofillomen/Trooper_Selbat.lua b/lakeofillomen/Trooper_Selbat.lua new file mode 100644 index 0000000..cd26252 --- /dev/null +++ b/lakeofillomen/Trooper_Selbat.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good evening, citizen! It is a fine night for a stroll, but not in the woods. No, no! That would be far too dangerous!"); + elseif(e.message:findi("sign the restraining order")) then + e.self:Say("I knew this time would come. I will slay you for bringing this to me... No... I'd best not make the officers angry. Hand me the order and I shall sign it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18248})) then --Legion Order (8 signed) + e.self:Emote("signs the note and hands back to you. 'Be off now. Before I do choose to slay the messenger.'"); + e.other:QuestReward(e.self,0,0,0,0,18249); --Legion Order (9 signed) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/lakeofillomen/Trooper_Vaurk.lua b/lakeofillomen/Trooper_Vaurk.lua new file mode 100644 index 0000000..75d8c59 --- /dev/null +++ b/lakeofillomen/Trooper_Vaurk.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Have you been sent by the War Baron to [assist]? The explorers from Firiona Vie draw closer."); + elseif(e.message:findi("assist")) then + e.self:Say("That is good, I will stay here to halt any advances. Head out near the lake and destroy the trespassers on our land! Bring me four of their knives that they carry for survival. Prove your allegiance to the Legion of Cabilis."); + end +end + +function event_trade(e) + local item_lib = require("items"); + --Handin: 4x Explorer Survival Knife (8004) + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 8004, item2 = 8004, item3 = 8004, item4 = 8004},0)) then + e.self:Say("Great work, the Legion of Cabilis will not soon forget your dedication. The trespassers shall all be dealt with."); + e.other:Faction(e.self,441,100); -- +Legion of Cabilis + e.other:Faction(e.self,440,25); -- +Cabilis Residents + e.other:Faction(e.self,445,25); -- +Scaled Mystics + e.other:Faction(e.self,442,25); -- +Crusaders of Greenmist + e.other:Faction(e.self,444,25); -- +Swifttails + e.other:QuestReward(e.self,0,0,0,0,0,25); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/lakeofillomen/Vorash.lua b/lakeofillomen/Vorash.lua new file mode 100644 index 0000000..0dbb303 --- /dev/null +++ b/lakeofillomen/Vorash.lua @@ -0,0 +1,6 @@ +function event_death_complete(e) + -- MonkEpic 1.0 + e.self:Say("Foolish mortal! you think you have defeated me? Now, witness the true power of Rallos Zek!"); + -- Spawn: Xenevorash + eq.spawn2(85208,0,0,-542,-807,79.12,0):AddToHateList(e.other,1); +end diff --git a/lakeofillomen/Warlord_Geot.lua b/lakeofillomen/Warlord_Geot.lua new file mode 100644 index 0000000..355bedf --- /dev/null +++ b/lakeofillomen/Warlord_Geot.lua @@ -0,0 +1,38 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings!! You look like an adventurer. I have a bit of a problem with which you might be able to help. You see, there have been reports of sarnak hatchlings near the lake. I do not know why they are here, but I do know we need them exterminated. Here is the deal.. You bash them good and return their brains to me. For every four brains, I shall reward you."); + elseif(e.message:findi("trooper reporting for duty")) then + e.self:Say("Very good to have you on board, Trooper " .. e.other:GetCleanName() .. "! We have had reports of sarnak legionnaires attacking caravans. I shall require you to find these sarnak legionnaires. Take this pack. Fill and combine it with as many of their brains as sill fit inside. Return the full pack to me and I shall consider you for a promotion."); + e.other:SummonCursorItem(17044); -- Item: Lake Garrison Pack + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12914})) then + e.self:Say("Very good. I cannot see any reason a warrior like you should waste their time on the patrols of a trooper. I shall recommend you for a promotion. I hope the War Baron agrees."); + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:Faction(e.self,440,1); -- Faction: Cabilis Residents + e.other:Faction(e.self,445,1); -- Faction: Scaled Mystics + e.other:Faction(e.self,442,1); -- Faction: Crusaders of Greenmist + e.other:Faction(e.self,444,1); -- Faction: Swift Tails + e.other:QuestReward(e.self,0,0,0,0,18074,2000); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12408, item2 = 12408, item3 = 12408, item4 = 12408})) then + e.self:Say("Bravo!! You have done well. Here is a small reward. The greater reward is service to the empire."); + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:Faction(e.self,440,1); -- Faction: Cabilis Residents + e.other:Faction(e.self,445,1); -- Faction: Scaled Mystics + e.other:Faction(e.self,442,1); -- Faction: Crusaders of Greenmist + e.other:Faction(e.self,444,1); -- Faction: Swift Tails + e.other:GiveCash(0,0,1,0); + e.other:QuestReward(e.self,0,0,0,0,12614,3000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakerathe/#Natasha_Whitewater.lua b/lakerathe/#Natasha_Whitewater.lua new file mode 100644 index 0000000..bf76330 --- /dev/null +++ b/lakerathe/#Natasha_Whitewater.lua @@ -0,0 +1,42 @@ +-- CLERIC EPIC NPC:51138 -- Natasha Whitewater + +function event_spawn(e) + e.self:Shout("The Triumvirate of Water has decreed your fate, Shmendrik Lavawalker!! I am here to deliver said fate!!"); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("The Riptide goblins must have their crown returned to them. If you would be so kind as to give me the crown I will make sure that it reaches them. Hopefully they are capable enough to repair the damage that has been done to it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28046})) then -- damage goblin crown + e.self:Say("I will have this crown returned to the Riptide Goblins immediately! Should you ever come across an Erudite named Omat Vastsea, give him this sea shell. The waters of Norrath shimmer with awareness of your deeds here today!"); + e.other:QuestReward(e.self,0,0,0,0,28047); -- Ornate Sea Shell + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Enough!! Your existence has come to an end!"); + eq.signal(51012,2,2000); -- NPC: Shmendrik_Lavawalker + elseif(e.signal == 2) then + e.self:Say("This conflict has been destined by the waters of the Triumvirate!"); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 4 and eq.get_entity_list():IsMobSpawnedByNpcTypeID(51012)) then + eq.signal(51012,1,2000); -- NPC: Shmendrik_Lavawalker + eq.attack_npc_type(51012); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakerathe/#tainted_aquagoblin.lua b/lakerathe/#tainted_aquagoblin.lua new file mode 100644 index 0000000..6eff615 --- /dev/null +++ b/lakerathe/#tainted_aquagoblin.lua @@ -0,0 +1,8 @@ +function event_death_complete(e) + eq.unique_spawn(51002,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakerathe/Cyanelle.lua b/lakerathe/Cyanelle.lua new file mode 100644 index 0000000..156293c --- /dev/null +++ b/lakerathe/Cyanelle.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello. " .. e.other:GetCleanName() .. "."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakerathe/Deep.lua b/lakerathe/Deep.lua new file mode 100644 index 0000000..e54ad18 --- /dev/null +++ b/lakerathe/Deep.lua @@ -0,0 +1,18 @@ +-- Monk Epic 1.0 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("ignores you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1686},0)) then --Trunt's Head + e.self:Emote("slowly opens her eyes and looks up at you. She stares at you a long while and then closes her eyes and lowers her head again."); + e.self:Say("Very well, " .. e.other:GetCleanName() .. ", if you wish death so greatly, we will be happy to oblige. My master projects part of himself in the wilder lands known as the Overthere. He has granted you an audience. Find him and show him the head of our earth brother. At that point, we will discuss how we will end your life."); + e.other:QuestReward(e.self,0,0,0,0,1686); --Trunt's Head + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/lakerathe/Derg.lua b/lakerathe/Derg.lua new file mode 100644 index 0000000..de1883d --- /dev/null +++ b/lakerathe/Derg.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Yesterday. I took my yearly bath in the big lake. Can you tell? I swam out to the aviak dive and jumped in! Jumping in the lake from their platform is always such fun! Down at the bottom. I saw something red and shiny. I wish I could hold my breath long enough to go find out what it was."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakerathe/Eldreth.lua b/lakerathe/Eldreth.lua new file mode 100644 index 0000000..0abaa98 --- /dev/null +++ b/lakerathe/Eldreth.lua @@ -0,0 +1,37 @@ +-- Rogue Epic NPC -- Eldreth + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Go away! I'm busy! I don't have time for scoundrels like you! Leave me alone or I shall, um..turn you into, er, a fish or something! That is what us powerful wizards do to those who annoy us! Yes, that is it. A fish! Did that sound scary enough?"); + elseif(e.message:findi("that was scary")) then + e.self:Say("Ha! I knew it. I could see you trembling! Everyone fears an angry wizard and nobody wants to be a fish. I know I detest fish, it is always fish fish fish around here. Fish cakes, fish stew, fish wine, I am sick of fish. But alas, while I am a powerful wizard, I am also a poor one. Oh well, good things come to those who wait. So, why are you here, " .. e.other:Race() .. "?"); + elseif(e.message:findi("stanos sent me")) then + e.self:Say("Stanos? Stanos Herkanor? I thought he was long dead. He nearly got me killed, in any case. What does the old fool want of me now?"); + elseif(e.message:findi("translate")) then + e.self:Say("Ah, codes are my specialty! It's what I did for the Circle before Hanns took over. But the Fox is wrong. I owe him nothing! As a fact, he owes me! He wants this translated - he will have to pay!"); + elseif(e.message:findi("pay")) then + e.self:Say("Aye, pay, and pay you must. I need 100 platinum pieces to begin my work. This tower is old and drafty and it will take that much to make it bearable. And while you're at it, I need something else. I am very busy here and have no time to shop, so bring me back a couple bottles of milk along with your very large bag of platinum, and I will translate anything you wish at that time."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "looks at you, obviously expecting more. Did you forget the milk?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13087, item2 = 13087, item3 = 28012, platinum = 100},1,nil,text)) then + e.self:Say("Hmm, interesting. This document is not only encoded, but written in a very obscure language. From what I can gather, it's a variant of elder Teir'Dal, but not one I've encountered. I can not fully translate this, but I know one who can. Find Yendar and give him this."); + e.other:Faction(e.self,342,400);--Order of Three + e.other:Faction(e.self,221,-100);--Bloood Sabers + e.other:Faction(e.self,262,60);--Guards of Qeynos + e.other:Faction(e.self,296,-60);--Opal Dark Briar + e.other:QuestReward(e.self,0,0,0,0,28053,500); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Zone: lakerathe ID:51025 -- Eldreth +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakerathe/Emkel_Kabae.lua b/lakerathe/Emkel_Kabae.lua new file mode 100644 index 0000000..72a2239 --- /dev/null +++ b/lakerathe/Emkel_Kabae.lua @@ -0,0 +1,23 @@ +-- Necromancer Epic NPC -- Emkel_Kabae + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am Emkel Kabae, first apprentice to Kazen. If you have a symbol, tell me its name."); + elseif(e.message:findi("symbol of the serpent")) then + e.self:Say("There are more reagents to be gathered. The time draws near for our master's ascension. Travel to the lands of Kunark and seek out Ssessthrass. He is a very wise Iksar herbalist helping me in my endeavor to please Master Kazen. Be careful not to insult his speech, or you may end up dead before you serve your purpose to the master. Be sure to show him the symbol as proof or he may consider you dinner."); + elseif(e.message:findi("symbol of testing")) then + e.self:Say("You must ask the master about the symbol of testing. Do not hand the symbol to him for he may interpret that as a breach of conduct."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20643, item2 = 20649})) then -- Give the Rolling Stone Moss and the Twisted Symbol of the Apprentice to Emkel Kabae in Lake Rathetear + e.self:Say("Very good, " .. e.other:GetCleanName() .. ", you have done as the master asked yet again, take this as a reward.' Emkel reaches into his robes and pulls out a small symbol. He holds it out and the tiny symbol floats to your hand."); + e.other:QuestReward(e.self,0,0,0,0,20644,500); -- Item: Symbol of the Serpent + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20650})) then -- Give the Refined Mainsi Herb to Emkel for the Symbol of Testing + e.self:Say("You are truly worthy of studying with our master. Bear this new symbol and contemplate what you wish from life before you let go of it. Ask the master about the symbol of testing and he will explain all. I too was tested by him.' Emkel pulls up his sleeve to show a grievous scar from his wrist to his shoulder."); + e.other:QuestReward(e.self,0,0,0,0,20647,1000); -- Item: Symbol of Testing + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/lakerathe/Grud.lua b/lakerathe/Grud.lua new file mode 100644 index 0000000..a7e6072 --- /dev/null +++ b/lakerathe/Grud.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Gimme duffynitey rocks! Me crushem GUUD!!!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10073})) then --Dufrenite + e.self:Say("CRUSH! CRUSH! CRUSH!"); + e.other:QuestReward(e.self,0,0,0,0,19050); --Crushed Dufrenite + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/lakerathe/Kazen_Fecae.lua b/lakerathe/Kazen_Fecae.lua new file mode 100644 index 0000000..f8bd226 --- /dev/null +++ b/lakerathe/Kazen_Fecae.lua @@ -0,0 +1,49 @@ +--BeginFile lakerathe\Kazen_Fecae.pl +--Quest for Lake Rathetear - Kazen Fecae: Necromancer Epics (1.0) + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("'s eyes seem to glow as he turns to you and says, 'Leave me be if you have no reason to be here, mortal!'"); + elseif(e.message:findi("dark arts")) then + e.self:Emote("looks you up and down, his eyes glowing with a soft red light. After a moment he begins to speak though his lips do not move. 'You wish to study under me? Perhaps, if you prove yourself to follow the twisted path. If you prove to be as coldhearted as I then I will let you become my servant.'"); + elseif(e.message:findi("prove")) then + e.self:Say("The wandering knight, Sir Edwin Motte, recently slew one of my lesser servants. This foolish knave travels from town to town pretending to be good. Separate his head from his body and return it to me so I may work my magics upon it. This fool will become another plaything for me, even in death."); + elseif(e.message:findi("advance")) then + e.self:Say("I share great secrets with my more powerful servants who show me they are willing to serve without question. Tell my servant the name of any symbol he gives you and he will instruct you. If I give you a symbol, speak its name to me so I may instruct you."); + elseif(e.message:findi("apprentice")) then + e.self:Say("You have a long way to go before I teach you the true secrets of life and death. Visit Venenzi Oberendi in the Nektulos Forest and show her the symbol. She is collecting reagents for one of my experiments and is taking far too long. I do not wish her dead, yet, I simply need the reagents soon. Retrieve the reagents and give them to my assistant Emkel Kabae. I do not wish to handle them myself."); + elseif(e.message:findi("reagents")) then + e.self:Say("'The reagents are the same types the great sorcerer Miragul used to cheat death and become a lich. I do not wish to become a lich as Miragul did, I have greater aspirations than to simply live forever as a hollow shell. I will rise up a being of pirit only, with a will off my own.' Kazen's eyes glow sickly red as he stared off toward the horizon."); + elseif(e.message:findi("testing")) then + e.self:Say("Show me that you can overcome larger obstacles and manipulate servants. Gather a force for of mercenaries if you like, or so-called friends, if you desire, and prepare for battle, my promising young student. Return to me with the symbol of testing when you are prepared for battle with my creations. Have no fear, I will not slay you myself. If you do live, tell me the name of the symbol you receive."); + elseif(e.message:findi("insanity")) then + e.self:Say("It is time for you to meet my partner, so to speak. Drendico Metalbones is his name and I assure you he is quite mad. His mind has been rended by fright, dread, and terror in his trips to the planes and his heart is full of hatred now. He has a tome which I wish you to use. Show him your symbol slowly and listen to his rantings well, they hide great knowledge."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20641})) then --Head of Sir Edwin Motte + e.self:Say("'Excellent!' You watch Kazen hold the head by the hair and begin to cast a spell. A flash of darkness centers around the head, and the eyes of the dead knight open, a terrible scream emanating from its lips. 'This poor fool here - I think I will keep him in my bag from now on. You have done well, my new apprentice. Take this symbol and know that you can do other tasks to advance within my apprentice ranks.'"); + e.other:QuestReward(e.self,0,0,0,0,20642,5000); --Symbol of the Apprentice + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20647})) then --Symbol of Testing + e.self:Say("As you hand Kazen the symbol, you hear him speak directly into your mind. 'Good luck, my student!' Kazen finishes an incantation and suddenly hands begin to reach up from the ground, as if they were pulling themselves from the grave all around you. A piercing scream fills the air as the creatures advance upon you!"); + eq.spawn2(51153,0,0,-1498.9,283.8,58.4,57.6):AddToHateList(e.other,1); --a bone golem + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20653})) then --Prepared Reagent Box + e.self:Emote("stares through you at the horizon, pausing as he reaches into his robes. Kazen pulls out a scythe with a shimmering black blade that seems too large to have been hidden there. As quickly and gracefully as it was displayed to you, it is returned to the void inside Kazen's robes. 'It is a creation of Miragul which was looted from his lair under the ice. Take this tome, it will be your final task for me as an apprentice.'"); + e.other:QuestReward(e.self,0,0,0,0,18087,10000); --Tome of Instruction + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20652})) then --Gkzzallk in a Box + e.self:Emote("grins wildly and his eyes flare a deep red. The scythe he promised you flies through the air and into your hand. 'Enjoy your toy, I have no more need of you as a servant.'"); + e.other:QuestReward(e.self,0,0,0,0,20544,10000); --Scythe of the Shadowed Soul + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakerathe/Kyralynn.lua b/lakerathe/Kyralynn.lua new file mode 100644 index 0000000..3a6a73b --- /dev/null +++ b/lakerathe/Kyralynn.lua @@ -0,0 +1,35 @@ +-- Quest for 51058 Kyralynn in Lakerathe - Shaman Totemic Armor (low 30's armor) + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello. " .. e.other:GetCleanName() .. "! I am the shaman Kyralynn. If you have a banded armor, my husband Vrynn and I can form it into a new shaman armor using this totem and some reagents for the ritual. I can use a banded [bracer], [mail], [helm] or [cloak] to form this new armor."); + elseif(e.message:findi("bracer")) then + e.self:Say("The bracer requires a banded bracer, 1 dufrenite, a cauldron shell from an aqua goblin lord in Dagnor's Cauldron, and a bull elephant tooth."); + elseif(e.message:findi("helm")) then + e.self:Say("The helm requires a banded helm, 1 ground dufrenite, a glacier bear pelt, and an ogreskin chamois from a lizard page."); + elseif(e.message:findi("cloak")) then + e.self:Say("The cloak requires a banded cloak, 1 powdered dufrenite, basalt drake scales, and a driftwood pipe from an isle goblin chieftain."); + elseif(e.message:findi("mail")) then + e.self:Say("The mail requires banded mail, 1 crushed dufrenite, a lancer swordfish fin, and Grizzleknot bark."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Impressive, do you have the rest?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3061, item2 = 10073, item3 = 19031, item4 = 19033},1,text)) then + e.self:Say("Wear this well, " .. e.other:GetCleanName() .. "!"); + e.other:QuestReward(e.self,0,0,0,0,4945,200); -- Item: Totemic Bracers + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3053, item2 = 19051, item3 = 19042, item4 = 19040},1,text)) then + e.self:Say("Wear this well, " .. e.other:GetCleanName() .. "!"); + e.other:QuestReward(e.self,0,0,0,0,4947,200); -- Item: Totemic Helm + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3058, item2 = 19052, item3 = 19032, item4 = 19035},1,text)) then + e.self:Say("Wear this well, " .. e.other:GetCleanName() .. "!"); + e.other:QuestReward(e.self,0,0,0,0,4948,200); -- Item: Totemic Cloak + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3056, item2 = 19050, item3 = 19036, item4 = 19044},1,text)) then + e.self:Say("Wear this well, " .. e.other:GetCleanName() .. "!"); + e.other:QuestReward(e.self,0,0,0,0,4946,200); -- Item: Totemic Breastplate + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/lakerathe/Misty_Tekcihta.lua b/lakerathe/Misty_Tekcihta.lua new file mode 100644 index 0000000..4727ac7 --- /dev/null +++ b/lakerathe/Misty_Tekcihta.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("smiles and taps her foot."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20534})) then + e.self:Emote("hands you a small ring."); + e.other:QuestReward(e.self,0,0,0,0,20379,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Zone:lakerathe ID:51052 -- Misty Tekcihta +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakerathe/Princess_Lenya_Thex.lua b/lakerathe/Princess_Lenya_Thex.lua new file mode 100644 index 0000000..abf8e39 --- /dev/null +++ b/lakerathe/Princess_Lenya_Thex.lua @@ -0,0 +1,39 @@ +function event_spawn(e) + eq.set_timer("yay",600000); + eq.zone_emote(15,"a royal fish changes into a beautiful princess!!"); + e.self:Shout("I am free.."); + e.self:Emote("' She motions to you to follow her to shore.'"); +end + +function event_timer(e) + if(timer=="yay") then + eq.depop(); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am rescued from the hands of the Teir'Dal! I am grateful. Show me your [proof of allegiance] along with a key to remove these [dark shackles] and I shall reward thee."); + elseif(e.message:findi("proof of allegiance")) then + e.self:Say("When I speak of proof of allegiance, I speak of proof you were sent by one of the [Silent Watch]."); + elseif(e.message:findi("dark shackles")) then + e.self:Say("My Teir'Dal captors have placed magical shackles upon me. The shackles prevent me from using my magic to transport myself home nor do they allow me to venture far from Lake Rathetear. I will require special shackle keys from Highkeep."); + elseif(e.message:findi("silent watch")) then + e.self:Say("The Silent Watch are the Royal Family's guardians. If you run into one, maybe he'll teach you a lesson or two!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I will require both the shackle key for the dark shackles and some proof of allegiance."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20008, item2 = 13108},1,text)) then + e.self:Say("You have saved me!! " .. e.other:GetCleanName() .. ", you are my hero!! Take my amulet and the royal suite key to Tearon in Highkeep. Help put his soul at ease and he shall reward you. Now I must go.. I am sorry I cannot transport you as well, but my powers are weak from much swimming. Farewell, brave soul!"); + e.other:Faction(e.self, 226, 75); -- Faction: Clerics of Tunare + e.other:Faction(e.self, 279, 75); -- Faction: King Tearis Thex + e.other:Faction(e.self, 5002, 75); -- Faction: Anti-mage + e.other:QuestReward(e.self,0,0,0,0,13109,500);-- Item: Royal Amulet of Thex + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/lakerathe/Punga.lua b/lakerathe/Punga.lua new file mode 100644 index 0000000..7560bbf --- /dev/null +++ b/lakerathe/Punga.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Gimme duffynitey rocks! Me grindem GUUD!!!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10073})) then --Dufrenite + e.self:Say("GRIND! GRIND! GRIND!"); + e.other:QuestReward(e.self,0,0,0,0,19051); --Ground Dufrenite + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/lakerathe/Rondel.lua b/lakerathe/Rondel.lua new file mode 100644 index 0000000..1cd0d7a --- /dev/null +++ b/lakerathe/Rondel.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello. stranger. Are you an adventurer?"); + elseif(e.message:findi("i am an adventurer")) then + e.self:Say("I wish I could go off and explore the world like you. I will spend my days as a fisherman here. I am sure. Nothing ever happens around here though. Well. except for the other day.."); + elseif(e.message:findi("what other day")) then + e.self:Say("I was spearfishing near the aviak construction and something amazing happened. I was in the middle of spearing a fish when something at the bottom of the lake began to glow red. I could swear I heard the sounds of a dragon. I did not stick around to find out what it was."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakerathe/Rykas.lua b/lakerathe/Rykas.lua new file mode 100644 index 0000000..bbf8861 --- /dev/null +++ b/lakerathe/Rykas.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("'Greetings, " .. e.other:GetCleanName() .. ". I am Rykas, chronicler of knowledge. I have journeyed all throughout the lands of Norrath, and I have learned many tales of adventure from people I have encountered during my travels. I have learned of legends known and unknown to most mortals. Are you in search of knowledge?"); + elseif(e.message:findi("knowledge")) then + e.self:Say("A small task is needed if you wish to learn more. Do you wish to learn the tale of Magi'kot?"); + elseif(e.message:findi("Magi'kot")) then + e.self:Say("If you seek to learn the tale of Trilith Magi'kot, your journey shall begin in the Commonlands. Search for Jahsohn Aksot and give him this token. He will share some of the knowledge I have bestowed upon him, and point you further down your path to Mastery. Bring me the Words of Mastery, Power of the Elements, and the Words of Magi'kot....Then you shall learn more about the power of the orb."); + e.other:SummonCursorItem(28035); -- Item: Token of Mastery + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28003, item2 = 28004, item3 = 28031})) then + e.self:Say("I see that you have completed the quest I laid before you. That speaks well of your dedication, yet you do not realize your journey has just begun. Study this tome."); + e.other:QuestReward(e.self,0,0,0,0,18958,2000); -- Item: Power of the Orb + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/lakerathe/Shmendrik_Lavawalker.lua b/lakerathe/Shmendrik_Lavawalker.lua new file mode 100644 index 0000000..a5160d8 --- /dev/null +++ b/lakerathe/Shmendrik_Lavawalker.lua @@ -0,0 +1,37 @@ +-- EPIC CLERIC + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, good " .. e.other:GetCleanName() .. "!! Be wary near the waters of Lake Rathe! The Riptide goblin king, Lord Bergurgle, has been commanding his minions to murder and rob all who come near it! I am here seeking his death but I am afraid I am no match for all of his subjects. I shall reward you greatly for the death of Lord Bergurgle. I simply ask that you bring me his crown as proof."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28044})) then -- 28044 : Lord Bergurgle's Crown + e.self:Emote("shoves the crown into a scorch marked leather satchel and cackles uncontrollably as madness twists his features and flames dance in his eyes. 'You, " .. e.other:GetCleanName() .. ", have reduced the Riptides into chaos! Without a king to keep them in control they will ravage the settlements surrounding this lake! After the slaughter I shall return and easily burn the remainder of the villages and fishing shanties to the ground! None shall escape the fires of the Tyrant!!'"); + e.other:QuestReward(e.self,0,0,0,0,28045); -- Oil of Fennin Ro + eq.unique_spawn(51138,32,0,160,3630.3,51,192.4); -- NPC: #Natasha_Whitewater + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("I'll slay you like I slaughtered your fellow missionaries! The Triumvirate can not decide the fate of a follower of the Tyrant!!"); + eq.signal(51138,1,2000); -- NPC: #Natasha_Whitewater + elseif(e.signal == 2) then + eq.signal(51138,2,2000); -- NPC: #Natasha_Whitewater + end +end + +function event_death_complete(e) + eq.spawn2(51145,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end + +-- Zone:lakerathe NPC:51012 -- Shmendrik_Lavawalker +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakerathe/Taia_Lyfol.lua b/lakerathe/Taia_Lyfol.lua new file mode 100644 index 0000000..a7c3fef --- /dev/null +++ b/lakerathe/Taia_Lyfol.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello. " .. e.other:GetCleanName() .. ". What brings you to the watery lands of Rathtear? Do you seek [enlightenment]?'"); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakerathe/Trug.lua b/lakerathe/Trug.lua new file mode 100644 index 0000000..8d271d5 --- /dev/null +++ b/lakerathe/Trug.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Gimme duffynitey rocks! Me powdrem GUUD!!!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10073})) then --Dufrenite + e.self:Say("POW! POW! POW!"); + e.other:QuestReward(e.self,0,0,0,0,19052); --Powdered Dufrenite + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/lakerathe/Turgan.lua b/lakerathe/Turgan.lua new file mode 100644 index 0000000..934aaa9 --- /dev/null +++ b/lakerathe/Turgan.lua @@ -0,0 +1,19 @@ +-- Part of the quest for Boots of the Reliant + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail! What brings you here?"); + elseif(e.message:findi("icon of the reliant")) then + e.self:Say("Where did you hear... I don't know what you are talking about. Begone! Back to Kithicor with you!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18145})) then --Turgan's Note + e.self:Say("I am that Turgan, but I am no longer worthy of this title. Take this in hopes that you become a better steward than I was."); + e.other:QuestReward(e.self,{itemid = 19002}); --Icon of the Reliant + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/lakerathe/Vrynn.lua b/lakerathe/Vrynn.lua new file mode 100644 index 0000000..0ba3f12 --- /dev/null +++ b/lakerathe/Vrynn.lua @@ -0,0 +1,35 @@ +-- Quest for Vrynn in Lakerathe - Shaman Totemic Armor (low 30's armor) + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, spiritwalker. I am called Vrynn. If you have banded armor, my wife Kyralynn and I can form it into a new shaman armor using this totem and some reagents for the ritual. I make armor from banded [boots], [gauntlets], [sleeves], and [leggings]."); + elseif(e.message:findi("boots")) then + e.self:Say("The boots require banded boots, 1 dufrenite, an orc chief's tongue from Lesser Faydark, and terror spines from a tentacle terror in Najena."); + elseif(e.message:findi("gauntlets")) then + e.self:Say("The gauntlets require banded gauntlets, 1 crushed dufrenite, a mammoth rib bone, and a griffenne downfeather."); + elseif(e.message:findi("sleeves")) then + e.self:Say("The sleeves require banded sleeves, 1 ground dufrenite, ghoul carrion from Estate of Unrest, and charger hoof chips."); + elseif(e.message:findi("leggings")) then + e.self:Say("The leggings require banded leggings, 1 powdered dufrenite, a Permafrost snowball from a goblin wizard, and bone barbs from Estate of Unrest."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Impressive, do you have the rest?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3064, item2 = 10073, item3 = 19039, item4 = 19041},1,text)) then + e.self:Say("Wear this well, " .. e.other:GetCleanName() .. "!"); + e.other:QuestReward(e.self,0,0,0,0,4941,200); -- Item: Totemic Boots + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3062, item2 = 19050, item3 = 19043, item4 = 19046},1,text)) then + e.self:Say("Wear this well, " .. e.other:GetCleanName() .. "!"); + e.other:QuestReward(e.self,0,0,0,0,4942,200); -- Item: Totemic Gauntlets + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3060, item2 = 19051, item3 = 19038, item4 = 19045},1,text)) then + e.self:Say("Wear this well, " .. e.other:GetCleanName() .. "!"); + e.other:QuestReward(e.self,0,0,0,0,4943,200); -- Item: Totemic Vambraces + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3063, item2 = 19052, item3 = 19034, item4 = 19037},1,text)) then + e.self:Say("Wear this well, " .. e.other:GetCleanName() .. "!"); + e.other:QuestReward(e.self,0,0,0,0,4944,200); -- Item: Totemic Greaves + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/lakerathe/a_bone_golem.lua b/lakerathe/a_bone_golem.lua new file mode 100644 index 0000000..2b59706 --- /dev/null +++ b/lakerathe/a_bone_golem.lua @@ -0,0 +1,12 @@ +-- Necromancer Epic NPC -- a_bone_golem + + +function event_death_complete(e) + eq.spawn2(51152,0,0,-1518.9,347.6,53,98.9):AddToHateList(e.other,1); +end + +--Quest by: Solid11 Zone:lakerathe ID:51153 -- a_bone_golem +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakerathe/a_failed_apprentice.lua b/lakerathe/a_failed_apprentice.lua new file mode 100644 index 0000000..8b5d4a0 --- /dev/null +++ b/lakerathe/a_failed_apprentice.lua @@ -0,0 +1,11 @@ +-- Necromancer Epic NPC -- a_failed_apprentice + +function event_death_complete(e) + eq.spawn2(51144,0,0,-1518.9,347.6,53,31):AddToHateList(e.other,1); +end + +--Quest by: Solid11 Zone:lakerathe ID:51152 -- a_failed_apprentice +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lakerathe/a_royal_fish.lua b/lakerathe/a_royal_fish.lua new file mode 100644 index 0000000..e26080c --- /dev/null +++ b/lakerathe/a_royal_fish.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("flutters about and seems to be staring back at you as if reading and understanding your thoughts!!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12271})) then + e.self:Emote("gladly gulps up your odd mixture and transforms into..!!"); + eq.unique_spawn(51176,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + e.other:Ding(); + e.other:Faction(e.self, 226, 10); -- Faction: Clerics of Tunare + e.other:Faction(e.self, 279, 10); -- Faction: King Tearis Thex + e.other:Faction(e.self, 5002, 10); -- Faction: Anti-mage + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/lavastorm/#Ruathey.lua b/lavastorm/#Ruathey.lua new file mode 100644 index 0000000..f4e9e25 --- /dev/null +++ b/lavastorm/#Ruathey.lua @@ -0,0 +1,27 @@ +function event_say(e) + local qglobals = eq.get_qglobals(e.self,e.other); + + if(e.message:findi("hail")) then + e.self:Say("Hello " .. e.other:GetCleanName() .. ""); + end + if(qglobals["Ruathey"] ~= nil) then + if(e.message:findi("sword")) then + e.self:Say("I've heard stories about a holy sword. There are many rumored to be hidden all throughout the world, yet only a few have actually been found. Amstaf had one of these swords. It is known for its ability to dismiss the undead. Perhaps by having this sword it'll bring you closer to finding your friend. Gather a ghoul's heart, Amstaf's Scroll, the Blade of Nobility, a noblemans hilt and place them in this [bag]."); + elseif(e.message:findi("bag")) then + e.self:Say("Take this bag and gather the items I've mentioned. I've been told that the Ghoul's Heart can be found in the estate of the undead, while the scroll can be found in the Keep not far from the Karanas. One of the others are rumored to be found near the dwarven city among the goblins. While the last should be found in the caverns of Najena."); + e.other:SummonCursorItem(17878); -- Noblemans bag + eq.delete_global("Ruathey"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2417})) then + e.self:Say("I see that you've spoken to Llara. She too came to me looking for Amstaf. Though she wasn't able to find her friend, she was able to recover his [sword]."); + eq.set_global("Ruathey","ghoul",0,"D30"); + e.other:QuestReward(e.self,0,0,0,0,0,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/lavastorm/Eejag.lua b/lavastorm/Eejag.lua new file mode 100644 index 0000000..5dfdf29 --- /dev/null +++ b/lavastorm/Eejag.lua @@ -0,0 +1,13 @@ +function event_spawn(e) + eq.set_proximity(e.self:GetX()-50,e.self:GetX()+50,e.self:GetY()-50,e.self:GetY()+50); + e.self:Shout("What imbecile dares challenge a Celestial Fist?! Do you even know who you are challenging? HA! You are nothing but an insect! I will enjoy crushing you, I have not charred the flesh of an idiot in decades! If you truly wish to fight me, the battle shall be held in my own element. Come, challenger, come down to the pits of flowing fire."); +end + +function event_enter(e) + if(e.other:Class() == "Monk") then + -- Monk Epic 1.0 + eq.attack(e.other:GetName()); + end +end + +-- End of File \ No newline at end of file diff --git a/lavastorm/Tizina.lua b/lavastorm/Tizina.lua new file mode 100644 index 0000000..2cca320 --- /dev/null +++ b/lavastorm/Tizina.lua @@ -0,0 +1,12 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {gold = 50})) then + -- Confirmed Live Experience + e.self:Say("Since you have given me gold, I will give you gloves. For more magic gloves, give a bloodstone to Tarn Visilin in the High Keep library."); + e.other:QuestReward(e.self,0,0,0,0,2354,1); -- Item: Enchanted Gloves + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Quest by mystic414 \ No newline at end of file diff --git a/lavastorm/a_fire_sprite.lua b/lavastorm/a_fire_sprite.lua new file mode 100644 index 0000000..ce2074c --- /dev/null +++ b/lavastorm/a_fire_sprite.lua @@ -0,0 +1,8 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("ignores you."); + elseif(e.message:findi("challenge eejag")) then + eq.unique_spawn(27119,0,0,298,1037,-60,0); -- NPC: Eejag + eq.depop_withtimer(); + end +end diff --git a/lavastorm/goblin_runner.lua b/lavastorm/goblin_runner.lua new file mode 100644 index 0000000..4e9a548 --- /dev/null +++ b/lavastorm/goblin_runner.lua @@ -0,0 +1,3 @@ +function event_spawn(e) + e.self:SetRunning(true); +end diff --git a/lavastorm/goblin_scout.lua b/lavastorm/goblin_scout.lua new file mode 100644 index 0000000..4e9a548 --- /dev/null +++ b/lavastorm/goblin_scout.lua @@ -0,0 +1,3 @@ +function event_spawn(e) + e.self:SetRunning(true); +end diff --git a/letalis/#A_Lesser_Spire_Spirit.lua b/letalis/#A_Lesser_Spire_Spirit.lua new file mode 100644 index 0000000..2ac4a53 --- /dev/null +++ b/letalis/#A_Lesser_Spire_Spirit.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",120000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end diff --git a/letalis/A_Lesser_Spire_Spirit_.lua b/letalis/A_Lesser_Spire_Spirit_.lua new file mode 100644 index 0000000..41ce627 --- /dev/null +++ b/letalis/A_Lesser_Spire_Spirit_.lua @@ -0,0 +1,12 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("calesces from the ground!"); + eq.spawn2(169002,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + eq.depop_with_timer(); +end diff --git a/letalis/A_ShikNar_Egg_Pod.lua b/letalis/A_ShikNar_Egg_Pod.lua new file mode 100644 index 0000000..247fc7f --- /dev/null +++ b/letalis/A_ShikNar_Egg_Pod.lua @@ -0,0 +1,22 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("cracks open, releasing hungry hatchlings!"); + rand = math.random(100); + if(rand < 30) then + eq.spawn2(169001,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + elseif(rand < 60) then + eq.spawn2(169001,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + eq.spawn2(169001,0,0,e.self:GetX() + 10,e.self:GetY() + 10,e.self:GetZ(),0); + else + eq.spawn2(169001,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + eq.spawn2(169001,0,0,e.self:GetX() + 10,e.self:GetY() + 10,e.self:GetZ(),0); + eq.spawn2(169001,0,0,e.self:GetX() - 10,e.self:GetY() - 10,e.self:GetZ(),0); + end + eq.depop_with_timer(); +end diff --git a/letalis/A_thin_wind.lua b/letalis/A_thin_wind.lua new file mode 100644 index 0000000..767e759 --- /dev/null +++ b/letalis/A_thin_wind.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("wails through the canyons."); + eq.depop_with_timer(); +end diff --git a/letalis/Something.lua b/letalis/Something.lua new file mode 100644 index 0000000..d72fb92 --- /dev/null +++ b/letalis/Something.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("seems unnatural about this area, though you can't quite say what gives you that impression."); + eq.depop_with_timer(); +end diff --git a/letalis/The_air.lua b/letalis/The_air.lua new file mode 100644 index 0000000..4ffcc78 --- /dev/null +++ b/letalis/The_air.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("is thin here, making it difficult to breath."); + eq.depop_with_timer(); +end diff --git a/letalis/The_area.lua b/letalis/The_area.lua new file mode 100644 index 0000000..6247fd3 --- /dev/null +++ b/letalis/The_area.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("is much warmer than you would expect."); + eq.depop_with_timer(); +end diff --git a/letalis/The_ceaseless.lua b/letalis/The_ceaseless.lua new file mode 100644 index 0000000..ffe77f5 --- /dev/null +++ b/letalis/The_ceaseless.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("glare of the sun makes you shield your eyes."); + eq.depop_with_timer(); +end diff --git a/letalis/The_clatter.lua b/letalis/The_clatter.lua new file mode 100644 index 0000000..d1b0bd8 --- /dev/null +++ b/letalis/The_clatter.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("of loose gravel attracts your attention. Is something up there?"); + eq.depop_with_timer(); +end diff --git a/letalis/The_deep.lua b/letalis/The_deep.lua new file mode 100644 index 0000000..ec2061a --- /dev/null +++ b/letalis/The_deep.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("gouges in the land must have been waterways many years ago."); + eq.depop_with_timer(); +end diff --git a/letalis/The_landscape.lua b/letalis/The_landscape.lua new file mode 100644 index 0000000..24c4736 --- /dev/null +++ b/letalis/The_landscape.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("is a contrast between bright light, and looming shadows cast by the lowering peaks."); + eq.depop_with_timer(); +end diff --git a/letalis/The_looming.lua b/letalis/The_looming.lua new file mode 100644 index 0000000..4fcf1fb --- /dev/null +++ b/letalis/The_looming.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("peaks remind you of fingers. Fingers clawing out of a grave mound."); + eq.depop_with_timer(); +end diff --git a/letalis/The_sky.lua b/letalis/The_sky.lua new file mode 100644 index 0000000..235f599 --- /dev/null +++ b/letalis/The_sky.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("seems unusually dark to the north."); + eq.depop_with_timer(); +end diff --git a/lfaydark/#Scout_Rahjiq.lua b/lfaydark/#Scout_Rahjiq.lua new file mode 100644 index 0000000..f394dcb --- /dev/null +++ b/lfaydark/#Scout_Rahjiq.lua @@ -0,0 +1,20 @@ +function event_spawn(e) + eq.set_timer("depop",3600000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9034})) then + e.self:Emote("wraps the totem and returns it with the seal you gave him and says, 'That spirit was very powerful. I'm glad that you were able to release it. Please keep this totem safe until you can return to Shar Vahl. Once you collect all of the totems, seal the box and return it to your master. May the spirits watch over you!'"); + e.other:QuestReward(e.self,{items = {9031,9035},exp = 5000}); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/lfaydark/#The_Spirit_of_Malevolence.lua b/lfaydark/#The_Spirit_of_Malevolence.lua new file mode 100644 index 0000000..5f6b52c --- /dev/null +++ b/lfaydark/#The_Spirit_of_Malevolence.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + eq.set_timer("roar",1000); +end + +function event_timer(e) + if(e.timer == "roar") then + eq.stop_timer("roar"); + eq.set_timer("depop",1800000); + eq.zone_emote(0,"The air before the large monolith grows solid, as misty tendrils wrap together in the shape of a large wolf."); + elseif(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_death_complete(e) + eq.unique_spawn(57006,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end diff --git a/lfaydark/Bryn_Fynndel.lua b/lfaydark/Bryn_Fynndel.lua new file mode 100644 index 0000000..34b87ce --- /dev/null +++ b/lfaydark/Bryn_Fynndel.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("morin sent me")) then + e.self:Say("Morin Shadowbane, the great ranger, sent you to assist us? A strong ranger you must be if he has sent you personally. There is a great evil stalking the land, and it has spread its tendrils into Kithicor Forest. We believe the [shadowed men] are involved with this, somehow."); + elseif(e.message:findi("shadowed men")) then + e.self:Say("The shadowed men have recently begun to appear, with vile purposes unknown to us. Their leader wanders these woods with a contingent of guards. Bring us his code book, and we may learn more of their plans."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20636})) then -- Shadowed Code Book + e.self:Say("Excellent work, " .. e.other:GetCleanName() .. "! According to these codes, it seems the ghoul boss has been alerted to our probes now that his messenger is missing. We have a scout, Glidara Myllar, who may be in danger. Give her this note as soon as you can, she is in grave danger!"); + e.other:QuestReward(e.self,0,0,0,0,20635,1500); -- Warning to Glidara + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20639})) then --Orders for Bryn + e.self:Say("The vile ghoul boss has been defeated! My new orders state to arm you with our finest weaponry. Take this, the mighty orc impaler. Safe journeys, brave adventurer."); + e.other:QuestReward(e.self,0,0,0,0,7330,15000); -- Orc Impaler + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/lfaydark/Dragoon_Szorn.lua b/lfaydark/Dragoon_Szorn.lua new file mode 100644 index 0000000..30a8ca9 --- /dev/null +++ b/lfaydark/Dragoon_Szorn.lua @@ -0,0 +1,29 @@ +--Dragoon_Szorn.pl +--Part of Innoruuk Regent +--Some of this was done already (all the important bits, really). +--Cleaned up what was there and added a response to quest text -Kilelen + + +function event_say(e) + if(e.message:findi("missing shipment")) then + e.self:Say("Seek out Ennixy and tell her [hate be my guide]. She typically works from her homeland in the steamfont mountains."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19030})) then--Crate of Teir`Dal Provisions + e.self:Say("Finally!! We have been in dire need of these supplies for quite some time, " .. e.other:GetCleanName() .. "! Here is the receipt for the shipment. The last shipment never made it here and there is an item of great importance stored in the lost crate. Before you return to Neriak, your services are needed to retrieve our [missing shipment]. I command your obedience as is my right as a dragoon of Naythox Thex's personal regime."); + e.other:QuestReward(e.self,0,0,0,1,19029,500); --Receipt for Provisions Crate + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19028})) then + e.self:Say("What is this!! The items of importance have been removed from the crate!! This is most unfortunate. However, you have done well in your service to the Teir'Dal Empire. Take this voucher of services rendered under the command of Naythox Thex back to Ithvol along with the head of that slain Fier'Dal, the receipt for the provisions, and your disciple symbol of Innoruuk."); + e.other:QuestReward(e.self,0,0,0,1,12499,500); --Voucher of Service to Naythox + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:lfaydark ID:57063 -- Dragoon_Szorn +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/lfaydark/Gearheart.lua b/lfaydark/Gearheart.lua new file mode 100644 index 0000000..5f23c7f --- /dev/null +++ b/lfaydark/Gearheart.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("princess")) then + e.self:Say("Wizz... Clikk... The Princess Joleena holds court here under the sun's light. Move along."); + end +end diff --git a/lfaydark/Glidara_Myllar.lua b/lfaydark/Glidara_Myllar.lua new file mode 100644 index 0000000..b7b5ca5 --- /dev/null +++ b/lfaydark/Glidara_Myllar.lua @@ -0,0 +1,12 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20635})) then -- Warning to Glidara + e.self:Say("So the ghoul boss knows of our inquiries? I fear that villain not! In fact, we must find out how much information he has received. Invade the undead ruins nearby and retrieve his log. Take this ring... it will protect you from his spells. Return my ring with his log book and we will hopefully crack the mystery of Kithicor."); + e.other:QuestReward(e.self,0,0,0,0,20640,1000); -- Glidara's Ring + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20640,item2 = 20637})) then -- Glidara's Ring / Ghoul Boss'Log Book + e.self:Say("Daring work, " .. e.other:GetCleanName() .. ". I've imprinted my seal on this log so that only Morin may open it. Deliver the log to Morin."); + e.other:QuestReward(e.self,0,0,0,0,20638,1000); -- Sealed Ghoul Boss' Log Book + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/lfaydark/Grynnaf_Einoom.lua b/lfaydark/Grynnaf_Einoom.lua new file mode 100644 index 0000000..f3ec97b --- /dev/null +++ b/lfaydark/Grynnaf_Einoom.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks at " .. e.other:GetCleanName() .. " and wonders if he is looking for the Scalekeeper?"); + elseif(e.message:findi("scalekeeper")) then + e.self:Say("Ahh...Ye be lookin' for Nortlav then. Nortlav is a strong fella. Ye dunna want to mess with the likes of him. He's known as a dragonslayer. I heard that he keeps the scales of the dragons he's slain. Yer not impressed eh? All the dragons he's killed have died by the blade of a [rusty weapon]."); + elseif(e.message:findi("rusty weapon")) then + e.self:Say("Aye. I dunno know why he does what he does. But every dragon he's killed died by the likes of a rusty weapon. I dunno where he is now. but I heard he can be found in the depths of Norrath. surrounded by darkness."); + end +end + +--END of FILE Zone:lfaydark ID:57080 -- Grynnaf_Einoom +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/lfaydark/Khaliz_the_Mistrunner.lua b/lfaydark/Khaliz_the_Mistrunner.lua new file mode 100644 index 0000000..feb4589 --- /dev/null +++ b/lfaydark/Khaliz_the_Mistrunner.lua @@ -0,0 +1,9 @@ +function event_spawn(e) + eq.set_timer("depop",20000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end diff --git a/lfaydark/Larik_Z-Vole.lua b/lfaydark/Larik_Z-Vole.lua new file mode 100644 index 0000000..7673f94 --- /dev/null +++ b/lfaydark/Larik_Z-Vole.lua @@ -0,0 +1,13 @@ +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_death_complete(e) + eq.unique_spawn(57000,37,0,-1150,1930,0); --a dark elf courier +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/lfaydark/Princess_Joleena.lua b/lfaydark/Princess_Joleena.lua new file mode 100644 index 0000000..c5327fd --- /dev/null +++ b/lfaydark/Princess_Joleena.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am the Fairie Princess, Joleena. You may stay amongst my people, but do not nibble from our homes."); + elseif(e.message:findi("fairie gold dust")) then + e.self:Say("You wish the magical Fairie Gold Dust? Hmmph!! I refuse to offer it to any of the giants of Faydwer. How can I trust any of you. You have crept up upon my me and snatched one of my wings from my back. There will be no Fairie Gold Dust until my wing has been returned to me. You may not be the stalker [who snatched my wing], but all you giants are similar. Prove me wrong and return my wing."); + elseif(e.message:findi("wing")) then + e.self:Say("I did not see the swift giant, I was blinded by the sun glaring off his balding head. I do remember the smell of rust and refuse. How he got past my Clockwork Guardian, Gearheart, is a mystery to us all."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12339})) then + e.self:Say("My wing!! I am so happy!! Thank you " .. e.other:GetCleanName() .. ". You have proved that I can trust giants once again. Please take a Pouch of Fairie Gold Dust. Its magical properties are desired by all."); + e.other:QuestReward(e.self,0,0,0,0,12333,1500); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/lfaydark/Scout_Rahjiq.lua b/lfaydark/Scout_Rahjiq.lua new file mode 100644 index 0000000..abeb17c --- /dev/null +++ b/lfaydark/Scout_Rahjiq.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It is a pleasure to meet you, but I do not have time to speak. I am waiting on official word from Shar Vahl. If you have been sent to assist me, please show me the Official Seal of the Khati Sha at this time. If you are not such a person, please carry on with your business and leave me to tend to mine."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9031})) then + e.self:Say("Keep your head down, mate! The spirit that you have come for is very close. I have spotted it several times today. It keeps appearing near that odd structure just over the hill. Be careful not to attract the attention of those invisible creatures that roam near the structure. Just release the spirit and return the totem to me. I'll prepare the totem for placement in the container that you were given."); + eq.spawn2(57119,0,0,-1632,-349,11,0); + eq.unique_spawn(57005,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/lfaydark/Trudo_Frugrin.lua b/lfaydark/Trudo_Frugrin.lua new file mode 100644 index 0000000..3485e7b --- /dev/null +++ b/lfaydark/Trudo_Frugrin.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What. what?!! I am quite busy here. I have studies to complete and charts to make!"); + elseif(e.message:findi("lens")) then + e.self:Say("Yes, of course. Here you are. Now be off."); + e.other:QuestReward(e.self,0,0,0,0,13275); --telescope lens [trudo's lens] + end +end + +--END of FILE Zone:lfaydark ID:57059 -- Trudo_Frugrin +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/lfaydark/a_dark_elf_courier.lua b/lfaydark/a_dark_elf_courier.lua new file mode 100644 index 0000000..c5152bb --- /dev/null +++ b/lfaydark/a_dark_elf_courier.lua @@ -0,0 +1,13 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/lfaydark/a_pixie_trickster.lua b/lfaydark/a_pixie_trickster.lua new file mode 100644 index 0000000..78f2a35 --- /dev/null +++ b/lfaydark/a_pixie_trickster.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks up something from the ground."); + end + end +end diff --git a/lfaydark/pained_unicorn.lua b/lfaydark/pained_unicorn.lua new file mode 100644 index 0000000..183dcd7 --- /dev/null +++ b/lfaydark/pained_unicorn.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("snorts and stamps at the ground. An unusual angry glimmer enters the eyes of what should be one of Tunare's most peaceful creatures. Its coat seems slickened and filthy in places."); + elseif(e.message:findi("corruption")) then + e.self:Emote("tosses its head back, drool falling from its mouth. 'The priests of the sick channel filth and sickness into the lands. Too late did we notice to stop them. You can though. Here, in the ocean, and the underwater city of the old. Go to those places and find the corruptions. Bring them to me.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20691,item2 = 20692,item3 = 20693})) then + e.self:Say("Take my horn, symbol of Faydwer, now cleansed, to the gnome priest. It is anathema to him, to the corrupt forces in his soul, channeled into him by his dark god and will release the grip of corruption on the land. He is close, I can feel it."); + e.other:QuestReward(e.self,0,0,0,0,20694,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/lfaydark/tainted_brownie.lua b/lfaydark/tainted_brownie.lua new file mode 100644 index 0000000..b423b79 --- /dev/null +++ b/lfaydark/tainted_brownie.lua @@ -0,0 +1,8 @@ +function event_death_complete(e) + eq.spawn2(57117,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/lua_modules/client_ext.lua b/lua_modules/client_ext.lua new file mode 100644 index 0000000..60d547d --- /dev/null +++ b/lua_modules/client_ext.lua @@ -0,0 +1,228 @@ +function Client:Faction(npc, faction_id, faction_value, temp) + temp = temp or 0; + + if(npc:Charmed()) then + return; + end + + self:SetFactionLevel2(self:CharacterID(), faction_id, faction_value, temp); +end + +function Client:GiveCash(copper, silver, gold, platinum) + copper = copper or 0; + silver = silver or 0; + gold = gold or 0; + platinum = platinum or 0; + + if(copper == 0 and silver == 0 and gold == 0 and platinum == 0) then + return; + end + + self:AddMoneyToPP(copper, silver, gold, platinum, true); + + local tmp = "You receive "; + local first = true; + if(platinum > 0) then + tmp = tmp .. tostring(platinum) .. " platinum"; + first = false; + end + + if(gold > 0) then + if(first) then + first = false; + else + tmp = tmp .. ", "; + end + + tmp = tmp .. tostring(gold) .. " gold"; + end + + if(silver > 0) then + if(first) then + first = false; + else + tmp = tmp .. ", "; + end + + tmp = tmp .. tostring(silver) .. " silver"; + end + + if(copper > 0) then + if(first) then + first = false; + else + tmp = tmp .. ", "; + end + + tmp = tmp .. tostring(copper) .. " copper"; + end + + tmp = tmp .. " pieces."; + + self:Message(260, tmp); +end + +function Client:Ding() + self:SendSound(141); +end + +function Client:GetFaction(npc) + return self:GetFactionLevel(self:CharacterID(), self:GetRace(), self:GetClass(), self:GetDeity(), npc:GetPrimaryFaction(), npc); +end + +function Client:Class() + local class = self:GetClass(); + + do + local c = { + [1] = "Warrior", + [2] = "Cleric", + [3] = "Paladin", + [4] = "Ranger", + [5] = "Shadowknight", + [6] = "Druid", + [7] = "Monk", + [8] = "Bard", + [9] = "Rogue", + [10] = "Shaman", + [11] = "Necromancer", + [12] = "Wizard", + [13] = "Magician", + [14] = "Enchanter", + [15] = "Beastlord", + [16] = "Berserker" + } + + return c[class]; + end +end + +function Client:Race() + local race = self:GetRace(); + + do + local r = { + [1] = "Human", + [2] = "Barbarian", + [3] = "Erudite", + [4] = "Wood Elf", + [5] = "High Elf", + [6] = "Dark Elf", + [7] = "Half Elf", + [8] = "Dwarf", + [9] = "Troll", + [10] = "Ogre", + [11] = "Halfling", + [12] = "Gnome", + [14] = "Werewolf", + [74] = "Froglok", + [75] = "Elemental", + [108] = "Eye of Zomm", + [120] = "Wolf Elemental", + [128] = "Iksar", + [130] = "Vah Shir", + [161] = "Iksar Skeleton", + [330] = "Froglok", + [367] = "Skeleton", + [522] = "Drakkin", + ['?'] = "Unknown" + } + + return r[race]; + end +end + +function Client:HasItem(itemid) + + --main inventory and cursor + for i = 0, 30, 1 do + local thisitem = self:GetItemIDAt(i); + if(thisitem == itemid) then + return true; + end + end + + --cursor queue + if (self:FindOnCursor(itemid)) then + return true; + end + + --main/cursor containers + for i = 250, 339, 1 do + local thisitem = self:GetItemIDAt(i); + if(thisitem == itemid) then + return true; + end + end + + --bank + for i = 2000, 2007, 1 do + local thisitem = self:GetItemIDAt(i); + if(thisitem == itemid) then + return true; + end + end + + --bank containers + for i = 2030, 2109, 1 do + local thisitem = self:GetItemIDAt(i); + if(thisitem == itemid) then + return true; + end + end + + --shared bank + for i = 2531, 2550, 1 do + local thisitem = self:GetItemIDAt(i); + if(thisitem == itemid) then + return true; + end + end + + --corpse + --local bodycount = self:GetCorpseCount(); + + --if(bodycount > 0) then + -- for b = 0, bodycount, 1 do + -- local bodyid = self:GetCorpseID(b); + -- for i = 0, 30, 1 do + -- local thisitem = self:GetCorpseItemAt(bodyid, i); + -- if(thisitem == itemid) then + -- return true; + -- end + -- end + -- for i = 250, 339, 1 do + -- local thisitem = self:GetCorpseItemAt(bodyid, i); + -- if(thisitem == itemid) then + -- return true; + -- end + -- end + -- end + --end + return false; +end + +function Client:ForeachHateList(func, cond) + cond = cond or function(ent, hate, damage, frenzy) return true end; + local lst = self:GetHateList(); + for ent in lst.entries do + local cv = cond(ent.ent, ent.hate, ent.damage, ent.frenzy); + if(cv) then + func(ent.ent, ent.hate, ent.damage, ent.frenzy); + end + end +end + +function Client:CountHateList(cond) + cond = cond or function(ent, hate, damage, frenzy) return true end; + local lst = self:GetHateList(); + local ret = 0; + for ent in lst.entries do + local cv = cond(ent.ent, ent.hate, ent.damage, ent.frenzy); + if(cv) then + ret = ret + 1; + end + end + + return ret; +end diff --git a/lua_modules/command.lua b/lua_modules/command.lua new file mode 100644 index 0000000..4016ff3 --- /dev/null +++ b/lua_modules/command.lua @@ -0,0 +1,27 @@ +function command_endurance(e) + local tar = e.self:GetTarget(); + if(tar.null) then + tar = e.self; + end + + tar:SetEndurance(tar:GetMaxEndurance()); +end + +local commands = { }; +commands["endurance"] = { 50, command_endurance }; + +function eq.DispatchCommands(e) + local command = commands[e.command]; + if(command) then + local access = command[1]; + if(access > e.self:Admin()) then + e.self:Message(13, "Access level not high enough."); + return 1; + end + + local func = command[2]; + func(e); + return 1; + end + return 0; +end \ No newline at end of file diff --git a/lua_modules/directional.lua b/lua_modules/directional.lua new file mode 100644 index 0000000..cfd4c67 --- /dev/null +++ b/lua_modules/directional.lua @@ -0,0 +1,152 @@ +function Mob:DirectionalAreaEffectList(angle_start, angle_end, aoe_range, min_range, m_list) + + angle_start = angle_start + (self:GetHeading() * 360.0 / 256.0); + angle_end = angle_end + (self:GetHeading() * 360.0 / 256.0); + + while(angle_start > 360.0) do + angle_start = angle_start - 360.0; + end + + while(angle_end > 360.0) do + angle_end = angle_end - 360.0; + end + + local ret = { }; + for ent in m_list.entries do + if(ent:GetID() ~= self:GetID()) then + local x_diff = ent:GetX() - self:GetX(); + x_diff = x_diff * x_diff; + + local y_diff = ent:GetY() - self:GetY(); + y_diff = y_diff * y_diff; + + local z_diff = ent:GetZ() - self:GetZ(); + z_diff = z_diff * z_diff; + + if(((x_diff + y_diff) <= (aoe_range * aoe_range)) and (z_diff <= ((aoe_range * aoe_range) / 2))) then + local heading_to_target = self:CalculateHeadingToTarget(ent:GetX(), ent:GetY()) * 360.0 / 256.0; + while(heading_to_target < 0.0) do + heading_to_target = heading_to_target + 360.0; + end + + while(heading_to_target > 360.0) do + heading_to_target = heading_to_target - 360.0; + end + + if(angle_start > angle_end) then + if((heading_to_target >= angle_start and heading_to_target <= 360.0) or (heading_to_target >= 0.0 and heading_to_target <= angle_end)) then + table.insert(ret, ent); + end + else + if(heading_to_target >= angle_start and heading_to_target <= angle_end) then + table.insert(ret, ent); + end + end + end + end + end + + return ret; +end + +function NPC:DirectionalAreaEffectList(angle_start, angle_end, aoe_range, min_range, m_list) + + angle_start = angle_start + (self:GetHeading() * 360.0 / 256.0); + angle_end = angle_end + (self:GetHeading() * 360.0 / 256.0); + + while(angle_start > 360.0) do + angle_start = angle_start - 360.0; + end + + while(angle_end > 360.0) do + angle_end = angle_end - 360.0; + end + + local ret = { }; + for ent in m_list.entries do + if(ent:GetID() ~= self:GetID()) then + local x_diff = ent:GetX() - self:GetX(); + x_diff = x_diff * x_diff; + + local y_diff = ent:GetY() - self:GetY(); + y_diff = y_diff * y_diff; + + local z_diff = ent:GetZ() - self:GetZ(); + z_diff = z_diff * z_diff; + + if(((x_diff + y_diff) <= (aoe_range * aoe_range)) and (z_diff <= ((aoe_range * aoe_range) / 2))) then + local heading_to_target = self:CalculateHeadingToTarget(ent:GetX(), ent:GetY()) * 360.0 / 256.0; + while(heading_to_target < 0.0) do + heading_to_target = heading_to_target + 360.0; + end + + while(heading_to_target > 360.0) do + heading_to_target = heading_to_target - 360.0; + end + + if(angle_start > angle_end) then + if((heading_to_target >= angle_start and heading_to_target <= 360.0) or (heading_to_target >= 0.0 and heading_to_target <= angle_end)) then + table.insert(ret, ent); + end + else + if(heading_to_target >= angle_start and heading_to_target <= angle_end) then + table.insert(ret, ent); + end + end + end + end + end + + return ret; +end + +function Client:DirectionalAreaEffectList(angle_start, angle_end, aoe_range, min_range, m_list) + + angle_start = angle_start + (self:GetHeading() * 360.0 / 256.0); + angle_end = angle_end + (self:GetHeading() * 360.0 / 256.0); + + while(angle_start > 360.0) do + angle_start = angle_start - 360.0; + end + + while(angle_end > 360.0) do + angle_end = angle_end - 360.0; + end + + local ret = { }; + for ent in m_list.entries do + if(ent:GetID() ~= self:GetID()) then + local x_diff = ent:GetX() - self:GetX(); + x_diff = x_diff * x_diff; + + local y_diff = ent:GetY() - self:GetY(); + y_diff = y_diff * y_diff; + + local z_diff = ent:GetZ() - self:GetZ(); + z_diff = z_diff * z_diff; + + if(((x_diff + y_diff) <= (aoe_range * aoe_range)) and (z_diff <= ((aoe_range * aoe_range) / 2))) then + local heading_to_target = self:CalculateHeadingToTarget(ent:GetX(), ent:GetY()) * 360.0 / 256.0; + while(heading_to_target < 0.0) do + heading_to_target = heading_to_target + 360.0; + end + + while(heading_to_target > 360.0) do + heading_to_target = heading_to_target - 360.0; + end + + if(angle_start > angle_end) then + if((heading_to_target >= angle_start and heading_to_target <= 360.0) or (heading_to_target >= 0.0 and heading_to_target <= angle_end)) then + table.insert(ret, ent); + end + else + if(heading_to_target >= angle_start and heading_to_target <= angle_end) then + table.insert(ret, ent); + end + end + end + end + end + + return ret; +end \ No newline at end of file diff --git a/lua_modules/entity_list_ext.lua b/lua_modules/entity_list_ext.lua new file mode 100644 index 0000000..85ce8a1 --- /dev/null +++ b/lua_modules/entity_list_ext.lua @@ -0,0 +1,104 @@ +function EntityList:Foreach(func, cond, lst) + for ent in lst.entries do + local cv = cond(ent); + if(cv) then + func(ent); + end + end +end + +function EntityList:ForeachMob(func, cond) + cond = cond or function(ent) return true end; + local lst = self:GetMobList(); + self:Foreach(func, cond, lst); +end + +function EntityList:ForeachClient(func, cond) + cond = cond or function(ent) return true end; + local lst = self:GetClientList(); + self:Foreach(func, cond, lst); +end + +function EntityList:ForeachNPC(func, cond) + cond = cond or function(ent) return true end; + local lst = self:GetNPCList(); + self:Foreach(func, cond, lst); +end + +function EntityList:ForeachCorpse(func, cond) + cond = cond or function(ent) return true end; + local lst = self:GetCorpseList(); + self:Foreach(func, cond, lst); +end + +function EntityList:ForeachObject(func, cond) + cond = cond or function(ent) return true end; + local lst = self:GetObjectList(); + self:Foreach(func, cond, lst); +end + +function EntityList:ForeachDoor(func, cond) + cond = cond or function(ent) return true end; + local lst = self:GetDoorsList(); + self:Foreach(func, cond, lst); +end + +function EntityList:ForeachSpawn(func, cond) + cond = cond or function(ent) return true end; + local lst = self:GetSpawnList(); + self:Foreach(func, cond, lst); +end + +function EntityList:Count(cond, lst) + local ret = 0; + for ent in lst.entries do + local cv = cond(ent); + if(cv) then + ret = ret + 1; + end + end + + return ret; +end + +function EntityList:CountMob(cond) + cond = cond or function(ent) return true end; + local lst = self:GetMobList(); + return self:Count(cond, lst); +end + +function EntityList:CountClient(cond) + cond = cond or function(ent) return true end; + local lst = self:GetClientList(); + return self:Count(cond, lst); +end + +function EntityList:CountNPC(cond) + cond = cond or function(ent) return true end; + local lst = self:GetNPCList(); + return self:Count(cond, lst); +end + +function EntityList:CountCorpse(cond) + cond = cond or function(ent) return true end; + local lst = self:GetCorpseList(); + return self:Count(cond, lst); +end + +function EntityList:CountObject(cond) + cond = cond or function(ent) return true end; + local lst = self:GetObjectList(); + return self:Count(cond, lst); +end + +function EntityList:CountDoor(cond) + cond = cond or function(ent) return true end; + local lst = self:GetDoorsList(); + return self:Count(cond, lst); +end + +function EntityList:CountSpawn(cond) + cond = cond or function(ent) return true end; + local lst = self:GetSpawnList(); + return self:Count(cond, lst); +end diff --git a/lua_modules/general_ext.lua b/lua_modules/general_ext.lua new file mode 100644 index 0000000..eb17efb --- /dev/null +++ b/lua_modules/general_ext.lua @@ -0,0 +1,41 @@ +function eq.ChooseRandom(...) + local tbl = {...}; + return tbl[math.random(#tbl)]; +end + +function eq.SelfCast(spell_id) + local init = eq.get_initiator(); + local sp = Spell(spell_id); + + if(init.null or sp.null) then + return; + end + + init:SpellFinished(spell_id, init, 10, 0, -1, sp:ResistDiff()); +end + +function eq.ClassType(class) + if(class == 8 or class == 15 or class == 3 or class == 4 or class == 5) then + return "hybrid"; + elseif(class == 1 or class == 7 or class == 16 or class == 9) then + return "melee"; + elseif(class == 11 or class == 12 or class == 13 or class == 14) then + return "caster" + elseif(class == 2 or class == 10 or class == 6) then + return "priest"; + end + + return "other"; +end + +-- random amount of cash in copper, returns totals of copper, silver, gold, platinum +function eq.RandomCash(min, max) + local total = math.random(min, max) + local platinum = math.modf(total / 1000) + total = total - platinum * 1000 + local gold = math.modf(total / 100) + total = total - gold * 100 + local silver = math.modf(total / 10) + total = total - silver * 10 + return total, silver, gold, platinum +end diff --git a/lua_modules/items.lua b/lua_modules/items.lua new file mode 100644 index 0000000..9da5019 --- /dev/null +++ b/lua_modules/items.lua @@ -0,0 +1,358 @@ +local items = {} + +function items.check_turn_in(npc, trade, trade_check, keepitems, text, emote) + keepitems = keepitems or 1; + + local required_items = 0; + if(text ~= nil or emote ~= nil) then + for i = 1, 4 do + local key = "item" .. i; + if(trade_check[key] ~= nil and trade_check[key] ~= 0) then + if(keepitems == 0 or (keepitems == 1 and not npc:GetQuestLoot(trade_check[key]))) then + required_items = required_items + 1; + end + end + end + + eq.debug("".. npc:GetCleanName() .. " requires " .. required_items .. " more items for this handin.", 3); + end + + local trade_return = {}; + for key, value in pairs(trade) do + trade_return[key] = value; + end + + local accepted = false; + if(keepitems == 1) then + -- Add all the items handed to us that the NPC needs to its loottable + local founditem = false; + for a = 1, 4 do + local add = trade_return["item" .. a]; + local itemid = 0; + for b = 1, 4 do + local curkey = "item" .. b; + if(add ~= nil and add.valid and trade_check[curkey] ~= nil and trade_check[curkey] ~= 0) then + if(trade_check[curkey] == add:GetID()) then + eq.debug("Item " .. add:GetID() .. " added to QUEST loot.", 3); + npc:AddQuestLoot(add:GetID()); + trade_return["item" .. a] = nil; + founditem = true; + accepted = true; + itemid = 0; + + if(text ~= nil or emote ~= nil) then + required_items = required_items - 1; + if(required_items ~= 0) then + if(text ~= nil) then + npc:Say("" .. text .. ""); + elseif(emote ~= nil) then + npc:Emote("" .. emote .. ""); + end + end + end + + break; + else + itemid = add:GetID(); + end + end + end + if(npc:Charmed() and itemid > 1000 and not npc:GetPetLoot(itemid) and not npc:GetQuestLoot(itemid)) then + eq.debug("Item " .. itemid .. " added to PET loot.", 3); + npc:AddPetLoot(itemid); + end + end + -- The npc was handed an item it doesn't need. + if(not founditem and trade_check["copper"] == nil and trade_check["silver"] == nil and trade_check["gold"] == nil and trade_check["platinum"] == nil) then + if(accepted) then + eq.debug("NPC was handed an item it doesn't need, but also received valid items.", 3); + end + return false; + end + end + + --Main loops. First loop iterates though the quest items (item1, item2, etc.) The second loop iterates + --through the items handed to the NPC, comapring them to the item in the first loop. + for i = 1, 4 do + local key = "item" .. i; + if(trade_check[key] ~= nil and trade_check[key] ~= 0) then + local found = false; + for j = 1, 4 do + -- This compares the items handed to the NPC with what is specified in the quest. + local inst = trade_return["item" .. j]; + if(inst ~= nil and inst.valid) then + local itemid = inst:GetID(); + + if(trade_check[key] == itemid) then + if(keepitems == 0) then + trade_return["item" .. j] = ItemInst(); + end + found = true; + + if(keepitems == 0 and text ~= nil) then + required_items = required_items - 1; + if(required_items ~= 0) then + npc:Say("" .. text .. ""); + end + end + + break; + end + end + end + + if(not found) then + if(keepitems == 1) then + -- This compares the items in the NPC's loottable with what is specified in the quest. + local hasitem = npc:GetQuestLoot(trade_check[key]); + if(hasitem) then + found = true; + else + eq.debug("An item the NPC requires (" .. trade_check[key] .. ") was not handed to them and is not in their loot.", 3); + return false; + end + else + eq.debug("(Non-MQ) An item the NPC requires (" .. trade_check[key] .. ") was not handed to them.", 3); + return false; + end + end + end + end + + -- Setup clean variables for count check and delete. + local item1 = trade_check["item1"]; + local item2 = trade_check["item2"]; + local item3 = trade_check["item3"]; + local item4 = trade_check["item4"]; + if(trade_check["item1"] == nil) then + item1 = 0; + end + if(trade_check["item2"] == nil) then + item2 = 0; + end + if(trade_check["item3"] == nil) then + item3 = 0; + end + if(trade_check["item4"] == nil) then + item4 = 0; + end + + if(keepitems == 1) then + -- If the quest requires multiple of the same item, this counts up the NPC's loottable items for us. + local count = npc:HasRequiredQuestLoot(item1, item2, item3, item4); + if(not count) then + eq.debug("The NPC does not have the required number of items it needs.", 3); + return false; + end + end + + --convert our money into copper then check that we have enough then convert change back + local trade_check_money = 0; + local return_money = 0; + + if(trade_check["platinum"] ~= nil and trade_check["platinum"] ~= 0) then + trade_check_money = trade_check_money + (trade_check["platinum"] * 1000); + end + + if(trade_check["gold"] ~= nil and trade_check["gold"] ~= 0) then + trade_check_money = trade_check_money + (trade_check["gold"] * 100); + end + + if(trade_check["silver"] ~= nil and trade_check["silver"] ~= 0) then + trade_check_money = trade_check_money + (trade_check["silver"] * 10); + end + + if(trade_check["copper"] ~= nil and trade_check["copper"] ~= 0) then + trade_check_money = trade_check_money + trade_check["copper"]; + end + + return_money = return_money + trade_return["platinum"] * 1000 + trade_return["gold"] * 100; + return_money = return_money + trade_return["silver"] * 10 + trade_return["copper"]; + + if(return_money < trade_check_money) then + return false; + else + return_money = return_money - trade_check_money; + end + + --replace trade with trade_return + trade.item1 = trade_return.item1; + trade.item2 = trade_return.item2; + trade.item3 = trade_return.item3; + trade.item4 = trade_return.item4; + + if(keepitems == 1) then + npc:DeleteQuestLoot(item1, item2, item3, item4); + end + + trade.platinum = math.floor(return_money / 1000); + return_money = return_money - (trade.platinum * 1000); + + trade.gold = math.floor(return_money / 100); + return_money = return_money - (trade.gold * 100); + + trade.silver = math.floor(return_money / 10); + return_money = return_money - (trade.silver * 10); + + trade.copper = return_money; + eq.debug("The quest completed successfully.",3); + return true; +end + +function items.return_items(npc, client, trade, text) + if ( type(text) == "boolean" and text == false ) then + text = ""; + end + local returned = false; + + for i = 1, 4 do + local inst = trade["item" .. i]; + if(inst ~= nil and inst.valid) then + -- If the npc does not have this item in their quest loot, then it needs to be returned. + + local itemid = inst:GetID(); + if(not npc:GetQuestLoot(itemid)) then + + if (npc:Charmed()) then + if (itemid > 1000 and not npc:GetPetLoot(itemid)) then + eq.debug("Item " .. itemid .. " added to PET loot.", 3); + npc:AddPetLoot(itemid); + end + else + + local charges = inst:GetCharges(); + client:SummonItem(itemid, charges, 9999, true); + if (npc:CanTalk()) then + if (not text) then + npc:Say("I have no need for this item " .. client:GetCleanName() .. ", you can have it back."); + elseif (text ~= "") then + npc:Say(text); + end + end + eq.debug("Handing back an item it doesn't need (" .. itemid .. ").", 3); + returned = true; + end + end + end + end + + if(npc:Charmed()) then + eq.debug("NPC is a charmed pet, it does not return items.", 3); + return returned; + end + + local money = false; + if(trade.platinum ~= 0) then + returned = true; + money = true; + end + + if(trade.gold ~= 0) then + returned = true; + money = true; + end + + if(trade.silver ~= 0) then + returned = true; + money = true; + end + + if(trade.copper ~= 0) then + returned = true; + money = true; + end + + if(money == true) then + client:AddMoneyToPP(trade.copper, trade.silver, trade.gold, trade.platinum, true); + end + + return returned; +end + +function items.count_handed_item(npc, trade, items, min_count) + + local itemid1 = items[1] or 0; + local itemid2 = items[2] or 0; + local itemid3 = items[3] or 0; + local itemid4 = items[4] or 0; + local itemid5 = items[5] or 0; + local itemid6 = items[6] or 0; + local itemid7 = items[7] or 0; + local itemid8 = items[8] or 0; + min_count = min_count or 1; + + local mq_loot = {}; + + local count = npc:QuestLootCount(itemid1) + npc:QuestLootCount(itemid2) + npc:QuestLootCount(itemid3) + npc:QuestLootCount(itemid4) + + npc:QuestLootCount(itemid5) + npc:QuestLootCount(itemid6) + npc:QuestLootCount(itemid7) + npc:QuestLootCount(itemid8); + local handed_count = 0; + for j = 1, 4 do + local inst = trade["item" .. j]; + if(inst ~= nil and inst.valid) then + if(inst:GetID() > 0 and (itemid1 == inst:GetID() or itemid2 == inst:GetID() or itemid3 == inst:GetID() or itemid4 == inst:GetID() or + itemid5 == inst:GetID() or itemid6 == inst:GetID() or itemid7 == inst:GetID() or itemid8 == inst:GetID())) then + count = count + 1; + handed_count = handed_count + 1; + if(min_count > 1) then + -- This item may be added to quest loot, add to mq array for further processing below. + mq_loot["item" .. j] = trade["item" .. j]; + end + trade["item" .. j] = nil; + eq.debug("Found item in slot (" .. j .. ") count is now " .. count .. "", 3); + end + end + end + + if(handed_count == 0) then + eq.debug("Quest will not complete.",3); + return 0; + end + + local clear_loot = true; + if(min_count > 1) then + -- Figure out if we need to add items to quest loot. + local remainder = count - min_count; + if(remainder <= 1 and remainder ~= 0) then + for i = 4, 1, -1 do + if(mq_loot["item" .. i] ~= nil) then + local mqitem = mq_loot["item" .. i]; + if(mqitem ~= nil and mqitem.valid) then + npc:AddQuestLoot(mqitem:GetID()); + clear_loot = false; + if(remainder == 1) then + break; + end + end + end + end + end + + -- Figure out how many times the quest should complete if it isn't a 1:1 hand-in. + local count_float = count / min_count; + if(count_float%1==0) then + count = count_float; + else + if(count_float < 1) then + count = 0; + else + count = math.floor(count_float-0.5); + end + end + end + + if(clear_loot) then + -- Clear out any quest items that got saved from a previous hand-in. + eq.debug("Clearing quest loot", 3); + npc:DeleteQuestLoot(itemid1,itemid2,itemid3,itemid4); + if(itemid5 > 0) then + npc:DeleteQuestLoot(itemid5,itemid6,itemid7,itemid8); + end + + end + + eq.debug("Quest will complete " .. count .. " times.", 3); + return count; + +end + +return items; diff --git a/lua_modules/mob_ext.lua b/lua_modules/mob_ext.lua new file mode 100644 index 0000000..03cc3f0 --- /dev/null +++ b/lua_modules/mob_ext.lua @@ -0,0 +1,24 @@ +function Mob:ForeachHateList(func, cond) + cond = cond or function(ent, hate, damage, frenzy) return true end; + local lst = self:GetHateList(); + for ent in lst.entries do + local cv = cond(ent.ent, ent.hate, ent.damage, ent.frenzy); + if(cv) then + func(ent.ent, ent.hate, ent.damage, ent.frenzy); + end + end +end + +function Mob:CountHateList(cond) + cond = cond or function(ent, hate, damage, frenzy) return true end; + local lst = self:GetHateList(); + local ret = 0; + for ent in lst.entries do + local cv = cond(ent.ent, ent.hate, ent.damage, ent.frenzy); + if(cv) then + ret = ret + 1; + end + end + + return ret; +end diff --git a/lua_modules/npc_ext.lua b/lua_modules/npc_ext.lua new file mode 100644 index 0000000..756eabf --- /dev/null +++ b/lua_modules/npc_ext.lua @@ -0,0 +1,48 @@ +function NPC:ForeachHateList(func, cond) + cond = cond or function(ent, hate, damage, frenzy) return true end; + local lst = self:GetHateList(); + for ent in lst.entries do + local cv = cond(ent.ent, ent.hate, ent.damage, ent.frenzy); + if(cv) then + func(ent.ent, ent.hate, ent.damage, ent.frenzy); + end + end +end + +function NPC:CountHateList(cond) + cond = cond or function(ent, hate, damage, frenzy) return true end; + local lst = self:GetHateList(); + local ret = 0; + for ent in lst.entries do + local cv = cond(ent.ent, ent.hate, ent.damage, ent.frenzy); + if(cv) then + ret = ret + 1; + end + end + + return ret; +end + +-- Check the ground around the NPC for a dropped item and destroy it. Returns true if object found +function NPC:CheckGround(range) + + local id, ix, iy, iz; + local sx, sy, sz = self:GetX(), self:GetY(), self:GetZ(); + + local olist = eq.get_entity_list():GetObjectList(); + range = tonumber(range) or 25; + + for obj in olist.entries do + + ix, iy, iz = obj:GetX(), obj:GetY(), obj:GetZ(); + if ( obj:GetItemID() > 0 + and ix - sx < range and ix - sx > -range + and iy - sy < range and iy - sy > -range + and iz - sz < range and iz - sz > -range + ) then + obj:DepopWithTimer(); + return true; + end + end + return false; +end diff --git a/lua_modules/string_ext.lua b/lua_modules/string_ext.lua new file mode 100644 index 0000000..748e201 --- /dev/null +++ b/lua_modules/string_ext.lua @@ -0,0 +1,39 @@ +function string:case_insensitive_pattern() + local p = self:gsub("(%%?)(.)", function(percent, letter) + if percent ~= "" or not letter:match("%a") then + return percent .. letter; + else + return string.format("[%s%s]", letter:lower(), letter:upper()); + end + end); + return p; +end + +function string:findi(pattern, init, plain) + if(init ~= nil and plain ~= nil) then + return self:find(pattern:case_insensitive_pattern(), init, plain); + else + return self:find(pattern:case_insensitive_pattern()); + end +end + +function string:gmatchi(pattern) + return self:gmatch(pattern:case_insensitive_pattern()); +end + +function string:gsubi(pattern, replace, n) + if(n ~= nil) then + return self:gsub(pattern:case_insensitive_pattern(), replace, n); + else + return self:gsub(pattern:case_insensitive_pattern(), replace); + end +end + +function string:matchi(pattern, init) + if(init ~= nil) then + return self:match(pattern:case_insensitive_pattern(), init); + else + return self:match(pattern:case_insensitive_pattern()); + end +end + diff --git a/lua_modules/thread_manager.lua b/lua_modules/thread_manager.lua new file mode 100644 index 0000000..8a5524d --- /dev/null +++ b/lua_modules/thread_manager.lua @@ -0,0 +1,106 @@ +local TM = { }; +local ThreadManager = { StateFirstRun = 0, StateRunning = 1, StateSuspended = 2, StateWaiting = 3, threads = { } } +setmetatable(ThreadManager, { __index = TM }); + +function ThreadManager:Resume(name) + for i = 1, #self.threads do + if(self.threads[i]._name == name) then + if(self.threads[i]._state == self.StateFirstRun) then + self.threads[i]._state = self.StateRunning; + coroutine.resume(self.threads[i]._co, unpack(self.threads[i]._args)); + elseif(self.threads[i]._state == self.StateSuspended) then + self.threads[i]._state = self.StateRunning; + coroutine.resume(self.threads[i]._co); + elseif(self.threads[i]._state == self.StateWaiting) then + if(eq.clock() >= self.threads[i]._wait_until) then + self.threads[i]._state = self.StateRunning; + coroutine.resume(self.threads[i]._co); + end + end + end + end +end + +function ThreadManager:Create(name, f, ...) + table.insert(self.threads, { + _name = name, + _co = coroutine.create(f), + _args = {...}, + _state = self.StateFirstRun, + _wait_until = 0.0 + }); +end + +function ThreadManager:Yield(...) + local running = coroutine.running(); + if(running == nil) then + return; + end + + for i = 1, #self.threads do + if(self.threads[i]._co == running) then + self.threads[i]._state = self.StateSuspended; + coroutine.yield(...); + return; + end + end + + coroutine.yield(...); +end + +function ThreadManager:Wait(t, ...) + local running = coroutine.running(); + if(running == nil) then + return; + end + + for i = 1, #self.threads do + if(self.threads[i]._co == running) then + self.threads[i]._state = self.StateWaiting; + self.threads[i]._wait_until = eq.clock() + t; + coroutine.yield(...); + return; + end + end + + coroutine.yield(...); +end + +function ThreadManager:Stop() + local running = coroutine.running(); + if(running == nil) then + return; + end + + for i = 1, #self.threads do + if(self.threads[i]._co == running) then + table.remove(self.threads, i); + coroutine.yield(); + return; + end + end + + coroutine.yield(); +end + +function ThreadManager:Clear() + local running = coroutine.running(); + self.threads = { }; + if(running) then + coroutine.yield(); + end +end + +function ThreadManager:GarbageCollect() + if(#self.threads == 0) then + return; + end + + for i = #self.threads, 1, -1 do + if(coroutine.status(self.threads[i]._co) == "dead") then + table.remove(self.threads, i); + end + end +end + +return ThreadManager; diff --git a/lua_modules/velious_quest_helper.lua b/lua_modules/velious_quest_helper.lua new file mode 100644 index 0000000..10f1dc9 --- /dev/null +++ b/lua_modules/velious_quest_helper.lua @@ -0,0 +1,355 @@ +local helper = {} + +helper.ARMOR_GEMS = { + Chipped_Onyx_Sapphire=25827, + Crushed_Lava_Ruby=25840, + Crushed_Opal=25836, + Jaundice_Gem=25815, + Black_Marble=25805, + Crushed_Coral=25831, + Flawless_Diamond=25814, + Flawed_Emerald=25821, + Flawed_Topaz=25818, + Crushed_Flame_Emerald=25838, + Crushed_Topaz=25832, + Flawed_Sea_Sapphire=25825, + Crushed_Black_Marble=25833, + Nephrite=25816, + Crushed_Onyx_Sapphire=25841, + Crushed_Flame_Opal=25837, + Pristine_Emerald=25807, + Crushed_Jaundice_Gem=25829 +} + +helper.THURG_ARMOR = { + Breastplate=24928, + Chain_Boots=24938, + Chain_Bracer=24939, + Chain_Coif=24940, + Chain_Gauntlets=24941, + Chain_Leggings=24936, + Chain_Sleeves=24937, + Chain_Tunic=24935, + Plate_Boots=24931, + Plate_Bracer=24932, + Plate_Gauntlets=24934, + Plate_Greaves=24929, + Plate_Helmet=24933, + Plate_Vambraces=24930, + Silk_Boots=24952, + Silk_Gloves=24955, + Silk_Pantaloons=24950, + Silk_Robe=24949, + Silk_Sleeves=24951, + Silk_Turban=24954, + Silk_Wristband=24953, + Leather_Boots=24945, + Leather_Bracelet=24946, + Leather_Cap=24947, + Leather_Gloves=24948, + Leather_Leggings=24943, + Leather_Sleeves=24944, + Leather_Tunic=24942 +} + +helper.SKYSHRINE_ARMOR = { + Breastplate=24956, + Chain_Boots=24966, + Chain_Bracer=24967, + Chain_Coif=24968, + Chain_Gauntlets=24969, + Chain_Leggings=24964, + Chain_Sleeves=24965, + Chain_Tunic=24963, + Leather_Boots=24973, + Leather_Bracelet=24974, + Leather_Cap=24975, + Leather_Gloves=24976, + Leather_Leggings=24971, + Leather_Sleeves=24972, + Leather_Tunic=24970, + Plate_Boots=24959, + Plate_Bracer=24960, + Plate_Gauntlets=24962, + Plate_Greaves=24957, + Plate_Helmet=24961, + Plate_Vambraces=24958, + Silk_Boots=24980, + Silk_Gloves=24983, + Silk_Pantaloons=24978, + Silk_Robe=24977, + Silk_Sleeves=24979, + Silk_Turban=24982, + Silk_Wristband=24981 +} + +helper.KAEL_ARMOR = { + Breastplate=24900, + Chain_Boots=24910, + Chain_Bracer=24911, + Chain_Coif=24912, + Chain_Gauntlets=24913, + Chain_Leggings=24908, + Chain_Sleeves=24909, + Chain_Tunic=24907, + Plate_Greaves=24901, + Plate_Boots=24903, + Plate_Bracer=24904, + Plate_Gauntlets=24906, + Plate_Helmet=24905, + Plate_Vambraces=24902, + Silk_Boots=24924, + Silk_Gloves=24927, + Silk_Pantaloons=24922, + Silk_Robe=24921, + Silk_Sleeves=24923, + Silk_Turban=24926, + Silk_Wristband=24925, + Leather_Boots=24917, + Leather_Bracelet=24918, + Leather_Cap=24919, + Leather_Gloves=24920, + Leather_Leggings=24915, + Leather_Sleeves=24916, + Leather_Tunic=24914 +} + +helper.THURG_PLATE_TEXT = { + helm="To create a piece of armor to protect your skull I will require three pieces of crushed coral as well as a corroded plate helmet.", + breastplate="For the breastplate, I will need a corroded breastplate and three flawless diamonds. Once I have them in my possession it will not take long to craft a sturdy breastplate.", + armplate="Protection for your arms will come at the price of a set of corroded plate vambraces and three flawed emeralds.", + bracer="For the bracers, I will require a corroded plate bracer and a set of three crushed flame emeralds. Return to me if you happen to find these things in your travels.", + gauntlet="Protecting your hands is very important. I can forge protection for your hands if you bring me a pair of corroded plate gauntlets and three crushed topaz.", + greaves="A set of corroded greaves might be salvageable if you were to find three flawed sea sapphires. With the right techniques almost anything is possible.", + boots="Boots made for battle are not always the most comfortable available. However, if you seek a fine set for battle bring me a set of corroded plate boots and three pieces of crushed black marble." +} + +helper.THURG_CHAIN_TEXT = { + coif="To create a piece of armor to protect your sensitive skull. I will require three pieces of crushed coral as well as a corroded chain coif.", + tunic="To forge a spectacular chain tunic I will require three flawless diamonds and a corroded chain tunic. With the gems and my skills I may be able to draw out some of its magical powers.", + sleeves="Protection for your arms will come at the price of three flawed emeralds and a set of corroded chain sleeves.", + bracer="For the bracers, I will require a corroded chain bracer as well as three crushed flame emeralds. Return to me when you find such things -race", + gauntlets="Protecting your hands is very important. I can forge protection for your hands if you bring me a pair of corroded chain gauntlets and three crushed topaz.", + leggings="A set of corroded chain leggings might be salvageable if you were to find three flawed sea sapphires. With the right techniques and ingredients almost anything is possible.", + boots="We use our feet so often, should not they be protected as well as any other portion of our bodies? If you seek fine protection for your feet, return to me with three pieces of crushed black marble and a set of corroded chain boots." +} + +helper.THURG_SILK_TEXT = { + cap="For an enchanted head guard bring me a torn enchanted silk turban as well as three pieces of crushed flame opal.", + robe="If you wish to have a fine robe, bring unto me a torn enchanted silk robe and three pristine emeralds. Then you will receive a robe beyond your wildest dreams.", + sleeves="Bring unto me a set of torn enchanted silk sleeves as well as three flawed topaz. With these in my possession I can create a set of enchanted sleeves the likes of which spellcasters like you dream of.", + wristband="An enchanted silk wristguard and three crushed onyx sapphires is all that I require to create an imbued wrist wrap of great power. Seek out these items and return to me when you have acquired them.", + legging="Three nephrite and a pair of torn enchanted silk leggings will net you a fine set of pantaloons.", + boots="Three crushed jaundice gems combined with torn enchanted silk boots would make a most interesting set of footwear. The latent powers of the gems can be harnessed to create magical effects.", + gloves="If you seek gloves of great power, bring to me three crushed topaz and a pair of torn enchanted silk gloves. I will use the power of the gems to imbue the gloves." +} + +helper.THURG_LEATHER_TEXT = helper.THURG_CHAIN_TEXT; + +helper.THURG_PRIEST_TEXT = { + helm="To create a piece of armor to protect your skull I will require three crushed onyx sapphires as well as a corroded plate helmet.", + breastplate="For the breastplate, I will need a corroded breastplate and three black marbles. Once I have them in my possession it will not take long to craft a sturdy breastplate.", + armplate="Protection for your arms will come at the price of a set of corroded plate vambraces and three jaundiced gems.", + bracer="For the bracers, I will require a corroded plate bracer and a set of three crushed opals. Return to me if you happen to find these things in your travels.", + gauntlet="Protecting your hands is very important. I can forge protection for your hands if you bring me a pair of corroded plate gauntlets and three crushed lava rubys.", + greaves="A set of corroded greaves might be salvageable if you were to find three chipped onyx sapphires. With the right techniques almost anything is possible.", + boots="Boots made for battle are not always the most comfortable available. However, if you seek a fine set for battle bring me a set of corroded plate boots and three pieces of crushed flame emerald." +} + +function helper.merge_tables(orig, other) + for k,v in pairs(other) do orig[k] = v end + return orig; +end + +function helper.quest_text(e, table, faction) + local _faction = e.other:GetFaction(e.self); + if (_faction <= faction) then + for trigger, text in pairs(table) do + if (e.message:findi(trigger)) then + text = text:gsub("(-name)", e.other:GetCleanName()); + text = text:gsub("(-race)", e.other:Race()); + text = text:gsub("(-class)", e.other:Class()); + e.self:Say(text); + return; + end + end + else + e.self:Say("I do not know you well enough to entrust you with such a quest, yet."); + end +end + +function helper.quest_text_skyshrine(e, table, faction) + local _faction = e.other:GetFaction(e.self); + if (_faction <= faction) then + for trigger, text in pairs(table) do + if (e.message:findi(trigger)) then + text = text:gsub("(-name)", e.other:GetCleanName()); + text = text:gsub("(-race)", e.other:Race()); + text = text:gsub("(-class)", e.other:Class()); + e.self:Say(text); + return; + end + end + else + e.self:Say("You must prove your dedication to the Claws of Veeshan before I will speak to you.") + end +end + +function helper:quest_turn_in(event, faction_req, items, callback) + local item_lib = require("items"); + local faction = event.other:GetFaction(event.self); + if (faction <= faction_req) then + for i, quest in ipairs(items) do + if(item_lib.check_turn_in(event.self, event.trade, quest.turn_in)) then + callback(self, event); + event.other:QuestReward(event.self,0,0,0,0, quest.reward, 100); + return; + end + end + end + item_lib.return_items(event.self, event.other, event.trade) +end + +function helper.thurg_armor_faction(e) + local COLDIAN = 406; + local DAIN = 405; + local KROMRIF = 419; + local KROMZEK = 448; + -- verified live faction + e.other:Faction(e.self,COLDIAN, 75); + e.other:Faction(e.self,DAIN, 18); + e.other:Faction(e.self,KROMZEK, -1); + e.other:Faction(e.self,KROMRIF, -37); +end + +function helper:thurg_armor_success(e) + e.self:Emote("smiles warmly as he hands you your reward. 'You have done well, " .. e.other:GetCleanName() .. "'"); + self.thurg_armor_faction(e); + end + +function helper.skyshrine_armor_faction(e) + local CoV = 430; + local YELINAK = 436; + local KROMZEK = 448; + e.other:Faction(e.self,CoV, 75); + e.other:Faction(e.self,YELINAK, 18); + e.other:Faction(e.self,KROMZEK, -37); +end + +function helper:skyshrine_armor_success(e) + e.self:Say("Excellent! I had not thought that one such as you would be able to complete such a task. Now I will hold up my end of the bargain. Here is the armor that I promised I would fashion for you upon returning these items to me. Wear it with pride! "); + self.skyshrine_armor_faction(e); +end + +function helper.kael_armor_faction(e) + local KINGTORMAX = 429; + local KROMZEK = 448; + local CoV = 430; + local KROMRIF = 188; + -- verified live faction + e.other:Faction(e.self,KROMZEK, 75); + e.other:Faction(e.self,KROMRIF, 18); + e.other:Faction(e.self,KINGTORMAX, 18); + e.other:Faction(e.self,CoV, -37); +end + +function helper:kael_armor_success(e) + e.self:Emote("smiles warmly as he hands you your reward. 'You have done well, " .. e.other:GetCleanName() .. "'"); + self.kael_armor_faction(e); +end + +function helper:quest_turn_in_item(gem, armor, reward) + return {turn_in={item1=gem, item2=gem, item3=gem, item4=armor}, reward=reward} +end + +--Melee + +function helper:melee_boots(armor, reward) + return self:quest_turn_in_item(self.ARMOR_GEMS.Crushed_Black_Marble, armor, reward) +end + +function helper:melee_legs(armor, reward) + return self:quest_turn_in_item(self.ARMOR_GEMS.Flawed_Sea_Sapphire, armor, reward) +end + +function helper:melee_gloves(armor, reward) + return self:quest_turn_in_item(self.ARMOR_GEMS.Crushed_Topaz, armor, reward) +end + +function helper:melee_bracer(armor, reward) + return self:quest_turn_in_item(self.ARMOR_GEMS.Crushed_Flame_Emerald, armor, reward) +end + +function helper:melee_helmet(armor, reward) + return self:quest_turn_in_item(self.ARMOR_GEMS.Crushed_Coral, armor, reward) +end + +function helper:melee_arms(armor, reward) + return self:quest_turn_in_item(self.ARMOR_GEMS.Flawed_Emerald, armor, reward) +end + +function helper:melee_chest(armor, reward) + return self:quest_turn_in_item(self.ARMOR_GEMS.Flawless_Diamond, armor, reward) +end + +--Caster + +function helper:silk_boots(armor, reward) + return self:quest_turn_in_item(self.ARMOR_GEMS.Crushed_Jaundice_Gem, armor, reward) +end + +function helper:silk_legs(armor, reward) + return self:quest_turn_in_item(self.ARMOR_GEMS.Nephrite, armor, reward) +end + +function helper:silk_gloves(armor, reward) + return self:quest_turn_in_item(self.ARMOR_GEMS.Crushed_Topaz, armor, reward) +end + +function helper:silk_bracer(armor, reward) + return self:quest_turn_in_item(self.ARMOR_GEMS.Crushed_Onyx_Sapphire, armor, reward) +end + +function helper:silk_helmet(armor, reward) + return self:quest_turn_in_item(self.ARMOR_GEMS.Crushed_Flame_Opal, armor, reward) +end + +function helper:silk_arms(armor, reward) + return self:quest_turn_in_item(self.ARMOR_GEMS.Flawed_Topaz, armor, reward) +end + +function helper:silk_chest(armor, reward) + return self:quest_turn_in_item(self.ARMOR_GEMS.Pristine_Emerald, armor, reward) +end + +--Priest + +function helper:priest_helmet(armor, reward) + return self:quest_turn_in_item(self.ARMOR_GEMS.Crushed_Onyx_Sapphire, armor, reward) +end + +function helper:priest_chest(armor, reward) + return self:quest_turn_in_item(self.ARMOR_GEMS.Black_Marble, armor, reward) +end + +function helper:priest_arms(armor, reward) + return self:quest_turn_in_item(self.ARMOR_GEMS.Jaundice_Gem, armor, reward) +end + +function helper:priest_bracer(armor, reward) + return self:quest_turn_in_item(self.ARMOR_GEMS.Crushed_Opal, armor, reward) +end + +function helper:priest_gloves(armor, reward) + return self:quest_turn_in_item(self.ARMOR_GEMS.Crushed_Lava_Ruby, armor, reward) +end + +function helper:priest_legs(armor, reward) + return self:quest_turn_in_item(self.ARMOR_GEMS.Chipped_Onyx_Sapphire, armor, reward) +end + +function helper:priest_boots(armor,reward) + return self:quest_turn_in_item(self.ARMOR_GEMS.Crushed_Flame_Emerald, armor, reward) +end + +return helper; diff --git a/maiden/##a_vampyre_bat.lua b/maiden/##a_vampyre_bat.lua new file mode 100644 index 0000000..3c47740 --- /dev/null +++ b/maiden/##a_vampyre_bat.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",140000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop() + end +end diff --git a/maiden/#A_skeletal_drudge.lua b/maiden/#A_skeletal_drudge.lua new file mode 100644 index 0000000..fde2ab8 --- /dev/null +++ b/maiden/#A_skeletal_drudge.lua @@ -0,0 +1,7 @@ +function event_combat(e) + if(e.joined) then + e.self:Emote("reanimates itself."); + eq.spawn2(173005,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end +end diff --git a/maiden/#A_vampyre_bat.lua b/maiden/#A_vampyre_bat.lua new file mode 100644 index 0000000..d996081 --- /dev/null +++ b/maiden/#A_vampyre_bat.lua @@ -0,0 +1,7 @@ +function event_combat(e) + if(e.joined) then + e.self:Emote("swoops from the sky."); + eq.spawn2(173007,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end +end diff --git a/maiden/#a_mind_burrower.lua b/maiden/#a_mind_burrower.lua new file mode 100644 index 0000000..3c47740 --- /dev/null +++ b/maiden/#a_mind_burrower.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",140000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop() + end +end diff --git a/maiden/#a_reanimated_drudge.lua b/maiden/#a_reanimated_drudge.lua new file mode 100644 index 0000000..3c47740 --- /dev/null +++ b/maiden/#a_reanimated_drudge.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",140000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop() + end +end diff --git a/maiden/The_ground.lua b/maiden/The_ground.lua new file mode 100644 index 0000000..e182e97 --- /dev/null +++ b/maiden/The_ground.lua @@ -0,0 +1,7 @@ +function event_combat(e) + if(e.joined) then + e.self:Emote("beneath you begins to open up."); + eq.spawn2(173003,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end +end diff --git a/mischiefplane/#Lithiniath.lua b/mischiefplane/#Lithiniath.lua new file mode 100644 index 0000000..acfb235 --- /dev/null +++ b/mischiefplane/#Lithiniath.lua @@ -0,0 +1,5 @@ +function event_waypoint_arrive(e) + if(e.wp == 1) then + e.self:Shout("The madness has fled my mind and I am once again whole! Give Gelistial my regards, I must leave this place and try to quell the madness I have inflicted."); + end +end \ No newline at end of file diff --git a/mischiefplane/#Sniffles.lua b/mischiefplane/#Sniffles.lua new file mode 100644 index 0000000..acf3674 --- /dev/null +++ b/mischiefplane/#Sniffles.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Don't keel me."); + end +end + +function event_death_complete(e) + eq.spawn2(126366,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end diff --git a/mischiefplane/Ashley.lua b/mischiefplane/Ashley.lua new file mode 100644 index 0000000..6e6e943 --- /dev/null +++ b/mischiefplane/Ashley.lua @@ -0,0 +1,20 @@ +function event_say(e) + Brittina = eq.get_entity_list():GetMobByNpcTypeID(126213); + Diana = eq.get_entity_list():GetMobByNpcTypeID(126187); + Roxxanne = eq.get_entity_list():GetMobByNpcTypeID(126184); + + if(e.message:findi("hail")) then + e.self:Say("Well hello! We are great dancers. Would you like to see us dance? Or maybe you would like us to teach you to dance?"); + elseif(e.message:findi("see you dance")) then + Brittina:Say("Hey! Yeah! Do the Marinara!"); + Diana:Say("Hey! Yeah! Do the Marinara!"); + Roxxanne:Say("Hey! Yeah! Do the Marinara!"); + Brittina:DoAnim(33); + e.self:DoAnim(33); + Diana:DoAnim(33); + Roxxanne:DoAnim(33); + elseif(e.message:findi("teach me")) then + e.self:CastSpell(806,e.other:GetID()); -- Spell: Magi Curse + e.self:Say("Look at you! You can dance! Go, go, go! That's the spirit, you got it! Keep up the good work! Don't get too tired now, you are looking a little pale!"); + end +end diff --git a/mischiefplane/Bizzznawa.lua b/mischiefplane/Bizzznawa.lua new file mode 100644 index 0000000..9e8484b --- /dev/null +++ b/mischiefplane/Bizzznawa.lua @@ -0,0 +1,15 @@ +function event_spawn(e) + eq.set_timer("follow",1000); +end + +function event_timer(e) + if(e.timer == "follow") then + local mobtypeID = eq.get_entity_list():GetMobByNpcTypeID(126235); + + if(mobtypeID) then + local follow_mob = mobtypeID:GetID(); + eq.follow(follow_mob,0); + eq.stop_timer("follow"); + end + end +end diff --git a/mischiefplane/Bob_the_painter.lua b/mischiefplane/Bob_the_painter.lua new file mode 100644 index 0000000..77dc771 --- /dev/null +++ b/mischiefplane/Bob_the_painter.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ey yo. Ever read the book of mischief? The libraries full of em! Say... if you ever find the missin chapter on wealth, lemme know. I'll give ya this here pot o' gold I found."); + elseif(e.message:findi("library")) then + e.self:Say("I'd love ta check out a book... especially the book of mischief. Every time I get a library card, them freakin monkeys come and take it from me. Say, maybe you can get one from em!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18008}, 0)) then + e.self:Say("Ay!!! this is poifect! 'ere take this pot o' gold. It's empty at the moment. Go ask my brother Vinny about the pot and mebbe he'll have a clue how ta get it full agin."); + e.other:QuestReward(e.self,0,0,0,0,17326); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/mischiefplane/Bombardier_Bixie_Bernice.lua b/mischiefplane/Bombardier_Bixie_Bernice.lua new file mode 100644 index 0000000..5f4f5c2 --- /dev/null +++ b/mischiefplane/Bombardier_Bixie_Bernice.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:CastSpell(907,e.other:GetID()); -- Spell: DryBoneFireBurst + e.self:Say("QUIET!!! People are trying to study around here! Keep your yap shut!"); + end +end diff --git a/mischiefplane/Brittina.lua b/mischiefplane/Brittina.lua new file mode 100644 index 0000000..066cea6 --- /dev/null +++ b/mischiefplane/Brittina.lua @@ -0,0 +1,20 @@ +function event_say(e) + Ashley = eq.get_entity_list():GetMobByNpcTypeID(126207); + Diana = eq.get_entity_list():GetMobByNpcTypeID(126187); + Roxxanne = eq.get_entity_list():GetMobByNpcTypeID(126184); + + if(e.message:findi("hail")) then + e.self:Say("Well hello! We are great dancers. Would you like to see us dance? Or maybe you would like us to teach you to dance?"); + elseif(e.message:findi("see you dance")) then + Ashley:Say("Hey! Yeah! Do the Marinara!"); + Diana:Say("Hey! Yeah! Do the Marinara!"); + Roxxanne:Say("Hey! Yeah! Do the Marinara!"); + e.self:DoAnim(33); + Ashley:DoAnim(33); + Diana:DoAnim(33); + Roxxanne:DoAnim(33); + elseif(e.message:findi("teach me")) then + e.self:CastSpell(806,e.other:GetID()); -- Spell: Magi Curse + e.self:Say("Look at you! You can dance! Go, go, go! That's the spirit, you got it! Keep up the good work! Don't get too tired now, you are looking a little pale!"); + end +end diff --git a/mischiefplane/Chuckles.lua b/mischiefplane/Chuckles.lua new file mode 100644 index 0000000..39ebd96 --- /dev/null +++ b/mischiefplane/Chuckles.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("dance", 1000); +end + +function event_timer(e) + if(e.timer == "dance") then + e.self:DoAnim(34); -- he does this animation constantly + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("dance")) then + eq.pause_timer("dance"); + end + else + eq.resume_timer("dance"); + end +end diff --git a/mischiefplane/Chuckles_the_Great.lua b/mischiefplane/Chuckles_the_Great.lua new file mode 100644 index 0000000..39ebd96 --- /dev/null +++ b/mischiefplane/Chuckles_the_Great.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("dance", 1000); +end + +function event_timer(e) + if(e.timer == "dance") then + e.self:DoAnim(34); -- he does this animation constantly + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("dance")) then + eq.pause_timer("dance"); + end + else + eq.resume_timer("dance"); + end +end diff --git a/mischiefplane/Debbis_the_Fish.lua b/mischiefplane/Debbis_the_Fish.lua new file mode 100644 index 0000000..644190f --- /dev/null +++ b/mischiefplane/Debbis_the_Fish.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("If only I could walk in somebody elses shoes just for a day. It's not easy being a skunk you know."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6883}, 0)) then -- rabbit foot + e.self:Say("Oh wow! A rabbits foot!! Thank you so much. Here take this, I won't need this smelly thing any more."); + e.other:Faction(e.self,437,1); -- Faction: Denizens of Mischief + e.other:QuestReward(e.self,0,0,0,0,6876,100); -- a lucky skunk foot + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/mischiefplane/Diana.lua b/mischiefplane/Diana.lua new file mode 100644 index 0000000..21dc687 --- /dev/null +++ b/mischiefplane/Diana.lua @@ -0,0 +1,20 @@ +function event_say(e) + Brittina = eq.get_entity_list():GetMobByNpcTypeID(126213); + Ashley = eq.get_entity_list():GetMobByNpcTypeID(126207); + Roxxanne = eq.get_entity_list():GetMobByNpcTypeID(126184); + + if(e.message:findi("hail")) then + e.self:Say("Well hello! We are great dancers. Would you like to see us dance? Or maybe you would like us to teach you to dance?"); + elseif(e.message:findi("see you dance")) then + Brittina:Say("Hey! Yeah! Do the Marinara!"); + Ashley:Say("Hey! Yeah! Do the Marinara!"); + Roxxanne:Say("Hey! Yeah! Do the Marinara!"); + Brittina:DoAnim(33); + Ashley:DoAnim(33); + e.self:DoAnim(33); + Roxxanne:DoAnim(33); + elseif(e.message:findi("teach me")) then + e.self:CastSpell(806,e.other:GetID()); -- Spell: Magi Curse + e.self:Say("Look at you! You can dance! Go, go, go! That's the spirit, you got it! Keep up the good work! Don't get too tired now, you are looking a little pale!"); + end +end diff --git a/mischiefplane/Ferjeneror.lua b/mischiefplane/Ferjeneror.lua new file mode 100644 index 0000000..53d5988 --- /dev/null +++ b/mischiefplane/Ferjeneror.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Do you have something ferjeneror?"); + elseif(e.message:findi("yes")) then + e.self:Say("THEN GIVE IT!"); + elseif(e.message:findi("no")) then + e.self:Say("Then DIE!"); + eq.attack(e.other:GetName()); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1791}, 0)) then + e.self:Say("Indeed you found the one I need. I give you this to feed your greed. A paper knight of blackened heart. A paper throne to match his art. A paper crown of darkest night. A throne of ice to chill the sight. Inside the deck you place the four, to guard the wings that fly the floor."); + e.other:QuestReward(e.self,0,0,0,0,17054,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/mischiefplane/Gorilla_Scholar.lua b/mischiefplane/Gorilla_Scholar.lua new file mode 100644 index 0000000..f76ad1d --- /dev/null +++ b/mischiefplane/Gorilla_Scholar.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + gorlib = math.random(100); + if(gorlib < 48) then + e.self:Emote("appears enthralled as he tears page after page out of a book titled ''Secrets of the Universe, Volume 8.''"); + elseif(gorlib < 98) then + e.self:Emote("looks at you out of the corner of his eye as he chews in contentment upon an ancient scroll lined with silver and covered with mystical runes of power."); + else + e.self:Emote("throws the book he was chewing on to the ground and attacks."); + eq.attack(e.other:GetName()); + end + end +end diff --git a/mischiefplane/Hall_Monitor_Willy.lua b/mischiefplane/Hall_Monitor_Willy.lua new file mode 100644 index 0000000..903da57 --- /dev/null +++ b/mischiefplane/Hall_Monitor_Willy.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("QUIET!!! People are trying to study around here! Keep your yap shut!"); + eq.attack(e.other:GetName()); + end +end diff --git a/mischiefplane/Life.lua b/mischiefplane/Life.lua new file mode 100644 index 0000000..da74a37 --- /dev/null +++ b/mischiefplane/Life.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("QUIET!!! People are trying to study around here! Keep your yap shut!"); + e.other:Damage(e.self,20000,982,52); + end +end diff --git a/mischiefplane/Lithiniath.lua b/mischiefplane/Lithiniath.lua new file mode 100644 index 0000000..2d8335e --- /dev/null +++ b/mischiefplane/Lithiniath.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("lowers his horn towards " .. e.other:GetCleanName() .. ". The air around you begins to waver as if immense heat was rising from the floor, yet the air feels no different. You begin to feel heavy and disoriented as you hear a loud whisper begin to speak yet hear no sound at all. 'wHaT sEeK iT Is YoU FrOM LiTHiNiaTh?'"); + elseif(e.message:findi("loot")) then + e.self:Say("Prince Thirneg of the Tunarean Court has amassed a vast supply of phat lewts! Perhaps you should ask him for some!"); + elseif(e.message:findi("bristlebane")) then + e.self:Emote("smiles, exposing his yellowed equine teeth and emits a deep rumbling chuckle. 'I wOuLD ADviSe aGaiNST seEKing tHat inDiviDuAl. Trust me, he is quite mad!! HahahahHHHaAAahhaAhahahahHhahahaahahaHHHhahah!!'"); + elseif(e.message:findi("white stallion")) then + e.self:Say("WhY dOeS eVErYonE aSk mE abOuT tHaT crEAturE? ThE oNly sTalLions I hAVe sEeN aRe iN tHe PLaNe oF GrOwTh! SuReLy BrisTleBaNe iS cAUsiNg yOuR eYeS tO deCieVe yOu!! NeXt yOu'rE gOiNg tO tEll Me tHeRe aRe fLyiNG MOnkeYs! ThEre sHaLL bE nO mOre tALk oF nOn eXistaNt cReAturEs."); + elseif(e.message:findi("tunarean court")) then + e.self:Say("I aM nO LoNger AFfiLiaTeD wItH thAt pArtiCulaR sOciEtY oF bEiNgs. I hAve bEcOme thE aNtiTheSis Of tHeiR maGicAl naTuRe sO Am nO LOngEr weLcOme iN mY foREst."); + elseif(e.message:findi("forest")) then + e.self:Say("THaT's riGHt. It'S mY foREst."); + end +end diff --git a/mischiefplane/Mister_Malodor.lua b/mischiefplane/Mister_Malodor.lua new file mode 100644 index 0000000..f56811e --- /dev/null +++ b/mischiefplane/Mister_Malodor.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:CastSpell(906,e.other:GetID(),0,5); -- Spell: SkunkSpray + e.self:Say("QUIET!!! People are trying to study around here! Keep your yap shut!"); + end +end diff --git a/mischiefplane/Peachy_D-Vicci.lua b/mischiefplane/Peachy_D-Vicci.lua new file mode 100644 index 0000000..a5aa482 --- /dev/null +++ b/mischiefplane/Peachy_D-Vicci.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey there! Wanna test your luck? I have here my mystery satchel filled with gifts. Sometimes you get something nice, and sometimes ya get nothing at all. Wanna give it a shot? It only costs four funnies."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9504,item2 = 9504,item3 = 9504,item4 = 9504}, 0)) then + e.self:Emote("reaches into her satchel and pulls out a small box. 'Here ya go! Enjoy it. Come back soon. Just a warning though, I cant give you a box that you already have. There isn't enough for everyone you know!'"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(9505,9506,9507,9508,9509,9511,9512,9513,6877)); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/mischiefplane/Pinky_Ekkolofezznaboten_III.lua b/mischiefplane/Pinky_Ekkolofezznaboten_III.lua new file mode 100644 index 0000000..e1812af --- /dev/null +++ b/mischiefplane/Pinky_Ekkolofezznaboten_III.lua @@ -0,0 +1,12 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Knock knock."); + elseif(e.message:findi("whos there") or e.message:findi("who there") or e.message:findi("there")) then + e.self:Say("Will."); + elseif(e.message:findi("will who")) then + e.self:Say("Will you tell ME a knock knock joke?"); + elseif(e.message:findi("knock knock joke")) then + e.self:Say("Here is a knock for ya! Har har har haaaarrr!!!"); + e.self:CastSpell(904,e.other:GetID()); -- Spell: Knockback + end +end diff --git a/mischiefplane/Posie_the_Librarian.lua b/mischiefplane/Posie_the_Librarian.lua new file mode 100644 index 0000000..c8c2514 --- /dev/null +++ b/mischiefplane/Posie_the_Librarian.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("SHHHHH! QUIET!! And how dare you enter here without a library card! It's " .. e.other:Race() .. " like you who have ruined your own books! You'll not ruin mine!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9510}, 0)) then + e.self:Say("Ahh, you brought your card. Let's see here. " .. e.other:GetCleanName() .. ", is it? Here's the only book we have stocked at the moment. It's missing the chapter on wealth but there's an excellent story about melting your clothing in a pot on page 11. It's a one of a kind story written completely in invisible ink. Enjoy!"); + e.other:QuestReward(e.self,0,0,0,0,17325,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/mischiefplane/Rissa.lua b/mischiefplane/Rissa.lua new file mode 100644 index 0000000..ac6868b --- /dev/null +++ b/mischiefplane/Rissa.lua @@ -0,0 +1,21 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_waypoint_arrive(e) + if(e.wp == 1) then + e.self:Say("Ahhhhhh! Someone help me! This crazy Bixie is chasing me!"); + elseif(e.wp == 9) then + e.self:Say("Its almost got me! Someone help!"); + elseif(e.wp == 12) then + e.self:Say("Won't anyone help me! Ahhh!"); + elseif(e.wp == 16) then + e.self:Say("NO NO NO NO! I can keep running! You will not catch me you crazed Bixie!"); + elseif(e.wp == 21) then + e.self:Say("These legs will carry me to salvation! Someone get this Bixie off me!"); + elseif(e.wp == 24) then + e.self:Say("Maybe if it rains, her wings will be wet and I can get her!"); + elseif(e.wp == 28) then + e.self:Say("Blast it all! No help! No help from anyone I see! AHHHHHH!"); + end +end \ No newline at end of file diff --git a/mischiefplane/Roxxanne.lua b/mischiefplane/Roxxanne.lua new file mode 100644 index 0000000..8807951 --- /dev/null +++ b/mischiefplane/Roxxanne.lua @@ -0,0 +1,20 @@ +function event_say(e) + Brittina = eq.get_entity_list():GetMobByNpcTypeID(126213); + Ashley = eq.get_entity_list():GetMobByNpcTypeID(126207); + Diana = eq.get_entity_list():GetMobByNpcTypeID(126187); + + if(e.message:findi("hail")) then + e.self:Say("Well hello! We are great dancers. Would you like to see us dance? Or maybe you would like us to teach you to dance?"); + elseif(e.message:findi("see you dance")) then + Brittina:Say("Hey! Yeah! Do the Marinara!"); + Ashley:Say("Hey! Yeah! Do the Marinara!"); + Diana:Say("Hey! Yeah! Do the Marinara!"); + Brittina:DoAnim(33); + Ashley:DoAnim(33); + Diana:DoAnim(33); + e.self:DoAnim(33); + elseif(e.message:findi("teach me")) then + e.self:CastSpell(806,e.other:GetID()); -- Spell: Magi Curse + e.self:Say("Look at you! You can dance! Go, go, go! That's the spirit, you got it! Keep up the good work! Don't get too tired now, you are looking a little pale!"); + end +end diff --git a/mischiefplane/Vinny_V._D-vicci.lua b/mischiefplane/Vinny_V._D-vicci.lua new file mode 100644 index 0000000..398ffd9 --- /dev/null +++ b/mischiefplane/Vinny_V._D-vicci.lua @@ -0,0 +1,26 @@ +function event_spawn(e) + eq.set_timer("fishing",94000); +end + +function event_say(e) + if(e.message:findi("pot of gold") or e.message:findi("pot o gold")) then + e.self:Say("Pot o` gold? Bwahahahaha! Only pot around is them ones I warsh my clothes in. Gotta be careful though, one time I dropped one of dem woids of wealth in and BADABING no clothes jus a stinkin coin that wouldn't buy me a fishin grub."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6876}, 0)) then + e.self:Say("Nice work kid. Now I'm feelin lucky. So's ya say ya wanna learn about cards right? Lemme tell ya. Them cards are nice but lets have some REAL fun. Yer resourceful, I like that. What say we take over this joint fer ourselves? Ol' Bristle's gettin soft, ya know? Wadda ya say? Man or mouse?"); + e.other:Faction(e.self,437,2); -- Faction: Denizens of Mischief + e.other:QuestReward(e.self,0,0,0,0,0,100); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + if(e.timer == "fishing") then + e.self:Say("I'm fishing fishing fishing. I fish the whole week through. Just fishing fishing fishing. It's what I always do."); + end +end diff --git a/mischiefplane/a_dandy_pansy.lua b/mischiefplane/a_dandy_pansy.lua new file mode 100644 index 0000000..f35bc29 --- /dev/null +++ b/mischiefplane/a_dandy_pansy.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/mischiefplane/a_grumpy_tree.lua b/mischiefplane/a_grumpy_tree.lua new file mode 100644 index 0000000..48122eb --- /dev/null +++ b/mischiefplane/a_grumpy_tree.lua @@ -0,0 +1,24 @@ +local pansy = 0; + +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 65, ex + 65, ey - 65, ey + 65, ez - 10, ez + 20); +end + +function event_enter(e) + e.self:Emote("throws a bunch of pansies at you."); + pansy = math.random(1,5); + if(pansy == 5) then + eq.spawn2(eq.ChooseRandom(126002,126001,126003,126000),0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- NPC(s): a_dandy_pansy (126002), a_pretty_ugly_pansy (126001), a_puny_pansy (126003), an_angry_pansy (126000) + eq.spawn2(eq.ChooseRandom(126002,126001,126003,126000),0,0,e.self:GetX()-2,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- NPC(s): a_dandy_pansy (126002), a_pretty_ugly_pansy (126001), a_puny_pansy (126003), an_angry_pansy (126000) + eq.spawn2(eq.ChooseRandom(126002,126001,126003,126000),0,0,e.self:GetX()+2,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- NPC(s): a_dandy_pansy (126002), a_pretty_ugly_pansy (126001), a_puny_pansy (126003), an_angry_pansy (126000) + elseif(pansy == 3 or pansy == 4) then + eq.spawn2(eq.ChooseRandom(126002,126001,126003,126000),0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- NPC(s): a_dandy_pansy (126002), a_pretty_ugly_pansy (126001), a_puny_pansy (126003), an_angry_pansy (126000) + eq.spawn2(eq.ChooseRandom(126002,126001,126003,126000),0,0,e.self:GetX()-2,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- NPC(s): a_dandy_pansy (126002), a_pretty_ugly_pansy (126001), a_puny_pansy (126003), an_angry_pansy (126000) + else + eq.spawn2(eq.ChooseRandom(126002,126001,126003,126000),0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- NPC(s): a_dandy_pansy (126002), a_pretty_ugly_pansy (126001), a_puny_pansy (126003), an_angry_pansy (126000) + end + eq.depop_with_timer(); +end diff --git a/mischiefplane/a_lost_gnome.lua b/mischiefplane/a_lost_gnome.lua new file mode 100644 index 0000000..b80e754 --- /dev/null +++ b/mischiefplane/a_lost_gnome.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Don't look at me. I'm as lost as you look."); + end +end diff --git a/mischiefplane/a_pretty_ugly_pansy.lua b/mischiefplane/a_pretty_ugly_pansy.lua new file mode 100644 index 0000000..2f544c6 --- /dev/null +++ b/mischiefplane/a_pretty_ugly_pansy.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop",120000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/mischiefplane/a_pristine_gate.lua b/mischiefplane/a_pristine_gate.lua new file mode 100644 index 0000000..b550839 --- /dev/null +++ b/mischiefplane/a_pristine_gate.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 65, ex + 65, ey - 65, ey + 65, ez - 10, ez + 20); +end + +function event_enter(e) + e.self:CastSpell(2098,e.other:GetID(),0,1); -- Spell: Nulling Void +end diff --git a/mischiefplane/a_puny_pansy.lua b/mischiefplane/a_puny_pansy.lua new file mode 100644 index 0000000..f35bc29 --- /dev/null +++ b/mischiefplane/a_puny_pansy.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/mischiefplane/a_white_stallion.lua b/mischiefplane/a_white_stallion.lua new file mode 100644 index 0000000..84ba57e --- /dev/null +++ b/mischiefplane/a_white_stallion.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares at " .. e.other:GetCleanName() .. " unblinking with colorless eyes."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 22856}, 0)) then + e.other:QuestReward(e.self,0,0,0,0,24869,5000); + eq.unique_spawn(126014,6,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/mischiefplane/an_angry_pansy.lua b/mischiefplane/an_angry_pansy.lua new file mode 100644 index 0000000..2f544c6 --- /dev/null +++ b/mischiefplane/an_angry_pansy.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop",120000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/mischiefplane/encounters/foresttreasure.lua b/mischiefplane/encounters/foresttreasure.lua new file mode 100644 index 0000000..2fa0007 --- /dev/null +++ b/mischiefplane/encounters/foresttreasure.lua @@ -0,0 +1,89 @@ +local switch = 0; + +function TreasureSpawn(e) + eq.set_timer("rotate",47000); + e.self:SetRunspeed(0); + e.self:SetWalkspeed(0); +end + +function TreasureCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("rotate")) then + eq.pause_timer("rotate"); + end + else + eq.resume_timer("rotate"); + end +end + +function TreasureTimer(e) + Pela = eq.get_entity_list():GetMobByNpcTypeID(126271); + Klia = eq.get_entity_list():GetMobByNpcTypeID(126164); + Xnyl = eq.get_entity_list():GetMobByNpcTypeID(126237); + Mnyup = eq.get_entity_list():GetMobByNpcTypeID(126267); + if(e.timer == "rotate") then + switch = switch + 1; + if(switch == 1) then + e.self:Say("Go First"); + Pela:CastToNPC():MoveTo(697,-410,94,166,true); + Klia:CastToNPC():MoveTo(721,-383,94,237,true); + Xnyl:CastToNPC():MoveTo(735,-404,94,33,true); + Mnyup:CastToNPC():MoveTo(715,-422,94,93,true); + elseif(switch == 2) then + e.self:Say("Go Two"); + Pela:CastToNPC():MoveTo(715,-422,94,93,true); + Klia:CastToNPC():MoveTo(697,-410,94,166,true); + Xnyl:CastToNPC():MoveTo(721,-383,94,237,true); + Mnyup:CastToNPC():MoveTo(735,-404,94,33,true); + elseif(switch == 3) then + e.self:Say("Go Three"); + Pela:CastToNPC():MoveTo(721,-383,94,237,true); + Klia:CastToNPC():MoveTo(735,-404,94,33,true); + Xnyl:CastToNPC():MoveTo(715,-422,94,93,true); + Mnyup:CastToNPC():MoveTo(697,-410,94,166,true); + switch = 0; + end + end +end + +function PelaSay(e) + if(e.message:findi("hail")) then + if(math.random(100) < 40) then + eq.get_entity_list():GetMobByNpcTypeID(126343):AddToHateList(e.other,1); + end + end +end + +function KliaSay(e) + if(e.message:findi("hail")) then + if(math.random(100) < 40) then + eq.get_entity_list():GetMobByNpcTypeID(126343):AddToHateList(e.other,1); + end + end +end + +function XnylSay(e) + if(e.message:findi("hail")) then + if(math.random(100) < 40) then + eq.get_entity_list():GetMobByNpcTypeID(126343):AddToHateList(e.other,1); + end + end +end + +function MnyupSay(e) + if(e.message:findi("hail")) then + if(math.random(100) < 40) then + eq.get_entity_list():GetMobByNpcTypeID(126343):AddToHateList(e.other,1); + end + end +end + +function event_encounter_load(e) + eq.register_npc_event("foresttreasure", Event.spawn, 126343, TreasureSpawn); + eq.register_npc_event("foresttreasure", Event.combat, 126343, TreasureCombat); + eq.register_npc_event("foresttreasure", Event.timer, 126343, TreasureTimer); + eq.register_npc_event("foresttreasure", Event.say, 126271, PelaSay); + eq.register_npc_event("foresttreasure", Event.say, 126164, KliaSay); + eq.register_npc_event("foresttreasure", Event.say, 126237, XnylSay); + eq.register_npc_event("foresttreasure", Event.say, 126267, MnyupSay); +end diff --git a/mischiefplane/encounters/knight.lua b/mischiefplane/encounters/knight.lua new file mode 100644 index 0000000..c73260f --- /dev/null +++ b/mischiefplane/encounters/knight.lua @@ -0,0 +1,76 @@ +function KnightSpawn(e) + RandomKnight(); +end + +function RandomKnight() + knight = eq.ChooseRandom(126180,126379); + eq.spawn2(knight,0,0,-237,116,74,0); +end + +function KnightSignal(e) + eq.set_timer("spawn",780000); +end + +function KnightTimer(e) + RandomKnight(); + eq.stop_timer("spawn"); +end + +function WhiteDeath(e) + eq.signal(126022,1); -- NPC: knightspawner +end + +function BlackDeath(e) + eq.signal(126022,1); -- NPC: knightspawner +end + +function WhiteSay(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings! It is good to see another face within these depths. I have been traveling these mazes for many months now. Judging by the look of you, I do not expect that you will locate the exit. Especially since I have not yet been able to. My only wish is to find a squire to complete my knighthood. Say you wouldn't happen to... never mind. I do not expect that you can even comprehend the full extent of my attempt to communicate with you. Shove off commoner."); + end +end + +function BlackSay(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, friend. Perhaps an intelligent " .. e.other:Race() .. " such as you can assist me in a friendly game of find the exit. I really like being with friends rather than being alo... No! NONONO! Make the fluffy goodness stop! You must help me! Squire!!! Squire! Curse him where is he when I need him. Find my squire you pathetic fool!"); + eq.spawn2(126180,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop(); + end +end + +function WhiteTrade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 24565}, 0)) then + e.self:Say("You have found it!! Thank Tunare! I apologize for my rude behaviour. These tunnels twist and bend my very thoughts. Perhaps this will assist you in your escape from this cruel joke Fizzlethorpe has been playing with our minds. I thank you friend."); + e.other:QuestReward(e.self,{items = {13073,13073,13073,13073},exp = 10000}); -- Item: Bone Chips 4x + eq.spawn2(126379,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function BlackTrade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 24553}, 0)) then + e.self:Say("You have found it!! Thank Tunare! I apologize for my rude behaviour. These tunnels twist and bend my very thoughts. Perhaps this will assist you in your escape from this cruel joke Fizzlethorpe has been playing with our minds. I thank you friend."); + e.other:QuestReward(e.self,{items = {10028,10028,10028,10028},exp = 10000}); -- Item: Peridot 4x + eq.spawn2(126180,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + + +function event_encounter_load(e) + eq.register_npc_event("knight", Event.spawn, 126022, KnightSpawn); + eq.register_npc_event("knight", Event.signal, 126022, KnightSignal); + eq.register_npc_event("knight", Event.timer, 126022, KnightTimer); + eq.register_npc_event("knight", Event.death_complete, 126180, WhiteDeath); + eq.register_npc_event("knight", Event.death_complete, 126379, BlackDeath); + eq.register_npc_event("knight", Event.say, 126180, WhiteSay); + eq.register_npc_event("knight", Event.say, 126379, BlackSay); + eq.register_npc_event("knight", Event.trade, 126180, WhiteTrade); + eq.register_npc_event("knight", Event.trade, 126379, BlackTrade); +end diff --git a/mischiefplane/encounters/mainhalltreasure.lua b/mischiefplane/encounters/mainhalltreasure.lua new file mode 100644 index 0000000..d45148e --- /dev/null +++ b/mischiefplane/encounters/mainhalltreasure.lua @@ -0,0 +1,154 @@ +function TreasureCombat(e) + if(e.joined) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126268)) then + eq.get_entity_list():GetMobByNpcTypeID(126268):Say("Oh my! You've done gone made them angry. I'm outta here."); + eq.depop_with_timer(126268); + end + spawnhaflings(e); + end +end + +function spawnhaflings(e) + eq.unique_spawn(126007,0,0,-301,152,118,194); -- NPC: #Dupple + eq.unique_spawn(126012,0,0,-441,186,118,128); -- NPC: #Snitch + eq.unique_spawn(126006,0,0,-480,147,118,62); -- NPC: #Blich + eq.unique_spawn(126013,0,0,-479,44,118,62); -- NPC: #Stitch + eq.unique_spawn(126008,0,0,-437,9,118,0); -- NPC: #Kitch + eq.unique_spawn(126011,0,0,-340,6,118,0); -- NPC: #Plupple + eq.unique_spawn(126009,0,0,-300,48,118,194); -- NPC: #Krupple + eq.unique_spawn(126010,0,0,-341,186,118,128); -- NPC: #Nupple +end + +function Half1Spawn(e) + eq.set_timer("depop",300000); +end + +function Half2Spawn(e) + eq.set_timer("depop",300000); +end + +function Half3Spawn(e) + eq.set_timer("depop",300000); +end + +function Half4Spawn(e) + eq.set_timer("depop",300000); +end + +function Half5Spawn(e) + eq.set_timer("depop",300000); +end + +function Half6Spawn(e) + eq.set_timer("depop",300000); +end + +function Half7Spawn(e) + eq.set_timer("depop",300000); +end + +function Half8Spawn(e) + eq.set_timer("depop",300000); +end + +function Half1Timer(e) + eq.depop(); +end + +function Half2Timer(e) + eq.depop(); +end + +function Half3Timer(e) + eq.depop(); +end + +function Half4Timer(e) + eq.depop(); +end + +function Half5Timer(e) + eq.depop(); +end + +function Half6Timer(e) + eq.depop(); +end + +function Half7Timer(e) + eq.depop(); +end + +function Half8Timer(e) + eq.depop(); +end + +function Half1Combat(e) + combat(e); +end + +function Half2Combat(e) + combat(e); +end + +function Half3Combat(e) + combat(e); +end + +function Half4Combat(e) + combat(e); +end + +function Half5Combat(e) + combat(e); +end + +function Half6Combat(e) + combat(e); +end + +function Half7Combat(e) + combat(e); +end + +function Half8Combat(e) + combat(e); +end + +function combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("mainhalltreasure", Event.combat, 126004, TreasureCombat); + eq.register_npc_event("mainhalltreasure", Event.spawn, 126006, Half1Spawn); + eq.register_npc_event("mainhalltreasure", Event.spawn, 126007, Half2Spawn); + eq.register_npc_event("mainhalltreasure", Event.spawn, 126008, Half3Spawn); + eq.register_npc_event("mainhalltreasure", Event.spawn, 126009, Half4Spawn); + eq.register_npc_event("mainhalltreasure", Event.spawn, 126010, Half5Spawn); + eq.register_npc_event("mainhalltreasure", Event.spawn, 126011, Half6Spawn); + eq.register_npc_event("mainhalltreasure", Event.spawn, 126012, Half7Spawn); + eq.register_npc_event("mainhalltreasure", Event.spawn, 126013, Half8Spawn); + eq.register_npc_event("mainhalltreasure", Event.timer, 126006, Half1Timer); + eq.register_npc_event("mainhalltreasure", Event.timer, 126007, Half2Timer); + eq.register_npc_event("mainhalltreasure", Event.timer, 126008, Half3Timer); + eq.register_npc_event("mainhalltreasure", Event.timer, 126009, Half4Timer); + eq.register_npc_event("mainhalltreasure", Event.timer, 126010, Half5Timer); + eq.register_npc_event("mainhalltreasure", Event.timer, 126011, Half6Timer); + eq.register_npc_event("mainhalltreasure", Event.timer, 126012, Half7Timer); + eq.register_npc_event("mainhalltreasure", Event.timer, 126013, Half8Timer); + eq.register_npc_event("mainhalltreasure", Event.combat, 126006, Half1Combat); + eq.register_npc_event("mainhalltreasure", Event.combat, 126007, Half2Combat); + eq.register_npc_event("mainhalltreasure", Event.combat, 126008, Half3Combat); + eq.register_npc_event("mainhalltreasure", Event.combat, 126009, Half4Combat); + eq.register_npc_event("mainhalltreasure", Event.combat, 126010, Half5Combat); + eq.register_npc_event("mainhalltreasure", Event.combat, 126011, Half6Combat); + eq.register_npc_event("mainhalltreasure", Event.combat, 126012, Half7Combat); + eq.register_npc_event("mainhalltreasure", Event.combat, 126013, Half8Combat); +end diff --git a/mischiefplane/encounters/theater.lua b/mischiefplane/encounters/theater.lua new file mode 100644 index 0000000..52baf94 --- /dev/null +++ b/mischiefplane/encounters/theater.lua @@ -0,0 +1,367 @@ +local Spawner = 0; +local Where = 0; + +function TriggerSpawn(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126209)) then + eq.depop(126209) + end + eq.set_timer("spawn",1000); +end + +function TriggerTimer(e) + eq.spawn2(126209,0,0,162,475,119,0); -- NPC: DancingDirector + eq.stop_timer("spawn"); +end + +function TheaterSpawn(e) + eq.set_timer("spawn",47000); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126248)) then + eq.depop(126248); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126252)) then + eq.depop(126252); + end + eq.spawn2(126248,7,0,66,405,119,0); -- NPC: #Geb + eq.spawn2(126252,8,0,258,405,119,0); -- NPC: #Selvz +end + +function TheaterTimer(e) + if(e.timer == "spawn") then + Spawner = Spawner + 1; + if(Spawner == 1) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126327)) then + eq.depop(126327); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126331)) then + eq.depop(126331); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126324)) then + eq.depop(126324); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126335)) then + eq.depop(126335); + end + eq.spawn2(126327,9,0,66,405,119,0); -- NPC: #Lelp + eq.spawn2(126331,10,0,66,405,119,0); -- NPC: #Brendaine + eq.spawn2(126324,11,0,258,405,119,0); -- NPC: #Forlus + eq.spawn2(126335,12,0,258,405,119,0); -- NPC: #Terana + elseif(Spawner == 2) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126334)) then + eq.depop(126334); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126342)) then + eq.depop(126342); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126338)) then + eq.depop(126338); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126323)) then + eq.depop(126323); + end + eq.spawn2(126334,13,0,66,405,119,0); -- NPC: #Osfof + eq.spawn2(126342,14,0,66,405,119,0); -- NPC: #Snide + eq.spawn2(126338,15,0,258,405,119,0); -- NPC: #Verna + eq.spawn2(126323,16,0,258,405,119,0); -- NPC: #Lelel + elseif(Spawner == 3) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126254)) then + eq.depop(126254); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126173)) then + eq.depop(126173); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126211)) then + eq.depop(126211); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126295)) then + eq.depop(126295); + end + eq.spawn2(126254,17,0,66,405,119,0); -- NPC: #Bidalla + eq.spawn2(126173,18,0,66,405,119,0); -- NPC: #Kelld + eq.spawn2(126211,19,0,258,405,119,0); -- NPC: #Zerna + eq.spawn2(126295,20,0,258,405,119,0); -- NPC: #Siris + elseif(Spawner == 4) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126178)) then + eq.depop(126178); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126227)) then + eq.depop(126227); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126251)) then + eq.depop(126251); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126158)) then + eq.depop(126158); + end + eq.spawn2(126178,21,0,66,405,119,0); -- NPC: #Jinara + eq.spawn2(126227,22,0,66,405,119,0); -- NPC: #Nerzuz + eq.spawn2(126251,23,0,258,405,119,0); -- NPC: #Tolas + eq.spawn2(126158,24,0,258,405,119,0); -- NPC: #Loplo + elseif(Spawner == 5) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126157)) then + eq.depop(126157); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126200)) then + eq.depop(126200); + end + eq.spawn2(126157,25,0,66,405,119,0); -- NPC: #Hiana + eq.spawn2(126200,26,0,258,405,119,0); -- NPC: #Uinus + elseif(Spawner == 6) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126016)) then + eq.depop(126016); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126021)) then + eq.depop(126021); + end + eq.spawn2(126016,0,0,153,603,146,128); -- Tunare Puppet + eq.spawn2(126021,0,0,177,603,147,128); -- Bristlebane Puppet + elseif(Spawner == 7) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126017)) then + eq.depop_all(126017); + end + eq.spawn2(126017,0,0,151,624,146,128); -- Tribunal Puppet + eq.spawn2(126017,0,0,138,624,146,128); -- Tribunal Puppet + elseif(Spawner == 8) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126019)) then + eq.depop(126019); + end + eq.spawn2(126017,0,0,145,624,146,128); -- Tribunal Puppet + eq.spawn2(126019,0,0,167,624,146,128); -- Erollisi Puppet + elseif(Spawner == 9) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126015)) then + eq.depop(126015); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126018)) then + eq.depop(126018); + end + eq.spawn2(126015,0,0,160,624,146,128); -- Innoruuk Puppet + eq.spawn2(126018,0,0,185,624,146,128); -- Solusek Puppet + elseif(Spawner == 10) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126020)) then + eq.depop(126020); + end + eq.spawn2(126020,0,0,174,624,146,128); -- Rallos Puppet + + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126248)) then -- check if Geb is up + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(126160)) then + eq.depop(126160); + end + eq.stop_timer("spawn"); + eq.spawn2(126160,0,0,162,427,154,0); -- Bristlebane + Spawner = 0; + else + eq.stop_timer("spawn"); + Spawner = 0; + eq.depop(); + end + end + end +end + +function GebGo(e) + if(e.wp == 8) then + e.self:SetAppearance(1); + end +end + +function SelvGo(e) + if(e.wp == 8) then + e.self:SetAppearance(1); + end +end + +function LelpGo(e) + if(e.wp == 8) then + e.self:SetAppearance(1); + end +end + +function BrendaineGo(e) + if(e.wp == 8) then + e.self:SetAppearance(1); + end +end + +function ForlusGo(e) + if(e.wp == 8) then + e.self:SetAppearance(1); + end +end + +function TeranaGo(e) + if(e.wp == 8) then + e.self:SetAppearance(1); + end +end + +function OsfofGo(e) + if(e.wp == 8) then + e.self:SetAppearance(1); + end +end + +function SnideGo(e) + if(e.wp == 8) then + e.self:SetAppearance(1); + end +end + +function VernaGo(e) + if(e.wp == 8) then + e.self:SetAppearance(1); + end +end + +function LelelGo(e) + if(e.wp == 8) then + e.self:SetAppearance(1); + end +end + +function BidallaGo(e) + if(e.wp == 8) then + e.self:SetAppearance(1); + end +end + +function KelldGo(e) + if(e.wp == 8) then + e.self:SetAppearance(1); + end +end + +function ZernaGo(e) + if(e.wp == 8) then + e.self:SetAppearance(1); + end +end + +function SirisGo(e) + if(e.wp == 8) then + e.self:SetAppearance(1); + end +end + +function JinaraGo(e) + if(e.wp == 8) then + e.self:SetAppearance(1); + end +end + +function NerzuzGo(e) + if(e.wp == 8) then + e.self:SetAppearance(1); + end +end + +function TolasGo(e) + if(e.wp == 8) then + e.self:SetAppearance(1); + end +end + +function LoploGo(e) + if(e.wp == 8) then + e.self:SetAppearance(1); + end +end + +function HianaGo(e) + if(e.wp == 8) then + e.self:SetAppearance(1); + end +end + +function UinusGo(e) + if(e.wp == 8) then + e.self:SetAppearance(1); + end +end + +function BristleSpawn(e) + eq.set_timer("cazic",47000); +end + +function BristleTimer(e) + Where = Where + 1; + if(Where == 1) then + e.self:Shout("Bah! Where be the Cazic Thule Puppet! Ridiculously funny!"); + elseif(Where == 2) then + e.self:Say("Well, there is nothing to see here! Go home everyone!"); + elseif(Where == 3) then + eq.stop_timer("cazic"); + Where = 0; + DepopTheater(); + end +end + +function BristleCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("cazic")) then + eq.pause_timer("cazic"); + end + else + eq.resume_timer("cazic"); + end +end + +function DepopTheater() + eq.depop_all(126248); + eq.depop_all(126252); + eq.depop_all(126327); + eq.depop_all(126331); + eq.depop_all(126324); + eq.depop_all(126335); + eq.depop_all(126334); + eq.depop_all(126342); + eq.depop_all(126338); + eq.depop_all(126323); + eq.depop_all(126254); + eq.depop_all(126173); + eq.depop_all(126211); + eq.depop_all(126295); + eq.depop_all(126178); + eq.depop_all(126227); + eq.depop_all(126251); + eq.depop_all(126158); + eq.depop_all(126157); + eq.depop_all(126200); + eq.depop_all(126016); + eq.depop_all(126021); + eq.depop_all(126017); + eq.depop_all(126019); + eq.depop_all(126015); + eq.depop_all(126018); + eq.depop_all(126020); + eq.depop_all(126160); + eq.depop_all(126209); +end + +function event_encounter_load(e) + eq.register_npc_event("theater", Event.spawn, 126193, TriggerSpawn); + eq.register_npc_event("theater", Event.timer, 126193, TriggerTimer); + eq.register_npc_event("theater", Event.spawn, 126209, TheaterSpawn); + eq.register_npc_event("theater", Event.timer, 126209, TheaterTimer); + eq.register_npc_event("theater", Event.waypoint_arrive, 126248, GebGo); -- Geb + eq.register_npc_event("theater", Event.waypoint_arrive, 126252, SelvGo); -- Selvo + eq.register_npc_event("theater", Event.waypoint_arrive, 126327, LelpGo); -- Lelp + eq.register_npc_event("theater", Event.waypoint_arrive, 126331, BrendaineGo); -- Brendaine + eq.register_npc_event("theater", Event.waypoint_arrive, 126324, ForlusGo); -- Forlus + eq.register_npc_event("theater", Event.waypoint_arrive, 126335, TeranaGo); -- Terana + eq.register_npc_event("theater", Event.waypoint_arrive, 126334, OsfofGo); -- Osfof + eq.register_npc_event("theater", Event.waypoint_arrive, 126342, SnideGo); -- Snide + eq.register_npc_event("theater", Event.waypoint_arrive, 126338, VernaGo); -- Verna + eq.register_npc_event("theater", Event.waypoint_arrive, 126323, LelelGo); -- Lelel + eq.register_npc_event("theater", Event.waypoint_arrive, 126254, BidallaGo); -- Bidalla + eq.register_npc_event("theater", Event.waypoint_arrive, 126173, KelldGo); -- Kelld + eq.register_npc_event("theater", Event.waypoint_arrive, 126211, ZernaGo); -- Zerna + eq.register_npc_event("theater", Event.waypoint_arrive, 126295, SirisGo); -- Siris + eq.register_npc_event("theater", Event.waypoint_arrive, 126178, JinaraGo); -- Jinara + eq.register_npc_event("theater", Event.waypoint_arrive, 126227, NerzuzGo); -- Nerzuz + eq.register_npc_event("theater", Event.waypoint_arrive, 126251, TolasGo); -- Tolas + eq.register_npc_event("theater", Event.waypoint_arrive, 126158, LoploGo); -- Loplo + eq.register_npc_event("theater", Event.waypoint_arrive, 126157, HianaGo); -- Hiana + eq.register_npc_event("theater", Event.waypoint_arrive, 126200, UinusGo); -- Uinus + eq.register_npc_event("theater", Event.spawn, 126160, BristleSpawn); + eq.register_npc_event("theater", Event.combat, 126160, BristleCombat); + eq.register_npc_event("theater", Event.timer, 126160, BristleTimer); +end diff --git a/mischiefplane/script_init.lua b/mischiefplane/script_init.lua new file mode 100644 index 0000000..40001db --- /dev/null +++ b/mischiefplane/script_init.lua @@ -0,0 +1,4 @@ +eq.load_encounter("mainhalltreasure"); +eq.load_encounter("foresttreasure"); +eq.load_encounter("theater"); +eq.load_encounter("knight"); diff --git a/mistmoore/Black_Dire.lua b/mistmoore/Black_Dire.lua new file mode 100644 index 0000000..7873ed6 --- /dev/null +++ b/mistmoore/Black_Dire.lua @@ -0,0 +1,26 @@ +-- for shaman epic +function event_spawn(e) + eq.set_timer("depop",2100000); +end + +function event_timer(e) + eq.depop_with_timer(); +end + +function event_say(e) + if(e.other:GetFaction(e.self) < 3) then -- need warmly with true spirit. + if(e.message:findi("hail")) then + e.self:Say("So, you've come. I suppose my brothers have sent you to lead me back to their flock. Those fools are so blinded by their devotion they know nothing of life. If they only knew the power I've become, the luxuries I've amassed, the pleasures I've known, they too would leave that sour and unrewarding existence in seconds. You know, you could come to know what I have, shaman. You found me, which speaks of your intelligence; we could use you. What do you say, " .. e.other:GetCleanName() .. "? [Will you join] my master Mayong Mistmoore?"); + elseif(e.message:findi("will not join")) then + e.self:Say("Good shaman, now bare your neck that I may show our master your devotion in death. The more blood you spill upon the grass, the more impressed our Lord Mistmoore will be. Then maybe, just maybe, you will be allowed to scour our kitchen floors in the eternity of unlife. TEAR him to pieces, my wolves!"); + eq.attack(e.other:GetName()); + end + else + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/mistmoore/Ssynthi.lua b/mistmoore/Ssynthi.lua new file mode 100644 index 0000000..57f7043 --- /dev/null +++ b/mistmoore/Ssynthi.lua @@ -0,0 +1,23 @@ +-- Quest for Scepter of Sorrow + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am Ssynthi, [Warder of Ro]. Would you do a simple [service] for me?"); + elseif(e.message:findi("warder of ro")) then + e.self:Say("I have renounced my ties to the Shadowed Men and become a follower of the one True Flame, Solusek Ro. I have hopes that one day my brethren will see the errors of their ways and cease their mindless war."); + elseif(e.message:findi("service")) then + e.self:Say("The body of my true love lies within this tomb. I see a token to remember her by the flower which lies atop her coffin. I would get it myself, but the tomb is warded against my kind. Since I can not enter, I ask you to fetch it for me."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14362})) then -- Flower + e.self:Say("Thank you. Since you have done me a service with no thought of reward, I offer you this small token of my favor."); + e.other:Faction(e.self,415,1); -- Temple of Solusek Ro + e.other:Faction(e.self,416,-1); -- Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,14364,1000); -- Scepter + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/mistmoore/an_advisor.lua b/mistmoore/an_advisor.lua new file mode 100644 index 0000000..9e26d31 --- /dev/null +++ b/mistmoore/an_advisor.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + eq.attack(e.other:GetName()); + end +end + +function event_death_complete(e) + eq.unique_spawn(59129,0,0,-165,90,-221,56); -- spawn Black Dire +end \ No newline at end of file diff --git a/mistmoore/an_avenging_caitiff.lua b/mistmoore/an_avenging_caitiff.lua new file mode 100644 index 0000000..bbb1dee --- /dev/null +++ b/mistmoore/an_avenging_caitiff.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("glares at you with fangs bared as he draws an electrum-bladed wakizashi."); + elseif(e.message:findi("electrum-bladed wakizashi")) then + e.self:Say("HA! As if a mortal such as yourself is worthy of such a weapon. Leave me to my mission - my purpose in life - the slaying of those who brought me into this existence, then exiled me from this place."); + elseif(e.message:findi("mother")) then + e.self:Say("My mother was named Issis. She is, to my knowledge, employed as Lord Mistmoores maid."); + elseif(e.message:findi("father")) then + e.self:Say("Syncall is my fathers name. He serves as Lord Mistmoores butler."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10179,item2 = 10178})) then + e.self:Say("Mother? Father? May you find peace at last. I shall avenge your suffering! I will grow stronger and set free the souls of the others."); + e.other:QuestReward(e.self,0,0,0,0,5408,50000); -- Item: Electrum-Bladed Wakizashi + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/mistmoore/player.lua b/mistmoore/player.lua new file mode 100644 index 0000000..e3f7e78 --- /dev/null +++ b/mistmoore/player.lua @@ -0,0 +1,18 @@ +function event_click_door(e) + local door_id = e.door:GetDoorID(); + local entity_list = eq.get_entity_list(); + + if(door_id == 5) then + OpenDoors(e,entity_list,door_id,7,9); + end +end + +function OpenDoors(e, entity_list, door_id, first_id, last_id) + for i = first_id, last_id, 1 do + -- the server handles the door actually clicked by the player. + -- if we do not exclude it, then it does not get opened. + if (door_id ~= i) then + entity_list:FindDoor(i):ForceOpen(e.self); + end + end +end \ No newline at end of file diff --git a/misty/#a_diseased_rat.lua b/misty/#a_diseased_rat.lua new file mode 100644 index 0000000..759e441 --- /dev/null +++ b/misty/#a_diseased_rat.lua @@ -0,0 +1,3 @@ +function event_spawn(e) + eq.attack_npc_type(33080); +end \ No newline at end of file diff --git a/misty/#a_halfling_skeleton.lua b/misty/#a_halfling_skeleton.lua new file mode 100644 index 0000000..759e441 --- /dev/null +++ b/misty/#a_halfling_skeleton.lua @@ -0,0 +1,3 @@ +function event_spawn(e) + eq.attack_npc_type(33080); +end \ No newline at end of file diff --git a/misty/Bidils_the_Quickhand.lua b/misty/Bidils_the_Quickhand.lua new file mode 100644 index 0000000..c918087 --- /dev/null +++ b/misty/Bidils_the_Quickhand.lua @@ -0,0 +1,43 @@ +---- Bidils_the_Quickhand.pl +---- Quest: The Realm of Heroes -- Misty Thicket + + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Why, hello there " .. e.other:GetCleanName() .. "! And what brings ya to see little old me? Oh, let me guess! I am sure it is because ya wish t'buy a good spot of Jumjum and listen to [my tale]? Oh, quite lovely so! Why else would one well rounded " .. e.other:Race() .. " come to see the great Bidils the Quickhand other than to hear of this rogue's great adventures!"); + elseif(e.message:findi("my tale")) then + e.self:Say("Ahhh. . . I see the gods have found the time to be now for a good ear to lend to my words! So long as ya share the Jumjum, I can speak t'ya of the endless adventures and triumphs of Bidils the Quickhand! Now. . . where shall I begin? Yes! [The beginning], of course! Indeed, quite lovely so."); + elseif(e.message:findi("The beginning")) then + e.self:Say("Yes, of course I shall begin at the beginning! No proper tale would begin anywhere other than the beginning! You see, good " .. e.other:Race() .. ", I was once a humble rog. . . [merchant] within this here fair city. Oh, how the Jumjum and gol. . . merchandise flowed in then! Quite lovely, indeed, it was. Well then, where was I?"); + elseif(e.message:findi("merchant")) then + e.self:Say("hhh yes! Those days were fair indeed. How I do miss them! Of course, that is not to say that Bidils the Quickhand does not appreciate the eyes and favor of [Bristlebane] upon him! In fact, it is quite the contrary! I do love a good prank! Yes, quite lovely so!"); + elseif(e.message:findi("Bristlebane")) then + e.self:Say("Fizzlethorp Bristlebane, indeed quite the trickster and with a sense of humor! I bet you could not have seen that Bidils the Quickhand would have caught the eye of such a dignified individual, now did ya? Yes, The King of Thieves. . . and merchants finds it amusing when one [takes his possessions]!"); + elseif(e.message:findi("takes his possessions")) then + e.self:Emote("eyes grow wide with an eager, child-like anticipation."); + e.self:Say("Oh yes! Upon one of my several adventures through this great, glorious land of Norrath, I did stumble upon a [lovely treasure], indeed! Great skill and cunning was used, skill that belonged only to Bidils the Quickhand, and has yet to be surpassed within this realm!"); + elseif(e.message:findi("lovely treasure")) then + e.self:Say("A lovely gem, far more beautiful than even the most delicate and fury feet of a halfling lass! It was larger than my face, and sparkled more than the most pure of Jumjum catching the rays of Karana's blessed skies! Indeed, it was a divine treasure to behold. . . but little then did I know that such a treasure truly belonged to the King of Thieves. . . and merchants himself! But no, such truths still would not have [stopped me]!"); + elseif(e.message:findi("stopped me")) then + e.self:Say("Ahh ha! I was not stopped, and the gem was mine! Right from beneath the arms of Bristlebane himself did I take it! That was when he noticed me. . . and that is when I was taken from the humble life of a merchant and placed within the glorious [realm of heroes]! Of course. . . Bristlebane took back the gem. What a shame. Indeed, quite so."); + elseif(e.message:findi("realm of heroes")) then + e.self:Say("The realm of heroes, that is my new home. . . Well, it was. Ahhh, indeed, it is quite lovely! It is where all that catch the eyes of the gods in favor ascend if their deeds be true and worthy enough for note! Perhaps one day, " .. e.other:GetCleanName() .. " , you shall rise as well!! Look at Bidils the Quickhand, once a sturdy merchant and now a [humble servant] and rewarder of deeds!"); + elseif(e.message:findi("humble servant")) then + e.self:Say("Yes! Indeed, a humble servant I am! I complain not for my occupation. . . as I am humble. I collect [deeds and make recognition] of those who have caught the eyes of the gods. Why the gods do it not themselves, I am lost for answers. . . but, I do not complain. They are gods, you know. Quite busy! Indeed, lovely so!"); + elseif(e.message:findi("deeds and make recognition")) then + e.self:Say("Deeds! Yes, the gods are quite tricky and intelligent you know! They have found a way to mark deeds in the form of a coin! A [coin] in which one who has been so fortunate enough as to accept would give to me. . . or one of the [other Heroes] that have recently come to this land."); + elseif(e.message:findi("other Heroes")) then + e.self:Say("Oh yes! I am not the only one who has returned to Norrath in search of Heroes! There are many others, indeed! Although, as the gods, their colors vary. Some are [kind and gentle] while some are [vile and nasty] beings of which ya should watch ya'r back for."); + elseif(e.message:findi("kind and gentle")) then + e.self:Emote("sighs heavily, a twinkle in his eye and warm smile upon his heavy cheeks."); + e.self:Say("Yes. . . none so as Ailerina the Gentle, as she was so rightfully named. A lovely lass. Tender as a gentle morning mist. . . Yes. . . Indeed, quite lovely so. An enchanting creature. . . and as pure as Tunare's good grace itself. It is no wonder she caught the Earth Mother's eye."); + elseif(e.message:findi("vile and nasty")) then + e.self:Emote("glares and spits on the ground beside him."); + e.self:Say("I know not why some of these. . . villains are called heroes. It is all part of the fold and plan, I am sure. However, I shall give ya this warning of one of them, perhaps the most vile of all, and that is Kizrak the Tyrant, a brutal creature of the Warlord who has quite the taste for halflings. . . and I mean not in the sense of good grace and kindness"); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/misty/Blixkin_Entopop.lua b/misty/Blixkin_Entopop.lua new file mode 100644 index 0000000..c42ea06 --- /dev/null +++ b/misty/Blixkin_Entopop.lua @@ -0,0 +1,66 @@ +-------------------------- +--Quest Name:Bug Collection +--NPCs Involved:Blixkin Entopop +--Items Involved:Bug Collection Box, Complete Bug Collection, Fire Beetle Eye +--Giant Fire Beetle Leg, Giant Scarab Egg Sack, Giant Wasp Wing, +--Spiderling Eye, Spiderling Silk +---------------------------------- + +function event_waypoint_arrive(e) + if((e.wp == 2) or (e.wp == 9) or (e.wp == 14) or (e.wp == 21) or (e.wp == 24)) then + e.self:Say("Ember?! Ember?! Where are you, girl?!"); + eq.signal(33065); + end +end + +function event_signal(e) + e.self:Say("There you are! Stay close to me, girl."); +end + +function event_combat(e) + e.self:Say("What do you think you are doing?!?"); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! My name is Blixkin Entopop. Have you seen the wonderful assortment of [spiders] and [beetles] that inhabit the thicket? I have quite an extensive [bug collection]. Be careful, though. I have seen many brave halflings fall beneath a [swarm] of clicking and hissing bugs."); + elseif(e.message:findi("spiders")) then + e.self:Say("There are many species of bugs out here. The most common are the fire beetles. If you are hunting them, make sure their queen is not around or you will be in deep trouble. Their eyes are a popular item for adventurers because they give off light as if they were on fire. I even had one warrior try to kill [Ember] for her eyes!!"); + elseif(e.message:findi("ember")) then + e.self:Say("I raised Ember from an egg. She is my faithful pet and quite smart for a beetle. There are plenty of other bugs to squish, out in the thicket, so you had best leave her alone or I will have to SQUISH you!"); + elseif(e.message:findi("swarms")) then + e.self:Say("Bugs tend to swarm and defend others of their species when they are attacked. So keep your eyes peeled if you intend to squish any of them.. And you'd better not even THINK of squishing [Ember] or you will be sorry!"); + elseif(e.message:findi("beetles")) then + e.self:Say("There are many species of bugs out here. The most common are the fire beetles. If you are hunting them, make sure their queen is not around or you will be in deep trouble. Their eyes are a popular item for adventurers because they give off light as if they were on fire. I even had one warrior try to kill [Ember] for her eyes!!"); + elseif(e.message:findi("collection")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Here you go. Just follow the instructions on the [list] so you know what to collect and how to prepare the collection for me."); + e.other:SummonCursorItem(17922); -- Item: Bug Collection Box + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("list")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("What did you do, lose the list? Here is another one. Hold onto it because I will want it back when you are done."); + e.other:SummonCursorItem(18011); -- Item: Want List + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Oh you have a complete collection for me?! Good! Good! Well done. But remember that I need the complete bug collection and you must return my want list before I can pay you."; + + if(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13268, item2 = 18011},1,text)) then + e.self:Say("Excellent! Good work! I knew you were the one for this job! Thank you so much! My collection just gets better and better each day. Here is your reward as I promised."); + e.other:Faction(e.self,292, 5); -- Faction: Merchants of Rivervale + e.other:Faction(e.self,241, 1); -- Faction: DeepPockets + e.other:Faction(e.self,263, 1); -- Faction: Guardians of the Vale + e.other:Faction(e.self,286, 1); -- Faction: Mayor Gubbin + e.other:Faction(e.self,336, -1); -- Faction: Coalition of Tradefolk Underground + e.other:QuestReward(e.self,0,math.random(10),math.random(5),0,eq.ChooseRandom(14010,13281,13280,14015,16875),65); -- Item(s): Potion of Poison Warding (14010), Silver Bracelet (13281), Bracelet of Beetlekind (13280), Spider Venom (14015), Stalking Probe (16875) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/misty/Bronin_Higginsbot.lua b/misty/Bronin_Higginsbot.lua new file mode 100644 index 0000000..98cae11 --- /dev/null +++ b/misty/Bronin_Higginsbot.lua @@ -0,0 +1,54 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. It is dangerous out in the woods. You should go to Rivervale. It's at the end of the path. You will find good times there. Travel safely, my friend!"); + elseif(e.message:findi("shard")) then + e.self:Say("Searching for that blasted emerald shard, are you? That thing has done nothing but bring me bad luck!! I would gladly give it to you if you would do a [small favor] for me."); + elseif(e.message:findi("small favor")) then + if(e.other:GetFaction(e.self) < 5) then + e.self:Say("I have been tracked here by a bounty hunter named Slaythe. I have heard reports of his presence beyond the Great Wall. Please seek him out and bring me some body part of his as proof of his passing. Do this and the emerald shard is yours."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(33146) == false) then + eq.spawn2(33146, 0, 0, 893.00, 664.00, -34.73, 0); -- Spawn Slaythe + end + elseif(e.other:GetFaction(e.self) < 6) then + e.self:Say("When the blood of many Runnyeye goblins has covered your blade, then I shall find you worthy to speak of such matters."); + else + e.self:Say("You are no ally of the Rivervale Deeppockets!! Leave at once!!"); + end + elseif(e.message:findi("second piece of the gem")) then + if(e.other:GetFaction(e.self) < 5) then + e.self:Say("The second emerald shard was hidden in the forest near Kelethin. I heard one of the local guilds found it and now call it the Gem of Tunare. You will have to ask around in Kelethin about it. Good luck."); + elseif(e.other:GetFaction(e.self) < 6) then + e.self:Say("When the blood of many Runnyeye goblins has covered your blade, then I shall find you worthy to speak of such matters."); + else + e.self:Say("You are no ally of the Rivervale Deeppockets!! Leave at once!!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13110})) then -- Bloody Shank + e.self:Say("AHH!! You have been sent by the Highkeep Guards!! You will never take Bronin Higginsbot alive!!"); + e.other:Faction(e.self,241, -50); -- Deeppockets + e.other:Faction(e.self,223, -2); -- Circle Of Unseen Hands + e.other:Faction(e.self,292, 2); -- Merchants of Rivervale + e.other:Faction(e.self,336, -2); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,329, -2); -- Carson McCabe + e.self:AddItem(13111,0); + eq.attack(e.other:GetName()); + elseif((e.other:GetFaction(e.self) < 5) and (item_lib.check_turn_in(e.self, e.trade, {item1 = 12192}))) then -- Froglok Leg + e.self:Say("So I see you have defeated Slaythe. I shall sleep much better now that he is gone. I placed the emerald shard in one of the Highkeep strongboxes in Highpass. Give the Bank Clerk this key. There is a [second piece of the gem] which I hid near Kelethin. You will need it to complete the gem. I hope it brings you better luck than I."); + e.other:Faction(e.self,241, 10); -- Deeppockets + e.other:Faction(e.self,223, 1); -- Circle Of Unseen Hands + e.other:Faction(e.self,292, -1); -- Merchants of Rivervale + e.other:Faction(e.self,336, 1); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,329, 1); -- Carson McCabe + e.other:QuestReward(e.self,0,0,0,0,12193,500); -- H.K. 106 + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/misty/Deputy_Budo.lua b/misty/Deputy_Budo.lua new file mode 100644 index 0000000..fab70de --- /dev/null +++ b/misty/Deputy_Budo.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". I am Deputy Budo Bullnose, the squad leader of the Great Wall Patrol. Be very careful in the lands beyond the wall. They are filled with dangerous beasts, as well as [Clan Runnyeye]."); + elseif(e.message:findi("clan Runnyeye")) then + e.self:Say("Beyond this wall lies Runnyeye, the lair of the goblins of Clan Runnyeye. They have been a nuisance to Rivervale for quite some time. If you wish to join the fight, go to Rivervale and ask Sheriff Roglio about Clan Runnyeye."); + elseif(e.message:findi("I am reporting for duty")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Stand tall then, Deputy " .. e.other:GetCleanName() .. ". Your orders are to keep the creatures from venturing into the community of Rivervale and to kill many goblins. Check the goblin bodies, if you should find unbroken warrior beads on them, take them to Sheriff Roglio Bruth and should you be lucky enough to find a bizarre grappling device, you are to take it to Marshal Ghobber Truppack immediately! One more thing - should you defeat any orcs in battle, bring me their leather belts and I shall reward you for the great victory. May the power of Underfoot be with you!"); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + local count = item_lib.count_handed_item(e.self, e.trade, {13916}); + if(count > 0) then + repeat + e.self:Say("Grand work. Deputy " .. e.other:GetCleanName() .. "! You will become a full-fledged deputy in no time. You should check in with Marshal Ghobber from time to time to see if you have earned your squad ring. Just go up to him and ask. 'Am I one with the Wall?' He will know. but you must first show your bravery in many battles against the goblins."); + e.other:Faction(e.self,263,5,0); -- Faction: Guardians of the Vale + e.other:Faction(e.self,286,1,0); -- Faction: Mayor Gubbin + e.other:Faction(e.self,355,1,0); -- Faction: Storm Reapers + e.other:Faction(e.self,292,1,0); -- Faction: Merchants of Rivervale + e.other:Faction(e.self,334,-1,0); -- Faction: Dreadguard Outer + e.other:QuestReward(e.self,0,0,9,0,13024,1000); + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/misty/Deputy_Eigon.lua b/misty/Deputy_Eigon.lua new file mode 100644 index 0000000..5a0c774 --- /dev/null +++ b/misty/Deputy_Eigon.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() ..". Excuse me. I must get back to my patrol."); + end +end +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 16165})) then -- can turned in even at dubious + e.self:Say("Daleen sent you? She is so sweet. If she wasn't married.. ehem.. Thanks."); + -- Confirmed Live Factions + e.other:Faction(e.self,263, 5); -- Faction: Guardians of the Vale + e.other:Faction(e.self,286, 1); -- Faction: Mayor Gubbin + e.other:Faction(e.self,355, 1); -- Faction: Storm Reapers + e.other:Faction(e.self,292, 1); -- Faction: Merchants of Rivervale + e.other:Faction(e.self,334, -1); -- Faction: Dreadguard Outer + e.other:QuestReward(e.self,math.random(20),0,0,0,0,500); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/misty/Deputy_Tagil.lua b/misty/Deputy_Tagil.lua new file mode 100644 index 0000000..42316d5 --- /dev/null +++ b/misty/Deputy_Tagil.lua @@ -0,0 +1,7 @@ +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18013})) then + e.self:Say("What's this? Oh dear. I am very sorry. Please take this to Uner with my apologies."); + e.other:QuestReward(e.self,0,0,0,0,13240,100); -- Item: Deputy Tagils Payment + end +end diff --git a/misty/Ella_Foodcrafter.lua b/misty/Ella_Foodcrafter.lua new file mode 100644 index 0000000..9fc40d8 --- /dev/null +++ b/misty/Ella_Foodcrafter.lua @@ -0,0 +1,47 @@ +-- --18959 : ella foodcrafter : two tasks; shiny tin bowl and a clue +-- hardened mixture and runecrested bowl : softly glowing stone + +function event_waypoint_arrive(e) + if((e.wp == 13) or (e.wp == 19)) then + local randtext = eq.ChooseRandom(0,1,2); + if(randtext == 0) then + e.self:Emote("hums a little as she drops off supplies for the deputies."); + elseif(randtext == 1) then + e.self:Say("Hope things are going well here."); + elseif(randtext == 2) then + e.self:Say("Air's nice as always out here."); + end + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi, hi. I've got a lot to do, many mouths to feed, some filthy goblins to smack. If you don't need me for something, please let me go back to my work. Karana watch over you."); + elseif(e.message:findi("two tasks")) then + e.self:Say("Well, ya ask before ya act. That's a good sign. What I need isn't easy to find. First, I need a mixture. Plain sounding enough but it's a special one. Cleanses the mind and focuses the earth's energies into a forest walker's mind. I don't know how to make it. I don't even know what it's called. I merely know it exists and we'll be needing it for our task. When ya do find how to make it ya can mix it in that bowl. Keep it when you're done, it's a good bowl."); + elseif(e.message:findi("second task")) then + e.self:Say("Good, ya didn't run off without finding out what else ya need to do. Second, I need a special type of bowl. An ancient type of bowl, which strengthened the food placed inside it, once made by the elves of old. Again, I cannot tell ya how it is made for the making was lost to the ages. Seek this knowledge and these items out in the lands. Come to me when ya have found both."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18959})) then + e.self:Say("Hmmm. I've been waiting for someone to bring me this. I'm sorry such a young one as you has taken up this task. Maybe the sky god blesses ya though. Aye, ya have that look in your eye. Our task is to focus the blessings of the gods and cleanse the filth from the land. I have two tasks for ya."); + e.other:QuestReward(e.self,0,0,0,0,17860); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20473, item2 = 20460})) then + e.self:Emote("smiles slowly as she works the mixture in the bowl and it starts to shine with power. 'This is... a piece of a lost magic item known as Nature's Gem. When restored to completeness I've heard its healing powers will be extraordinary. Take it now. I will take the bowl and hopefully do some good from my end. From here, you can go many ways but I can't guide your path step by step. The only advice I can give you is to look for ones such as yourself.'"); + e.other:QuestReward(e.self,0,0,0,0,20462); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20468})) then + e.self:Emote("hands you a scimitar she usually wears at her side. 'Thank you, " .. e.other:GetCleanName() .. ". With this we can hold back the corruption. We have learned something new though. Not only is this work the responsibility of the lord of hatred alone. For some reason we cannot know the lord of disease has decided it worthy of his time to work in conjunction with Innoruuk. The spirits of the three main continents, Faydwer Antonica and Kunark, have been corrupted. Look for the corrupted forces of the land and heal them. When you have found them all then take my scimitar and the spirits to Xanuusus.'"); + e.other:QuestReward(e.self,0,0,0,0,20440); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/misty/Ember.lua b/misty/Ember.lua new file mode 100644 index 0000000..51f111c --- /dev/null +++ b/misty/Ember.lua @@ -0,0 +1,22 @@ +function event_spawn(e) + eq.set_timer("follow",1000); +end + +function event_timer(e) + + if(e.timer == "follow") then + local opponentID = 33066; + local mobtypeID = eq.get_entity_list():GetMobByNpcTypeID(opponentID); + + if(mobtypeID) then + local follow_mob = mobtypeID:GetID(); + eq.follow(follow_mob,10); + eq.stop_timer("follow"); + end + end +end + +function event_signal(e) + e.self:Emote("clicks at Blixkin happily."); + eq.signal(33066); +end diff --git a/misty/Fajio_Knejo.lua b/misty/Fajio_Knejo.lua new file mode 100644 index 0000000..d4f2fbd --- /dev/null +++ b/misty/Fajio_Knejo.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I hope you are having a fine day."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20532})) then + e.self:Say("Run onward, my friend, to the far off Desert of Ro and give this torch to Andad Filla."); + e.other:QuestReward(e.self,0,0,0,0,20533,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/misty/Gunrich.lua b/misty/Gunrich.lua new file mode 100644 index 0000000..f006e02 --- /dev/null +++ b/misty/Gunrich.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.other:GetFaction(e.self) < 5) then + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". What can I do for you?"); + elseif(e.message:findi("dark rivers flow east")) then + e.self:Say("So, Rueppy Kutpurse must have sent you. Here, take this case. Be careful, though. You don't want to get caught with that in town. It is illegal to possess such alcohol."); + e.other:SummonCursorItem(13131); --Case of Blackburrow Stout + end + else + e.self:Say("I am sorry, " .. e.other:GetCleanName() .. ". You aren't trustworthy enough yet."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/misty/Joogl_Honeybugger.lua b/misty/Joogl_Honeybugger.lua new file mode 100644 index 0000000..ed42ef1 --- /dev/null +++ b/misty/Joogl_Honeybugger.lua @@ -0,0 +1,44 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. I would shake your hand, but it would [hurt]. Ooooh! Owwy!"); + elseif(e.message:findi("hurt")) then + --Bandages for Honeybugger (START) + e.self:Say("I was attacked by the bixies. They swarmed on me!! I think I got too near their queen. I need that honey to make a living! Get me a bandage and I will tell you where all their worker bee's buzz around."); + elseif(e.message:findi("I need the honeycomb")) then + e.self:Say("If you're looking for the honeycombs, I don't have any right now. I have been unable to get any since I was attacked by the little [buggers]. I will tell you where to get some if you will only get me a bandage for my bites."); + elseif(e.message:findi("what buggers")) then + e.self:Say("I was attacked by the bixies. They swarmed on me!! I think I got too near their queen. I need that honey to make a living! Get me a bandage and I will tell you where all their worker bees buzz around."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local bandage = 0; + --Handin: Bandage + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13009, item2 = 13009, item3 = 13009, item4 = 13009}, 0)) then + bandage=4; + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13009, item2 = 13009, item3 = 13009}, 0)) then + bandage=3; + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13009, item2 = 13009}, 0)) then + bandage=2; + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13009}, 0)) then + bandage=1; + end + if(bandage > 0) then + for i = 1, bandage do + --Bandages for Honeybugger (END) + e.self:Say("Oh thank you, " .. e.other:GetCleanName() .. ". If you are ever going to gather bixie honeycomb's pray you do not run into the queen. The only way I know of collecting the honey is by intercepting the drone's and taking the honeycomb's they sometime's carry. Good luck!!"); + -- confirmed live factions + e.other:Faction(e.self,292,1); -- +Merchants of Rivervale + e.other:Faction(e.self,241,1); -- +Deeppockets + e.other:Faction(e.self,263,1); -- +Guardians of the Vale + e.other:Faction(e.self,286,1); -- +Mayor Gubbin + e.other:Faction(e.self,336,-1); -- -Coalition of Trade Folk Underground + + end + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/misty/Lil_Honeybugger.lua b/misty/Lil_Honeybugger.lua new file mode 100644 index 0000000..63d3cde --- /dev/null +++ b/misty/Lil_Honeybugger.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello. My brother Joogl is a great bixie hunter. No one can smash bixies like my brother. He is the best. He works for [Kizzie Mintopp]."); + elseif(e.message:findi("kizzie mintopp")) then + e.self:Say("Kizzie owns the Herb Shop in Rivervale. She is the keeper of the [honey jum recipe]."); + elseif(e.message:findi("what honey jum recipe")) then + e.self:Say("I do not know, but it tastes good on bixie crunchies. Kizzie makes it with the honeycombs my brother collects from the bixies."); + end +end + +--Author:Shaznito +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/misty/Sonsa_Fromp.lua b/misty/Sonsa_Fromp.lua new file mode 100644 index 0000000..d9611cc --- /dev/null +++ b/misty/Sonsa_Fromp.lua @@ -0,0 +1,23 @@ +-- Sonsa Fromp //33088// ##Drogerin## + +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks up something from the ground."); + end + end +end + +function event_say(e) + if (e.message:findi("hail")) then + e.self:Say("Hello, traveler. It is so good to meet you. I am Sonsa Fromp, tailor surpreme. I have been known to make the finest leather armor this side of the wall. Feel free to inspect my merchandise. Buy plenty. This is how I put food on the table."); + elseif(e.message:findi("kevlin")) then + e.self:Say("Oooh! Do not speak that name in this burrow! He used to be my husband. Now he has left me for that trollop, Lashinda Hoggletop!"); + elseif(e.message:findi("lashinda")) then + e.self:Say("Never mention that name in this burrow!"); + end +end diff --git a/mseru/#Legionnaire_Marais.lua b/mseru/#Legionnaire_Marais.lua new file mode 100644 index 0000000..e86e06b --- /dev/null +++ b/mseru/#Legionnaire_Marais.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + eq.set_timer("depop",600000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop_with_timer(); + elseif(e.timer == "die") then + eq.depop_with_timer(); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks up at you wearily, 'Corporal Donfeld?'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18332}, 0)) then -- 18332 + e.self:Emote("shows relief in his eyes, 'I knew someone would come if I... just held out... long enough... Take these... be careful... ' And with that, Marais allows himself to finally die."); + e.other:QuestReward(e.self,{items = {18334,18333}}); -- Marais' Notes + eq.set_timer("die",10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/mseru/A_Hand_of_Seru.lua b/mseru/A_Hand_of_Seru.lua new file mode 100644 index 0000000..ee25038 --- /dev/null +++ b/mseru/A_Hand_of_Seru.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. " .. e.other:GetName() .. "."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + end +end diff --git a/mseru/Gerak_Jelin.lua b/mseru/Gerak_Jelin.lua new file mode 100644 index 0000000..25e6979 --- /dev/null +++ b/mseru/Gerak_Jelin.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("gasps for air upon hearing your voice. 'Oh, you scared me! Try not to sneak up on people anymore ok?'"); + elseif(e.message:findi("sister is worried")) then + e.self:Say("You talked to her? Surely she didn't come right out and say that though, that would get her removed from the Hand, and most definately the city. I am glad you were smart enough to read her emotions to see that she thought of me. It really makes my heart warm and gives me hope. It is difficult living here, we are under constant attack, and have no way to get food. I wish I had some [good news] for her."); + elseif(e.message:findi("good news")) then + e.self:Say("Yeah, it looks grim to anyone in this awful place. I wrote her this letter when I found out that I was being exiled, but did not get a chance to give it to her. If you want to risk it, you can take it to her. Make no mention it is from me. She is loyal to the city and would not want to be cast out because of me."); + e.other:SummonCursorItem(6269); + end +end diff --git a/mseru/Reothe.lua b/mseru/Reothe.lua new file mode 100644 index 0000000..851ee79 --- /dev/null +++ b/mseru/Reothe.lua @@ -0,0 +1,20 @@ +-- Earring of Veracity #1 (Insignia) + +function event_say(e) + if(e.message:findi("bregun dorey")) then + e.self:Say("Bregun Dorey... I have not heard that name in many years. I will never forget it. He was very unique, always running around with an odd metal hat on. He swore that it would keep out the mind probing magics of the Question. I know where he was last seen, and I will tell you if you help by getting us some [supplies]."); + elseif(e.message:findi("supplies")) then + e.self:Say("Get me two Bark Potions, a Spring Crystal, and a Harvest Crystal. I will tell you where I last saw him headed. If you buy them in Sanctus Seru do not tell them you are giving aid to the Recuso or you shall be prosecuted as well."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14519,item2 = 14519,item3 = 14512,item4 = 14511})) then + e.self:Say("This is great! We can treat our injured and have something to eat for weeks. I can vaguely recall Bregun heading towards the Lair of the Netherbians. You might ask a guard there if they have seen him."); + -- Confirmed Live Experience + e.other:QuestReward(e.self,{exp = 1000}); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/najena/Akksstaff.lua b/najena/Akksstaff.lua new file mode 100644 index 0000000..7e3138b --- /dev/null +++ b/najena/Akksstaff.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What do you want?! Foolish " .. e.other:Race() .. ", I am in no mood to treat with beggars. I have half a mind to turn my pet here loose on you! Well, don't keep me waiting, state your business or be off with you!"); + elseif(e.message:findi("tell me about magi'kot")) then + e.self:Say("Ah, that I can help you with. Magi'kot was a powerful elementalist, able to control the power of the elements which surrounded him. He was not able to fully master the elements when I was learning from him, but soon after my departure I heard rumors that he was going after the Orb of Mastery. At the time, I did not feel he was ready to harness all the elements, but Magi'kot listened to no one. He was in search of power beyond any held by a mortal. Do you wish to hear more?"); + elseif(e.message:findi("wish to hear more")) then + e.self:Say("Then bring me the torn pages of Mastery, there are four pages that can be found upon the women In this keep, though have a care, Najena's followers guard her treasures carefully, and delight in punishing trespassers."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28027,item2 = 28028,item3 = 28029,item4 = 28030})) then + e.self:Say("Very well. Take these words back to that shriveled old gnome, Rykas, if you wish to complete this quest. Now leave me, " .. e.other:GetCleanName() .. ", it sickens me to be this cordial for so long. And my pet needs exercise. Go!"); + e.other:QuestReward(e.self,0,0,0,0,28004); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone: najena ID:44063 -- Akksstaff \ No newline at end of file diff --git a/najena/Linara_Parlone.lua b/najena/Linara_Parlone.lua new file mode 100644 index 0000000..d48e2a5 --- /dev/null +++ b/najena/Linara_Parlone.lua @@ -0,0 +1,25 @@ +-- Quest file for Najena - Linara Parlone: Mystic Cloak + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Please [help] me out of this horrid place! My family must be terribly worried!"); + elseif(e.message:findi("help")) then + e.self:Say("If you can find the [key] to my restraints. I should be able to escape."); + elseif(e.message:findi("key")) then + e.self:Say("Last I knew, Najena's priest had the key. I fear he has left this place though. I heard talk of traveling to some estate. I know not where. Oh dear, oh dear! I shall never leave this place!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12269})) then -- tarnished bronze key + e.self:Say("Oh my! Thank you so very much! here, take this note to my father. I am sure he will reward you well for my safety."); + e.other:Faction(e.self,275,10); -- Faction: Keepers of the Art + e.other:Faction(e.self,279,2); -- Faction: King Tearis Thex + e.other:Faction(e.self,246,1); -- Faction: Faydarks Champions + e.other:Faction(e.self,239,-2); -- Faction: The Dead + e.other:QuestReward(e.self,0,0,0,0,5573); -- Item: A Folded Note + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/najena/Rathyl.lua b/najena/Rathyl.lua new file mode 100644 index 0000000..c73b5d0 --- /dev/null +++ b/najena/Rathyl.lua @@ -0,0 +1,5 @@ +function event_death_complete(e) + eq.spawn2(44104,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end + +-- EOF zone: najena NPC: Rathyl \ No newline at end of file diff --git a/najena/a_visiting_priestess.lua b/najena/a_visiting_priestess.lua new file mode 100644 index 0000000..f71f53e --- /dev/null +++ b/najena/a_visiting_priestess.lua @@ -0,0 +1,38 @@ +-- Quest for The Visiting Priestess + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! Are you the champion Najena sent for?"); + elseif(e.message:findi("willing")) then + e.self:Say("Very well then, " .. e.other:GetCleanName() .. ". I am Aerthane D'Zitherak, Priestess of Innoruk, seeker of the fabled and ancient staff of Ankexfen. Have you ever heard of this relic?"); + elseif(e.message:findi("no")) then + e.self:Say("No? Why am I not surprised? You look too weak and frail to be of any use. You probably could not even best one of those intoxicated, weak-minded goblins controlled by that pathetic eye called Xxorb. Away with you, useless creature!"); + elseif(e.message:findi("yes i have")) then + e.self:Say("So you have heard of it? Tell me what you know. I would be most amused to hear what a feeble creature such as yourself might know of the staff of Ankexfen."); + elseif(e.message:findi("what.* ankexfen")) then + e.self:Say("The wrath of the unnamed gods was grim. Thousands of ogres were instantly slain - their empire left to crumble under the hand of retribution. The giants were flung across the face of Norrath like seeds to the wind. The Ankexfen's fates were more severe. The entire race was exterminated, but from the ashes were born the four goblin races. What is known is that each goblin clan was stripped of any knowledge and was neither informed of the other clans nor of their own origins. Each clan was then transported to a separate environment to help preserve the gods' will. However, the gods were not without mercy and each clan was granted a section of the staff. Upon each staff, a crystal was placed. These staves served to aid the goblin clans in understanding their environments. These remnants of the staff of Ankexfen are what I desire. Bring them to me and the Priests of Innoruuk shall reward you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "grins evilly as she disassembles the staff and holds forth a runed wooden rod."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6323,item2 = 6324,item3 = 6335,item4 = 6336},1,nil,text)) then -- emote parameter -- doesn't appear to have a faction requirement + e.self:Emote("cackles with glee as she slowly assembles the runed rods, and with a muttered incantation and a flash of light, disappears, leaving only a note that slowly drifts to the ground."); + e.other:Faction(e.self,340, 100); -- Priests of Innoruuk + e.other:Faction(e.self,278, 15); -- King Naythox Thex + e.other:Faction(e.self,362, -34); -- Priests of Marr + e.other:Faction(e.self,226, -25); -- Clerics of Tunare + e.other:Faction(e.self,341, -15); -- Priests of Life + e.other:Faction(e.self,1522, -400); -- Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,18401,132775); -- Scroll of Flayed Goblin Skin -- 2.5% @ level 30 + eq.depop_with_timer(); + end + local returned = item_lib.return_items(e.self, e.other, e.trade, false); + if(returned) then + e.self:Say("This is not part of the bargain. Bring me the pieces of the Staff of Ankexfen!"); + end +end + +-- END of FILE Zone:najena ID:44107 -- a_visiting_priestess diff --git a/necropolis/#Garzicor-s_Corpse.lua b/necropolis/#Garzicor-s_Corpse.lua new file mode 100644 index 0000000..893af15 --- /dev/null +++ b/necropolis/#Garzicor-s_Corpse.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(123002,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); +end \ No newline at end of file diff --git a/necropolis/#Garzicor-s_Wraith.lua b/necropolis/#Garzicor-s_Wraith.lua new file mode 100644 index 0000000..f817348 --- /dev/null +++ b/necropolis/#Garzicor-s_Wraith.lua @@ -0,0 +1,4 @@ +function event_death_complete(e) + eq.spawn2(123003,0,0,983,1518,-124,0); -- NPC: #Spirit_of_Garzicor + eq.spawn2(123004,0,0,1045,1433,-106,0); -- NPC: #Spirit_of_Garzicor_ +end \ No newline at end of file diff --git a/necropolis/#Spirit_of_Garzicor.lua b/necropolis/#Spirit_of_Garzicor.lua new file mode 100644 index 0000000..1689f95 --- /dev/null +++ b/necropolis/#Spirit_of_Garzicor.lua @@ -0,0 +1,18 @@ +function event_spawn(e) + eq.set_timer("depop",900000); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 25814}, 0)) then -- flawless diamond + e.self:Emote("'s eyes flare with fanaticism as he snatches the gem from you and holds it to his chest desperately. Slowly, the spirit's form begins to draw itself into the gem, as water draws itself into a whirlpool. Soon there is nothing left but a charred remnants of the once flawless diamond."); + e.other:QuestReward(e.self,0,0,0,0,2090,5000); -- Blackened Diamond + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/necropolis/#Spirit_of_Garzicor_.lua b/necropolis/#Spirit_of_Garzicor_.lua new file mode 100644 index 0000000..bb88308 --- /dev/null +++ b/necropolis/#Spirit_of_Garzicor_.lua @@ -0,0 +1,18 @@ +function event_spawn(e) + eq.set_timer("depop",900000); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 25814}, 0)) then -- flawless diamond + e.self:Emote("'s ghostly hand takes the gem and clutches at it tightly. The spirit then looks towards the sky as it slowly begins to fade away. After a time, nothing is left but the gem, now glowly softly. You quickly take the gem from mid air before it to vanishes."); + e.other:QuestReward(e.self,0,0,0,0,2091,5000); -- Gold Tinted Diamond + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/necropolis/#a_dragon_construct.lua b/necropolis/#a_dragon_construct.lua new file mode 100644 index 0000000..f35bc29 --- /dev/null +++ b/necropolis/#a_dragon_construct.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/necropolis/#a_ghostly_presence.lua b/necropolis/#a_ghostly_presence.lua new file mode 100644 index 0000000..0230cd8 --- /dev/null +++ b/necropolis/#a_ghostly_presence.lua @@ -0,0 +1,18 @@ +function event_spawn(e) + eq.set_timer("depop",600000); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2063}, 0)) then + e.self:Say("Graaahhhh!' as the air about you begins to shudder violently. The blood from the vial is held suspended in mid air, swirling about the chamber. It begins swirling faster and faster until the blood is spattered upon some discarded dragon bones. All is then quiet, and suddenly the bones spring to life in vigorous animation. They form a great dragon skeleton and immediately attack you!"); + eq.spawn2(123001,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0):AddToHateList(e.other,1); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/necropolis/#a_phase_spider.lua b/necropolis/#a_phase_spider.lua new file mode 100644 index 0000000..491a8f3 --- /dev/null +++ b/necropolis/#a_phase_spider.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop",5400000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/necropolis/123026.lua b/necropolis/123026.lua new file mode 100644 index 0000000..9561522 --- /dev/null +++ b/necropolis/123026.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("is now aware of your presence. This could be bad, very bad..."); + eq.attack(e.other:GetName()); + end +end + +function event_death_complete(e) + eq.spawn2(123231,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.spawn2(123231,0,0,e.self:GetX() + 5,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end \ No newline at end of file diff --git a/necropolis/123033.lua b/necropolis/123033.lua new file mode 100644 index 0000000..dbea95a --- /dev/null +++ b/necropolis/123033.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("is now aware of your presence. This could be bad, very bad..."); + eq.attack(e.other:GetName()); + end +end + +function event_death_complete(e) + if(math.random(2) == 2) then + eq.spawn2(123026,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.spawn2(123026,0,0,e.self:GetX() + 5,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + else + eq.spawn2(123026,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + end +end \ No newline at end of file diff --git a/necropolis/123229.lua b/necropolis/123229.lua new file mode 100644 index 0000000..a4356bc --- /dev/null +++ b/necropolis/123229.lua @@ -0,0 +1,75 @@ +local musthelp = 0; + +function event_spawn(e) + eq.set_timer("proxsay",2000); +end + +function event_proximity_say(e) + local xloc = e.other:GetX(); + local yloc = e.other:GetY(); + local nxloc = e.self:GetX(); + local nyloc = e.self:GetY(); + local xdiff = xloc - nxloc; + local ydiff = yloc - nyloc; + if(e.message:findi("hail") and e.other:GetGM()) then -- debug only + e.self:Say("Your x is ".. xdiff .." and your y is " .. ydiff .." from me!"); + end + if(e.message:findi("Remember, Garzicor")) then + eq.disable_proximity_say(); + eq.set_timer("pause",60000); + elseif(e.message:findi("you are one but two")) then + eq.unique_spawn(123000,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + eq.depop_with_timer(); + end +end + +function event_timer(e) + if(e.timer == "pause") then + eq.stop_timer("pause"); + eq.set_timer("help",6000); + musthelp = 0; + elseif(e.timer == "proxsay") then + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25); + eq.enable_proximity_say(); + eq.stop_timer("proxsay"); + elseif(e.timer == "help") then + musthelp = musthelp +1; + if(musthelp == 1) then + e.self:Emote("Help"); + elseif(musthelp == 2) then + e.self:Emote("Must go home"); + elseif(musthelp == 3) then + e.self:Emote("Need vengeance"); + elseif(musthelp == 4) then + e.self:Emote("Veeshan awaits"); + elseif(musthelp == 5) then + e.self:Emote("Kromzek must be made to pay"); + elseif(musthelp == 6) then + e.self:Emote("So tired"); + elseif(musthelp == 7) then + e.self:Emote("Time to go"); + elseif(musthelp == 8) then + e.self:Emote("Blood must be shed"); + elseif(musthelp == 9) then + e.self:Emote("Home !"); + elseif(musthelp == 10) then + e.self:Emote("Vengeance !"); + elseif(musthelp == 11) then + e.self:Emote("Home !"); + elseif(musthelp == 12) then + e.self:Emote("Vengeance !"); + elseif(musthelp == 13) then + e.self:Emote("I am one but two"); + elseif(musthelp == 14) then + eq.stop_timer("help"); + e.self:Emote("I am sorry"); + eq.create_ground_object(1889, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + eq.create_ground_object(1888, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + musthelp = 0; + eq.depop_with_timer(); + end + end +end \ No newline at end of file diff --git a/necropolis/123231.lua b/necropolis/123231.lua new file mode 100644 index 0000000..f40de29 --- /dev/null +++ b/necropolis/123231.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(123027,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end diff --git a/necropolis/Jaled_Dar-s_shade.lua b/necropolis/Jaled_Dar-s_shade.lua new file mode 100644 index 0000000..1739708 --- /dev/null +++ b/necropolis/Jaled_Dar-s_shade.lua @@ -0,0 +1,62 @@ +local SHOUTS = { + "Trakanon, my friend, you BETRAYED me!", + "Harla! Phara! It is cold here, and dark, so very dark.", + "Somebody is there, I can tell! Listen to me! We were WRONG, he must be awakened!", + "Zlandicar, I know you are here, you are always here! Do not ignore me, you must listen....we must talk.", + "Release him..............release him.....release...ME!", +}; +local nextShout = 1; + +function event_spawn(e) + eq.set_timer("zoneshout", 2400000); + eq.set_timer("depop", 48 * 60 * 60 * 1000); -- he despawns, but the uptime and respawn times are unknown, so this is a guess +end + +function event_timer(e) + + if ( e.timer == "zoneshout" ) then + if ( not e.self:IsEngaged() and SHOUTS[nextShout] ) then + e.self:Shout(SHOUTS[nextShout]); + end + + nextShout = nextShout + 1; + if ( not SHOUTS[nextShout] ) then + nextShout = 1; + end + elseif ( e.timer == "depop" ) then + eq.depop_with_timer(); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Mortal! You MUST aid me! I will have my revenge, and my rest!"); + elseif(e.message:findi("aid you")) then + e.self:Say("You must wake The Sleeper. He is our salvation, he will restore a new golden age to Norrath. It was a terrible mistake to subdue him, jealousy and envy led us to do it. I see all of this clearly now."); + elseif(e.message:findi("sleeper")) then + e.self:Say("Kerafyrm, the best of us, what we should be. We imprisoned him in a timeless slumber aeons ago. I know how to release him, but I am no longer of the flesh, so I cannot do it myself. But you can accomplish this task!"); + elseif(e.message:findi("task")) then + e.self:Say("When the tomb was closed and the entry sealed, many dragons participated in the ceremony. They invested portions of their essence into the seal. The seal is part of them now. With the right talismans, I can show you how to make a key that will allow one to pass, as if they were of the First Brood. If you do not wish to do this for the good of all, perhaps you will be willing to do it for material riches. Priceless treasures are stored in the tomb, yours for the taking, once you are inside and have released The Sleeper."); + elseif(e.message:findi("talisman")) then + e.self:Say("Sontalak, Lendiniara, Klandicar, Yelinak, and Zlandicar are all that are left alive of those who were involved in the sealing of the tomb. Each has a talisman. Bring me any one of these items, or a large enough piece from one of the talismans from a dead first brood, and I shall unlock its power, which will allow you entry into the tomb."); + elseif(e.message:findi("treasure")) then + e.self:Say("Weapons, armor, tomes of great power, and more, are held inside. The barrier that keeps The Sleeper in his state of slumber also wards the treasure. You must first remove this barrier."); + elseif(e.message:findi("barrier")) then + e.self:Say("Four dragons maintain the barrier around The Sleeper. These four dragons channel their energies into the barrier. For the barrier to drop, you must slay all four. This will be no easy task, for they are powerful and learned, the best and brightest of that era. But once this is done, The Sleeper shall awake, and the treasures there shall be yours for the taking. The Sleeper will travel to the Skyshrine to resume his rightful position among wurmkind."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9296}, 0) or + item_lib.check_turn_in(e.self, e.trade, {item1 = 27255}, 0) or + item_lib.check_turn_in(e.self, e.trade, {item1 = 27256}, 0) or + item_lib.check_turn_in(e.self, e.trade, {item1 = 27258}, 0) or + item_lib.check_turn_in(e.self, e.trade, {item1 = 27259}, 0) or + item_lib.check_turn_in(e.self, e.trade, {item1 = 27266}, 0)) then + e.self:Say("Very well done. Here is how you unlock the entry. Seek out a great dragon statue in the Eastern Wastes, and use this key there. Not very different from how you entered my old domain, Veeshan's Peak, now, is it? Haha, yes, I know many things, even dead."); + e.other:QuestReward(e.self,0,0,0,0,27265,50000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/necropolis/Neb.lua b/necropolis/Neb.lua new file mode 100644 index 0000000..f4cde97 --- /dev/null +++ b/necropolis/Neb.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Chika val na vi Paebala Neb'ri. I am Neb of the Paebala. Aknila sa rik nor valkuta aknila. Start no trouble, there will be no trouble. Nish ala ro tak na re Chetari, skas vena ral. Avoid the Chetari, they will kill you."); + elseif(e.message:findi("chetari")) then + e.self:Say("Rika sa vi na Chetari aga val rak Zlandicar. The Chetari are an evil breed, shaped by Zlandicar. Asila sa vi ne Paebala ika so takina. They enslave the Paebala. Canti ri va ni makata ra Paebala. The Paebala revolted years ago. Mishi ro ka rilla vi ne graka sal ogoo mashan rina, villi rassa rassa ke! They are powerful in the ways of death, but they fear our goo friends, and our teeth are sharp! Rika re rika so malti fe isha kora, Chetari fa rish na Paebala. But the Chetari will not rest until we are all dead or slaves. Villi rassa rassa ke, korta ne riki sa vena. Our teeth are sharp, but we can not win. Wilta fa unala kisha Zlandicar maka re, villa rasssa, moa Chetari isa rolak. Zlandicar has the sharpest teeth, and the Chetari do his bidding."); + elseif(e.message:findi("zlandicar")) then + e.self:Say("Ika nora drikinava, vaa ria solta drikinava, misa ni vi isa Zlandicar. Zlandicar is the oldest dragon, the evil dragon. Maka drikinava raeli Veeshan, muta ne ri falaka Zlandicar. He is outcast from the other children of Veeshan, for he eats upon their flesh. Ifa no ri ve ala bakari mo drikinavi wo isa maka. This flesh makes him strong, the other dragons fear him and shun him."); + elseif(e.message:findi("help")) then + e.self:Say("Aakaka! Aakaka! I rejoice! I rejoice! Vala ni veena rika tal, rala vin mo taka, mata nish Vaniki ep Zlandicar! You must be strong, to be here, you perhaps can kill Vaniki and Zlandicar! Moaka sish vanava, Neb'ri anta Paebala tu pa sil ro mitika! Do this thing, and prove it, and I Neb, and all of the Paebala, shall reward you!"); + elseif(e.message:findi("vaniki")) then + e.self:Say("Vaniki morka ta, so aka ral faka sa! Vaniki is a witch, she should die! Bantaka se vi rish Zlandicar, bo kal neta Paebala. She was the first to approach Zlandicar, and he made her other than Paebala. Vasu ris oto Chetari, maka so ni inta sla Zlandicar. Out of his boredom, the Chetari were born, they are the toys of Zlandicar."); + elseif(e.message:findi("paebala")) then + e.self:Say("Ika woka asa chelaki sa asa Paebala ian raka yi no sa! We are the first to walk on hind feet, to use hands. Toku mala nealopa chelaki wuna saka no Paebala. From rats we come, but the magic of this land, and what we... eat, makes us more, makes us Paebala. Whana so vi re nik ala iva Paebala, so ni valato ut Chetari. The magic breeds true, all ratmen were first from here, even the Chetari..."); + elseif(e.message:findi("goo")) then + e.self:Say("Unana ogoo Paebala, ni ni ni! Unana ogoo Chetari vi vi vi! The Paebala taste very bad to the goo! The Chetari tast very good to the goo! Moaka sai Slani, ogoo ranta vis Paebala. Thanks to our clever shaman, we teach the goo not to eat us. Ogoo via ranca toka ra to itu. They eat everything else though, even you. Paebala visa ranca so to so to itu ogoo. We would have to feed many of you to the goo to teach them you are bad to eat. Isak to, isak Slani, elasa Paebala ras ogoo so to so to mis. That is what the shaman did, poisoned our dead and fed the goo for years. Makari et ne va mi to mis oh naka? Do you wish to volunteer for this task? Yiyiyiyieh, mita vo Neb'ta! Hahaha, Neb jokes with you!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 26033,item2 = 26009})) then + e.self:Say("Ika Paebala ma ri skasha, Neb`ri mi re skashi! The Paebala are joyful, Neb is joyful! Misu na tona Vaniki esa Zlandicar, no re Paebala soka mora Chetari, ika tu. With the death of Vaniki and Zlandicar, the Paebala can conquer the Chetari, and rule! Mika na so kaka rika, ug boro Neb`ri, ek val Vaniki ushta. Take this, it is Neb's fighting bone, and here, this key I took from Vaniki."); + e.other:Faction(e.self,463,100); -- Faction: Paebala + e.other:Faction(e.self,462,-10); -- Faction: Chetari + e.other:Faction(e.self,464,-10); -- Faction: Zlandicar + e.other:QuestReward(e.self,{items = {28060,26040},exp = 25000}); -- Item: Neb's Warbone + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/necropolis/Pierre.lua b/necropolis/Pierre.lua new file mode 100644 index 0000000..16f1cd6 --- /dev/null +++ b/necropolis/Pierre.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Chita ve ni ne, ni ne Neb!"); + end +end \ No newline at end of file diff --git a/necropolis/Zlandicar.lua b/necropolis/Zlandicar.lua new file mode 100644 index 0000000..6fb053c --- /dev/null +++ b/necropolis/Zlandicar.lua @@ -0,0 +1,59 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Hmm, I have been watching you. You made it further than I thought you would. I will have to work on my defenses in the future. So, what do you seek of me?"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("Jaled")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Jaled Dar is quite dead, you know. But he was tasty, I feasted on his remains long ago. I do wish his spirit would go away, his incessant wailing disturbs me, and worse, it makes other dragons wary of this place. I have not eaten as well as I would have liked since his shade came to stay. If you wish to speak with him yourself, I can arrange that, for I hold a key that will unlock his tomb."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("key")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("This IS my realm, after all. Nothing is barred to me. But I did not become who I am by doing something for nothing. If you wish to talk to Jaled Dar, you will have to do something for me first. Are you willing to do this task?"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("task") or e.message:findi("neb")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("There is an annoying uprising taking place among the Chetari and Paebala. This is affecting my diet. I get cranky when I don't eat right. I am VERY cranky right now. The rebellion is led by a Paebala named Neb. He has taken his followers into a part of the Necropolis that I have difficulty reaching, and he has somehow tamed the goo there as well, preventing my Chetari followers from assaulting them directly. If Neb were to fall, I am certain the rebellion would quickly falter. Bring me Neb's head, and I will give you the key to Jaled Dar's tomb."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("harla")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("I know that name. Oh, that pest Jaled Dar mentions it from time to time. And there was... yes, I think that is it. I dined upon a young purple recently, which the Chetari had captured for me. He called out the name Harla Dar as well. I am still digesting him, as a matter of fact."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("claws of veeshan")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("The Claws of Veeshan? They are delicious! They still do not know that it was MY idea to create the Necropolis, to insure a steady supply of food. They are bound by tradition, and tradition says that all dragons should come here to die. Fools, of course, but who am I to complain?"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("vaniki")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Vaniki is my child, so to speak. She and all of the Chetari are my creations. I uplifted them from the Paebala. They are smarter, larger, stronger than their cousins. And I taught them the dark ways. They serve me well, bringing me food, and are my eyes and ears outside of this place."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 26010}, 0)) then + e.self:Say("Excellent work! Here is your key, go bother that prattling fool Jaled Dar, and leave me be."); + e.other:Faction(e.self,464,500); -- Faction: Zlandicar + e.other:Faction(e.self,430,-50); -- Faction: Claws of Veeshan + e.other:Faction(e.self,462,50); -- Faction: Chetari + e.other:Faction(e.self,304,-50); -- Faction: Ring of Scale + e.other:QuestReward(e.self,0,0,0,0,28060,250000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/necropolis/a_Paebala_Spirit_Talker.lua b/necropolis/a_Paebala_Spirit_Talker.lua new file mode 100644 index 0000000..16f1cd6 --- /dev/null +++ b/necropolis/a_Paebala_Spirit_Talker.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Chita ve ni ne, ni ne Neb!"); + end +end \ No newline at end of file diff --git a/necropolis/a_Paebala_rebel.lua b/necropolis/a_Paebala_rebel.lua new file mode 100644 index 0000000..16f1cd6 --- /dev/null +++ b/necropolis/a_Paebala_rebel.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Chita ve ni ne, ni ne Neb!"); + end +end \ No newline at end of file diff --git a/necropolis/a_Paebala_warrior.lua b/necropolis/a_Paebala_warrior.lua new file mode 100644 index 0000000..16f1cd6 --- /dev/null +++ b/necropolis/a_Paebala_warrior.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Chita ve ni ne, ni ne Neb!"); + end +end \ No newline at end of file diff --git a/necropolis/a_nest.lua b/necropolis/a_nest.lua new file mode 100644 index 0000000..2d32114 --- /dev/null +++ b/necropolis/a_nest.lua @@ -0,0 +1,26 @@ +local bug = 0; + +function event_combat(e) + if(e.joined) then + e.self:Emote("erupts, loosing a swarm!"); + bug = math.random(1,3); + if(bug == 3) then + eq.spawn2(123024,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(123024,0,0,e.self:GetX()-2,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(123024,0,0,e.self:GetX()+2,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(123024,0,0,e.self:GetX(),e.self:GetY()-2,e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(123024,0,0,e.self:GetX(),e.self:GetY()+2,e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(123024,0,0,e.self:GetX()+1,e.self:GetY()+1,e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + elseif(bug == 2) then + eq.spawn2(123024,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(123024,0,0,e.self:GetX()-2,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(123024,0,0,e.self:GetX()+2,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(123024,0,0,e.self:GetX(),e.self:GetY()-2,e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + else + eq.spawn2(123024,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(123024,0,0,e.self:GetX()-2,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.spawn2(123024,0,0,e.self:GetX()+2,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + end + eq.depop_with_timer(); + end +end diff --git a/necropolis/a_pile_of_bones.lua b/necropolis/a_pile_of_bones.lua new file mode 100644 index 0000000..4f5acf4 --- /dev/null +++ b/necropolis/a_pile_of_bones.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if(e.joined) then + eq.spawn2(123023,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.depop_with_timer(); + end +end diff --git a/necropolis/a_swarming_beetle.lua b/necropolis/a_swarming_beetle.lua new file mode 100644 index 0000000..2f544c6 --- /dev/null +++ b/necropolis/a_swarming_beetle.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop",120000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/necropolis/an_escaped_worker.lua b/necropolis/an_escaped_worker.lua new file mode 100644 index 0000000..16f1cd6 --- /dev/null +++ b/necropolis/an_escaped_worker.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Chita ve ni ne, ni ne Neb!"); + end +end \ No newline at end of file diff --git a/necropolis/an_out_of_phase_spider.lua b/necropolis/an_out_of_phase_spider.lua new file mode 100644 index 0000000..0d31bff --- /dev/null +++ b/necropolis/an_out_of_phase_spider.lua @@ -0,0 +1,12 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 55, xloc + 55, yloc - 55, yloc + 55); +end + +function event_enter(e) + e.self:Emote("phases in!"); + eq.spawn2(123022,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); +end \ No newline at end of file diff --git a/nektulos/Hetha_V-Syph.lua b/nektulos/Hetha_V-Syph.lua new file mode 100644 index 0000000..f091b07 --- /dev/null +++ b/nektulos/Hetha_V-Syph.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("winces as if in pain as she turns her head towards the direction of your voice. Much of her visible flesh is cracked and burnt and a trickle of blood runs from the corner of her mouth and drips from her chin. A sob escapes from her chest and she appears to be on the verge of tears. 'I... I... was... beautiful... once."); + end +end diff --git a/nektulos/Kirak_Vil.lua b/nektulos/Kirak_Vil.lua new file mode 100644 index 0000000..a2245e9 --- /dev/null +++ b/nektulos/Kirak_Vil.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Begone from my sight, whelp! Do not try my patience or I may forget my quest and slay you where you stand. I seek the challenge of a [hypocrite] today."); + elseif(e.message:findi("hypocrite")) then + e.self:Say("Need you ask? This day I will slay one of those self-righteous Paladins and earn the rank of Dragoon!"); + elseif(e.message:findi("paladin")) then + e.self:Say("Bah! I should slay you for your impertinence but instead I will save my Hate for a Paladin."); + end +end diff --git a/nektulos/Leatherfoot_Deputy.lua b/nektulos/Leatherfoot_Deputy.lua new file mode 100644 index 0000000..2033a6f --- /dev/null +++ b/nektulos/Leatherfoot_Deputy.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Leatherfoot Raider Hitchel, number 25705. How may I assist you?"); + end +end diff --git a/nektulos/Slarin_K-Vekn.lua b/nektulos/Slarin_K-Vekn.lua new file mode 100644 index 0000000..c631388 --- /dev/null +++ b/nektulos/Slarin_K-Vekn.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("peers at you with glazed eyes from beneath heavy eyelids. 'You do not seem to be near death. If you have come to the [Ultricle] to salvage from the dead like a scavenger wolf then go about your business and leave me to suffer."); + elseif(e.message:findi("ultricle")) then + e.self:Say("This place marked by the stone with the blood red rune is The Ultricle, the place where the sick, weak, dying and dead Teir'Dal that have not earned a noble death are left to rot. The evil magics that are spreading Innoruuk's corruption through the Nektulos Forest have been growing stronger lately and both the [recent and long dead] have been rising from their shallow graves."); + elseif(e.message:findi("dead")) then + e.self:Say("Most of the dead that rises here is Teir`Dal as would be expected, but there are undead creatures that burrow from deep within this soil that are human dead from a time before we Teir`Dal emerged into the Nektulos from the underfoot of Norrath. Neither the Teir`Dal nor the Human dead that rises here attacks me or the others that are barely clinging onto life, perhaps it is because they sense we will soon be joining them in death."); + end +end diff --git a/nektulos/Travis_Two_Tone.lua b/nektulos/Travis_Two_Tone.lua new file mode 100644 index 0000000..4f20553 --- /dev/null +++ b/nektulos/Travis_Two_Tone.lua @@ -0,0 +1,18 @@ +--############# +--#Quest Name: Bard Mail Quest +--#NPCs Involved: Tralyn Marsinger, Eve Marsinger, Lislia Goldtune, Felisity Starbright, Jakum Webdancer, Ton Twostring, Idia, Sivina Lutewhisper, Ticar Lorestring, Marton Stringsinger, Drizda Tunesinger, Travis Two Tone, Silna Songsmith, Siltria Marwind, Tacar Tissleplay, Kilam Oresinger, Lyra Lyrestringer +--#Items Involved: Bardic letters: 18150-18167 +--################# + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. " - Are you [interested] in helping the League of Antonican Bards by delivering some [mail]?"); + elseif(e.message:findi("mail") and not e.message:findi("deliver") and not e.message:findi("Freeport")) then + e.self:Say("The League of Antonican Bards has a courier system made up of travelers and adventurers. We pay good gold to anyone who will take messages from bards such as myself to one of our more central offices. Are you [interested]?"); + elseif(e.message:findi("interested")) then + e.self:Say("I have messages that need to go to - well, right now I have one that needs to go to Freeport. Will you [deliver] mail to [Freeport] for me?"); + elseif(e.message:findi("deliver") or e.message:findi("Freeport")) then + e.self:Say("Take this letter to Felisity Starbright in Freeport. You can find her at the bard guild hall. I am sure she will compensate you for your troubles."); + e.other:SummonCursorItem(18158); -- Item: A Bardic Letter (Freeport) + end +end diff --git a/nektulos/Venenzi_Oberzendi.lua b/nektulos/Venenzi_Oberzendi.lua new file mode 100644 index 0000000..cdf2308 --- /dev/null +++ b/nektulos/Venenzi_Oberzendi.lua @@ -0,0 +1,31 @@ +-- Necromancer Epic NPC -- Venenzi_Oberzendi + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What is it you want! Can't you see I am gathering reagents for my [master]? If I don't get them for him quickly he might punish me."); + elseif(e.message:findi("master")) then + e.self:Say("You do not know of my teacher? The great Kazen Fecae! I am one of his illustrious apprentices! If you fancy yourself a necromancer, travel to Lake Rathetear and tell Kazen you wish to study the dark arts."); + elseif(e.message:findi("reagents")) then + e.self:Say("My master is working on some great project. He's always busy studying an old text he found and murmuring something about following in the footsteps of Miragul."); + elseif(e.message:findi("task")) then + e.self:Emote("looks down at her robes and back at you. 'There is an certain dark elf magician who has decided to wear the same fashion as I have on several occasions. I do not wish to attend another social gathering in Neriak and look exactly the same as another woman. Slay her and bring me her robe, and I will give you my hard earned reagents.'"); + elseif(e.message:findi("dark art")) then + e.self:Say("You are truly a fool."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20642})) then + e.self:Say("I see you serve my master as well now. I assume you are here to take the reagents from me which I have gathered for him? I don't know if I like the idea of you gaining the credit for my hard work here. I might consider giving you these reagents, if only you do a small [task] for me."); + e.other:QuestReward(e.self,0,0,0,0,20643,500); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1320})) then -- flowing black robe turn in + e.self:Say("Thank you, " .. e.other:GetCleanName() .. ". I did not think you would track down Najena and slay her. I think that I am going to return to my old life in Neriak. I am sick of the way Kazen has been treating me. He never seems to teach me anything worthwhile. Don't forget to give his lapdog that symbol with the reagents. I'm sure he will give you a new one."); + e.other:QuestReward(e.self,0,0,0,0,20649,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Quest by: Solid11 Zone:nektulos ID:25099 -- Venenzi_Oberzendi \ No newline at end of file diff --git a/nektulos/Vol_T-Vke.lua b/nektulos/Vol_T-Vke.lua new file mode 100644 index 0000000..68c433b --- /dev/null +++ b/nektulos/Vol_T-Vke.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the gates of Neriak, " .. e.other:GetCleanName() .. ". Please enter the city but keep a watchful eye for we may still have some Troll guests within. Try not to assault them. For now, you are ok to pass through unharmed."); + end +end diff --git a/neriaka/Andara_C-Luzz.lua b/neriaka/Andara_C-Luzz.lua new file mode 100644 index 0000000..90ee8d5 --- /dev/null +++ b/neriaka/Andara_C-Luzz.lua @@ -0,0 +1,13 @@ +--Andara C'Luzz, Neriaka 41095 +--Need Ending Statement +--Need Factions +--Status: Not Complete + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 16166, item2 = 19582, item3 = 19583})) then + e.self:Say("Here's your bow. Use it well, young rogue."); + e.other:QuestReward(e.self,0,0,0,0,19611,150); -- Item: Ebon Short Bow + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/neriaka/Bull_Crusher.lua b/neriaka/Bull_Crusher.lua new file mode 100644 index 0000000..6b943ac --- /dev/null +++ b/neriaka/Bull_Crusher.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Huh? Oh hi " .. e.other:GetCleanName() .. ". Youse want to buy sumthin?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("MMmmm... Deez look like gud muffins. Here's sum money. Tanks. Now meez all stocked again."); + e.other:Faction(e.self,236,2); -- Faction: Dark Bargainers + e.other:Faction(e.self,370,1); -- Faction: Dreadguard Inner + e.other:Faction(e.self,334,1); -- Faction: Dreadguard Outer + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("You nice for getting bread loaves for us. You take some money. Weeze happy now dat weeze got more bread for sale. You maybe check back later if weeze run out of bread again."); + e.other:Faction(e.self,236,4); -- Faction: Dark Bargainers + e.other:Faction(e.self,370,1); -- Faction: Dreadguard Inner + e.other:Faction(e.self,334,1); -- Faction: Dreadguard Outer + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/neriaka/Dran_-slug-_Rembor.lua b/neriaka/Dran_-slug-_Rembor.lua new file mode 100644 index 0000000..0b68216 --- /dev/null +++ b/neriaka/Dran_-slug-_Rembor.lua @@ -0,0 +1,24 @@ +--Dran_-Slug-_Rembor.pl +--Part of Innoruuk Regent + +function event_say(e) + if(e.message:findi("ithvol")) then --Disciple Symbol of Innoruuk + e.self:Say("So you're the lucky errand boy, eh?! Let's hope you are more successful than the last chump who was sent. From what I hear, there was something pretty important in that last crate that was sent out. It just looked like a bunch of junk to me. Anyhow, we ran out of steel boning. Bring me two bonings so we can bind up the crate and be quick about it! Both of our necks are on the line!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Gee, thanks, but I can't do a whole lot without the rest! Get your act straight or we're both dead!"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12073, item2 = 12073},1,text)) then + e.self:Say("Here's the crate of provisions. Take this to Dragoon Szorn in the Lesser Faydark immediately!"); + e.other:QuestReward(e.self,{itemid = 19030}); --Crate of Teir`Dal Provisions + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriaka/Guard_F-Lok.lua b/neriaka/Guard_F-Lok.lua new file mode 100644 index 0000000..0bafec6 --- /dev/null +++ b/neriaka/Guard_F-Lok.lua @@ -0,0 +1,37 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("The three circles of arcane science known as magic, enchantment and wizardry are studied in the Commons Quarter by the Spurned at the Tower of the Spurned."); + elseif(e.message:findi("weapons") or e.message:findi("forge")) then + e.self:Say("You might want to venture over to the Commons Quarter. They have quite a few forges as well as the weapons sold at the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("Go to the Commons Quarter and you shall find a place called Neriak Down Under. Within this tunnel you shall find the Burnished Coin."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Smuggler's Inn is nearby."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Within the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They train in the Cauldron of Hate."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The dark elf kingdom of Neriak is ruled by the mighty fist of King Naythox Thex."); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("The Ebon Mask are the rogues of Neriak. Their Hall of the Ebon Mask lies within the Third Gate."); + elseif(e.message:findi("cleric guild") or e.message:findi("healer")) then + e.self:Say("When you enter the Third Gate you shall see the Spires of Innoruuk. This is the temple of the Priests of Innoruuk."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("tavern")) then + e.self:Say("There are quite a few taverns in the Commons Quarter. I recommend either Toadstool's or the Blind Fish."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("The shadowknights and necromancers share the same guild. They are called the Dead. They reside within the Lodge of the Dead in the Third Gate."); + elseif(e.message:findi("kiln") or e.message:findi("barrel") or e.message:findi("oven") or e.message:findi("pottery")) then + e.self:Say("Within this quarter can be found the public oven, kiln, pottery wheel and brew barrel. All are near the Market View."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Speak not of those vile paladins within Neriak!"); + end +end \ No newline at end of file diff --git a/neriaka/Guard_Lumpin.lua b/neriaka/Guard_Lumpin.lua new file mode 100644 index 0000000..ab2c408 --- /dev/null +++ b/neriaka/Guard_Lumpin.lua @@ -0,0 +1,39 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hullo citizen. Me am here to guard you so puts away any wepuns."); + elseif(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("The three circles of arcane science known as magic, enchantment and wizardry are studied in the Commons Quarter by the Spurned at the Tower of the Spurned."); + elseif(e.message:findi("weapons") or e.message:findi("forge")) then + e.self:Say("You might want to venture over to the Commons Quarter. They have quite a few forges as well as the weapons sold at the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("Go to the Commons Quarter and you shall find a place called Neriak Down Under. Within this tunnel you shall find the Burnished Coin."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Smuggler's Inn is nearby."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Within the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They train in the Cauldron of Hate."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The dark elf kingdom of Neriak is ruled by the mighty fist of King Naythox Thex."); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("The Ebon Mask are the rogues of Neriak. Their Hall of the Ebon Mask lies within the Third Gate."); + elseif(e.message:findi("cleric guild") or e.message:findi("healer")) then + e.self:Say("When you enter the Third Gate you shall see the Spires of Innoruuk. This is the temple of the Priests of Innoruuk."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("tavern")) then + e.self:Say("There are quite a few taverns in the Commons Quarter. I recommend either Toadstool's or the Blind Fish."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("The shadowknights and necromancers share the same guild. They are called the Dead. They reside within the Lodge of the Dead in the Third Gate."); + elseif(e.message:findi("kiln") or e.message:findi("barrel") or e.message:findi("oven") or e.message:findi("pottery")) then + e.self:Say("Within this quarter can be found the public oven, kiln, pottery wheel and brew barrel. All are near the Market View."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Speak not of those vile paladins within Neriak!"); + end +end \ No newline at end of file diff --git a/neriaka/Guard_N-Mar.lua b/neriaka/Guard_N-Mar.lua new file mode 100644 index 0000000..0bafec6 --- /dev/null +++ b/neriaka/Guard_N-Mar.lua @@ -0,0 +1,37 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("The three circles of arcane science known as magic, enchantment and wizardry are studied in the Commons Quarter by the Spurned at the Tower of the Spurned."); + elseif(e.message:findi("weapons") or e.message:findi("forge")) then + e.self:Say("You might want to venture over to the Commons Quarter. They have quite a few forges as well as the weapons sold at the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("Go to the Commons Quarter and you shall find a place called Neriak Down Under. Within this tunnel you shall find the Burnished Coin."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Smuggler's Inn is nearby."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Within the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They train in the Cauldron of Hate."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The dark elf kingdom of Neriak is ruled by the mighty fist of King Naythox Thex."); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("The Ebon Mask are the rogues of Neriak. Their Hall of the Ebon Mask lies within the Third Gate."); + elseif(e.message:findi("cleric guild") or e.message:findi("healer")) then + e.self:Say("When you enter the Third Gate you shall see the Spires of Innoruuk. This is the temple of the Priests of Innoruuk."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("tavern")) then + e.self:Say("There are quite a few taverns in the Commons Quarter. I recommend either Toadstool's or the Blind Fish."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("The shadowknights and necromancers share the same guild. They are called the Dead. They reside within the Lodge of the Dead in the Third Gate."); + elseif(e.message:findi("kiln") or e.message:findi("barrel") or e.message:findi("oven") or e.message:findi("pottery")) then + e.self:Say("Within this quarter can be found the public oven, kiln, pottery wheel and brew barrel. All are near the Market View."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Speak not of those vile paladins within Neriak!"); + end +end \ No newline at end of file diff --git a/neriaka/Guard_Q-Tentu.lua b/neriaka/Guard_Q-Tentu.lua new file mode 100644 index 0000000..0bafec6 --- /dev/null +++ b/neriaka/Guard_Q-Tentu.lua @@ -0,0 +1,37 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("The three circles of arcane science known as magic, enchantment and wizardry are studied in the Commons Quarter by the Spurned at the Tower of the Spurned."); + elseif(e.message:findi("weapons") or e.message:findi("forge")) then + e.self:Say("You might want to venture over to the Commons Quarter. They have quite a few forges as well as the weapons sold at the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("Go to the Commons Quarter and you shall find a place called Neriak Down Under. Within this tunnel you shall find the Burnished Coin."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Smuggler's Inn is nearby."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Within the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They train in the Cauldron of Hate."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The dark elf kingdom of Neriak is ruled by the mighty fist of King Naythox Thex."); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("The Ebon Mask are the rogues of Neriak. Their Hall of the Ebon Mask lies within the Third Gate."); + elseif(e.message:findi("cleric guild") or e.message:findi("healer")) then + e.self:Say("When you enter the Third Gate you shall see the Spires of Innoruuk. This is the temple of the Priests of Innoruuk."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("tavern")) then + e.self:Say("There are quite a few taverns in the Commons Quarter. I recommend either Toadstool's or the Blind Fish."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("The shadowknights and necromancers share the same guild. They are called the Dead. They reside within the Lodge of the Dead in the Third Gate."); + elseif(e.message:findi("kiln") or e.message:findi("barrel") or e.message:findi("oven") or e.message:findi("pottery")) then + e.self:Say("Within this quarter can be found the public oven, kiln, pottery wheel and brew barrel. All are near the Market View."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Speak not of those vile paladins within Neriak!"); + end +end \ No newline at end of file diff --git a/neriaka/Guard_Quexill.lua b/neriaka/Guard_Quexill.lua new file mode 100644 index 0000000..0bafec6 --- /dev/null +++ b/neriaka/Guard_Quexill.lua @@ -0,0 +1,37 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("The three circles of arcane science known as magic, enchantment and wizardry are studied in the Commons Quarter by the Spurned at the Tower of the Spurned."); + elseif(e.message:findi("weapons") or e.message:findi("forge")) then + e.self:Say("You might want to venture over to the Commons Quarter. They have quite a few forges as well as the weapons sold at the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("Go to the Commons Quarter and you shall find a place called Neriak Down Under. Within this tunnel you shall find the Burnished Coin."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Smuggler's Inn is nearby."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Within the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They train in the Cauldron of Hate."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The dark elf kingdom of Neriak is ruled by the mighty fist of King Naythox Thex."); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("The Ebon Mask are the rogues of Neriak. Their Hall of the Ebon Mask lies within the Third Gate."); + elseif(e.message:findi("cleric guild") or e.message:findi("healer")) then + e.self:Say("When you enter the Third Gate you shall see the Spires of Innoruuk. This is the temple of the Priests of Innoruuk."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("tavern")) then + e.self:Say("There are quite a few taverns in the Commons Quarter. I recommend either Toadstool's or the Blind Fish."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("The shadowknights and necromancers share the same guild. They are called the Dead. They reside within the Lodge of the Dead in the Third Gate."); + elseif(e.message:findi("kiln") or e.message:findi("barrel") or e.message:findi("oven") or e.message:findi("pottery")) then + e.self:Say("Within this quarter can be found the public oven, kiln, pottery wheel and brew barrel. All are near the Market View."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Speak not of those vile paladins within Neriak!"); + end +end \ No newline at end of file diff --git a/neriaka/Guard_Swang.lua b/neriaka/Guard_Swang.lua new file mode 100644 index 0000000..0bafec6 --- /dev/null +++ b/neriaka/Guard_Swang.lua @@ -0,0 +1,37 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("The three circles of arcane science known as magic, enchantment and wizardry are studied in the Commons Quarter by the Spurned at the Tower of the Spurned."); + elseif(e.message:findi("weapons") or e.message:findi("forge")) then + e.self:Say("You might want to venture over to the Commons Quarter. They have quite a few forges as well as the weapons sold at the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("Go to the Commons Quarter and you shall find a place called Neriak Down Under. Within this tunnel you shall find the Burnished Coin."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Smuggler's Inn is nearby."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Within the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They train in the Cauldron of Hate."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The dark elf kingdom of Neriak is ruled by the mighty fist of King Naythox Thex."); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("The Ebon Mask are the rogues of Neriak. Their Hall of the Ebon Mask lies within the Third Gate."); + elseif(e.message:findi("cleric guild") or e.message:findi("healer")) then + e.self:Say("When you enter the Third Gate you shall see the Spires of Innoruuk. This is the temple of the Priests of Innoruuk."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("tavern")) then + e.self:Say("There are quite a few taverns in the Commons Quarter. I recommend either Toadstool's or the Blind Fish."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("The shadowknights and necromancers share the same guild. They are called the Dead. They reside within the Lodge of the Dead in the Third Gate."); + elseif(e.message:findi("kiln") or e.message:findi("barrel") or e.message:findi("oven") or e.message:findi("pottery")) then + e.self:Say("Within this quarter can be found the public oven, kiln, pottery wheel and brew barrel. All are near the Market View."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Speak not of those vile paladins within Neriak!"); + end +end \ No newline at end of file diff --git a/neriaka/Guard_To-Biath.lua b/neriaka/Guard_To-Biath.lua new file mode 100644 index 0000000..0bafec6 --- /dev/null +++ b/neriaka/Guard_To-Biath.lua @@ -0,0 +1,37 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("The three circles of arcane science known as magic, enchantment and wizardry are studied in the Commons Quarter by the Spurned at the Tower of the Spurned."); + elseif(e.message:findi("weapons") or e.message:findi("forge")) then + e.self:Say("You might want to venture over to the Commons Quarter. They have quite a few forges as well as the weapons sold at the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("Go to the Commons Quarter and you shall find a place called Neriak Down Under. Within this tunnel you shall find the Burnished Coin."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Smuggler's Inn is nearby."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Within the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They train in the Cauldron of Hate."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The dark elf kingdom of Neriak is ruled by the mighty fist of King Naythox Thex."); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("The Ebon Mask are the rogues of Neriak. Their Hall of the Ebon Mask lies within the Third Gate."); + elseif(e.message:findi("cleric guild") or e.message:findi("healer")) then + e.self:Say("When you enter the Third Gate you shall see the Spires of Innoruuk. This is the temple of the Priests of Innoruuk."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("tavern")) then + e.self:Say("There are quite a few taverns in the Commons Quarter. I recommend either Toadstool's or the Blind Fish."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("The shadowknights and necromancers share the same guild. They are called the Dead. They reside within the Lodge of the Dead in the Third Gate."); + elseif(e.message:findi("kiln") or e.message:findi("barrel") or e.message:findi("oven") or e.message:findi("pottery")) then + e.self:Say("Within this quarter can be found the public oven, kiln, pottery wheel and brew barrel. All are near the Market View."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Speak not of those vile paladins within Neriak!"); + end +end \ No newline at end of file diff --git a/neriaka/Guard_Tolax.lua b/neriaka/Guard_Tolax.lua new file mode 100644 index 0000000..0bafec6 --- /dev/null +++ b/neriaka/Guard_Tolax.lua @@ -0,0 +1,37 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("The three circles of arcane science known as magic, enchantment and wizardry are studied in the Commons Quarter by the Spurned at the Tower of the Spurned."); + elseif(e.message:findi("weapons") or e.message:findi("forge")) then + e.self:Say("You might want to venture over to the Commons Quarter. They have quite a few forges as well as the weapons sold at the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("Go to the Commons Quarter and you shall find a place called Neriak Down Under. Within this tunnel you shall find the Burnished Coin."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("The Smuggler's Inn is nearby."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Within the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They train in the Cauldron of Hate."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The dark elf kingdom of Neriak is ruled by the mighty fist of King Naythox Thex."); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("The Ebon Mask are the rogues of Neriak. Their Hall of the Ebon Mask lies within the Third Gate."); + elseif(e.message:findi("cleric guild") or e.message:findi("healer")) then + e.self:Say("When you enter the Third Gate you shall see the Spires of Innoruuk. This is the temple of the Priests of Innoruuk."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("tavern")) then + e.self:Say("There are quite a few taverns in the Commons Quarter. I recommend either Toadstool's or the Blind Fish."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("The shadowknights and necromancers share the same guild. They are called the Dead. They reside within the Lodge of the Dead in the Third Gate."); + elseif(e.message:findi("kiln") or e.message:findi("barrel") or e.message:findi("oven") or e.message:findi("pottery")) then + e.self:Say("Within this quarter can be found the public oven, kiln, pottery wheel and brew barrel. All are near the Market View."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Speak not of those vile paladins within Neriak!"); + end +end \ No newline at end of file diff --git a/neriaka/Pungla.lua b/neriaka/Pungla.lua new file mode 100644 index 0000000..6121d3c --- /dev/null +++ b/neriaka/Pungla.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome! Drink you shall, some of de finest drinks of da lands! [Flaming Pungla], I suggest to you. It all me sells.") + elseif(e.message:findi("flaming pungla")) then + e.self:Say("Greatest drink and Plunga's creation. Buy one you should. Dey so gud me gots da charge t'ree golds.") + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {gold = 3})) then + e.self:Say("Bottoms up!") + -- confirmed no faction hits + e.other:QuestReward(e.self,0,0,0,0,13382) -- Flaming Pungla + end + + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_combat(e) + + if(e.joined) then + e.self:Say("Guards! Guards!") + end +end \ No newline at end of file diff --git a/neriaka/Rolynn_B-Div.lua b/neriaka/Rolynn_B-Div.lua new file mode 100644 index 0000000..8435322 --- /dev/null +++ b/neriaka/Rolynn_B-Div.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings! I wish I had time to talk, but I do not."); + elseif(e.message:findi("raider") or e.message:findi("leather") or e.message:findi("narex")) then + e.self:Say("Talk to Head Master Narex of the Indigo Brotherhood. He will tell you."); + end +end + +function event_waypoint_arrive(e) + if((e.wp == 3) or (e.wp == 8) or (e.wp == 18)) then + e.self:Say("Hear yee. Master Narex of the Indigo Brotherhood is offering one gold piece for every Leatherfoot Raider skullcap."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriaka/Sal_Drana.lua b/neriaka/Sal_Drana.lua new file mode 100644 index 0000000..15a4c31 --- /dev/null +++ b/neriaka/Sal_Drana.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings. I am pleased to report that I am fully stocked. Please have a look at the goods I have for sale."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("Very good work. I can see you are a talented baker and these muffins look suitable. You do Neriak a great service. Here is your payment. I look forward to conducting future business with you."); + e.other:Faction(e.self,236,2); -- Faction: Dark Bargainers + e.other:Faction(e.self,370,1); -- Faction: Dreadguard Inner + e.other:Faction(e.self,334,1); -- Faction: Dreadguard Outer + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("You have returned and none too soon! Thank you very much, I will put this bread on sale immediately. Here is your reward as promised. Thank you very much."); + e.other:Faction(e.self,236,4); -- Faction: Dark Bargainers + e.other:Faction(e.self,370,1); -- Faction: Dreadguard Inner + e.other:Faction(e.self,334,1); -- Faction: Dreadguard Outer + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/neriaka/Smaka.lua b/neriaka/Smaka.lua new file mode 100644 index 0000000..b624427 --- /dev/null +++ b/neriaka/Smaka.lua @@ -0,0 +1,22 @@ +-- Part of SK Epic 1.0 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You want stuff? Or mebby you looks for a cure?"); + elseif(e.message:findi("cough elixir")) then + e.self:Say("Ahh, you want me cure?! It cost lots of money, big big secret it is. Only us ogres know how to make. You wants? Only 1000 platinum! Make you feels bedder in no times!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {platinum = 1000})) then + e.self:Say("Okay, enjoy me drink!"); + e.other:Faction(e.self,236,3); --Dark Bargainers + e.other:Faction(e.self,334,1); --Dreadguard Outer + e.other:Faction(e.self,370,1); --Dreadguard Inner + e.other:QuestReward(e.self,0,0,0,0,14365); --Cough Elixir + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/neriaka/Soulbinder_Nola_Z-Ret.lua b/neriaka/Soulbinder_Nola_Z-Ret.lua new file mode 100644 index 0000000..80c75f8 --- /dev/null +++ b/neriaka/Soulbinder_Nola_Z-Ret.lua @@ -0,0 +1,15 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID(),0,1); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/neriaka/The_Gobbler.lua b/neriaka/The_Gobbler.lua new file mode 100644 index 0000000..3c4257d --- /dev/null +++ b/neriaka/The_Gobbler.lua @@ -0,0 +1,39 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Meat!! You need meat. Me gots meat!! High elf meat, dwarf meat, human meat, [HEHE meat], [froggy legs]. Me got a lot."); + elseif(e.message:findi("hehe meat")) then + e.self:Say("HEHE meat? It human, Erudite 'n high elf, mashed together. Mmmm. Very tasty!"); + elseif(e.message:findi("froggy legs")) then + e.self:Say("Froggy legs come from far away. Me get from friend, [Chef Dooga]. It not tasty. Trolls like it. Eat it up much. They eat too much froggy. Me glad [Nerbilik] leave Neriak!! He eat way too much froggy."); + elseif(e.message:findi("chef dooga")) then + e.self:Say("Friend in Oggok is Chef Dooga. Chef she is. Used to work in Neriak. She beautiful. She supply the Gobbler with [froglok legs]. They very low now. Fat trolls eat too many!! Me need to [pick up froglok legs]."); + elseif(e.message:findi("pick up froglok legs")) then + e.self:Say("That good news. Oggok far away. Me got no time to go. If you go speak to Chef Dooga, say you pick up froglok legs. You bring back and me give you coin, maybe even something good."); + elseif(e.message:findi("nerbilik")) then + e.self:Say("Big and fat troll Nerbilik is. He leave to fish in tearsy ocean. Me promised to deliver him food or he come bak. The Gobbler needs some dumb person to [deliver grub locker] to Nerbilik."); + elseif(e.message:findi("deliver grub locker")) then + e.self:Say("Good. Me wrap order of dwarf pickles in.. HEY!! Me out of special wrapping paper!! Hmm.. Here. Me use dis. Now, <..click.. Locks grub locker> Here. You take to Nerbilik in tearsy ocean and he pay you. No think of opening locker. Only Nerbilik has key."); + e.other:SummonCursorItem(12203); --Grub Locker + end +end + +function event_trade(e) + local item_lib = require("items"); + local randrew = 0; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13384})) then -- Preserved Leg + e.self:Say("Uggh!! Froglok legs!! Me hate smelly legs, but me need it for fat trolls."); + -- Confirmed Live Factions + e.other:Faction(e.self,353,5); -- Neriak Ogre + if(math.random(100) < 20) then + randrew = eq.ChooseRandom(13386,13385); -- Item(s): Ogre Butcher Gloves (13386), Ogre Meat Cleaver (13385) + end + e.other:QuestReward(e.self,0,0,math.random(5),0,randrew,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriaka/Uglan.lua b/neriaka/Uglan.lua new file mode 100644 index 0000000..6413264 --- /dev/null +++ b/neriaka/Uglan.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Me Uglan. Mighty ogre. Member of Crakneks. We crush for dark elves. Do you [like dark elves] or they be [mean] to you?"); + elseif(e.message:findi("like")) then + e.self:Say("Me love friends dark elves."); + elseif(e.message:findi("mean")) then + e.self:Say("You smart person. Me know dark elves not friendly. They just use ogres. Me not like Neriak anymore."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13357})) then + e.self:Say("You from Oggok. Me waiting for you. Me know dark elves have dark plan for ogres. We must stop plan. You must go to Nektulos Forest. Wait for blue orc. He deliver message for dark elf king. Not good. You kill blue orc runners. If message on them then you take to Lork in Oggok. Ogres must know plan."); + e.other:Faction(e.self,239,5); -- Faction: The Dead + e.other:Faction(e.self,303,1); -- Faction: Queen Cristanos Thex + e.other:Faction(e.self,278,-1); -- Faction: King Naythox Thex + e.other:Faction(e.self,275,-1); -- Faction: Keepers of the Art + e.other:Faction(e.self,245,-1); -- Faction: Eldritch Collective + e.other:Faction(e.self,1522,-10); -- Faction: Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,0,500); + + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/neriaka/X-Ta_Tempi.lua b/neriaka/X-Ta_Tempi.lua new file mode 100644 index 0000000..8c30b83 --- /dev/null +++ b/neriaka/X-Ta_Tempi.lua @@ -0,0 +1,83 @@ +--Quest Name: Necromancer Words - X`Ta Tempi +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 0) then + if(e.message:findi("hail")) then + e.self:Say("We three are the [Sisters Dark] - [Necromancy] is our Art - Bonded dead, they serve our will - No beat of heart, yet faithful still."); + elseif(e.message:findi("sisters dark")) then + e.self:Say("We three are the Sisters Dark - Keepers of the shadowed Dread - [Lore of Death]. we research now - Join with us and serve [the Dead]."); + elseif(e.message:findi("lore of death")) then + e.self:Say("The Lore of Death is shadow bound - Its [words] are [hid]. yet shall be found - Through our research into the dark - Old hexes found and parchment marked."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("necromancy")) then + e.self:Say("Necromancy - Art of the Dead - Binding bones to serve your will - We research now the [Lore of Death] - Ancient spells with power still."); + elseif(e.message:findi("hid")) then + e.self:Say("The Words are hid in tomes of old - Their yielded lore worth more than gold - Though we search both 'fore and 'hind - [Components] we can not yet find."); + elseif(e.message:findi("components")) then + e.self:Say("We need components for research - These are things that you could find - In return for [tasks] that you perform - Words of [reward] we have in mind."); + elseif(e.message:findi("tasks") or e.message:findi("reward")) then + e.self:Say("Bring us components for our research - We give [Word]s by tasks performed - [Possession], [Detachment], [Allure], [Haunting], [Rupturing], [Dark Paths], [Suffering], [Collection], [Obligation], [Requisition] and [Acquisition]."); + elseif(e.message:findi("words of possession")) then + e.self:Say("From the Estate of Unrest, bring barbed bone chips - From Castle Mistmoore, a dagger charred - From a merchant bring a stone of blood - Words of Possession will be your reward."); + elseif(e.message:findi("words of haunting")) then + e.self:Say("From the Estate of Unrest, bring dark bone chips - From Castle Mistmoore, a dagger ebon - From a merchant bring a jasper stone - Then Words of Haunting will to you be given."); + elseif(e.message:findi("words of collection")) then + e.self:Say("Two Words of Collection I possess - To obtain Beza to me you must bring - a globe of darkness, an Eye of Kor and an amber gem. To obtain Caza to me you must bring - an Eye of Guk, a globe of fear, and jade."); + elseif(e.message:findi("words of detachment") or e.message:findi("words of allure") or e.message:findi("words of rupturing") or e.message:findi("words of dark paths") or e.message:findi("words of suffering") or e.message:findi("words of obligation") or e.message:findi("words of requisition") or e.message:findi("words of acquisition")) then + e.self:Say("The answer to that question is held by another - Ask again of my sister..."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + --Words of Possession + --Requires: 1 Charred Dagger, 1 Bloodstone, 2 Barbed Bone Chips + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 7036, item2 = 10019, item3 = 10516, item4 = 10516})) then + e.self:Say("You have quested well - With spell and sword - Accept our thanks - And this reward."); + e.other:Faction(e.self,239,10); -- The Dead + e.other:Faction(e.self,303,1); -- Queen Cristanos Thex + e.other:Faction(e.self,278,-1); -- King Naythox Thex + e.other:Faction(e.self,275,-1); -- Keepers of the Art + e.other:Faction(e.self,245,-1); -- Eldritch Collective + e.other:Faction(e.self,1522,-20); -- Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,11815,62000); --Item: Words of Possession + --Words of Haunting + --Requires: 1 Ebon Dagger, 1 Jasper, 2 Dark Bone Chips + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 7037, item2 = 10020, item3 = 10518, item4 = 10518})) then + e.self:Say("You have quested well - With spell and sword - Accept our thanks - And this reward."); + e.other:Faction(e.self,239,10); -- The Dead + e.other:Faction(e.self,303,1); -- Queen Cristanos Thex + e.other:Faction(e.self,278,-1); -- King Naythox Thex + e.other:Faction(e.self,275,-1); -- Keepers of the Art + e.other:Faction(e.self,245,-1); -- Eldritch Collective + e.other:Faction(e.self,1522,-20); -- Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,11836,62000); -- Item: Words of Haunting + --Words of Collection (Beza) + --Requires: 1 Sphere of Unrest (orb of darkness?), 1 Eye of Kor, 1 Amber + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10520, item2 = 10524, item3 = 10022})) then + e.self:Say("You have quested well - With spell and sword - Accept our thanks - And this reward."); + e.other:Faction(e.self,239,10); -- The Dead + e.other:Faction(e.self,303,1); -- Queen Cristanos Thex + e.other:Faction(e.self,278,-1); -- King Naythox Thex + e.other:Faction(e.self,275,-1); -- Keepers of the Art + e.other:Faction(e.self,245,-1); -- Eldritch Collective + e.other:Faction(e.self,1522,-20); -- Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,11858,62000); -- Item: Words of Collection (Beza) + --Words of Collection (Caza) + --Requires: 1 Globe of Fear, 1 Eye of Guk, 1 Jade + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10521, item2 = 10526, item3 = 10023})) then + e.self:Say("You have quested well - With spell and sword - Accept our thanks - And this reward."); + e.other:Faction(e.self,239,10); -- The Dead + e.other:Faction(e.self,303,1); -- Queen Cristanos Thex + e.other:Faction(e.self,278,-1); -- King Naythox Thex + e.other:Faction(e.self,275,-1); -- Keepers of the Art + e.other:Faction(e.self,245,-1); -- Eldritch Collective + e.other:Faction(e.self,1522,-20); -- Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,11864,62000); -- Item: Words of Collection (Caza) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/neriaka/X-Ta_Timpi.lua b/neriaka/X-Ta_Timpi.lua new file mode 100644 index 0000000..b4050aa --- /dev/null +++ b/neriaka/X-Ta_Timpi.lua @@ -0,0 +1,85 @@ +--Quest Name: Necromancer Words - X`Ta Timpi +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 0) then + if(e.message:findi("hail")) then + e.self:Say("We three are the [Sisters Dark] - [Necromancy] is our Art - Bonded dead, they serve our will - No beat of heart, yet faithful still."); + elseif(e.message:findi("sisters dark")) then + e.self:Say("We three are the Sisters Dark - Keepers of the shadowed Dread - [Lore of Death]. we research now - Join with us and serve [the Dead]."); + elseif(e.message:findi("lore of death")) then + e.self:Say("The Lore of Death is shadow bound - Its [words] are [hid]. yet shall be found - Through our research into the dark - Old hexes found and parchment marked."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("necromancy")) then + e.self:Say("Necromancy - Art of the Dead - Binding bones to serve your will - We research now the [Lore of Death] - Ancient spells with power still."); + elseif(e.message:findi("hid")) then + e.self:Say("The Words are hid in tomes of old - Their yielded lore worth more than gold - Though we search both 'fore and 'hind - [Components] we can not yet find."); + elseif(e.message:findi("components")) then + e.self:Say("We need components for research - These are things that you could find - In return for [tasks] that you perform - Words of [reward] we have in mind."); + elseif(e.message:findi("tasks") or e.message:findi("reward")) then + e.self:Say("Bring us components for our research - We give [Word]s by tasks performed - [Possession], [Detachment], [Allure], [Haunting], [Rupturing], [Dark Paths], [Suffering], [Collection], [Obligation], [Requisition] and [Acquisition]."); + elseif(e.message:findi("words of detachment")) then + e.self:Say("From the Estate of Unrest, bring dull bone chips - From Castle Mistmoore, a dagger charred - From a merchant bring a stone of blood - Words of Detachment will be your reward."); + elseif(e.message:findi("words of rupturing")) then + e.self:Say("From the Estate of Unrest, bring a festering cloak - From Castle Mistmoore, ebon wands - From a merchant bring a jasper stone - Then Words of Rupturing will to you be given."); + elseif(e.message:findi("words of requisition")) then + e.self:Say("From the Plane of Fear, bring an Eye of Fright and a Stone of the Wraith - From a merchant bring a pearl - Then Words of Requisition will to you be given."); + elseif(e.message:findi("words of suffering")) then + e.self:Say("From Befallen, bring Iced Bone Chips - From spectres, bring a Globe of Fear - From a merchant bring a Star Rose Quartz - Then Words of Suffering will to you be given."); + elseif(e.message:findi("words of possession")or e.message:findi("words of allure") or e.message:findi("words of dark paths") or e.message:findi("words of haunting") or e.message:findi("words of obligation") or e.message:findi("words of collection") or e.message:findi("words of acquisition")) then + e.self:Say("The answer to that question is held by another - Ask again of my sister..."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + --Words of Detachment + --Requires: 1 Charred Dagger, 1 Bloodstone, 2 Dull Bone Chips + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 7036, item2 = 10019, item3 = 10517, item4 = 10517})) then + e.self:Say("You have quested well - With spell and sword - Accept our thanks - And this reward."); + e.other:Faction(e.self,239,10); -- The Dead + e.other:Faction(e.self,303,1); -- Queen Cristanos Thex + e.other:Faction(e.self,278,-1); -- King Naythox Thex + e.other:Faction(e.self,275,-1); -- Keepers of the Art + e.other:Faction(e.self,245,-1); -- Eldritch Collective + e.other:Faction(e.self,1522,-20); -- Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,11835,62000); -- Item: Words of Detachment + --Words of Rupturing + --Requires: 1 Festering Cloak, 1 Jasper, 2 Ebon Wands + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1343, item2 = 10020, item3 = 10515, item4 = 10515})) then + e.self:Say("You have quested well - With spell and sword - Accept our thanks - And this reward."); + e.other:Faction(e.self,239,10); -- The Dead + e.other:Faction(e.self,303,1); -- Queen Cristanos Thex + e.other:Faction(e.self,278,-1); -- King Naythox Thex + e.other:Faction(e.self,275,-1); -- Keepers of the Art + e.other:Faction(e.self,245,-1); -- Eldritch Collective + e.other:Faction(e.self,1522,-20); -- Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,11837,62000); -- Item: Words of Rupturing + --Words of Requisition + --Requires: 1 Eye of Fright, 1 Stone of the Wraith, 1 Pearl + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13151, item2 = 10298, item3 = 10024})) then + e.self:Say("You have quested well - With spell and sword - Accept our thanks - And this reward."); + e.other:Faction(e.self,239,10); -- The Dead + e.other:Faction(e.self,303,1); -- Queen Cristanos Thex + e.other:Faction(e.self,278,-1); -- King Naythox Thex + e.other:Faction(e.self,275,-1); -- Keepers of the Art + e.other:Faction(e.self,245,-1); -- Eldritch Collective + e.other:Faction(e.self,1522,-20); -- Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,11865,62000); -- Item: Words of Requisition + --Words of the Suffering + --Requires: 1 Globe of Fear, 1 Star Rose Quartz, 2 Iced Boned Chips + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10521, item2 = 10021, item3 = 10519, item4 = 10519})) then + e.self:Say("You have quested well - With spell and sword - Accept our thanks - And this reward."); + e.other:Faction(e.self,239,10); -- The Dead + e.other:Faction(e.self,303,1); -- Queen Cristanos Thex + e.other:Faction(e.self,278,-1); -- King Naythox Thex + e.other:Faction(e.self,275,-1); -- Keepers of the Art + e.other:Faction(e.self,245,-1); -- Eldritch Collective + e.other:Faction(e.self,1522,-20); -- Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,11851,62000); -- Item: Words of the Suffering + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/neriaka/X-Ta_Tompi.lua b/neriaka/X-Ta_Tompi.lua new file mode 100644 index 0000000..734d506 --- /dev/null +++ b/neriaka/X-Ta_Tompi.lua @@ -0,0 +1,85 @@ +--Quest Name: Necromancer Words - X`Ta Tompi +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 0) then + if(e.message:findi("hail")) then + e.self:Say("We three are the [Sisters Dark] - [Necromancy] is our Art - Bonded dead, they serve our will - No beat of heart, yet faithful still."); + elseif(e.message:findi("sisters dark")) then + e.self:Say("We three are the Sisters Dark - Keepers of the shadowed Dread - [Lore of Death]. we research now - Join with us and serve [the Dead]."); + elseif(e.message:findi("lore of death")) then + e.self:Say("The Lore of Death is shadow bound - Its [words] are [hid]. yet shall be found - Through our research into the dark - Old hexes found and parchment marked."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("necromancy")) then + e.self:Say("Necromancy - Art of the Dead - Binding bones to serve your will - We research now the [Lore of Death] - Ancient spells with power still."); + elseif(e.message:findi("hid")) then + e.self:Say("The Words are hid in tomes of old - Their yielded lore worth more than gold - Though we search both 'fore and 'hind - [Components] we can not yet find."); + elseif(e.message:findi("components")) then + e.self:Say("We need components for research - These are things that you could find - In return for [tasks] that you perform - Words of [reward] we have in mind."); + elseif(e.message:findi("tasks") or e.message:findi("reward")) then + e.self:Say("Bring us components for our research - We give [Word]s by tasks performed - [Possession], [Detachment], [Allure], [Haunting], [Rupturing], [Dark Paths], [Suffering], [Collection], [Obligation], [Requisition] and [Acquisition]."); + elseif(e.message:findi("words of allure")) then + e.self:Say("From the Estate of Unrest, bring a Charred Pearl - From Castle Mistmoore, a wand charred - From a merchant bring a stone of blood and a ruby - Words of Allure will be your reward."); + elseif(e.message:findi("words of dark paths")) then + e.self:Say("From the Estate of Unrest, bring an globe of darkness - From Guk, an Eye of Urd - From a merchant bring a Star Rose Quartz - Then Words of Dark Paths will to you be given."); + elseif(e.message:findi("words of acquisition")) then + e.self:Say("From the Plane of Fear, bring Fetid Skin, Scare Straw and a Turmoil Wart - From a merchant bring a pearl - Then Words of Acquisition will to you be given."); + elseif(e.message:findi("words of obligation")) then + e.self:Say("From Guk, bring an Eye of Jin - From spectres, bring a Globe of Fear - From a merchant bring a jade stone - Then Words of Obligation will to you be given."); + elseif(e.message:findi("words of possession") or e.message:findi("words of detachment") or e.message:findi("words of rupturing") or e.message:findi("words of haunting") or e.message:findi("words of suffering") or e.message:findi("words of collection") or e.message:findi("words of requisition")) then + e.self:Say("The answer to that question is held by another - Ask again of my sister..."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + --Words of Allure + --Requires: 1 Charred Pearl, 1 Ruby, 1 A Wand (Charred Wood Wand?), 1 Bloodstone + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10083, item2 = 10035, item3 = 14160, item4 = 10019})) then + e.self:Say("You have quested well - With spell and sword - Accept our thanks - And this reward."); + e.other:Faction(e.self,239,10); -- The Dead + e.other:Faction(e.self,303,1); -- Queen Cristanos Thex + e.other:Faction(e.self,278,-1); -- King Naythox Thex + e.other:Faction(e.self,275,-1); -- Keepers of the Art + e.other:Faction(e.self,245,-1); -- Eldritch Collective + e.other:Faction(e.self,1522,-20); -- Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,11829,62000); -- Item: Words of Allure + --Words of Dark Paths + --Requires: 1 Sphere of Unrest, 1 Eye of Urd, 1 Star Rose Quartz + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10520, item2 = 10523, item3 = 10021, item4 = 10019})) then + e.self:Say("You have quested well - With spell and sword - Accept our thanks - And this reward."); + e.other:Faction(e.self,239,10); -- The Dead + e.other:Faction(e.self,303,1); -- Queen Cristanos Thex + e.other:Faction(e.self,278,-1); -- King Naythox Thex + e.other:Faction(e.self,275,-1); -- Keepers of the Art + e.other:Faction(e.self,245,-1); -- Eldritch Collective + e.other:Faction(e.self,1522,-20); -- Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,11850,62000); -- Item: Words of Dark Paths + --Words of Acquisition (Beza) + --Requires: 1 Fetid Skin, 1 Scare Straw, 1 Turmoil Warts, 1 Pearl + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13150, item2 = 13152, item3 = 8331, item4 = 10024})) then + e.self:Say("You have quested well - With spell and sword - Accept our thanks - And this reward."); + e.other:Faction(e.self,239,10); -- The Dead + e.other:Faction(e.self,303,1); -- Queen Cristanos Thex + e.other:Faction(e.self,278,-1); -- King Naythox Thex + e.other:Faction(e.self,275,-1); -- Keepers of the Art + e.other:Faction(e.self,245,-1); -- Eldritch Collective + e.other:Faction(e.self,1522,-20); -- Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,11866,62000); -- Item: Words of Acquisition (Beza) + --Words of Obligation + --Requires: 1 Globe of Fear, 1 Eye of Jin, 1 Jade + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10521, item2 = 10525, item3 = 10023, item4 = 10024})) then + e.self:Say("You have quested well - With spell and sword - Accept our thanks - And this reward."); + e.other:Faction(e.self,239,10); -- The Dead + e.other:Faction(e.self,303,1); -- Queen Cristanos Thex + e.other:Faction(e.self,278,-1); -- King Naythox Thex + e.other:Faction(e.self,275,-1); -- Keepers of the Art + e.other:Faction(e.self,245,-1); -- Eldritch Collective + e.other:Faction(e.self,1522,-20); -- Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,11863,62000); -- Item: Words of Obligation + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/neriakb/#a_leatherfoot_spy.lua b/neriakb/#a_leatherfoot_spy.lua new file mode 100644 index 0000000..ee5ce1c --- /dev/null +++ b/neriakb/#a_leatherfoot_spy.lua @@ -0,0 +1,19 @@ +----a_leatherfoot_spy.pl +--Part of Innoruuk Disciple + +function event_spawn(e) + e.self:Say("I have been discovered!!! You will never stop us from reclaiming the Nektulos for Karana, " .. e.other:GetCleanName() .. "!!"); + eq.set_timer("depop", 3600000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakb/Andara_C-Luzz.lua b/neriakb/Andara_C-Luzz.lua new file mode 100644 index 0000000..ac5c129 --- /dev/null +++ b/neriakb/Andara_C-Luzz.lua @@ -0,0 +1,14 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19582, item2 = 19583, item3 = 16166})) then + e.self:Say("Well done " .. e.other:GetCleanName() .. "! Use this with pride."); + e.other:QuestReward(e.self,0,0,0,0,19611,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakb/Camia_V-Retta.lua b/neriakb/Camia_V-Retta.lua new file mode 100644 index 0000000..92254c8 --- /dev/null +++ b/neriakb/Camia_V-Retta.lua @@ -0,0 +1,17 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18753})) then --tattered note + e.self:Say("Greetings, and welcome to the Tower of the Spurned! I am Camia V'Retta, master enchantress. Here is your guild tunic, wear it with pride. Go to Ulvex D'Jerna; he whall help you with your new studies."); + e.other:Faction(e.self,363,100); --The Spurned + e.other:Faction(e.self,239,-15); --The Dead + e.other:QuestReward(e.self,0,0,0,0,13582,20); --Ruined Red Robe* + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:neriakb ID:41052 -- Camia_V`Retta +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakb/Dragoon_V-Retta.lua b/neriakb/Dragoon_V-Retta.lua new file mode 100644 index 0000000..26d2bc3 --- /dev/null +++ b/neriakb/Dragoon_V-Retta.lua @@ -0,0 +1,15 @@ +function event_signal(e) + if(e.signal == 1) then + eq.stop(); + eq.move_to(-639,-85,-24,16,true); + elseif(e.signal == 2) then + eq.start(35); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Join us in celebrating my promotion to the rank of Dragoon! I shall still respect all of you scum."); + e.self:DoAnim(67); --salute + end +end \ No newline at end of file diff --git a/neriakb/Draxiz_N-Ryt.lua b/neriakb/Draxiz_N-Ryt.lua new file mode 100644 index 0000000..5935d0d --- /dev/null +++ b/neriakb/Draxiz_N-Ryt.lua @@ -0,0 +1,25 @@ +--Draxiz N-Ryt.pl +--Part of Innoruuk Disciple + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12807})) then--Halfling Druid Master's Head + e.self:Say("I have foreseen your arrival, " .. e.other:GetCleanName() .. ". I see from the mind of this lesser creature you have slain that he was receiving orders from beyond the boundaries of Nektulos. I see an armored Leatherfoot moving cautiously through the commonlands attempting to avoid the eyes of travelers and guard posts. Find this Leatherfoot I see in my visions and return any pertinent information he may be carrying to me so that I may decipher it. I have skinned the face of this druid and enchanted it so that you may learn what you must through your skills of subterfuge. Go now, " .. e.other:GetCleanName() .. ", and do not disappoint me!"); + e.other:Faction(e.self,363, 10);--The Spurned + e.other:Faction(e.self,239, -1);--The Dead + e.other:QuestReward(e.self,0,0,0,0,2284,100); --Skinned Halfling Face Mask + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18957})) then--Leatherfoot Raider Orders + e.self:Say("I see you are more cunning than you appear, " .. e.other:GetCleanName() .. ". These orders to Whoopal bring disturbing news indeed. It seems there is a Leatherfoot spy somewhere in Neriak who has been providing the raiders with information. Find this spy and return his head and your initiate holy symbol of Innoruuk to Ithvol and if he deems you worthy he will promote you within the ranks of the Spires."); + eq.unique_spawn(41104,0,0,-560,-180,-55); -- NPC: #a_leatherfoot_spy + e.other:Faction(e.self,363, 10);--The Spurned + e.other:Faction(e.self,239, -1);--The Dead + e.other:QuestReward(e.self,0,0,0,0,0,100); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakb/Dunred_M-Trik.lua b/neriakb/Dunred_M-Trik.lua new file mode 100644 index 0000000..8caba46 --- /dev/null +++ b/neriakb/Dunred_M-Trik.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. I am pleased to report that I am fully stocked. Please have a look at the goods I have for sale."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("Very good work. I can see you are a talented baker and these muffins look suitable. You do Neriak a great service. Here is your payment. I look forward to conducting future business with you."); + e.other:Faction(e.self,236,2); -- Faction: Dark Bargainers + e.other:Faction(e.self,370,1); -- Faction: Dreadguard Inner + e.other:Faction(e.self,334,1); -- Faction: Dreadguard Outer + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("You have returned and none too soon! Thank you very much, I will put this bread on sale immediately. Here is your reward as promised. Thank you very much."); + e.other:Faction(e.self,236,4); -- Faction: Dark Bargainers + e.other:Faction(e.self,370,1); -- Faction: Dreadguard Inner + e.other:Faction(e.self,334,1); -- Faction: Dreadguard Outer + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/neriakb/Felok_N-Tan.lua b/neriakb/Felok_N-Tan.lua new file mode 100644 index 0000000..bf6b0a3 --- /dev/null +++ b/neriakb/Felok_N-Tan.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to my shop, " .. e.other:GetCleanName() .. ". I am Felok N'Tan, master smith of steel and [adamantite plate] armors. I am also the creator of the [dragoon shields] favored by members of the Indigo Brotherhood."); + elseif(e.message:findi("what adamantite plate")) then + e.self:Say("Adamantite plate armor is forged in our unique Teir'Dal forge with our highly specialized smithing techniques. Each piece of adamantite plate requires the appropriate small plate section mold, a Teir'Dal smithy hammer, leather padding, adamantite chain jointing, and shadow temper. Visors, collars, bracers, and boots require one folded sheet of adamantite. Helms, pauldrons, girdles, vambraces, and gauntlets require two folded sheets of adamantite. Breastplates, cloaks, and greaves require three folded sheets of adamantite."); + elseif(e.message:findi("what dragoon shields")) then + e.self:Say("Dragoon shields can only be crafted in our unique Teir'Dal forge here in Neriak. If you desire to craft one, you will require a kite shield mold, two sheets of adamantite, a Teir'Dal smithy hammer, and some shadow temper. If you are a proud follower of our Lord of Hate you may wish to attempt to create a magical dragoon shield. In order to do so, you will need to forge a sapphire, imbued by a cleric, into the shield at the time of its creation."); + elseif(e.message:findi("shadow temper")) then + e.self:Say("Shadow temper is essential to the proper crafting of most adamantite items. The brewers of the Blind Fish Tavern know the secrets of the valuable temper."); + end +end + +--END of FILE Zone:neriakb ID:41047 -- Felok_N`Tan +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakb/Gath_N-Mare.lua b/neriakb/Gath_N-Mare.lua new file mode 100644 index 0000000..c9c984e --- /dev/null +++ b/neriakb/Gath_N-Mare.lua @@ -0,0 +1,17 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18755})) then --Tattered Note + e.self:Say("I am Gath N'Mare, master wizard of the Tower of the Spurned. Welcome to our guild. Let's get started, shall we? Here is your tunic, represent us well with it. Shanez X'Teria is our beginning guild trainer. He will teach you the basics and give you a solid learning foundation of magic. Good luck, and study hard."); + e.other:Faction(e.self,363,100); --The Spurned + e.other:Faction(e.self,239,-15); --The Dead + e.other:QuestReward(e.self,0,0,0,0,13584,20); --Stained Red Robe* + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:neriakb ID:41053 -- Gath_N`Mare +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakb/Guard_D-Bious.lua b/neriakb/Guard_D-Bious.lua new file mode 100644 index 0000000..a263592 --- /dev/null +++ b/neriakb/Guard_D-Bious.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("Here in the Commons Quarter is the Tower of the Spurned. It is the home of the Spurned, Teir'Dal who choose to study enchanting, wizardry and magic."); + elseif(e.message:findi("weapons") or e.message:findi("forge")) then + e.self:Say("I recommend the Blue Flame forge near Adamant Armor or you might try the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("You are in the correct quarter. You can find the Burnished Coin within Neriak Down Under."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("This is no place for outsiders. That is why the Smuggler's Inn is located in the Foreign Quarter."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Within this area you will find the Cauldron of Hate which is home to the Teir'Dal warriors."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The mighty empire of the Teir'Dal is ruled by King Naythox Thex. All hail Thex!"); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("The Ebon Mask are the rogues of Neriak. Their Hall of the Ebon Mask lies within the Third Gate."); + elseif(e.message:findi("cleric guild") or e.message:findi("healer")) then + e.self:Say("When you enter the Third Gate you shall see the Spires of Innoruuk. This is the temple of the Priests of Innoruuk."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("tavern")) then + e.self:Say("There are quite a few taverns in the Commons Quarter. I recommend either Toadstool's or the Blind Fish."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Speak not of those vile paladins within Neriak!"); + end +end + diff --git a/neriakb/Guard_F-Lok.lua b/neriakb/Guard_F-Lok.lua new file mode 100644 index 0000000..fc79cc1 --- /dev/null +++ b/neriakb/Guard_F-Lok.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("Here in the Commons Quarter is the Tower of the Spurned. It is the home of the Spurned, Teir'Dal who choose to study enchanting, wizardry and magic."); + elseif(e.message:findi("weapons") or e.message:findi("forge")) then + e.self:Say("I recommend the Blue Flame forge near Adamant Armor or you might try the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("You are in the correct quarter. You can find the Burnished Coin within Neriak Down Under."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("This is no place for outsiders. That is why the Smuggler's Inn is located in the Foreign Quarter."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Within this area you will find the Cauldron of Hate which is home to the Teir'Dal warriors."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The mighty empire of the Teir'Dal is ruled by King Naythox Thex. All hail Thex!"); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("The Ebon Mask are the rogues of Neriak. Their Hall of the Ebon Mask lies within the Third Gate."); + elseif(e.message:findi("cleric guild") or e.message:findi("healer")) then + e.self:Say("When you enter the Third Gate you shall see the Spires of Innoruuk. This is the temple of the Priests of Innoruuk."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("tavern")) then + e.self:Say("There are quite a few taverns in the Commons Quarter. I recommend either Toadstool's or the Blind Fish."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Speak not of those vile paladins within Neriak!"); + end +end + +function event_signal(e) + if(e.signal == 1) then + eq.stop(); + eq.move_to(-630,-71,-24,162,true); + elseif(e.signal == 2) then + eq.start(36); + end +end diff --git a/neriakb/Guard_G-Noir.lua b/neriakb/Guard_G-Noir.lua new file mode 100644 index 0000000..c2abb3d --- /dev/null +++ b/neriakb/Guard_G-Noir.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("Here in the Commons Quarter is the Tower of the Spurned. It is the home of the Spurned, Teir'Dal who choose to study enchanting, wizardry and magic."); + elseif(e.message:findi("weapons") or e.message:findi("forge")) then + e.self:Say("I recommend the Blue Flame forge near Adamant Armor or you might try the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("You are in the correct quarter. You can find the Burnished Coin within Neriak Down Under."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("This is no place for outsiders. That is why the Smuggler's Inn is located in the Foreign Quarter."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Within this area you will find the Cauldron of Hate which is home to the Teir'Dal warriors."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The mighty empire of the Teir'Dal is ruled by King Naythox Thex. All hail Thex!"); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("The Ebon Mask are the rogues of Neriak. Their Hall of the Ebon Mask lies within the Third Gate."); + elseif(e.message:findi("cleric guild") or e.message:findi("healer")) then + e.self:Say("When you enter the Third Gate you shall see the Spires of Innoruuk. This is the temple of the Priests of Innoruuk."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("tavern")) then + e.self:Say("There are quite a few taverns in the Commons Quarter. I recommend either Toadstool's or the Blind Fish."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Speak not of those vile paladins within Neriak!"); + end +end \ No newline at end of file diff --git a/neriakb/Guard_N-Mar.lua b/neriakb/Guard_N-Mar.lua new file mode 100644 index 0000000..c2abb3d --- /dev/null +++ b/neriakb/Guard_N-Mar.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("Here in the Commons Quarter is the Tower of the Spurned. It is the home of the Spurned, Teir'Dal who choose to study enchanting, wizardry and magic."); + elseif(e.message:findi("weapons") or e.message:findi("forge")) then + e.self:Say("I recommend the Blue Flame forge near Adamant Armor or you might try the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("You are in the correct quarter. You can find the Burnished Coin within Neriak Down Under."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("This is no place for outsiders. That is why the Smuggler's Inn is located in the Foreign Quarter."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Within this area you will find the Cauldron of Hate which is home to the Teir'Dal warriors."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The mighty empire of the Teir'Dal is ruled by King Naythox Thex. All hail Thex!"); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("The Ebon Mask are the rogues of Neriak. Their Hall of the Ebon Mask lies within the Third Gate."); + elseif(e.message:findi("cleric guild") or e.message:findi("healer")) then + e.self:Say("When you enter the Third Gate you shall see the Spires of Innoruuk. This is the temple of the Priests of Innoruuk."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("tavern")) then + e.self:Say("There are quite a few taverns in the Commons Quarter. I recommend either Toadstool's or the Blind Fish."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Speak not of those vile paladins within Neriak!"); + end +end \ No newline at end of file diff --git a/neriakb/Guard_Q-Tentu.lua b/neriakb/Guard_Q-Tentu.lua new file mode 100644 index 0000000..c2abb3d --- /dev/null +++ b/neriakb/Guard_Q-Tentu.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("Here in the Commons Quarter is the Tower of the Spurned. It is the home of the Spurned, Teir'Dal who choose to study enchanting, wizardry and magic."); + elseif(e.message:findi("weapons") or e.message:findi("forge")) then + e.self:Say("I recommend the Blue Flame forge near Adamant Armor or you might try the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("You are in the correct quarter. You can find the Burnished Coin within Neriak Down Under."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("This is no place for outsiders. That is why the Smuggler's Inn is located in the Foreign Quarter."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Within this area you will find the Cauldron of Hate which is home to the Teir'Dal warriors."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The mighty empire of the Teir'Dal is ruled by King Naythox Thex. All hail Thex!"); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("The Ebon Mask are the rogues of Neriak. Their Hall of the Ebon Mask lies within the Third Gate."); + elseif(e.message:findi("cleric guild") or e.message:findi("healer")) then + e.self:Say("When you enter the Third Gate you shall see the Spires of Innoruuk. This is the temple of the Priests of Innoruuk."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("tavern")) then + e.self:Say("There are quite a few taverns in the Commons Quarter. I recommend either Toadstool's or the Blind Fish."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Speak not of those vile paladins within Neriak!"); + end +end \ No newline at end of file diff --git a/neriakb/Guard_Quexill.lua b/neriakb/Guard_Quexill.lua new file mode 100644 index 0000000..c2abb3d --- /dev/null +++ b/neriakb/Guard_Quexill.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("Here in the Commons Quarter is the Tower of the Spurned. It is the home of the Spurned, Teir'Dal who choose to study enchanting, wizardry and magic."); + elseif(e.message:findi("weapons") or e.message:findi("forge")) then + e.self:Say("I recommend the Blue Flame forge near Adamant Armor or you might try the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("You are in the correct quarter. You can find the Burnished Coin within Neriak Down Under."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("This is no place for outsiders. That is why the Smuggler's Inn is located in the Foreign Quarter."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Within this area you will find the Cauldron of Hate which is home to the Teir'Dal warriors."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The mighty empire of the Teir'Dal is ruled by King Naythox Thex. All hail Thex!"); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("The Ebon Mask are the rogues of Neriak. Their Hall of the Ebon Mask lies within the Third Gate."); + elseif(e.message:findi("cleric guild") or e.message:findi("healer")) then + e.self:Say("When you enter the Third Gate you shall see the Spires of Innoruuk. This is the temple of the Priests of Innoruuk."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("tavern")) then + e.self:Say("There are quite a few taverns in the Commons Quarter. I recommend either Toadstool's or the Blind Fish."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Speak not of those vile paladins within Neriak!"); + end +end \ No newline at end of file diff --git a/neriakb/Guard_S-Lon.lua b/neriakb/Guard_S-Lon.lua new file mode 100644 index 0000000..c2abb3d --- /dev/null +++ b/neriakb/Guard_S-Lon.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("Here in the Commons Quarter is the Tower of the Spurned. It is the home of the Spurned, Teir'Dal who choose to study enchanting, wizardry and magic."); + elseif(e.message:findi("weapons") or e.message:findi("forge")) then + e.self:Say("I recommend the Blue Flame forge near Adamant Armor or you might try the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("You are in the correct quarter. You can find the Burnished Coin within Neriak Down Under."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("This is no place for outsiders. That is why the Smuggler's Inn is located in the Foreign Quarter."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Within this area you will find the Cauldron of Hate which is home to the Teir'Dal warriors."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The mighty empire of the Teir'Dal is ruled by King Naythox Thex. All hail Thex!"); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("The Ebon Mask are the rogues of Neriak. Their Hall of the Ebon Mask lies within the Third Gate."); + elseif(e.message:findi("cleric guild") or e.message:findi("healer")) then + e.self:Say("When you enter the Third Gate you shall see the Spires of Innoruuk. This is the temple of the Priests of Innoruuk."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("tavern")) then + e.self:Say("There are quite a few taverns in the Commons Quarter. I recommend either Toadstool's or the Blind Fish."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Speak not of those vile paladins within Neriak!"); + end +end \ No newline at end of file diff --git a/neriakb/Guard_S-Tai.lua b/neriakb/Guard_S-Tai.lua new file mode 100644 index 0000000..c2abb3d --- /dev/null +++ b/neriakb/Guard_S-Tai.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("Here in the Commons Quarter is the Tower of the Spurned. It is the home of the Spurned, Teir'Dal who choose to study enchanting, wizardry and magic."); + elseif(e.message:findi("weapons") or e.message:findi("forge")) then + e.self:Say("I recommend the Blue Flame forge near Adamant Armor or you might try the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("You are in the correct quarter. You can find the Burnished Coin within Neriak Down Under."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("This is no place for outsiders. That is why the Smuggler's Inn is located in the Foreign Quarter."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Within this area you will find the Cauldron of Hate which is home to the Teir'Dal warriors."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The mighty empire of the Teir'Dal is ruled by King Naythox Thex. All hail Thex!"); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("The Ebon Mask are the rogues of Neriak. Their Hall of the Ebon Mask lies within the Third Gate."); + elseif(e.message:findi("cleric guild") or e.message:findi("healer")) then + e.self:Say("When you enter the Third Gate you shall see the Spires of Innoruuk. This is the temple of the Priests of Innoruuk."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("tavern")) then + e.self:Say("There are quite a few taverns in the Commons Quarter. I recommend either Toadstool's or the Blind Fish."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Speak not of those vile paladins within Neriak!"); + end +end \ No newline at end of file diff --git a/neriakb/Guard_T-Kix.lua b/neriakb/Guard_T-Kix.lua new file mode 100644 index 0000000..c2abb3d --- /dev/null +++ b/neriakb/Guard_T-Kix.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("Here in the Commons Quarter is the Tower of the Spurned. It is the home of the Spurned, Teir'Dal who choose to study enchanting, wizardry and magic."); + elseif(e.message:findi("weapons") or e.message:findi("forge")) then + e.self:Say("I recommend the Blue Flame forge near Adamant Armor or you might try the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("You are in the correct quarter. You can find the Burnished Coin within Neriak Down Under."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("This is no place for outsiders. That is why the Smuggler's Inn is located in the Foreign Quarter."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Within this area you will find the Cauldron of Hate which is home to the Teir'Dal warriors."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The mighty empire of the Teir'Dal is ruled by King Naythox Thex. All hail Thex!"); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("The Ebon Mask are the rogues of Neriak. Their Hall of the Ebon Mask lies within the Third Gate."); + elseif(e.message:findi("cleric guild") or e.message:findi("healer")) then + e.self:Say("When you enter the Third Gate you shall see the Spires of Innoruuk. This is the temple of the Priests of Innoruuk."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("tavern")) then + e.self:Say("There are quite a few taverns in the Commons Quarter. I recommend either Toadstool's or the Blind Fish."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Speak not of those vile paladins within Neriak!"); + end +end \ No newline at end of file diff --git a/neriakb/Guard_Tolax.lua b/neriakb/Guard_Tolax.lua new file mode 100644 index 0000000..c2abb3d --- /dev/null +++ b/neriakb/Guard_Tolax.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("Here in the Commons Quarter is the Tower of the Spurned. It is the home of the Spurned, Teir'Dal who choose to study enchanting, wizardry and magic."); + elseif(e.message:findi("weapons") or e.message:findi("forge")) then + e.self:Say("I recommend the Blue Flame forge near Adamant Armor or you might try the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("You are in the correct quarter. You can find the Burnished Coin within Neriak Down Under."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("This is no place for outsiders. That is why the Smuggler's Inn is located in the Foreign Quarter."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Within this area you will find the Cauldron of Hate which is home to the Teir'Dal warriors."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The mighty empire of the Teir'Dal is ruled by King Naythox Thex. All hail Thex!"); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("The Ebon Mask are the rogues of Neriak. Their Hall of the Ebon Mask lies within the Third Gate."); + elseif(e.message:findi("cleric guild") or e.message:findi("healer")) then + e.self:Say("When you enter the Third Gate you shall see the Spires of Innoruuk. This is the temple of the Priests of Innoruuk."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("tavern")) then + e.self:Say("There are quite a few taverns in the Commons Quarter. I recommend either Toadstool's or the Blind Fish."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Speak not of those vile paladins within Neriak!"); + end +end \ No newline at end of file diff --git a/neriakb/Guard_V-Lask.lua b/neriakb/Guard_V-Lask.lua new file mode 100644 index 0000000..c2abb3d --- /dev/null +++ b/neriakb/Guard_V-Lask.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("Here in the Commons Quarter is the Tower of the Spurned. It is the home of the Spurned, Teir'Dal who choose to study enchanting, wizardry and magic."); + elseif(e.message:findi("weapons") or e.message:findi("forge")) then + e.self:Say("I recommend the Blue Flame forge near Adamant Armor or you might try the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("You are in the correct quarter. You can find the Burnished Coin within Neriak Down Under."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("This is no place for outsiders. That is why the Smuggler's Inn is located in the Foreign Quarter."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Within this area you will find the Cauldron of Hate which is home to the Teir'Dal warriors."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The mighty empire of the Teir'Dal is ruled by King Naythox Thex. All hail Thex!"); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("The Ebon Mask are the rogues of Neriak. Their Hall of the Ebon Mask lies within the Third Gate."); + elseif(e.message:findi("cleric guild") or e.message:findi("healer")) then + e.self:Say("When you enter the Third Gate you shall see the Spires of Innoruuk. This is the temple of the Priests of Innoruuk."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("tavern")) then + e.self:Say("There are quite a few taverns in the Commons Quarter. I recommend either Toadstool's or the Blind Fish."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Speak not of those vile paladins within Neriak!"); + end +end \ No newline at end of file diff --git a/neriakb/Guard_Zexus.lua b/neriakb/Guard_Zexus.lua new file mode 100644 index 0000000..c2abb3d --- /dev/null +++ b/neriakb/Guard_Zexus.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("Here in the Commons Quarter is the Tower of the Spurned. It is the home of the Spurned, Teir'Dal who choose to study enchanting, wizardry and magic."); + elseif(e.message:findi("weapons") or e.message:findi("forge")) then + e.self:Say("I recommend the Blue Flame forge near Adamant Armor or you might try the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("You are in the correct quarter. You can find the Burnished Coin within Neriak Down Under."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("This is no place for outsiders. That is why the Smuggler's Inn is located in the Foreign Quarter."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Within this area you will find the Cauldron of Hate which is home to the Teir'Dal warriors."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The mighty empire of the Teir'Dal is ruled by King Naythox Thex. All hail Thex!"); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("The Ebon Mask are the rogues of Neriak. Their Hall of the Ebon Mask lies within the Third Gate."); + elseif(e.message:findi("cleric guild") or e.message:findi("healer")) then + e.self:Say("When you enter the Third Gate you shall see the Spires of Innoruuk. This is the temple of the Priests of Innoruuk."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("tavern")) then + e.self:Say("There are quite a few taverns in the Commons Quarter. I recommend either Toadstool's or the Blind Fish."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Speak not of those vile paladins within Neriak!"); + end +end \ No newline at end of file diff --git a/neriakb/Issva_H-Rugla.lua b/neriakb/Issva_H-Rugla.lua new file mode 100644 index 0000000..0b9e598 --- /dev/null +++ b/neriakb/Issva_H-Rugla.lua @@ -0,0 +1,47 @@ +--Issva_H-Rugla.pl +--Orc Slayer Armor + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("If you're looking for chit chat you can bugger off. I'm here to sell supplies not company."); + elseif(e.message:findi("materials")) then + e.self:Say("Many species of dangerous creatures, the walking dead, and invading Deathfist Orcs inhabit the Nektulos Forest. You must defeat these creatures and undead in order to obtain the materials. The materials you seek depend on the piece of armor you desire. Do you desire to craft [gauntlets], [boots], a [bracer], a [helm], [greaves], [vambraces], or a [breastplate]?"); + elseif(e.message:findi("gauntlet")) then + e.self:Say("To craft Orc Slayer Gauntlets you require two [silk thread], a cracked pyre beetle carapace, and two orc finger bones. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Glove Pattern."); + e.other:SummonCursorItem(19559);--Tattered Glove Pattern + elseif(e.message:findi("boot")) then + e.self:Say("To craft Orc Slayer Boots you require two [silk thread], two cracked pyre beetle carapaces, and two orc foot bones. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Boot Pattern."); + e.other:SummonCursorItem(19561);--Tattered Boot Pattern + elseif(e.message:findi("bracer")) then + e.self:Say("To craft an Orc Slayer Bracer you require a [silk thread], a cracked pyre beetle carapace, and an orc ulna bone. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Bracer Pattern."); + e.other:SummonCursorItem(19558);--Tattered Wristband Pattern + elseif(e.message:findi("helm")) then + e.self:Say("To craft an Orc Slayer Helm you require two [silk thread], a cracked pyre beetle carapace, and an orc skull. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Cap Pattern."); + e.other:SummonCursorItem(19555);--Tattered Cap Pattern + elseif(e.message:findi("greave")) then + e.self:Say("To craft Orc Slayer Greaves you require three [silk thread], a pyre beetle carapace, two orc tibia, and an orc pelvis bone. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Leggings Pattern."); + e.other:SummonCursorItem(19560);--Tattered Pant Pattern + elseif(e.message:findi("vambrace")) then + e.self:Say("To craft Ord Slayer Vambraces you require two [silk thread], a pyre beetle carapace, and two orc humerus bones. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Sleeves Pattern."); + e.other:SummonCursorItem(19557);--Tattered Sleeve Pattern + elseif(e.message:findi("breastplate")) then + e.self:Say("To craft an Orc Slayer Breastplate you require four [silk thread], a pristine pyre beetle carapace, an orc sternum, and an orc ribcage. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Tunic Pattern."); + e.other:SummonCursorItem(19556);--Tattered Tunic Pattern + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31753})) then --Request Form + e.self:Say("So you are one of Jarrex's new recruits. You are to assist in the construction of the armor you will don as a new Warrior of the Indigo Brotherhood. I have assembled a kit that is used in the crafting of Orc Slayer Mail. You must travel beyond Neriak into the Nektulos Forest for the [materials] that compose the armor."); + e.other:QuestReward(e.self,0,0,0,0,17124); --Mail Assembly Kit + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:neriakb ID:41064 -- Issva_H`Rugla +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakb/Jarrex_N-Ryt.lua b/neriakb/Jarrex_N-Ryt.lua new file mode 100644 index 0000000..c82c7a9 --- /dev/null +++ b/neriakb/Jarrex_N-Ryt.lua @@ -0,0 +1,43 @@ +--Jarrex N-Ryt.pl +--Orc Slayer Armor/Orc Slayer Weapon/Orc Slayer Shield + + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What have we here? A new weakling that wishes to reap some sort of self-value and renown through service to the Indigo Brotherhood perhaps? Well speak up whelp!! Have you come to [destroy the enemies of Neriak] or are you a coward better suited to mop the filth from the back rooms of the Maidens Fancy."); + elseif(e.message:findi("destroy the enemies")) then + if(e.other:GetClass() == 1 and e.other:GetRace() == 6) then + e.self:Say("If you are going to be of any value to the Indigo Brotherhood you will need to outfit yourself in a suit of armor that will turn aside the blades of enemy forces. From the looks of you even the tiny fangs of a moss snake could bring you death. Take this request form to Issva H'Rugla to get yourself started on the assembly of your armor. When you have procured some protection for your weakling body return to me for [further instruction]."); + e.other:SummonCursorItem(31753);--Request Form + else + e.self:Say("Begone fool, you are no member of the Indigo Brotherhood!");--text made up + end + elseif(e.message:findi("further instruction")) then + e.self:Say("Ah, you are eager to advance further within the Indigo Brotherhood. Although it is my duty to aid your training, do not allow your arrogance to blind you to your lowly position amongst the Kings most loyal subjects. Your next task is to assist the construction of a [weapon] and [shield] worthy of being wielded by a Warrior of the Indigo Brotherhood."); + elseif(e.message:findi("weapon")) then + e.self:Say("Beyond the mouth of Neriak lies the Nektulos Forest. There the Deathfist Clan of Orcs has set up camps in an attempt to invade and claim the Nektulos Forest. Slay these invaders and bring to me an Orc Templar Scalp, an Orc Fibula bone, and an Orc Clavicle bone."); + elseif(e.message:findi("shield")) then + e.self:Say("Young Kodiak Bears often wander into the Nektulos Forest from the Commonlands searching for food. You do not appear to have the strength to arm wrestle a pixie. If you prove me wrong by slaying Young Kodiaks and bringing me four Young Kodiak Femurs I will guide you in the construction of a shield worthy of a warrior of the Indigo Brotherhood."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetClass() == 1 and e.other:GetRace() == 6) then + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 16173, item2 = 19565, item3 = 19564})) then--Deathfist Orc Scalp, Orc Clavicle, Orc Fibula + e.self:Say("Excellent. Here is your weapon, " .. e.other:GetCleanName() .. ". Use it to slay more!");--text made up + e.other:QuestReward(e.self,0,0,0,0,19606);--Jagged Orc Slayer Sword + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19562, item2 = 19562, item3 = 19562, item4 = 19562})) then--Young Kodiak Femurs + e.self:Say("So you have more strength than you seem to. Hmm...here is your shield, " .. e.other:GetCleanName() .. ".");--text made up + e.other:QuestReward(e.self,0,0,0,0,19609);--Black Femur Shield + end + end + + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakb/Jayna_D-Bious.lua b/neriakb/Jayna_D-Bious.lua new file mode 100644 index 0000000..d1a26f0 --- /dev/null +++ b/neriakb/Jayna_D-Bious.lua @@ -0,0 +1,17 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18754})) then --Tattered Note + e.self:Say("Welcome, young magician. I am Jayna D'Bious. You have much to learn, so let's get you started. Here is your guild tunic. Go find Belux, he is in charge of instructing our new recruits. Study hard, and you will do well."); + e.other:Faction(e.self,363,100); --The Spurned + e.other:Faction(e.self,239,-15); --The Dead + e.other:QuestReward(e.self,0,0,0,0,13583,20); --Torn Red Robe* + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:neriakb ID:41054 -- Jayna_D`Bious +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakb/Krivn_S-Tai.lua b/neriakb/Krivn_S-Tai.lua new file mode 100644 index 0000000..4456ddc --- /dev/null +++ b/neriakb/Krivn_S-Tai.lua @@ -0,0 +1,45 @@ +function event_say(e) + if(e.message:findi("materials")) then + e.self:Say("Many species of dangerous creatures and even the walking remains of the dead inhabit the Nektulos Forest. You must defeat these creatures and undead in order to obtain the materials. The materials you seek depend on the piece of armor you desire. Do you desire to craft [gloves], [boots], a [bracer], a [coif], [leggings], [sleeves], or a [tunic]?"); + elseif(e.message:findi("boot")) then + e.self:Say("To craft Bone Mail Boots you require two [silk thread], two ruined wolf pelts, and two calcified foot bones. Once you have the necessary components combine them in your Bone Mail Kit with this Tattered Boot Pattern."); + e.other:SummonCursorItem(19561); -- Item: Tattered Boot Pattern + elseif(e.message:findi("bracer")) then + e.self:Say("To craft a Bone Mail Bracer you require a [silk thread], a ruined wolf pelt, and a calcified ulna bone. Once you have the necessary components combine them in your Bone Mail Kit with this Tattered Bracer Pattern."); + e.other:SummonCursorItem(19558); -- Item: Tattered Wristband Pattern + elseif(e.message:findi("coif")) then + e.self:Say("To craft a Bone Mail Coif you require two [silk thread], a ruined wolf pelt, and a calcified skull. Once you have the necessary components combine them in your Bone Mail Kit with this Tattered Cap Pattern."); + e.other:SummonCursorItem(19555); -- Item: Tattered Cap Pattern + elseif(e.message:findi("glove")) then + e.self:Say("To craft Bone Mail Gloves you require two [silk thread], a ruined wolf pelt, and two calcified finger bones. Once you have the necessary components combine them in your Bone Mail Kit with this Tattered Glove Pattern."); + e.other:SummonCursorItem(19559); -- Item: Tattered Glove Pattern + elseif(e.message:findi("legging")) then + e.self:Say("To craft Bone Mail Leggings you require three [silk thread], a low quality wolf pelt, two calcified tibia, and a calcified pelvis. Once you have the necessary components combine them in your Bone Mail Kit with this Tattered Leggings Pattern."); + e.other:SummonCursorItem(19560); -- Item: Tattered Pant Pattern + elseif(e.message:findi("sleeve")) then + e.self:Say("To craft Bone Mail Sleeves you require two [silk thread], a low quality wolf pelt, and two calcified humerus bones. Once you have the necessary components combine them in your Bone Mail Kit with this Tattered Sleeves Pattern."); + e.other:SummonCursorItem(19557); -- Item: Tattered Sleeve Pattern + elseif(e.message:findi("tunic")) then + e.self:Say("To craft a Bone Mail Tunic you require four [silk thread], a medium quality wolf skin, a calcified sternum, and a calcified ribcage. Once you have the necessary components combine them in your Bone Mail Kit with this Tattered Tunic Pattern."); + e.other:SummonCursorItem(19556); -- Item: Tattered Tunic Pattern + elseif(e.message:findi("silk thread")) then + e.self:Say("Silk Thread is sewn by a tailor using a [sewing kit] or a community [loom]. Two spiderling silks combined in the sewing kit or loom will create one silk thread."); + elseif((e.message:findi("sewing kit")) or (e.message:findi("loom"))) then + e.self:Say("A sewing kit may be purchased at the Furrier Royale in Neriaks Third Quarter or at the Silk Underground in Neriaks Foreign Quarter. A community loom may be found at the Silk Underground in Neriaks Foreign Quarter."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19584})) then + e.self:Say("So you are one of Ulraz's new recruits. You are to assist in the construction of the armor you will don as a new Shadowknight of the Lodge of the Dead. I have assembled a kit that is used in the crafting of Bone Mail. You must travel beyond Neriak into the Nektulos Forest for the [materials] that compose the armor."); + e.other:QuestReward(e.self,0,0,0,0,17124); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:neriakb ID:41046 -- Krivn_S`Tai +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakb/Lynsalai_T-Nyal.lua b/neriakb/Lynsalai_T-Nyal.lua new file mode 100644 index 0000000..b42fbb9 --- /dev/null +++ b/neriakb/Lynsalai_T-Nyal.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. " .. e.other:GetCleanName() .. ". The Neriak signal is a newspaper that reports all the events important to the Teir`Dal. which frankly. is the only news that is truly important."); + end +end + +--END of FILE Zone:neriakb ID:41023 -- Lynsalai_T`Nyal +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakb/Marenkor_To-Biath.lua b/neriakb/Marenkor_To-Biath.lua new file mode 100644 index 0000000..3bff24b --- /dev/null +++ b/neriakb/Marenkor_To-Biath.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Come in! Come in! Enjoy the sights of the Blind Fish Tavern! We serve the finest alcohol in Neriak!"); + elseif(e.message:findi("shadow temper")) then + e.self:Say("Ha ha ha! You think you're good enough to craft adamantite or brew shadow temper for the smiths, eh? Well, I'll give you the benefit of the doubt. You'll need to brew Neriak nectar with non-Teir'Dal elven blood, and two drops of the deepest shadows."); + e.self:DoAnim(52); + end +end + +--END of FILE Zone:neriakb ID:41043 -- Marenkor_To`Biath +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/neriakb/Morgalanth_Tal-Raeloen.lua b/neriakb/Morgalanth_Tal-Raeloen.lua new file mode 100644 index 0000000..1a3f12a --- /dev/null +++ b/neriakb/Morgalanth_Tal-Raeloen.lua @@ -0,0 +1,57 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Who dares to address me while I am clearly busy reviewing my daily research. I sure hope this is important " .. e.other:GetCleanName() .. ", I do not have time to waste on just any initate of House Spurned. Not a single day goes by that I do not come face to face with cannon fodder that is not even worthy of a headstone in our burial grounds. If you wish to [prove yourself] then I might be in a generous mood."); + elseif(e.message:findi("prove myself")) then + e.self:Say("I must admit this is not the first time I have heard someone say that nor will it be the last, however I am wiling to give you a chance. First thing we will need to do is get some clothes in your back if you wish to survive for any amount of time. If you are a young Wizard, Enchanter or Magician of House Spurned then I will present you with a [mystical sewing kit]."); + elseif(e.message:findi("mystical sewing kit")) then + e.self:Say("'The Mystical Sewing kit that I have created is one that is able to fashion a material used for crafting clothes worn by all Initates of House Spurned. All that is required are Cloaks worn by Lightwalkers that plague our Forest to this very day. If you are to take my task and seek vegenence on this inferior group of Arcane lightwalkers you will pride your house along with gathering one of the [key ingredients] for your armor. I have heard rumor that they have tried to generate some kind of magic from a source shrouded by our forest."); + elseif(e.message:findi("key ingredients")) then + e.self:Say("You will be given different combination recipes for whichever armor piece you wish to craft. You will combine the specific items in the Mystical Sewing Kit that I will give to you when you are ready. After you have combined the correct items in your sewing kit you will fashion together a Bloodstained Cloth of the Spurned. At that time you will put the pattern that I will give you for each armor piece you request in the loom along with this cloth to craft your Armor piece. I will also suggest that you craft your Breastplate last due to the difficulty of obtaining the items. Do you [understand] the instructions I have given you?"); + elseif(e.message:findi("understand")) then + if((e.other:GetClass() == 12 or e.other:GetClass() == 13 or e.other:GetClass() == 14) and e.other:GetRace() == 6) then + e.self:Say("'Very well " .. e.other:GetCleanName() .. ", here is your Mystical sewing kit. I have the patterns and recipes necessary to craft Spurned Initiate [Skullcaps], [Bracers], [Sandals], [Sleeves], [Trousers], [Glovesend and [Robes]. When you feel you are ready to gather the items necessary to craft your armor simply tell me which piece you want to craft. The items that you will need to collect will mostly be found in the Forest but some will be here in town. As I said before seek out the Arcane Lightwalkers to collect the cloaks that you will need to make the armor materials. I look forward to seeing what you will make of this opportunity."); + e.other:SummonCursorItem(17246);--Mystical Sewing Kit + else + e.self:Say("You are no member of House Spurned. Begone!"); --text made up, I have no record of what's said if you're not an inkie chanter/wizzy/mag + end + elseif(e.message:findi("skullcaps")) then + e.self:Say("You will need to collect 1 Blood Drenched Cloak 1 Ash Drakeling Scale 2 Bone Chips and 1 Red Wine. Combine these all in your Mystical Sewing Kit to create a Bloodstained Cloth of the Spurned that is used for creating your Skullcap. Take this Cap pattern that I have given you and place it in the closest loom along with your Bloodstained Cloth of the Spurned to craft a Skullcap of the Spurned Initiate."); + e.other:SummonCursorItem(22628);--Enchanted Cap Pattern + elseif(e.message:findi("bracers")) then + e.self:Say("" .. e.other:GetCleanName() .. ", you will need to collect 1 Blood Drenched Cloak, 1 Black Mamba Skin, 1 Fire beetle Eye, 1 Short Beer. Combine these all in your Mystical Sewing Kit to create a Bloodstained Cloth of the Spurned that is used for creating your Bracer. Take this Bracer pattern that I have given you and place it in the closest loom along with your Bloodstained Cloth of the Spurned to craft a Bracer of the Spurned Initiate."); + e.other:SummonCursorItem(22629);--Enchanted Bracer Pattern + elseif(e.message:findi("sandals")) then + e.self:Say("" .. e.other:GetCleanName() .. ", you will need to collect 2 Blood Drenched Cloaks, 2 Snake Scales, 1Ruined Bear Pelt and 2 bandages. Combine these all in your Mystical Sewing Kit to create a Bloodstained Cloth of the Spurned that is used for creating your Sandals. Take this Sandal pattern that I have given you and place it in the closest loom along with your Bloodstained Cloth of the Spurned to craft Sandals of the Spurned Initiate."); + e.other:SummonCursorItem(22630);--Enchanted Slippers Pattern + elseif(e.message:findi("sleeves")) then + e.self:Say("Welcome back " .. e.other:GetCleanName() .. ", you will need to collect 3 Blood Drenched Cloaks, 1 Fire Beetle Leg, 1 Black Wolf Pelt and 1 Water Flask. Combine these all in your Mystical Sewing Kit to create a Bloodstained Cloth of the Spurned that is used for creating your Sandals. Take this Sleeve pattern that I have given you and place it in the closest loom along with your Bloodstained Cloth of the Spurned to craft Sleeves of the Spurned Initiate."); + e.other:SummonCursorItem(22631);--Enchanted Sleeves Pattern + elseif(e.message:findi("trousers")) then + e.self:Say("Hello again " .. e.other:GetCleanName() .. ", you will need to collect 4 Blood Drenched Cloaks, 1 Deathfist Legionnaire Scalp, 2 Bone Chips and 1 Ruined Wolf Pelt. Combine these all in your Mystical Sewing Kit to create a Bloodstained Cloth of the Spurned that is used for creating your Trousers. Take this Trouser pattern that I have given you and place it in the closest loom along with your Bloodstained Cloth of the Spurned to craft Trousers of the Spurned Initiate."); + e.other:SummonCursorItem(22632);--Enchanted Trousers Pattern + elseif(e.message:findi("gloves")) then + e.self:Say("Excellent " .. e.other:GetCleanName() .. ", you will need to collect 3 Blood Drenched Cloaks, 2 Garter Snake Tongues and 2 Spiderling Silks. Combine these all in your Mystical Sewing Kit to create a Bloodstained Cloth of the Spurned that is used for creating your Sandals. Take this Glove pattern that I have given you and place it in the closest loom along with your Bloodstained Cloth of the Spurned to craft Gloves of the Spurned Initiate."); + e.other:SummonCursorItem(22633);--Enchanted Gloves Pattern + elseif(e.message:findi("robes")) then + e.self:Say("It brings me great pleasure to see that your training has come this far " .. e.other:GetCleanName() .. ", for your House Spurned Ceremonial Gown you will need to collect 5 Blood Drenched Cloaks, 2 Basilisk Eye Stalks, 1 Embalming Dust, 2 Large Snake Skins. Combine these all in your Mystical Sewing Kit to create a Bloodstained Cloth of the Spurned that is used for creating your Robe. Take this Glove pattern that I have given you and place it in the closest loom along with your Bloodstained Cloth of the Spurned to craft a Robe of the Spurned Initiate. Please return to me should you succeed in this task, I have one [final test] for you in mind."); + e.other:SummonCursorItem(22634);--Enchanted Robe Pattern + elseif(e.message:findi("final test")) then + e.self:Say("Well, I must say that I did not expect you to progress in your training at the rate you have. I also knew there was something that separated you from our other initiates. For your final test, I will need you to execute three specific Orc Chieftans in the Nektulos forest. Bring me the Prayer beads of all three Orc Chieftans. These Orc Chieftans are the heads of each Orc camp and will be heavily guarded, so I would suggest bringing any friends you have made that are somewhat proficient on the battlefield to assist you. They have caused my house many problems and it is time that they are put to rest. You have come too far to fail me now. I hope to see you soon...alive, that is."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 22642, item2 = 22643, item3 = 22644})) then + e.self:Say("Your prowess both in the classroom and on the battlefield has certainly amazed me. Please take this relic that is only presented to the most dedicated initiates and carry it with pride. You have made your house very proud on this day."); + e.other:QuestReward(e.self,0,0,0,0,22647); --Ceremonial Dagger of the Spurned + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Quest by Kilelen, based on a quest by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/neriakb/Narex_T-Vem.lua b/neriakb/Narex_T-Vem.lua new file mode 100644 index 0000000..1eab4b6 --- /dev/null +++ b/neriakb/Narex_T-Vem.lua @@ -0,0 +1,68 @@ +--Narex_T-Vem.pl +--Fire Goblin Runner/Halfling Raider Helms + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to the Cauldron of Hate. If you are a young warrior, you have come to the right place. There are many [duties] to be performed. If you are a veteran of the blade, we welcome your return to service. Perhaps you return with a [Leatherfoot] skullcap?"); + elseif(e.message:findi("duties")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I am so glad you asked. There is one matter of importance with which you may be able to assist. It seems an Erudite has made camp in Lavastorm. He is powerful and we do not expect you to slay him. Your mission is to cut off his supply line. I hope you will [accept the mission]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Go! Return when you have done more to serve the Indigo Brotherhood of Neriak. Fewer Leatherfoot Raiders in Nektulos and a few Leatherfoot skullcaps in the palms of Master Narex shall prove your true warrior nature and loyalty to our house."); + else + e.self:Say("Your head will make a fine trophy in the halls of the Indigo Brotherhood."); + end + elseif(e.message:findi("accept the mission")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Go to the Lavastorm Mountain Range. It is a dangerous place, but the one you seek must leave by the direction you entered. He is a goblin. Apparently the Erudite is employing their strength. The fire goblin runner shall be an easy kill for you. At least, he should be. Return his runner pouch to me."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Go! Return when you have done more to serve the Indigo Brotherhood of Neriak. Fewer Leatherfoot Raiders in Nektulos and a few Leatherfoot skullcaps in the palms of Master Narex shall prove your true warrior nature and loyalty to our house."); + else + e.self:Say("Your head will make a fine trophy in the halls of the Indigo Brotherhood."); + end + elseif(e.message:findi("leatherfoot")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Where have you been? The halflings of Rivervale have an elite force of warriors. They are called the Leatherfoot Raiders. They have been infiltrating our glorious city of Neriak for quite some time. They must be exterminated! I must hire strong warriors who wish to [collect the bounty]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Go! Return when you have done more to serve the Indigo Brotherhood of Neriak. Fewer Leatherfoot Raiders in Nektulos and a few Leatherfoot skullcaps in the palms of Master Narex shall prove your true warrior nature and loyalty to our house."); + else + e.self:Say("Your head will make a fine trophy in the halls of the Indigo Brotherhood."); + end + elseif(e.message:findi("collect the bounty")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("So you wish to collect the bounty on Leatherfoot Raiders? Then go into Nektulos and hunt them down. I shall pay a reward for no fewer than four Leatherfoot Raider skullcaps."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Go! Return when you have done more to serve the Indigo Brotherhood of Neriak. Fewer Leatherfoot Raiders in Nektulos and a few Leatherfoot skullcaps in the palms of Master Narex shall prove your true warrior nature and loyalty to our house."); + else + e.self:Say("Your head will make a fine trophy in the halls of the Indigo Brotherhood."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Fool! There shall be no reward until I have four skullcaps in my hands!"; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13886})) then --Goblin Supply Pouch + e.self:Say("Fine work. I trust the denizens of Lavastorm were not unkind. Please take this featherweight pouch as a reward. May it keep you fleet of foot."); + e.other:Faction(e.self,270, 25); --Indigo Brotherhood + e.other:Faction(e.self,326,-3); --Emerald Warriors + e.other:Faction(e.self,311,-1); --Steel Warriors + e.other:Faction(e.self,1522,-50); --Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,17972,17150); --Featherweight Pouch + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13113, item2 = 13113, item3 = 13113, item4 = 13113},1,text)) then --Leatherfoot Raider Skullcap -- this hand-in doesn't have faction check apparently + e.self:Say("I had my doubts, but you have proven them false. You are a fine warrior. You must continue to refine you talents. I reward you with the footman's voulge! Welcome into our house of warriors. Let us share skills as we share foes."); + e.other:Faction(e.self,270, 50); --Indigo Brotherhood + e.other:Faction(e.self,326,-7); --Emerald Warriors + e.other:Faction(e.self,311,-2); --Steel Warriors + e.other:Faction(e.self,1522,-100); --Primordial Malice + e.other:QuestReward(e.self,0,0,7,0,12257,250); --Footman's Voulge + end + item_lib.return_items(e.self, e.other, e.trade) +end +--END of FILE Zone:neriakb ID:41032 -- Narex_T-Vem + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakb/NerDay.lua b/neriakb/NerDay.lua new file mode 100644 index 0000000..7608158 --- /dev/null +++ b/neriakb/NerDay.lua @@ -0,0 +1,9 @@ +function event_spawn(e) + eq.set_timer("go",5000); +end + +function event_timer(e) + eq.signal(41079,2); -- NPC: Dragoon_V`Retta + eq.signal(41080,2); -- NPC: Guard_F`Lok + eq.stop_timer("go"); +end \ No newline at end of file diff --git a/neriakb/NerNight.lua b/neriakb/NerNight.lua new file mode 100644 index 0000000..e3f91e8 --- /dev/null +++ b/neriakb/NerNight.lua @@ -0,0 +1,9 @@ +function event_spawn(e) + eq.set_timer("go",5000); +end + +function event_timer(e) + eq.signal(41079,1); -- NPC: Dragoon_V`Retta + eq.signal(41080,1); -- NPC: Guard_F`Lok + eq.stop_timer("go"); +end \ No newline at end of file diff --git a/neriakb/Rysva_To-Biath.lua b/neriakb/Rysva_To-Biath.lua new file mode 100644 index 0000000..0351f70 --- /dev/null +++ b/neriakb/Rysva_To-Biath.lua @@ -0,0 +1,36 @@ +--Rysva_To-Biath.pl +--Book of Turmoil + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. Let me know if I can get you a drink."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18200})) then + e.self:Say("Take this note and be gone with you."); + -- confirmed live factions + e.other:Faction(e.self,370, 10);--Dreadguard Inner + e.other:Faction(e.self,334, 1);--Dreadguard Outer + e.other:Faction(e.self,236, 1);--Dark Bargainers + e.other:QuestReward(e.self,0,0,0,0,18201);--a note (book of Turmoil, Text: TomeOfAges2) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13846,item2 = 18201})) then--Dark Elf Decapitated Head + e.self:Say("Take this book and be gone with you."); + -- confirmed live factions + e.other:Faction(e.self,370, 10);--Dreadguard Inner + e.other:Faction(e.self,334, 1);--Dreadguard Outer + e.other:Faction(e.self,236, 1);--Dark Bargainers + e.other:QuestReward(e.self,0,0,0,0,18202,72900); --Book of Turmoil + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19071,item2 = 19070,platinum = 1000})) then + e.other:QuestReward(e.self,0,0,0,0,18302); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:neriakb ID:41042 -- Rysva_To`Biath +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakb/Seloxia_Punox.lua b/neriakb/Seloxia_Punox.lua new file mode 100644 index 0000000..c0d558f --- /dev/null +++ b/neriakb/Seloxia_Punox.lua @@ -0,0 +1,51 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("'s eyes flare with fury as her beautiful features twist into a snarl of hatred that echoes her hissing voice, 'How dare you address me in such a fashion?! I am the leader of the Indigo Brotherhood!! You are lucky I do not strike you down where you stand! You shall address me as 'Mistress.' Many warriors have died so that I might gain this title.'"); + elseif(e.message:findi("mistress")) then + e.self:Emote("maintains her imposing posture as she indifferently eyes " .. e.other:GetCleanName() .. ", 'You stand now in the Cauldron of Hate -- the Indigo Brotherhood. We are an organization of Neriak's finest warriors whom remain dedicated to Neriak, the Dark Father, and our founder -- his majesty, King Naythox Thex. I am Seloxia Punox, second to only his majesty in command of the Brotherhood. From the Cauldron of Hate, we maintain the protection of the city both within our city walls and beyond in the forest of Nektulos. Perhaps you would wish to prove yourself worthy of our ranks and perform a [little test] of your skills and dedication?'"); + elseif(e.message:findi("little test")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("My little test is this. I desire a report from Ambassador K'Rynn in the Ogre city of Oggok. You shall run to him. I will not wait until you raise your fighting skills. Combat is not your test. Overcoming the odds is. Fast agile warriors are we. We desire nothing less. Will you [venture to Oggok]?"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Go! Return when you have done more to serve the Indigo Brotherhood of Neriak. Fewer Leatherfoot Raiders in Nektulos and a few Leatherfoot skullcaps in the palms of Master Narex shall prove your true warrior nature and loyalty to our house."); + else + e.self:Say("Your head will make a fine trophy in the halls of the Indigo Brotherhood."); + end + elseif(e.message:findi("venture to oggok")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Then you will go at once. Find your own way. Deliver this note to Ambassador K'Rynn and he shall give you the note to return to me. Do not stop to practice your skills. I offer this test to only the young warriors. If you die, then so be it. We need not inferior warriors. Now go!!"); + e.other:SummonCursorItem(18842); -- Sealed Letter (Letter To Krynn) + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Go! Return when you have done more to serve the Indigo Brotherhood of Neriak. Fewer Leatherfoot Raiders in Nektulos and a few Leatherfoot skullcaps in the palms of Master Narex shall prove your true warrior nature and loyalty to our house."); + else + e.self:Say("Your head will make a fine trophy in the halls of the Indigo Brotherhood."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18751})) then + e.self:Say("I shall reserve any official welcoming until you have proven yourself a suitable member for the Indigo Brotherhood. That proof shall be obtained by your progression in your training. See Yegek B'Larin, one of my most trusted trainers in the Brotherhood and obey his command carefully if you wish to succeed as a member of the Brotherhood."); + e.other:Faction(e.self,270,100); --Indigo Brotherhood + e.other:Faction(e.self,326,-15); --Emerald Warriors + e.other:Faction(e.self,311,-5); --Steel Warriors + e.other:Faction(e.self,1522,-200); --Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,13580,20); --Old Training Tunic* + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18843})) then -- Sealed Letter (Letter To Seloxia) + e.self:Say("Very fine work my young warrior. You may soon be ready to become a Teir'Dal courier. For now we shall reward you. This will assist you in further service to the Indigo Brotherhood and King Naythox Thex."); + e.other:Faction(e.self,270, 10); --Indigo Brotherhood + e.other:Faction(e.self,326,-1); --Emerald Warriors + e.other:Faction(e.self,311,-1); --Steel Warriors + e.other:Faction(e.self,1522,-20); --Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(5026,1001,1002,1003,1004,1005,5014,5015,5021,5027),250); -- Random minor items + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:neriakb ID:41066 -- Seloxia_Punox +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakb/Sivy_G-Noir.lua b/neriakb/Sivy_G-Noir.lua new file mode 100644 index 0000000..e743a57 --- /dev/null +++ b/neriakb/Sivy_G-Noir.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Do you wish to view my wares or have you simply come to gawk in awe?"); + elseif(e.message:findi("wares")) then + e.self:Say("The various molds that I have for sale are used in the smithing of weapons. Simply use the necessary molds with a sheet of metal, a forge, and a water flask. Weapons with hilts and pommels will also need molds for those pieces and weapons such as pole-arms and axes require an oak shaft."); + end +end + +--END of FILE Zone:neriakb ID:41086 -- Sivy_G`Noir +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/neriakb/Trizam_N-Tan.lua b/neriakb/Trizam_N-Tan.lua new file mode 100644 index 0000000..cd330de --- /dev/null +++ b/neriakb/Trizam_N-Tan.lua @@ -0,0 +1,48 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("And who do you think you are? To step into the Cauldron of Hate one should have the black soul of a warrior. For one to speak with Trizam he should have good reason. Perhaps you return with tales of [deathfist] agendas. If so, then you're a year too late."); + elseif(e.message:findi("deathfist")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Have you been spending day and night at the Malden's Fancy?!! The Deathfist Orcs in the Commonlands are up to something. As the inept humans in Freeport hunt down the warrior orcs, the pawns run about on some secret mission. I have been appointed by King Nathox to attend to this matter and hire young warriors who wish to [collect] pawn kills."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Go! Return when you have done more to serve the Indigo Brotherhood of Neriak. Fewer Leatherfoot Raiders in Nektulos and a few Leatherfoot skullcaps in the palms of Master Narex shall prove your true warrior nature and loyalty to our house."); + else + e.self:Say("Your head will make a fine trophy in the halls of the Indigo Brotherhood."); + end + elseif(e.message:findi("collect")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Yes, You will. You need not know the reason why. I command you by order of King Naythox Thex to venture forth to the Commonlands and slay all the orc pawns you see. Return with four pawn picks and maybe I shall even reward you. Leave at once or you shall find yourself hanging from the Hooks of Innoruuk!"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Go! Return when you have done more to serve the Indigo Brotherhood of Neriak. Fewer Leatherfoot Raiders in Nektulos and a few Leatherfoot skullcaps in the palms of Master Narex shall prove your true warrior nature and loyalty to our house."); + else + e.self:Say("Your head will make a fine trophy in the halls of the Indigo Brotherhood."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I instructed you to return with no fewer than four pawn picks!"; + + if(e.other:GetFactionValue(e.self) >= 100) then + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13885, item2 = 13885, item3 = 13885, item4 = 13885},1,text)) then + e.self:Say("So you have done your part to serve the King. As instructed, I shall reward your good deed. But I choose to reward you with provisions from the pantries of Neriak. They shall keep you strong."); + e.other:Faction(e.self,270,10); -- +Indigo Brotherhood + e.other:Faction(e.self,326,-1); -- -Emerald Warriors + e.other:Faction(e.self,311,-1); -- -Steel Warriors + e.other:Faction(e.self,1522,-20); -- Primordial Malice + e.other:QuestReward(e.self,0,5,2,0,eq.ChooseRandom(13022,13021),1000); -- Neriak Nectar, Rotgrub Rye + end + item_lib.return_items(e.self, e.other, e.trade) + else + e.self:Say("Go! Return when you have done more to serve the Indigo Brotherhood of Neriak. Fewer Leatherfoot Raiders in Nektulos and a few Leatherfoot skullcaps in the palms of Master Narex shall prove your true warrior nature and loyalty to our house."); + end +end + + +--EOF + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakb/Volkoon_D-Dbth.lua b/neriakb/Volkoon_D-Dbth.lua new file mode 100644 index 0000000..15a4c31 --- /dev/null +++ b/neriakb/Volkoon_D-Dbth.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings. I am pleased to report that I am fully stocked. Please have a look at the goods I have for sale."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("Very good work. I can see you are a talented baker and these muffins look suitable. You do Neriak a great service. Here is your payment. I look forward to conducting future business with you."); + e.other:Faction(e.self,236,2); -- Faction: Dark Bargainers + e.other:Faction(e.self,370,1); -- Faction: Dreadguard Inner + e.other:Faction(e.self,334,1); -- Faction: Dreadguard Outer + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("You have returned and none too soon! Thank you very much, I will put this bread on sale immediately. Here is your reward as promised. Thank you very much."); + e.other:Faction(e.self,236,4); -- Faction: Dark Bargainers + e.other:Faction(e.self,370,1); -- Faction: Dreadguard Inner + e.other:Faction(e.self,334,1); -- Faction: Dreadguard Outer + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/neriakb/Vorshar_the_Despised.lua b/neriakb/Vorshar_the_Despised.lua new file mode 100644 index 0000000..fa5307b --- /dev/null +++ b/neriakb/Vorshar_the_Despised.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("turns toward you with an icy glare. ''Hail Findim , I am Vorshar the Despised. I trust that you have important business with me? Why else would you disturb one such as I when it is so obvious that I am a being of great power. I was [selected by Innoruuk] himself to reside in the Realm of Heroes. I have sacrificed many a mortal in the eyes of hate and do not be so quick to assume that I would not be delighted to perform such a rite again.'' Vorshar the Despised curls his lip in a twisted, sinister smirk."); + elseif(e.message:findi("selected")) then + e.self:Say("Why? You dare to ask one such as I the will of the Hateful Father?! However, you do seem to be quite lacking in the field of thought and intelligence, which would easily explain why you have not heard my name [nor of my legend]."); + elseif(e.message:findi("legend")) then + e.self:Say("I. my dear witless Dark Elf. was chosen by Innoruuk's hand during the uprising and fall of the [Combine Empire.] When the Teir`Dal first began to discuss the decision to sign a treaty and join the Empire. I was one of the few who opposed siding with humans and the rest of the lowly creatures of this world."); + elseif(e.message:findi("combine")) then + e.self:Emote("narrows his eyes, blazing with hatred and a sinister amusement. 'The Combine Empire was a short-lived political structure of many of the world's races that fell shortly after my ascension. Innoruuk had found my faith and devotion to his word and his children so appealing, that he had chosen me to walk within the Hall of Heroes, although now, I have been [allowed a return]. To this moment, I know not why I have been given such a punishment as to again lay sight and ear to the grotesque, obtuse creatures of Norrath.'"); + elseif(e.message:findi("return")) then + e.self:Say("It is the Dark Father's will that I have returned to this realm. I do not question his judgement. nor shall I ever. His will is mine. and I do not question myself. The Dark Father wishes to expand his followers within the Realm of Heroes. and thus. I have been sent as more of a judge and jury for those who would [consider themselves worthy] of Innoruuk's recognition and divine favor."); + elseif(e.message:findi("worthy")) then + e.self:Emote("looks at you a moment, his features emotionless beyond the searing impatience and hatred within his eyes. 'Then you have only furthered my faith in your utter lack in wit. Those who would gain favor with The Dark Father carry a symbol, a coin, that they must give to me for proper judgement. Without that coin, you are but another fool among a sea of imbeciles.'"); + end +end + +--END of FILE Zone:neriakb ID:41082 -- Vorshar_the_Despised +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/neriakb/Yegek_B-Larin.lua b/neriakb/Yegek_B-Larin.lua new file mode 100644 index 0000000..3eed077 --- /dev/null +++ b/neriakb/Yegek_B-Larin.lua @@ -0,0 +1,52 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome. A brother of the Indigo you must be. Why else would one dare to roam the corridors of the Cauldron of Hate? You were most likely sent to speak with Yegek. If so. speak up and tell Yegek who [sent] you."); + elseif(e.message:findi("seloxia")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("You are a new blood! I shall help you to face the dangers. For now, you must listen. First we must be sure to increase your skill by combat. Take this bag to the outside and fill it with three beetle eyes and three bone shards from the undead. Combine and return it. Then we shall reward you and continue. Do not lose the short sword you had upon entering our brotherhood. We just may need it later on."); + e.other:SummonCursorItem(17942); -- Item: Empty Bag + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Go! Return when you have done more to serve the Indigo Brotherhood of Neriak. Fewer Leatherfoot Raiders in Nektulos and a few Leatherfoot skullcaps in the palms of Master Narex shall prove your true warrior nature and loyalty to our house."); + else + e.self:Say("Your head will make a fine trophy in the halls of the Indigo Brotherhood."); + end + elseif(e.message:findi("second test")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("You will now learn what happens to those undesirables who once called themselves Indigo. But first, you will hand me your sword which was given to you by the Indigo Brotherhood. This battle must be fought without a blade. Show us your strength!"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Go! Return when you have done more to serve the Indigo Brotherhood of Neriak. Fewer Leatherfoot Raiders in Nektulos and a few Leatherfoot skullcaps in the palms of Master Narex shall prove your true warrior nature and loyalty to our house."); + else + e.self:Say("Your head will make a fine trophy in the halls of the Indigo Brotherhood."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13887})) then + e.self:Say("Very nice work. Here are some provisions. Now are you [ready for the second test]?"); + e.other:Faction(e.self,270, 5); --Indigo Brotherhood + e.other:Faction(e.self,326,-1); --Emerald Warriors + e.other:Faction(e.self,311,-1); --Steel Warriors + e.other:Faction(e.self,1522,-10); --Primordial Malice + e.other:QuestReward(e.self,5,0,0,0,eq.ChooseRandom(13005,13007),500); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 9998})) then + e.self:Say("Those young warriors who dared to run from battle are now our fodder. They shall help us teach you that sometimes you must kill your own kind. In the center of the arena we have set a coward. Show me you can kill your own when required and bring me his head. Do not grant him mercy nor allow him to flee."); + eq.spawn2(41119,0,0,-1218,-25,-25,128); -- NPC: TeirDal coward + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13888})) then + e.self:Say("You have performed greatly. A coward deserves no pity or mercy. You will be fine addition to our house. Let us replace your weapon with this. a sullied two handed sword! The weapon of a young brother of this hall. It is a finer weapon than your first. Go and spread the hate of Innoruuk."); + e.other:Faction(e.self,270, 15); --Indigo Brotherhood + e.other:Faction(e.self,326,-2); --Emerald Warriors + e.other:Faction(e.self,311,-1); --Steel Warriors + e.other:Faction(e.self,1522,-30); --Primordial Malice + e.other:QuestReward(e.self,5,0,0,0,10830,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:neriakb ID:41031 -- Yegek_B`Larin +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakb/Zanotix_Ixtaz.lua b/neriakb/Zanotix_Ixtaz.lua new file mode 100644 index 0000000..572ffc9 --- /dev/null +++ b/neriakb/Zanotix_Ixtaz.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("what indigo sabres")) then + e.self:Say("Indigo sabres are the weapons of choice for true swordsmen. They are constructed of the finest adamantite and can only be crafted in our unique Teir'Dal forge. In order to successfully craft an indigo sabre. you will require a curved blade mold. Neriak nectar. a folded sheet of adamantite. and a mold for the hilt and pommel. If you are a faithful follower of our Lord of Hate then you may be interested in crafting an imbued indigo sabre. You will need to temper the sword with shadow temper instead of Neriak nectar. and will have to forge a sapphire that has been imbued by a cleric into the sword at the time of its creation."); + elseif(e.message:findi("blue flame")) then + e.self:Emote("gazes at you for many breaths, studying your eyes before looking back at his forge and saying, 'The Blue Flame. This is what allows us to forge our ancestral armor and weapons of adamantite. That and my unmatched skill that is. Many souls were [ritually] sacrificed to spark the flame that now feeds off the constant flow of hatred and envy of the victims . Some call it the Flame of Vengence.' Zanotix stares into the flames, poking at it absently."); + elseif(e.message:findi("ritual")) then + e.self:Say("The Ritual? Well I was young when it took place. I don't really remember. I've had so much on my mind lately, what with all these new taxes. For instance, I need to come up with an extra 75 pieces of platinum just to cover the forge tax. I don't know what I'm going to do.....*cough*."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {platinum = 75})) then -- 75pp + e.self:Emote("quickly pockets the coins and says, 'Go see the Librarian, Nallar. Tell him Denouncer Ixtaz sent you. Do not return here for at least 3 days, now go, " .. e.other:Race() .. "."); + e.other:QuestReward(e.self,0,0,0,0,0,5000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1890})) then -- 1890 - Vial of Noble's Blood + e.self:Emote("accepts the vial and looks you over, eyebrow raised. He says, 'Well, a sacrifice to feed my forge. You have done Neriak a great service, Citizen " .. e.other:GetCleanName() .. ". I shall burn it now.' He then holds the vial up the the flames, the blood seems to glow brightly as he stares into it. Then suddenly, with the shout of an arcane phrase, he throws the vial violently into the flame. The force shatters the vial, spilling the blood about the flames. Almost immediately the flames flare up to the ceiling. When they die down a presence is felt within the flames."); + eq.spawn2(41106, 0, 0, -867, 70, -35,0); -- 41106 -- vengeful_spirit + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:neriakb ID:41044 -- Zanotix_Ixtaz +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakb/vengeful_spirit.lua b/neriakb/vengeful_spirit.lua new file mode 100644 index 0000000..117bdd6 --- /dev/null +++ b/neriakb/vengeful_spirit.lua @@ -0,0 +1,29 @@ +-- vengeful spirit - The Visiting Priestess + +function event_spawn(e) + -- Allow the quest to reset + eq.set_timer("despawn", 6000000); +end + +function event_timer(e) + eq.stop_timer("despawn"); + eq.depop(); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18401})) then -- 18401 - Scroll of Flayed Goblin Skin + eq.stop_timer("despawn"); + e.self:Emote("flares brightly as you place the scroll into the blue flames of the forge. The scroll quickly catches fire and burns out in a flash of white fire. In it's place is left a hammer. As you snatch the hammer from the flames you hear the spirit begin to cackle wildly and fade away."); + e.other:QuestReward(e.self,0,0,0,0,6403,132775); -- Blued Two-Handed Hammer + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- EOF zone: neriakb ID: 41106 NPC: vengeful_spirit +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/neriakc/Ambassador_Rylan.lua b/neriakc/Ambassador_Rylan.lua new file mode 100644 index 0000000..ff704e3 --- /dev/null +++ b/neriakc/Ambassador_Rylan.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(234); +end + +function event_death(e) + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(324); +end diff --git a/neriakc/Belyea_K-Jartan.lua b/neriakc/Belyea_K-Jartan.lua new file mode 100644 index 0000000..7fc0d5e --- /dev/null +++ b/neriakc/Belyea_K-Jartan.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Maiden's Fancy. We aim to please. You just be careful how you handle the ladies or I will have Ratraz remove you and your hands."); + e.self:DoAnim(48); + end +end \ No newline at end of file diff --git a/neriakc/Draan_N-Ryt.lua b/neriakc/Draan_N-Ryt.lua new file mode 100644 index 0000000..bb547f7 --- /dev/null +++ b/neriakc/Draan_N-Ryt.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am Draan N'Ryt, provider of the purest [adamantite ore] and master smith of [adamantite chainmail]!"); + elseif(e.message:findi("adamantite ore")) then + e.self:Say("Adamantite ore is a very special metal that we smith in our unique Teir'Dal forge with our highly specialized techniques. It is also used by ogres in the crafting of their war plate and weapons. Adamantite ore can be worked like standard ores into bricks, blocks, and sheets but must be tempered with Neriak Nectar instead of water. Folded sheets of adamantite must also be tempered with Neriak Nectar and must be hammered with our Teir'Dal smithy hammer instead of the crude standard one. Our Teir'Dal enchanters have also developed the means to enchant small bricks of adamantite. Ogres may work adamantite ore in their forge as well but they must temper it with Ogre Swill instead of Neriak Nectar and because of their immense strength still use the standard smithy hammer."); + elseif(e.message:findi("adamantite chainmail")) then + e.self:Say("Adamantite chainmail can only be crafted in our unique Teir'Dal forge using our highly specialized smithing techniques. It is a durable armor that is so light, it does not hinder even those who practice the mystical arts. All pieces of adamantite chainmail require the appropriate chain pattern for the piece desired, a Teir'Dal smithy hammer, a silk swatch, and shadow temper. Veils, neckguards, and bracelets require one set of adamantite rings. Coifs, mantles, skirts, sleeves, and gloves require two sets of adamantite rings. Tunics, capes, and leggings require three sets of adamantite rings. Once you have mastered the art of crafting adamantite chain you may want to attempt [enchanted adamantite] chainmail."); + elseif(e.message:findi("enchanted adamantite")) then + e.self:Say("Enchanted adamantite chainmail requires an appropriate chain pattern for the piece desired, a Teir'Dal smithy hammer, a silk swatch, and shadow temper. Like standard adamantite chain it may only be crafted in our Teir'Dal Forge but requires that the rings be crafted from enchanted adamanatite."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:neriakc ID:42086 -- Draan_N`Ryt + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakc/Eolorn_J-Axx.lua b/neriakc/Eolorn_J-Axx.lua new file mode 100644 index 0000000..052bd00 --- /dev/null +++ b/neriakc/Eolorn_J-Axx.lua @@ -0,0 +1,39 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It is good to see new blood in our halls. I am the leader of this house. If you are looking for guidance, seek out the masters within. I rarely appoint tasks to new recruits, unless I need to retrieve the [foreign take]."); + elseif(e.message:findi("foreign take")) then + e.self:Say("We have rogues operating in a few great cities. We send young rogues to retrieve the monthly take. We have been awaiting the Freeport delivery. The last youth I sent must have been killed along the way. I will need a new runner to [retrieve the chest]."); + elseif(e.message:findi("retrieve the chest")) then + e.self:Say("You seem able enough. Here. Take this note to Freeport. Go through the Commonlands and be careful not to encounter any Freeport guards. There is a network of aqueducts accessible through hidden passages. Search the outside walls of Freeport. Take the note to Giz. She will meet you at night, on an island in the harbor. Good luck."); + e.other:SummonCursorItem(18844); -- Item: A Sealed Letter + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18752})) then --tattered note + e.self:Say("You wanna be part of the Ebon Mask, huh? Well, you'll need to impress me. Here's your guild tunic. Go find Hekzin, he'll have some work for you, I'm sure. Don't screw up, kid. That pretty face of yours would make a fine trophy, got it? Now, quit breathin' my air, and go get some work done."); + e.other:Faction(e.self,244,100); --Ebon Mask + e.other:Faction(e.self,262,-5); --Guard of Qeynos + e.other:Faction(e.self,320,-25); --Wolves of the North + e.other:Faction(e.self,263,-10); --Guardians of the Vale + e.other:Faction(e.self,329,-25); --Carson McCabe + e.other:QuestReward(e.self,0,0,0,0,13581,20); --Old Black Tunic* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13891}, 0)) then + e.self:Say("The Hall thanks you. You have performed supremely. We are glad to have you with us. I offer you this, loot from former takes. I hope you can use it."); + e.other:Faction(e.self,244,10); --Ebon Mask + e.other:Faction(e.self,262,-1); --Guard of Qeynos + e.other:Faction(e.self,320,-2); --Wolves of the North + e.other:Faction(e.self,263,-1); --Guardians of the Vale + e.other:Faction(e.self,329,-2); --Carson McCabe + e.other:QuestReward(e.self,math.random(10),0,0,0,7007,100); -- rusty dagger + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:neriakc ID:42074 -- Eolorn_J`Axx + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakc/Guard_D-bious.lua b/neriakc/Guard_D-bious.lua new file mode 100644 index 0000000..6c0f04b --- /dev/null +++ b/neriakc/Guard_D-bious.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("The three circles of arcane science known as magic, enchantment and wizardry are studied in the Commons Quarter by the Spurned at the Tower of the Spurned."); + elseif(e.message:findi("weapons")) then + e.self:Say("You might want to venture over to the Commons Quarter. They have quite a few forges as well as the weapons sold at the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("Go to the Commons Quarter and you shall find a place called Neriak Down Under. Within this tunnel you shall find the Burnished Coin."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("This is no place for outsiders. That is why the Smuggler's Inn is located in the Foreign Quarter."); + elseif(e.message:findi("forge")) then + e.self:Say("Look in the Commons Quarter for a public forge."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The Cauldron of Hate in the Commons Quarter houses the masters of the Teir'Dal warriors, the Indigo Brotherhood."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The empire of the Teir'Dal is controlled by King Naythox Thex. Some say Queen Cristanos is a much more fitting ruler."); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Within this quarter is the Hall of the Ebon Mask. The Ebon Mask are Neriak's rogues."); + elseif(e.message:findi("healer")) then + e.self:Say("How can you be allowed in Neriak's Third Gate and not know of the Priests of Innoruuk? Theirs is the first temple you see when entering the Third Gate."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("kiln") or e.message:findi("barrel") or e.message:findi("oven") or e.message:findi("pottery")) then + e.self:Say("You will find none of that here. The public oven, kiln, pottery wheel and brew barrel are all within the Foreign Quarter."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Hold your tongue, whelp! You are on the grounds of the shadowknights. If they were to hear you talking of such things they would skin you alive!"); + end +end + diff --git a/neriakc/Guard_Din-a.lua b/neriakc/Guard_Din-a.lua new file mode 100644 index 0000000..6c0f04b --- /dev/null +++ b/neriakc/Guard_Din-a.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("The three circles of arcane science known as magic, enchantment and wizardry are studied in the Commons Quarter by the Spurned at the Tower of the Spurned."); + elseif(e.message:findi("weapons")) then + e.self:Say("You might want to venture over to the Commons Quarter. They have quite a few forges as well as the weapons sold at the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("Go to the Commons Quarter and you shall find a place called Neriak Down Under. Within this tunnel you shall find the Burnished Coin."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("This is no place for outsiders. That is why the Smuggler's Inn is located in the Foreign Quarter."); + elseif(e.message:findi("forge")) then + e.self:Say("Look in the Commons Quarter for a public forge."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The Cauldron of Hate in the Commons Quarter houses the masters of the Teir'Dal warriors, the Indigo Brotherhood."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The empire of the Teir'Dal is controlled by King Naythox Thex. Some say Queen Cristanos is a much more fitting ruler."); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Within this quarter is the Hall of the Ebon Mask. The Ebon Mask are Neriak's rogues."); + elseif(e.message:findi("healer")) then + e.self:Say("How can you be allowed in Neriak's Third Gate and not know of the Priests of Innoruuk? Theirs is the first temple you see when entering the Third Gate."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("kiln") or e.message:findi("barrel") or e.message:findi("oven") or e.message:findi("pottery")) then + e.self:Say("You will find none of that here. The public oven, kiln, pottery wheel and brew barrel are all within the Foreign Quarter."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Hold your tongue, whelp! You are on the grounds of the shadowknights. If they were to hear you talking of such things they would skin you alive!"); + end +end + diff --git a/neriakc/Guard_K-Jartan.lua b/neriakc/Guard_K-Jartan.lua new file mode 100644 index 0000000..6c0f04b --- /dev/null +++ b/neriakc/Guard_K-Jartan.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("The three circles of arcane science known as magic, enchantment and wizardry are studied in the Commons Quarter by the Spurned at the Tower of the Spurned."); + elseif(e.message:findi("weapons")) then + e.self:Say("You might want to venture over to the Commons Quarter. They have quite a few forges as well as the weapons sold at the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("Go to the Commons Quarter and you shall find a place called Neriak Down Under. Within this tunnel you shall find the Burnished Coin."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("This is no place for outsiders. That is why the Smuggler's Inn is located in the Foreign Quarter."); + elseif(e.message:findi("forge")) then + e.self:Say("Look in the Commons Quarter for a public forge."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The Cauldron of Hate in the Commons Quarter houses the masters of the Teir'Dal warriors, the Indigo Brotherhood."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The empire of the Teir'Dal is controlled by King Naythox Thex. Some say Queen Cristanos is a much more fitting ruler."); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Within this quarter is the Hall of the Ebon Mask. The Ebon Mask are Neriak's rogues."); + elseif(e.message:findi("healer")) then + e.self:Say("How can you be allowed in Neriak's Third Gate and not know of the Priests of Innoruuk? Theirs is the first temple you see when entering the Third Gate."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("kiln") or e.message:findi("barrel") or e.message:findi("oven") or e.message:findi("pottery")) then + e.self:Say("You will find none of that here. The public oven, kiln, pottery wheel and brew barrel are all within the Foreign Quarter."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Hold your tongue, whelp! You are on the grounds of the shadowknights. If they were to hear you talking of such things they would skin you alive!"); + end +end + diff --git a/neriakc/Guard_L-Crit.lua b/neriakc/Guard_L-Crit.lua new file mode 100644 index 0000000..6c0f04b --- /dev/null +++ b/neriakc/Guard_L-Crit.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("The three circles of arcane science known as magic, enchantment and wizardry are studied in the Commons Quarter by the Spurned at the Tower of the Spurned."); + elseif(e.message:findi("weapons")) then + e.self:Say("You might want to venture over to the Commons Quarter. They have quite a few forges as well as the weapons sold at the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("Go to the Commons Quarter and you shall find a place called Neriak Down Under. Within this tunnel you shall find the Burnished Coin."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("This is no place for outsiders. That is why the Smuggler's Inn is located in the Foreign Quarter."); + elseif(e.message:findi("forge")) then + e.self:Say("Look in the Commons Quarter for a public forge."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The Cauldron of Hate in the Commons Quarter houses the masters of the Teir'Dal warriors, the Indigo Brotherhood."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The empire of the Teir'Dal is controlled by King Naythox Thex. Some say Queen Cristanos is a much more fitting ruler."); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Within this quarter is the Hall of the Ebon Mask. The Ebon Mask are Neriak's rogues."); + elseif(e.message:findi("healer")) then + e.self:Say("How can you be allowed in Neriak's Third Gate and not know of the Priests of Innoruuk? Theirs is the first temple you see when entering the Third Gate."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("kiln") or e.message:findi("barrel") or e.message:findi("oven") or e.message:findi("pottery")) then + e.self:Say("You will find none of that here. The public oven, kiln, pottery wheel and brew barrel are all within the Foreign Quarter."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Hold your tongue, whelp! You are on the grounds of the shadowknights. If they were to hear you talking of such things they would skin you alive!"); + end +end + diff --git a/neriakc/Guard_V-Lask.lua b/neriakc/Guard_V-Lask.lua new file mode 100644 index 0000000..6c0f04b --- /dev/null +++ b/neriakc/Guard_V-Lask.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("supplies")) then + e.self:Say("The local guild houses should sell a few items, but the best place to visit would be the Commons Quarter. It is filled with shops."); + elseif(e.message:findi("wizard guild") or e.message:findi("enchanter guild") or e.message:findi("magician guild")) then + e.self:Say("The three circles of arcane science known as magic, enchantment and wizardry are studied in the Commons Quarter by the Spurned at the Tower of the Spurned."); + elseif(e.message:findi("weapons")) then + e.self:Say("You might want to venture over to the Commons Quarter. They have quite a few forges as well as the weapons sold at the Cauldron of Hate."); + elseif(e.message:findi("bank")) then + e.self:Say("Go to the Commons Quarter and you shall find a place called Neriak Down Under. Within this tunnel you shall find the Burnished Coin."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("This is no place for outsiders. That is why the Smuggler's Inn is located in the Foreign Quarter."); + elseif(e.message:findi("forge")) then + e.self:Say("Look in the Commons Quarter for a public forge."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("The Cauldron of Hate in the Commons Quarter houses the masters of the Teir'Dal warriors, the Indigo Brotherhood."); + elseif(e.message:findi("indigo brotherhood")) then + e.self:Say("In the Commons Quarter can be found the Indigo Brotherhood, Teir'Dal warriors. They are the armies of King Naythox Thex and serve as the trainers of the Dreadguard and dragoons. Why the masters chose to build the Cauldron of Hate in that area and not the Third Gate is an amazement to me."); + elseif(e.message:findi("king") or e.message:findi("leader")) then + e.self:Say("The empire of the Teir'Dal is controlled by King Naythox Thex. Some say Queen Cristanos is a much more fitting ruler."); + elseif(e.message:findi("queen")) then + e.self:Say("Queen Cristanos is the queen of Neriak, of course! She was the one who formed the necromancers and shadowknights into the guild called the Dead."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Within this quarter is the Hall of the Ebon Mask. The Ebon Mask are Neriak's rogues."); + elseif(e.message:findi("healer")) then + e.self:Say("How can you be allowed in Neriak's Third Gate and not know of the Priests of Innoruuk? Theirs is the first temple you see when entering the Third Gate."); + elseif(e.message:findi("the dead")) then + e.self:Say("The Dead are the shadowknights and necromancers of Neriak. They were formed by Queen Cristanos herself. Even among the Teir'Dal they are feared and they keep to themselves within the Lodge of the Dead in the Third Gate. I have heard they take orders only from the queen."); + elseif(e.message:findi("kiln") or e.message:findi("barrel") or e.message:findi("oven") or e.message:findi("pottery")) then + e.self:Say("You will find none of that here. The public oven, kiln, pottery wheel and brew barrel are all within the Foreign Quarter."); + elseif(e.message:findi("bard guild") or e.message:findi("monk guild")) then + e.self:Say("A class of people lost in their mythical art. They are nothing more than dust under the feet of the empire of the Teir'Dal."); + elseif(e.message:findi("paladin guild")) then + e.self:Say("Hold your tongue, whelp! You are on the grounds of the shadowknights. If they were to hear you talking of such things they would skin you alive!"); + end +end + diff --git a/neriakc/Hekzin_G-Zule.lua b/neriakc/Hekzin_G-Zule.lua new file mode 100644 index 0000000..015eef1 --- /dev/null +++ b/neriakc/Hekzin_G-Zule.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("How's it going. scrub? Correct me if I'm wrong. but you appear to be a rogue. If you're a [new rogue]. it's my job to test your skill. If you are not. then by speaking with me. I see you show interest in [joining this house of rogues]."); + elseif(e.message:findi("new rogue")) then + e.self:Say("We of the Ebon Mask must first be sure you are skilled with a blade. At the same time. we are attempting to create a new type of armor for our rogues. So it is the test of each young rogue to take this bag into Nektulos and fill it with three moss snake skins and three snake fangs. then combine them. We get the bag and you earn a little respect as well as the [Dark Shield of Ebon]."); + e.other:SummonCursorItem(17943); -- Item: Empty Bag + elseif(e.message:findi("what dark shield of ebon")) then + e.self:Say("The Dark Shield of Ebon was made for the use of this house by the finest craftsmen of Neriak. It can be carried in the hand as well as slung upon one's back. Besides this advantage. it is much lighter than most other shields."); + elseif(e.message:findi("joining this house")) then + e.self:Say("We of the Ebon Mask must first be sure you are skilled with a blade. At the same time. we are attempting to create a new type of armor for our rogues. So it is the test of each young rogue to take this bag into Nektulos and fill it with three moss snake skins and three snake fangs. then combine them. We get the bag and you earn a little respect as well as the [Dark Shield of Ebon]."); + e.other:SummonCursorItem(17943); -- Item: Empty Bag + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13889})) then + e.self:Say("Fine work for a scrub. Maybe one day you will be able to test this new snakescale armor out. For the moment you shall take the [Dark Shield of Ebon] if you do not own one already."); + e.other:Faction(e.self,320,-2); -- Faction: Wolves of the North + e.other:Faction(e.self,262, -1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,244, 10); -- Faction: Ebon Mask + e.other:Faction(e.self,263,-1); -- Faction: Guardians of the Vale + e.other:Faction(e.self,329,-2); -- Faction: Carson McCabe + e.other:QuestReward(e.self,0,math.random(9),0,0,12258,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:neriakc ID:42046 -- Hekzin_G`Zule + + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakc/High_Priestess_Alexandria.lua b/neriakc/High_Priestess_Alexandria.lua new file mode 100644 index 0000000..1324728 --- /dev/null +++ b/neriakc/High_Priestess_Alexandria.lua @@ -0,0 +1,59 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings child, what business do you have here? I'm sorry but I will only deal with Clerics that are willing to prove their loyalty to Innoruuk. I cannot deal with every single heathen that feels it is necessary to bid me a good day. If you are a [Cleric of Innoruuk] I might be able to aid you in your training."); + elseif(e.other:GetClass() == 2 and e.other:GetRace() == 6) then + if(e.message:findi("cleric of innoruuk")) then + e.self:Say("Is that so " .. e.other:Race() .. " " .. e.other:GetCleanName() .. ". Well from the looks of you I wouldn't say you are much of anything yet. However, if you have the willingness and determination to serve your God then there might just be more hope for you then I would have thought. Obviously, to move forward in your training, you will need to shield yourself from your enemies and from the elements. I believe I have something that could help you if you are still [interested in proving yourself]"); + elseif(e.message:findi("interested in proving myself")) then + e.self:Say("Well I must say that I am impressed by your eagerness to learn, however, you are not the first and will not be the last I am sure that has sworn devotion to our Lord Innoruuk. Lets just hope you don't end up in the burial grounds where many promising young ones before you have found their resting place. If you are ready to begin gathering items to fashion your very own Initiate Darkpriest Armor then I will present you with a [magical relic]."); + elseif(e.message:findi("magical relic")) then + e.self:Say("I have a box that I have been keeping for quite some time and have been waiting to present it to someone like yourself. Someone that I had faith would be strong enough to use it's power to their benefit. This magical box can be used to refine certain metals into a magical compound that is used in crafting Initiate Darkpriest armor pieces. I have the molds necessary to craft Initiate Darkpriest [Helms], [Bracers], [Boots], [Armguards], [Greaves], [Gauntlets] and [Breastplates]. However there are some [important items] that you will need to collect before the molds will be of any use to you. One thing to keep in mind is that I suggest you craft your Breastplate last due to the difficulty of obtaining the items needed for that specific recipe."); + e.other:SummonCursorItem(17245); --Dark Blessed Box + elseif(e.message:findi("important item")) then + e.self:Say("There are certain items that will need to be gathered in our great city of Neriak along with many different things gathered outside in the Forest of Nektulos, where most of your training will take place. The most important component that you will need to collect while adventuring in the forest are Helms that are only worn by Priests of Rodcet Nife. These vile creatures have set up camp in the forest from what I have heard and it is your responsibility to find and execute them. These helms will be your most important component that you will gather because it is used in all [armor recipes] as the metal that you will forge your armor with."); + elseif(e.message:findi("armor recipe")) then + e.self:Say("Ah of course, I almost forgot that you will need to know what items to combine in the Dark Blessed Box that I presented you with. Simply tell me the armor piece that you wish to craft and I will give you the list of items that you will need to combine, along with the applicable mold. For example, should you want to craft a Helm first you would say, I want to craft a Initiate Darkpriest`s Helm. Please remember that the exact items must be combined in exact quantities in the box or the infusion will not take place. After you have combined together the items necessary to infuse your metal the correct way, you will need to take the Refined sheet of Holy Metal to the nearest forge and combine it with the correct mold to yield your armor piece."); + elseif(e.message:findi("armguard")) then + e.self:Say("Excellent " .. e.other:GetCleanName() .. "! To create the correct compound in your Dark Blessed Box that will be need to be placed into a forge with this mold to craft your Initiate Darkpriest's Armguards you will need to collect and combine the following items. 3 Helms of the Lifebringer, 1 Garter Snake Tongue, 2 Ash Drakeling Scales and 2 Grapes."); + e.other:SummonCursorItem(22613); --An Enchanted Armguard Mold + elseif(e.message:findi("boot")) then + e.self:Say("I would definitely agree that you will need some decent Boots if you wish to last long in any extreme climates like Lavastorm! Combine 2 Helms of the Lifebringer, 2 Fire Beetle Legs and 2 Flasks of Water to fashion the correct Refined sheet of Holy Metal. Once you have done this place the Refined sheet of Holy Metal along with this mold in any forge to craft your Initiate Darkpriest's Boots."); + e.other:SummonCursorItem(22612); --An Enchanted Boot Mold + elseif(e.message:findi("bracer")) then + e.self:Say("To fashion your own Initiate Darkpriest's Bracer you will need to collect 1 Helm of the Lifebringer, 1 Orc Scalp, 1 Snake Egg and 1 Red Wine. Combine these in your box to create the correct Refined sheet of Holy Metal that you will place in any forge along with this mold to craft your Initiate Darkpriest`s Bracer."); + e.other:SummonCursorItem(22611); --An Enchanted Bracer Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("So, the time has come for you to gather the items necessary for your most important piece of Armor Branaddar. You will need to combine 5 Helms of the Lifebringer, 1 Deathfist Templar Scalp, 1 Embalming Dust, 1 Matted Halfling Hide and 1 Woven Grass Amulet. Once you have prepared this final Refined sheet of Holy Metal place it in a forge along with this mold to craft your Initiate Darkpriest's Breastplate. After you have done this return to me when you are ready for your final test of loyalty."); + e.other:SummonCursorItem(22616); --An Enchanted Breastplate mold + elseif(e.message:findi("gauntlet")) then + e.self:Say("To fashion your own Initiate Darkpriest's Gauntlets you will need to collect 3 Helms of the Lifebringer, 1 Halfling Blood, 1 Leatherfoot Raiders Skullcap, 1 snake scales and 1 glass shard. Combine these in your Box to create the correct Refined sheet of Holy Metal that you will place in any forge along with this mold to craft your Initiate Darkpriest's Gauntlets."); + e.other:SummonCursorItem(22615); --An Enchanted Gauntlet Mold + elseif(e.message:findi("greave")) then + e.self:Say("Take this mold " .. e.other:GetCleanName() .. ". You will need to place this in a Forge along with the correct Refined sheet of Holy Metal to craft your Initiate Darkpriest's Greaves. The correct Refined sheet of Holy Metal for these greaves can be fashioned by combining 4 Helms of the Lifebringer, 2 Spiderling Eyes, 2 Deathfist Legionairre Scalps and 1 bottle of kalish."); + e.other:SummonCursorItem(22614); --An Enchanted Greave Mold + elseif(e.message:findi("helm")) then + e.self:Say("A Helm you say " .. e.other:GetCleanName() .. "? This should be a good test for you to see if you are able to gather the correct items and annihilate those disgusting clerics that follow that worthless God Rodcet Nife. Seek out 1 Helm of the Lifebringer, 1 Low Quality Wolf Skin, 1 Black Mamba Skin and 1 Short Ale. After you have combined these in your Dark Blessed Box take your Refined sheet of Holy Metal along with this mold to the nearest forge to craft your very own Initiate Darkpriest`s Helm."); + e.other:SummonCursorItem(22610); --An Enchanted Helm Mold + elseif(e.message:findi("final test")) then + e.self:Say("Well, I must say that I did not expect you to progress in your training at the rate you have. I also knew there was something that separated you from our other initiates. For your final test, I will need you to collect journal pages from the Ultricle. Provide me with three journal pages to receive your reward. You have come too far to fail me now. I hope to see you soon...alive, that is."); + end + else + e.self:Say("I'm sorry but I will only deal with Clerics that are willing to prove their loyalty to Innoruuk."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 22617, item2 = 22618, item3 = 22619})) then + e.self:Say("Your prowess both in the classroom and on the battlefield has certainly amazed me. Please take this relic that is only presented to the most dedicated initiates and carry it with pride. You have made your house very proud on this day."); + e.other:QuestReward(e.self,0,0,0,0,22698); --Mace of the Darkpriest + end + item_lib.return_items(e.self, e.other, e.trade) +end +-- Quest by Blaz - Dark Elf Cleric Newbie Armor quests + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakc/Ithvol_K-Jasn.lua b/neriakc/Ithvol_K-Jasn.lua new file mode 100644 index 0000000..5354a8b --- /dev/null +++ b/neriakc/Ithvol_K-Jasn.lua @@ -0,0 +1,76 @@ +--Ithvol K-Jasn.pl +--Innoruuk Disciple/Innoruuk Regent + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! I sense the gift of hatred in your aura. What status do you hold within these Spires?"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Although I sense the hate building within you, you have not yet done enough service to this temple to be trusted!"); + else + e.self:Say("You are worthless and pathetic! You could never be of service to our temple! Begone before your innards decorate our walls!"); + end + elseif(e.message:findi("initiate")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Well met, Initiate " .. e.other:GetCleanName() .. ". If you desire to raise your station in this temple, I have a task for you. Are you willing to accept the task I am about to set before you?"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Although I sense the hate building within you, you have not yet done enough service to this temple to be trusted!"); + else + e.self:Say("You are worthless and pathetic! You could never be of service to our temple! Begone before your innards decorate our walls!"); + end + elseif(e.message:findi("willing")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("As an initiate of the Spires, you have proven your hatred of the halflings who are desecrating our forest with their feeble shrines and camps. They persist in their hopeless task and seem to anticipate many of our tactics against them. Go out into the Nektulos and slay the one called Master Whoopal. Take his head to Draxiz N'Ryt so that he may probe the brain."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Although I sense the hate building within you, you have not yet done enough service to this temple to be trusted!"); + else + e.self:Say("You are worthless and pathetic! You could never be of service to our temple! Begone before your innards decorate our walls!"); + end + elseif(e.message:findi("disciple")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I have an important task for a disciple of Hate such as yourself. It is no secret that King Naythox Thex wishes to expand the Teir'Dal Empire to the continent of Faydwer. We have a camp established in the Lesser Faydark near the stronghold of the vampire lord, Mayong Mistmoore. The camp is constantly under siege by the Fier'Dal and Koada'Dal and must rely on the support of Neriak for supplies necessary to survival. Are you willing to serve your King and Empire by delivering the provisions?"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Although I sense the hate building within you, you have not yet done enough service to this temple to be trusted!"); + else + e.self:Say("You are worthless and pathetic! You could never be of service to our temple! Begone before your innards decorate our walls!"); + end + elseif(e.message:findi("deliver the provisions")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The provisions are crated and prepared for shipment by Dran Slug Rembor. Go to his establishment in the Foreign Quarter and tell him Ithvol sent you. Make haste, young disciple of Hate! The fate of the Empire hangs upon our support of the Faydark Camp!"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Although I sense the hate building within you, you have not yet done enough service to this temple to be trusted!"); + else + e.self:Say("You are worthless and pathetic! You could never be of service to our temple! Begone before your innards decorate our walls!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12497, item2 = 1369})) then --Head of a Halfling Spy, Initiate Symbol of Innoruuk + e.self:Emote("You have focused the hate within you and discovered that hate and rage are not the same. Hate can be calculating and deceptive. For your service in defending the Kingdom of King Naythox Thex from the halfling invaders, I award you the disciple symbol of Innoruuk. Wear it with pride, " .. e.other:GetCleanName() .. "."); + e.other:Faction(e.self,340, 50); --Priests of Innoruuk + e.other:Faction(e.self,278, 7); --King Naythox Thex + e.other:Faction(e.self,226, -17); --Clerics of Tunare + e.other:Faction(e.self,341, -12); --Priests of Life + e.other:Faction(e.self,362, -7); --Priests of Marr + e.other:Faction(e.self,1522, -200); --Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,1370,4000); --Disciple Symbol of Innoruuk + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12499, item2 = 12498, item3 = 19029, item4 = 1370})) then --Voucher of Service to Naythox, Swiftmoon's Head, Receipt for Provisions Crate, Disciple Symbol of Innoruuk + e.self:Say("Your devotion to the ideals of hatred and your service to our King Naythox Thex has proven your usefulness within these spires and within our great city. I award you the Regent Symbol of Innoruuk. Congratulations, Regent " .. e.other:GetCleanName() .. "!"); + e.other:Faction(e.self,340, 50); --Priests of Innoruuk + e.other:Faction(e.self,278, 7); --King Naythox Thex + e.other:Faction(e.self,226, -17); --Clerics of Tunare + e.other:Faction(e.self,341, -12); --Priests of Life + e.other:Faction(e.self,362, -7); --Priests of Marr + e.other:Faction(e.self,1522, -200); --Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,1371,8000); --Regent Symbol of Innoruuk + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Done +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakc/Kanthu_M-Rekkor.lua b/neriakc/Kanthu_M-Rekkor.lua new file mode 100644 index 0000000..21758d2 --- /dev/null +++ b/neriakc/Kanthu_M-Rekkor.lua @@ -0,0 +1,46 @@ +--Kanthu M'Rekkor, Neriakc 42075 +--Status: COMPLETE + +function event_say(e) + if(e.message:findi("material")) then + e.self:Say("Many species of dangerous creatures, the restless dead, and halfling invaders from Rivervale inhabit the Nektulos Forest. You must defeat these creatures and halflings in order to obtain the materials. The materials you seek depend on the piece of armor you desire. Do you desire to craft [gloves], [boots], a [bracer], a [coif], [leggings], [sleeves], or a [tunic]?"); + elseif(e.message:findi("silk thread")) then + e.self:Say("Silk thread is sewn by a tailor using a [sewing kit] or a community [loom]. Two spiderling silks combined in the [sewing kit] or community [loom] will create one silk thread."); + elseif(e.message:findi("boot")) then + e.self:Say("To craft Ashen Bone Mail Boots you require two [silk thread], two ruined ash drakeling scales, and two halfling foot bones. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Boot Pattern."); + e.other:SummonCursorItem(19561); -- Item: Tattered Boot Pattern + elseif(e.message:findi("bracer")) then + e.self:Say("To craft an Ashen Bone Mail Bracer you require a [silk thread], a ruined ash drakeling scales, and a halfling ulna bone. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Bracer Pattern."); + e.other:SummonCursorItem(19558); -- Item: Tattered Wristband Pattern + elseif(e.message:findi("coif")) then + e.self:Say("To craft a Ashen Bone Mail Coif you require two [silk thread], a ruined ash drakeling scales, and a halfling skull. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Cap Pattern."); + e.other:SummonCursorItem(19555); -- Item: Tattered Cap Pattern + elseif(e.message:findi("glove")) then + e.self:Say("To craft Ashen Bone Mail Gloves you require two [silk thread], a ruined ash drakeling scales, and two halfling finger bones. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Glove Pattern."); + e.other:SummonCursorItem(19559); -- Item: Tattered Glove Pattern + elseif(e.message:findi("legging")) then + e.self:Say("To craft Ashen Bone Mail Leggings you require three [silk thread], ash drakeling scales, two halfling tibia, and a halfling pelvis bone. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Leggings Pattern."); + e.other:SummonCursorItem(19560); -- Item: Tattered Pant Pattern + elseif(e.message:findi("sleeve")) then + e.self:Say("To craft Ashen Bone Mail Sleeves you require two [silk thread], ash drakeling scales, and two halfling humerus bones. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Sleeves Pattern."); + e.other:SummonCursorItem(19557); -- Item: Tattered Sleeve Pattern + elseif(e.message:findi("tunic")) then + e.self:Say("To craft an Ashen Bone Mail Tunic you require four [silk thread], pristine ash drakeling scales, a halfling sternum, and a halfling ribcage. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Tunic Pattern."); + e.other:SummonCursorItem(19556); -- Item: Tattered Tunic Pattern + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2416})) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". So you are one of Selzar's new recruits. You are to assist in the construction of the armor you will don as a new Rogue of the House of the Ebon Mask. I have assembled a kit that is used in the crafting of Ashen Bone Mail. You must travel beyond Neriak into the Nektulos Forest for the [materials] that compose the armor."); + e.other:QuestReward(e.self,0,0,0,0,17124); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakc/Krystiana_N-Ryt.lua b/neriakc/Krystiana_N-Ryt.lua new file mode 100644 index 0000000..dfacfba --- /dev/null +++ b/neriakc/Krystiana_N-Ryt.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail " .. e.other:GetCleanName() .. ".' With a concerned look, Krystiana motions you to come closer. 'It is my husband, Draan - he has recently been suffering terrible [nightmares]."); + elseif(e.message:findi("nightmare")) then + e.self:Say("He sweats in his sleep, and shivers as if freezing. I dare not wake him when this mood takes him, it is all I can do to keep his forehead cool with a damp cloth. He has begun to [talk] whilst asleep recently, too, though sometimes barely coherent."); + elseif(e.message:findi("talk")) then + e.self:Say("Though he can remember nothing upon waking, save for mixed feelings of excitement and fear. He talks of a Dark Stranger, a figure in black robes the face of whom he cannot see. As I can tell, he appears to be..' Krystiana shakes her head, unbelievingly, '... [learning]?"); + elseif(e.message:findi("learning")) then + e.self:Say("He speaks at great length sometimes, in a voice which is barely his own, about new forms and styles of [armor]. He is Neriak's master smith, as you may know."); + elseif(e.message:findi("armor")) then + e.self:Say("At first, he talked of [infused rings]. I listened so intently, and commited them to memory. He seems to understand none of this upon waking, and tells me not to be so foolish. Later he talked of [velium sheets], and eventually of [chainmail] and [platemail], from the Teir'dal Forge. What shall I do?"); + elseif(e.message:findi("infused ring")) then + e.self:Say("Poor Draan. He speaks of infusing velium rings by using large bricks of enchanted adamantite and something he called Celestial Temper, with his teir'dal smithy hammer."); + elseif(e.message:findi("velium sheet")) then + e.self:Say("This was something about making velium sheets from blocks of velium, with velium temper and a smithy hammer. He then muttered about infusing these velium sheets by hammering in a large enchanted block of adamantite ore, using Celestial Temper and his tier'dal smithy hammer."); + elseif(e.message:findi("chainmail")) then + e.self:Say("Using his teir'dal smithy hammer, some silk, shadow temper, a chain pattern and some of the [infused rings], he mentioned suits of gleaming chainmail.' Krystiana sighs, 'I don't know what to make of it. He even mentioned imbuing them with the power of the Dark Lord."); + elseif(e.message:findi("platemail")) then + e.self:Say("With a teir'dal smithy hammer, enchanted adamantite chain jointing, shadow temper, leather padding, a small plate mold and the infused [velium sheets] he muttered about legions of King Thex's guards wearing this new armor. Imbuing this platemail was possible, he said. What can it mean?"); + end +end \ No newline at end of file diff --git a/neriakc/Lokar_To-Biath.lua b/neriakc/Lokar_To-Biath.lua new file mode 100644 index 0000000..e818c7a --- /dev/null +++ b/neriakc/Lokar_To-Biath.lua @@ -0,0 +1,60 @@ +--Lokar_To-Biath.pl +--Red Wine (Part of Tome of Ages) + +function event_say(e) + if(e.message:findi("scribe of dal")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Scribes of Dal? All of them are long since [dead].. or at least most would say that."); + else + e.self:Say("Your reputation precedes you. You are no friend to the Dark Bargainers."); + end + elseif(e.message:findi("dead")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Perhaps, perhaps not. I cannot remember, but perhaps Innoruuk would help me remember should you tithe him a bottle of red wine from the Blind Fish."); + else + e.self:Say("Your reputation precedes you. You are no friend to the Dark Bargainers."); + end + elseif(e.message:findi("vow")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Break the vow? She might. Were you to tithe 70 gold to your god, Innoruuk, he might aid you."); + else + e.self:Say("Your reputation precedes you. You are no friend to the Dark Bargainers."); + end + elseif(e.message:findi("innoruuk")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I am his scribe, and He is our god. There is nothing else to be said."); + else + e.self:Say("Your reputation precedes you. You are no friend to the Dark Bargainers."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + local Red_Wine = item_lib.count_handed_item(e.self, e.trade, {13030}); -- Red Wine + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {platinum = 7})) then + e.self:Say("Take this note to the Scribe of Dal, and perhaps she will break her vow."); + -- confirmed live factions + e.other:Faction(e.self,370, 10);--Dreadguard Inner + e.other:Faction(e.self,334, 1);--Dreadguard Outer + e.other:Faction(e.self,236, 1);--Dark Bargainers + e.other:QuestReward(e.self,0,0,0,0,18200); --a note (renounce the D'al, Text: TomeOfAges1) + elseif(Red_Wine > 0) then + repeat + e.self:Say("Ah, yes, let me pray to our god.. Yes, Innoruuk has given me wisdom. A Scribe of Dal still exists, disguised as a barkeep in the Blind Fish. This information will not help you though, for she has sworn a [vow] of silence and will not speak of the Dal."); + -- confirmed live factions + e.other:Faction(e.self,370, 10);--Dreadguard Inner + e.other:Faction(e.self,334, 1);--Dreadguard Outer + e.other:Faction(e.self,236, 1);--Dark Bargainers + e.other:QuestReward(e.self,0,0,0,0,0,150); + Red_Wine = Red_Wine - 1; + until Red_Wine == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_death_complete(e) + e.self:Say("The death of a Dark Bargainer never goes unnoticed!"); +end diff --git a/neriakc/Loveal_S-Nez.lua b/neriakc/Loveal_S-Nez.lua new file mode 100644 index 0000000..71d74fe --- /dev/null +++ b/neriakc/Loveal_S-Nez.lua @@ -0,0 +1,86 @@ +--Loveal_S-Nez.pl +--Sir Lindeal's Testimony/Thex Mallet/SK Trainer + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("What is this I see before me? A would-be hero of the Dead? You reek of false bravado. I have seen others much stronger than you meet their fate at the end of a blade. I see no reason to continue our conversation. How can one such as you assist with my [delegated duties]?"); + elseif(e.message:findi("delegated duties")) then + e.self:Say("Why do you ask? I know why. Glory has captured your affections. Those who seek glory find death. Still, you may be of some use. Before I assign you a task, I must be assured of your power. I require you to [perform a test]."); + elseif(e.message:findi("perform a test")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("In the Lavastorm Mountain Range there have been sightings of a paladin, one Sir Lindeal. He has compromised our routes between.. well, that is none of your concern. All you need to know is that this paladin of the Temple of Marr must be sent to his everlasting life. Do so and prove your worth to us. I await your proof. Use no assistance. If you are truly his equal then I shall know. I know all."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you learn to serve the Dead, then I will find the time to speak of such things."); + else + e.self:Say("How dare you enter my presence?! In the name of the Dead I should strike you down!"); + end + elseif(e.message:findi("appointed tasks")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Very well. You have gained the appropriate power. I require you to journey to the Commonlands and seek out Kizdean Gix. He is a member of a very important force. Tell him 'Utalk Adarev Otcin'. Remember this password."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you learn to serve the Dead, then I will find the time to speak of such things."); + else + e.self:Say("How dare you enter my presence?! In the name of the Dead I should strike you down!"); + end + elseif(e.message:findi("Thex Mallet")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("All you can know is that the Thex Mallet is desired by our Queen. If we are not successful in its retrieval, it will be our heads which adorn her trophy room. We have learned its location and believe it to be broken into three separate pieces."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you learn to serve the Dead, then I will find the time to speak of such things."); + else + e.self:Say("How dare you enter my presence?! In the name of the Dead I should strike you down!"); + end + elseif(e.message:findi("queen")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The Queen of the Teir'Dal is the most powerful of all. It is she who should sit on the throne and not King Naythox. The Dead are her humble servants. We await the day when she shall finally take her rightful position as ruler of Neriak."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you learn to serve the Dead, then I will find the time to speak of such things."); + else + e.self:Say("How dare you enter my presence?! In the name of the Dead I should strike you down!"); + end + elseif(e.message:findi("king")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("A competent and powerful warrior, but a warrior nonetheless. He has suppressed the true glory of the Teir'Dal. Perhaps it is time for a new ruler of Neriak."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you learn to serve the Dead, then I will find the time to speak of such things."); + else + e.self:Say("How dare you enter my presence?! In the name of the Dead I should strike you down!"); + end + elseif(e.message:findi("innoruuk")) then + e.self:Say("He is the Prince of Hate. We are His vessels of destruction. There are no greater servants of Innoruuk than the Dead. His word is law. Once the Teir'Dal obtain the second half of the [scroll of G'han], all Norrath shall be enveloped by His glorious hate."); + elseif(e.message:findi("scroll")) then + e.self:Say("The scroll of G'han was scribed long ago by the great necromancer G'han. With it, we can commune directly with Innoruuk. Unfortunately, one portion of the scroll was taken from us by a rogue who was hired by the Koada'Dal. In Felwithe, it doth lie. The Indigo Brotherhood now attempts to reclaim it."); + elseif(e.message:findi("koada") or e.message:findi("fier")) then + e.self:Say("Have you not been educated in the ancient elven language? The three races of elvenkind are designated thus: Teir'Dal are dark elves, Koada'Dal are high elves and Feir'Dal are wood elves."); + end +end +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18828})) then--Testimony + e.self:Say("So you have succeeded where others have failed. You show promise. Take this then. You shall be a valuable asset to the Dead and soon this shall be of value to one so great. This will help you on your way. Are you still interested in my [appointed tasks]?"); + e.other:Faction(e.self,239,25); --The Dead + e.other:Faction(e.self,303,3); --Queen Cristanos Thex + e.other:Faction(e.self,278,-3); --King Naythox Thex + e.other:Faction(e.self,275,-3); --Keepers of Art + e.other:Faction(e.self,245,-3); --Eldritch Collective + e.other:Faction(e.self,1522,-50); --Primordial Malice + e.other:QuestReward(e.self,0,0,5,1,2317,33750); --Cloak of the Undead Eye + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13390})) then--Thex Mallet + e.self:Say("Oh how grand it is!! Look at it!! I feel the power trembling within. Who would have thought such an item would be abandoned? You have performed supremely. Queen Cristanos shall reward me greatly and I shall reward you greatly. Here is my weapon from years past.. the Reaper of the Dead. I believe it has one soul still trapped within."); + e.other:Faction(e.self,239,100); --The Dead + e.other:Faction(e.self,303,15); --Queen Cristanos Thex + e.other:Faction(e.self,278,-15); --King Naythox Thex + e.other:Faction(e.self,275,-15); --Keepers of Art + e.other:Faction(e.self,245,-15); --Eldritch Collective + e.other:Faction(e.self,1522,-200); --Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,5374,33750); --Reaper of the Dead + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:neriakc ID:42043 -- Loveal_S`Nez +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakc/Mare_X-Lottl.lua b/neriakc/Mare_X-Lottl.lua new file mode 100644 index 0000000..1b3cecb --- /dev/null +++ b/neriakc/Mare_X-Lottl.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + eq.set_timer("yoohoo",4200000); +end + +function event_timer(e) + e.self:Say("Yoohoo!"); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there. sweetie!! How about letting me dance for you? Two gold and I will do a little dance for you."); + elseif(e.message:findi("tayla")) then + e.self:Say("Why do you seek that little scamp when you have Mare right here? If you really want to know where she is, it will cost you. Did I ever tell you that my heart belongs to Jasper?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10020})) then --Jasper + e.self:Say("Jasper! My one and only love! All right.. That Tayla creature was lost in a game of King's Court with a very important and secret merchant. Belyea will not speak of him but that he was some sort of Baron. He did give me this trinket from his new friend and owner of the half-elf scamp. You keep it. It is worth nothing compared to sweet, beautiful Jasper."); + e.other:QuestReward(e.self,0,0,0,0,1096); --Klok's Seal + elseif(item_lib.check_turn_in(e.self, e.trade, {gold = 2})) then + e.self:Say("Oooh, yes! I just love a patron with an overabundance of gold."); + e.self:DoAnim(58); -- dance + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/neriakc/Medron_Y-Lask.lua b/neriakc/Medron_Y-Lask.lua new file mode 100644 index 0000000..243b3c0 --- /dev/null +++ b/neriakc/Medron_Y-Lask.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Furrier Royale. Here you will find the finest skins from a variety of Norraths lesser creatures."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 16170, item2 = 16170})) then + e.self:Emote("stretches and fastened the basilisk skins across the shield frame and attaches a leather strap and grip to the back of the shield. 'Here is your new shield young Shadowknight. I have been paid in advance by the Lodge of the Dead for the shields assembly. May Innoruuk strengthen you in your service to Her Majesty Queen Cristanos.'"); + e.other:Faction(e.self,236,5); -- Faction: Dark Bargainers + e.other:Faction(e.self,370,1); -- Faction: Dreadguard Inner + e.other:Faction(e.self,334,1); -- Faction: Dreadguard Outer + e.other:QuestReward(e.self,0,0,0,0,19610,1000); + end +end + +--END of FILE Zone:neriakc ID:42060 -- Medron_Y`Lask +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakc/Mizr_N-Mar.lua b/neriakc/Mizr_N-Mar.lua new file mode 100644 index 0000000..eb01e61 --- /dev/null +++ b/neriakc/Mizr_N-Mar.lua @@ -0,0 +1,22 @@ +-- Mizr_N'Mar + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Have you come to buy a scroll from me?"); + elseif(e.message:findi("coin")) then + e.self:Say("So, you want a coin do you?") + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {gold = 50})) then + e.self:Say("Ahhh - gold. Here is the rune you desire."); + e.other:QuestReward(e.self,0,0,0,0,10531); -- Rune of Fortune (middle) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10791})) then + e.self:Say("Ah - the Coin of Tash - and already enchanted by.. ? Tarn? Very good! I have enchanted it further - you must now take the coin to Raine Beteria in the Library of Erudin to get the final enchantment."); + e.other:QuestReward(e.self,0,0,0,0,10792,1000); -- Gleaming Coin of Tash + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/neriakc/Molon_T-Plth.lua b/neriakc/Molon_T-Plth.lua new file mode 100644 index 0000000..4ced1f7 --- /dev/null +++ b/neriakc/Molon_T-Plth.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey! What's up? If you want some real fun. go downstairs at the Maiden's Fancy."); + elseif(e.message:findi("downstair")) then + e.self:Say("Downstairs, you will find the finest in entertainment. A gentleman's paradise. Just have your coins handy."); + end +end + +--END of FILE Zone:neriakc ID:42040 -- Molon_T`Plth +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakc/Nallar_Q-Tentu.lua b/neriakc/Nallar_Q-Tentu.lua new file mode 100644 index 0000000..04fabb0 --- /dev/null +++ b/neriakc/Nallar_Q-Tentu.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Lower your voice, " .. e.other:Race() .. ". These tomes hold many secrets as well as curses. Say the wrong word loudly enough and you may end up a frog, dead, or worse. Heed my warning for I will not repeat it."); + elseif(e.message:findi("denouncer ixtaz sent me")) then + e.self:Emote("stiffens at the mention of the title. His eyes dart back and forth about the room before speaking to you, his voice almost inaudible. He says, 'Why are you here? What do you want of me? I am nothing but a lowly librarian. I've already paid my debt, I have nothing else to give."); + elseif(e.message:findi("ritual") or e.message:findi("blue flame")) then + e.self:Emote("'s face twists into an expression of complete confusion. The librarian says, 'The Ritual? Of the Blue Flame? Yes I know of it. But why you..never mind. The ritual is fairly simple. The sacrifice is [flayed] and thrown into the fire just before death overcomes it. The flaying brings out an almost euphoric state of hatred and despisal. It's this that feeds the flame. The influence of our Father blues the flame and allows it to melt our adamantium."); + elseif(e.message:findi("flayed")) then + e.self:Say("The flaying is done by our priests and the Denouncer. Flaying itself is used in many other rituals as well. For instance, the skin of a flayed goblin can be used to record a misdeed. The perpetrator records the misdeed upon the skin, an ancient practice which allows the victim to wreak [vengeance] upon the one who wronged them, or their ancestors. The perpetrator shows strength by allowing the victim a chance at vengeance, even though the victim is usually dead."); + elseif(e.message:findi("vengeance")) then + e.self:Say("Vengeance can only be wrought if the victim is given the goblin skin. Since the victim is usually dead it's not much of a danger. But..it has been known to happen. Ironically, this vengeance is possible through the use of the Blue Flame. This flame can act as a doorway to the nether realm, to [summon] the spirit of a victim. On the skin is recorded the House name of the victim and the reason for the deed."); + elseif(e.message:findi("summon")) then + e.self:Say("Only the Denouncer can call forth a vengeful spirit from the flames. But before he can do so, he'll need blood from a member of the victim's House. Once the blood is cast into the flames, the spirit will emerge only for a short time before the negative pull of the other world draws it back. Why do you ask so many questions on this? Do you have one of these skins?"); + elseif(e.message:findi("yes")) then + e.self:Say("Ahh, well I'll assume if you could read it you wouldn't be asking these questions. Fortunately for you I do have the ability to read these skins and will do so for only one star ruby. These spirits will often reward those who give them their vengeance. With my translation you may find the name of the House. Hand me the skin and a star ruby and we'll see."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18401, item2 = 10032})) then + e.self:Emote("takes the scroll and removes an ornate magnifying glass from a pocket. After some examination and many frowns along with interjections of 'Hmmm,' he hands the scroll back to you and says, 'Unlucky for you indeed. The name of the House has been removed. This can only happen when the House itself is wiped out by another House. All record of that House is destroyed if the attacking house is successful. You still have a chance though. Many House refugees find homes in other Houses. The Everliving Mayong is known to take in any Teir'Dal rabble. Try his castle."); + e.other:QuestReward(e.self,0,0,0,0,18401,5000); -- Scroll of Flayed Goblin Skin - Gives it back + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:neriakc ID:42061 -- Nallar_Q`Tentu +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakc/Nezzka_Tolax.lua b/neriakc/Nezzka_Tolax.lua new file mode 100644 index 0000000..e167fa7 --- /dev/null +++ b/neriakc/Nezzka_Tolax.lua @@ -0,0 +1,21 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18757})) then --tattered note + e.self:Say("Hmmm, I hope you're tougher than you look. Here, put this on. Go find Ulraz, he'll beat you into shape. There's no turning back now, punk. So, you'd better do well, got it?"); + e.other:Faction(e.self,239,100); --The Dead + e.other:Faction(e.self,303,15); --Queen Cristanos Thex + e.other:Faction(e.self,278,-15); --King Naythox Thex + e.other:Faction(e.self,275,-15); --Keeper of the Art + e.other:Faction(e.self,245,-15); --Eldritch Collective + e.other:Faction(e.self,1522,-200); --Primodial Malice + e.other:QuestReward(e.self,0,0,0,0,13586,20); --Black Training Tunic + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:neriakc ID:42069 -- Nezzka_Tolax +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakc/Noxhil_V-Sek.lua b/neriakc/Noxhil_V-Sek.lua new file mode 100644 index 0000000..c0db956 --- /dev/null +++ b/neriakc/Noxhil_V-Sek.lua @@ -0,0 +1,68 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "! We of the Dead are proud to have you among us. Your lineage is well known. Still, you must learn to claw your way to the upper echelon. There are many [menial tasks] to be performed before you can truly be inducted as a member."); + elseif(e.message:findi("menial tasks")) then + e.self:Say("You cannot avoid the toil of peons. We have all spent our time in the lower ranks. There are duties such as [collecting beetle eyes]."); + elseif(e.message:findi("beetle eye")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Take this chest. It has been fitted with a mold designed to hold ten beetle eyes. We require them for further experiments. Do not return until you fill the chest."); + e.other:SummonCursorItem(17930);--Empty Box + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you learn to serve the Dead, then I will find the time to speak of such things."); + else + e.self:Say("How dare you enter my presence?! In the name of the Dead I should strike you down!"); + end + elseif(e.message:findi("other components")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Take this chest. This one must be filled with [Kerra Isle beetle] eyes. When you finish filling the chest, be sure to return to me with a [wooly mammoth] tusk also. Be quick about it and I just may reward you with something special."); + e.other:SummonCursorItem(17932);--Empty Chest + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you learn to serve the Dead, then I will find the time to speak of such things."); + else + e.self:Say("How dare you enter my presence?! In the name of the Dead I should strike you down!"); + end + elseif(e.message:findi("kerra isle beetle")) then + e.self:Say("The shipping route between Qeynos and Erudin includes a stop on an island filled with friendly catpeople. Also on this isle is the Kerra Isle beetle. It is indigenous to Kerra Isle and the catpeople are very protective of them."); + elseif(e.message:findi("mammoth")) then + e.self:Say("I hear that wooly mammoths can be found in the peaks of Everfrost. They are fierce beasts. I would hate to annoy one."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local randomloot = math.random(1,3); + local text = "I was expecting a mammoth tusk and the combined beetle eye box!"; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13389})) then--Box of Beetle Eyes + e.self:Say("Fantastic work, my child! We shall store these for further experiments. Take this as extra payment for a fine job. You have done so well I believe you can assist in obtaining two [other components]."); + e.other:Faction(e.self,239,10); --The Dead + e.other:Faction(e.self,303,1); --Queen Cristanos Thex + e.other:Faction(e.self,278,-1); --King Naythox Thex + e.other:Faction(e.self,275,-1); --Keepers of Art + e.other:Faction(e.self,245,-1); --Eldritch Collective + e.other:Faction(e.self,1522,-20); --Primordial Malice + if(randomloot == 1) then + e.other:QuestReward(e.self,{silver = 16, exp = 17150, items = {13021,13022}}) -- Item(s): Neriak Nectar (13021), Rotgrub Rye (13022) + elseif(randomloot == 2) then + e.other:QuestReward(e.self,{silver = 16, exp = 17150, items = {13021,13021,13022,13022}}) + elseif(randomloot == 3) then + e.other:QuestReward(e.self,{silver = 16, exp = 17150}); + end + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13395, item2 = 10124},1,text)) then -- Beetle Eye Chest and Mammoth Tusks + e.self:Say("Excellent work, young one! You are sure to be an asset to our faction. Let us see if we can help you on your journey to power. I believe this can be of assistance to a young necromancer of the Dead."); + e.other:Faction(e.self,239,20); --The Dead + e.other:Faction(e.self,303,3); --Queen Cristanos Thex + e.other:Faction(e.self,278,-3); --King Naythox Thex + e.other:Faction(e.self,275,-3); --Keepers of Art + e.other:Faction(e.self,245,-3); --Eldritch Collective + e.other:Faction(e.self,1522,-40); --Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(15035,15362,15445,15355,15360,15363),17150); --Random level 12 Necromancer spell + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:neriakc ID:42042 -- Noxhil_V`Sek +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakc/Pazin_Punox.lua b/neriakc/Pazin_Punox.lua new file mode 100644 index 0000000..e425961 --- /dev/null +++ b/neriakc/Pazin_Punox.lua @@ -0,0 +1,28 @@ +--Pazin_Punox.pl +--Rogue Tome Handin/Rogue Master Sketch + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to the Hall of the Ebon Mask. You had best be a rogue or you have no business here. We have nothing to say to outsiders."); + elseif(e.message:findi("dark assassin")) then + e.self:Say("Aye we were visited by that dark assassin, he left some sketch in my safekeeping, I would gladly give you a copy if you would take care of a problem that has been vexing me."); + elseif(e.message:findi("vexing you")) then + e.self:Say("An old student of mine who goes by the name Lon has disgraced this House; his betrayal to Innoruuk and Neriak is unforgivable.' Pazin grins 'He must be punished through deceit and trickery. Make him your friend, do as he asks, and pretend to be Redeemed as he calls it. Once you are Redeemed take the cursed blade of Ro and run it through his heart. Bring me his rapier and his head and I shall know the task is complete."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7041, item2 = 9438})) then--Burning Rapier, Lon's Head + e.self:Emote("laughs. 'Here, take this then!'");--text made up + e.other:QuestReward(e.self,0,0,0,0,24095); --Vein Rot Sketch + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:neriakc ID:42075 -- Pazin_Punox +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakc/Perrir_Zexus.lua b/neriakc/Perrir_Zexus.lua new file mode 100644 index 0000000..f6aebc1 --- /dev/null +++ b/neriakc/Perrir_Zexus.lua @@ -0,0 +1,68 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Salutations, " .. e.other:GetCleanName() .. "! Your devotion to our Lord Innoruuk is evident in your actions and on your soul. As a member of the Spires of Innoruuk, you are required to obtain and wear the symbol of your station among the clergy. I can award you the [hematite symbol of Innoruuk] worn by the initiates of the Spires."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Although I sense the hate building within you, you have not yet done enough service to this temple to be trusted!"); + else + e.self:Say("You are worthless and pathetic! You could never be of service to our temple! Begone before your innards decorate our walls!"); + end + elseif(e.message:findi("hematite symbol of Innoruuk")) then + if(e.other:GetFactionValue(e.self) >= 150) then + e.self:Say("The forest beyond the gates of our grand city has been shaped by the magic of our Lord Innoruuk to be more hospitable to our kind. There are halfling druids in the service of Karana who have set up shrines there in hopes of restoring the forest to its former state. They could never succeed in their task with their feeble powers granted by their insignificant god, yet still, they are a nuisance. Bring me four of the holy symbols worn by the druids and I shall grant you the initiate symbol of Innoruuk."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Although I sense the hate building within you, you have not yet done enough service to this temple to be trusted!"); + else + e.self:Say("You are worthless and pathetic! You could never be of service to our temple! Begone before your innards decorate our walls!"); + end + end + +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFactionValue(e.self) >= 150 and item_lib.check_turn_in(e.self, e.trade, {item1 = 14550, item2 = 14550, item3 = 14550, item4 = 14550})) then--Woven Grass Amulets + e.self:Emote("laughs. 'Here, take this then! You are now and initiate of Innoruuk. Speak with Ithvol K`Jasn for further advancement.'");--text made up + e.other:Faction(e.self,340,50);--Priests of Innoruuk + e.other:Faction(e.self,278,7);--King Naythox Thex + e.other:Faction(e.self,362,-17);--Priests of Marr + e.other:Faction(e.self,226,-12);--Clerics of Tunare + e.other:Faction(e.self,341,-7);--Priests of Life + e.other:Faction(e.self,1522, -200); --Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,1369,2000); --Initiate Symbol of Innoruuk + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18756})) then --Tattered Note + e.self:Say("Welcome, child of Hate. I am Perrir Zexus, High Priest. We all draw power from the very source that created us, the will of Innoruuk. Here, put on this tunic. It is the tunic of our guild. Represent us well."); + e.other:Faction(e.self,340, 100); --Priests of Innoruuk + e.other:Faction(e.self,278, 15); --King Naythox Thex + e.other:Faction(e.self,362, -35); --Priests of Marr + e.other:Faction(e.self,226, -25); --Clerics of Tunare + e.other:Faction(e.self,341, -15); --Priests of Life + e.other:Faction(e.self,1522, -400); --Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,13585,20); --Crimson Training Tunic* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18148})) then --Note of Recommendation + e.self:Say("" .. e.other:GetCleanName() .. ", eh? My sister has a keen perception for seeing into a person's soul. You may store an abundance of hate but hate can be devoted to different ideals. Prove to me your devotion to our Lord Innoruuk by bringing me the skullcap of a Leatherfoot Raider who has invaded our forest. Go, " .. e.other:GetCleanName() .. ", and do as I have requested."); + e.other:Faction(e.self,340, 200); --Priests of Innoruuk + e.other:Faction(e.self,278, 30); --King Naythox Thex + e.other:Faction(e.self,362, -70); --Priests of Marr + e.other:Faction(e.self,226, -50); --Clerics of Tunare + e.other:Faction(e.self,341, -30); --Priests of Life + e.other:Faction(e.self,1522, -800); --Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,0,750); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13113})) then --Leatherfoot Skullcap + e.self:Say("Fine work, " .. e.other:GetCleanName() .. "! You are well on your way to reaping the rewards of the Spires of Innoruuk."); + e.other:Faction(e.self,340, 10); --Priests of Innoruuk + e.other:Faction(e.self,278, 1); --King Naythox Thex + e.other:Faction(e.self,362, -3); --Priests of Marr + e.other:Faction(e.self,226, -2); --Clerics of Tunare + e.other:Faction(e.self,341, -1); --Priests of Life + e.other:Faction(e.self,1522, -40); --Primordial Malice + e.other:QuestReward(e.self,8,5,0,0,0,250); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:neriakc ID:42084 -- Perrir_Zexus +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakc/Qrixat_Du-voy.lua b/neriakc/Qrixat_Du-voy.lua new file mode 100644 index 0000000..48735af --- /dev/null +++ b/neriakc/Qrixat_Du-voy.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What do you want?"); + end +end + diff --git a/neriakc/Ratraz.lua b/neriakc/Ratraz.lua new file mode 100644 index 0000000..1d30f6e --- /dev/null +++ b/neriakc/Ratraz.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Spend your money or get out! This ain't no pansy social club!"); + elseif(e.message:findi("advisor")) then + e.self:Say("The royal advisor is a big spender in this club. Better than you, I see. Now, get lost!"); + end +end \ No newline at end of file diff --git a/neriakc/Sazan_K-Jartan.lua b/neriakc/Sazan_K-Jartan.lua new file mode 100644 index 0000000..3ff8d3c --- /dev/null +++ b/neriakc/Sazan_K-Jartan.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("glances at you from the corner of his eye. 'You'd better speak more swiftly than my blades or you won't walk out of here " .. e.other:GetCleanName() .. "."); + end +end \ No newline at end of file diff --git a/neriakc/Selzar_L-Crit.lua b/neriakc/Selzar_L-Crit.lua new file mode 100644 index 0000000..fe96ea9 --- /dev/null +++ b/neriakc/Selzar_L-Crit.lua @@ -0,0 +1,31 @@ +--Selzar L'Crit, Neriakc 42085 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What have we here? Another hopeful member of the House of the Ebon Mask? You've got much to learn before you will be of much use to our House or the secret operations that support both the thrones of our King and Queen. First you need to outfit yourself in a suit of [armor], " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("armor")) then + e.self:Say("Seek Kanthu M'Rekkor and give him this request parchment. When you have outfitted yourself in a suit of armor return to the House of the Ebon Mask and I will grant you [another task]."); + e.other:SummonCursorItem(2416); -- Item: Note to Kanthuk + elseif(e.message:findi("other task")) then + e.self:Say("Ah, you are eager to advance further within the House of the Ebon Mask. Although it is my duty to aid your training, do not allow your arrogance to blind you to your lowly position in our House. I can see that you have not yet learned to temper the use of your tongue. Your next task is to assist the construction of a [weapon] and [bow] worthy of being wielded by a Rogue of the House of the Ebon Mask."); + elseif(e.message:findi("bow")) then + e.self:Say("The Halfling Druids from Rivervale that frequent the ancient druid ruins in the Nektulos Forest are guarded by Leatherfoot Warriors. The peck druids perform the rituals that they hope will prevent Innoruuks corruption from spreading deeper into the Forest and the lands beyond. Should you slay the peck warriors guarding the druids and obtain a Leatherfoot Short Bow, take the bow, a Black Mamba Skin, and a Lock of Zombie Hair to Andara C'Luzz at The Bleek Fletcher in the Neriak Commons near the headquarters of the Indigo Brotherhood."); + elseif(e.message:findi("weapon")) then + e.self:Say("Beyond the mouth of Neriak lies the Nektulos Forest. There the Halflings of Rivervale have set up camps at ancient druid holy sites in an attempt to cleanse Innoruuks corruption that is spreading through the Nektulos Forest. Slay these trespassers and bring me a Large Snake Skin, a Halfling Fibula bone, and a Halfling Clavicle bone."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19578, item2 = 19577, item3 = 13060})) then + e.self:Say("You have slain enemies of our order. Carry your weapon with pride."); + e.other:QuestReward(e.self,0,0,0,0,19608,150); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakc/Spice.lua b/neriakc/Spice.lua new file mode 100644 index 0000000..0f51453 --- /dev/null +++ b/neriakc/Spice.lua @@ -0,0 +1,6 @@ + +function event_waypoint_depart(e) + if(e.wp == 1) then + e.self:Say("Yoohoo!"); + end +end diff --git a/neriakc/Talorial_D-Estalian.lua b/neriakc/Talorial_D-Estalian.lua new file mode 100644 index 0000000..2306dfe --- /dev/null +++ b/neriakc/Talorial_D-Estalian.lua @@ -0,0 +1,38 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("On what grounds do you think you are welcome to address me like that vermin? I am afraid you will have to prove yourself to me before I can treat you with any respect. Do you feel that you are [worthy] to stand before me?"); + elseif(e.message:findi("worthy")) then + e.self:Say("Very well then, you are lucky that I have been looking for some sort of an apprentice to help me out in gathering some hides from those nasty halflings. I did have a young one as yourself working for me before but unfortunately they didn't work out as you can see by looking at this autopsy table. I would hope that you will complete my [tasks]. for your sake."); + elseif(e.message:findi("task")) then + e.self:Say("If you are willing to [gather some items] that are needed for specific halfling hides I can offer you with the resources necessary to fashion your own armor."); + elseif(e.message:findi("gather some item")) then + e.self:Say("Excellent " .. e.other:GetCleanName() .. ". Please take this Old Enchanted Tailors Kit. It contains magical power that is able to fashion specific components into a magical version of whatever the core material is. If you are a Necromancer you will need to gather halfling hides that have been infused with many different elements that you will collect and combine in this box. Simply tell me what pattern you want and I will present you with the recipe necessary for [Gloves], [Robe], [Trousers], [Sleeves], [Skullcap], [Bracers] and [slippers]. I would recommend you fashion your Robe last due to the difficulty and complex nature that is involved with finding the items necessary."); + e.other:SummonCursorItem(17244); -- Item: Old Enchanted Box + elseif(e.message:findi("glove")) then + e.self:Say("If you are interested in making your own Unholy Silk Gloves you will need to gather 3 Halfling Hides, 2 Snake Eggs, 2 Spiderling Silks and a Cask which can be found in town. Once you have collected these items combine them in the Old Enchanted box to fashion your Infused halfling hide. Please make sure that you have prepared the correct halfling hide before you approach a loom with the pattern I have given you."); + e.other:SummonCursorItem(22588); -- Item: An Enchanted Gloves Pattern + elseif(e.message:findi("bracer")) then + e.self:Say("To make your own Unholy Silk Bracer you will need to gather 1 Halfling Hide, 1 Deathfist Scouts Scalp and 2 Snake Eggs. Once you have collected these items combine them in the Old Enchanted box to fashion your Infused halfling hide. Please make sure that you have prepared the correct halfling hide before you approach a loom with the pattern I have given you."); + e.other:SummonCursorItem(22584); -- Item: An Enchanted Bracer Pattern + elseif(e.message:findi("trouser")) then + e.self:Say("To make your own Unholy Silk Trousers you will need to collect many items in the forest along with a few in town. The halfling hide that you will need along with a pattern to craft together these Trousers will need to be infused with 4 Halfling Hides, 2 Bone Chips, 3 Spiderling Silks and 1 Raw Bamboo. All of these items will be collected in the field with the exception of the Raw Bamboo which can be bought in town. Please make sure that you have prepared the correct halfling hide before you approach a loom with the pattern I have given you."); + e.other:SummonCursorItem(22587); -- Item: An Enchanted Trousers Pattern + elseif(e.message:findi("slipper")) then + e.self:Say("If you are interested in making your own Unholy Silk Slipper you will need to gather 2 Halfling Hides, 2 Malachites, and 2 fire beetle eyes. Once you have collected these items combine them in the Old Enchanted box to fashion your Infused halfling hide. Please make sure that you have prepared the correct halfling hide before you approach a loom with the pattern I have given you."); + e.other:SummonCursorItem(22630); -- Item: An Enchanted Slippers Pattern + elseif(e.message:findi("sleeve")) then + e.self:Say("If you wish to fashion together your own Unholy Silk Sleeves you will need to gather 3 Halfling Hides, 1 Fire Beetle Leg, 4 Bone Chips and 2 bandages. Once you have collected these items combine them in the Old Enchanted box to fashion your Infused halfling hide. Please make sure that you have prepared the correct halfling hide before you approach a loom with the pattern I have given you."); + e.other:SummonCursorItem(22586); -- Item: An Enchanted Sleeves Pattern + elseif(e.message:findi("skullcap")) then + e.self:Say("In order to fashion your own Unholy Silk Skullcap you will need to collect a few things and then combine them in the kit I presented you with earlier. Gather 1 Halfling Hide, 2 Deathfist Scouts Scalp and a bottle of Red Wine. After you have done this you will receive an Infused Halfling Hide. Please make sure that you have prepared the correct halfling hide to be combined with this Skullcap pattern because others will not work. Seek out a loom and reap the rewards of your hard work."); + e.other:SummonCursorItem(22583); -- Item: An Enchanted Cap Pattern + elseif(e.message:findi("robe")) then + e.self:Say("Your Unholy Silk Gown is your most important and symbolic item you that will be able to craft on your own. I would recommend that you have already gone through the steps of crafting your other pieces before your Gown. If you think that you are ready you will need to collect 4 Halfling Hides, 1 Black Wolf Pelt, 2 Embalming Dusts, 1 Halfling Toe, 1 Bear Meat and 1 Fish Wine. Combine all of these in your box to create the Infused hide then use this Robe pattern along with your Infused hide on the nearest loom to reap the rewards of your hard work. Please come back after you have fashioned your robe. I may have a [final test] for you."); + e.other:SummonCursorItem(22589); -- Item: An Enchanted Robe Pattern + elseif(e.message:findi("final test")) then + e.self:Say("The final test that I require one to complete before I am content with them being knowledgable in the early ways of Necromancy is one that will test your determination. Are you ready to be tested?"); + elseif(e.message:findi("ready to be test")) then + e.self:Say("Very well child. There is an ancient tome of Necromancy called the Writ of the Fallen. I have kept the binding of this sacred tome for a very long time however I have never searched for the pages that form the writ. If you are able to recover the 4 pages of the writ I have faith that you posses the power to bind them to this empty tome that I carry. Seek out these pages and bind them to this tome. I assure you that you will learn much from this writ shall you construct it once again. I believe the pages were in the hands of spirits that haunt the Ultricle still to this day. Good luck and excellent work."); + e.other:SummonCursorItem(17243); -- Item: An Ancient Book Binding + end +end diff --git a/neriakc/Tani_N-Mar.lua b/neriakc/Tani_N-Mar.lua new file mode 100644 index 0000000..8420b2f --- /dev/null +++ b/neriakc/Tani_N-Mar.lua @@ -0,0 +1,62 @@ +-- Rogue Epic NPC/Guildmaster -- Tani_N`Mar + +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks up something from the ground."); + end + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings! You must be a stranger or [new to the Hall]. If you are a stranger. be warned that these halls are intended for the Ebon Mask only. If you are found to be a member of another house. you just may feel the sting of a blade in your back."); + elseif(e.message:findi("new to the hall")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Then I am glad to make your acquaintance. Have you ever been to Freeport? If not. how would you like to go? It is a test of your cunning we wish. Are you prepared to risk your young life? Are you [ready to venture to Freeport]?"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You have done nothing to upset the Ebon Mask, but there is much more which you must do before we do business. Perhaps a task from Master Hekzin shall set things right."); + else + e.self:Say("You are quite bold to approach a member of the Ebon Mask. Now be smart and run away."); + end + elseif(e.message:findi("venture to freeport")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Find a way to the port of Freeport. Seek out Giz Dinree. She is usually near the shores at night. She is your contact. Tell her you were [sent by TanI]. She will fill you in on your mission. Good luck. Do not waste time practicing your skills. Go as you are."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You have done nothing to upset the Ebon Mask, but there is much more which you must do before we do business. Perhaps a task from Master Hekzin shall set things right."); + else + e.self:Say("You are quite bold to approach a member of the Ebon Mask. Now be smart and run away."); + end + elseif(e.message:findi("book of souls")) then + e.self:Say("The Book of Souls chronicles all the lives Innoruuk has tainted over the years. It is in the care of the Maestro of Rancor. I can use this tome as a basis for my translation, if you return it and the note to me. An experienced practitioner in the art of non-detection should be able to snatch it from its resting place, don't you think, " .. e.other:Race() .. "?"); + elseif(e.message:findi("note")) then + e.self:Say("Oh, you want that piece of paper Stanos was so hot after? Well it's mine now, though it looks like ogre scratch to me. You're not getting it, Stanos is not getting it, and Hanns is not getting it. It is MINE! Now, " .. e.other:Race() .. ", scamper off like the dog you are, before I decide I need more practice with these short swords!"); + elseif(e.message:findi("stanos")) then + e.self:Say("Stanos? Hahahaha! That old fool crossed my path a few times in the past, but he is not able to trouble me now. If you see him, tell him Tani sends his..love. Hahahaha!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13892})) then + e.self:Say("Good work! I knew you could prove your worth. Most waste time training. I do not reward those who waste my time. Please take this. It is from our horde, from countless robberies. I hope you can use it to advance yourself. Remember to always stay faithful to Neriak."); + e.other:Faction(e.self,244,5); -- Faction: Ebon Mask + e.other:Faction(e.self,262,-5); -- Faction: Guards of Qeynos + e.other:Faction(e.self,320,-5); -- Faction: Wolves of the North + e.other:Faction(e.self,263,-5); -- Faction: Guardians of the Vale + e.other:Faction(e.self,329,-5); -- Faction: Carson McCabe + e.other:QuestReward(e.self,0,8,0,0,5066,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Quest by: Solid11 Zone:neriakc ID:42000 -- Tani_N`Mar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakc/Tralon_Din-a.lua b/neriakc/Tralon_Din-a.lua new file mode 100644 index 0000000..33bb82f --- /dev/null +++ b/neriakc/Tralon_Din-a.lua @@ -0,0 +1,9 @@ +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/neriakc/Ulazia_W-Selo.lua b/neriakc/Ulazia_W-Selo.lua new file mode 100644 index 0000000..69d321f --- /dev/null +++ b/neriakc/Ulazia_W-Selo.lua @@ -0,0 +1,77 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Spires of Innoruuk. May your destiny be paved with the Words of Innoruuk. What is it you seek? [Healing]? [Curing of disease]? [Curing of poison]? That is my divine duty. So commands Master Zexus."); + elseif(e.message:findi("disease")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Whatever the malady, I can surely rid you of it. First, you must donate 6 gold coins. The power of life is not easily acquired when you follow the unholy might of Innoruuk."); + else + e.self:Say("No sane member of the Priests of Innoruuk would tolerate your presence. Begone or more than words shall I lay upon thee."); + end + elseif(e.message:findi("poison")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("So, a toxic substance races to your heart? It is best we stop that at once! Ah... But, before I go on, you must pay the required donation of 8 gold coins."); + else + e.self:Say("No sane member of the Priests of Innoruuk would tolerate your presence. Begone or more than words shall I lay upon thee."); + end + elseif(e.message:findi("heal")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("So, it is the binding of wounds you desire. I could hardly tell with the smell of sacrifice drifting through the corridors of the Spires of Innoruuk. To be healed, I require a donation of 10 gold coins."); + else + e.self:Say("No sane member of the Priests of Innoruuk would tolerate your presence. Begone or more than words shall I lay upon thee."); + end + elseif(e.message:findi("curing")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("So curing is what you have come for! Seek out Mistress Ulazia W'selo."); + else + e.self:Say("No sane member of the Priests of Innoruuk would tolerate your presence. Begone or more than words shall I lay upon thee."); + end + elseif(e.message:findi("i.* heal")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("So, it is the binding of wounds you desire. I could hardly tell with the smell of sacrifice drifting through the corridors of the Spires of Innoruuk. To be healed, I require a donation of 10 gold coins."); + else + e.self:Say("No sane member of the Priests of Innoruuk would tolerate your presence. Begone or more than words shall I lay upon thee."); + end + elseif(e.message:findi("innoruuk")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You speak the name of the Prince of Hate. He is the higher power who set the Teir'Dal upon this land. All Teir'Dal pay homage to Him. If they do not, they are surely [heretics]. And, if they are heretics, they surely must die!"); + else + e.self:Say("No sane member of the Priests of Innoruuk would tolerate your presence. Begone or more than words shall I lay upon thee."); + end + elseif(e.message:findi("heretic")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Speak not of Teir'Dal heretics. Those Teir'Dal who do not follow Innoruuk shall be cut down! Master Kerton R'dev of the Spires of Innoruuk is seeing to that."); + else + e.self:Say("No sane member of the Priests of Innoruuk would tolerate your presence. Begone or more than words shall I lay upon thee."); + end + elseif(e.message:findi("teir")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I see the ancient language of the elf kind has been neglected. We dark elves are the Teir'Dal, superior to all elves. The high elves are known as the Koada'Dal and the wood elves are the Feir'Dal. There was once another, but that race is now extinct."); + else + e.self:Say("No sane member of the Priests of Innoruuk would tolerate your presence. Begone or more than words shall I lay upon thee."); + end + elseif(e.message:findi("master")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("All members of the Priests of Innoruuk look to the unholy might of Perrir Zexus for direction."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Your devotion to the Priests of Innoruuk has yet to be proven to the desired extent."); + else + e.self:Say("No sane member of the Priests of Innoruuk would tolerate your presence. Begone or more than words shall I lay upon thee."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {gold = 6}, 0)) then + e.self:Say("May the breath of life pass through your failing body and cast its foes from you. Unnngh... Praise Innoruuk!"); + e.self:CastSpell(96,e.other:GetID()); -- Counteract Disease + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {gold = 8}, 0)) then + e.self:Say("May the breath of life pass through your failing body and cast its foes from you. Unnngh... Praise Innoruuk!"); + e.self:CastSpell(95,e.other:GetID()); -- Counteract Poison + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {gold = 10}, 0)) then + e.self:Say("May the breath of life pass through your failing body and cast its foes from you. Unnngh... Praise Innoruuk!"); + e.self:CastSpell(12,e.other:GetID()); -- Healing + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/neriakc/Ulraz_S-Lon.lua b/neriakc/Ulraz_S-Lon.lua new file mode 100644 index 0000000..4838072 --- /dev/null +++ b/neriakc/Ulraz_S-Lon.lua @@ -0,0 +1,52 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("So you are the next pathetic maggot I have the displeasure of training to be a useful Shadowknight of the Lodge of the Dead. First you must get yourself outfitted in a suit of [armor]. those rags you wear can not even contain the stench of your miserable hide and will do no good protecting it from the edge of an enemy's blade."); + elseif(e.message:findi("armor")) then + e.self:Say("Seek Krivn S'Tai in the Commoner quarter of Neriak and give him this request parchment. Krivn S'Tai has been paid in advance by the Lodge of the Dead for the requested service. Simply give him the request parchment and he will instruct you further. When you have outfitted yourself in a suit of armor return to the Lodge of the Dead and I will grant you [another task]."); + e.other:SummonCursorItem(19584); -- Item: Request Parchment + elseif(e.message:findi("task")) then + e.self:Say("Ah. you are eager to advance further within the Lodge of the Dead. Although it is my duty to aid your training. do not allow your arrogance to blind you to your lowly position amongst the Queens most loyal subjects. Your next task is to assist the construction of a [weapon] and [shield] worthy of being wielded by a Shadowknight of the Lodge of the Dead."); + elseif(e.message:findi("weapon")) then + e.self:Say("Beyond the mouth of Neriak lies the Nektulos Forest. There the walking dead can be found digging their way from the ashen soil of the [Ultricle]. their flesh cured and hardened and bones strengthened from the minerals and volcanic ash in which they rested in death. Return some of these undead to the rest they have abandoned and bring to me some Leathered Zombie Flesh, a Petrified Humerus bone, and a Petrified Rib bone."); + elseif(e.message:findi("shield")) then + e.self:Say("The bones of the dead that dig from their graves at the [Ultricle] in the Nektulos Forest have been strengthened by the minerals and ashen soil. Return some of these walking dead to the rest they have abandoned and bring to me four Petrified Femurs."); + elseif(e.message:findi("Ultricle")) then + e.self:Say("In the Nektulos Forest near the pass to the Lavastorm Mountains is a gray region barren of life whose boundaries are marked by carved stones displaying runes the color of freshly spilt blood. The area the runed stones mark is called the Ultricle. It is where the weak. dead. and dying Teir'Dal that have not earned a noble burial are left to rot and one day if they are lucky join the ranks of the Undead."); + elseif(e.message:findi("forge")) then + e.self:Say("There is a forge near the Blue Flame Armory in the Neriak Commons and in the Ogre section of the Foreign Quarter. Sharpening stones can be purchased from vendors who deal in blacksmithing supplies."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19574,item2 = 16197,item3 = 19554})) then + e.self:Say("Well, you're not completely useless, afterall. Take this sword and sharpen it. Then, return it to me."); + e.other:QuestReward(e.self,0,0,0,0,19572); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19573})) then + e.self:Say("I'm surprised, I really am. I didn't think somebody like you could pull it off. Here, take this before I change my mind."); + e.other:Faction(e.self,239,15); --The Dead + e.other:Faction(e.self,303,2); --Queen Cristanos Thex + e.other:Faction(e.self,278,-2); --King Naythox Thex + e.other:Faction(e.self,275,-2); --Keepers of Art + e.other:Faction(e.self,245,-2); --Eldritch Collective + e.other:Faction(e.self,1522,-30); --Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,19607,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19570,item2 = 19570,item3 = 19570,item4 = 19570})) then + e.self:Emote("fashions the petrified femurs into a shield frame. This will be the frame of your new shield. Return now again to the Nektulos Forest, in the gray ashen region of the forest near the Lavastorm mountains the basilisks often come down from the fiery peaks to lay their eggs in the ashen soil. Basilisk hatchlings can be found there as they make their way towards the warmer interior of the mountains. Hunt these basilisk hatchlings and gather two Basilisk Hatchling Skins. Once this is done take the skins and frame to Medron Y'Lask at the Furrier Royale."); + e.other:Faction(e.self,239,15); --The Dead + e.other:Faction(e.self,303,2); --Queen Cristanos Thex + e.other:Faction(e.self,278,-2); --King Naythox Thex + e.other:Faction(e.self,275,-2); --Keepers of Art + e.other:Faction(e.self,245,-2); --Eldritch Collective + e.other:Faction(e.self,1522,-30); --Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,19571,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end +--END of FILE Zone:neriakc ID:42067 -- Ulraz_S`Lon + + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakc/Verina_Tomb.lua b/neriakc/Verina_Tomb.lua new file mode 100644 index 0000000..057aa19 --- /dev/null +++ b/neriakc/Verina_Tomb.lua @@ -0,0 +1,16 @@ +-- Test of Illusion - enchanter epic - Innoruuk's Word +-- + +function event_combat(e) + if(e.joined) then + e.self:Say("Hatred is the Universal Truth."); + end +end + +-- EOF Zone: neriakc ID: 42112 NPC: Verina_Tomb + + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakc/Xantis_Ixtax.lua b/neriakc/Xantis_Ixtax.lua new file mode 100644 index 0000000..4d53294 --- /dev/null +++ b/neriakc/Xantis_Ixtax.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. disciple " .. e.other:GetCleanName() .. ". Feel free to inspect my wares. I am here to serve all necromancers of the Dead. I can also enchant a [ring of the Dead] if you have one."); + elseif(e.message:findi("ring of the dead")) then + if(e.other:GetFactionValue(e.self) >= 500) then + e.self:Say("The ring of the Dead is the mark of loyal members of the his house. One can use it to bind his soul to any point, but only once and then the enchantment is gone. It is my duty to enchant the ring of the Dead once it is drained of all power, but only for a loyal member. I believe you to be loyal. I require the drained ring and ten gold coins."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When you learn to serve the Dead, then I will find the time to speak of such things.") + else + e.self:Say("You dare to speak to me?"); -- Made up text, need appre dialogue + end + end +end + +--END of FILE Zone:neriakc ID:42063 -- Xantis_Ixtax +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/neriakc/Xon_Quexill.lua b/neriakc/Xon_Quexill.lua new file mode 100644 index 0000000..7ffc799 --- /dev/null +++ b/neriakc/Xon_Quexill.lua @@ -0,0 +1,45 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Lodge of the Dead. May you serve our Queen with the bleeding of others."); + elseif(e.message:findi("befallen")) then + e.self:Say("It is true that the return of Marnek could create difficulties for us, especially if this has the blessing of Solusek Ro himself. Therefore, I command you to deliver to me any further information you uncover regarding the plans of the Burning Dead, and likewise I order you to return here at my bidding for further instructions in this matter. Now, begone."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18474})) then + e.self:Say("Very interesting, servant of the Queen. This deed has stayed my wrath for this interruption of my business. Where did you find this?"); + e.other:Faction(e.self,239,1); -- Faction: The Dead + e.other:Faction(e.self,303,1); -- Faction: Queen Cristanos Thex + e.other:Faction(e.self,278,-3); -- Faction: King Naythox Thex + e.other:Faction(e.self,275,-3); -- Faction: Keepers of the Art + e.other:Faction(e.self,245,-3); -- Faction: Eldritch Collective + e.other:Faction(e.self,1522,-3); -- Faction: Primordial Malice + e.other:QuestReward(e.self,0,8,0,0,0,6400); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31492})) then + e.self:Say("Ha ha ha ha! Oh the poor steed of a noble paladin! Bah, it will find no rest yet. I who can command the spirits of the dead demand it serve you once again."); + e.other:Faction(e.self,239,1); -- Faction: The Dead + e.other:Faction(e.self,303,1); -- Faction: Queen Cristanos Thex + e.other:Faction(e.self,278,-3); -- Faction: King Naythox Thex + e.other:Faction(e.self,275,-3); -- Faction: Keepers of the Art + e.other:Faction(e.self,245,-3); -- Faction: Eldritch Collective + e.other:Faction(e.self,1522,-3); -- Faction: Primordial Malice + e.other:QuestReward(e.self,0,0,0,0,31496,6400); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18758})) then --Tattered Note + e.self:Say("Just what I need in this outfit, another waste of flesh. Here, put this on. Go bother Noxhil for a while - I'm sure he has some menial task for you. You'd better prove yourself of value to me. I hear I can get a few plat for the skull of an idiot on the black market, and I could make a fortune from your type. Now, get outta here!"); + e.other:Faction(e.self,239,100); --The Dead + e.other:Faction(e.self,303,15); --Queen Cristanos Thex + e.other:Faction(e.self,278,-15); --King Naythox Thex + e.other:Faction(e.self,275,-15); --Keeper of the Art + e.other:Faction(e.self,245,-15); --Eldritch Collective + e.other:Faction(e.self,1522,-200); --Primodial Malice + e.other:QuestReward(e.self,0,0,0,0,13587,20); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/netherbian/##Lerin_Sardor.lua b/netherbian/##Lerin_Sardor.lua new file mode 100644 index 0000000..09072cf --- /dev/null +++ b/netherbian/##Lerin_Sardor.lua @@ -0,0 +1,18 @@ +function event_spawn(e) + eq.set_timer("depop",600000); +end + +function event_timer(e) + eq.depop(); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5983}, 0)) then + e.self:Say("Thank you so much for your help! As I promised here is a small token of my appreciation."); + e.other:QuestReward(e.self,0,0,0,0,5984,10000); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/netherbian/#Bregun_Dorey.lua b/netherbian/#Bregun_Dorey.lua new file mode 100644 index 0000000..411b878 --- /dev/null +++ b/netherbian/#Bregun_Dorey.lua @@ -0,0 +1,41 @@ +-- Bregun Dorey is spawned in Netherbian when you give a dawnshroud cinder to legionnaire Dalini +function event_spawn(e) + eq.set_timer("depop",1800000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Trog trog trog trog?"); + elseif(e.message:findi("trog")) then + e.self:Say("Ha! What are you talking about?! Strange thing you are. Wait a minute, come closer. Are you [from Norrath]?"); + elseif(e.message:findi("from norrath")) then + e.self:Say("I thought so, your armor looks to be made from things found not here. Have you heard of [Rivervale]?"); + elseif(e.message:findi("bixies around rivervale")) then + e.self:Say("There are Bixies! THERE ARE BIXIES! This is great. You should hunt some Bixies, and get some Bixie parts. Then you can make me some Bixie Crunchies! Ooooh, Crunchies. I want to try the Crunchies. I think you should bring me four Crunchies!"); + elseif(e.message:findi("rivervale")) then + e.self:Say("[Good]."); + elseif(e.message:findi("good")) then + e.self:Say("Yeah good! Trog trog trog trog! Hahaha! These Troglodytes don't know of Rivervale. They just run around the cave all day doing Troglodyte things. Hahaha! Trog trog trog. So what was I speaking of.. Oh Bixies! So, are there [bixies around Rivervale]?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13464,item2 = 13464,item3 = 13464,item4 = 13464}, 0)) then -- 4 bixie crunchies + e.self:Say("Ah hum!"); + e.self:RemoveItem(29852); + e.other:QuestReward(e.self,{itemid = 29852}); -- bixie charm + e.self:Say("Give this charm to Torsten as a present from his old friend."); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29853}, 0)) then -- sealed note to bregun + e.self:Say("Hahaha! Silly Torsten. Always snooping over my shoulder. Well I have nothing to lose... Take this to him, it's directions on how to find the Journal I kept. I hid it where no one would look! Haha! Trog trog trog!"); + e.other:QuestReward(e.self,{itemid = 29854}); -- bregun's directions + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/netherbian/#Legionnaire_Anolami.lua b/netherbian/#Legionnaire_Anolami.lua new file mode 100644 index 0000000..be8f8b3 --- /dev/null +++ b/netherbian/#Legionnaire_Anolami.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings."); + elseif(e.message:findi("trog")) then + e.self:Say("The Trogs. Troglodytes. Cave Dwellers. Stinky little things with big teeth that live in here. Not to be confused with the Netherbians, who also stink, and have big teeth. The Trogs are a nuisance more than anything else, they aren't organized enough to present a real threat to us."); + elseif(e.message:findi("netherbian")) then + e.self:Say("Ugh! Nasty things. No eyes. Big teeth. Eat anything, including each other. They have been quiet for months now, but they were a real problem in the past. We lost a lot of good men keeping this route free of them. Lets hope they don't start acting up again."); + elseif(e.message:findi("recuso")) then + e.self:Say("Recuso. The Refused. They refused the Question, or failed it. Any who refuse are cast out of Sanctus Seru, to fend for themselves. We let them be, for the most part, as long as they don't try to steal from us. But we are forbidden to give them aid in any way. The closest thing to that you will see is us letting them \"sneak\" into here for shelter. Though they soon find out, we did them no favors, for they have to earn that shelter. The one reason we let the Recuso live in here is because they help keep the Netherbians and the Trogs in check. No sense wasting good lives, when we can spend the Recuso, eh?"); + end +end diff --git a/netherbian/#Legionnaire_Dalini.lua b/netherbian/#Legionnaire_Dalini.lua new file mode 100644 index 0000000..b6b1b73 --- /dev/null +++ b/netherbian/#Legionnaire_Dalini.lua @@ -0,0 +1,25 @@ +-- Earring of Veracity #1 (Insignia) + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("No loitering."); + elseif(e.message:findi("bregun dorey")) then + e.self:Say("Yeah maybe I know Bregun. You know, I sure am thirsty with all this guard work I am doing. I know what I want, some Dawnshroud Cider! Yeah, go fetch me a cider and we will see if I remember anything when you get back."); + elseif(e.message:findi("trog")) then + e.self:Say("The Trogs. Troglodytes. Cave Dwellers. Stinky little things with big teeth that live in here. Not to be confused with the Netherbians, who also stink, and have big teeth. The Trogs are a nuisance more than anything else, they aren't organized enough to present a real threat to us."); + elseif(e.message:findi("netherbian")) then + e.self:Say("Ugh! Nasty things. No eyes. Big teeth. Eat anything, including each other. They have been quiet for months now, but they were a real problem in the past. We lost a lot of good men keeping this route free of them. Lets hope they don't start acting up again."); + elseif(e.message:findi("recuso")) then + e.self:Say("Recuso. The Refused. They refused the Question, or failed it. Any who refuse are cast out of Sanctus Seru, to fend for themselves. We let them be, for the most part, as long as they don't try to steal from us. But we are forbidden to give them aid in any way. The closest thing to that you will see is us letting them \"sneak\" into here for shelter. Though they soon find out, we did them no favors, for they have to earn that shelter. The one reason we let the Recuso live in here is because they help keep the Netherbians and the Trogs in check. No sense wasting good lives, when we can spend the Recuso, eh?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29851}, 0)) then -- dawnshroud cider + e.self:Say("Dorey usually roams in the troglodyte caves, you might find him there."); + eq.unique_spawn(161007,0,0,-365,-89,2.1,88); -- spawn Bregun Dorey. Coordinate verifed by myseq + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/netherbian/#Legionnaire_Giru.lua b/netherbian/#Legionnaire_Giru.lua new file mode 100644 index 0000000..3818667 --- /dev/null +++ b/netherbian/#Legionnaire_Giru.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Yeah, yeah, whatever. Don't cause trouble here, don't cause trouble in Sanctus Seru, don't feed the Trogs, and don't feed the Haven guards. Do that, and we'll get along just fine."); + elseif(e.message:findi("trog")) then + e.self:Say("The Trogs. Troglodytes. Cave Dwellers. Stinky little things with big teeth that live in here. Not to be confused with the Netherbians, who also stink, and have big teeth. The Trogs are a nuisance more than anything else, they aren't organized enough to present a real threat to us."); + elseif(e.message:findi("netherbian")) then + e.self:Say("Ugh! Nasty things. No eyes. Big teeth. Eat anything, including each other. They have been quiet for months now, but they were a real problem in the past. We lost a lot of good men keeping this route free of them. Lets hope they don't start acting up again."); + elseif(e.message:findi("recuso")) then + e.self:Say("Recuso. The Refused. They refused the Question, or failed it. Any who refuse are cast out of Sanctus Seru, to fend for themselves. We let them be, for the most part, as long as they don't try to steal from us. But we are forbidden to give them aid in any way. The closest thing to that you will see is us letting them \"sneak\" into here for shelter. Though they soon find out, we did them no favors, for they have to earn that shelter. The one reason we let the Recuso live in here is because they help keep the Netherbians and the Trogs in check. No sense wasting good lives, when we can spend the Recuso, eh?"); + end +end diff --git a/netherbian/#Legionnaire_Hyuni.lua b/netherbian/#Legionnaire_Hyuni.lua new file mode 100644 index 0000000..ae5be24 --- /dev/null +++ b/netherbian/#Legionnaire_Hyuni.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Move along," .. e.other:GetName() .. ". I'm not the talkative type."); + elseif(e.message:findi("trog")) then + e.self:Say("The Trogs. Troglodytes. Cave Dwellers. Stinky little things with big teeth that live in here. Not to be confused with the Netherbians, who also stink, and have big teeth. The Trogs are a nuisance more than anything else, they aren't organized enough to present a real threat to us."); + elseif(e.message:findi("netherbian")) then + e.self:Say("Ugh! Nasty things. No eyes. Big teeth. Eat anything, including each other. They have been quiet for months now, but they were a real problem in the past. We lost a lot of good men keeping this route free of them. Lets hope they don't start acting up again."); + elseif(e.message:findi("recuso")) then + e.self:Say("Recuso. The Refused. They refused the Question, or failed it. Any who refuse are cast out of Sanctus Seru, to fend for themselves. We let them be, for the most part, as long as they don't try to steal from us. But we are forbidden to give them aid in any way. The closest thing to that you will see is us letting them \"sneak\" into here for shelter. Though they soon find out, we did them no favors, for they have to earn that shelter. The one reason we let the Recuso live in here is because they help keep the Netherbians and the Trogs in check. No sense wasting good lives, when we can spend the Recuso, eh?"); + end +end diff --git a/netherbian/#Legionnaire_Maxos.lua b/netherbian/#Legionnaire_Maxos.lua new file mode 100644 index 0000000..a88417e --- /dev/null +++ b/netherbian/#Legionnaire_Maxos.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I hear you," .. e.other:Race() .. ". What is it that you want?"); + elseif(e.message:findi("trog")) then + e.self:Say("The Trogs. Troglodytes. Cave Dwellers. Stinky little things with big teeth that live in here. Not to be confused with the Netherbians, who also stink, and have big teeth. The Trogs are a nuisance more than anything else, they aren't organized enough to present a real threat to us."); + elseif(e.message:findi("netherbian")) then + e.self:Say("Ugh! Nasty things. No eyes. Big teeth. Eat anything, including each other. They have been quiet for months now, but they were a real problem in the past. We lost a lot of good men keeping this route free of them. Lets hope they don't start acting up again."); + elseif(e.message:findi("recuso")) then + e.self:Say("Recuso. The Refused. They refused the Question, or failed it. Any who refuse are cast out of Sanctus Seru, to fend for themselves. We let them be, for the most part, as long as they don't try to steal from us. But we are forbidden to give them aid in any way. The closest thing to that you will see is us letting them \"sneak\" into here for shelter. Though they soon find out, we did them no favors, for they have to earn that shelter. The one reason we let the Recuso live in here is because they help keep the Netherbians and the Trogs in check. No sense wasting good lives, when we can spend the Recuso, eh?"); + end +end diff --git a/netherbian/#Lerin_Sardor.lua b/netherbian/#Lerin_Sardor.lua new file mode 100644 index 0000000..e8e2325 --- /dev/null +++ b/netherbian/#Lerin_Sardor.lua @@ -0,0 +1,18 @@ +function event_waypoint_arrive(e) + if(e.wp == 1 or e.wp == 2) then + eq.spawn2(161020,0,0,-50,-308,10,0):AddToHateList(e.self,1); + elseif(e.wp == 3 or e.wp == 4) then + eq.spawn2(161015,0,0,-41,-93,7,0):AddToHateList(e.self,1); + elseif(e.wp == 5 or e.wp == 6) then + eq.spawn2(161020,0,0,-38,206,11,0):AddToHateList(e.self,1); + elseif(e.wp == 9) then + eq.spawn2(161004,0,0,-114,467,2,0):AddToHateList(e.self,1); + eq.spawn2(161004,0,0,-116,469,2,0):AddToHateList(e.self,1); + elseif(e.wp == 10) then + eq.spawn2(161004,0,0,-114,467,2,0):AddToHateList(e.self,1); + elseif(e.wp == 14) then + eq.unique_spawn(161009,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + e.self:Say("Whew, we are finally here. If you will give me the contract I will keep up with my part of the bargain."); + eq.depop(); + end +end \ No newline at end of file diff --git a/netherbian/A_Haven_Customs_Inspector.lua b/netherbian/A_Haven_Customs_Inspector.lua new file mode 100644 index 0000000..dc75970 --- /dev/null +++ b/netherbian/A_Haven_Customs_Inspector.lua @@ -0,0 +1,5 @@ +function event_combat(e) + if(e.joined) then + e.self:Say("Oh, " .. e.other:GetName() .. ", you made a big mistake!"); + end +end diff --git a/netherbian/A_Haven_Customs_Officer.lua b/netherbian/A_Haven_Customs_Officer.lua new file mode 100644 index 0000000..dc75970 --- /dev/null +++ b/netherbian/A_Haven_Customs_Officer.lua @@ -0,0 +1,5 @@ +function event_combat(e) + if(e.joined) then + e.self:Say("Oh, " .. e.other:GetName() .. ", you made a big mistake!"); + end +end diff --git a/netherbian/A_Haven_Guard.lua b/netherbian/A_Haven_Guard.lua new file mode 100644 index 0000000..dc75970 --- /dev/null +++ b/netherbian/A_Haven_Guard.lua @@ -0,0 +1,5 @@ +function event_combat(e) + if(e.joined) then + e.self:Say("Oh, " .. e.other:GetName() .. ", you made a big mistake!"); + end +end diff --git a/netherbian/A_sickly.lua b/netherbian/A_sickly.lua new file mode 100644 index 0000000..e5108bf --- /dev/null +++ b/netherbian/A_sickly.lua @@ -0,0 +1,8 @@ +function event_spawn(e) + eq.set_timer("emote",math.random(240000,360000)); +end + +function event_timer(e) + eq.set_timer("emote",math.random(240000,360000)); + e.self:Emote("sweet aroma fills the air."); +end diff --git a/netherbian/Are_you.lua b/netherbian/Are_you.lua new file mode 100644 index 0000000..4a6acf1 --- /dev/null +++ b/netherbian/Are_you.lua @@ -0,0 +1,8 @@ +function event_spawn(e) + eq.set_timer("emote",math.random(240000,360000)); +end + +function event_timer(e) + eq.set_timer("emote",math.random(240000,360000)); + e.self:Emote("sure you want to go this way?"); +end diff --git a/netherbian/Lerin_Sardor.lua b/netherbian/Lerin_Sardor.lua new file mode 100644 index 0000000..69a97b6 --- /dev/null +++ b/netherbian/Lerin_Sardor.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ahh, hello there, " .. e.other:GetName() .. ". I am a trader from Sanctus Seru trying to make my way to Shadowhaven for some dealings. I have come this far with the aid of guards from Sanctus Seru, but they have turned back and left me to go on my own. I hear there are many terrible [creatures] here lurking in the shadows, leave it to the guards of the Hand to leave me unprotected."); + elseif(e.message:findi("creatures")) then + e.self:Say("What I was told is that this pass is filled with small horrible creatures with no eyes. Perhaps you could [help by providing safe passage] to the other side?"); + elseif(e.message:findi("safe passage")) then + e.self:Say("Great! If I can get safely to the other side I will give you a small trinket that I was going to sell. Getting safe passage for the rest of my goods is worth more than the item in itself. Surely you know a good deal when you hear one. Take this note, if you agree to the conditions that I get across safely before you get payment return it to me and we will be on our way."); + e.other:SummonCursorItem(5982); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5982}, 0)) then + e.self:Say("Let us go then, please be alert throughout the cavern. Once we get to the other side safely give me the signed agreement and you will have your payment."); + e.other:QuestReward(e.self,0,0,0,0,5983); + eq.unique_spawn(161008,43,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/netherbian/Rocks.lua b/netherbian/Rocks.lua new file mode 100644 index 0000000..835ed26 --- /dev/null +++ b/netherbian/Rocks.lua @@ -0,0 +1,8 @@ +function event_spawn(e) + eq.set_timer("emote",math.random(240000,360000)); +end + +function event_timer(e) + eq.set_timer("emote",math.random(240000,360000)); + e.self:Emote("occasionally fall from the roof of the tunnel."); +end diff --git a/netherbian/Strange.lua b/netherbian/Strange.lua new file mode 100644 index 0000000..d96f9f5 --- /dev/null +++ b/netherbian/Strange.lua @@ -0,0 +1,8 @@ +function event_spawn(e) + eq.set_timer("emote",math.random(240000,360000)); +end + +function event_timer(e) + eq.set_timer("emote",math.random(240000,360000)); + e.self:Emote("chittering noises echo faintly through the tunnels."); +end diff --git a/netherbian/The_air.lua b/netherbian/The_air.lua new file mode 100644 index 0000000..d02d683 --- /dev/null +++ b/netherbian/The_air.lua @@ -0,0 +1,8 @@ +function event_spawn(e) + eq.set_timer("emote",math.random(240000,360000)); +end + +function event_timer(e) + eq.set_timer("emote",math.random(240000,360000)); + e.self:Emote("seems less foul here."); +end diff --git a/netherbian/This_passage.lua b/netherbian/This_passage.lua new file mode 100644 index 0000000..a6adb98 --- /dev/null +++ b/netherbian/This_passage.lua @@ -0,0 +1,8 @@ +function event_spawn(e) + eq.set_timer("emote",math.random(240000,360000)); +end + +function event_timer(e) + eq.set_timer("emote",math.random(240000,360000)); + e.self:Emote("obviously has seen a great deal of traffic"); +end diff --git a/nexus/A_Mystic_Voice_.lua b/nexus/A_Mystic_Voice_.lua new file mode 100644 index 0000000..1215db6 --- /dev/null +++ b/nexus/A_Mystic_Voice_.lua @@ -0,0 +1,31 @@ +function event_signal(e) + if(e.signal == 20) then + eq.get_entity_list():Message(0,256,"A Mystic Voice says 'In approximately fifteen minutes the portals will become active and will transport you back to Odus, Antonica, Faydwer, and Kunark. In ten minutes the portal to Velious will become active.'"); + end + if(e.signal == 21) then + eq.get_entity_list():Message(0,256,"A Mystic Voice says 'The portal to Velious will become active in three minutes. Please begin gathering in the portal area.'"); + end + if(e.signal == 22) then + eq.get_entity_list():Message(0,256,"A Mystic Voice says 'One minute till teleportation to Velious. Please be prepared to step onto the teleport pad.'"); + end + if(e.signal == 23) then + eq.get_entity_list():Message(0,256,"A Mystic Voice says 'The portal to Velious is now active. Please stand on the pad and you will be teleported shortly.''"); + end + if(e.signal == 24) then + eq.get_entity_list():Message(0,256,"A Mystic Voice says 'As a reminder, the portals to Odus, Antonica, Faydwer, and Kunark will become active in three minutes.'"); + end + if(e.signal == 25) then + eq.get_entity_list():Message(0,256,"A Mystic Voice says 'One minute till teleportation to Odus, Antonica, Faydwer, and Kunark. Please be prepared to step onto the teleport pad.'"); + end + if(e.signal == 26) then + eq.get_entity_list():Message(0,256,"A Mystic Voice says 'The portals to Odus, Antonica, Faydwer, and Kunark are now active. Please stand on the pad and you will be teleported shortly. Come back soon.'"); + end + if(e.signal == 27) then + eq.get_entity_list():Message(0,256,"A Mystic Voice says 'The portals to Odus, Antonica, Faydwer, and Kunark will become active in five minutes. Please begin gathering in the portal areas.'"); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/nexus/Antonica_Scion.lua b/nexus/Antonica_Scion.lua new file mode 100644 index 0000000..8349eeb --- /dev/null +++ b/nexus/Antonica_Scion.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". I am Horender Tevalian. I was one of the first to travel to Luclin when the secrets of the teleports were unlocked. Once here, the Midst Collective asked that I maintain vigil over the portal back to the Karanas. The [teleport system] back to Norrath is completely automated. I have no direct control over when the portal will turn on, although I can say that the system works on a schedule of approximately ten minutes."); + elseif(e.message:findi("teleport system")) then + e.self:Say("The teleport system is pretty simple from your perspective. Simply listen for the voice saying that the portals will become active soon. When the time nears, you should stand on the elevated pad you see next to me. Shortly after you see the message that the teleporters are active, you will be transported to your destination.."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/nexus/Defender_Galson.lua b/nexus/Defender_Galson.lua new file mode 100644 index 0000000..7de5f31 --- /dev/null +++ b/nexus/Defender_Galson.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Down this passage you will find the entrance to the Bazaar, a great place to find that trinket you have been looking for. Don't forget to head to Shadowhaven after you stop here."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/nexus/Defender_Howell.lua b/nexus/Defender_Howell.lua new file mode 100644 index 0000000..36f079e --- /dev/null +++ b/nexus/Defender_Howell.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Through this hallway lies the wonderful city of Shadowhaven. The Haven is just that, a haven for those with no home. The city tolerates any race or religion, as long as they keep to themselves and cause no trouble. Good, honest hard work is expected from those that wish to reside in the city. When visiting, proceed to the Fordel quarter and register if you have not done so already. Take care, " .. e.other:GetCleanName() .. "."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/nexus/Defender_Jena.lua b/nexus/Defender_Jena.lua new file mode 100644 index 0000000..453935c --- /dev/null +++ b/nexus/Defender_Jena.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Through this very hallway lies the city of Shadowhaven. On your way there, you will notice a small room that contains a miniature version of the spires. If you have no means of personal transportation back to Norrath, these teleports will take you there. Be sure to speak to the attendant at the teleport for more information."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/nexus/Defender_Karrik.lua b/nexus/Defender_Karrik.lua new file mode 100644 index 0000000..1b148b4 --- /dev/null +++ b/nexus/Defender_Karrik.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". Behind me lies the path to the Odus platform. Please refrain from combat while in the Nexus as we have not thoroughly tested how the teleporters would react if exposed to certain magics."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/nexus/Defender_Narthem.lua b/nexus/Defender_Narthem.lua new file mode 100644 index 0000000..7eb929d --- /dev/null +++ b/nexus/Defender_Narthem.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". Behind me lies the doomed passageway to the Paludal Caverns. It's a very sore subject that we really don't like to talk about... Some of our own were lost in the accident."); + elseif(e.message:findi("accident")) then + e.self:Say("Like I said before, I really don't like to talk about it. If Serisn is back there, he might be able to tell you more."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/nexus/Defender_Rhazor.lua b/nexus/Defender_Rhazor.lua new file mode 100644 index 0000000..c8af1e6 --- /dev/null +++ b/nexus/Defender_Rhazor.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Another traveler has come to our lands, Rinkes. I wish you the best of luck wherever your travels may take you, " .. e.other:GetCleanName() .. "."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/nexus/Defender_Rinkes.lua b/nexus/Defender_Rinkes.lua new file mode 100644 index 0000000..00bd82b --- /dev/null +++ b/nexus/Defender_Rinkes.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". It is great to see new faces again around the Nexus. We are lucky to have some of the finest and most powerful magicians working hard to aid our cause."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/nexus/Eslof_Runsalark.lua b/nexus/Eslof_Runsalark.lua new file mode 100644 index 0000000..1207053 --- /dev/null +++ b/nexus/Eslof_Runsalark.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("No time to talk I gotta get my brother out! Im coming Lareso!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/nexus/Fani_Dertrimas.lua b/nexus/Fani_Dertrimas.lua new file mode 100644 index 0000000..80cfb10 --- /dev/null +++ b/nexus/Fani_Dertrimas.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to the Nexus! Down each stairway is a passage that leads out from the Nexus. Through those passages you will find the great trade city of Shadow Haven, the Bazaar, and the cavern systems that lead to the surface of Luclin. Also, located in each tunnel is a teleport pad that can return you to Norrath. There is much information to be gathered here, be sure to speak to everyone and ask lots of questions. Farewell. " .. e.other:GetCleanName() .. "."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/nexus/Faydwer_Scion.lua b/nexus/Faydwer_Scion.lua new file mode 100644 index 0000000..8f745a2 --- /dev/null +++ b/nexus/Faydwer_Scion.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". I am Jucian Featherhigh, the guardian of this teleport. It will take you back to my home in the Faydark. The [teleport system] back to Norrath is completely automated. I have no direct control over when the portal will turn on, although I can say that the system works on a schedule of approximately ten minutes."); + elseif(e.message:findi("teleport system")) then + e.self:Say("The teleport system is pretty simple from your perspective. Simply listen for the voice saying that the portals will become active soon. When the time nears, you should stand on the elevated pad you see next to me. Shortly after you see the message that the teleporters are active, you will be transported to your destination.."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/nexus/Jayson_Bri-Tian.lua b/nexus/Jayson_Bri-Tian.lua new file mode 100644 index 0000000..78d12d8 --- /dev/null +++ b/nexus/Jayson_Bri-Tian.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Ahh, welcome, " .. e.other:GetCleanName() .. ". It is good to see more and more people visiting now that the portals are functional. It took us many, many years to understand the magical powers of Luclin. Whether through dumb luck or divine intervention, we have succeeded in opening the gate back to Norrath. How long it will stay open, no one knows. My colleagues and I are here to maintain and watch for changes in the Nexus. Should anything happen, you will be notified. Safe travels."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/nexus/Kardador_Tarsinian.lua b/nexus/Kardador_Tarsinian.lua new file mode 100644 index 0000000..4a9269f --- /dev/null +++ b/nexus/Kardador_Tarsinian.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". The passages extending from the heart of Luclin take you east to Shadow Haven, south to the Bazaar, west in the direction of the city Sanctus Seru, and north to the city of Shar Vahl. Before heading in any one of these directions, speak to the keepers at the entrances."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/nexus/Kunark_Scion.lua b/nexus/Kunark_Scion.lua new file mode 100644 index 0000000..97694c3 --- /dev/null +++ b/nexus/Kunark_Scion.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello " .. e.other:GetCleanName() .. ". Welcome to the Kunark translocation area. The [teleport system] back to Norrath is completely automated. I have no direct control over when the portal will turn on, although I can say that the system works on a schedule of approximately ten minutes."); + elseif(e.message:findi("teleport system")) then + e.self:Say("The teleport system is pretty simple from your perspective. Simply listen for the voice saying that the portals will become active soon. When the time nears, you should stand on the elevated pad you see next to me. Shortly after you see the message that the teleporters are active, you will be transported to your destination.."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/nexus/Larren.lua b/nexus/Larren.lua new file mode 100644 index 0000000..32956c6 --- /dev/null +++ b/nexus/Larren.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Oh, welcome, " .. e.other:GetCleanName() .. "! Beyond me is perhaps the best place in all of Lu... well, Norrath now too. You really need to check it out for yourself. It is the perfect place for a trader like yourself to find the best deal on any item around!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/nexus/Odus_Scion.lua b/nexus/Odus_Scion.lua new file mode 100644 index 0000000..53bbf97 --- /dev/null +++ b/nexus/Odus_Scion.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". I am Kendal Groetan. I am here to assist and watch over those who wish to return to the continent of Odus. Due to the limited space I share this area with the portal to Velious. The [teleport system] back to Norrath is completely automated. I have no direct control over when the portal will turn on, although I can say that the system works on a schedule of approximately ten minutes."); + elseif(e.message:findi("teleport system")) then + e.self:Say("The teleport system is pretty simple from your perspective. Simply listen for the voice saying that the portals will become active soon. When the time nears, you should stand on the elevated pad you see next to me. Shortly after you see the message that the teleporters are active, you will be transported to your destination.."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/nexus/Persy_Clutches.lua b/nexus/Persy_Clutches.lua new file mode 100644 index 0000000..1c1bbf7 --- /dev/null +++ b/nexus/Persy_Clutches.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to the center of Luclin, " .. e.other:GetCleanName() .. ". This is a very magical place. The magic that emanates from here can be felt even on the surface. Don't forget to speak to as many of us as you can before you venture far."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/nexus/Serisn_Galaskof.lua b/nexus/Serisn_Galaskof.lua new file mode 100644 index 0000000..bc5436c --- /dev/null +++ b/nexus/Serisn_Galaskof.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hi there, " .. e.other:GetCleanName() .. ". If you could please try to keep away from Eslof. He is going through a very tough time now as his brother was part of the mining contingent that was working on this here entrance to the Paludal caverns when it caved in sealing up the entrance. We have troops working on the other side around the clock to clear up the rocks. Sorry for any trouble."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/nexus/Velious_Scion.lua b/nexus/Velious_Scion.lua new file mode 100644 index 0000000..f92ea55 --- /dev/null +++ b/nexus/Velious_Scion.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". I am here to assist and watch over those who wish to return to the continent of Velious. Due to the limited space I share this area with the portal to Odus. The [teleport system] back to Norrath is completely automated. I have no direct control over when the portal will turn on, although I can say that the system works on a schedule of approximately ten minutes."); + elseif(e.message:findi("teleport system")) then + e.self:Say("The teleport system is pretty simple from your perspective. Simply listen for the voice saying that the portals will become active soon. When the time nears, you should stand on the elevated pad you see next to me. Shortly after you see the message that the teleporters are active, you will be transported to your destination.."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/nightmareb/A_Planar_Projection.lua b/nightmareb/A_Planar_Projection.lua new file mode 100644 index 0000000..6351ffb --- /dev/null +++ b/nightmareb/A_Planar_Projection.lua @@ -0,0 +1,83 @@ +local FLAG_LIMIT = 72; + +local flags = 0; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + +function event_signal(e) + rid, gid, cid = nil, nil, nil; + local client = eq.get_entity_list():GetClientByID(e.signal); -- the signal # is the entity ID of a client with kill credit + + if ( client.valid ) then + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + end +end + +function event_spawn(e) + flags = 0; + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + + if ( ClientCanFlag(e.other) ) then + + if ( e.message:findi("hail") ) then + + if ( qglobals.thelin ) then + if ( qglobals.thelin == "2" and flags < FLAG_LIMIT ) then + e.other:Message(0, "You recognize the voice in your mind to be Thelin Poxbourne's. The words echo, 'The cruel hand of Terris no longer shall torment my dreams. Thank you friends, you are my savior. Please return to me in the Plane of Tranquility. I would like to express to you my gratitude.'"); + eq.set_global("thelin", "3", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + flags = flags + 1; + + if ( qglobals.cl_terris ) then + eq.delete_global("cl_terris"); + end + end + elseif ( not qglobals.thelin or qglobals.thelin == "1" ) then + if ( not qglobals.cl_terris and flags <= FLAG_LIMIT ) then + -- no text for this checklist flag; probably because it wasn't possible to enter the zone without the maze flag when the first made it + eq.set_global("cl_terris", "1", 5, "F"); + e.other:Message(15, "You have received a new checklist flag!"); + flags = flags + 1; + end + end + end + end +end diff --git a/nightmareb/Terris_Thule.lua b/nightmareb/Terris_Thule.lua new file mode 100644 index 0000000..74c89ed --- /dev/null +++ b/nightmareb/Terris_Thule.lua @@ -0,0 +1,124 @@ +-- dream defilers at 79% and 69%, dispel at 50%, gargoyles at 40% +-- one defiler seems to spawn for every player that has attacked Terris, not pets or healers; not 100% sure how this works +-- there are two defilers types. one is larger and is immune to stuff + +local PLANAR_PROJECTION_TYPE = 221042; +local DEFILER_SMALL_TYPE = 221045; +local DEFILER_LARGE_TYPE = 221044; +local GARG_TYPE = 221043; +local GARG_SPAWN_IDS = { 365397, 366053, 366176, 367232 }; + +function event_death_complete(e) + eq.spawn2(PLANAR_PROJECTION_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + eq.signal(PLANAR_PROJECTION_TYPE, e.killer:GetID()); -- e.killer for death_complete is somebody with kill rights, not death blow +end + +function event_spawn(e) + eq.set_next_hp_event(95); +end + +function SpawnDefilers(mob) + local numSpawns = 0; + local hateList = mob:GetHateList(); + + for ent in hateList.entries do + if ( ent.ent:IsClient() and ent.damage > 0 ) then + numSpawns = numSpawns + 1; + end + end + + local t; + for i = 1, numSpawns do + t = math.random(1, 2); + if ( t == 1 ) then + t = DEFILER_SMALL_TYPE; + else + t = DEFILER_LARGE_TYPE; + end + --eq.spawn2(t, 0, 0, -1634, -192, 267, 0); -- defilers seem to all spawn from this single point; this is the precise loc on Live servers + eq.spawn2(t, 0, 0, -1661, -168, 140, 0); -- moved point to ground because our pathing doesn't like them spawning on the wall + end +end + +function event_hp(e) + + if ( e.hp_event == 95 ) then + eq.get_entity_list():MessageClose(e.self, true, 250, 0, "The sound of a thousand terrified screams fills your head. You feel yourself becoming a part of the fabric of this nightmare realm."); + eq.set_next_hp_event(79); + + elseif ( e.hp_event == 79 ) then + eq.set_next_hp_event(69); + SpawnDefilers(e.self); + + elseif ( e.hp_event == 69 ) then + eq.set_next_hp_event(50); + SpawnDefilers(e.self); + + elseif ( e.hp_event == 50 ) then + eq.set_next_hp_event(40); + eq.get_entity_list():MessageClose(e.self, true, 250, 0, "As if in a waking nightmare, you feel your movements slow and your arms begin to fail you. Each swing of your weapon feels as if it will miss its mark. Even your legs begin to fail you, as you fall deeper into the dreamlike state!"); + e.self:CastSpell(3150, e.self:GetID()); -- Direption of Dreams + + elseif ( e.hp_event == 40 ) then + e.self:Shout("You will not escape my realm so easily!"); + eq.get_entity_list():MessageClose(e.self, true, 250, 0, "The air grows thick with the smell of burning mana. A rumbling sound draws your attention to the massive statues that rest above the ancient monoliths. The statues begin to crumble, as they shift their attention from the heavens to you!"); + + local npcList = eq.get_entity_list():GetNPCList(); + + if ( npcList ) then + + for npc in npcList.entries do + + if ( npc.valid and npc:GetSpawnPointID() ) then + + for _, id in ipairs(GARG_SPAWN_IDS) do + if ( id == npc:GetSpawnPointID() ) then + eq.spawn2(GARG_TYPE, 0, 0, npc:GetX(), npc:GetY(), npc:GetZ(), npc:GetHeading()); + npc:Depop(true); -- depop with timer + break; + end + end + end + end + end + + end +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("boundscheck", 1000); + else + eq.set_timer("checkhp", 3000); + eq.stop_timer("boundscheck"); + end +end + +function event_timer(e) + + if ( e.timer == "checkhp" ) then + + if ( e.self:GetHPRatio() == 100 ) then + eq.stop_timer("checkhp"); + eq.set_next_hp_event(95); + + --[[ + -- gargs have a brief unaggro depop timer and the untargatbles respawn when they despawn so this isn't neccessary + local elist = eq.get_entity_list(); + + for _, id in ipairs(GARG_SPAWN_IDS) do + elist:GetSpawnByID(id):SetTimer(1); + end + eq.depop_all(GARG_TYPE); + ]] + end + + elseif ( e.timer == "boundscheck" ) then + + if ( e.self:GetX() > -1580 or e.self:GetX() < -2090 or e.self:GetY() > 250 or e.self:GetY() < -280 ) then + eq.get_entity_list():MessageClose(e.self, true, 200, 0, "Terris Thule disappears into the ether and reforms at the center of her chamber, cleansed of your magic!"); + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + end + end +end diff --git a/nightmareb/a_grotesque_statue.lua b/nightmareb/a_grotesque_statue.lua new file mode 100644 index 0000000..07092f8 --- /dev/null +++ b/nightmareb/a_grotesque_statue.lua @@ -0,0 +1,42 @@ +local entityIDs = {}; + +function event_spawn(e) + eq.set_timer("depop", 60000); + eq.set_timer("lay", 150); + eq.set_timer("attack", 6000); + + entityIDs[e.self:GetID()] = e.self:GetX(); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if ( e.timer == "depop" ) then + local id = entityIDs[e.self:GetID()]; + if ( id and id == -1954 ) then + eq.get_entity_list():GetSpawnByID(365397):SetTimer(1); + elseif ( id and id == -1748 ) then + eq.get_entity_list():GetSpawnByID(366053):SetTimer(1); + elseif ( id and id == -1736 ) then + eq.get_entity_list():GetSpawnByID(366176):SetTimer(1); + elseif ( id and id == -1958 ) then + eq.get_entity_list():GetSpawnByID(367232):SetTimer(1); + end + entityIDs[e.self:GetID()] = nil; + eq.depop(); + + elseif ( e.timer == "lay" ) then + eq.stop_timer("lay"); + e.self:SetAppearance(3); + + elseif ( e.timer == "attack" ) then + eq.stop_timer("attack"); + e.self:SetAggroRange(500); + end +end diff --git a/northkarana/Bilbis_Briar.lua b/northkarana/Bilbis_Briar.lua new file mode 100644 index 0000000..bcaa3dd --- /dev/null +++ b/northkarana/Bilbis_Briar.lua @@ -0,0 +1,12 @@ + +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks up something from the ground."); + end + end +end \ No newline at end of file diff --git a/northkarana/Brother_Nallin.lua b/northkarana/Brother_Nallin.lua new file mode 100644 index 0000000..0b352d2 --- /dev/null +++ b/northkarana/Brother_Nallin.lua @@ -0,0 +1,40 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("May the Prime Healer watch over your body as you pass through these dangerous lands. I am Brother Nallin of the [Temple of Life]. I was dispatched to aid the guards and residents of the plains. I can assist you if you have need of me to [cure poison] or [cure disease]."); + else + e.self:Say("Your mere presence disgusts me. Please remove yourself from my sight. Until you change yourself and your ways, you are unwelcome in the Temple of Life."); + end + elseif(e.message:findi("cure disease")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Yes, I can cast the disease from your body with the power of the Prime Healer. First, you must make an offering to the Temple of Life. The offering is five gold coins."); + else + e.self:Say("Your mere presence disgusts me. Please remove yourself from my sight. Until you change yourself and your ways, you are unwelcome in the Temple of Life."); + end + elseif(e.message:findi("cure poison")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("If you would like me to cure poison, you must offer me four water flasks. I shall see that the residents of the plains get your donation and we shall try to cast the toxin from your body."); + else + e.self:Say("Your mere presence disgusts me. Please remove yourself from my sight. Until you change yourself and your ways, you are unwelcome in the Temple of Life."); + end + elseif(e.message:findi("temple of life")) then + e.self:Say("Within the walls of Qeynos can be found the home of the Priests of Life, the Temple of Life. It is there that good people pay tribute to the great Prime Healer, Rodcet Nife."); + elseif(e.message:findi("heal")) then + e.self:Say("I am afraid I was not authorized by the High Priests of the Temple of Life to perform such an act, however, I'm certain you can obtain such a service within the walls of Qeynos."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13006, item2 = 13006, item3 = 13006, item4 = 13006})) then + e.self:Say("May Rodcet Nife breathe upon your body and soul and banish the evil from within."); + e.self:CastSpell(203,e.other:GetID()); -- Cure Poison + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {gold = 5}, 0)) then + e.self:Say("May Rodcet Nife breathe upon your body and soul and banish the evil from within."); + e.self:CastSpell(213,e.other:GetID()); -- Cure Disease + else + e.self:Say("Your mere presence disgusts me. Please remove yourself from my sight. Until you change yourself and your ways, you are unwelcome in the Temple of Life."); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/northkarana/Bunu_Stoutheart.lua b/northkarana/Bunu_Stoutheart.lua new file mode 100644 index 0000000..df7f190 --- /dev/null +++ b/northkarana/Bunu_Stoutheart.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! I am Bunu Stoutheart of the [Fangbreakers]. I am a loyal shaman who serves the will of the Tribunal."); + elseif(e.message:findi("fangbreaker")) then + e.self:Say("The Fangbreakers are Norrath's foremost [lycanthrope] hunters. We bring those bloodthirsty beasts to justice."); + elseif(e.message:findi("werewolves") or e.message:findi("lycanthrope") or e.message:findi("werewolf")) then + e.self:Say("Lycanthropes, or werewolves, are victims of a horrible curse that transforms them into vicious murdering beasts. But the fact that they are not in control of themselves does not excuse them from responsibility! They must be punished for the atrocities they commit!"); + elseif(e.message:findi("halas")) then + e.self:Say("I hail from Halas, nestled deep in the Everfrost Peaks, but the Plains of Karana have been my home for many years now."); + end +end diff --git a/northkarana/Capt_Linarius.lua b/northkarana/Capt_Linarius.lua new file mode 100644 index 0000000..fc6400c --- /dev/null +++ b/northkarana/Capt_Linarius.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, traveler! You are free to rest within this keep or within any of my towers along the roads to Qeynos. My guards shall keep watch over you. While you tread upon the roads, be warned that there are [local dangers] as well as rumors of [corrupt guards]."); + elseif(e.message:findi("corrupt guards")) then + e.self:Say("I have heard rumors of dissension among my guards. I will reward any fine resident for the death of these traitorous guards. If you find you must kill one, bring his guard bracelet back to me. I cannot allow such men among my guards. Be sure they are corrupt, or I shall have your head as well."); + elseif(e.message:findi("local dangers")) then + e.self:Say("My guards report daily to me of dangers in the plains. Lately, they've been telling me of rumors of [Lord Grimrot]."); + elseif(e.message:findi("lord grimrot")) then + e.self:Say("My guards have heard rumors of this Lord Grimrot. It is said that he is a powerful shadowknight who is raising an army of undead. Such things should be reported to the Temple of Life. Journey to Qeynos and speak with Camlend Serbold. Tell him of Lord Grimrot."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13303})) then -- Corrupt Guards Bracelet (Guard Bracelet - 13303) + e.self:Say("What a pity. Such a promising soldier. I thank you for ridding us of this corruption and offer you this as a reward. It is nothing more than junk which littered the roadways of the Plains of Karana. I hope you can find a use for it."); + -- confirmed live factions + e.other:Faction(e.self,262,10,0); -- Guards of Qeynos + e.other:Faction(e.self,219,1,0); -- Antonius Bayle + e.other:Faction(e.self,230,-1,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,223,-2,0); -- Circle Of Unseen Hands + e.other:Faction(e.self,291,1,0); -- Merchants of Qeynos + e.other:QuestReward(e.self,math.random(20),0,math.random(10),0,eq.ChooseRandom(5369,9002,4209,5028,5034,2248,5310,9003,7350,5350),2000); -- Bunker Battle Blade , Round Shield, Bronze Bracers, Bronze Battle Axe, Bronze Scimitar, Reinforced Boots, Tentacle Whip, Targ Shield, Fine Steel Dagger, Fine Steel Long Sword + e.other:GiveCash(math.random(20),0,math.random(10),0); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13304})) then -- Loyal Guards Bracelet (Guard Bracelet - 13304) + e.self:Say("You fool! You have killed a fine and outstanding guard. You shall pay dearly for this!"); + eq.attack(e.other:GetName()); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/northkarana/Cordelia_Minster.lua b/northkarana/Cordelia_Minster.lua new file mode 100644 index 0000000..1c14302 --- /dev/null +++ b/northkarana/Cordelia_Minster.lua @@ -0,0 +1,35 @@ +-- Winds of Karana +-- Broken Lute + +function event_waypoint_arrive(e) + if(e.wp == 1 or e.wp == 3 or e.wp == 8) then + e.self:SetRunning(true); + elseif(e.wp == 2 or e.wp == 6 or e.wp == 10) then + e.self:SetRunning(false); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings! I am Cordelia, a traveling piper. I am afraid I cannot play a tune for you, however, as my [flute] is gone."); + elseif(e.message:findi("flute")) then + e.self:Say("I traded my flute to a hermit in the southern plains of Karana. I had a spare flute, but that was taken from me by some bandits. If you could find this hermit and ask him for my flute back, I would be most appreciative."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13310})) then -- A cracked Flute + e.self:Say("Why thank you, kind adventurer! Here is a little something to keep food in your belly. Now back to practice. La la la.."); + e.other:Faction(e.self,284,5); -- Faction: League of Antonican Bards + e.other:Faction(e.self,281,1); -- Faction: Knights of Truth + e.other:Faction(e.self,262,1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,304,-1); -- Faction: Ring of Scale + e.other:Faction(e.self,285,-1); -- Faction: Mayong Mistmoore + e.other:QuestReward(e.self,0,math.random(5),0,0,13119,1000); -- Winds of Karana sheet 2 + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE zone:northkarana ID:13037 -- Cordelia_Minster.pl diff --git a/northkarana/Cory_Bumbleye.lua b/northkarana/Cory_Bumbleye.lua new file mode 100644 index 0000000..afda76d --- /dev/null +++ b/northkarana/Cory_Bumbleye.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey, " .. e.other:GetCleanName() .. "! I am Cory Bumbleye, expert [lycanthrope] tracker. You had better be careful out here. There are [werewolves] in these hills. Heck, if it weren't for us [Fangbreakers], this whole area would be overrun with the flea-bitten beasts."); + elseif(e.message:findi("fangbreaker")) then + e.self:Say("I am a Fangbreaker. We hunt werewolves. We are the best in all of Antonica."); + elseif(e.message:findi("werewolves") or e.message:findi("lycanthrope") or e.message:findi("werewolf")) then + e.self:Say("Peh! Werewolves are just overgrown dogs that need to be put down. And let me tell you this, if a friend of yours ever survives a werewolf attack, I would watch him VERY closely. If he is infected, you will have no choice but to slay him before he eats you."); + elseif(e.message:findi("rivervale")) then + e.self:Say("Rivervale? I am from Rivervale. I joined up with the Fangbreakers when they tracked a [werewolf] into the Misty Thicket."); + end +end diff --git a/northkarana/Ezmirella.lua b/northkarana/Ezmirella.lua new file mode 100644 index 0000000..8296f7a --- /dev/null +++ b/northkarana/Ezmirella.lua @@ -0,0 +1,22 @@ +-- Part of quest for Incandescent Wand +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Welcome. I am Ezmirella."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6338, gold = 50})) then + e.self:Say("I have blessed your silver wand. To complete the enchantment, you must take the wand to Raine Beteria in the Erudin Library. Tip her 50 golden coins, and she will help you."); + e.other:QuestReward(e.self,0,0,0,0,6339,1000); -- Item: Blessed Silver Wand + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Quest by mystic414 / converted to lua by robregen diff --git a/northkarana/Fixxin_Followig.lua b/northkarana/Fixxin_Followig.lua new file mode 100644 index 0000000..13990de --- /dev/null +++ b/northkarana/Fixxin_Followig.lua @@ -0,0 +1,34 @@ +-- Fixxin Followigs Silvery Blades + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! Fixxin is my moniker. Nice ta see ya. I am a member of the [Fangbreakers] and we are hunting [werewolves]. We run into lots of other [creepies] out here as well."); + elseif(e.message:findi("fangbreaker")) then + e.self:Say("Fangbreakers? You have not heard of us? We are the best [werewolf] hunters there are!"); + elseif(e.message:findi("werewolves") or e.message:findi("werewolf")) then + e.self:Say("Those blasted fiends hide among normal folk during the day, but at night their bloodlust is set free on an innocent populace. Some claim there is a cure for their condition but the only one we know of is an [enchanted blade] through the bellies of the beasts."); + elseif(e.message:findi("enchanted blade")) then + e.self:Say("Interested in an enchanted blade? You wouldn't be planning on hunting the moon beasts without a strong, well-oiled party to back you up, now, would you? Well, in any case, I'll gladly lend you a copy of my book, Fixxin Followigs Silvery Blades, if you will fetch me a bar of silver. My supply is running low and our weapons are in need of repair after the deaths of so many lycanthropes."); + elseif(e.message:findi("creepies")) then + e.self:Say("Besides the occasional werewolf, we also tend to run across many griffons and hill giants out this way. Those giants can be bruisers but against a trained team such as we, they don't stand a chance. Especially with my enchantments protecting us."); + elseif(e.message:findi("akanon")) then + e.self:Say("I have never been to Ak'Anon. My parents were traveling mages. I hooked up with Nul and the rest of the crew in Freeport several years back."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 16500})) then + e.self:Emote("thanks " .. e.other:GetCleanName() .. " heartily. 'Here is the book as promised. I wish you luck with your enchanted weapons. May they slay many lycanthropes before they go dull.'"); + e.other:Faction(e.self,345,1); -- karana residents + e.other:Faction(e.self,262,1); -- guards of qeynos + e.other:Faction(e.self,341,1); -- priests of life + e.other:Faction(e.self,280,1); -- knights of thunder + e.other:QuestReward(e.self,0,0,0,0,18178,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- EOF zone: northkarana ID: 13063 NPC: Fixxin_Followig + diff --git a/northkarana/Gorri_Fallstine.lua b/northkarana/Gorri_Fallstine.lua new file mode 100644 index 0000000..18fedea --- /dev/null +++ b/northkarana/Gorri_Fallstine.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I'm afraid I can't speak right now, " .. e.other:GetCleanName() .. ". I'm waiting for someone very important to arrive."); + end +end diff --git a/northkarana/Guard_Shilster.lua b/northkarana/Guard_Shilster.lua new file mode 100644 index 0000000..fd840b2 --- /dev/null +++ b/northkarana/Guard_Shilster.lua @@ -0,0 +1,39 @@ +--############ +--# Quest Name: Black Burrow Stout (Northern Karana) +--################# + +function event_waypoint_arrive(e) + if(e.wp == 2) then + e.self:Emote("stumbles and says, 'Hey fools. Blackburrow stout for sale five gold. Load up now 'cause it's going fast! Just make sure you enjoy it in privacy or you might get arrested, ha haaaa!'"); + elseif(e.wp == 3) then + e.self:Emote("burps loudly and says, 'Your loss. Back to the bridge I go to keep us safe from the enemy or whatever it is I'm supposed to be doing out there.'"); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey, hey! I have some Blackburrow Stout for sale. Just hand over five gold and I'll give you a bottle of it. Don't get caught though because it is considered [contraband]. [Antonius] don't like it being smuggled and all that but what does he know, anyway?"); + elseif(e.message:findi("contraband")) then + e.self:Say("Well it's brewed by gnolls, ya know. Don't know exactly why it's considered contraband but I think it's because they use the money they get from selling the stout to buy arms. I dunno. I buy low and sell high. Blackburrow Stout is good for you though! It does wonders for me! Now buy some already before someone hears us talking."); + elseif(e.message:findi("antonius")) then + e.self:Say("That man is as clueless as a froglok tad swimming in a keg of dwarven ale! He has no idea what is going on around him. He won't be around for much longer I wager."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {gold = 5})) then + e.self:Say("There you go, sport. If you get caught with that, you didn't get it from me!"); + -- Confirmed Live Factions + e.other:Faction(e.self,230,1,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,262,-1,0); -- Guards of Qeynos + e.other:Faction(e.self,273,1,0); -- Kane Bayle + e.other:Faction(e.self,223,1,0); -- Circle Of Unseen Hands + e.other:Faction(e.self,221,1,0); -- Bloodsabers + e.other:QuestReward(e.self,0,0,0,0,13107); -- Item: Black Burrow Stout + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:northkarana ID:13021 -- Guard_Shilster diff --git a/northkarana/Innkeep_James.lua b/northkarana/Innkeep_James.lua new file mode 100644 index 0000000..db2aec1 --- /dev/null +++ b/northkarana/Innkeep_James.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to my shop " .. e.other:GetCleanName() .. ". You'll be happy to hear that I'm fully stocked. It's nice that things are back to normal now that the plague is over."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("Ah, praise Karana! These muffins look good enough to eat, har har har! Here is your payment and you have my deepest gratitude. We have to stick together in these times of turmoil you know."); + e.other:Faction(e.self,291,2,0); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,223,-1,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,219,1,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,229,1,0); -- Faction: Coalition of Tradefolk + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("Ah finally, fresh bread! All right let me get this on the shelves right away. Here is your payment."); + e.other:Faction(e.self,291,4,0); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,223,-1,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,219,1,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,229,1,0); -- Faction: Coalition of Tradefolk + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/northkarana/Mrysila.lua b/northkarana/Mrysila.lua new file mode 100644 index 0000000..b8a6264 --- /dev/null +++ b/northkarana/Mrysila.lua @@ -0,0 +1,44 @@ +--############# +--#Quest Name: Research Aid +--#Author: Blaz +--#Converted to Lua: robregen +--#NPCs Involved: 1 +--#Items Involved: 3 +--################# + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I am Mrysila, custodian of the [Concordance of Research]."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("concordance of research")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The 'Concordance of Research' is an aid to those who follow the path of academia. It, and its sister books, 'Runes and Research,' volumes I and II, help those who are [interested] in researching spells."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("interested")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I have several copies of each book. If you want a copy of 'Runes and Research', volume I or II, bring me a lightstone and I will give you whichever book I have more of at the moment. Bring me a greater lightstone, and I will give you a copy of the 'Concordance of Research."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10300})) then -- Lightstone turn in, reward is either Runes and Research Volume I or II + e.self:Say("A lightstone? Thank you very much. Here is a copy of 'Runes and Research'."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(18175,18176),14500); -- Item(s): Runes and Research Volume I (18175), Runes and Research Volume II (18176) + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10400})) then -- Greater lightstone turn in, reward is Concordance of Research + e.self:Say("A greater lightstone? Thank you very much. Here is a 'Concordance of Research' for you."); + e.other:QuestReward(e.self,0,0,0,0,17504,16000); -- Item: Concordance of Research + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:northkarana ID:13067 -- Mrysila \ No newline at end of file diff --git a/northkarana/Nul_Aleswiller.lua b/northkarana/Nul_Aleswiller.lua new file mode 100644 index 0000000..26dde12 --- /dev/null +++ b/northkarana/Nul_Aleswiller.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! What brings you out this way? I am the leader of the [Fangbreakers]. We are employed by the [people of the Plains of Karana] to keep their homeland free of [lycanthropes]. We are on the trail of several particularly nasty [werewolves]."); + elseif(e.message:findi("fangbreaker")) then + e.self:Say("The Fangbreakers are the greatest [lycanthrope] hunters in all of Norrath! I am the leader and a warrior of great prowess. Fixxin is the spellslinger in our little band. Cory is our tracker and scout. My tall friend Bunu keeps us all healthy as well as lending some added muscle to the group."); + elseif(e.message:findi("werewolves") or e.message:findi("lycanthrope") or e.message:findi("werewolf")) then + e.self:Say("Lycanthropes or werewolves, as the peasants call them, are humans, barbarians or Erudites who are cursed with a dread disease which, under the light of the moon, transforms them into ravenous beasts of great strength and even greater hunger for living flesh. They prowl these hills, so beware!"); + elseif(e.message:findi("karana")) then + e.self:Say("The Plains of Karana are home to many different people of many races, but most of them are humans. They are mainly farmers by trade."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Kaladim, the dwarven stronghold on Faydwer, is where I was born but I have made the [Plains of Karana] my home for many years now."); + end +end diff --git a/northkarana/Romella.lua b/northkarana/Romella.lua new file mode 100644 index 0000000..345b37b --- /dev/null +++ b/northkarana/Romella.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, traveler, and welcome to our camp. Here we can provide you with weapons and arms should you find need of them in the plains. We are a magical people and as such our camp site is a refuge where even your soul can be bound."); + end +end diff --git a/northkarana/Watchman_Dexlin.lua b/northkarana/Watchman_Dexlin.lua new file mode 100644 index 0000000..233c578 --- /dev/null +++ b/northkarana/Watchman_Dexlin.lua @@ -0,0 +1,58 @@ + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("It is about time I met up with someone who I can tolerate. Most of the residents within these plains shun gnomes. I will happy to leave if I could just find those [pesky skeletons]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I do not trust you. I have yet to hear of the great deeds you have done in the name of the Gemchoppers of Ak'Anon."); + else + e.self:Say("You are quite bold to approach a noble servant of Ak'Anon. The knowledge of your allegiance leaves you with no friend in Ak'Anon. Begone, whelp!"); + end + elseif(e.message:findi("pesky skeletons")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I was sent here by the Gemchoppers to seek out a pocketful of skeletons. They are a creation of a one of Ak'Anon's exiled citizens. He practiced the dark circle of magic and came to find the necromancers of Antonica. He created and imported undead brownies to this realm. We must find them to study them. I can't seem to find them!! If only I could find a [brave fighter] to assist me."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I do not trust you. I have yet to hear of the great deeds you have done in the name of the Gemchoppers of Ak'Anon."); + else + e.self:Say("You are quite bold to approach a noble servant of Ak'Anon. The knowledge of your allegiance leaves you with no friend in Ak'Anon. Begone, whelp!"); + end + elseif(e.message:findi("brave fighter")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Very good. Take this tin box. Fill each slot with the remains of the tiny undead, should you find them here. I know not how many there exists, but I am sure that if I return this full tin box shall suffice. Be quick, I have other matters to to tend to. I shall depart when next my sun dial points to eight."); + e.other:SummonCursorItem(17986); -- Item: empty Tin Box + e.other:Faction(e.self,255,-10,0); -- Gem Choppers, probably to prevent people from spawning a hundred + eq.set_timer("spawns",10000); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I do not trust you. I have yet to hear of the great deeds you have done in the name of the Gemchoppers of Ak'Anon."); + else + e.self:Say("You are quite bold to approach a noble servant of Ak'Anon. The knowledge of your allegiance leaves you with no friend in Ak'Anon. Begone, whelp!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12376})) then -- guessing min faction + e.self:Say("Good Work. Unfortunately, I must investigate other matters in the name of Ak'anon. Here. You deliver the tin box to Lord Jenork of the Gem Choppers. He shall reward you. Be safe my friend. I must go now. Farewell."); + e.other:Faction(e.self,255,10,0); -- Gem Choppers + e.other:Faction(e.self,288,2,0); -- Merchants of Ak'Anon + e.other:Faction(e.self,333,2,0); -- King Ak'Anon + e.other:Faction(e.self,238,-2,0); -- Dark Reflection + e.other:Faction(e.self,1604,-1,0); -- Clan Grikbar + e.other:QuestReward(e.self,0,0,0,0,12378,10000); -- Give Undead Brownie Bones for turnin to Narron Jenork (Ak'Anon) + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + if(e.timer == "spawns") then + eq.spawn2(13120,4,0,-1839,829,18,0); -- NPC: a_tiny_skeleton + eq.spawn2(13120,4,0,-2149,10351,18,0); -- NPC: a_tiny_skeleton + eq.spawn2(13120,4,0,-1713,1075,17,0); -- NPC: a_tiny_skeleton + eq.spawn2(13120,4,0,-1690,363,-7,0); -- NPC: a_tiny_skeleton + eq.spawn2(13120,4,0,-2604,222,-44,0); -- NPC: a_tiny_skeleton + eq.stop_timer("spawns"); + end +end diff --git a/northkarana/Xanuusus.lua b/northkarana/Xanuusus.lua new file mode 100644 index 0000000..2f6a423 --- /dev/null +++ b/northkarana/Xanuusus.lua @@ -0,0 +1,27 @@ +-- earthcaller - ranger epic +-- naturewalker's scimitar - druid epic + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, small one! I am Xanuusus of the Stormreapers. You are welcome to rest beneath my mighty branches."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20483,item2 = 20484})) then + e.self:Emote("waves his hands over the gem of corruption and a wave of warm energy passes through the area. With care for such a huge creature, he melds the gem into the sword and seems to glow all over as he channels energy into the weapon. 'Thus is the link of hate broken between Innoruuk and the spirit of earth. Through your will has balance returned. Your deeds, your work for the good of all, will be remembered by anyone who walks beneath the canopy of a forest or roams the plains. Continue your vigil over nature's balance.'"); + e.other:QuestReward(e.self,0,0,0,0,20488,2500000); -- earthcaller + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20699,item2 = 20697,item3 = 20698,item4 = 20440})) then + e.self:Emote("pushes the spirits into the air, making them dance around the scimitar. With a wave of his hand they melt into the blade and hilt of the weapon. 'With this the spirits of the lands are now free from the corruption of the dark gods. Through your strength and dedication was this possible, " .. e.other:GetCleanName() .. ". May the foul poison that once poured into the earth itself never do so again. Take this weapon that you may continue to watch over the balance of nature. Go now, with the gods' blessings.'"); + e.other:QuestReward(e.self,0,0,0,0,20490,2500000); -- naturewalker's scimitar + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13411})) then + e.self:Say("Heh heh! Excellent, small one! My roots have been longing for some fresh jumjum juice! Thank you! Take this for your trouble. Be sure to thank the Tagglefoots for me."); + e.other:QuestReward(e.self,0,1,0,0,eq.ChooseRandom(13977,84004,13083),500); -- carrot, fishing pole, pine needles + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- EOF zone: northkarana ID: 13061 NPC: Xanuusus + diff --git a/northkarana/Zahal_the_Vile.lua b/northkarana/Zahal_the_Vile.lua new file mode 100644 index 0000000..fda605d --- /dev/null +++ b/northkarana/Zahal_the_Vile.lua @@ -0,0 +1,7 @@ +-- Part of quest for Bracer of the Reverent + +function event_death_complete(e) + eq.unique_spawn(13042, 0, 0, -1560, 1450, 50, 125.5); --spawn Regis_the_Reverent +end + +-- Quest by mystic414 \ No newline at end of file diff --git a/northkarana/a_tiny_skeleton.lua b/northkarana/a_tiny_skeleton.lua new file mode 100644 index 0000000..eabba08 --- /dev/null +++ b/northkarana/a_tiny_skeleton.lua @@ -0,0 +1,9 @@ +function event_spawn(e) + eq.set_timer("depop",3600000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end \ No newline at end of file diff --git a/northkarana/withered_treant.lua b/northkarana/withered_treant.lua new file mode 100644 index 0000000..8612cd0 --- /dev/null +++ b/northkarana/withered_treant.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Yes. My bark is blackened and cracked by sickness. If only I were the only one to be afflicted this way. Throughout the lands this is happening. Agents of some dark god are twisting the lands and their creatures."); + elseif(e.message:findi("dark god")) then + e.self:Say("Not long ago, a human passed through this area. Around him swarmed some aura of sickness. Few could see it but with my age I could recognize a bringer of the plague. He seeded the area with pestilence before I could lift a branch to stop him. I believe it was he, and others in other lands, who has helped bring about this sickness."); + elseif(e.message:findi("sickness")) then + e.self:Say("I have kept in touch with friends of Tunare and Karana. It seems something is building amid the darkness. Some pact between gods to corrupt. All I know for sure is that you can stop the sickness in this land. I can feel it, vaguely. Somewhere, in the mountain and lake areas, and far north amid the cold mountains is where the land hurts most. Go, find the sources of corruption, and bring them back to me. Three should be their number."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20690,item2 = 20689,item3 = 20688})) then + e.self:Say("My heart cleansed of Corruption can interrupt the Flow of the corruption between the priest and his dark god, force it upon him quickly, I can sense him, he is in the Karana's somewhere."); + e.other:QuestReward(e.self,0,0,0,0,20695); -- Item: Warm Pulsing Treant Heart + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/nro/Dorn_B-Dynn.lua b/nro/Dorn_B-Dynn.lua new file mode 100644 index 0000000..29248e6 --- /dev/null +++ b/nro/Dorn_B-Dynn.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("attend to business")) then + e.self:Say("So, business is your mission! I have never met you. Who sent you?"); + elseif(e.message:findi("shelter")) then + e.self:Say("Then look elsewhere! You are lucky your head still sits upon your shoulders. The dervish cutthroats are not fond of strangers. Now, leave!"); + elseif(e.message:findi("Zimbittle sent me")) then + e.self:Say("I do not know if I could trust you. You certainly do not look as though you are from Grobb, although your stench does hint of that place. If you are truly sent by Zimbittle, what is the passwrod?"); + elseif(e.message:findi("Mukk")) then + if(e.other:GetFaction(e.self) <= 5) then + e.self:Say("So you were sent by Zimbittle. Take this note Kraagia of Da Bashers in Grobb. Do not lose the note. If it were to fall into the wrong hands of [Goonda], this whole plan could be disrupted. Now, leave, I can no longer tolerate you foul stench!"); + e.other:SummonCursorItem(18886); -- Item: A Sealed Letter + else + e.self:Say("Your head will make a fine trophy in the halls of the Indigo Brotherhood."); + end + elseif(e.message:findi("Goonda")) then + e.self:Say("In the western planes of Karana, you will find Goonda. He seems to be the Ogre shaman in charge out there."); + end +end diff --git a/nro/pirate_runners_skiff.lua b/nro/pirate_runners_skiff.lua new file mode 100644 index 0000000..0c7577d --- /dev/null +++ b/nro/pirate_runners_skiff.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Shuttle spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + if(e.wp == 6) then + eq.debug("Shuttle to iceclad (3) has reached the docks. Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + elseif(e.wp == 13) then + eq.debug("Shuttle to iceclad (3) has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(110,-23000,3556,-40,0); -- Zone: erudsxing + end, + function(ent) + if(ent:GetBoatID() == 843) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/nro/player.lua b/nro/player.lua new file mode 100644 index 0000000..f8390a8 --- /dev/null +++ b/nro/player.lua @@ -0,0 +1,12 @@ +function event_board_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug(" At: " .. hour .. ":" .. minute .. " BoatID: " .. e.boat_id .. " was boarded. Its name is: " .. e.self:GetBoatName() .. ".", 1); +end + +function event_leave_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + eq.debug(" At: " .. hour .. ":00 I left BoatID: " .. e.boat_id .. ".", 1); +end \ No newline at end of file diff --git a/nurga/a_sleeping_ogre.lua b/nurga/a_sleeping_ogre.lua new file mode 100644 index 0000000..82ea9d9 --- /dev/null +++ b/nurga/a_sleeping_ogre.lua @@ -0,0 +1,26 @@ +-- Monk Epic 1.0 +function event_spawn(e) + eq.set_timer("appearance", 1000); +end + +function event_timer(e) + eq.stop_timer("appearance"); + e.self:SetAppearance(3); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("snorts a bit and continues sleeping."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1685},0)) then --Breath of Gwan + e.self:SetAppearance(0); + e.self:Say("Your path of wanton destruction ends here. Gwan and Eejag were impatient and hot-headed. You will not defeat me, for I have the patience and perseverance of stone, unlike the children you have beaten before me. Are you sure you want to challenge me?"); + eq.spawn2(107000,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); --Trunt + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/oasis/Barrel_Barge.lua b/oasis/Barrel_Barge.lua new file mode 100644 index 0000000..ae2c405 --- /dev/null +++ b/oasis/Barrel_Barge.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Shuttle spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + if(e.wp == 5) then + eq.debug("Shuttle to timorous (1) has reached the docks. Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + elseif(e.wp == 11) then + eq.debug("Shuttle to timorous (1) has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(96,5359,7581,-2,0); + end, + function(ent) + if(ent:GetBoatID() == 840) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/oasis/Muckskimmer.lua b/oasis/Muckskimmer.lua new file mode 100644 index 0000000..329b556 --- /dev/null +++ b/oasis/Muckskimmer.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Shuttle spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + if(e.wp == 5) then + eq.debug("Shuttle to timorous (1) has reached the docks. Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + elseif(e.wp == 11) then + eq.debug("Shuttle to timorous (1) has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(96,5359,7581,-2,0); + end, + function(ent) + if(ent:GetBoatID() == 841) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/oasis/Synthan.lua b/oasis/Synthan.lua new file mode 100644 index 0000000..ea01a6c --- /dev/null +++ b/oasis/Synthan.lua @@ -0,0 +1,15 @@ +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10300})) then -- Lightstone turn in, reward is either Runes and Research Volume I or II + e.self:Say("A lightstone? Thank you very much. Here is a copy of 'Runes and Research'."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(18175,18176),14500); -- Item(s): Runes and Research Volume I (18175), Runes and Research Volume II (18176) + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10400})) then -- Greater lightstone turn in, reward is Concordance of Research + e.self:Say("A greater lightstone? Thank you very much. Here is a 'Concordance of Research' for you."); + e.other:QuestReward(e.self,0,0,0,0,17504,16000); -- Item: Concordance of Research + end + item_lib.return_items(e.self, e.other, e.trade) +end + + +--this npc had no dialogue until 2015ish, but the quest was always there \ No newline at end of file diff --git a/oasis/Taldrik_Stumpystout.lua b/oasis/Taldrik_Stumpystout.lua new file mode 100644 index 0000000..6de3980 --- /dev/null +++ b/oasis/Taldrik_Stumpystout.lua @@ -0,0 +1,26 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Move along dere yer blocking me view lad. I await me friend that has gone off to fetch me some water. It sure is hot out here."); + elseif(e.message:findi("recipe")) then + e.self:Say("Well ya see lad I had an ancient recipe passed down to me that told one how to create the holiest of ale. Its far gone now, however I recently had a vision of the ingredients and where they might be found. Do you wish to seek out the components for me?"); + elseif(e.message:findi("components")) then + e.self:Say("Excellent lad! Let meh see here if I can remember correctly. I know that you need to Preserved hops and a Battleworn canteen. I know that these were carried by my good friend Torklar back when I was still a young lad in training like you. However one day he adventured to an undead estate with a friend of his that was a very skilled brewer. I believe they went there in search of some ingredients they needed for a recipe however neither of them ever returned. But before you go any further I must tell ye that you will need a specific kind of cask to combine these items in."); + elseif(e.message:findi("cask")) then + e.self:Say("Why a holy cask is what ye will need of course! Find the ingredients that I asked you for before and combine them within this holy cask along with barley from the forests of Kithicor and water summoned from none other than yourself. After doing this if the gods have smiled upon you a thick and hearty keg of Brells Blessed Stout will be created. Give this to me along with a Rat sandwich to enjoy while I sip the finest of ales as well as your Initiate symbol that you carry now and I will be sure to reward you."); + e.other:SummonCursorItem(17070); -- Item: Holy Cask + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13943, item2 = 13036, item3 = 13035})) then + e.self:Say("Ah ha! So ye are Bronlor's chosen aye? Well den these fine brews can only mean one thing! Yep its dat youre a drinker like meh! Arg, if I only had me recipe."); + e.other:QuestReward(e.self,0,0,0,0,0,100); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 2440, item2 = 13474, item3 = 1430})) then + e.self:Say("Ye are a true Priest of Brell Serillis! And ye make me both proud and happy to have met ye so that I could enjoy this sweet drink once again! Please take this Initiate Symbol of Brell Serillis which will I have crafted to enable you to turn water into this blessed ale for you have truly earned it!"); + e.other:QuestReward(e.self,0,0,0,0,1431,500); -- Item: Disciple Symbol of Brell Serilis + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/oasis/player.lua b/oasis/player.lua new file mode 100644 index 0000000..f8390a8 --- /dev/null +++ b/oasis/player.lua @@ -0,0 +1,12 @@ +function event_board_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug(" At: " .. hour .. ":" .. minute .. " BoatID: " .. e.boat_id .. " was boarded. Its name is: " .. e.self:GetBoatName() .. ".", 1); +end + +function event_leave_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + eq.debug(" At: " .. hour .. ":00 I left BoatID: " .. e.boat_id .. ".", 1); +end \ No newline at end of file diff --git a/oggok/#Bordag.lua b/oggok/#Bordag.lua new file mode 100644 index 0000000..913e375 --- /dev/null +++ b/oggok/#Bordag.lua @@ -0,0 +1,15 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18846})) then --A tattered note + e.self:Say("You strong and mean like bear! You wear bear fur so all know you beastlord o' da Feerrott! Talk to Grapok and get to work!"); + e.other:Faction(e.self,394,15); -- Shaman of War + e.other:QuestReward(e.self,0,0,0,0,13575,20); --Bear Fur Tunic + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/oggok/Ambassador_K-Ryn.lua b/oggok/Ambassador_K-Ryn.lua new file mode 100644 index 0000000..4912fc9 --- /dev/null +++ b/oggok/Ambassador_K-Ryn.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Get your wretched hide away from me! Who knows what vile stench you have been rolling around in?! Do not speak with me unless you have some glimmer of intelligence!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18842})) then -- Sealed Letter (Letter To Krynn) + e.self:Say("Another young warrior. I pray you shall not meet the fate of the last twelve. Here then. Take this report to Mistress Seloxia at once. And stay clear of the Froglok lair called Gukk."); + e.other:QuestReward(e.self,0,0,0,0,18843,250); -- Sealed Letter (Letter To Seloxia) + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:oggok ID:49092 -- Ambassador_K`Ryn +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/oggok/Bonlarg.lua b/oggok/Bonlarg.lua new file mode 100644 index 0000000..6688225 --- /dev/null +++ b/oggok/Bonlarg.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Shadowknight master me be!! " .. e.other:GetCleanName() .. " prove to me that " .. e.other:GetCleanName() .. " be worthy to be one with Greenblood and me give " .. e.other:GetCleanName() .. " black shadow tunic. You [want black shadow tunic]?"); + elseif(e.message:findi("want black shadow tunic")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("You hunt lizard scouts. Them sometimes carry special fife to talk to other lizards far away. Greenbloods stop them. Bring Bonlarg three lizard scout fifes and green stained skin tunic you gots when you first talk to Soonog. Give all to Bonlarg and get tunic."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Help Greenbloods you will. Give lizard tails to Grevak. Den maybe we trust."); + else + e.self:Say("Foe of Greenbloods you are. In two I will rip you. Best if run."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Fool! Bonlarg say THREE lizardman scout fifes and green stained skin tunic."; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12198, item2 = 12198, item3 = 12198, item4 = 13527},1,text)) then + e.self:Say("Took you long time! It easy task, but me guess you still earn black shadow tunic. You wear to show all that you young shadowknight. It help you be smarter likes Bonlarg. It only for young Greenblood shadowknight. Maybe later green shadow tunic you earn or maybe dead you be"); + e.other:Faction(e.self,261, 5); -- Faction: Green Blood Knights + e.other:Faction(e.self,228, 2); -- Faction: Clurg + e.other:Faction(e.self,312, -1); -- Faction: Storm Guard + e.other:Faction(e.self,308, -1); -- Faction: Shadowknights of Night Keep + e.other:QuestReward(e.self,0,0,0,0,12199,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/oggok/Bouncer_Bak.lua b/oggok/Bouncer_Bak.lua new file mode 100644 index 0000000..ddc71cb --- /dev/null +++ b/oggok/Bouncer_Bak.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("healer")) then + e.self:Say("You have a ooch? No show me. Make me sick. Go see Greenblood Shaman in caves. They fix you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Me warrior! When me young me go to Crakneks and train. Crakneks way back. Through caves."); + elseif(e.message:findi("supplies")) then + e.self:Say("Need stuff? Go find Erung and Cronga in caves or Angrog in stone box wit holes."); + elseif(e.message:findi("bank")) then + e.self:Say("Go by Crakneks. You find Ungral. He keep stuff. Me think he give it back."); + elseif(e.message:findi("armor")) then + e.self:Say("Armer? Hmmm... Me know! Go to way back of Oggok. In cave you find Metl Armer and Lether Armer. Huh! Them dumb. Them no know armer start wit 'R'. Huhu! Dumb."); + elseif(e.message:findi("bouncers")) then + e.self:Say("Me Bouncer! Me best smasher. Bouncers smash for Oggok. Clurg make us and he our boss."); + elseif(e.message:findi("craknek")) then + e.self:Say("Crakneks warriors! They be far back. Through last caves. They smash and bash. They no like Greenbloods. Bouncers keep thems from bashing."); + elseif(e.message:findi("leader") or e.message:findi("king")) then + e.self:Say("Zulort strongest. Him big shaman."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Huh? You sleep in cave. Rest there."); + elseif(e.message:findi("weapon")) then + e.self:Say("You get wepuns from Cikoona. She have shop not cave. In cave you find smash wepuns. Rora have smashies."); + elseif(e.message:findi("chef") or e.message:findi("dooga")) then + e.self:Say("Chef Dooga good cooker. She make good HEHE meat. She give coin fer meat to cook with. She cook at Clurg's by Crakneks."); + end +end \ No newline at end of file diff --git a/oggok/Bouncer_Druk.lua b/oggok/Bouncer_Druk.lua new file mode 100644 index 0000000..ddc71cb --- /dev/null +++ b/oggok/Bouncer_Druk.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("healer")) then + e.self:Say("You have a ooch? No show me. Make me sick. Go see Greenblood Shaman in caves. They fix you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Me warrior! When me young me go to Crakneks and train. Crakneks way back. Through caves."); + elseif(e.message:findi("supplies")) then + e.self:Say("Need stuff? Go find Erung and Cronga in caves or Angrog in stone box wit holes."); + elseif(e.message:findi("bank")) then + e.self:Say("Go by Crakneks. You find Ungral. He keep stuff. Me think he give it back."); + elseif(e.message:findi("armor")) then + e.self:Say("Armer? Hmmm... Me know! Go to way back of Oggok. In cave you find Metl Armer and Lether Armer. Huh! Them dumb. Them no know armer start wit 'R'. Huhu! Dumb."); + elseif(e.message:findi("bouncers")) then + e.self:Say("Me Bouncer! Me best smasher. Bouncers smash for Oggok. Clurg make us and he our boss."); + elseif(e.message:findi("craknek")) then + e.self:Say("Crakneks warriors! They be far back. Through last caves. They smash and bash. They no like Greenbloods. Bouncers keep thems from bashing."); + elseif(e.message:findi("leader") or e.message:findi("king")) then + e.self:Say("Zulort strongest. Him big shaman."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Huh? You sleep in cave. Rest there."); + elseif(e.message:findi("weapon")) then + e.self:Say("You get wepuns from Cikoona. She have shop not cave. In cave you find smash wepuns. Rora have smashies."); + elseif(e.message:findi("chef") or e.message:findi("dooga")) then + e.self:Say("Chef Dooga good cooker. She make good HEHE meat. She give coin fer meat to cook with. She cook at Clurg's by Crakneks."); + end +end \ No newline at end of file diff --git a/oggok/Bouncer_Gronk.lua b/oggok/Bouncer_Gronk.lua new file mode 100644 index 0000000..ddc71cb --- /dev/null +++ b/oggok/Bouncer_Gronk.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("healer")) then + e.self:Say("You have a ooch? No show me. Make me sick. Go see Greenblood Shaman in caves. They fix you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Me warrior! When me young me go to Crakneks and train. Crakneks way back. Through caves."); + elseif(e.message:findi("supplies")) then + e.self:Say("Need stuff? Go find Erung and Cronga in caves or Angrog in stone box wit holes."); + elseif(e.message:findi("bank")) then + e.self:Say("Go by Crakneks. You find Ungral. He keep stuff. Me think he give it back."); + elseif(e.message:findi("armor")) then + e.self:Say("Armer? Hmmm... Me know! Go to way back of Oggok. In cave you find Metl Armer and Lether Armer. Huh! Them dumb. Them no know armer start wit 'R'. Huhu! Dumb."); + elseif(e.message:findi("bouncers")) then + e.self:Say("Me Bouncer! Me best smasher. Bouncers smash for Oggok. Clurg make us and he our boss."); + elseif(e.message:findi("craknek")) then + e.self:Say("Crakneks warriors! They be far back. Through last caves. They smash and bash. They no like Greenbloods. Bouncers keep thems from bashing."); + elseif(e.message:findi("leader") or e.message:findi("king")) then + e.self:Say("Zulort strongest. Him big shaman."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Huh? You sleep in cave. Rest there."); + elseif(e.message:findi("weapon")) then + e.self:Say("You get wepuns from Cikoona. She have shop not cave. In cave you find smash wepuns. Rora have smashies."); + elseif(e.message:findi("chef") or e.message:findi("dooga")) then + e.self:Say("Chef Dooga good cooker. She make good HEHE meat. She give coin fer meat to cook with. She cook at Clurg's by Crakneks."); + end +end \ No newline at end of file diff --git a/oggok/Bouncer_Haraan.lua b/oggok/Bouncer_Haraan.lua new file mode 100644 index 0000000..ddc71cb --- /dev/null +++ b/oggok/Bouncer_Haraan.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("healer")) then + e.self:Say("You have a ooch? No show me. Make me sick. Go see Greenblood Shaman in caves. They fix you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Me warrior! When me young me go to Crakneks and train. Crakneks way back. Through caves."); + elseif(e.message:findi("supplies")) then + e.self:Say("Need stuff? Go find Erung and Cronga in caves or Angrog in stone box wit holes."); + elseif(e.message:findi("bank")) then + e.self:Say("Go by Crakneks. You find Ungral. He keep stuff. Me think he give it back."); + elseif(e.message:findi("armor")) then + e.self:Say("Armer? Hmmm... Me know! Go to way back of Oggok. In cave you find Metl Armer and Lether Armer. Huh! Them dumb. Them no know armer start wit 'R'. Huhu! Dumb."); + elseif(e.message:findi("bouncers")) then + e.self:Say("Me Bouncer! Me best smasher. Bouncers smash for Oggok. Clurg make us and he our boss."); + elseif(e.message:findi("craknek")) then + e.self:Say("Crakneks warriors! They be far back. Through last caves. They smash and bash. They no like Greenbloods. Bouncers keep thems from bashing."); + elseif(e.message:findi("leader") or e.message:findi("king")) then + e.self:Say("Zulort strongest. Him big shaman."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Huh? You sleep in cave. Rest there."); + elseif(e.message:findi("weapon")) then + e.self:Say("You get wepuns from Cikoona. She have shop not cave. In cave you find smash wepuns. Rora have smashies."); + elseif(e.message:findi("chef") or e.message:findi("dooga")) then + e.self:Say("Chef Dooga good cooker. She make good HEHE meat. She give coin fer meat to cook with. She cook at Clurg's by Crakneks."); + end +end \ No newline at end of file diff --git a/oggok/Bouncer_Krik.lua b/oggok/Bouncer_Krik.lua new file mode 100644 index 0000000..ddc71cb --- /dev/null +++ b/oggok/Bouncer_Krik.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("healer")) then + e.self:Say("You have a ooch? No show me. Make me sick. Go see Greenblood Shaman in caves. They fix you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Me warrior! When me young me go to Crakneks and train. Crakneks way back. Through caves."); + elseif(e.message:findi("supplies")) then + e.self:Say("Need stuff? Go find Erung and Cronga in caves or Angrog in stone box wit holes."); + elseif(e.message:findi("bank")) then + e.self:Say("Go by Crakneks. You find Ungral. He keep stuff. Me think he give it back."); + elseif(e.message:findi("armor")) then + e.self:Say("Armer? Hmmm... Me know! Go to way back of Oggok. In cave you find Metl Armer and Lether Armer. Huh! Them dumb. Them no know armer start wit 'R'. Huhu! Dumb."); + elseif(e.message:findi("bouncers")) then + e.self:Say("Me Bouncer! Me best smasher. Bouncers smash for Oggok. Clurg make us and he our boss."); + elseif(e.message:findi("craknek")) then + e.self:Say("Crakneks warriors! They be far back. Through last caves. They smash and bash. They no like Greenbloods. Bouncers keep thems from bashing."); + elseif(e.message:findi("leader") or e.message:findi("king")) then + e.self:Say("Zulort strongest. Him big shaman."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Huh? You sleep in cave. Rest there."); + elseif(e.message:findi("weapon")) then + e.self:Say("You get wepuns from Cikoona. She have shop not cave. In cave you find smash wepuns. Rora have smashies."); + elseif(e.message:findi("chef") or e.message:findi("dooga")) then + e.self:Say("Chef Dooga good cooker. She make good HEHE meat. She give coin fer meat to cook with. She cook at Clurg's by Crakneks."); + end +end \ No newline at end of file diff --git a/oggok/Bouncer_Mrang.lua b/oggok/Bouncer_Mrang.lua new file mode 100644 index 0000000..ddc71cb --- /dev/null +++ b/oggok/Bouncer_Mrang.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("healer")) then + e.self:Say("You have a ooch? No show me. Make me sick. Go see Greenblood Shaman in caves. They fix you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Me warrior! When me young me go to Crakneks and train. Crakneks way back. Through caves."); + elseif(e.message:findi("supplies")) then + e.self:Say("Need stuff? Go find Erung and Cronga in caves or Angrog in stone box wit holes."); + elseif(e.message:findi("bank")) then + e.self:Say("Go by Crakneks. You find Ungral. He keep stuff. Me think he give it back."); + elseif(e.message:findi("armor")) then + e.self:Say("Armer? Hmmm... Me know! Go to way back of Oggok. In cave you find Metl Armer and Lether Armer. Huh! Them dumb. Them no know armer start wit 'R'. Huhu! Dumb."); + elseif(e.message:findi("bouncers")) then + e.self:Say("Me Bouncer! Me best smasher. Bouncers smash for Oggok. Clurg make us and he our boss."); + elseif(e.message:findi("craknek")) then + e.self:Say("Crakneks warriors! They be far back. Through last caves. They smash and bash. They no like Greenbloods. Bouncers keep thems from bashing."); + elseif(e.message:findi("leader") or e.message:findi("king")) then + e.self:Say("Zulort strongest. Him big shaman."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Huh? You sleep in cave. Rest there."); + elseif(e.message:findi("weapon")) then + e.self:Say("You get wepuns from Cikoona. She have shop not cave. In cave you find smash wepuns. Rora have smashies."); + elseif(e.message:findi("chef") or e.message:findi("dooga")) then + e.self:Say("Chef Dooga good cooker. She make good HEHE meat. She give coin fer meat to cook with. She cook at Clurg's by Crakneks."); + end +end \ No newline at end of file diff --git a/oggok/Bouncer_Praag.lua b/oggok/Bouncer_Praag.lua new file mode 100644 index 0000000..ddc71cb --- /dev/null +++ b/oggok/Bouncer_Praag.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("healer")) then + e.self:Say("You have a ooch? No show me. Make me sick. Go see Greenblood Shaman in caves. They fix you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Me warrior! When me young me go to Crakneks and train. Crakneks way back. Through caves."); + elseif(e.message:findi("supplies")) then + e.self:Say("Need stuff? Go find Erung and Cronga in caves or Angrog in stone box wit holes."); + elseif(e.message:findi("bank")) then + e.self:Say("Go by Crakneks. You find Ungral. He keep stuff. Me think he give it back."); + elseif(e.message:findi("armor")) then + e.self:Say("Armer? Hmmm... Me know! Go to way back of Oggok. In cave you find Metl Armer and Lether Armer. Huh! Them dumb. Them no know armer start wit 'R'. Huhu! Dumb."); + elseif(e.message:findi("bouncers")) then + e.self:Say("Me Bouncer! Me best smasher. Bouncers smash for Oggok. Clurg make us and he our boss."); + elseif(e.message:findi("craknek")) then + e.self:Say("Crakneks warriors! They be far back. Through last caves. They smash and bash. They no like Greenbloods. Bouncers keep thems from bashing."); + elseif(e.message:findi("leader") or e.message:findi("king")) then + e.self:Say("Zulort strongest. Him big shaman."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Huh? You sleep in cave. Rest there."); + elseif(e.message:findi("weapon")) then + e.self:Say("You get wepuns from Cikoona. She have shop not cave. In cave you find smash wepuns. Rora have smashies."); + elseif(e.message:findi("chef") or e.message:findi("dooga")) then + e.self:Say("Chef Dooga good cooker. She make good HEHE meat. She give coin fer meat to cook with. She cook at Clurg's by Crakneks."); + end +end \ No newline at end of file diff --git a/oggok/Bouncer_Raan.lua b/oggok/Bouncer_Raan.lua new file mode 100644 index 0000000..ddc71cb --- /dev/null +++ b/oggok/Bouncer_Raan.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("healer")) then + e.self:Say("You have a ooch? No show me. Make me sick. Go see Greenblood Shaman in caves. They fix you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Me warrior! When me young me go to Crakneks and train. Crakneks way back. Through caves."); + elseif(e.message:findi("supplies")) then + e.self:Say("Need stuff? Go find Erung and Cronga in caves or Angrog in stone box wit holes."); + elseif(e.message:findi("bank")) then + e.self:Say("Go by Crakneks. You find Ungral. He keep stuff. Me think he give it back."); + elseif(e.message:findi("armor")) then + e.self:Say("Armer? Hmmm... Me know! Go to way back of Oggok. In cave you find Metl Armer and Lether Armer. Huh! Them dumb. Them no know armer start wit 'R'. Huhu! Dumb."); + elseif(e.message:findi("bouncers")) then + e.self:Say("Me Bouncer! Me best smasher. Bouncers smash for Oggok. Clurg make us and he our boss."); + elseif(e.message:findi("craknek")) then + e.self:Say("Crakneks warriors! They be far back. Through last caves. They smash and bash. They no like Greenbloods. Bouncers keep thems from bashing."); + elseif(e.message:findi("leader") or e.message:findi("king")) then + e.self:Say("Zulort strongest. Him big shaman."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Huh? You sleep in cave. Rest there."); + elseif(e.message:findi("weapon")) then + e.self:Say("You get wepuns from Cikoona. She have shop not cave. In cave you find smash wepuns. Rora have smashies."); + elseif(e.message:findi("chef") or e.message:findi("dooga")) then + e.self:Say("Chef Dooga good cooker. She make good HEHE meat. She give coin fer meat to cook with. She cook at Clurg's by Crakneks."); + end +end \ No newline at end of file diff --git a/oggok/Bouncer_Scaar.lua b/oggok/Bouncer_Scaar.lua new file mode 100644 index 0000000..ddc71cb --- /dev/null +++ b/oggok/Bouncer_Scaar.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("healer")) then + e.self:Say("You have a ooch? No show me. Make me sick. Go see Greenblood Shaman in caves. They fix you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Me warrior! When me young me go to Crakneks and train. Crakneks way back. Through caves."); + elseif(e.message:findi("supplies")) then + e.self:Say("Need stuff? Go find Erung and Cronga in caves or Angrog in stone box wit holes."); + elseif(e.message:findi("bank")) then + e.self:Say("Go by Crakneks. You find Ungral. He keep stuff. Me think he give it back."); + elseif(e.message:findi("armor")) then + e.self:Say("Armer? Hmmm... Me know! Go to way back of Oggok. In cave you find Metl Armer and Lether Armer. Huh! Them dumb. Them no know armer start wit 'R'. Huhu! Dumb."); + elseif(e.message:findi("bouncers")) then + e.self:Say("Me Bouncer! Me best smasher. Bouncers smash for Oggok. Clurg make us and he our boss."); + elseif(e.message:findi("craknek")) then + e.self:Say("Crakneks warriors! They be far back. Through last caves. They smash and bash. They no like Greenbloods. Bouncers keep thems from bashing."); + elseif(e.message:findi("leader") or e.message:findi("king")) then + e.self:Say("Zulort strongest. Him big shaman."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Huh? You sleep in cave. Rest there."); + elseif(e.message:findi("weapon")) then + e.self:Say("You get wepuns from Cikoona. She have shop not cave. In cave you find smash wepuns. Rora have smashies."); + elseif(e.message:findi("chef") or e.message:findi("dooga")) then + e.self:Say("Chef Dooga good cooker. She make good HEHE meat. She give coin fer meat to cook with. She cook at Clurg's by Crakneks."); + end +end \ No newline at end of file diff --git a/oggok/Bouncer_Skon.lua b/oggok/Bouncer_Skon.lua new file mode 100644 index 0000000..ddc71cb --- /dev/null +++ b/oggok/Bouncer_Skon.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("healer")) then + e.self:Say("You have a ooch? No show me. Make me sick. Go see Greenblood Shaman in caves. They fix you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Me warrior! When me young me go to Crakneks and train. Crakneks way back. Through caves."); + elseif(e.message:findi("supplies")) then + e.self:Say("Need stuff? Go find Erung and Cronga in caves or Angrog in stone box wit holes."); + elseif(e.message:findi("bank")) then + e.self:Say("Go by Crakneks. You find Ungral. He keep stuff. Me think he give it back."); + elseif(e.message:findi("armor")) then + e.self:Say("Armer? Hmmm... Me know! Go to way back of Oggok. In cave you find Metl Armer and Lether Armer. Huh! Them dumb. Them no know armer start wit 'R'. Huhu! Dumb."); + elseif(e.message:findi("bouncers")) then + e.self:Say("Me Bouncer! Me best smasher. Bouncers smash for Oggok. Clurg make us and he our boss."); + elseif(e.message:findi("craknek")) then + e.self:Say("Crakneks warriors! They be far back. Through last caves. They smash and bash. They no like Greenbloods. Bouncers keep thems from bashing."); + elseif(e.message:findi("leader") or e.message:findi("king")) then + e.self:Say("Zulort strongest. Him big shaman."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Huh? You sleep in cave. Rest there."); + elseif(e.message:findi("weapon")) then + e.self:Say("You get wepuns from Cikoona. She have shop not cave. In cave you find smash wepuns. Rora have smashies."); + elseif(e.message:findi("chef") or e.message:findi("dooga")) then + e.self:Say("Chef Dooga good cooker. She make good HEHE meat. She give coin fer meat to cook with. She cook at Clurg's by Crakneks."); + end +end \ No newline at end of file diff --git a/oggok/Bouncer_Skuk.lua b/oggok/Bouncer_Skuk.lua new file mode 100644 index 0000000..ddc71cb --- /dev/null +++ b/oggok/Bouncer_Skuk.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("healer")) then + e.self:Say("You have a ooch? No show me. Make me sick. Go see Greenblood Shaman in caves. They fix you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Me warrior! When me young me go to Crakneks and train. Crakneks way back. Through caves."); + elseif(e.message:findi("supplies")) then + e.self:Say("Need stuff? Go find Erung and Cronga in caves or Angrog in stone box wit holes."); + elseif(e.message:findi("bank")) then + e.self:Say("Go by Crakneks. You find Ungral. He keep stuff. Me think he give it back."); + elseif(e.message:findi("armor")) then + e.self:Say("Armer? Hmmm... Me know! Go to way back of Oggok. In cave you find Metl Armer and Lether Armer. Huh! Them dumb. Them no know armer start wit 'R'. Huhu! Dumb."); + elseif(e.message:findi("bouncers")) then + e.self:Say("Me Bouncer! Me best smasher. Bouncers smash for Oggok. Clurg make us and he our boss."); + elseif(e.message:findi("craknek")) then + e.self:Say("Crakneks warriors! They be far back. Through last caves. They smash and bash. They no like Greenbloods. Bouncers keep thems from bashing."); + elseif(e.message:findi("leader") or e.message:findi("king")) then + e.self:Say("Zulort strongest. Him big shaman."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Huh? You sleep in cave. Rest there."); + elseif(e.message:findi("weapon")) then + e.self:Say("You get wepuns from Cikoona. She have shop not cave. In cave you find smash wepuns. Rora have smashies."); + elseif(e.message:findi("chef") or e.message:findi("dooga")) then + e.self:Say("Chef Dooga good cooker. She make good HEHE meat. She give coin fer meat to cook with. She cook at Clurg's by Crakneks."); + end +end \ No newline at end of file diff --git a/oggok/Bouncer_Tazak.lua b/oggok/Bouncer_Tazak.lua new file mode 100644 index 0000000..ddc71cb --- /dev/null +++ b/oggok/Bouncer_Tazak.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("healer")) then + e.self:Say("You have a ooch? No show me. Make me sick. Go see Greenblood Shaman in caves. They fix you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Me warrior! When me young me go to Crakneks and train. Crakneks way back. Through caves."); + elseif(e.message:findi("supplies")) then + e.self:Say("Need stuff? Go find Erung and Cronga in caves or Angrog in stone box wit holes."); + elseif(e.message:findi("bank")) then + e.self:Say("Go by Crakneks. You find Ungral. He keep stuff. Me think he give it back."); + elseif(e.message:findi("armor")) then + e.self:Say("Armer? Hmmm... Me know! Go to way back of Oggok. In cave you find Metl Armer and Lether Armer. Huh! Them dumb. Them no know armer start wit 'R'. Huhu! Dumb."); + elseif(e.message:findi("bouncers")) then + e.self:Say("Me Bouncer! Me best smasher. Bouncers smash for Oggok. Clurg make us and he our boss."); + elseif(e.message:findi("craknek")) then + e.self:Say("Crakneks warriors! They be far back. Through last caves. They smash and bash. They no like Greenbloods. Bouncers keep thems from bashing."); + elseif(e.message:findi("leader") or e.message:findi("king")) then + e.self:Say("Zulort strongest. Him big shaman."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Huh? You sleep in cave. Rest there."); + elseif(e.message:findi("weapon")) then + e.self:Say("You get wepuns from Cikoona. She have shop not cave. In cave you find smash wepuns. Rora have smashies."); + elseif(e.message:findi("chef") or e.message:findi("dooga")) then + e.self:Say("Chef Dooga good cooker. She make good HEHE meat. She give coin fer meat to cook with. She cook at Clurg's by Crakneks."); + end +end \ No newline at end of file diff --git a/oggok/Bouncer_Thrang.lua b/oggok/Bouncer_Thrang.lua new file mode 100644 index 0000000..ddc71cb --- /dev/null +++ b/oggok/Bouncer_Thrang.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("healer")) then + e.self:Say("You have a ooch? No show me. Make me sick. Go see Greenblood Shaman in caves. They fix you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Me warrior! When me young me go to Crakneks and train. Crakneks way back. Through caves."); + elseif(e.message:findi("supplies")) then + e.self:Say("Need stuff? Go find Erung and Cronga in caves or Angrog in stone box wit holes."); + elseif(e.message:findi("bank")) then + e.self:Say("Go by Crakneks. You find Ungral. He keep stuff. Me think he give it back."); + elseif(e.message:findi("armor")) then + e.self:Say("Armer? Hmmm... Me know! Go to way back of Oggok. In cave you find Metl Armer and Lether Armer. Huh! Them dumb. Them no know armer start wit 'R'. Huhu! Dumb."); + elseif(e.message:findi("bouncers")) then + e.self:Say("Me Bouncer! Me best smasher. Bouncers smash for Oggok. Clurg make us and he our boss."); + elseif(e.message:findi("craknek")) then + e.self:Say("Crakneks warriors! They be far back. Through last caves. They smash and bash. They no like Greenbloods. Bouncers keep thems from bashing."); + elseif(e.message:findi("leader") or e.message:findi("king")) then + e.self:Say("Zulort strongest. Him big shaman."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Huh? You sleep in cave. Rest there."); + elseif(e.message:findi("weapon")) then + e.self:Say("You get wepuns from Cikoona. She have shop not cave. In cave you find smash wepuns. Rora have smashies."); + elseif(e.message:findi("chef") or e.message:findi("dooga")) then + e.self:Say("Chef Dooga good cooker. She make good HEHE meat. She give coin fer meat to cook with. She cook at Clurg's by Crakneks."); + end +end \ No newline at end of file diff --git a/oggok/Bouncer_Wrok.lua b/oggok/Bouncer_Wrok.lua new file mode 100644 index 0000000..ddc71cb --- /dev/null +++ b/oggok/Bouncer_Wrok.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("healer")) then + e.self:Say("You have a ooch? No show me. Make me sick. Go see Greenblood Shaman in caves. They fix you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Me warrior! When me young me go to Crakneks and train. Crakneks way back. Through caves."); + elseif(e.message:findi("supplies")) then + e.self:Say("Need stuff? Go find Erung and Cronga in caves or Angrog in stone box wit holes."); + elseif(e.message:findi("bank")) then + e.self:Say("Go by Crakneks. You find Ungral. He keep stuff. Me think he give it back."); + elseif(e.message:findi("armor")) then + e.self:Say("Armer? Hmmm... Me know! Go to way back of Oggok. In cave you find Metl Armer and Lether Armer. Huh! Them dumb. Them no know armer start wit 'R'. Huhu! Dumb."); + elseif(e.message:findi("bouncers")) then + e.self:Say("Me Bouncer! Me best smasher. Bouncers smash for Oggok. Clurg make us and he our boss."); + elseif(e.message:findi("craknek")) then + e.self:Say("Crakneks warriors! They be far back. Through last caves. They smash and bash. They no like Greenbloods. Bouncers keep thems from bashing."); + elseif(e.message:findi("leader") or e.message:findi("king")) then + e.self:Say("Zulort strongest. Him big shaman."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Huh? You sleep in cave. Rest there."); + elseif(e.message:findi("weapon")) then + e.self:Say("You get wepuns from Cikoona. She have shop not cave. In cave you find smash wepuns. Rora have smashies."); + elseif(e.message:findi("chef") or e.message:findi("dooga")) then + e.self:Say("Chef Dooga good cooker. She make good HEHE meat. She give coin fer meat to cook with. She cook at Clurg's by Crakneks."); + end +end \ No newline at end of file diff --git a/oggok/Bouncer_Xak.lua b/oggok/Bouncer_Xak.lua new file mode 100644 index 0000000..ddc71cb --- /dev/null +++ b/oggok/Bouncer_Xak.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("healer")) then + e.self:Say("You have a ooch? No show me. Make me sick. Go see Greenblood Shaman in caves. They fix you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("Me warrior! When me young me go to Crakneks and train. Crakneks way back. Through caves."); + elseif(e.message:findi("supplies")) then + e.self:Say("Need stuff? Go find Erung and Cronga in caves or Angrog in stone box wit holes."); + elseif(e.message:findi("bank")) then + e.self:Say("Go by Crakneks. You find Ungral. He keep stuff. Me think he give it back."); + elseif(e.message:findi("armor")) then + e.self:Say("Armer? Hmmm... Me know! Go to way back of Oggok. In cave you find Metl Armer and Lether Armer. Huh! Them dumb. Them no know armer start wit 'R'. Huhu! Dumb."); + elseif(e.message:findi("bouncers")) then + e.self:Say("Me Bouncer! Me best smasher. Bouncers smash for Oggok. Clurg make us and he our boss."); + elseif(e.message:findi("craknek")) then + e.self:Say("Crakneks warriors! They be far back. Through last caves. They smash and bash. They no like Greenbloods. Bouncers keep thems from bashing."); + elseif(e.message:findi("leader") or e.message:findi("king")) then + e.self:Say("Zulort strongest. Him big shaman."); + elseif(e.message:findi("inn") or e.message:findi("rest") or e.message:findi("sleep")) then + e.self:Say("Huh? You sleep in cave. Rest there."); + elseif(e.message:findi("weapon")) then + e.self:Say("You get wepuns from Cikoona. She have shop not cave. In cave you find smash wepuns. Rora have smashies."); + elseif(e.message:findi("chef") or e.message:findi("dooga")) then + e.self:Say("Chef Dooga good cooker. She make good HEHE meat. She give coin fer meat to cook with. She cook at Clurg's by Crakneks."); + end +end \ No newline at end of file diff --git a/oggok/Bozlum_Blossom.lua b/oggok/Bozlum_Blossom.lua new file mode 100644 index 0000000..1653fd5 --- /dev/null +++ b/oggok/Bozlum_Blossom.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("heaves a great sigh."); + elseif(e.message:findi("wrong")) then + e.self:Say("Boz like to grow perty flowers in her [garden]. But [garden] no more."); + elseif(e.message:findi("garden")) then + e.self:Say("Boz not know what happen. Only see der biggins footprints in it. Me perty sure my puppy not smash garden. He has tiny feets. Right, puppy?"); + eq.signal(49022,1); -- NPC: Bozlum_Blossom_pet + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10628})) then + e.self:Emote("writes something down on a piece of parchment. 'You go tell dat Brokk dat he owe me big for smushing garden. Make him read dis.'"); + e.other:QuestReward(e.self,0,0,0,0,10629); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10630})) then + e.self:Say("Oh, dat silly Brokk. He sent me too many of these perty flowers. Me not know where put them all. Here, you take some cause you help Bozlum. Me like you. Flowers make you smell perty, too."); + e.other:QuestReward(e.self,0,0,0,0,10609,100); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/oggok/Bozlum_Blossom_pet.lua b/oggok/Bozlum_Blossom_pet.lua new file mode 100644 index 0000000..6c14f10 --- /dev/null +++ b/oggok/Bozlum_Blossom_pet.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Emote("wags his tail"); + end +end \ No newline at end of file diff --git a/oggok/Brokk_Boxtripper.lua b/oggok/Brokk_Boxtripper.lua new file mode 100644 index 0000000..1dfb6eb --- /dev/null +++ b/oggok/Brokk_Boxtripper.lua @@ -0,0 +1,14 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10629})) then + e.self:Say("Brokk sorry, me no smush Bozlum's perty garden on purpose. Me felt bad and me too shy to go tell Boz Brokk sorry. Umm....go give her these perty flowers. Dem smell good and maybe make Bozlum feel better."); + e.other:QuestReward(e.self,0,0,0,0,10630); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/oggok/Bubbgrib.lua b/oggok/Bubbgrib.lua new file mode 100644 index 0000000..bd6dd95 --- /dev/null +++ b/oggok/Bubbgrib.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Yooz small, and yooz look weak. Mez tink dat yooz need new [armor].' Bubbgrib peers at you with a blood-red eye from within his heavy helm. 'Yooz REALLY need new armor!"); + elseif(e.message:findi("armor")) then + e.self:Say("Mez make da [plate] and [chain] armorz. Which yooz need, weak one?"); + elseif(e.message:findi("plate")) then + e.self:Say("Yooz use yer hammer to bash some enchanted adamanty chain jointing, wiv blood temper and large plate mold, leather padding and some folded [sheets of metal]. Don't forget youz magical shinystone! Amber, jade or da saffire. Gud bashin!"); + elseif(e.message:findi("chain")) then + e.self:Say("Yooz take da hammer and da large leather armor and da blood temper and da large chainmail pattern and one imbued shinystone and den yooz bash in some unfolded [sheets of metal].' Bubbgrib scratches his ample backside. 'Mez tink yooz may need more dan armor to keep yooz alive!"); + elseif(e.message:findi("sheet")) then + e.self:Say("To make da special sheetz yooz need to start wiv da right sheet of velium. If yooz need to make unfolded sheetz, den start wiv a unfolded sheet of velium. If yooz need to make a folded sheet, den start wiv a folded sheet of velium. Wiv yer sheet, yoz den hammer in a large brick of dat adamanty from de Darky Elf place. Yooz need to use some [special temper] too."); + elseif(e.message:findi("temper")) then + e.self:Say("Dis mez not know a lot about. Mez get some from Darky-robe. He nice friend of Bubbgrib's. Yooz just put it into da Oggie Forge wiv da sheet and da hammer and da adamanty ore and it works! Darky-robe call it Sellesty Temper, or someting like dat."); + end +end diff --git a/oggok/Chef_Dooga.lua b/oggok/Chef_Dooga.lua new file mode 100644 index 0000000..6ec9246 --- /dev/null +++ b/oggok/Chef_Dooga.lua @@ -0,0 +1,60 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome you. You look all skin 'n bones. Eat you must do. Chef Dooga can fix up goodies for you. Try [HEHE meat]."); + elseif(e.message:findi("hehe meat")) then + e.self:Say("It is a secret ground meat made with high elf, human, and Erudite Flesh. Mmmm. It good stuff. Dooga make it and [the Gobbler] make it. If you find any of those meats in the swamps bring to me and I pay you."); + elseif(e.message:findi("gobbler")) then + e.self:Say("You no hear of the Gobbler!! Him great butcher. Have all kinds of meat. Him am low on froglok legs. Dooga supply him. Dooga need someone to [deliver froglok legs]."); + elseif(e.message:findi("recipe")) then + e.self:Say("Recipe, recipe, recipe! All want Chef Dooga's recipes. Me no give out secrets. Only HEHE meat recipe me share. Me share that only wit [the Gobbler]."); + elseif(e.message:findi("apron")) then + e.self:Say("Apron?! Me gots aprons, but dey no grow on trees. You bring Dooga proof you a butcher first. You makes me three portions of pickled froglok then me allow you to also pay me ten gold for apron."); + elseif(e.message:findi("froglok legs")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You think so!! That be good thing. Make the Gobbler happy. Maybe he give you something good. Maybe not. You take this. Deliver meat."); + e.other:SummonCursorItem(13384); -- Item: Preserved Leg + else + e.self:Say("Come closer. Bouncer smash your head!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Chef Dooga asks for three pickled frogloks and ten gold pieces for da ogre butcher apron."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13364})) then -- Human flesh + e.self:Say("MmmmMmm. Human make good meat pies. Here. A little coins for you."); + -- Confirmed Live Factions + e.other:Faction(e.self,228,2); --Clurg + e.other:Faction(e.self,274,-2); --Kazon Stormhammer + e.other:Faction(e.self,232,2); --Craknek Warriors + e.other:Faction(e.self,261,2); --Green Blood Knights + e.other:Faction(e.self,337,2); --Oggok Gaurds + e.other:QuestReward(e.self,math.random(10),math.random(10),0,0,0,10000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13365})) then -- High Elf flesh + e.self:Say("High elf!! Now that is a good meat. Goes good with Ogre Swill."); + -- Confirmed Live Factions + e.other:Faction(e.self,228,2); --Clurg + e.other:Faction(e.self,274,-2); --Kazon Stormhammer + e.other:Faction(e.self,232,2); --Craknek Warriors + e.other:Faction(e.self,261,2); --Green Blood Knights + e.other:Faction(e.self,337,2); --Oggok Gaurds + e.other:QuestReward(e.self,math.random(10),math.random(10),0,0,0,10000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13452, item2 = 13452, item3 = 13452, platinum = 1},1,text)) then + e.self:Say("Here is da ogre butcher apron. Gos and cook.") + -- Confirmed Live Factions + e.other:Faction(e.self,228,5); --Clurg + e.other:Faction(e.self,274,-5); --Kazon Stormhammer + e.other:Faction(e.self,232,5); --Craknek Warriors + e.other:Faction(e.self,261,5); --Green Blood Knights + e.other:Faction(e.self,337,5); --Oggok Gaurds + e.other:QuestReward(e.self,0,0,0,0,12217,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/oggok/Clurg.lua b/oggok/Clurg.lua new file mode 100644 index 0000000..4deafbb --- /dev/null +++ b/oggok/Clurg.lua @@ -0,0 +1,63 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, friend. Have a drink. I have some [unique drinks]. Try one. And remember. You get rowdy, the [Bouncers] crush you."); + elseif(e.message:findi("bouncers")) then + e.self:Say("The Bouncers were organized by me. As I traveled to many of the world's taverns I encountered great enforcers called bouncers. It was their duty to keep order amongst chaos. When I returned and rose to greatness after the creation of the [Flaming Clurg]. I organized the Oggok Bouncers to keep order amongst the [rival guilds]."); + elseif(e.message:findi("flaming clurg")) then + e.self:Say("The Flaming Clurg was my greatest creation. It brought me great respect in Oggok. Unfortunately, I have heard tales of an [imposter drink]."); + elseif(e.message:findi("imposter drink")) then + if(e.other:GetFactionValue(e.self) >= 70) then -- must be at high indifferent + e.self:Say("I have heard there is a barkeep who dares to sell a similar drink in Neriak's Foreign Quarter. I have put a price on his head. Anyone who returns with his head shall be greatly rewarded."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Find ways to help all in Oggok. Then we will have conversation."); + else + e.self:Say("You are brave. An enemy are you of Oggok. Leave while you still can."); + end + elseif(e.message:findi("rival guilds")) then + e.self:Say("Oggok has been the battleground for the feud between the Greenblood knights and shamans and the Craknek warriors. It is fueled by the superior intellect of the Greenbloods. Few remember that I, Clurg, was once dim, but now I speak with great words."); + elseif(e.message:findi("unique drinks")) then + e.self:Say("I have been all over Norrath and even served with some very great [barkeeps in Freeport]. I am the creator of both [Flaming Clurg] and Ogre Swill.") + elseif(e.message:findi("barkeeps in freeport")) then + e.self:Say("Yes. I have journeyed to many taverns, but it was in Freeport that I acquired most of my art. I compiled all my drink recipes in a [special book].") + elseif(e.message:findi("special book")) then + if(e.other:GetFactionValue(e.self) >= 70) then -- must be at high indifferent + e.self:Say("I compiled all my drinks into one book. I lost this book while in Freeport. No doubt some barkeep is experimenting with it. I would pay dearly for the return of my Barkeep Compendium.") + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Find ways to help all in Oggok. Then we will have conversation."); + else + e.self:Say("You are brave. An enemy are you of Oggok. Leave while you still can."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 70 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13379})) then -- must be at high indifferent + e.self:Say("Ahhh!! My Barkeep Compendium has been returned!! I am in your debt. I do not like to be in any man's debt. Let me offer you this as payment for your great service. Obtaining my book could not have been a simple task."); + -- confirmed live factions + e.other:Faction(e.self,228,50); --Clurg + e.other:Faction(e.self,274,-50); --Kazon Stormhammer + e.other:Faction(e.self,261,50); --Green Blood Knights + e.other:Faction(e.self,232,50); --Craknek Warriors + e.other:Faction(e.self,337,50); --Oggok Guards + e.other:QuestReward(e.self,0,0,0,0,13380,500); + elseif(e.other:GetFactionValue(e.self) >= 70 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13378})) then -- must be at high indifferent + e.self:Say("Haha! He shall mix no more Flaming Pungla's! I shall drink from his rotting skull tonight. As for you, take this and call it yours. Consider yourself a friend of Clurg."); + -- confirmed live factions + e.other:Faction(e.self,228,15); --Clurg + e.other:Faction(e.self,274,-15); --Kazon Stormhammer + e.other:Faction(e.self,261,15); --Green Blood Knights + e.other:Faction(e.self,232,15); --Craknek Warriors + e.other:Faction(e.self,337,15); --Oggok Guards + e.other:QuestReward(e.self,0,0,1,5,eq.ChooseRandom(3132,3128,3134,3135,3136,10021,10024,6302,13355,6006),500); + else + e.other:Say("I am no dumb ogre. I take gift when handed."); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/oggok/Crunga.lua b/oggok/Crunga.lua new file mode 100644 index 0000000..6e52175 --- /dev/null +++ b/oggok/Crunga.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hullo. Buy sum of my stuff."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("Nice muffins, very stinky. Weeze tank you. Here some money. Weeze need more muffins later. You check back again sum time."); + e.other:Faction(e.self,338,2); -- Faction: Merchants of Oggok + e.other:Faction(e.self,228,1); -- Faction: Clurg + e.other:Faction(e.self,337,1); -- Faction: Oggok Guards + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("You nice for getting bread loaves for us. You take some money. Weeze happy now dat weeze got more bread for sale. You maybe check back later if weeze run out of bread again."); + e.other:Faction(e.self,338,4); -- Faction: Merchants of Oggok + e.other:Faction(e.self,228,3); -- Faction: Clurg + e.other:Faction(e.self,337,3); -- Faction: Oggok Guards + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/oggok/Emissary_Glib.lua b/oggok/Emissary_Glib.lua new file mode 100644 index 0000000..14e6244 --- /dev/null +++ b/oggok/Emissary_Glib.lua @@ -0,0 +1,34 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Gloop.. Are you the one? Who sent you?"); + elseif(e.message:findi("marda")) then + e.self:Say(".. Good. I am the secret emissary of the frogloks of Guk. I have come to help your community, provided, that is, that you help mine. Gloop.. I want you to track down and kill the troll hunters called 'slayers.' They are capturing our foragers in the swamps. Return their slayer necklaces to me and I shall pay you, but most important, find the slayer captain. Bring me his captain's necklace and I shall give you a secret. I must leave soon. If you need me, just ask Marda where I am."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13369})) then + e.self:Say("Good work. That is one less troll slayer. My people shall learn of your good deed. Please search for the slayer captain. He must be stopped."); + e.other:Faction(e.self,143,1); -- Faction: Oggok Citizens + e.other:QuestReward(e.self,0,0,7,5,0,500); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13370})) then + e.self:Say("'Oooh!! .. You have dispatched the slayer captain. It will take them time to reorganize the slayers. During this time the froglok foragers can gather more provisions for Guk. Please take this as a token of my people's appreciation. Your standing with my brethren has grown. As for Marda's information.. within Grobb lies my aide, Groak. He was captured. Tell him Glib sent you."); + e.other:Faction(e.self,143,2); -- Faction: Oggok Citizens + e.other:QuestReward(e.self,0,0,1,0,eq.ChooseRandom(17928,13371),500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/oggok/Erung.lua b/oggok/Erung.lua new file mode 100644 index 0000000..a399e04 --- /dev/null +++ b/oggok/Erung.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Huh? Oh hi " .. e.other:GetCleanName() .. ". Youse want to buy sumthin?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("MMmmm... Deez look like gud muffins. Here's sum money. Tanks. Now meez all stocked again."); + e.other:Faction(e.self,338,2); -- Faction: Merchants of Oggok + e.other:Faction(e.self,228,1); -- Faction: Clurg + e.other:Faction(e.self,337,1); -- Faction: Oggok Guards + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("You nice for getting bread loaves for us. You take some money. Weeze happy now dat weeze got more bread for sale. You maybe check back later if weeze run out of bread again."); + e.other:Faction(e.self,338,4); -- Faction: Merchants of Oggok + e.other:Faction(e.self,228,3); -- Faction: Clurg + e.other:Faction(e.self,337,3); -- Faction: Oggok Guards + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/oggok/Grapok.lua b/oggok/Grapok.lua new file mode 100644 index 0000000..f96aa08 --- /dev/null +++ b/oggok/Grapok.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi " .. e.other:GetCleanName() .. ". Did [Bordag send you]?"); + elseif(e.message:findi("bordag sent me")) then + e.self:Say("So you want learn about how to fight like bear and crush enemy with bare hand? That good. Best way to start is just go out and do it. Biggest enemy around here lizard men. You go practice. Fight against lizard men. Bring me their tasty meat. You bring four."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13410, item2 = 13410, item3 = 13410, item4 = 13410})) then + e.self:Say("Hmm, you do good against the lizard men. Here you go. If you want hat for head, bring four silk thread."); + e.other:QuestReward(e.self,0,0,0,0,7375,250); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 16486, item2 = 16486, item3 = 16486, item4 = 16486})) then + e.self:Say("Very nice. You fight good with hat me make you. You want pants to cover legs, bring me doll from lizards."); + e.other:QuestReward(e.self,0,0,0,0,7376,400); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13367})) then + e.self:Say("You do good, now me have doll to play with. I give you wepun if you bring me fur and wings from two big bats."); + e.other:QuestReward(e.self,0,0,0,0,7377,600); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13061, item2 = 13061, item3 = 13062, item4 = 13062})) then + e.self:Say("Good job, these keep me warm. Last job for you. Go kill more lizards. Bring four tails."); + e.other:QuestReward(e.self,0,0,0,0,7378,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13354, item2 = 13354, item3 = 13354, item4 = 13354})) then + e.self:Say("You quick. You do good work. Me come find you when more jobs need done. Here is last armur me have."); + e.other:QuestReward(e.self,0,0,0,0,7379,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/oggok/Grevak.lua b/oggok/Grevak.lua new file mode 100644 index 0000000..43de183 --- /dev/null +++ b/oggok/Grevak.lua @@ -0,0 +1,41 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Need new members we do not. Powerful enough are we with Grevak. Still. peons needed. Are you a [new peon] or are you an [outsider]? Speak up!! Fool!! No time Grevak has!!"); + elseif(e.message:findi("new peon")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("So you think you can be greater than Grevak!! Touch you not and still I can smash you. I am a Greenblood shadowknight!! Peon are you. Peons go to swamps and slay lizardmen. You return with four lizardmen tails and a reward is yours. You return with two lizardman shaman dolls and a great reward is yours."); + else + e.self:Say("Foe of Greenbloods you are. In two I will rip you. Best if run."); + end + elseif(e.message:findi("i am an outsider")) then + e.self:Say("Go away or soon your pain will find you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "This enough is not! Two is what Grevak spoke!"; + + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 13354, item2 = 13354, item3 = 13354, item4 = 13354})) then + e.self:Say("Now I shall take the lizard tails to shamans I will. Healing spells will help create. You continue to slay. Continue to be the peon. Continue to live"); + e.other:Faction(e.self,261,10); -- Increase faction -- Greenblood Knights + e.other:Faction(e.self,228,5); -- Increase faction -- Clurg + e.other:Faction(e.self,312,-1); -- Decrease faction -- Storm Guard + e.other:Faction(e.self,308,-1); -- Decrease faction -- Shadowknights of Night Keep + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(2125,2126,2127,2129,2133,2134,9016),500); -- Large Tattered, Large Buckler + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13367, item2 = 13367},1,text)) then + e.self:Say("A shaman doll! A great knight you some day become. A gift I give to help you on your way. The fight will continue. All hail the Greenbloods!"); + e.other:Faction(e.self,261,10); -- Increase faction -- Greenblood Knights + e.other:Faction(e.self,228,5); -- Increase faction -- Clurg + e.other:Faction(e.self,312,-1); -- Decrease faction -- Storm Guard + e.other:Faction(e.self,308,-1); -- Decrease faction -- Shadowknights of Night Keep + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(13453,5013,5014,5025,5016,5019,5020,5023,15343,15235),500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Developer: Diuretic Effluent +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/oggok/Guntrik.lua b/oggok/Guntrik.lua new file mode 100644 index 0000000..eea1a1d --- /dev/null +++ b/oggok/Guntrik.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Mmmph!! Who you? Oh. you " .. e.other:GetCleanName() .. ". You supposed to be promising Craknek. Me need you. There bad things in swamp. You want [help Crakneks] or you [want Guntrik bash your face]!!?"); + elseif(e.message:findi("what crakneks")) then + e.self:Say("Crakneks warriors!! They be far back. Through last caves. They smash and bash. They no like Greenbloods. Bouncers keep thems from bashing."); + elseif(e.message:findi("bash")) then + e.self:Say("OK!! Me bash!! You hurt!!"); + eq.attack(e.other:GetName()); + elseif(e.message:findi("help crakneks")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Go to swamps. Find noble hunters of humans and elves. All have house crests. Return to me and I give things. If you find special item says where hunters sleep, give to me. If meat founded then give to Clurg's cook. She make fine stew and give coins for meat."); + else + e.self:Say("Me smell the blood of Craknek enemy. Hey! It you!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18787})) then + e.self:Say("Ahh.. good.. good.. here. take.. Now you Craknek! You bash good. Bash lizards. Bash froggies. Bash mushrooms. Remember. you no help Greenbloods. Crakneks stronger than Greenbloods."); + e.other:Faction(e.self,232,100); -- Craknek Warrior + e.other:Faction(e.self,228,15); -- Clurg + e.other:Faction(e.self,261,-15); -- Green Blood Knight + e.other:QuestReward(e.self,0,0,0,0,13525,20); + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13361})) then + e.self:Say("One less trouble. Hunhuh!! You do good work. Keep up. Remember to bring any special things to Guntrik. Here junk for good work. Go away now."); + e.other:Faction(e.self,232,15); -- Craknek Warrior + e.other:Faction(e.self,228,2); -- Clurg + e.other:Faction(e.self,261,-2); -- Green Blood Knight + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(5030,5037,6021),500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/oggok/Horgus.lua b/oggok/Horgus.lua new file mode 100644 index 0000000..3af1ea6 --- /dev/null +++ b/oggok/Horgus.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What!!? You [Craknek] or you [pest]?"); + elseif(e.message:findi("craknek")) then + e.self:Say("Good. Me not bash you. You help Horgus and Crakneks. Go smash lizards. Bring four tails. Greenbloods think they get all lizard tails. We take first. Taste good. You bring four tails. Me give you tings. Me gives armur. Now go!!"); + elseif(e.message:findi("pest")) then + e.self:Say("Bah!! You go join Greenbloods. You weak."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13354, item2 = 13354, item3 = 13354, item4 = 13354})) then + e.self:Say("You smash lizards good. Here is armur me promise."); + e.other:Faction(e.self,232, 10); -- Faction: Craknek Warriors + e.other:Faction(e.self,228, 1); -- Faction: Clurg + e.other:Faction(e.self,261, -1); -- Faction: Green Blood Knights + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(2136,2135,2132,2128,2130),500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/oggok/Kizrak_the_Tyrant.lua b/oggok/Kizrak_the_Tyrant.lua new file mode 100644 index 0000000..5508819 --- /dev/null +++ b/oggok/Kizrak_the_Tyrant.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Yes? What do you want?! I have one [purpose] here, to speak with potential heroes that the gods send to me, not to give pointless chit chat to some base, frail mortal who I could destroy in less time than it would take for me to unsheath my weapon."); + elseif(e.message:findi("purpose")) then + e.self:Say("Are you as deaf as your are ugly? I had stated before what my purpose here is, and I will not repeat myself. You apparently know nothing of [Kizrak the Tyrant], nor of my glorious victories and domination among the heroes."); + elseif(e.message:findi("kizrak")) then + e.self:Emote("sniffs once, his eyes blaring with impatience as he drums his large fingers on the hilt of the sword at his side. 'I am Kizrak the Tyrant, mighty warrior of Zek, and now champion of The Warlord. Once I brought fear and destruction to any whom would stand in the path of the Ogre nation, but now, [they are all sniveling fools] who cannot find their backside with both of their hands."); + elseif(e.message:findi("fools")) then + e.self:Say("The ogres, of course! I am not even sure if that is such a fitting name of these monstrous, fleshy bags of stupidity. Before the curse of Zek, the Ogres were the strongest of the gods' creations upon Norrath. I am a product of our greatest years of glory, and it was then that I ascended to take my place within the [Realm of Heroes]. I am sure that my lack of third person speech had confused you a bit as to my origins."); + elseif(e.message:findi("heroes")) then + e.self:Say("I led a mighty army for several decades beneath the powers of war. My deeds were recognized by The Warlord himself, and in return for my strengthening of his name in battle, I was chosen to walk the Realm of Heroes. Now, I find that I have returned to a nation of slobbering buffoons who have allied with the Teir`Dal of all creatures. It is almost painful to be subjected to the witnessing of it, but, as The [Warlord] commands, it shall be done."); + elseif(e.message:findi("Warlord")) then + e.self:Say("My purpose, fool! My purpose is The Warlord's command! I grow tired of you. Bring forth the coin, if of course any god would be so out of their right mind as to bestow such honor to a creature as filthy and devoid of intelligence as yourself, or leave me be before I find a much more painful route to deliver you to the hand of your god."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/oggok/Kogna.lua b/oggok/Kogna.lua new file mode 100644 index 0000000..a2477b3 --- /dev/null +++ b/oggok/Kogna.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("You be tinking you be [real tuff Craknek]?"); + elseif(e.message:findi("real tuff craknek")) then + if(e.other:GetFactionValue(e.self) >= 50) then + e.self:Say("Me not tinking so. but maybe me wrongs.. no.. me neber wrongs. You no tuff. only liddle Craknek is you. You tink you be tuff Craknek. you bringed me four lizard meats. Me like lizard meats. You no tuff. You bringed me lizard [meats]. I make you tuffer Craknek. Me bestest Craknek."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("meats")) then + e.self:Say("Yup, meats. You brings me four, me gives you sumting."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFactionValue(e.self) >= 50 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13410, item2 = 13410, item3 = 13410, item4 = 13410})) then + e.self:Say("No, I donut tink so. Who gived you? Bah, me most tuffest Craknek, but me no lier. Me help you be tuffer Craknek. Who gived you dese? Maybe you finded dead lizards, yes, dat it. Bah, taking dis and kills more tings. You learned much, com see me, I teaches you best Craknek ways. Keep eye on dem Greenbloods, dey nasty and not so tuff."); + e.other:Faction(e.self,232,5); -- Faction: Craknek Warriors + e.other:Faction(e.self,228,1); -- Faction: Clurg + e.other:Faction(e.self,261,-1); -- Faction: Green Blood Knights + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(2136,2135,2132,2128,2130),500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/oggok/Lork.lua b/oggok/Lork.lua new file mode 100644 index 0000000..2cd2c65 --- /dev/null +++ b/oggok/Lork.lua @@ -0,0 +1,59 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You " .. e.other:GetCleanName() .. ". We hear of you. We need help. You [help Crakneks] or you [help self]?"); + elseif(e.message:findi("help crakneks")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Ha!! We hear of great adventurer. You?!! Me no think so. You prove self to Crakneks before you help us. Go to Innoth.. Innotu.. Innooth.. Arghh!! You go to outside Oggok. Find fat alligator bit Lork brother in two. Bring brother, Nork, body back. Then me know you strong."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You help Crakneks more. Helps Horgus you must. Den we trusts yoo!"); + else + e.self:Say("Me smell the blood of Craknek enemy. Hey! It you!"); + end + elseif(e.message:findi("help self")) then + e.self:Say("You help self to leave Oggok before me bash you. We no need cowards."); + elseif(e.message:findi("uglan")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Uglan brave warrior of Oggok. He now in Neriak. Work for dark elves. He NO LIKE dark elves!! He work because we make him. He spy for Crakneks."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You help Crakneks more. Helps Horgus you must. Den we trusts yoo!"); + else + e.self:Say("Me smell the blood of Craknek enemy. Hey! It you!"); + end + elseif(e.message:findi("help self")) then + e.self:Say("You help self to leave Oggok before me bash you. We no need cowards."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "This one dead. Where other? Lork say Crushbone heart and Oggok heart."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20523})) then + e.self:Say("Ay danks. Take dis to Uglan."); + e.other:QuestReward(e.self,0,0,0,0,16547); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13356})) then + e.self:Say("Ahhh!! Boohoohoo. Nork!! That you arm. Me will take care of you now. Thank you for killing gator. You must be strong. Now you help Crakneks. We hear.. ohh, poor Nork, we hear trouble begins. Find ogre warrior [Uglan]. Give him this. It broken. He know where you from. Go. Nork.. Poor Nork."); + e.other:Faction(e.self,232,10); -- Faction: Craknek Warriors + e.other:Faction(e.self,228,1); -- Faction: Clurg + e.other:Faction(e.self,261,-1); -- Faction: Green Blood Knights + e.other:QuestReward(e.self,0,0,0,0,13357,500); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18840})) then + e.self:Say("What this!! So, dark elves think they can bash ogres. Replace with blue orcs. Dumb Zulort friend with dark elf ambassador in Oggok. We kill him. We kill Crushbone dark elf ambassador also. This slow down plan. We need a hero. Me guess you do. You go. Go bring Lork both Crushbone and Oggok dark elf hearts. Then you be hero."); + e.other:Faction(e.self,232,10); -- Faction: Craknek Warriors + e.other:Faction(e.self,228,1); -- Faction: Clurg + e.other:Faction(e.self,261,-1); -- Faction: Green Blood Knights + e.other:QuestReward(e.self,0,0,7,0,eq.ChooseRandom(5030,6021),500); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13358, item2 = 13227},1,text)) then + e.self:Say("That show dark elves who strongest. Me hope you kill many blue orcs. You Craknek Hero now. You take this. It mine. Hero reward. You great ogre now. Smash best."); + e.other:Faction(e.self,232,25); -- Faction: Craknek Warriors + e.other:Faction(e.self,228,3); -- Faction: Clurg + e.other:Faction(e.self,261,-3); -- Faction: Green Blood Knights + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(13359,13355,2136,2130,2135,2132,2128),500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/oggok/Marda.lua b/oggok/Marda.lua new file mode 100644 index 0000000..44f9ea9 --- /dev/null +++ b/oggok/Marda.lua @@ -0,0 +1,43 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to intelligence, young " .. e.other:GetCleanName() .. "! Did you think all ogres were inept? Ha!! I hope you show the glimmer. We shamans need more within our ranks. Our race needs to evolve!! So, are you one of the smart ogres or have I spoken too many syllables?"); + elseif(e.message:findi("smart ogre")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Well, I suppose your intelligence shall grow. You will have to do. I have a mission for you. First, go and speak with Grevak of the Greenblood Knights. He will have a job for you. After you have performed some manner of service and advanced at least 5 ranks, return to me and ask me about my secret mission."); + else + e.self:Say("Knights! Come at once. There is a foe of the Greenbloods to deal with."); + end + elseif(e.message:findi("syllable")) then + e.self:Say("As I thought. Perhaps you would fare better speaking with the Crakneks."); + elseif(e.message:findi("secret mission")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I have heard of your advancements. You are a fine addition to Oggok. I require your skill in handling a delicate matter. I want you to run out to the Bouncer's keep near the entrance to Oggok. There, you shall find a froglok named Glib. He will pose no threat to you. He has come on business and I have promised him protection. Tell him the Greenblood shaman sent you. He shall fill you in. Go at once."); + eq.unique_spawn(49127,0,0,383,-205.3,66.1,0); -- NPC: Emissary_Glib + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("There is much you must do to prove your loyalty to the cause of the Greenbloods."); + else + e.self:Say("Knights! Come at once. There is a foe of the Greenbloods to deal with."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18884}) or item_lib.check_turn_in(e.self, e.trade, {item1 = 18886})) then + e.self:Say("I see you finally decided to return. Hmmm. What is this? Those little hoppers have done well. What!! So the troll scum have been aiding our foes, the lizards!! The lizard mystics are trained by this troll shaman called Zimbittle. Find him!! Kill him. Bring me his shaman pouch!! Now!!"); + e.other:Faction(e.self,394,10); -- Faction: Shamen of War + e.other:QuestReward(e.self,{itemid = eq.ChooseRandom(15270,15226,15279,15211),exp = 50}); -- Item(s): Spell: Drowsy (15270), Spell: Endure Disease (15226), Spell: Spirit of Bear (15279), Spell: Summon Drink (15211) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18886})) then + e.self:Say("I see you finally decided to return. Hmmm. What is this? This troll called Zimbittle. Find her! Kill her. Bring me proof she dead!"); -- text made up. + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18885})) then + e.self:Say("What is this? More information? There seems to be a larger plan in the making. B'Dynn sounds like a Dark Elf name. I do no like the sound of this. You must go quickly to North Ro. Find this Dark Elf. Find out what he knows. any way you can."); + e.other:Faction(e.self,394,20); -- Faction: Shamen of War + e.other:QuestReward(e.self,{itemid = eq.ChooseRandom(15270,15226,15279,15211),exp = 100}); -- Item(s): Spell: Drowsy (15270), Spell: Endure Disease (15226), Spell: Spirit of Bear (15279), Spell: Summon Drink (15211) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 17929})) then + e.self:Say("Ahhh!! Good work. You are a bright one. Now let us see if you can master this spell. Learn it well and may it bring you much glory."); + e.other:Faction(e.self,394,25); -- Faction: Shamen of War + e.other:QuestReward(e.self,{itemid = eq.ChooseRandom(15270,15226,15279,15211),exp = 150}); -- Item(s): Spell: Drowsy (15270), Spell: Endure Disease (15226), Spell: Spirit of Bear (15279), Spell: Summon Drink (15211) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/oggok/Ruksa.lua b/oggok/Ruksa.lua new file mode 100644 index 0000000..33bb82f --- /dev/null +++ b/oggok/Ruksa.lua @@ -0,0 +1,9 @@ +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/oggok/Soonog.lua b/oggok/Soonog.lua new file mode 100644 index 0000000..43a58a2 --- /dev/null +++ b/oggok/Soonog.lua @@ -0,0 +1,38 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You [Greenblood]?"); + elseif(e.message:findi("greenblood")) then + if(e.other:GetFactionValue(e.self) >= 50) then + e.self:Say("Good, you mine. We tuffest, bestest, scariest warriors in da Norrath. Not like dem wimpy Craknek hoomie wannabees. You Greenblood, you my toy. You lives or dies at my will. Go, brings me many lizard meats cause I Greenblood leader and I berry hungry lots. So hungry dat I eats four lizards. Go bring meat or I eats you."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18789})) then + e.self:Say("Soonog own you now.. fight for Soonog.. Soonog make you strong.. Soonog army rule all!!"); + e.other:Faction(e.self,261,100); -- Green Blood Knight + e.other:Faction(e.self,228,50); -- Clurg + e.other:Faction(e.self,312,-15); -- Storm Guard + e.other:Faction(e.self,308,-15); -- Shadowknight of Night Keep + e.other:QuestReward(e.self,0,0,0,0,13527,20); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13410, item2 = 13410, item3 = 13410, item4 = 13410})) then + e.self:Say("Small meats but is good nuff. You take dis and go kill eberyting. Make all scared of da Greenblood knights. You get ready for next inb.. ins.. invat.. you get ready for next war. You learning stuff, you come bak here and me teach you more Greenblood stuf so we be more tuffest."); + e.other:Faction(e.self,261,5); -- Green Blood Knight + e.other:Faction(e.self,228,2); -- Clurg + e.other:Faction(e.self,312,-1); -- Storm Guard + e.other:Faction(e.self,308,-1); -- Shadowknight of Night Keep + e.other:QuestReward(e.self,0,0,0,0,5023,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/oggok/Soulbinder_Trurg.lua b/oggok/Soulbinder_Trurg.lua new file mode 100644 index 0000000..cae0256 --- /dev/null +++ b/oggok/Soulbinder_Trurg.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID()); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/oggok/Varrok_Neckchopper.lua b/oggok/Varrok_Neckchopper.lua new file mode 100644 index 0000000..000e504 --- /dev/null +++ b/oggok/Varrok_Neckchopper.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Me got da toughest weapons in da lands! Yoo come ta buy weapon or ta learn from Varrok bout [war mace] an [war hammer]?"); + elseif(e.message:findi("war mace")) then + e.self:Say("Yoo want ta make mighty war mace? Den yoo must go to special Oggok forge with mold for head of mace. oak shaft for handle of mace. Ogre Swill. and sheet of adamantite. If yoo hab powerful shaman friend den maybe he give you imbued amber or jade to make mace even stronger. but If yoo do dat den you must use blood temper instead of Ogre Swill."); + elseif(e.message:findi("war hammer")) then + e.self:Say("Yoo want t' make ogre war hammer? Den yoo need ta go ta da special Oggok forge wit a mold for da head of da hammer. an oak shaft for da handle of da hammer. Ogre Swill. an a sheet of adamantite. Powerful shaman can gib ya imbued amber ' jade ta make it eben stronger hammer. but ib yoo do dat den yoo must use blood temper instead of da Ogre Swill."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/oggok/Zulort.lua b/oggok/Zulort.lua new file mode 100644 index 0000000..d1f82d2 --- /dev/null +++ b/oggok/Zulort.lua @@ -0,0 +1,46 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Um, you. Hi.. You Shaman of War now, right? You gotta learns war and war spells. We fights all and makes the Warlord likes us. You [gonna help] or me gonna feed you fat stoopid boddie to doggies."); + elseif(e.message:findi("help")) then + if(e.other:GetFactionValue(e.self) >= 50) then + e.self:Say("Good. Warlord need many boddie.. I means Shamans of War.. to kill and gets killed.. no, ummm.. kill and smoosh for Him and makes Him happy. You goes show me you can smoosh tings good. Gets me four froglok tadpole fleshies for me to munchings on and me be happy.. um, He, the Warlord be so berry happy. Helping our tuff friends de Greenbloods but be watching for dem scummy Crakneks, dumb ogres dey is. No good, no our friends. Go now. Me.. er.. he waiting and hungry."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("bedder shaman")) then + if(e.other:GetFactionValue(e.self) >= 50) then + e.self:Say("Yoo want to be bedda shaman? Them lizards in de Feerrott tink de bedda den us and bodder us wit der majiks like fleas on a dog. Kill dem and bring me, um, one of dem bags dey wear around dem necks and, um, three of dem dolls dey hold."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 50 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13187, item2 = 13187, item3 = 13187, item4 = 13187})) then + e.self:Say("Oh, me.. um.. Warlord BERRY happy. Berry like dese. Gimme. Uh, why is you still here? Take dis and gets more kills. You learning good, come sees me. I teaches you bout stuff. Make you [bedder shaman]. Go. He and me watching."); + e.other:Faction(e.self,394, 5); -- Faction: Shamen of War + e.other:QuestReward(e.self,0,0,0,0,15093,500); + elseif(e.other:GetFactionValue(e.self) >= 50 and item_lib.check_turn_in(e.self, e.trade, {item1 = 14199, item2 = 13367, item3 = 13367, item4 = 13367})) then + e.self:Say("Dis good stuff! Me and Warlord happy! Wear dis symbol and he make yoo strong with majik!"); + e.other:Faction(e.self,394, 5); -- Faction: Shamen of War + e.other:QuestReward(e.self,0,0,0,0,1444,500); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18788})) then --Tattered Note + e.self:Say("Take, take.. You now Shaman of War.. Zulort make you majik, too."); + e.other:Faction(e.self,394,100); -- Shaman of War + e.other:QuestReward(e.self,0,0,0,0,13526,20); --Dirty Patched Fur Tunic* + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Quests by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/oot/69144.lua b/oot/69144.lua new file mode 100644 index 0000000..bce252e --- /dev/null +++ b/oot/69144.lua @@ -0,0 +1,4 @@ +function event_spawn(e) + eq.spawn_condition("oot",1,0); + eq.spawn_condition("oot",2,0); +end \ No newline at end of file diff --git a/oot/Antinime.lua b/oot/Antinime.lua new file mode 100644 index 0000000..57b3e20 --- /dev/null +++ b/oot/Antinime.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, adventurer! I see you have found your way to our island. I also used to wander the lands until I ran into Styria. After a long duel, I proved myself worthy to become one with the Sisterhood of Erollisi.") + elseif(e.message:findi("sisterhood")) then + e.self:Say("The Sisterhood of Erollisi was formed by Styria. We are all female warriors from the Faydarks. We found the male warriors did not respect our skills or our purity. We have come here to train without distraction. We often aid Faydark's Champions when called upon.") + elseif(e.message:findi("styria")) then + e.self:Say("Our leader, Styria, is quite a magnificent warrior. She was never given her rightful place among the guildmasters of the elves. So it is that she now acts as guildmaster to the Sisterhood of Erollisi.") + elseif(e.message:findi("dwarves")) then + e.self:Say("The dwarves were on a return trip from a failed business venture in Freeport. Their ship went down and they almost drowned. Styria saved them and they now make their home on our island and supply us with weapons and armor as well as selling to adventurers.") + elseif(e.message:findi("purity belt")) then + e.self:Say("All warriors of the Sisterhood of Erollisi wear purity belts. Ho hum... They keep us from impure acts. Along with purity comes great strength. That is what Styria always tells us. She holds the only key to the belts.") + elseif(e.message:findi("pirate")) then + e.self:Say("We have been plagued by buccaneers who call themselves the Pirates of Gunthak. We saw their ship go down nearby. They have taken refuge on a nearby island. They are attempting to take over our isle so they can commandeer the next ship. Go and ask Styria of the Pirates. She is hiring adventurers to hunt them down.") + elseif(e.message:findi("ship") or e.message:findi("boat")) then + e.self:Say("The ship comes and goes once a day, I believe. Though I can't imagine why you would ever want to leave our beautiful island.") + end +end \ No newline at end of file diff --git a/oot/Capt_Surestout.lua b/oot/Capt_Surestout.lua new file mode 100644 index 0000000..539e0d3 --- /dev/null +++ b/oot/Capt_Surestout.lua @@ -0,0 +1,11 @@ +-- This is to spawn a lesser spirit upon the Capn's death for Shaman epic 1.0 + +function event_death_complete(e) + eq.unique_spawn(69149,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/oot/Denken_Strongpick.lua b/oot/Denken_Strongpick.lua new file mode 100644 index 0000000..8e1f48d --- /dev/null +++ b/oot/Denken_Strongpick.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". I am Denken Strongpick. I wish I could get off this rock, silly clan honor. My boss broke our rebreathers and we can not go back to the mainland before wegather some [goblin relics]."); + elseif(e.message:findi("goblin relics")) then + e.self:Say("There are supposedly goblin ruins around here somewhere. Fendlemend thinks we will find paydirt underwater. We did find [one thing]."); + elseif(e.message:findi("one thing")) then + e.self:Say(" We found a very fine sword blade. Denken pulls open his pack and shows you a razor sharp sword covered with runes. I can't figure out what type of metal it is and I sure can't figure out what technique was used to forge it. Perhaps you would like to take it off my hands and [buy] it?"); + elseif(e.message:findi("buy")) then + e.self:Say("Out here, money is fairly useless to me. You see, I can't leave Fendlemend out here alone. I signed on with a very detailed contract. I could sure [use] a few things from the mainland though."); + elseif(e.message:findi("use")) then + e.self:Say("I would be willing to part with this very fine blade for a keg of Vox tail ale, a block of permafrost to keep it cool and two new rebreathers to get this operation back underway."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 16889, item2 = 16889, item3 = 20665, item4 = 20664})) then + e.self:Say("Excellent! Here is your sword. I feel like I'm at home already!"); + e.other:QuestReward(e.self,0,0,0,0,20667,50000); -- 20667 Ancient Sword Blade + end + item_lib.return_items(e.self, e.other, e.trade) -- return unused items +end + +--End of File, Zone:oot NPC:69061 -- Denken_Strongpick +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/oot/Doran_Vargnus.lua b/oot/Doran_Vargnus.lua new file mode 100644 index 0000000..665bc14 --- /dev/null +++ b/oot/Doran_Vargnus.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "! We do not get too many visitors to the island. I have a few pieces of armor for sale, fashioned for the small, of course.") + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13995})) then + e.self:Say("Ahh! You must have been sent by Beno of the Stormguard. I have been wondering when he would return my card. I have not been playing with a full deck. How about a reward? Hmm. Let's see what I have lying around... Here! Take this. I cannot possibly give you any of my good armor."); + e.other:Faction(e.self,312, 5); -- Storm Guard + e.other:Faction(e.self,274, 1); -- Kazon Stormhammer + e.other:Faction(e.self,293, 1); -- Miner's Guild 249 + e.other:Faction(e.self,290, 1); -- Merchants of Kaladim + e.other:Faction(e.self,232, -1); -- Craknek Warriors + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(3301,3048,3042,3050,3044,7012,3103,3111,3110,7015)); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/oot/Endan_Halson.lua b/oot/Endan_Halson.lua new file mode 100644 index 0000000..7133b85 --- /dev/null +++ b/oot/Endan_Halson.lua @@ -0,0 +1,13 @@ + +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks up something from the ground."); + end + end +end + diff --git a/oot/Fendlemend_Figlefop.lua b/oot/Fendlemend_Figlefop.lua new file mode 100644 index 0000000..119ecfa --- /dev/null +++ b/oot/Fendlemend_Figlefop.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("sighs and looks up at you. 'What a horrible expedition! No goblin relics, not even some goblin dishes! My rebreather is broken and the only thing we [found] was not even from the goblinempires!'"); + elseif(e.message:findi("found")) then + e.self:Emote("huffs for a moment, looking quite upset. 'I found a [silly sword blade]. It is useless to me. The only thing I study is goblins, and this thing is definitely not goblin insign.'"); + elseif(e.message:findi("silly sword blade")) then + e.self:Say("You will have to ask Denken about the blade. I gave it to him to get it out of my way."); + elseif(e.message:findi("rebreather")) then + e.self:Say("Our rebreathers are broken and I'm not sure how long it will take me to fix them."); + elseif(e.message:findi("denken")) then + e.self:Say("Denken is my dwarven excavator. He is taking a break while I try to fix our rebreathers. You might try up the hill near those aviaks. He has a tendency to fraternize with them"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) -- return unused items +end + +--End of File, Zone:oot NPC:69062 -- Fendlemend_Figlefop +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/oot/Guardian_of_K-arnon.lua b/oot/Guardian_of_K-arnon.lua new file mode 100644 index 0000000..f95105d --- /dev/null +++ b/oot/Guardian_of_K-arnon.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Harm the oracle and die. I have nothing else to say."); + end +end \ No newline at end of file diff --git a/oot/Nerbilik.lua b/oot/Nerbilik.lua new file mode 100644 index 0000000..207827b --- /dev/null +++ b/oot/Nerbilik.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What you want?!! Face so ugly you scare fish away!! ..sniff, sniff. Smell so bad, too!! Me sure is hungry. Wish had [grub locker]."); + elseif(e.message:findi("grub locker")) then + e.self:Say("You gots grub locker!! Give to me. Me sick of fish and not many dwarves fall off ship. Me pay a plat to get me grub locker from the Gobbler in Neriak. Go to him and say you [deliver grub locker] if you wants one plat."); + elseif(e.message:findi("wrapper") or e.message:findi("recipe")) then + e.self:Say("You no get my wrapper! Me use it later when me needs to make more room in stomach! You never get it!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12203})) then -- Grub Locker + e.self:Say("Oooh!! Grub locker! There is a loud click. He opens the locker and unwraps dwarf pickles. What this dumb wrapper? R, E, C, I, P, E.. Ahh!! It say pickles!! Me read good. Here your plat. Me give you little more. Me was very hungry for pickles."); + -- Confirmed Live Factions + e.other:Faction(e.self,235,10); --Da Bashers + e.other:Faction(e.self,222,-1); --Broken Skull Clan + e.other:QuestReward(e.self,0,0,0,2,0,1500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/oot/Nyuae_the_Cruel.lua b/oot/Nyuae_the_Cruel.lua new file mode 100644 index 0000000..5ffd092 --- /dev/null +++ b/oot/Nyuae_the_Cruel.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("glances at you indifferently and then flashes a warm smile with sinister undertones. 'So, a base insect deigns to address me. Since you're lacking the proper etiquette, it would be fitting to repay your impudence with pain. But... you've caught me in one of my kinder moods so I'm going to let you live. Begone, before my mood changes.") + end +end \ No newline at end of file diff --git a/oot/Oracle_of_K-Arnon.lua b/oot/Oracle_of_K-Arnon.lua new file mode 100644 index 0000000..a2a70ea --- /dev/null +++ b/oot/Oracle_of_K-Arnon.lua @@ -0,0 +1,50 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ", I am the Oracle of K'Aron. Do you quest for [knowledge] yourself, or do you offer that which I [seek]."); + elseif(e.message:findi("knowledge")) then + e.self:Say("I have lived long and have insight into many matters, yet I despise charity. To learn from me, you must first bring me that which I [seek]."); + elseif(e.message:findi("seek")) then + e.self:Say("I seek knowledge, which is superior to all things. And no knowledge is greater than that which is contained within the [Tome of Ages]."); + elseif(e.message:findi("tome of ages")) then + e.self:Say("The Tome of Ages has been compiled over the millennia by the Scribes of [Dal]. It was divided into seven distinct [books] by the scribes to keep the knowledge from one such as me. That said, with aid, I shall unite these books and the Tome of Ages shall be mine."); + elseif(e.message:findi("dal")) then + e.self:Say("They were elves once, but now are Teir'Dal, and as evil as they are wise. Many tomes have they written, but none greater than the Tome of Ages."); + elseif(e.message:findi("books")) then + e.self:Say("The seven books that make up the Tome of Ages are those of [Enlightenment], [Scale], [Turmoil], [Monuments], [Elders], [Blood], and the [Lost]."); + elseif(e.message:findi("enlightenment")) then + e.self:Say("I do not seek the Book of Enlightenment at this time, but I might have need of it in the future."); + elseif(e.message:findi("scale")) then + e.self:Say("Ah, the Book of Scale.. It would be wondrous indeed if you could recover the Book of Scale for me. If you do manage to procure the Book of Scale, I will gladly part with an artifact of my own that may be of interest to you."); + elseif(e.message:findi("turmoil")) then + e.self:Say("Ah, yes! The Book of Turmoil. I seek this book, and should you find it and return it to me, I will reward you with secret knowledge."); + elseif(e.message:findi("monuments")) then + e.self:Say("I do not seek the Book of Monuments at this time, but I might have need of it in the future."); + elseif(e.message:findi("elders")) then + e.self:Say("I do not seek the Book of Elders at this time, but I might have need of it in the future."); + elseif(e.message:findi("blood")) then + e.self:Say("I do not seek the Book of Blood at this time, but I might have need of it in the future."); + elseif(e.message:findi("lost")) then + e.self:Say("I do not seek the Lost Book at this time, but I might have need of it in the future."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18302})) then -- Book of Scale + e.self:Say("Unbelievable! The legendary Book of Scale is mine! Please, take this as a small token of my thanks. I warn you however, if you ever manage to join the corporeal body to the evil that resides within, you will rue the day."); + e.other:QuestReward(e.self,0,0,0,0,19072); -- Miragul's Phylactery + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18202})) then -- Book of Turmoil + e.self:Say("Thank thee for this tome. Be sure to check back with me later, as I might have another task for thee."); + e.other:Faction(e.self,402, 10); -- Faction: Oracle of Karnon + e.other:Faction(e.self,403, -10); -- Faction: Oracle of Marud + e.other:QuestReward(e.self,0,0,0,0,10071,72900); -- Glowing Torch + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:oot ID:69044 -- Oracle_ofK-Arnon.pl +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/oot/Sentry_Xyrin.lua b/oot/Sentry_Xyrin.lua new file mode 100644 index 0000000..f3ed56a --- /dev/null +++ b/oot/Sentry_Xyrin.lua @@ -0,0 +1,54 @@ +function event_spawn(e) + eq.set_timer("depop",3600000); + -- eq.set_anim(69132,1); +end + +function event_spawn(e) + eq.set_timer("overwhelming",1200000); +end + +function event_timer(e) + e.self:Say("Heeelp! The evil undead on this isle are overwhelming!"); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Shhhh!! Keep quiet! Can you not tell this island is inhabited by undead? I wish to take the fight to them, but I am weak from the [boat disaster]."); + elseif(e.message:findi("boat disaster")) then + e.self:Say("I was returning to my temple in Freeport in a small boat when the storm hit. I soon found myself shipwrecked on this evil island of undead. The words of Marr tell me to destroy these beings, but I am far too weak. If I only had a sip of the [Potion of Marr]."); + elseif(e.message:findi("potion of marr")) then + e.self:Say("The Potion of Marr was created for the Sentries of Passion. It makes us alert and energetic. It will work only on sentries such as myself. It is distributed by Serna Tasknon of the Temple of Marr in Freeport."); + eq.start(62); + e.self:SetRunning(true); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12134})) then + e.self:Say("I thank you. I cannot do battle at this moment. I am summoned elsewhere. May Marr guide you from this isle."); + e.other:Faction(e.self,362,20,0); -- Faction: Priests of Marr + e.other:Faction(e.self,330,-3,0); -- Faction: The Freeport Militia + e.other:Faction(e.self,281,3,0); -- Faction: Knights of Truth + e.other:QuestReward(e.self,0,0,0,0,12135); -- Item: Empty Potion of Marr + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if(e.wp == 4) then + e.self:Shout("Long live Marr !!"); + elseif(e.wp == 5) then + e.self:Say("Many thanks to all who aided in this battle. I offer you this, a weapon I found on a slain Erudite paladin. May Marr watch over his soul and may Marr guide yours. Now I must go."); + eq.create_ground_object(5414,-6963,-886,139,0,1800000); -- deepwater harpoon + eq.depop(); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end diff --git a/oot/SirensBane.lua b/oot/SirensBane.lua new file mode 100644 index 0000000..f773482 --- /dev/null +++ b/oot/SirensBane.lua @@ -0,0 +1,45 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Boat spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + -- Freeport + if(e.self:GetGrid() == 60 and e.wp == 18) then + eq.debug("Boat to Freeport (60) has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(10,-1853,-748,-80,0); -- Zone: arena2 + end, + function(ent) + if(ent:GetBoatID() == 771) then + return true; + end + return false; + end + ); + -- Butcher + elseif(e.self:GetGrid() == 61 and e.wp == 16) then + eq.debug("Boat to Butcher (61) has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + -- This grid zones a few seconds after the other. + -- eq.spawn_condition("oot",1,0); + -- eq.spawn_condition("oot",2,0); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(68,4591,2090,-15,0); + end, + function(ent) + if(ent:GetBoatID() == 771) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/oot/Sister_of_Erollisi.lua b/oot/Sister_of_Erollisi.lua new file mode 100644 index 0000000..9e2b0e5 --- /dev/null +++ b/oot/Sister_of_Erollisi.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the island of the Sisterhood of Erollisi.") + elseif(e.message:findi("sisterhood")) then + e.self:Say("The Sisterhood of Erollisi was formed by Styria. We are all female warriors from the Faydarks. We found the male warriors did not respect our skills or our purity. We have come here to train without distraction. We often aid Faydark's Champions when called upon.") + elseif(e.message:findi("styria")) then + e.self:Say("Our leader, Styria, is quite a magnificent warrior. She was never given her rightful place among the guildmasters of the elves. So it is that she now acts as guildmaster to the Sisterhood of Erollisi.") + elseif(e.message:findi("dwarves")) then + e.self:Say("The dwarves were on a return trip from a failed business venture in Freeport. Their ship went down and they almost drowned. Styria saved them and they now make their home on our island and supply us with weapons and armor as well as selling to adventurers.") + elseif(e.message:findi("purity belt")) then + e.self:Say("All warriors of the Sisterhood of Erollisi wear purity belts. Ho hum... They keep us from impure acts. Along with purity comes great strength. That is what Styria always tells us. She holds the only key to the belts.") + elseif(e.message:findi("pirate")) then + e.self:Say("We have been plagued by buccaneers who call themselves the Pirates of Gunthak. We saw their ship go down nearby. They have taken refuge on a nearby island. They are attempting to take over our isle so they can commandeer the next ship. Go and ask Styria of the Pirates. She is hiring adventurers to hunt them down.") + elseif(e.message:findi("ship") or e.message:findi("boat")) then + e.self:Say("The ship comes and goes once a day, I believe. Though I can't imagine why you would ever want to leave our beautiful island.") + end +end \ No newline at end of file diff --git a/oot/Stormbreaker.lua b/oot/Stormbreaker.lua new file mode 100644 index 0000000..ea9f650 --- /dev/null +++ b/oot/Stormbreaker.lua @@ -0,0 +1,45 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Boat spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + -- Freeport + if(e.self:GetGrid() == 60 and e.wp == 18) then + eq.debug("Boat to Freeport (60) has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(10,-1853,-748,-80,0); -- Zone: arena2 + end, + function(ent) + if(ent:GetBoatID() == 770) then + return true; + end + return false; + end + ); + -- Butcher + elseif(e.self:GetGrid() == 61 and e.wp == 16) then + eq.debug("Boat to Butcher (61) has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + -- This grid zones a few seconds after the other. + -- eq.spawn_condition("oot",1,0); + -- eq.spawn_condition("oot",2,0); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(68,4591,2090,-15,0); + end, + function(ent) + if(ent:GetBoatID() == 770) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/oot/Styria_Fearnon.lua b/oot/Styria_Fearnon.lua new file mode 100644 index 0000000..a3cdfb6 --- /dev/null +++ b/oot/Styria_Fearnon.lua @@ -0,0 +1,39 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to my island. I always welcome visitors, but I would prefer that your stay not last too long. My warriors are sometimes tempted by others. That is why they all wear purity belts. I should warn you, also, to be on the lookout for the [Pirates of Gunthak]."); + elseif(e.message:findi("pirates of gunthak")) then + e.self:Say("The Pirates of Gunthak have been stranded on a nearby island. Their ship was sunk by some unknown water beast. They now attempt to take over this island and commandeer the first ship they encounter. I am looking for brave adventurers to hunt the rogues. Do you wish to hunt the pirates or are you waiting for the next ship?"); + elseif(e.message:findi("hunt the pirates")) then + e.self:Say("Go and seek them out. They are on a nearby island. You will have to swim if you have no boat. Each pirate wears the pirate earring of the Pirates of Gunthak. I shall reward you for each earring you return to me. They have also stolen the Bracers of Erollisi from us. Their leader may have the pair. Return it to me and I shall be very appreciative."); + elseif(e.message:findi("sentry xyrin")) then + e.self:Say("What? Why are you so concerned for Sentry Xyrin? She returned to Freeport last night right before.. Oh!! Oh, dear!! Right before the storm hit. If she did not make it back to Freeport. I fear she has drowned or is shipwrecked upon one of the nearby islands!! You must find her!"); + eq.unique_spawn(69132,0,0,-7332,-612,1,90); -- NPC: Sentry_Xyrin + elseif(e.message:findi("purity belt")) then + e.self:Say("The purity belts were devised with the help of the dwarven smiths. Each warrior of the Sisterhood of Erollisi wears one. It keeps them from impure acts. Only I hold the key.") + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13337})) then -- Bracers of Erollisi + e.self:Say("Oh!! Thank you!! We are so grateful to you. I offer you this as reward. It is one of the dwarven smith's finest works."); + -- confirmed live factions + e.other:Faction(e.self,246,20,0); -- Faydarks Champoins + e.other:Faction(e.self,279,5,0); -- King Tearis Thex + e.other:Faction(e.self,310,5,0); -- Soldiers of Tunare + e.other:Faction(e.self,226,5,0); -- Clerics of Tunare + e.other:Faction(e.self,234,-5,0); -- Crushbone Orcs + e.other:QuestReward(e.self,0,math.random(5),math.random(5),0,eq.ChooseRandom(5007,5008,3101,3102,3103,3104,3105,3106,3107,3108,3109,3110,3111,3112),250); -- Axe, Broad Sword, All medium ringmail pieces + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13336})) then -- Pirate Earrings + e.self:Say("Good work. That is one less pirate to worry about. We do not have much, but take this as payment."); + -- confirmed live factions + e.other:Faction(e.self,246,5,0); -- Faydarks Champoins + e.other:Faction(e.self,279,1,0); -- King Tearis Thex + e.other:Faction(e.self,310,1,0); -- Soldiers of Tunare + e.other:Faction(e.self,226,1,0); -- Clerics of Tunare + e.other:Faction(e.self,234,-1,0); -- Crushbone Orcs + e.other:QuestReward(e.self,0,math.random(5),math.random(5),0,eq.ChooseRandom(13339,13342,7017,13340,13075),100); -- Item(s): Aviak Feather (13339), Conch Shell (13342), Fishing Spear (7017), Kiola Nut (13340), Shark Skin (13075) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/oot/a_lesser_spirit.lua b/oot/a_lesser_spirit.lua new file mode 100644 index 0000000..c8df90d --- /dev/null +++ b/oot/a_lesser_spirit.lua @@ -0,0 +1,37 @@ +--This will start Shaman Epic 1.0 +function event_spawn(e) + eq.set_timer("depop",600000); +end + +function event_say(e) + local randomize = math.random(100); + + if(e.other:GetFaction(e.self) < 6) then + if(e.message:findi("hail")) then --Part of Shaman Epic 1.0 + e.self:Say("Did you take this person's life, shaman?"); + elseif(e.message:findi("yes")) then --Part of Shaman Epic 1.0 + e.self:Say("Why have you taken this person's life, " .. e.other:GetCleanName() .. "? Did he threaten your life? Did you dislike him? Or was his death a profit to you in some way?"); + elseif(e.message:findi("threatened my life")) then --Part of Shaman Epic 1.0 + e.self:Say("I see. It brings me sadness to see another die, but his heart was black and a great nothingness. His body will become the grass now. Thank you for what you have done, shaman."); + elseif(e.message:findi("what are you") or e.message:findi("who are you")) then --Part of Shaman Epic 1.0 + e.self:Say("What, or who, I am isn't as important as what, or who, WE are. Do you wish to know more, shaman?"); + elseif(e.message:findi("know more")) then --Part of Shaman Epic 1.0 + e.self:Say("That is good, " .. e.other:GetCleanName() .. ". Take this gem. It is a part of us like the clouds to the sky and is a wonderful gift from the grandfather. Take this gem to where the humans gather to spoil the land and water. Some call it a port. There you will find one of us, a shaman like yourself. Give him the gem and perhaps he will tell you more of the spirits."); + e.other:SummonCursorItem(1665); -- Item: Tiny Gem + end + elseif(randomize > 50) then + e.self:Say("I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself."); + else + e.self:Say("Oh look, a talking lump of refuse. How novel!"); + end +end + +function event_timer(e) + eq.depop(); +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/oot/player.lua b/oot/player.lua new file mode 100644 index 0000000..1d25ac3 --- /dev/null +++ b/oot/player.lua @@ -0,0 +1,27 @@ +function event_enter_zone(e) + local qglobals = eq.get_qglobals(); + + if(e.self:GetBoatID() == 770 or e.self:GetBoatID() == 771) then + eq.signal(69078,1); -- NPC: Zachariah_Reigh + else + eq.signal(69078,2); -- NPC: Zachariah_Reigh + end + + if(qglobals.strongbox ~= nil) then + eq.create_ground_object(13860, -9205, -433, -293, 0, 3000000); + eq.delete_global("strongbox"); + end +end + +function event_board_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug(" At: " .. hour .. ":" .. minute .. " BoatID: " .. e.boat_id .. " was boarded. Its name is: " .. e.self:GetBoatName() .. ".", 1); +end + +function event_leave_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + eq.debug(" At: " .. hour .. ":00 I left BoatID: " .. e.boat_id .. ".", 1); +end \ No newline at end of file diff --git a/oot/tainted_seafury_cyclops.lua b/oot/tainted_seafury_cyclops.lua new file mode 100644 index 0000000..fbcf50c --- /dev/null +++ b/oot/tainted_seafury_cyclops.lua @@ -0,0 +1,8 @@ +function event_death_complete(e) + eq.spawn2(69142,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/overthere/#High_Priest_I-Xar.lua b/overthere/#High_Priest_I-Xar.lua new file mode 100644 index 0000000..1d90af9 --- /dev/null +++ b/overthere/#High_Priest_I-Xar.lua @@ -0,0 +1,28 @@ +function event_signal(e) + if(e.signal==1) then + eq.depop_with_timer(); + end + if(e.signal==2) then + e.self:MoveTo(2734,2476,-49,195,1); + end + if(e.signal==3) then + e.self:SetRunning(true); + eq.start(14); + end +end + +function event_waypoint_arrive(e) + if(e.wp==28) then + e.self:SetRunning(false); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/#Kurron_Ni.lua b/overthere/#Kurron_Ni.lua new file mode 100644 index 0000000..81065a3 --- /dev/null +++ b/overthere/#Kurron_Ni.lua @@ -0,0 +1,13 @@ +-- Part of SK Epic 1.0 +function event_spawn(e) + eq.set_timer("depop", 3600000); +end + +function event_timer(e) + eq.depop(); +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/overthere/#an_undead_marine.lua b/overthere/#an_undead_marine.lua new file mode 100644 index 0000000..2386812 --- /dev/null +++ b/overthere/#an_undead_marine.lua @@ -0,0 +1,9 @@ +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/93182.lua b/overthere/93182.lua new file mode 100644 index 0000000..898cc95 --- /dev/null +++ b/overthere/93182.lua @@ -0,0 +1,27 @@ +--this quest needs to remain ID based because it only applies to this +--specific version of the mob, there are several with this name + +-- A skeleton Worker, Overthere +-- This one is indiff to everyone, other ones around are RTA. +-- give hime : spectacles, forsaken pariah mask, Evergreen Ivy Ringband, Green Death Rum +-- Necro skull cap 5, returns A metal key, you have to give it to Tin Banker Assistant + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12848, item2 = 12850, item3 = 12851, item4 = 12610}, 0)) then + if(e.other:GetLevel() > 20) then + e.other:QuestReward(e.self,0,0,0,0,12849); + else + e.self:Say('You will have to be more skilled to complete that quest.'); + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12848}, 0)) then + e.self:Emote("a skeleton worker stops working and begins to open his creaking jaw. 'I live to study and quench my thirst. I live to Bash the Faces of Pariah and entangle myself in the ivy of evergreen. I live. I want to remember.'"); + e.other:QuestReward(e.self,0,0,0,0,12848); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/93304.lua b/overthere/93304.lua new file mode 100644 index 0000000..a30c0a9 --- /dev/null +++ b/overthere/93304.lua @@ -0,0 +1,14 @@ +function event_spawn(e) + eq.signal(93087,1); -- General_V`Deers + eq.signal(93024,1); -- Dragoon_T`Vem + eq.signal(93084,1); -- Dragoon_T`Vex + eq.signal(93125,1); -- Dragoon_V`Lask + eq.signal(93086,1); -- Dragoon_V`Resh + eq.signal(93124,1); -- Dragoon_Barber_W`Selo + eq.signal(93186,1); -- #High_Priest_I`Xar +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/overthere/93305.lua b/overthere/93305.lua new file mode 100644 index 0000000..2055047 --- /dev/null +++ b/overthere/93305.lua @@ -0,0 +1,14 @@ +function event_spawn(e) + eq.signal(93087,2); -- NPC: General_V`Deers + eq.signal(93186,2); + eq.signal(93124,2); -- NPC: Dragoon_Barber_W`Selo + eq.signal(93024,2); -- NPC: Dragoon_TVem + eq.signal(93084,2); -- NPC: Dragoon_T`Vex + eq.signal(93125,2); -- NPC: Dragoon_V`Lask + eq.signal(93086,2); -- NPC: Dragoon_V`Resh +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/overthere/Alchemist_Granika.lua b/overthere/Alchemist_Granika.lua new file mode 100644 index 0000000..c5e3115 --- /dev/null +++ b/overthere/Alchemist_Granika.lua @@ -0,0 +1,44 @@ +--Alchemist Granika will help us to discern the glowing cliff golem from the rest, the one who holds our Chunk of Tynnonium. He is part of the eighth and final quest in the Greenmist line. +function event_spawn(e) + eq.set_timer("sit",10000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("If you were sent to me, show proof or be gone from my sight!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3892})) then + e.self:Say("If Heirophant Oxyn has sent this with you, I can assume that our visions were corect. The new age is calling us from the heavens. Prepare for battle. I will take this solution to the Outlander's gates and use it to reveal the location of the metal of prophecy. Should I not return, you will only need to find the creature that glows without the use of a torch. Deklium glows when it gets near the smallest trace of tynnomium. Prepare for battle, Crusader... I am off!"); + eq.stop_timer("sit"); + eq.start(4); + eq.set_timer("Depop",8000); + eq.spawn2(93002,46,0,2240,2764,-49,190); -- a glowing cliff golem + eq.spawn2(93005,5,0,2240,2698,-49,190); -- Watch_Sergeant_Grolj + eq.spawn2(93004,47,0,2260,2794,-49,190); -- an_undead_marine + eq.spawn2(93004,48,0,2260,2698,-49,190); -- an_undead_marine + eq.spawn2(93004,49,0,2280,2794,-49,190); -- an_undead_marine + eq.spawn2(93004,50,0,2280,2698,-49,190); -- an_undead_marine + eq.signal(93077,0,0); -- NPC: a_cliff_golem + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + if(e.timer == "Depop") then + eq.stop_timer("Depop"); + eq.depop_with_timer(); + elseif(e.timer == "sit") then + e.self:SetAppearance(1); + eq.stop_timer("sit"); + end +end + +--Submitted by Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Astral_Projection.lua b/overthere/Astral_Projection.lua new file mode 100644 index 0000000..ab35b54 --- /dev/null +++ b/overthere/Astral_Projection.lua @@ -0,0 +1,23 @@ +-- Monk Epic 1.0 +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("ignores you."); + elseif(e.message:findi("yes")) then + e.self:Say("I assume you have read about us and spoken with the old man, Kaiaren. Since that time, I have grown in power and influence to a point unseen by any mortal. Unfortunately, I will have to demonstrate a small amount of my skill when I destroy you. This is bad. I must decide whether you are worthy to see the techniques I wield, even though you will die shortly thereafter. Tell me, " .. e.other:GetCleanName() .. ", who are you?"); + elseif(e.message:findi("i am the one")) then + e.self:Emote("chuckles."); + e.self:Say("Thats quite a boast, " .. e.other:GetCleanName() .. ". All beings strive for nothingness at the most basic level of sentience. However, almost none ever achieve this. Not even I have discarded my ego yet and you stand here and tell me you have? Perhaps you will be a worthy opponent. I shall be waiting in the great lake near here. Take that token as proof of things to come for you. If you still wish to throw your life away so needlessly, return it to my image there. I await your decision."); + eq.depop_with_timer(); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1686})) then --Trunt's Head + e.self:Emote("looks up and down."); + e.self:Say("Hmmm, I was hoping for something more impressive. This is just a small token of the last person who tried to interfere with my plans. He failed as shall you. But tell me truly, are you the one who has so rudely removed my students?"); + e.other:QuestReward(e.self,0,0,0,0,1687); --Eye of Kaiaren + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/overthere/Bloated_Belly.lua b/overthere/Bloated_Belly.lua new file mode 100644 index 0000000..60aa6e0 --- /dev/null +++ b/overthere/Bloated_Belly.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Boat spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + if(e.wp == 13) then + eq.debug("Boat to timorous (15) has reached the docks. Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + elseif(e.wp == 29) then + eq.debug("Boat to timorous (15) has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(96,1159,-1479,18, 0); + end, + function(ent) + if(ent:GetBoatID() == 839) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/overthere/Brinaa_Darkpact.lua b/overthere/Brinaa_Darkpact.lua new file mode 100644 index 0000000..8995a52 --- /dev/null +++ b/overthere/Brinaa_Darkpact.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". It's nice to see more able bodies around this part of the outland. We came here in search of the magical powers that are supposed to exist in the ruins and dungeons of this area. We need you to bring back evidence of this power in the form of scrolls. I can't offer much coin in payment, but I do have some rare scrolls I already brought back that may interest you, if you wish to [help in the search]."); + elseif(e.message:findi("help in the search")) then + e.self:Say("Excellent! Here is what we are still seeking. The scrolls of Death Pact. Upheaval. Yaulp IV. and Reckoning. If you return one of these to me. I'll release one of my rare scrolls to you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {19203, 19205, 19209, 19212}); + if(count > 0) then + repeat + e.self:Say("Here is the scroll that I promised. We have both gained much knowledge today. I hope to do business with you again soon. Farewell!"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(19210,19224,19420,19206),1000); + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Bukuku_Wolffeetz.lua b/overthere/Bukuku_Wolffeetz.lua new file mode 100644 index 0000000..5b22bf8 --- /dev/null +++ b/overthere/Bukuku_Wolffeetz.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Har har har! Yu funy lukking. Oooo.. do u hav doze [smarty writin's]?"); + elseif(e.message:findi("smarty writin")) then + e.self:Say("Me not know what dem ar for shure. Dem only hav dees names. Umm.. let me see if I can member dem. Taaalisman de umm.. Jasinth. Dat's one of dem. Spirited of Scaley?? OH!! Dis my favorite. Kripple. Den the last is the painful one. Canaabaalize canaabaalize canaabaalize. Yep, dat super duper one. Bring me bak one of dem, me trade."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {19269, 19238, 19264, 19272}); + if(count > 0) then + repeat + e.self:Say("Here is the scroll that I promised. We have both gained much knowledge today. I hope to do business with you again soon. Farewell!"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(19267,19271,19274,19266),1000); + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Captain_Rottgrime.lua b/overthere/Captain_Rottgrime.lua new file mode 100644 index 0000000..32d8d7e --- /dev/null +++ b/overthere/Captain_Rottgrime.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("has numerous cracks and holes in his skull from many battles. 'Attention, marine!! You will go into battle and fear nothing! You shall prevail over one enemy and then you shall be sent back into battle! We [shall not allow those sarnak to overtake the Danak shipyards]! Is that clear marine?!!'"); + elseif(e.message:findi("shall not allow those sarnak to overtake the danak shipyards")) then + e.self:Say("Stand up straight!! That is correct marine!! YOU shall not allow the sarnak to overtake the shipyards!! Head out to the frontlines, marine!! Kill the berzerkers and return their war braids to me!! For every four, you shall earn your wages!! Now get to the front, marine!! Move it!! Move it!!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Keep up the good work, marine."; + + --Handin: 4x a Sarnak War Braid (12982) + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12982, item2 = 12982, item3 = 12982, item4 = 12982},1,text)) then + e.self:Say("Great job marine!! Word of your heroics shall be passed on to the Admiral. If you don't have a shield then take one, if you do then get back to the frontlines. There is no time for R n R!! Move it marine!! Or you'll be pushing Danak till the cockatrice crow!!"); + e.other:Faction(e.self,318,8); -- +Venril Sathir + e.other:QuestReward(e.self,0,0,math.random(1,4),0,12981,10); --Guard of the Marines + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if(e.wp==2) then + e.self:Say("Atteeennntion !!"); + eq.signal(93126); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Dom_K-Perl.lua b/overthere/Dom_K-Perl.lua new file mode 100644 index 0000000..4924b26 --- /dev/null +++ b/overthere/Dom_K-Perl.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to my little refuge of the mind. Here you may find passage to the grand worlds within a fine book. I have few books for sale, but any good book is rare in the realm of Norrath. On occasion, I even have [rare finds]. Be sure to use good lighting when reading. Strain the brain, not the eye, I always say."); + elseif(e.message:findi("rare finds")) then + e.self:Emote("starts rummaging through a pile of books and scrolls."); + e.self:Say("Oh yes, yes, yes. Rare books occasionally make their way to me. Ahhh!! I have one title, Before Green. Sounds like a bit of fiction. What would you like to [purchase]?"); + elseif(e.message:findi("purchase")) then + e.self:Emote("puts on a monocle and begins to look over the book."); + e.self:Say("Hmmmm, Looks fairly valuable. In honor of the book's title, I shall allow you to trade for it with a fine emerald. What a bargain!"); + elseif(e.message:findi("scribed tome pages")) then + e.self:Say("I can create a special magic scribed tome page. It has no words, but is not meant to be read. To create one, I will need some illweed parchment and my fee of 2 gold pieces. Once I have these, you may have one scribed tome page."); + elseif(e.message:findi("spectacle")) then + e.self:Say("My spare reading spectacles were stolen by froglok raiders in the swamps. I gave chase but the little buggers hop faster than I run. They were hopping with such fury that they dropped a [tome binder]."); + elseif(e.message:findi("binder")) then + e.self:Say("I have a tome binder with the title 'The Origins of Pain'. Sounds like good reading, but it appears to be missing the pages it once held. If you want it, I shall give it to you for a bottle of blood ink from Cabilis and my spare reading spectacles."); + end +end +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10029})) then --there is no dialogue for this hand in on live, just hands you the book + e.other:QuestReward(e.self,0,0,0,0,18068,500); + end + item_lib.return_items(e.self, e.other, e.trade) -- return unused items +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Dragoon_Barber_W-Selo.lua b/overthere/Dragoon_Barber_W-Selo.lua new file mode 100644 index 0000000..92f68b2 --- /dev/null +++ b/overthere/Dragoon_Barber_W-Selo.lua @@ -0,0 +1,27 @@ +function event_signal(e) + if(e.signal==1) then + eq.stop(); + e.self:MoveTo(2864,2997,-49,35,true); + elseif(e.signal==2) then + e.self:MoveTo(2733,2490,-49,195,true); + elseif(e.signal==3) then + e.self:SetRunning(true); + eq.start(13); + end +end + +function event_waypoint_arrive(e) + if(e.wp==28) then + e.self:SetRunning(false); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Dragoon_T-Vex.lua b/overthere/Dragoon_T-Vex.lua new file mode 100644 index 0000000..731a2ba --- /dev/null +++ b/overthere/Dragoon_T-Vex.lua @@ -0,0 +1,27 @@ +function event_signal(e) + if(e.signal==1) then + eq.stop(); + e.self:MoveTo(2723,2366,-49,198,true); + elseif(e.signal==2) then + e.self:MoveTo(2734,2476,-49,195,true); + elseif(e.signal==3) then + e.self:SetRunning(true); + eq.start(10); + end +end + +function event_waypoint_arrive(e) + if(e.wp==28) then + e.self:SetRunning(false); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Dragoon_TVem.lua b/overthere/Dragoon_TVem.lua new file mode 100644 index 0000000..66b53a9 --- /dev/null +++ b/overthere/Dragoon_TVem.lua @@ -0,0 +1,27 @@ +function event_signal(e) + if(e.signal==1) then + eq.stop(); + e.self:MoveTo(2390,2527,-49,137,true); + elseif(e.signal==2) then + e.self:MoveTo(2733,2470,-49,195,true); + elseif(e.signal==3) then + e.self:SetRunning(true); + eq.start(9); + end +end + +function event_waypoint_arrive(e) + if(e.wp==28) then + e.self:SetRunning(false); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Dragoon_V-Lask.lua b/overthere/Dragoon_V-Lask.lua new file mode 100644 index 0000000..5573dba --- /dev/null +++ b/overthere/Dragoon_V-Lask.lua @@ -0,0 +1,27 @@ +function event_signal(e) + if(e.signal==1) then + eq.stop(); + e.self:MoveTo(2710,3141,-49,52,true); + elseif(e.signal==2) then + e.self:MoveTo(2733,2480,-49,195,true); + elseif(e.signal==3) then + e.self:SetRunning(true); + eq.start(11); + end +end + +function event_waypoint_arrive(e) + if(e.wp==28) then + e.self:SetRunning(false); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Dragoon_V-Resh.lua b/overthere/Dragoon_V-Resh.lua new file mode 100644 index 0000000..2b36dbf --- /dev/null +++ b/overthere/Dragoon_V-Resh.lua @@ -0,0 +1,27 @@ +function event_signal(e) + if(e.signal==1) then + eq.stop(); + e.self:MoveTo(2063,2798,-49,132,true); + elseif(e.signal==2) then + e.self:MoveTo(2734,2464,-49,195,true); + elseif(e.signal==3) then + e.self:SetRunning(true); + eq.start(12); + end +end + +function event_waypoint_arrive(e) + if(e.wp==28) then + e.self:SetRunning(false); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Drixiv_Arcut.lua b/overthere/Drixiv_Arcut.lua new file mode 100644 index 0000000..9275f9d --- /dev/null +++ b/overthere/Drixiv_Arcut.lua @@ -0,0 +1,70 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("sighs heavily and after a long while says, 'Leave us, " .. e.other:Race() .. ". Leave us to our eternal damnation."); + elseif(e.message:findi("curse")) then + e.self:Emote("twists his face into a frown and says, 'You read what's written, " .. e.other:Race() .. ". It's clear enough so we won't bother to explain the details. We can only stand our guard and hope for [redemption]."); + elseif(e.message:findi("redemption")) then + e.self:Emote("It's very simple, " .. e.other:GetCleanName() .. "! We are fallen! We seek redemption! We guard our 'brothers' here among the Howling Stones until we are relieved. Whether that will ever happen, we do not know. We can only hope that by providing the great warriors of the legion with our [ancient armor], we will earn salvation."); + elseif(e.message:findi("armor")) then + e.self:Say("You wish the armor of our ancestors? The armor donned by the Guard whose duty was to protect the Chosen? A warrior relies not on strength alone, but many virtues. If a warrior learns to balance each virtue, then he may be fit to guard the Chosen. Each piece of armor reflects a [virtue], and each virtue must be learned before the armor is given."); + elseif(e.message:findi("virtue")) then + e.self:Say("The virtues symbolized by the armor I keep are confidence and righteousness. The [boots], [greaves], [gauntlets], and [bracers]. Bring me proof that you have mastered these virtues as well as a piece of Banded armor of the type you desire and the appropriate armor shall be yours, " .. e.other:GetCleanName() .. ". If you wish the other pieces you must speak to my brother."); + elseif(e.message:findi("boots")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("You wish the boots worn by the ancients? Then you must first master the virtue of confidence. For our brothers of the dead, confidence is the virtue that allows them to control the forces that would tear them apart if they knew it not. When a warrior steps, he must be confident, for a weak step cannot crush your enemies. Take this note to the current Harbinger in Cabilis and learn from him."); + e.other:SummonCursorItem(14794); -- Item: Illegible Note: Boots + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("bracer")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The bracers of our ancestors embody righteousness. When we strike, and our forearms are soaked in the blood of our enemies, our purpose must be pure. Else that blood will burn our souls and anger that which we live for. Go and find the Archduke in Cabilis and give him my note. He will teach you of righteousness. For if our chosen did not know righteousness, our people would not be. Go!"); + e.other:SummonCursorItem(14791); -- Item: Illegible Note: Bracer + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("guantlets")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Our hands are our most useful and deadly instruments, after our minds. When we use them other than in service of our lord and ancestors, our actions are false. Without knowing righteousness we can never be sure if our actions are in the name of fear. The Chosen, the Crusaders of Greenmist, know fear intimately. Their actions are never without the blessing of our lord. Take this note to the Archduke. He will recognize my writing and instruct you."); + e.other:SummonCursorItem(14792); -- Item: Illegible Note: Gauntlets + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("greaves")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Our legs move us forward. If we move with hesitance we will surely fall and leave our charge exposed. Before you can wear the greaves, you must learn from the Brood of Kotiz. For if they did not wield their powers over the dead with confidence, their life forces would be sucked from them instantly, leaving them empty husks. Take this note to the Harbinger and listen to his instructions."); + e.other:SummonCursorItem(14793); -- Item: Illegible Note: Greaves + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14813, item2 = 3064})) then + e.other:QuestReward(e.self,0,0,0,0,4983,10000); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14808, item2 = 3061})) then + e.other:QuestReward(e.self,0,0,0,0,4980,10000); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14831, item2 = 3063})) then + e.other:QuestReward(e.self,0,0,0,0,4982,10000); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14809, item2 = 3062})) then + e.other:QuestReward(e.self,0,0,0,0,4981,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Dyth_X-Teria.lua b/overthere/Dyth_X-Teria.lua new file mode 100644 index 0000000..4e40223 --- /dev/null +++ b/overthere/Dyth_X-Teria.lua @@ -0,0 +1,46 @@ +--Dyth_X-Teria.pl +--Brain Bite (The Overthere) + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("appears to be the local master of wizardry. His garb clearly comes from the dark city of Neriak as it bears a black sun emblem."); + e.self:Say("Speak!! I am dispatched from Neriak to this land by order of the king. I shall research [new spells] and aid the adventuring wizards. My knowledge of wizardry is offered to all in hopes of gaining information about Kunark."); + elseif(e.message:findi("new spells")) then + e.self:Say("Within this lost land could lie the knowledge of extinct civilizations. I am ordered to seek out this knowledge for the empire of Neriak. So far, all I have discovered is a way to create a spell of my own design. I call it [Brain Bite]."); + elseif(e.message:findi("brain bite")) then + e.self:Say("If you wish to own a copy of MY spell, Brain Bite, I would be glad to give you one. All I ask is that you [gather a few souls] for me."); + elseif(e.message:findi("gather a few souls")) then + e.self:Emote("reveals three ornate bottles."); + e.self:Say("While I finished my research on Brain Bite, I encountered three [interlopers] who wished to steal my spell. I had the dragoon garrison track them down and dispatch them. Unfortunately, I forgot to instruct them to trap their souls with these bottles. Do you want to [take the bottles] and finish the job?"); + elseif(e.message:findi("interlopers")) then + e.self:Say("The garrison report was sloppy, to say the least. They informed me that Hampton was slain near some ruins within a jungle infested by raptors. Mardon was slain in an ancient city found deep in a jungle. Ryla was killed in a hidden fortress guarded by fierce armored wolves who walked on their hind legs."); + elseif(e.message:findi("take the bottles")) then + e.self:Say("The bottles also require a gem. You will fetch me the three gems and I will prepare the bottles and give them to you to finish the job. I need an onyx, a peridot and a star rose quartz."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Only three souls will get you my knowledge, wizard."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10027})) then-- Onyx + e.self:Say("Identify this when the time comes. It is Ryla's prison."); + e.other:QuestReward(e.self,0,0,0,0,12964,0); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10028})) then-- Peridot + e.self:Say("This bottle is for the one called Hampton. If you look well, you can see his name."); + e.other:QuestReward(e.self,0,0,0,0,12962,0); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10021})) then-- Star Rose Quartz + e.self:Say("This bottle is for Mardon. You may be able to identify his name upon it."); + e.other:QuestReward(e.self,0,0,0,0,12963,0); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12965, item2 = 12966, item3 = 12967},1,text)) then-- Bottle of Swirling Smoke (Hampton), Bottle of Swirling Smoke (Mardon), Bottle of Swirling Smoke (Ryla) + e.self:Emote("empties the bottle's smoke into a very large glass urn filled with similar swirling smoke. You think you hear the cries of a thousand tortured souls. He then closes the urn and hands you a scroll. 'Here is your reward. It will blast a foe's brain and hopefully, they may forget their hatred."); + e.other:Faction(e.self,318, 30);--Add some Venril Sathir faction + e.other:QuestReward(e.self,0,0,0,0,12968,3322176);--Scroll of Brain Bite--3% level 45 xp, + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Galdon_Vok_Nir.lua b/overthere/Galdon_Vok_Nir.lua new file mode 100644 index 0000000..f78a86b --- /dev/null +++ b/overthere/Galdon_Vok_Nir.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Please do not harm me. I am not the one who brought the outsiders to our land. I am innocent and deserve to return to my people."); + elseif(e.message:findi("di nozok")) then + e.self:Emote("opens his eyes wide. 'Oh! You found one of my family's fine canopics. That particular one was made for the legendary mystic, Di Nozok. If you think you're going to open it, think again. I know how, and will gladly [open the Nozok canopic], for a price. I heard the second was stolen by a sarnak shaman."); + elseif(e.message:findi("open.* canopic")) then + e.self:Say("Want it opened? I will need the two [keys of Dai], the Dai skull canopic, and my fee, 400 gold coins."); + elseif(e.message:findi("sealed")) then + e.self:Say("I have heard of such things. You must have stumbled upon an ancient jar devised by one of my long-dead ancestors. They were fine craftsmen. I do not share their gift, but I do know the secret of the locks. If you have one of the ancient Vok Nir canopics, allow me to open it for you."); + elseif(e.message:findi("key")) then + e.self:Say("There are two keys of Dai. They were made of ceramic and were also crafted to look like warrior totems. I once broke one as a child and my grandfather got very angry. He lashed me good! I do not know what the big fuss was about; he easily put them back together using some sort of clay."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "To open the canopic, I require the two Dai keys, the Dai skull canopic and 400 gold coins."; + + --Turn in the 2 totems and the canopie of Di Nozok and 400 gold pieces + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12743, item2 = 12744, item3 = 12742, gold = 400},1,text1)) then + e.self:Emote("takes the two keys. He inserts and twists them, one at a time, in hidden slots on the Dai skull canopic. Suddenly, it pops open and he hands you an iksar skull. 'Here you are,' he says, 'I hope it is what you were looking for."); + e.other:QuestReward(e.self,0,0,0,0,12740); -- Give the player the Iksar Skull + end + item_lib.return_items(e.self, e.other, e.trade) --return items if not the ones required +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/General_V-Deers.lua b/overthere/General_V-Deers.lua new file mode 100644 index 0000000..424ccaf --- /dev/null +++ b/overthere/General_V-Deers.lua @@ -0,0 +1,40 @@ +function event_signal(e) + if(e.signal==1) then + e.self:Say("Fall out and report to your guard posts."); + eq.stop(); + e.self:MoveTo(2139,2675,-49,72,true); + elseif(e.signal==2) then + e.self:MoveTo(2717,2500,-49,65,true); + eq.set_timer("getset",525000); + end +end + +function event_timer(e) + if(e.timer == "getset") then + eq.stop_timer("getset"); + e.self:Say("Dragoons!! Attention!! Right face!!"); + eq.start(8); + end +end + +function event_waypoint_arrive(e) + if(e.wp==1) then + e.self:Say("Forward.. march!! Your left.. Your.. left, right, march! Eighty.. second.. dragoon soldier!! Pick up your weapon and follow me!!"); + eq.signal(93186,3); + eq.signal(93124,3); -- NPC: Dragoon_Barber_W`Selo + eq.signal(93024,3); -- NPC: Dragoon_TVem + eq.signal(93084,3); -- NPC: Dragoon_T`Vex + eq.signal(93125,3); -- NPC: Dragoon_V`Lask + eq.signal(93086,3); -- NPC: Dragoon_V`Resh + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Gogu_the_Smasher.lua b/overthere/Gogu_the_Smasher.lua new file mode 100644 index 0000000..b9d15af --- /dev/null +++ b/overthere/Gogu_the_Smasher.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("what realm of heroes")) then + e.self:Say("Me dund 'xactly know wat dat is. but me kno' me part o'it. Me hero 'cause [Cazic] sed so. Der many heroes from Norrath in it. Me not as smart as [Kizrak the Tyrant] but me jus' as strong. Me 'pose to find heroes like me dat like to bash dorfs an' dund like gud things."); + elseif(e.message:findi("who cazic")) then + e.self:Say("Cazic-Thule is da Faceless. He is Lord of Fear an' nobody kin mess wit him. He liked da way I SMASH things. He made me a hero an' told me to find others dat SMASH as gud as me. Me was a basher for Oggok befoor dat."); + elseif(e.message:findi("who kizrak the tyrant")) then + e.self:Say("Kisrak the Tyrant is 'nother hero from da Realm. Kisrak is reel smart an' stuff. but he like to smash tuu. He in Oggok right now lookin' fer heroes."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Impaler_Tzilug.lua b/overthere/Impaler_Tzilug.lua new file mode 100644 index 0000000..a1cc821 --- /dev/null +++ b/overthere/Impaler_Tzilug.lua @@ -0,0 +1,13 @@ +-- Test of Charm - enchanter epic - Enchanted Emerald +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10634})) then + e.self:Say("Your bidding has been done, now leave this land and never return."); + e.other:QuestReward(e.self,0,0,0,0,10621,10000); + end + if(e.other:GetFaction(e.self) > 4) then + eq.attack(e.other:GetName()); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/overthere/Kurron_Ni.lua b/overthere/Kurron_Ni.lua new file mode 100644 index 0000000..7b5b322 --- /dev/null +++ b/overthere/Kurron_Ni.lua @@ -0,0 +1,38 @@ +-- Part of SK Epic 1.0 +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Out of my way, stranger! I am on a delicate mission; interfere with my search and I shall relieve you of your head! Bother me no more."); + elseif(e.message:findi("seek")) then + e.self:Say("I have traveled here in hopes of finding a soul worthy of assisting me in completing my mission."); + elseif(e.message:findi("i am worthy")) then + e.self:Say("I doubt it, but I have been wrong before. Before I share with you the details of my mission, however, you must first prove your worthiness. Agreed?"); + elseif(e.message:findi("agreed")) then + e.self:Say("Very well then, my new friend. I have an acquaintance that stands in need of three pieces of Darkforge Armor. He requires the breast, greaves and helm to complete his set. I also must pay back a loan that has come due in the amount of 900 platinum. Return this to me and I shall share with you my dark mission, and the immeasurable reward that will be earned at its completion. Show your face here without fulfilling my request and I will offer you on the altar to Innoruuk himself. Be off!"); + elseif(e.message:findi("mission")) then + if(e.other:GetFaction(e.self) < 7) then + e.self:Say("My mission is none of your concern! Now you die, pitiful fool!"); + eq.attack(e.other:GetName()); + else + e.self:Say("My mission was to find a pathetic shadowknight and bring him closer to Innoruuk. You volunteered. By exercising my superior powers of persuasion, I have now taken from you a fine suit of armor and enough coin to ensure that I will be sleeping neither soberly nor alone for quite some time! Now I ask you, worthy shadowknight, do you not feel the fires of hatred coursing through your veins like never before? That is the very reward I spoke of! You have been brought closer to my master. My mission is complete! You foolish excuse for a dark knight, I shall take your head and tell all of your generous donation to the mighty Teir'Dal rogues!"); + eq.attack(e.other:GetName()); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3141, item2 = 3145, item3 = 3140, platinum = 900})) then --Platinum x 900, Darkforge Breastplate, Darkforge Greaves, Darkforge Helm + e.self:Say("Well done, " .. e.other:GetCleanName() .. ", I honestly didn't expect to see you again. Yes, yes, this is perfect! My mission is nearly complete!"); + e.other:Faction(e.self,404,3); -- Faction: True Spirit + eq.unique_spawn(93006,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Quest by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Modani_Qu-Loni.lua b/overthere/Modani_Qu-Loni.lua new file mode 100644 index 0000000..b8665a6 --- /dev/null +++ b/overthere/Modani_Qu-Loni.lua @@ -0,0 +1,37 @@ +-- Test of Illusion - enchanter epic quest - staff of the serpent +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("The hidden self inside a myriad of magic is one that walks quite softly. Yes, that is what you must seek."); + elseif(e.message:findi("ready")) then + e.self:Say("Scattered throughout the world are various items. To prove your worth, go collect these and return them to me. The Xolion Rod, Innoruuk's Word, Chalice of Kings, and snow blossoms."); + elseif(e.message:findi("chalice of kings")) then + e.self:Say("The Chalice of Kings is the chalice of elven kings. Previously thought to be lost to the ages, it was recently discovered. I need its magical powers to create a magical liquid."); + elseif(e.message:findi("xolion rod")) then + e.self:Say("This is the rod of an ancient civilization found on this continent. Nothing is known of it other than that the scaled ones discovered it years ago."); + elseif(e.message:findi("snow blossoms")) then + e.self:Say("These are flowers that are also used in the creation process. They were once widespread, but now I am told they only grow in select places."); + elseif(e.message:findi("innoruuks word")) then + e.self:Say("The strict doctrine of the priests of Innoruuk is used as a material component in the crafting. The power of their hate must not be underestimated."); + elseif(e.message:findi("sack")) then + e.self:Say("Before I provide the item, you must show me that you have spoken to Jeb."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10604})) then -- Item: Jeb's Seal + e.self:Say("Ah yes, Jeb's seal. The time to craft a Serpent must have come. I will need components collected to craft the first of the pieces. I will also provide you with a sack in which you must combine the items. Are you ready to collect them?"); + e.other:QuestReward(e.self,{items = {17861,10604}}); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10635})) then + e.self:Say("Excellent, you have done well. Here is the first piece of the staff. Now you must go seek out the second master; he will clear the path for you."); + e.other:Faction(e.self,404,100); -- Faction: True Spirit + e.other:QuestReward(e.self,0,0,0,0,10610,100000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Nekexin_Virulence.lua b/overthere/Nekexin_Virulence.lua new file mode 100644 index 0000000..003b6e4 --- /dev/null +++ b/overthere/Nekexin_Virulence.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + eq.set_timer("1",1800000); +end + +function event_timer(e) + e.self:Emote("chuckles to himself as he notices blades of grass disintegrate beneath his feet. He stares out over the water as if watching for some sign."); +end + +function event_say(e) + if(e.message:findi("corruption")) then + e.self:Emote("grins wide at you. 'Corruption? I know nothing of corruption.' He goes back to staring out over the water."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20696, item2 = 20686, item3 = 20685, item4 = 20687})) then + e.self:Emote("stares at the swirling bottle of essence. His eyes open wide as he realizes what it is. As its warm bright waves wash over him his skin dissolves into a green goo that coats the ground. From his remains a floating white ball is retrieved."); + e.other:QuestReward(e.self,0,0,0,0,20699); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Siladdarae_N-Riese.lua b/overthere/Siladdarae_N-Riese.lua new file mode 100644 index 0000000..16d126f --- /dev/null +++ b/overthere/Siladdarae_N-Riese.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". This place is quite a formidable outpost, but it lacks the comforts of home. Once I have finished collecting some of my [missing scrolls], I'll be able to leave this place and all its hidden dangers."); + elseif(e.message:findi("missing scrolls")) then + e.self:Say("Travelers have been bringing back numerous scrolls from the depths of darkness in the Outlands. They contain arcane knowledge specific to our classes. Only four are left that I seek. Keep a wary out for Theft of Thoughts, Color Slant, Cripple, and Dementia. Return any one of these to me and your reward shall be a scroll that can be found nowhere else."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {19374, 19378, 19269, 19384}); + if(count > 0) then + repeat + e.self:Say("Here is the scroll that I promised. We have both gained much knowledge today. I hope to do business with you again soon. Farewell!"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(19386,19379,19381,19215),1000); + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Slicia_J-Singe.lua b/overthere/Slicia_J-Singe.lua new file mode 100644 index 0000000..872cbc4 --- /dev/null +++ b/overthere/Slicia_J-Singe.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Why is it that you have come to this place? If you are coming here to search for [magical scrolls], just get back on that so-called ship you came here on and forget everything you thought you heard."); + elseif(e.message:findi("magical scrolls")) then + e.self:Say("Is your hearing failing you!? Unless you [have something I need]. be gone!"); + elseif(e.message:findi("i have something you need")) then + e.self:Say("I must have the scrolls of Gift of Xev. Bristlebane's Bundle. Quiver of Marr. and the Scars of Sigil. If you don't have one of these. leave my sight! If you do. I think we can work up a fair trade."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {19351, 19347, 19354, 19358}); + if(count > 0) then + repeat + e.self:Say("Here is the scroll that I promised. We have both gained much knowledge today. I hope to do business with you again soon. Farewell!"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(19368,19346,19355,19357),1000); + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Soulbinder_Kardin.lua b/overthere/Soulbinder_Kardin.lua new file mode 100644 index 0000000..27d20f5 --- /dev/null +++ b/overthere/Soulbinder_Kardin.lua @@ -0,0 +1,14 @@ +-- Converted to .lua by Speedz +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID(),0,1); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/overthere/Tektite.lua b/overthere/Tektite.lua new file mode 100644 index 0000000..98a78e5 --- /dev/null +++ b/overthere/Tektite.lua @@ -0,0 +1,22 @@ +--Zone: Overthere NPC: Tektite +function event_say(e) + if(e.message:findi("tektite")) then + e.self:Emote("makes the sound of grinding rocks as he moves his mouth. You cough uncontrollably from the dust cloud it creates. 'YOU SEEK TO OWN ME?' "); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10011, item2 = 10011})) then + e.self:Emote("takes one hand and pries out one of his eyes, which he casts far into the plains. He then places the carnelian into his eye socket. He turns towards you and holds open his palm. "); + e.self:Emote("pries out his other eye and places the second carnelian gem in its place. His eyes burn brightly with scarlet fire. He then hands you a fragment of tektite. "); + e.other:QuestReward(e.self,0,0,0,0,12831); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Qadar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Tin_Banker_I.lua b/overthere/Tin_Banker_I.lua new file mode 100644 index 0000000..c3e8fa6 --- /dev/null +++ b/overthere/Tin_Banker_I.lua @@ -0,0 +1,19 @@ +-- A Metal Key for Necro Skull Cap 5 +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Insert Metal Key *whirrrr*."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12849})) then + e.self:Say("*Whirrrr*"); + e.other:QuestReward(e.self,0,0,0,0,18065); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Utandar_Rizndown.lua b/overthere/Utandar_Rizndown.lua new file mode 100644 index 0000000..62c6320 --- /dev/null +++ b/overthere/Utandar_Rizndown.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("It is good to see our numbers growing on this land. Welcome! May your travels be as prosperous as mine have. There are many [new powers] to be gained from this land."); + elseif(e.message:findi("new powers")) then + e.self:Say("The new powers are scrolls that give us access to new and powerful spells. My collection is almost complete. I am simply [lacking] four more and then I will return back to the homeland."); + elseif(e.message:findi("lacking")) then + e.self:Say("I am missing the scroll Atol's Spectral Shackles, Tears of Druzzil, Inferno of Al'kabor, and Pillar of Frost. Should you run into one, bring it to me and I'll perform an exchange for another scroll."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {19315, 19322, 19318, 19319}); + if(count > 0) then + repeat + e.self:Say("Here is the scroll that I promised. We have both gained much knowledge today. I hope to do business with you again soon. Farewell!"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(19329,19320,19324,19317),1000); + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Vaean_the_Night.lua b/overthere/Vaean_the_Night.lua new file mode 100644 index 0000000..86186d8 --- /dev/null +++ b/overthere/Vaean_the_Night.lua @@ -0,0 +1,27 @@ +--Quest Name: Necromancer Spells +--Author: JanusD +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Ahh, welcome! More souls to succumb to the inhabitants of the Outlands! My army of undead will grow stronger by the day, but it would be a pity if you perished before doing a [mortal bidding] for me."); + elseif(e.message:findi("mortal bidding")) then + e.self:Say("I see it as a win-win situation for me. If you succeed, I'll gain more power from the knowledge you bring back to me. If you fail, you become another addition to my undead minions. Thus, you cannot fail me in returning a scroll of Splurt, Defoliation, Covergence, or Thrall of Bones. In return, I will part with a scroll of mine."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {19423, 19296, 19294, 19299}); + if(count > 0) then + repeat + e.self:Say("Here is the scroll that I promised. We have both gained much knowledge today. I hope to do business with you again soon. Farewell."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(19297,19421,19408,19409),500); + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/Xlixinar_Arcut.lua b/overthere/Xlixinar_Arcut.lua new file mode 100644 index 0000000..7ac9542 --- /dev/null +++ b/overthere/Xlixinar_Arcut.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("sighs heavily and after a long while says, 'Leave us, " .. e.other:Race() .. ". Leave us to our eternal damnation."); + elseif(e.message:findi("curse")) then + e.self:Emote("twists his face into a frown and says, 'You read what's written, " .. e.other:Race() .. ". It's clear enough so we won't bother to explain the details. We can only stand our guard and hope for [redemption]."); + elseif(e.message:findi("redemption")) then + e.self:Emote("It's very simple, " .. e.other:GetCleanName() .. "! We are fallen! We seek redemption! We guard our 'brothers' here among the Howling Stones until we are relieved. Whether that will ever happen, we do not know. We can only hope that by providing the great warriors of the legion with our [ancient armor], we will earn salvation."); + elseif(e.message:findi("armor")) then + e.self:Say("You wish the armor of our ancestors? The armor donned by the Guard whose duty was to protect the Chosen? A warrior relies not on strength alone, but many virtues. If a warrior learns to balance each virtue, then he may be fit to guard the Chosen. Each piece of armor reflects a [virtue], and each virtue must be learned before the armor is given."); + elseif(e.message:findi("virtue")) then + e.self:Say("The armor I keep are the symbols of focus, sacrifice, and perseverence. The [helm], [pauldrons], [vambraces], and [breastplate]. You must bring me proof that you know these virtues before attaining the armor I keep. I also will need a piece of Banded armor of the type you desire. My brother keeps the other pieces."); + elseif(e.message:findi("breastplate")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The monk is the master of focus, the shaman of sacrifice and the shadowknight of righteousness. Lastly, our brothers of the dark know confidence. It is then our duty to know perseverance more than any other. When others fall from spear and sword, we must stand. When others are washed away by fire and ice, we must stand. When others are frustrated and confused, we must continue on. There is a warrior in the swamp near the city. He is an exile, like my brother and I. He knows more about than I."); + e.other:SummonCursorItem(14789); -- Item: Illegible Note: Breastplate + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("helm")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("You must first learn focus before being awarded the legionnaire scale helm. The Swifttails are the masters of focus and as such you will learn from the Grand Master of the Court. It has been so long, I do not know who is Grand Master now. Whoever it is, give him this note and follow his instruction. Once you have learned, return to us and the helm will be yours."); + e.other:SummonCursorItem(14788); -- Item: Illegible Note: Helm + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("vambraces")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Our arms carry more than the weapons of war and the hands that make use of them. We sacrifice the strength in our arms to carry our duties and obligations. Unless we can sacrifice our own bodies and abilities to carry these ideals, we will never be fit to protect the Chosen. Take this note to the master of the mystics in Cabilis, he will teach you a lesson in sacrifice."); + e.other:SummonCursorItem(14790); -- Item: Illegible Note: Vambraces + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("pauldrons")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Upon our shoulders we carry the virtue of sacrifice. Our bodies are ruined in the name of our Lord. Pain and suffering please him and our ancestors. Without knowing sacrifice, a warrior can never protect his charge from harm as he sees himself as greater than his duty. The mystics embody sacrifice. Find their highest authority and give him this note. He will recognize it."); + e.other:SummonCursorItem(14795); -- Item: Illegible Note: Pauldron + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14783, item2 = 3053})) then + e.self:Say("Well done"); + e.other:QuestReward(e.self,0,0,0,0,4976,1000); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14786, item2 = 3060})) then + e.self:Say("Well done"); + e.other:QuestReward(e.self,0,0,0,0,4979,1000); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14816, item2 = 3056})) then + e.self:Say("Well done"); + e.other:QuestReward(e.self,0,0,0,0,4977,1000); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14787, item2 = 3057})) then + e.self:Say("Well done"); + e.other:QuestReward(e.self,0,0,0,0,4978,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/a_cliff_golem.lua b/overthere/a_cliff_golem.lua new file mode 100644 index 0000000..12eb5ba --- /dev/null +++ b/overthere/a_cliff_golem.lua @@ -0,0 +1,17 @@ +--This simple script will depop the cliff golem when someone is spawning the glowing cliff golem for the Greenmist quest line. See Alchemist Granika's quest file for more details. +function event_signal(e) + if(e.signal == 0) then + eq.depop_with_timer(); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/a_glowing_cliff_golem.lua b/overthere/a_glowing_cliff_golem.lua new file mode 100644 index 0000000..f6fc922 --- /dev/null +++ b/overthere/a_glowing_cliff_golem.lua @@ -0,0 +1,10 @@ +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/overthere/an_undead_foreman.lua b/overthere/an_undead_foreman.lua new file mode 100644 index 0000000..2e3e9d9 --- /dev/null +++ b/overthere/an_undead_foreman.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("turns to face you. You can see a faint green glow emanating from his vacant eye sockets. 'Are you a [new worker]? Huh? Speak or go!!'"); + elseif(e.message:findi("new worker")) then + if(e.other:GetFaction(e.self) <= 4) then + e.self:Say("Hmmph!! Too much flesh!! If you want to work, you must first fill my eye sockets with my favorite gem. This shall be your payment for your sledgehammer."); + else + e.self:Say("I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) <= 4 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10023})) then --Handin: 1x Jade (10023) + e.self:Emote("an undead foreman places the gem deep within his hollow eye socket. He pulls a giant sledgehammer from thin air and hands it to you."); + e.self:Say("Here!! You shall be assigned to the lower decks of the Scaled Trident."); + e.other:QuestReward(e.self,0,0,0,0,12863); --Summon: a worker sledgemallet (12863) + end + local returned = item_lib.return_items(e.self, e.other, e.trade, false) + if ( returned ) then + e.self:Say("I do not know you well enough to entrust such an item to you, yet."); + end +end diff --git a/overthere/an_undead_marine.lua b/overthere/an_undead_marine.lua new file mode 100644 index 0000000..f4e9915 --- /dev/null +++ b/overthere/an_undead_marine.lua @@ -0,0 +1,15 @@ +function event_signal(e) + if((x==2146 and e.self:GetY()==2445) or (e.self:GetX()==2151 and e.self:GetY()==2440) or (e.self:GetX()==2136 and e.self:GetY()==2453) or (e.self:GetX()==2124 and e.self:GetY()==2465) or (e.self:GetX()==2130 and e.self:GetY()==2459) or (e.self:GetX()==2142 and e.self:GetY()==2448)) then + e.self:Say("Sir, yes sir!!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/paineel/Antus_Shelbra.lua b/paineel/Antus_Shelbra.lua new file mode 100644 index 0000000..f11205f --- /dev/null +++ b/paineel/Antus_Shelbra.lua @@ -0,0 +1,38 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". You have come to me searching for tasks and tasks I have. Would you judge yourself an [experienced heretic] or one who has [much to learn]?"); + elseif(e.message:findi("much to learn")) then + e.self:Say("Very well, " .. e.other:GetCleanName() .. ". I do have a task for you. There is an old and frail Erudite male who now lives in Toxxulia named Aglthin Dasmore. He has left the ways of Cazic-Thule and no longer practices our craft. He has been stripped of his power and wealth, so he spends his time fishing by the river. Our great Lord of Fear has decreed that his life is forfeit. Slay him, and bring me proof of the deed."); + elseif(e.message:findi("experienced heretic")) then + e.self:Say("Ah. Excellent. I have just the task for you, " .. e.other:GetCleanName() .. ". In Kerra Ridge, there is a particular cat named Kirran Mirrah that we have been using to gather information about, well, certain aspects of cat society. He is no longer providing information for us and we have something for him that may encourage him to assist again. Ha! Hand him this sealed bag for us. It may just change his point of view. Hahaha!"); + e.other:SummonCursorItem(9968); --Smelly Sealed Bag + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9969})) then --Aglthin's Fishing Pole + e.self:Say("Yes, this will do."); + e.other:Faction(e.self,265,3); --Heretics + e.other:Faction(e.self,254,-3); --Gate Callers + e.other:Faction(e.self,242,-3); --Deepwater Knights + e.other:Faction(e.self,231,-3); --Craftkeepers + e.other:Faction(e.self,233,-3); --Crimson Hands + e.other:QuestReward(e.self,4,8,4,0,13697,500); --Staff of the Abattoir Initiate + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 9967})) then --Karran's Head + e.self:Say("Ah, it seems as if he was not a very cooperative kitty. So much for family. Oh well, take this token change as a show of my appreciation. Cazic-Thule shines on you in all his glorious fear this day, young one."); + e.other:Faction(e.self,265,5); --Heretics + e.other:Faction(e.self,254,-5); --Gate Callers + e.other:Faction(e.self,242,-5); --Deepwater Knights + e.other:Faction(e.self,231,-5); --Craftkeepers + e.other:Faction(e.self,233,-5); --Crimson Hands + e.other:QuestReward(e.self,2,8,2,2,0,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end +--END of FILE Zone:paineel ID:75089 -- Antus_Shelbra + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/paineel/Atdehim_Sqonci.lua b/paineel/Atdehim_Sqonci.lua new file mode 100644 index 0000000..a3c4753 --- /dev/null +++ b/paineel/Atdehim_Sqonci.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= -100) then -- not exact faction, dubious doesn't work and 0 indifferent works + if(e.message:findi("hail")) then + e.self:Say("Ah, greetings. I hope you are a student of the way of fear. Within this temple there are many who can teach you to harness your gifts. I am an instructor in the [rituals of fear]."); + elseif(e.message:findi("rituals of fear")) then + e.self:Say("So you wish to learn, eh? I am working on a ritual to strike fear into the hearts of the other inhabitants of Odus. The reagents I require for this ritual are the doll of a Kerran priestess, the ichor of a giant wooly spider, your initiate symbol of Cazic-Thule, and a giant snake fang with which to carve my glyphs. Fetch me these components. We shall infect this land with fear, and I shall reward you with the station of disciple of this temple."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13716, item2 = 16989, item3 = 1437, item4 = 7005})) then --Kerran Doll, Ichor, Initiate Symbol of Cazic Thule, Giant Snake Fang + e.self:Say("Excellent work, " .. e.other:GetCleanName() .. ". You are well on your way to proving yourself worthy to serve Cazic Thule."); + e.other:QuestReward(e.self,0,0,0,0,1438,2000); --Disciple Symbol of Cazic Thule + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:paineel ID:75019 -- Atdehim_Sqonci +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Auhrik_Siet-ka.lua b/paineel/Auhrik_Siet-ka.lua new file mode 100644 index 0000000..5639cde --- /dev/null +++ b/paineel/Auhrik_Siet-ka.lua @@ -0,0 +1,31 @@ +--BeginFile: Auhrik_Siet`ka.pl +--Quest for Paineel - Auhrik Siet`ka: Neonate Cowardice +function event_say(e) + if(e.message:findi("understand common")) then + e.self:Say("Of course you do. Now, listen carefully. It may be too much for your feeble mind to gather all at once, and I hate to repeat myself. Bring me one bat wing, one rat ear, one snake egg, and one fire beetle eye. Take this bag, and make sure it's sealed before you return it to me. Snake eggs spoil. Now, quit staring at me with your jaw hanging open like a dead codfish. I would have mistaken you for one, but dead codfish smell better. Haha!"); + e.other:SummonCursorItem(17802); --Small Sealable Bag + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14041})) then --A Rolled Up Note + e.self:Say("Why are you giving this to me? Oh I see. I forgot that rats don't know how to read. Haha! Well, then. I shall read it for you. You do [understand common] don't you? Haha."); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12993})) then --Small Sealed Bag + e.self:Say("Well, that wasn't so hard, was it? I suppose I must now thank you for your services. Now, leave me to my studies. I would tell you what I needed the items for, but that would just cloud your fragile little mind. Off with thee!"); + e.other:Faction(e.self,265,5); --Heretics + e.other:Faction(e.self,242,-5); --Deepwater Knights + e.other:Faction(e.self,254,-5); --Gate Callers + e.other:Faction(e.self,231,-5); --Craftkeepers + e.other:Faction(e.self,233,-5); --Crimson Hands + e.other:QuestReward(e.self,8,0,0,0,0,2000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--EndFile: Auhrik_Siet`ka.pl +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/paineel/Azzar_Habbib.lua b/paineel/Azzar_Habbib.lua new file mode 100644 index 0000000..f4bc710 --- /dev/null +++ b/paineel/Azzar_Habbib.lua @@ -0,0 +1,39 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I'm not in any mood for conversation. My favorite hat was torn right from my head by a gigantic bat the other night and I am quite upset."); + elseif(e.message:findi("other tasks")) then + e.self:Say("I will sew you your own personal dreadful cap if you bring me the necessary components. I will need the pelt of a feared beast, some gold thread, and an imbued amber."); + elseif(e.message:findi("hat")) then + e.self:Say("It is a marvelous cap sewn from the finest textiles and imbued with the divine power of our lord of fear. Cazic Thule!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I must have all the necessary components to sew you a cap!"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1528})) then + e.self:Emote("gasps in astonishment 'You...you..found my hat!! This is the most I can repay you but perhaps I can reward you further for some [other tasks]?'"); + e.other:Faction(e.self,265,5); -- Faction: Heretics + e.other:Faction(e.self,231,-5); -- Faction: Craftkeepers + e.other:Faction(e.self,233,-5); -- Faction: Crimson Hands + e.other:Faction(e.self,242,-5); -- Faction: Deepwater Knights + e.other:Faction(e.self,254,-5); -- Faction: Gate Callers + e.other:QuestReward(e.self,0,0,0,0,1530,500); --black lace sash + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19076, item2 = 12096, item3 = 22502},1,text)) then --Mighty Bear Paw's Belt Gold Thread and Imbued Amber + e.self:Say("Here is your dreadful cap as I have promised."); + e.other:Faction(e.self,265,5); -- Faction: Heretics + e.other:Faction(e.self,231,-5); -- Faction: Craftkeepers + e.other:Faction(e.self,233,-5); -- Faction: Crimson Hands + e.other:Faction(e.self,242,-5); -- Faction: Deepwater Knights + e.other:Faction(e.self,254,-5); -- Faction: Gate Callers + e.other:QuestReward(e.self,0,0,0,0,1529,500); --Dreadful Cap + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:paineel ID:75009 -- Azzar_Habbib +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/paineel/Brettas_Norval.lua b/paineel/Brettas_Norval.lua new file mode 100644 index 0000000..f33252d --- /dev/null +++ b/paineel/Brettas_Norval.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail. " .. e.other:GetCleanName() .. "! I thought I heard the clink of coins and now. here you stand! Please feel free to browse through my stock."); + end +end + +--END of FILE Zone:paineel ID:75106 -- Brettas_Norval +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Coriante_Verisue.lua b/paineel/Coriante_Verisue.lua new file mode 100644 index 0000000..bfbad6d --- /dev/null +++ b/paineel/Coriante_Verisue.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= -100) then -- not exact faction, dubious doesn't work and 0 indifferent works + if(e.message:findi("hail")) then + e.self:Say("Greetings, young one! There are many tasks to be performed aside from your studies to truly harness the powers passed down to us by our ancestor [Miragul]. The most basic of these tasks is the gathering of bat wings and snake fangs from the yard outside our city. I will reward you for every two bat wings and two snake fangs you bring to me."); + elseif(e.message:findi("miragul")) then + e.self:Say("You do not know of Miragul?!! You have more to learn of the heritage of the Dark Truth than at first I thought. Miragul was the first High Man to unlock the secrets of necromancy and is the founder of our city as well as the creator of the treacherous Hole."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You must gather all four of the required items in order to receive your reward. I expect more reliability from you in the future." + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18018})) then --Dark Truth Guild Note + e.self:Say("You are welcomed into the fold. Now go out, and prove yourself, young one. You have much to learn about the Dark Truth."); + e.other:Faction(e.self,265,100); -- Heretics + e.other:Faction(e.self,242,-100); -- Deepwater Knights + e.other:Faction(e.self,254,-100); -- Gate Callers + e.other:Faction(e.self,231,-100); -- Craftkeepers + e.other:Faction(e.self,233,-100); -- Crimson Hands + e.other:QuestReward(e.self,0,0,0,0,13551,20); --Dirt Soiled Robe* + elseif(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13068, item2 = 13068, item3 = 13067, item4 = 13067}, 1, text)) then --Bat Wing x 2, Snake Fang x 2 + e.self:Say("Very good, young acolyte. Maintain your diligence in your duties and you will quickly learn the secrets of the Dark Truth."); + e.other:Faction(e.self,265,2); -- Heretics + e.other:Faction(e.self,231,-2); -- Craftkeepers + e.other:Faction(e.self,233,-2); -- Crimson Hands + e.other:Faction(e.self,242,-2); -- Deepwater Knights + e.other:Faction(e.self,254,-2); -- Gate Callers + e.other:QuestReward(e.self,0,0,0,0,0,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/paineel/Dannis_Faleet.lua b/paineel/Dannis_Faleet.lua new file mode 100644 index 0000000..035c2c7 --- /dev/null +++ b/paineel/Dannis_Faleet.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Fortune's Fancy. " .. e.other:GetCleanName() .. "! I carry only the finest jewels and jewelry in all the land. All of the [charges and accusations] made against me are obviously false. as you can see by my beautiful wares."); + elseif(e.message:findi("charges")) then + e.self:Say("Bah! Some of the, ehem, fine residents of this city have accused me of replacing precious gems with glass. They have even gone so far as to say that I shortchange people. The nerve! It is good that so many [people] require my services."); + elseif(e.message:findi("people")) then + e.self:Say("Well, you see, as I am the only jeweler in this fine city, I am required to render service to the palace, all the guild houses and all of the fine citizens here. Between you and me, I think that's the only reason I am still around."); + end +end + +--END of FILE Zone:paineel ID:75078 -- Dannis_Faleet +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Danus_Kelmun.lua b/paineel/Danus_Kelmun.lua new file mode 100644 index 0000000..47c37b1 --- /dev/null +++ b/paineel/Danus_Kelmun.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Yes. yes. Scrolls I have. scrolls you need. Make up your mind quickly. I don't have all day to stand here talking to you."); + end +end + +--END of FILE Zone:paineel ID:75088 -- Danus_Kelmun +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Davorre_Bloodthorn.lua b/paineel/Davorre_Bloodthorn.lua new file mode 100644 index 0000000..6683fce --- /dev/null +++ b/paineel/Davorre_Bloodthorn.lua @@ -0,0 +1,84 @@ +--BeginFile: Davorre_Bloodthorn.pl +--Quest for Paineel - Davorre Bloodthorn: Neonate Cowardice and Experienced Courier + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Greetings. Perhaps within that husk you call a body there is some worth? Are you [experienced] in your craft, young one, or are you a [neonate]?"); + elseif(e.other:GetFactionValue(e.self) >= -0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you.") + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("neonate")) then --Neonate Cowardice + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Well then, child, I may still have a task for you. Will you [make use of your pathetic cowardice], then, eh?"); + elseif(e.other:GetFactionValue(e.self) >= -0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you.") + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("pathetic cowardice")) then --Neonate Cowardice + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I see. This will not be the first time for you, I am sure. Take this list to Auhrik Siet`ka. His writing has become illegible in his old age, but he shall clarify what it is he needs you to do. Do as he says, child, and perhaps you will prove yourself a bit more worthy than the rotting flesh he will most likely have you return to him."); + e.other:SummonCursorItem(14041); --A Rolled Up Note + elseif(e.other:GetFactionValue(e.self) >= -0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you.") + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("experienced")) then --Experienced Courier + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Ahhhh, a youth doth approach me with such confidence! That is to be commended in and of itself. Ordinarily, I would turn you away without a second glance, but perhaps you can be of some use. Tell me, child, are you [willing to assist] me in a small, yet important, task?"); + elseif(e.other:GetFactionValue(e.self) >= -0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you.") + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("willing to assist")) then --Experienced Courier + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Good, child. Deliver this note to Veisha Fathomwalker. You shall find her patrolling the outer regions of Toxxulia Forest. I trust that you will keep your eyes to yourself in this matter. Now go, and please travel within the veil of night, so you will not be seen by those whose minds are still clouded with delusions of Erudin's grandeur."); + e.other:SummonCursorItem(12998); --Rolled up Note + elseif(e.other:GetFactionValue(e.self) >= -0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you.") + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12997})) then --Veisha's Engagement Ring + e.self:Say("Only a few years have passed and her heart has already forgotten me. No doubt she has found another to warm her bed. Go, find her new lover, and bring me nothing less than his head."); + e.other:Faction(e.self,265,5); --Heretics + e.other:Faction(e.self,242,-5); --Deepwater Knights + e.other:Faction(e.self,254,-5); --Gate Callers + e.other:Faction(e.self,231,-5); --Craftkeepers + e.other:Faction(e.self,233,-5); --Crimson Hands + e.other:QuestReward(e.self,0,0,0,0,0,500); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12996})) then --Phaeril Nightshire's Head + e.self:Say("Apparently her choice in suitors has drifted to the most pathetic of wretches ever to slither Odus. You have done well, child. I ask of you one last task before my message to Veisha is complete. Here, deliver this to her with my most sincere regards."); + e.other:Faction(e.self,265,5); --Heretics + e.other:Faction(e.self,242,-5); --Deepwater Knights + e.other:Faction(e.self,254,-5); --Gate Callers + e.other:Faction(e.self,231,-5); --Craftkeepers + e.other:Faction(e.self,233,-5); --Crimson Hands + e.other:QuestReward(e.self,0,0,0,0,12995,500); --A Locked Chest + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12994})) then --Veisha Fathomwalker's Head + e.self:Say("My revenge has been satisfied. Thank you, my child. You have proven yourself to be a most worthy asset to our cause. Here, I no longer have any use for this, my ties to the old life are now severed."); + e.other:Faction(e.self,265,20); --Heretics + e.other:Faction(e.self,242,-20); --Deepwater Knights + e.other:Faction(e.self,254,-20); --Gate Callers + e.other:Faction(e.self,231,-20); --Craftkeepers + e.other:Faction(e.self,233,-20); --Crimson Hands + e.other:QuestReward(e.self,0,0,0,0,5526,6000); --Battle Worn Halberd + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--EndFile: Davorre_Bloodthorn.pl +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/paineel/Derena_Leflor.lua b/paineel/Derena_Leflor.lua new file mode 100644 index 0000000..2b0dfef --- /dev/null +++ b/paineel/Derena_Leflor.lua @@ -0,0 +1,14 @@ +function event_waypoint_arrive(e) + if(e.wp == 14) then + eq.set_anim(75039,1); + elseif(e.wp == 28) then + e.self:DoAnim(36); + elseif(e.wp == 52) then + eq.set_anim(75039,1); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Dilche_Orlezcha.lua b/paineel/Dilche_Orlezcha.lua new file mode 100644 index 0000000..5e70b95 --- /dev/null +++ b/paineel/Dilche_Orlezcha.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Ah. hello young adventurer! A mind is a powerful tool indeed but it never hurts to have a strong weapon by your side to cleave through the skulls of your enemies. Feel free to look at my selection of weapons."); + end +end + +--END of FILE Zone:paineel ID:75105 -- Dilche_Orlezcha +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Dovan_Sires.lua b/paineel/Dovan_Sires.lua new file mode 100644 index 0000000..3372c44 --- /dev/null +++ b/paineel/Dovan_Sires.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hrm? Yes. yes? Buy something. or leave me alone!"); + end +end + +--END of FILE Zone:paineel ID:75108 -- Dovan_Sires +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Duriek_Bloodpool.lua b/paineel/Duriek_Bloodpool.lua new file mode 100644 index 0000000..c176b7a --- /dev/null +++ b/paineel/Duriek_Bloodpool.lua @@ -0,0 +1,46 @@ +-- Part of SK Epic 1.0 Quest +function event_say(e) + if(e.other:GetFaction(e.self) < 7) then + if(e.message:findi("apprentice")) then + e.self:Say("As stubborn and foolish as he sometimes was, he was full of potential. Had he managed to achieve my age he doubtless would have surpassed my abilities. Though I am not surprised at his passing, he will be sorely missed. Well, I thank you for your efforts. Feel free to meet me in the tavern for a drink sometime. I must now get to the task of replacing my associate."); + elseif(e.message:findi("replace him")) then + e.self:Say("Hmm, you seem a bit green and I hesitate to trust you with such an important work, but time is of the essence as my days in this world are running out. Bring me back a bottle of cough elixir and, if you are still interested, I will instruct you further."); + elseif(e.message:findi("searching")) then + e.self:Say("I possess a key that will open a sealed tome to be found somewhere in the ruins uncovered here not long ago. Recover that tome for me and I am certain I will be able to corrupt the Ghoulbane. My name will be etched in history and you will wield a legend! You must hurry now, and I must return to my studies. Do not return to me, " .. e.other:GetCleanName() .. ", without the tome."); + elseif(e.message:findi("items")) then + e.self:Say("I will need the Ghoulbane, the Soul Leech, the Blade of Abrogation, and the Decrepit Sheath. Alas, I am far too ill to travel and collect these pieces. I must call upon your youth and ability again, " .. e.other:GetCleanName() .. ". Return to me with these items and I shall be known throughout history as the greatest grave lord to have walked Norrath and you shall be among the most powerful in our art."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local charfaction = e.other:GetFactionValue(e.self); -- Faction: True Spirit + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18099})) then + e.self:Say("Yes, most unfortunate. I was informed last week of the death of my most recent apprentice. A few months ago, I paid a substantial sum to a group of rogues sent from Neriak to collect on a gambling debt. He swore to me that was the end of it, but I suspected otherwise. My warnings of gambling with the rogues fell on deaf ears."); + e.other:Faction(e.self,404,3); -- Faction: True Spirit + e.other:QuestReward(e.self,0,0,0,0,0,15000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14365})) then + e.self:Say("Thank you. Now, quickly, there is not much time for me. What I tell you here now must never be shared with another soul. I have spent the better part of my life piecing together clues for the creation of a legendary dark blade, a corrupted Ghoulbane. I am very close to understanding the method used in manipulating the enchantments of the Ghoulbane, but in my current condition, I cannot finish collecting the research. My previous apprentice was searching for this last clue when he met his untimely demise."); + e.other:Faction(e.self,404,3); -- Faction: True Spirit + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14382})) then + e.self:Emote("gasps at you in astonishment, his eyes beaming with pride, and says, 'You've found it! It seems I underestimated you. You have succeeded where others failed. I feared it would never come to pass.' Duriek takes the key from his neck, softly muttering some words, and places it in a previously unseen keyhole. The book's hinges creak as Duriek pulls it open. After reading for a few moments, he says, 'It is even better than I had hoped! It will take me weeks to uncover a portion of what this book has to offer. But this is what I have been searching for, so many years! At last I know the items required to corrupt that accursed blade!'"); + e.other:Faction(e.self,404,3); -- Faction: True Spirit + elseif(charfaction >= -83) then + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5403,item2 = 11609,item3 = 5430,item4 = 14366})) then + e.self:Emote("takes the Ghoulbane and places the other swords on either side of it. The sheath begins to gleam so intensely, you can see the bones inside Duriek's hands. After several minutes, there is a final, blinding flash. Duriek collapses to the ground. After a few moments, Duriek motions you closer and whispers, 'You have done well. I wish fate had been kinder to me and allowed me your aid years ago--I might have lived long enough to enjoy the fame of our combined efforts. I studied much of the tome you retrieved and have stumbled upon something that may be the key to unleashing darkness upon the face of Norrath forever. You must seek out a powerful lich by the name of Lhranc. Farewell, " .. e.other:GetCleanName() .. ".' With his last bit of energy, Duriek places the corrupted Ghoulbane in your hands."); + e.other:Faction(e.self,404,3); -- Faction: True Spirit + e.other:QuestReward(e.self,0,0,0,0,14367); + eq.depop_with_timer(); + end + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:paineel ID:75006 -- Duriek_Bloodpool +--Quest by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/paineel/Dzan_Amo.lua b/paineel/Dzan_Amo.lua new file mode 100644 index 0000000..7beb04d --- /dev/null +++ b/paineel/Dzan_Amo.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= -100) then -- not exact faction, dubious doesn't work and 0 indifferent works + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Tabernacle of Terror. Perhaps you can control your fear long enough to be of [service] to us."); + elseif(e.message:findi("service")) then + e.self:Say("I need some things fetched from the creatures just outside our city for some ritual experimentation. Bring me two tufts of bat fur and two fire beetle legs and I will school you in the ways of terror."); + end + else + e.self:Say("Begone from this place! Infidels like you have no place among the faithful of Cazic-Thule!") + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I need no fewer than four infected rat livers!! Now, go get me what I require!!"; -- he says this for the quest hand-in, sern adolia is who this text was meant for, but sony messed up + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13069, item2 = 13069, item3 = 13250, item4 = 13250},1,text)) then --Bat Fur x 2, Fire Beetle Leg x 2 + e.self:Say("Very good young one. Here is something to assist in your studies of the principles of terror."); + e.other:Faction(e.self,265, 5); --Heretics + e.other:Faction(e.self,242, -5); --Deepwater Knights + e.other:Faction(e.self,254, -5); --Gate Callers + e.other:Faction(e.self,231, -5); --Craftkeepers + e.other:Faction(e.self,233, -5); --Crimson Hands + e.other:QuestReward(e.self,0,0,0,0,15209,1000); --Spell: Spook the Dead + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:paineel ID:75018 -- Dzan_Amo +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/paineel/Elia_Athrex.lua b/paineel/Elia_Athrex.lua new file mode 100644 index 0000000..dfb474c --- /dev/null +++ b/paineel/Elia_Athrex.lua @@ -0,0 +1,23 @@ +function event_spawn(e) + eq.set_timer("souls",3100000); +end + +function event_timer(e) + e.self:Say("The cold of souls and stench of death! Always, here, do I find it..."); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. Do you need something or did you merely wish to grace me with your oh-so-delightfully perfumed breath?"); + elseif(e.message:findi("cold")) then + e.self:Say("Who are you? Bah. Never mind. The cold of lost souls chilling the spine. Once this was Azrax Soulstealer's domain. A crueler man there never was. Binding and stealing souls was his forte. Some of the souls he reaped still dwell in this place, seeking the promise of release fom their eternal suffering."); + elseif(e.message:findi("suffering")) then + e.self:Say("Let them suffer, I say! I just wish they wouldn't chill my spine."); + end +end + +--END of FILE Zone:paineel ID:75020 -- Elia_Athrex +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Ernax_the_Scholar.lua b/paineel/Ernax_the_Scholar.lua new file mode 100644 index 0000000..87a63c3 --- /dev/null +++ b/paineel/Ernax_the_Scholar.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. Please leave me be. I am studying several interesting essays on mana storage devices."); + elseif(e.message:findi("matter of.* soul")) then + e.self:Say("Hmmm. That's a phrase I have not heard for some time, and one I thought I would not hear again, any time soon. So another fool seeks Azrax's legacy, eh? Well, so be it. Take this and follow its instructions. When you are finished reading and scribing, give it back to me."); + e.other:SummonCursorItem(18956); --Tattered Book + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18956})) then --Tattered Book + e.self:Say("For your sake, I wish you a quick and painless death. For mine, I wish you a slow and painful one, as a warning to any fool who wishes to follow in your path."); + e.other:QuestReward(e.self,0,0,0,0,17803); --Soul Trap + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:paineel ID:75029 -- Ernax_the_Scholar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Evus_Doracmal.lua b/paineel/Evus_Doracmal.lua new file mode 100644 index 0000000..94e7201 --- /dev/null +++ b/paineel/Evus_Doracmal.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day. " .. e.other:GetCleanName() .. "! Have you visited Taria already? Taria does indeed make some of the finest statuettes in all the land. I fear. though. that she has lost her faith. She used to make idols depicting our Lord of Fear. Now she dabbles in the creation of [other idols]!"); + elseif(e.message:findi("other idol")) then + e.self:Say("Well. just the other day. she was commissioned to create a representation of Tunare for Iva down at the Bakery. I've always known that Iva was a bit odd. but that is just downright strange!"); + end +end + +--END of FILE Zone:paineel ID:75097 -- Evus_Doracmal +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Faratain.lua b/paineel/Faratain.lua new file mode 100644 index 0000000..0b39893 --- /dev/null +++ b/paineel/Faratain.lua @@ -0,0 +1,54 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Salutations " .. e.other:GetCleanName() .. ". If you are here to make use of the forges then feel free to pursue your crafts within this chamber. If you are a new Fell Blade in need of a suit of armor and weapon then I will assist you in crafting [armaments] fitting of a young Shadow Knight."); + elseif(e.message:findi("armament")) then + e.self:Say("You will require this specially prepared Mail Assembly Kit in order to construct a suit of Fell Blade Armor. The materials required vary depending on the piece of armor you desire to craft. Once you have been outfitted in the Fell Blade Armor. return to me and I will present you with a somewhat important [task]. Do you desire to craft a [fell blade helm], a [fell blade bracer], [fell blade gauntlets], [fell blade boots], [fell blade vambraces], [fell blade greaves], or a [fell blade breastplate]?"); + e.other:SummonCursorItem(17124); -- Item: Mail Assembly Kit + elseif(e.message:findi("task")) then + e.self:Say("The blacksmiths of [Clan Kolbok] craft weapons using an ancient Kobold tradition that has been long forgotten by most of the kobold clans. I believe there is something to be learned from their traditions should we discover their intricacies. Go into the Warrens and locate the chambers of the kobold blacksmiths. There you should be able to find some record of their traditional techniques to return to me here in Paineel where they can be translated and studied."); + elseif(e.message:findi("greaves")) then + e.self:Say("To assemble Fell blade Greaves you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Greaves Mold. Once that is done combine the Crude Bronze Greaves with two Intact Kobold Pelts and two Calcified Tibia in the Mail Assembly Kit."); + e.other:SummonCursorItem(19636); -- Item: Crude Greaves Mold + elseif(e.message:findi("helm")) then + e.self:Say("To assemble a Fell blade Helm you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Helm Mold. Once that is done combine the Crude Bronze Helm with a Ruined Kobold Pelt and a Calcified Skull in the Mail Assembly Kit."); + e.other:SummonCursorItem(19631); -- Item: Crude Helm Mold + elseif(e.message:findi("boot")) then + e.self:Say("To assemble Fell blade Boots you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this crude Boot Mold. Once that is done combine the Crude Bronze Boots with two Ruined Kobold Pelts. and two Calcified Foot Bones in the Mail Assembly Kit."); + e.other:SummonCursorItem(19634); -- Item: Crude Boot Mold + elseif(e.message:findi("bracer")) then + e.self:Say("To assemble a Fell blade Bracer you will need to obtain a brick of crude bronze and smelt it in a forge with a Water Flask and this Crude Bracer Mold. Once that is done, combine the Crude Bronze Bracer with a Ruined Kobold Pelt and a Calcified Ulna Bone in the Mail Assembly Kit."); + e.other:SummonCursorItem(19632); -- Item: Crude Bracer Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("To assemble a Fell blade Breastplate you will need to obtain four bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Breastplate Mold. Once that is done combine the Crude Bronze Breastplate with a Pristine Kobold Pelt, a calcified sternum, and a calcified ribcage in the Mail Assembly Kit."); + e.other:SummonCursorItem(19637); -- Item: Crude Breastplate Mold + elseif(e.message:findi("gauntlet")) then + e.self:Say("To assemble Fell blade Gauntlets you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this crude Gauntlet Mold. Once that is done combine the Crude Bronze Gauntlets with a Ruined Kobold Pelt and two Calcified Finger Bones in the Mail Assembly Kit."); + e.other:SummonCursorItem(19633); -- Item: Crude Gauntlets Mold + elseif(e.message:findi("vambrace")) then + e.self:Say("To assemble Fell blade Vambraces you will need to obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Vambrace Mold. Once that is done combine the Crude Bronze Vambraces with an Intact Kobold Pelt and two Calcified Humerus Bones in the Mail Assembly Kit."); + e.other:SummonCursorItem(19635); -- Item: Crude Vambrace Mold + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20421})) then + e.self:Say("Well done " .. e.other:GetCleanName() .. ". I will have this translated immediately so that it may be studied. Take this Dull Fell Blade Cutlass and sharpen it in a forge with a sharpening stone. It may take you several attempts if you are unfamiliar with the process. Once that is done bring me the Sharp Fell Blade Cutlass, a Large Briar Snake Skin, and a Petrified Eyeball and I will put the finishing touches on the weapon."); + e.other:Faction(e.self,265,5); -- +Heretics + e.other:Faction(e.self,242,-5); -- -Deepwater Knights + e.other:Faction(e.self,254,-5); -- -Gate Callers + e.other:Faction(e.self,231,-5); -- -Craftkeepers + e.other:Faction(e.self,233,-5); -- -Crimson Hands + e.other:QuestReward(e.self,0,0,0,0,20403); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20404, item2 = 20355, item3 = 20402})) then + e.self:Emote("Faratain fashions a grip from the large briar snake skin, fastens the petrified eyeball to the pommel of the hilt, and polishes the blade with a shimmering black substance. I present you with your Fell Blade Cutlass. May it serve you well in the name of Cazic Thule."); + e.other:QuestReward(e.self,0,0,0,0,20416); + end +end + +--END of FILE Zone:paineel ID:75047 -- Faratain +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Geomar_Hapera.lua b/paineel/Geomar_Hapera.lua new file mode 100644 index 0000000..dc46a80 --- /dev/null +++ b/paineel/Geomar_Hapera.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh. hello there. and welcome to my humble store. We have everything you might need here. for just about anywhere you'd want to go. Matter of fact. a party supplied themselves for a trip into Old Paineel just moments ago!"); + elseif(e.message:findi("old paineel")) then + e.self:Say("Ah yes, the forgotten city, or so it seems sometimes. Yes, 'tis where we used to live, until the hordes of elementals came through and destroyed it. Much to be had down there, though. Much indeed."); + elseif(e.message:findi("had")) then + e.self:Say("You must remember, our city in all its splendor was down there in that Hole! Can you imagine the riches lost when we were forced to rebuild the city here? And did you actually think we were going to live in that hut in Toxxulia forever? Hah!"); + end +end + +--END of FILE Zone:paineel ID:75080 -- Geomar_Hapera +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Gerot_Kastane.lua b/paineel/Gerot_Kastane.lua new file mode 100644 index 0000000..bf567ad --- /dev/null +++ b/paineel/Gerot_Kastane.lua @@ -0,0 +1,22 @@ +-- Part of SK Epic 1.0 + +function event_say(e) + if(e.message:findi("hail") and e.other:GetFactionValue(e.self) >= -83 ) then + e.self:Say("" .. e.other:GetCleanName() .. "! My hero! I am at your service. I have been told to tell you all I know of the Head of the Valiant. Its construction is a mockery to the gods of Light, an abomination above all others. The method of creation of the Head of the Valiant was passed down through my family for centuries. All I require of you is the physical head of a valiant warrior. I have the rest of the materials right here to fashion this item for you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14375})) then + e.self:Say("At last! I have been waiting for my brother for weeks! We are doomed! Innoruuk will taint our seed into some perverse, twisted, maddened breed. The prophecy has begun to unfold and there are none capable of stopping it. Quickly, return this note to Marl, we must hide! We have failed the master! We must escape the hateful one's wrath!"); + e.other:Faction(e.self,404, 3); -- Faction: True Spirit + e.other:QuestReward(e.self,{itemid = 14376}); -- Item: Note to Marl + elseif(e.other:GetFactionValue(e.self) >= -72 and item_lib.check_turn_in(e.self, e.trade, {item1 = 14378})) then -- Faction: True Spirit + e.self:Say("Good travels, dark one! May Innoruuk curse your enemies!"); + e.other:Faction(e.self,404, 3); -- Faction: True Spirit + e.other:QuestReward(e.self,{itemid = 14369}); -- Item: Head of the Valiant + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/paineel/Gorng_Alusnein.lua b/paineel/Gorng_Alusnein.lua new file mode 100644 index 0000000..a546587 --- /dev/null +++ b/paineel/Gorng_Alusnein.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. Be careful what you say to Iva. She has been rather touchy lately. She seems as if she is waiting for something to happen. What. I know not."); + end +end + +--END of FILE Zone:paineel ID:75103 -- Gorng_Alusnein +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Guard_Heridion.lua b/paineel/Guard_Heridion.lua new file mode 100644 index 0000000..191cc12 --- /dev/null +++ b/paineel/Guard_Heridion.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 100) then + if(e.message:findi("hail")) then + e.self:Say("Uggg. You needz [keyz]? Rrrrrrr."); + elseif(e.message:findi("key")) then + e.self:Say("Uggggg. Take dis keyz."); + e.other:SummonCursorItem(6378); -- Item: Bone Crafted Key + end + elseif(e.other:GetFactionValue(e.self) >= -0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you.") + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end diff --git a/paineel/Guard_Korlack.lua b/paineel/Guard_Korlack.lua new file mode 100644 index 0000000..d42d9ad --- /dev/null +++ b/paineel/Guard_Korlack.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 100) then + if(e.message:findi("hail")) then + e.self:Say("Uggg. You needz [keyz]? Rrrrrrr."); + elseif(e.message:findi("key")) then + e.self:Say("Uggggg. Take dis keyz."); + e.other:SummonCursorItem(6378); -- Item: Bone Crafted Key + end + elseif(e.other:GetFactionValue(e.self) >= -0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you.") + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end \ No newline at end of file diff --git a/paineel/Guard_Lecknar.lua b/paineel/Guard_Lecknar.lua new file mode 100644 index 0000000..d42d9ad --- /dev/null +++ b/paineel/Guard_Lecknar.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 100) then + if(e.message:findi("hail")) then + e.self:Say("Uggg. You needz [keyz]? Rrrrrrr."); + elseif(e.message:findi("key")) then + e.self:Say("Uggggg. Take dis keyz."); + e.other:SummonCursorItem(6378); -- Item: Bone Crafted Key + end + elseif(e.other:GetFactionValue(e.self) >= -0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you.") + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end \ No newline at end of file diff --git a/paineel/Guard_Menbuknar.lua b/paineel/Guard_Menbuknar.lua new file mode 100644 index 0000000..d42d9ad --- /dev/null +++ b/paineel/Guard_Menbuknar.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 100) then + if(e.message:findi("hail")) then + e.self:Say("Uggg. You needz [keyz]? Rrrrrrr."); + elseif(e.message:findi("key")) then + e.self:Say("Uggggg. Take dis keyz."); + e.other:SummonCursorItem(6378); -- Item: Bone Crafted Key + end + elseif(e.other:GetFactionValue(e.self) >= -0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you.") + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end \ No newline at end of file diff --git a/paineel/Henly_Nictropus.lua b/paineel/Henly_Nictropus.lua new file mode 100644 index 0000000..9b165bc --- /dev/null +++ b/paineel/Henly_Nictropus.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("The Dark Truth reports the news without all the usual propaganda and lies spewed by the mouthpieces of other Kingdoms and principalities. Buy a copy today for just a few silver and find out the real truth behind current events."); + end +end + +--END of FILE Zone:paineel ID:75114 -- Henly_Nictropus +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Iva_Tersala.lua b/paineel/Iva_Tersala.lua new file mode 100644 index 0000000..410a7fa --- /dev/null +++ b/paineel/Iva_Tersala.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. " .. e.other:GetCleanName() .. ". I have some of the finest baked goods in Paineel. It's the best home cooking you have had. ever. That be my word."); + elseif(e.message:findi("tunare")) then + e.self:Say("Hush! You must not invoke Her name here. All of the citizens of Paineel are devout followers of Cazic-Thule or they should be! Speak no more of any other god here, unless you have a wish to die."); + end +end + +--END of FILE Zone:paineel ID:75104 -- Iva_Tersala +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Keeshla_Levlora.lua b/paineel/Keeshla_Levlora.lua new file mode 100644 index 0000000..c771d9e --- /dev/null +++ b/paineel/Keeshla_Levlora.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail and well met. " .. e.other:GetCleanName() .. ". I am Keeshla Levlora. a resident necromancer of this beautiful city. If you are a practitioner of the dark arts under our lord Cazic-Thule. know that you are welcome here."); + end +end + +--END of FILE Zone:paineel ID:75045 -- Keeshla_Levlora +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Keletha_Nightweaver.lua b/paineel/Keletha_Nightweaver.lua new file mode 100644 index 0000000..c1179cc --- /dev/null +++ b/paineel/Keletha_Nightweaver.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". Interested in the art of research? I have several tomes which may aid you in such a pursuit."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1774})) then--Envelope with Dust + e.self:Emote("takes the note, dumps the dust into her hand and examines it for a moment. She looks up and chuckles 'It's amuzing how one of our Royal Guards cannot identify this substance. Do you feel how it's slightly cooler than other metals? It's called Permafrost Iron, also known as Cold Iron to laymen. Miragul wrote of it's properties in his memoirs. There are much better metals at our disposal now, so it's use is rare except in more primitive cultures. Here is my report.'"); + e.other:QuestReward(e.self,0,0,0,0,1775,137180);--Heretics Report + end + item_lib.return_items(e.self, e.other, e.trade) +end +--END of FILE Zone:paineel ID:75083 -- Keletha_Nightweaver + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/paineel/Kelkarn.lua b/paineel/Kelkarn.lua new file mode 100644 index 0000000..486674c --- /dev/null +++ b/paineel/Kelkarn.lua @@ -0,0 +1,14 @@ +-- animation does not currently work for skeleton models. leaving it for possible future fix. + +--function event_spawn(e) +-- eq.set_timer("repeat", 3000); +--end + +--function event_timer(e) +-- e.self:DoAnim(58); -- dance +--end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Kilevra_Natasu.lua b/paineel/Kilevra_Natasu.lua new file mode 100644 index 0000000..bd143a1 --- /dev/null +++ b/paineel/Kilevra_Natasu.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Have you spoken with Danus? If not. I suggest you do. so that I will not waste my breath further."); + end +end + +--END of FILE Zone:paineel ID:75087 -- Kilevra_Natasu +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Leovre_Kieqmarn.lua b/paineel/Leovre_Kieqmarn.lua new file mode 100644 index 0000000..ba27d56 --- /dev/null +++ b/paineel/Leovre_Kieqmarn.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day. " .. e.other:GetCleanName() .. ". Feel free to look through my inventory of spells. but if you touch anything without first buying it I. will have your skin pulled from your flesh. Slowly."); + end +end + +--END of FILE Zone:paineel ID:75085 -- Leovre_Kieqmarn +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Librarian_Kesler.lua b/paineel/Librarian_Kesler.lua new file mode 100644 index 0000000..76ff585 --- /dev/null +++ b/paineel/Librarian_Kesler.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. researcher! There are many things to be found here. Our selection grows daily. Would you [care for any books]?"); + elseif(e.message:findi("any book")) then + e.self:Say("Excellent! I love to see the young so interested in knowledge. What subject would you like to research? My most interesting topics today would have to be the Hole. old Paineel. the Underfoot. and the history of Paineel."); + elseif(e.message:findi("history of paineel")) then + e.self:Say("Tis an excellent topic. " .. e.other:GetCleanName() .. ". Much can be learned of a civilization if one first understands its history. I hope you enjoy the book."); + e.other:SummonCursorItem(18093); -- History of Paineel + elseif(e.message:findi("about the hole")) then + e.self:Say("Here you are. " .. e.other:GetCleanName() .. ". The book has old bindings and is worthless to most. but the value of knowledge is priceless."); + e.other:SummonCursorItem(18091); -- History of the Hole + elseif(e.message:findi("about the underfoot")) then + e.self:Say("Excellent choice. " .. e.other:GetCleanName() .. ". The Underfoot is a mysterious place. I hope you get as much from the book as I did."); + e.other:SummonCursorItem(18094); -- Underfoot Musings + elseif(e.message:findi("about the old paineel")) then + e.self:Say("Take this book. " .. e.other:GetCleanName() .. ". It contains the history of the ancient city from which we came."); + e.other:SummonCursorItem(18092); -- Old Paineel + end +end diff --git a/paineel/Linnleu_Brackmar.lua b/paineel/Linnleu_Brackmar.lua new file mode 100644 index 0000000..b0eb24c --- /dev/null +++ b/paineel/Linnleu_Brackmar.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. " .. e.other:GetCleanName() .. ". My wares are few but valuable. including books of research into the less widely known arts of necromancy. Perhaps you should have a look."); + end +end + +--END of FILE Zone:paineel ID:75082 -- Linnleu_Brackmar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Lolenton.lua b/paineel/Lolenton.lua new file mode 100644 index 0000000..f3640ca --- /dev/null +++ b/paineel/Lolenton.lua @@ -0,0 +1,14 @@ +-- animation does not currently work for skeleton models. leaving it for possible future fix. + +--function event_spawn(e) +-- eq.set_timer("repeat", 3000); +--end + +--function event_timer(e) +-- e.self:DoAnim(27); -- cheer +--end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Mandaril_Dark_Knife.lua b/paineel/Mandaril_Dark_Knife.lua new file mode 100644 index 0000000..324fe53 --- /dev/null +++ b/paineel/Mandaril_Dark_Knife.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Desist in your prattle. If you want idle chitchat. talk to someone else."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18017})) then -- Fell Blade Guild Note + e.self:Say("You are welcomed into the fold. Now go out, and prove yourself, young one. You have much to learn about the Dark Truth."); + e.other:Faction(e.self,265,100); -- Heretics + e.other:Faction(e.self,242,-100); -- Deepwater Knights + e.other:Faction(e.self,254,-100); -- Gate Callers + e.other:Faction(e.self,231,-100); -- Craftkeepers + e.other:Faction(e.self,233,-100); -- Crimson Hands + e.other:QuestReward(e.self,0,0,0,0,13573,20); -- Blood Splattered Tunic + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:paineel ID:75111 -- Mandaril_Dark_Knife +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/paineel/Marsa_Folor.lua b/paineel/Marsa_Folor.lua new file mode 100644 index 0000000..d42cc99 --- /dev/null +++ b/paineel/Marsa_Folor.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there. " .. e.other:GetCleanName() .. "! Can't take your valuables with you? Weighing you down. are they. " .. e.other:GetCleanName() .. "? Leave them with me. In my capable hands and in the hands of my capable staff. they will be safe from prying eyes and quick hands!"); + end +end + +--END of FILE Zone:paineel ID:75100 -- Marsa_Folor +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Miadera_Shadowfyre.lua b/paineel/Miadera_Shadowfyre.lua new file mode 100644 index 0000000..2cd3c77 --- /dev/null +++ b/paineel/Miadera_Shadowfyre.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ahhhahahaha! The terror that lays over this city like a blanket tingles my bones with vigor. I seek a fellow apostle of Cazic-Thule to assist me in the [summoning of Terror]."); + elseif(e.message:findi("summoning of terror")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("It will be a frightfully fulfilling summons. To do this, I need an eye of urd, some basalt drake scales, the lens of Lord Soptyvr, and a lock of widowmistress hair."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I sense the potential to learn the ways of fear within you. Continue striving to master your fear and one day perhaps you can be of service to our Lord Cazic-Thule."); + else + e.self:Say("Begone from this place! Infidels like you have no place among the faithful of Cazic-Thule!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I require all four reagents, anything less is useless. Incompetence will get you nowhere amongst the faithful of Cazic-Thule!"; + + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10523, item2 = 19032, item3 = 14110, item4 = 14109},1,text)) then --Eye of Urd, Basalt Drake Scales, Lens of Lord Soptyvr, Widowmistress Hair + e.self:Say("Yes! Can you feel the terror in the air, prickling your flesh, and standing your hair on end? The chanters have summoned the avatar of Terror! Quickly take this mundane mask to him and he shall forge it into a valuable symbol to be worn by loyal apostles of Terror!"); + e.other:Faction(e.self,265,200,0); -- Faction: Heretics + e.other:Faction(e.self,242,-200,0); -- Faction: Deepwater Knights + e.other:Faction(e.self,254,-200,0); -- Faction: Gate Callers + e.other:Faction(e.self,231,-200,0); -- Faction: Craftkeepers + e.other:Faction(e.self,233,-200,0); -- Faction: Crimson Hands + e.other:QuestReward(e.self,math.random(9),math.random(9),math.random(9),math.random(9),14106,5000); --Mundane Mask + eq.unique_spawn(75195,0,0,421,1182,-37,128); -- spawn avatar of terror + end + item_lib.return_items(e.self, e.other, e.trade); +end + +--END of FILE Zone:paineel ID:75070 -- Miadera_Shadowfyre +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/paineel/Nadara_Reloclen.lua b/paineel/Nadara_Reloclen.lua new file mode 100644 index 0000000..c7e5f52 --- /dev/null +++ b/paineel/Nadara_Reloclen.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello there. " .. e.other:GetCleanName() .. ". Fear not for your valuables. I have known Marsa for many years and she has not once taken anyone's property. She is. perhaps. the last honest person in this city."); + end +end + +--END of FILE Zone:paineel ID:75099 -- Nadara_Reloclen +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/paineel/Nedorl_Ipabrun.lua b/paineel/Nedorl_Ipabrun.lua new file mode 100644 index 0000000..c8e6a3d --- /dev/null +++ b/paineel/Nedorl_Ipabrun.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Buy. or leave. Make up your mind. I have no time for idle chitchat."); + end +end + +--END of FILE Zone:paineel ID:75084 -- Nedorl_Ipabrun +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Nivold_Predd.lua b/paineel/Nivold_Predd.lua new file mode 100644 index 0000000..fc214e4 --- /dev/null +++ b/paineel/Nivold_Predd.lua @@ -0,0 +1,46 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("What do you want? Do not disturb me lest you plan to assist in my [summoning of Dread]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I sense the potential to learn the ways of fear within you. Continue striving to master your fear and one day perhaps you can be of service to our Lord Cazic-Thule."); + else + e.self:Say("Begone from this place! Infidels like you have no place among the faithful of Cazic-Thule!"); + end + elseif(e.message:findi("summoning of dread")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("There are some components essential to the summoning of the avatar of Dread. I require the eye of a griffon. some [powder of reanimation]. the brain of the Ishva Mal. and the toes of an ice giant. Fetch me these reagents so that we may summon the avatar to forge a shield worn only by the mightiest apostles of Cazic-Thule."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I sense the potential to learn the ways of fear within you. Continue striving to master your fear and one day perhaps you can be of service to our Lord Cazic-Thule."); + else + e.self:Say("Begone from this place! Infidels like you have no place among the faithful of Cazic-Thule!"); + end + elseif(e.message:findi("powder of reanimation")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("There is a gnome necromancer who has been experimenting with a powder used in reanimating long dead organic tissue. He is known to frequent places populated by undead in order to pursue his research. Seek him out and procure a bit of his powder."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I sense the potential to learn the ways of fear within you. Continue striving to master your fear and one day perhaps you can be of service to our Lord Cazic-Thule."); + else + e.self:Say("Begone from this place! Infidels like you have no place among the faithful of Cazic-Thule!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I require all four reagents, anything less is useless. Incompetence will get you nowhere amongst the faithful of Cazic-Thule!"; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 16540,item2 = 13739,item3 = 14111,item4 = 14112},1,text)) then + e.self:Say("Commendable work, you have proven yourself a valuable member of our order. Our chanters have summoned the avatar of Dread. Hurry and take him this mundane shield so that he may forge it into a truly valuable symbol of your devotion to the lord of Fear!"); + e.other:Faction(e.self,265,400,0); -- Faction: Heretics + e.other:Faction(e.self,242,-400,0); -- Faction: Deepwater Knights + e.other:Faction(e.self,254,-400,0); -- Faction: Gate Callers + e.other:Faction(e.self,231,-400,0); -- Faction: Craftkeepers + e.other:Faction(e.self,233,-400,0); -- Faction: Crimson Hands + e.other:QuestReward(e.self,math.random(9),math.random(9),math.random(9),math.random(9),14105,5000); + eq.unique_spawn(75194,0,0,474,1230,-37,128); -- spawn avatar of dread + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:paineel ID:75071 -- Nivold_Predd diff --git a/paineel/Noclin_Saah.lua b/paineel/Noclin_Saah.lua new file mode 100644 index 0000000..02ac81a --- /dev/null +++ b/paineel/Noclin_Saah.lua @@ -0,0 +1,37 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 0) then + if(e.message:findi("hail")) then + e.self:Say("Hail to yourself, fool! Leave me be. I have [matters of importance] to ponder."); + elseif(e.message:findi("matters of importance")) then + e.self:Say("If you are so greatly interested in my affairs then so be it. I have lost my skeleten servant. He now wanders the yard, taking his pain out on the new apprentices of our guild. I cannot return to my guild without ridding the yard of that menace for my mistake will cost me dearly if it is brought to the attention of my masters. Hrm. Perhaps you could destroy my pet for me and bring me proof of his removal. If you do I may even grace you with a [reward]."); + elseif(e.message:findi("reward")) then + e.self:Say("Speak not of reward when you have not even finished this simple task! Now leave me be."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + --Handin: 1x Rotting Femur (7107) + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 7107})) then + e.self:Say("Ah! You found him and obviously removed his presence from the yard. You have my thanks, small as it is for such a menial task. Here. Keep this worthless bit of bone for your labors."); + e.other:Faction(e.self,265,3); -- +Heretics + e.other:Faction(e.self,242,-3); -- -Deepwater Knights + e.other:Faction(e.self,254,-3); -- -Gate Callers + e.other:Faction(e.self,231,-3); -- -Craftkeepers + e.other:Faction(e.self,233,-3); -- -Crimson Hands + e.other:QuestReward(e.self,0,0,0,0,7106,250); --Noclin's Femur (7106) + end + item_lib.return_items(e.self, e.other, e.trade) +end + + +--Scripted By: Fatty Beerbelly + + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/paineel/Pardas_Nalue.lua b/paineel/Pardas_Nalue.lua new file mode 100644 index 0000000..2fecc7a --- /dev/null +++ b/paineel/Pardas_Nalue.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Oh. hello there. " .. e.other:GetCleanName() .. "! I have been absolutely slaving all day to choose a new [advertisement] for my wonderful store here. Care to hear what I have?"); + elseif(e.message:findi("what advertisement?")) then + e.self:Say("Excellent! Here goes. Come to Pardas Nalue's Sinfully Handsome Tailor! You can get everything you need to be just as good looking as Pardas. Well. almost everything! So. do you like it?"); + elseif(e.message:findi("like") or e.message:findi("yes")) then + e.self:Say("I just knew you would! Come on folks. let's watch the money just come pouring in! Isn't this absolutely fabulous?!"); + elseif(e.message:findi("didn") or e.message:findi("no")) then + e.self:Say("Fine, then! See if I will ever share my wonderful ideas with you again! Hrmph!"); + e.self:DoAnim(30); + end +end + +--END of FILE Zone:paineel ID:75102 -- Pardas_Nalue +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Rallia_Hapera.lua b/paineel/Rallia_Hapera.lua new file mode 100644 index 0000000..ab0cd37 --- /dev/null +++ b/paineel/Rallia_Hapera.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello. " .. e.other:GetCleanName() .. ". Thank you for coming in and looking at our wares. We should have just about everything you need if you wish to take a trip."); + end +end + +--END of FILE Zone:paineel ID:75079 -- Rallia_Hapera +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Royal_Guard_Lilkus.lua b/paineel/Royal_Guard_Lilkus.lua new file mode 100644 index 0000000..4cf9b22 --- /dev/null +++ b/paineel/Royal_Guard_Lilkus.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You tread upon sacred ground, " .. e.other:Race() .. ". None may go further unless they [have business with the Overlord], or, if you're looking to gain favor with the heretics and need a little coin, I have a [job] for you."); + elseif(e.message:findi("business")) then + e.self:Say("The Overlord only sees those he calls forward. If you have a summons from him, I will escort you and announce your arrival. If not, then forget whatever business you may have had here. If you wish an audience, then go speak to Sheltian below. He may be able to help you.....if you help him."); + elseif(e.message:findi("job")) then + e.self:Say("There are many campaigns we administer from within our city, Paineel. Some of these campaigns are threatened or hindered by annoyances. One of these annoyances are the kobolds that live in the filth of a cave not far from here. Find that lair and kill as many of these beasts as you can. For every kobold molar you return, you shall be rewarded."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local randrew = 0; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1761})) then + e.self:Say("Not bad, " .. e.other:GetCleanName() .. ". Here is your reward. If you slay enough of these dogs, Sheltuin may have a more important task for you to perform."); + local random_result = math.random(10); + if(random_result == 1) then + randrew = eq.ChooseRandom(3120,3123,3115,3117,3122,3113,3116,3118,3121,3124,3119,3108,3107,3111,3103,3105,3110,3101,3104,3106,3109,3112,3132,3135,3127,3129,3134,3125,3128,3130,3133,3136,3131); -- Item(s): Small Ringmail Sleeves (3120), Small Ringmail Pants (3123), Small Ringmail Neckguard (3115), Small Ringmail Mantle (3117), Small Ringmail Gloves (3122), Small Ringmail Coif (3113), Small Ringmail Coat (3116), Small Ringmail Cape (3118), Small Ringmail Bracelet (3121), Small Ringmail Boots (3124), Small Ringmail Belt (3119), Ringmail Sleeves (3108), Ringmail Skirt (3107), Ringmail Pants (3111), Ringmail Neckguard (3103), Ringmail Mantle (3105), Ringmail Gloves (3110), Ringmail Coif (3101), Ringmail Coat (3104), Ringmail Cape (3106), Ringmail Bracelet (3109), Ringmail Boots (3112), Large Ringmail Sleeves (3132), Large Ringmail Pants (3135), Large Ringmail Neckguard (3127), Large Ringmail Mantle (3129), Large Ringmail Gloves (3134), Large Ringmail Coif (3125), Large Ringmail Coat (3128), Large Ringmail Cape (3130), Large Ringmail Bracelet (3133), Large Ringmail Boots (3136), Large Ringmail Belt (3131) + end + e.other:Faction(e.self,265,7); -- +Heretics + e.other:Faction(e.self,242,-7); -- -Deepwater Knights + e.other:Faction(e.self,254,-7); -- -Gate Callers + e.other:Faction(e.self,231,-7); -- -Craftkeepers + e.other:Faction(e.self,233,-7); -- -Crimson Hands + e.other:QuestReward(e.self,6,5,6,0,randrew,2000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/paineel/Royal_Guard_Sheltuin.lua b/paineel/Royal_Guard_Sheltuin.lua new file mode 100644 index 0000000..602fd89 --- /dev/null +++ b/paineel/Royal_Guard_Sheltuin.lua @@ -0,0 +1,46 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("appears to be ignoring you completely."); + elseif(e.message:findi("audience with the overlord")) then + e.self:Say("The Overlord is not seeing anyone at this time. however. I may have work for you. You seem to have some experience with the kobold annoyance in the region. Are you [interested]. " .. e.other:GetCleanName() .. "?"); + elseif(e.message:findi("interested")) then + e.self:Say("Then I shall give you a task. I assume you are aware of the kobold lair nearby. Many of our adventurous knights and priests crusade to destroy those pests so seeing many Erudites frequent the area is normal. However. it is not normal to see someone carry large crates into the lair and return empty handed. This person's movements also show he is attempting to remain unseen.....the [fool]."); + elseif(e.message:findi("fool")) then + e.self:Say("Whoever it is. obviously is not an Erudite. even though he appears to be. Only an outsider would take us to be such idiots as to fall for their pitiful attempt at disguise. Or perhaps....well. never mind that. I want you to enter the kobold lair and find these crates. Return one to me and we'll decide what to do from there."); + elseif(e.message:findi("important task")) then + e.self:Say("According to the evidence we've uncovered, it appears the kobolds are nothing but pawns to harass us. Or perhaps even all of Odus. If they wish to play these games, then we'll humor them. We'll take their pawn with one of our knights. Will you be the knight, " .. e.other:GetCleanName() .. "?"); + elseif(e.message:findi("knight")) then + e.self:Say("Then you will deliver this chest for us. Don't worry about what's inside it. Although we enjoy our solitude, we do make allies. We also make use of those allies. We will do so now. Take the chest to Lyris Moonbane below the human city of Qeynos. You will then follow her instructions and complete any tasks she assigns you. In return, she will send you back with what we wish. Fear is our armor."); + e.other:SummonCursorItem(1792); -- Heavy Locked Chest + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Is this it? I asked for the head of the courier, the head of the supplier, a full box of ore, and evidence from the supplier. Do not return until you have all of these!"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1773})) then--Large Empty Crate + e.self:Say("Hmmm. Very odd. The dust in the crate implies some sort of stone was transported in it. Perhaps our brothers of the Arcane will be able to find out where this dust came from and what it?s used for. Take this dust sample and note to Keletha Nightweaver. She will examine the dust and send you back with a report. Make haste."); + e.other:QuestReward(e.self,0,0,0,0,1774,137180);--Envelope with dust sample + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1775})) then--heretics report + e.self:Emote("'s eyes redden with intense anger after reading the report. When he speaks, his voice is suprisingly calm and measured. He says, 'Listen close " .. e.other:Race() .. ". When you leave this building, you will find the courier who is bringing the ore. You will kill him, and collect his head and a box of the ore. You will then find the supplier, and collect his head and any other information you find on him. Bring me these four things and you will be rewarded. Do not fail.'"); + e.other:QuestReward(e.self,0,0,0,0,0,137180); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1776, item2 = 1777, item3 = 18174, item4 = 1778},1,text)) then--crate of ore,couriers head,suppliers head,sealed letter + e.self:Say("Honestly " .. e.other:GetCleanName() .. ", I thought you would not return. Such strength and intelligence in a Knight of Fear I have not seen for quite some time. Wear this in pride of the ancient Ridossan. Perhaps when you are ready, I will give you a more [important task]. This conspiracy must be stopped."); + e.other:Faction(e.self,265,20); -- +Heretics + e.other:Faction(e.self,242,-20); -- -Deepwater Knights + e.other:Faction(e.self,254,-20); -- -Gate Callers + e.other:Faction(e.self,231,-20); -- -Craftkeepers + e.other:Faction(e.self,233,-20); -- -Crimson Hands + e.other:QuestReward(e.self,0,0,0,0,1764,137180);--Leggings of Ridossan + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1892})) then-- Empty Jar + e.self:Say("Well done, " .. e.other:GetCleanName() .. "! Now we need only wait for the kobolds to start dying off and our plan will be complete. Should only take 8 years or so. One such as yourself will wear this ancient armor well. The Tunic of the crusader Rodossan is now yours. He shall watch over and praise you in your triumphs... your defeats on the other hand... well, never mind that."); + e.other:Faction(e.self,265,40); -- +Heretics + e.other:Faction(e.self,242,-40); -- -Deepwater Knights + e.other:Faction(e.self,254,-40); -- -Gate Callers + e.other:Faction(e.self,231,-40); -- -Craftkeepers + e.other:Faction(e.self,233,-40); -- -Crimson Hands + e.other:QuestReward(e.self,0,0,0,0,1765,137180);--Tunic of Ridossan + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/paineel/Sadorno_Chomosh.lua b/paineel/Sadorno_Chomosh.lua new file mode 100644 index 0000000..55d4ccf --- /dev/null +++ b/paineel/Sadorno_Chomosh.lua @@ -0,0 +1,49 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Salutations. I am Sadorno Chomosh, Templar of Terror. The path of terror taught to us by Cazic-Thule is a dangerous way of life. The perils are great, but the rewards are unimaginable power. In order to harness the powers of fear, you must first know that which you seek to control: terror, dread and fright. I presume that you are still young and have much to learn. If that is the case, I will assist you in acquiring [armaments] to aid you on your journey to power."); + elseif(e.message:findi("armament")) then + e.self:Say("You will require this Mail Assembly Kit that has been prepared in advance for the construction of Templar of Fright armor. The materials required for the armor's construction vary according to the section you desire to craft. When you have acquired your suit of armor, return to me and perhaps you can assist me with a [pending task]. Do you desire to craft a templar of fright [helm], a templar of fright [bracer], templar of fright [gauntlets], templar of fright [boots], templar of fright [vambraces], templar of fright [greaves], or a templar of fright [breastplate]?"); + e.other:SummonCursorItem(17124);--Mail Assembly Kit + elseif(e.message:findi("boot")) then + e.self:Say("To assemble Templar of Fright Boots, obtain two bricks of crude bronze and smelt them in a forge with a water flask and this crude boot mold. Then combine the crude bronze boots with two ruined kobold pelts and two kobold foot bones in the Mail Assembly Kit."); + e.other:SummonCursorItem(19634);--Crude Boot Mold + elseif(e.message:findi("helm")) then + e.self:Say("To assemble a Templar of Fright Helm you, obtain two bricks of crude bronze and smelt them in a forge with a water flask and this crude helm mold. Then combine the crude bronze helm with one ruined kobold pelt and a kobold skull in the Mail Assembly Kit."); + e.other:SummonCursorItem(19631);--Crude Helm Mold + elseif(e.message:findi("bracer")) then + e.self:Say("To assemble a Templar of Fright bracer, you will need to obtain a brick of crude bronze and smelt it in a forge with a water flask and this crude bracer mold. Once that is done, combine the crude bronze bracer with a ruined kobold pelt and a kobold ulna bone in the Mail Assembly Kit."); + e.other:SummonCursorItem(19632);--Crude Bracer Mold + elseif(e.message:findi("gauntlet")) then + e.self:Say("To assemble Templar of Fright gauntlets, obtain two bricks of crude bronze and smelt them in a forge with a water flask and this crude gauntlet mold. Then combine the crude bronze gauntlets with one ruined kobold pelt and two kobold finger bones in the Mail Assembly Kit."); + e.other:SummonCursorItem(19633);--Crude Gauntlets Mold + elseif(e.message:findi("vambrace")) then + e.self:Say("To assemble Templar of Fright vambraces, obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Vambrace Mold. Then combine the Crude Bronze Vambraces with an Intact Kobold Pelt and two Kobold Humerus Bones in the Mail Assembly Kit."); + e.other:SummonCursorItem(19635);--Crude Vambrace Mold + elseif(e.message:findi("greave")) then + e.self:Say("To assemble Templar of Fright Greaves, obtain two bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Greaves Mold. Then combine the Crude Bronze Greaves with two Intact Kobold Pelts and two Kobold Tibia bones in the Mail Assembly Kit."); + e.other:SummonCursorItem(19636);--Crude Greaves Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("To assemble a Templar of Fright Breastplate, obtain four bricks of crude bronze and smelt them in a forge with a Water Flask and this Crude Breastplate Mold. Then combine the Crude Bronze Breastplate with a Pristine Kobold Pelt, a Kobold sternum, and a Kobold ribcage in the Mail Assembly Kit."); + e.other:SummonCursorItem(19637);--Crude Breastplate Mold + elseif(e.message:findi("pending task")) then + e.self:Say("The Tabernacle of Terror has many enemies here on Odus who oppose our teachings to our patron deity, Cazic-Thule. The priests of Prexus and Quellious in the city of Erudin seek to purge Odus of our kind, for they view us as a disgrace to the Erudite race. Behind their disdain, however, lies fear. It is this fear that allows us to prosper and become more powerful than the closed-minded fools of Erudin. In the Toxxulia Forest, you will find such a fool, a priest named Terago Omath. This priest attempts to ward the Toxxulia Forest from the presence of the undead. Seek this Terago Omath and return to me with his head."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20419})) then + e.self:Say("Ah, it appears you have learned to control your fear while ridding us of another fool. Very well done. Take this Cudgel and return to me after sharpening it in a forge, along with a large Briar snake skin, and a petrified eyeball."); + e.other:QuestReward(e.self,0,0,0,0,20414); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20415, item2 = 20355, item3 = 20402})) then + e.self:Say("Very good work. Here is the Cudgel, use it well!"); + e.other:QuestReward(e.self,0,0,0,0,20417,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/paineel/Sejako_Mujan.lua b/paineel/Sejako_Mujan.lua new file mode 100644 index 0000000..ad98b6b --- /dev/null +++ b/paineel/Sejako_Mujan.lua @@ -0,0 +1,28 @@ +function event_say(e) + if((e.message:findi("Hail")) and (e.self:GetX()==924) and (e.self:GetY()==958)) then + e.self:Say("Shhhh....keep your voice down lest you wake Alaria. We can [speak elsewhere] if you wish."); + elseif((e.message:findi("speak elsewhere")) and (e.self:GetX()==924) and (e.self:GetY()==958)) then + e.self:Say("Follow me and we shall discuss how you may assist me with my [current research]."); + eq.start(16); + elseif((e.message:findi("current research")) and (e.self:GetX()==820) and (e.self:GetY()==930)) then + e.self:Say("Recently patrols have been sent to the Stonebrunt Mountains to investigate rumors of an alliance between the Kejekans and Erudin. There is much spiritual activity in that region of Odus and the patrols have reported encountering massive beasts called Titans. These titans exhibit abilities that lead me to believe they are powerful animal spirits that have somehow taken on a physical form in order to enter and manipulate the realm of the living. I require [samples] of the Titans physiology in order to further my research."); + elseif((e.message:findi("samples")) and (e.self:GetX()==820) and (e.self:GetY()==930)) then + e.self:Say("There have been sightings of Titans in many forms. The samples I require are the fangs of the leopard, sabretooth, and gorilla titans, and the rattle of the snake titan."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I require all four titan samples in order to pursue the research I desire."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6957, item2 = 6943, item3 = 6959, item4 = 6948},1,text)) then + e.self:Say("Excellent!! These shall provide valuable information to my research on the spirit realm."); + e.other:QuestReward(e.self,0,0,0,0,2568,250); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Sern_Adolia.lua b/paineel/Sern_Adolia.lua new file mode 100644 index 0000000..b18c71c --- /dev/null +++ b/paineel/Sern_Adolia.lua @@ -0,0 +1,65 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I hope you have a good reason for disturbing my contemplations. Perhaps you [seek the knowledge] of those who meditate within this Temple of Fear?"); + elseif(e.message:findi("I seek knowledge")) then + e.self:Say("It is the secrets of Fear you seek, but first you must prove your devotion to our temple. There are pack rats within the city that have a habit of getting into things. Some of these rats have ingested a concoction developed by the necromancers of this great city. The rats have since died and, due to the concoction, their undead corpses now roam the fields. Bring me four livers from these undead rats so that we may examine them."); + elseif(e.message:findi("duties")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The primary duty of this temple is to spread terror, fright, and dread as a symbol of your devotion to our lord Cazic Thule. We are currently researching a means of summoning avatars of Fright, Terror and Dread, the primary minions of the Faceless in his home plane. Will you [assist me in summoning] the avatar of Fright?"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I sense the potential to learn the ways of fear within you. Continue striving to master your fear and one day perhaps you can be of service to our Lord Cazic-Thule.") + else + e.self:Say("Begone from this place! Infidels like you have no place among the faithful of Cazic-Thule!") + end + elseif(e.message:findi("assist")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("In order to summon the avatar of Fright. I require some special components for the ritual. Fetch me the flesh of a zombie. the dust used in the process of mummification. [charred bone chips]. and a [vial of Tunare's Breath]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I sense the potential to learn the ways of fear within you. Continue striving to master your fear and one day perhaps you can be of service to our Lord Cazic-Thule.") + else + e.self:Say("Begone from this place! Infidels like you have no place among the faithful of Cazic-Thule!") + end + elseif(e.message:findi("chips")) then + e.self:Say("Some time ago a necromancer by the name of Obretl was sent to slay Rathmana Allin and his abomination of an adopted son. Ortallius. Obretl failed in his task and now haunts a small ruin in the desert of Ro cursed by Solusek to wallow in his failure in the form of a burning skeleton. Slay Obretl to free him from his pathetic existence and gather his charred remains."); + elseif(e.message:findi("vial")) then + e.self:Say("Tunare's Breath is a life-giving potion created by the Fier'Dal Soldiers of Tunare. Seek out the druid Kalayia who is known to wander the Faydarks in search of reagents for potions. Procure from her a vial of Tunare's Breath. Shed her blood if need be."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I need no fewer than four infected rat livers!! Now, go get me what I require!!"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18019})) then -- Harbingers of Fear Guild Note + e.self:Say("You are welcomed into the fold. Now go out. and prove yourself. young one. You have much to learn about the Dark Truth."); + e.other:Faction(e.self,265,100); -- Heretics + e.other:Faction(e.self,242,-100); -- Deepwater Knights + e.other:Faction(e.self,254,-100); -- Gate Callers + e.other:Faction(e.self,231,-100); -- Craftkeepers + e.other:Faction(e.self,233,-100); -- Crimson Hands + e.other:QuestReward(e.self,0,0,0,0,13573,20); -- Blood Splattered Tunic + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13270, item2 = 13270, item3 = 13270, item4 = 13270},1,text)) then + e.self:Say("Well done, go now and continue your contemplations of fear. Keep up with your [duties] and you will soon be reaping the rewards granted by our Lord Cazic-Thule!!"); + e.other:Faction(e.self,265,5); -- Faction: Heretics + e.other:Faction(e.self,231,-5); -- Faction: Craftkeepers + e.other:Faction(e.self,233,-5); -- Faction: Crimson Hands + e.other:Faction(e.self,242,-5); -- Faction: Deepwater Knights + e.other:Faction(e.self,254,-5); -- Faction: Gate Callers + e.other:QuestReward(e.self,0,0,0,0,1437,500); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13074, item2 = 16990, item3 = 14102, item4 = 14103})) then + e.self:Say("Excellent Job " .. e.other:GetCleanName() .. ". These components will help with our research immeasurably. You will soon be reaping the rewards granted by our Lord Cazic-Thule!! If you want to further assist our research effots, talk to Atdehim Sqonci."); + e.other:Faction(e.self,265,30); -- Faction: Heretics + e.other:Faction(e.self,231,-30); -- Faction: Craftkeepers + e.other:Faction(e.self,233,-30); -- Faction: Crimson Hands + e.other:Faction(e.self,242,-30); -- Faction: Deepwater Knights + e.other:Faction(e.self,254,-30); -- Faction: Gate Callers + e.other:QuestReward(e.self,0,0,0,0,14100,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:paineel ID:75072 -- Sern_Adolia +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/paineel/Sheras_Milaku.lua b/paineel/Sheras_Milaku.lua new file mode 100644 index 0000000..9fbc09b --- /dev/null +++ b/paineel/Sheras_Milaku.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. " .. e.other:GetCleanName() .. ". Feel free to peruse my wares but waste not my time with idle browsing if you do not intend to purchase something."); + end +end + +--END of FILE Zone:paineel ID:75107 -- Sheras_Milaku +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Shevra_Kollintar.lua b/paineel/Shevra_Kollintar.lua new file mode 100644 index 0000000..4010511 --- /dev/null +++ b/paineel/Shevra_Kollintar.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Unless you intend to [make yourself useful], do not bother me. I await the return of our Lord, Cazic-Thule. He comes, and I shall be the first to greet Him. I will train you, if need be, for He looks upon those who aid Him kindly. If you are not here for training, return to your meditations or bother someone else."); + elseif(e.message:findi("make myself useful")) then + e.self:Say("One of our spies has reported a sighting of Malik Zaren, a courier of [the High Council]. He was seen resting at an inn called 'Golden Roosters' in High Pass Hold and is en route to Erudin Palace. He may be carrying a message containing information of great value to us. Hunt him down and return to me with the letter he carries. I will reward you for this task."); + elseif(e.message:findi("high council")) then + e.self:Say("The High Council is the governing board of Erudin, our sworn enemies. Beware of these types, they will not look upon you warmly."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12270})) then --sealed letter + e.self:Say("Ah, excellent work. I certainly had my doubts about you, " .. e.other:GetCleanName() .. ". Wear this well."); + e.other:Faction(e.self,265,25); --Heretics + e.other:Faction(e.self,242,-25); --Deepwater Knights + e.other:Faction(e.self,254,-25); --Gate Callers + e.other:Faction(e.self,231,-25); --Craftkeepers + e.other:Faction(e.self,233,-25); --Crimson Hands + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(3040,3042,3043,3044,3046,3047,3048,3049,3050,3051),500); --random blackened iron + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:paineel ID:75109 -- Shevra_Kollintar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/paineel/Shwara_Volerno.lua b/paineel/Shwara_Volerno.lua new file mode 100644 index 0000000..7e9e160 --- /dev/null +++ b/paineel/Shwara_Volerno.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to The Abattoir fellow Cazicite. I am Shwara Volerno. Mistress of Necromancy. If you have just begun to study the Necromantic arts I will assist you with obtaining some [clothing] and a robe that will be most useful when conducting research outside of The Abattoirs walls. We members of the Abattoir are the most feared of the residents of Paineel by the citizens of Erudin. to venture too far beyond the safety of our city unprepared would be foolish."); + elseif(e.message:findi("clothing")) then + e.self:Say("You will require this Curing Kit that has been specially prepared for the crafting of a suit and robe of Abattoir Initiate Clothing. The components necessary to craft the clothing vary according to the article that you desire to fabricate. Once you have been outfitted in the proper attire return to me and you may assist with some [important research]. Do you desire to fabricate an [abattoir initiate cap]. [abattoir initiate wristband]. [abattoir initiate gloves]. [abattoir initiate boots]. [abattoir initiate sleeves]. [abattoir initiate pantaloons]. or [abattoir initiate robe]?"); + e.other:SummonCursorItem(17125); -- Item: Curing Kit + elseif(e.message:findi("important research")) then + e.self:Say("We Cazicites of the Abattoir are the most advanced Necromancers in all of Norrath. Our greatness is due to the diligence and studiousness we apply to our research. and our powers over fear. The foolish sorcerers in Erudin are afraid of the knowledge we possess. They fear the magic we wield and control. for their minds are too weak to harness it themselves. Despite our vast knowledge there is always more to learn that can prove to be beneficial to The Abattoir. I require your assistance in obtaining some [new information]."); + elseif(e.message:findi("new information")) then + e.self:Say("The Abattoir has recently discovered a Kobold Spiritist that wields necromantic powers. We believe this unusual kobold resides in the Warrens of Clan Kolbok as he has been sighted entering and exiting those ruinous caverns. It is possible that this kobold has somehow acquired this necromantic knowledge from Paineel but I would not like to rule out the possibility that it is a rare form of kobold sorcery. Find this Kobold Spiritist and bring me whatever arcane parchments you discover in his possession."); + elseif(e.message:findi("cap")) then + e.self:Say("To craft an Abattoir Initiate Cap you must obtain two [silk thread]. woven widow silk. and a briar snake skin. Once you have the necessary components combine them in your Curing Kit with this Tattered Cap Pattern."); + e.other:SummonCursorItem(19555); -- Item: Tattered Cap Pattern + elseif(e.message:findi("glove")) then + e.self:Say("To craft Abattoir Initiate Gloves you must obtain two [silk thread]. woven widow silk. two briar snake skins. Once you have the necessary components combine them in your Curing Kit with this Tattered Glove Pattern."); + e.other:SummonCursorItem(19559); -- Item: Tattered Glove Pattern + elseif(e.message:findi("wristband")) then + e.self:Say("To craft an Abattoir initiate Wristband you must obtain a [silk thread]. woven widow silk. and a briar snake skin. Once you have the necessary components combine them in your Curing Kit with this Tattered Wristband Pattern."); + e.other:SummonCursorItem(19558); -- Item: Tattered Wristband Pattern + elseif(e.message:findi("sleeve")) then + e.self:Say("To craft Abattoir Initiate Sleeves you must obtain two [silk thread]. woven widow silk. and two large briar snake skins. Once you have the necessary components combine them in your Curing Kit with this Tattered Sleeves Pattern."); + e.other:SummonCursorItem(19557); -- Item: Tattered Sleeve Pattern + elseif(e.message:findi("boot")) then + e.self:Say("To craft Abattoir Initiate Boots you must obtain two [silk thread]. two woven widow silk. and two briar snake skins. Once you have the necessary components combine them in your Curing Kit with this Tattered Boot Pattern."); + e.other:SummonCursorItem(19561); -- Item: Tattered Boot Pattern + elseif(e.message:findi("pantaloon")) then + e.self:Say("To craft Abattoir Initiate Pantaloons you must obtain two [silk thread]. woven widow silk. and four large briar snake skins. Once you have the necessary components combine them in your Curing Kit with this Tattered Leggings Pattern."); + e.other:SummonCursorItem(19560); -- Item: Tattered Pant Pattern + elseif(e.message:findi("robe")) then + e.self:Say("To craft an Abattoir Initiate Robe you must obtain three [silk thread]. two woven widow silks. and two giant briar snake skins. Once you have the necessary components combine them in your Curing Kit with this Tattered Robe Pattern."); + e.other:SummonCursorItem(11395); -- Item: Tattered Robe Pattern + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20420})) then + e.self:Say("Well done " .. e.other:GetCleanName() .. ".These parchments will be inspected immediately by some of The Abattoirs most experienced translators and researchers. Take this Rough Abattoir initiate Staff then go forth an obtain a Giant Briar Snake Skin and a Petrified Eyeball. Once you have done so bring me those items and the rough abattoir initiate staff and I will put the final touches on what will be your new instrument of power."); + e.other:Faction(e.self,265, 1); -- Faction: Heretics + e.other:Faction(e.self,242, -1); -- Faction: Deepwater Knights + e.other:Faction(e.self,254, -1); -- Faction: Gate Callers + e.other:Faction(e.self,231, -1); -- Faction: Craftkeepers + e.other:Faction(e.self,233, -1); -- Faction: Crimson Hands + e.other:QuestReward(e.self,0,0,0,0,20358); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20358, item2 = 20356, item3 = 20402})) then + e.self:Emote("fashions a grip out of the Giant Briar Snake Skin, fastens the Petrified Eyeball to a steel mount on one end of the staff, and tarnishes the wood of the staff with a shimmering black substance. 'Here is your new Abattoirs Initiate Staff, " .. e.other:GetCleanName() .. ". May it serve you well in your pursuit for power.'"); + e.other:Faction(e.self,265, 1); -- Faction: Heretics + e.other:Faction(e.self,242, -1); -- Faction: Deepwater Knights + e.other:Faction(e.self,254, -1); -- Faction: Gate Callers + e.other:Faction(e.self,231, -1); -- Faction: Craftkeepers + e.other:Faction(e.self,233, -1); -- Faction: Crimson Hands + e.other:QuestReward(e.self,0,0,0,0,20418); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:paineel ID:75015 -- Shwara_Volerno +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/paineel/Soulbinder_Tomas.lua b/paineel/Soulbinder_Tomas.lua new file mode 100644 index 0000000..1ca7a9e --- /dev/null +++ b/paineel/Soulbinder_Tomas.lua @@ -0,0 +1,15 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID()); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/paineel/Talloth_Vara.lua b/paineel/Talloth_Vara.lua new file mode 100644 index 0000000..adc9319 --- /dev/null +++ b/paineel/Talloth_Vara.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". You have come to the Anthenaeum Necromanita. This place serves as the stores of knowledge for the Seekers of the [Dark Truth]."); + elseif(e.message:findi("dark truth")) then + e.self:Say("The Dark Truth is what all the [necromancers] in Paineel seek to learn. The [real truth] is far more interesting."); + elseif(e.message:findi("necromancers")) then + e.self:Say("The necromancers here are called the Seekers of the Dark Truth. The leader of the Seekers is known as the Speaker of the Dark Truth. The current Speaker is Coriante Verisue. She does, however, have many [rivals]."); + elseif(e.message:findi("rivals")) then + e.self:Say("I support Coriante due to my respect for her. Many have no such respect and covet her power and position. One such individual is Darton, the Seeker's Chief Researcher. He is a direct descendant of [Dartain], a hero to our people."); + elseif(e.message:findi("dartain")) then + e.self:Say("That is a long story indeed, " .. e.other:GetCleanName() .. ". Many years ago, the heretics and the people of Erudin had a grand battle. During the conflicts, great magics were performed and many catastrophic effects plagued these lands, a good example of which would be the Hole."); + elseif(e.message:findi("real truth")) then + e.self:Say("The real truth is actually a theory of mine which I believe to be true. You see, the Seekers believe that necromancy is all that can be gained from the Dark Truth, whereas I believe it is merely a by-product."); + elseif(e.message:findi("hole")) then + e.self:Say("The Hole is a mysterious creation indeed. It was also a remarkable find. Within the vast caverns created by the magical battles, we found something very interesting. The Seekers call it the [Vault]. Much was done to research the Vault, but that is a story in and of itself."); + elseif(e.message:findi("vault")) then + e.self:Say("From what I can discern, the Vault was created from living stone. It was an artifact created by Brell Serilis to seal the passageway he had opened between the Plane of Underfoot and Norrath. The Vault was to keep Norrath safe from some of the more vicious denizens of the Plane of Underfoot. Something went terribly [wrong]."); + elseif(e.message:findi("wrong")) then + e.self:Say("During the Seekers' investigation of the Vault, they weakened its properties. In doing so, it released hordes of earthen elementals into our fine city. Had Dartain not [sacrificed] himself, we would surely be an extinct race."); + elseif(e.message:findi("sacrificed")) then + e.self:Say("When the Seekers developed a patch for the Vault, they sent Dartain in to magicially reseal the gateway. He was set upon by denizens of the Plane of Underfoot, and escaped into the Vault. There, with full knowledge that he would be trapped, he magically sealed the Vault once again, allowing us the freedom to create the [new city] you stand in now."); + elseif(e.message:findi("new city")) then + e.self:Say("You know not of what I speak? You should have really paid more attention to your studies. The city in which you now live is New Paineel. The ruins of the [old city] are the blight we call the Hole."); + elseif(e.message:findi("old city")) then + e.self:Say("The old city was marvelous indeed. The one that we have rebuilt barely captures the majesty the old city once displayed. It is still quite remarkable even in its destruction, however, it is heavily guarded by the [minions] of the Underfoot."); + elseif(e.message:findi("minion")) then + e.self:Say("The creatures who now call the city home are led by the Earthen Lord Yael. He is a force to be reckoned with, as he commands only the strongest of the elemental legions. Tread softly if you see him, for he will not hesitate to take your life. I grow tired, child. Please, enough stories for today. I must rest."); + end +end + +--END of FILE Zone:paineel ID:75077 -- Talloth_Vara +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Taralani_Rahnta.lua b/paineel/Taralani_Rahnta.lua new file mode 100644 index 0000000..2f4f17b --- /dev/null +++ b/paineel/Taralani_Rahnta.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. " .. e.other:GetCleanName() .. ". You have found the only place to purchase liquor in this fine city. It seems that many of my countrymen do not appreciate liquor as I do. Fear not if you spill. I have plenty of [skeletal servants] to clean up the mess."); + elseif(e.message:findi("skeletal servants")) then + e.self:Say("Can't you see. child? These dead servants of mine are bussing tables and dancing! They work incredibly cheaply. Heh. Don't try to harm them. though. they don't like that very much. Say. would you like to see something interesting?"); + elseif(e.message:findi("interest")) then + e.self:Emote("removes a satchel from under the counter. He opens it up to reveal a collection of strange looking tools. You have never seen their likeness anywhere on Norrath. The Bartender says, 'A traveling merchant sold these to me a while ago. They belonged to one of the ancient Vah'Shir before they were.. removed. They're worth thousands of platinum based on their historical significance alone, but I'll part with them for only 1000. Some collector's item, eh?'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {platinum = 1000}, 0)) then + e.self:Emote("beams the brightest smile you've ever seen in this dark place at you when you tell him you accept his offer. He quickly hands you the satchel and takes the platinum eagerly. As you leave, you swear you hear chuckle at something."); + e.other:QuestReward(e.self,0,0,0,0,17062); -- Kejekan Tool Kit + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/paineel/Taria_Clayspinner.lua b/paineel/Taria_Clayspinner.lua new file mode 100644 index 0000000..d29eb24 --- /dev/null +++ b/paineel/Taria_Clayspinner.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello. " .. e.other:GetCleanName() .. ". I make the finest statuettes in all the land. Each one depicts a power on Norrath. I have some of the most realistic and lifelike statues. I only take [special orders] as they are rather time-consuming to make."); + elseif(e.message:findi("what special orders")) then + e.self:Say("Well, if you must know, many priests and devout worshipers of Cazic-Thule purchase my statues and pray over them. I have made many other statuettes of the gods just to practice, on the off chance that a worshiper of another faith might care to order one from me."); + end +end + +--END of FILE Zone:paineel ID:75098 -- Taria_Clayspinner +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Tatalros_the_Cruel.lua b/paineel/Tatalros_the_Cruel.lua new file mode 100644 index 0000000..8929ec6 --- /dev/null +++ b/paineel/Tatalros_the_Cruel.lua @@ -0,0 +1,12 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("releases a low, guttural hiss, of unearthly power and fearsome ringing that echoes off the very walls of the city. 'Greetings, Erudite. It has been some time since I had the pleasure of seeing one of living flesh not cower and bleed from their very eyes at the mere sight of me. I shall not take it as an insult this time, as all things change and adapt. I assume that merely my name, which alone once caused fear and strife within the soul of any who heard it, has fallen from the pages of history. No matter, in time that shall be changed."); + + end +end + +--END of FILE Zone:paineel ID:75104 -- Iva_Tersala +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Tentus_Brackmar.lua b/paineel/Tentus_Brackmar.lua new file mode 100644 index 0000000..98c0688 --- /dev/null +++ b/paineel/Tentus_Brackmar.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey you! You watch yourself. These items are priceless. You break it. you buy it!"); + end +end + +--END of FILE Zone:paineel ID:75096 -- Tentus_Brackmar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Tormented_Soul.lua b/paineel/Tormented_Soul.lua new file mode 100644 index 0000000..9172bbf --- /dev/null +++ b/paineel/Tormented_Soul.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Whaaat foool does seek counsel with this spirit?"); + elseif(e.message:findi("counsel")) then + e.self:Say("Yes, counsel. It means to meet and converse, fool. Waste my time with definitions of words any dullard would know and taste my anger."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 7114})) then --Soul Trap (combined version) + e.self:Say("Ahhh. Sweet release. Wait... What is this? No! Do not bind me to this filthy bit of leather! Release! Curse you and curse Azrax to damnation!"); + e.other:Faction(e.self,265,75); -- Faction: Heretics + e.other:Faction(e.self,242,-15); -- Faction: Deepwater Knights + e.other:Faction(e.self,254,-15); -- Faction: Gate Callers + e.other:Faction(e.self,231,-15); -- Faction: Craftkeepers + e.other:Faction(e.self,233,-15); -- Faction: Crimson Hands + e.other:QuestReward(e.self,0,0,0,0,7105,5000); --Mantle of Souls + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/paineel/Velana_Kelmuza.lua b/paineel/Velana_Kelmuza.lua new file mode 100644 index 0000000..e47684b --- /dev/null +++ b/paineel/Velana_Kelmuza.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there. " .. e.other:GetCleanName() .. ". I hope you are faring well this day."); + end +end + +--END of FILE Zone:paineel ID:75046 -- Velana_Kelmuza +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Winnla_Crestus.lua b/paineel/Winnla_Crestus.lua new file mode 100644 index 0000000..b189775 --- /dev/null +++ b/paineel/Winnla_Crestus.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("By Cazic-Thule. I am going to kill him! If he keeps up that endless chatter.. Oh. hello there. " .. e.other:GetCleanName() .. ". Please feel free to peruse my wares."); + end +end + +--END of FILE Zone:paineel ID:75101 -- Winnla_Crestus +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/Yvonne_Ani.lua b/paineel/Yvonne_Ani.lua new file mode 100644 index 0000000..5135c0e --- /dev/null +++ b/paineel/Yvonne_Ani.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to my shop. " .. e.other:GetCleanName() .. ". Feel free to purchase whatever you need. I am sure that I can fill those needs. as [the Seekers of the Dark Truth] generally keep me stocked and on my toes."); + elseif(e.message:findi("who are the seekers of the dark truth")) then + e.self:Say("Ah. so you wish to know about the Seekers? They are the guild of necromancers here in Paineel. They are by far the most knowledgeable in the dark arts of all the known world. They purchase a good many [herbs] from me."); + elseif(e.message:findi("what herbs")) then + e.self:Say("The herbs the necromancers use typically have properties useful for the preservation of dead flesh. Who knows what they use them for?"); + end +end + +--END of FILE Zone:paineel ID:75081 -- Yvonne_Ani +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paineel/avatar_of_dread.lua b/paineel/avatar_of_dread.lua new file mode 100644 index 0000000..e7bdc5e --- /dev/null +++ b/paineel/avatar_of_dread.lua @@ -0,0 +1,33 @@ +count = 0; + +function event_spawn(e) + eq.set_timer("shout",17000); +end + +function event_timer(e) + if(e.timer == "shout") then + count = count + 1; + end + if(count) then + e.self:Shout("Grrrraaaaarrrrrg! The stench of fear permeates the walls of this city! I will forge one item for the faithful of our Lord Cazic-Thule! Make haste! My time here is short!"); + end + if(count == 10) then + eq.depop(); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14105})) then + e.self:Say("Wear this shield imbued with my very essence. Wear it in honor of your great services to our Lord Cazic-Thule!"); + e.other:Faction(e.self,265,50,0); -- Faction: Heretics + e.other:Faction(e.self,242,-50,0); -- Faction: Deepwater Knights + e.other:Faction(e.self,254,-50,0); -- Faction: Gate Callers + e.other:Faction(e.self,231,-50,0); -- Faction: Craftkeepers + e.other:Faction(e.self,233,-50,0); -- Faction: Crimson Hands + e.other:QuestReward(e.self,0,0,0,0,14107,1000); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/paineel/avatar_of_terror.lua b/paineel/avatar_of_terror.lua new file mode 100644 index 0000000..2be6b86 --- /dev/null +++ b/paineel/avatar_of_terror.lua @@ -0,0 +1,33 @@ +count = 0; + +function event_spawn(e) + eq.set_timer("shout",17000); +end + +function event_timer(e) + if(e.timer == "shout") then + count = count + 1; + end + if(count) then + e.self:Shout("Grrrraaaaarrrrrg! The stench of fear permeates the walls of this city! I will forge one item for the faithful of our Lord Cazic-Thule! Make haste! My time here is short!"); + end + if(count == 10) then + eq.depop(); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14106})) then -- mundane mask + e.self:Say("I grant you a mask crafted with my own essence! Wear it in honor of your devotion to our Lord Cazic-Thule!"); + e.other:Faction(e.self,265,50,0); -- Faction: Heretics + e.other:Faction(e.self,242,-50,0); -- Faction: Deepwater Knights + e.other:Faction(e.self,254,-50,0); -- Faction: Gate Callers + e.other:Faction(e.self,231,-50,0); -- Faction: Craftkeepers + e.other:Faction(e.self,233,-50,0); -- Faction: Crimson Hands + e.other:QuestReward(e.self,0,0,0,0,14108,5000); -- terror forged mask + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/paineel/library_assistant.lua b/paineel/library_assistant.lua new file mode 100644 index 0000000..347e881 --- /dev/null +++ b/paineel/library_assistant.lua @@ -0,0 +1,23 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Say("What is this? Just another piece of rubbish littering my library. The deceased are so much more tidy than the living!"); + end + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Lots to do! Many books to place and scrolls to file! Feel free to browse but. please. don't make a mess!"); + end +end + +--END of FILE Zone:paineel ID:75017 -- library_assistant +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/paludal/A_rain_of_spores.lua b/paludal/A_rain_of_spores.lua new file mode 100644 index 0000000..93f3a4a --- /dev/null +++ b/paludal/A_rain_of_spores.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 65, ex + 65, ey - 65, ey + 65, ez - 10, ez + 20); +end + +function event_enter(e) + e.self:CastSpell(2770,e.other:GetID(),0,0); -- Spell: Rain of Spore + eq.depop_with_timer(); +end diff --git a/paludal/Daesorak_Steelknuckle.lua b/paludal/Daesorak_Steelknuckle.lua new file mode 100644 index 0000000..c59d3f3 --- /dev/null +++ b/paludal/Daesorak_Steelknuckle.lua @@ -0,0 +1,44 @@ +-- Mining Operation + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Lo there stranger what ya doin in ere? You know how dangerous it can be down ere! I be lucky I got some of da finest miners werkin for me. I sure do hope we get those supplies soon."); + elseif(e.message:findi("supplies")) then + e.self:Say("Well da usual supplies dat ya need to keep a mining operation like this one goin smoothly. Mostly newer tools since ours be all rusted an worn from our hard work. If ye are interested in helpin us out ye could go talk to Coglirax in da Shadowhaven. We call em Ol Coggo, Im sure he would be able to give ye some goods to deliver ere."); + elseif(e.message:findi("retrieve the mining pick")) then + e.self:Say("Excellent, " .. e.other:GetCleanName() .. ". Please go see Terasol in Katta to retrieve my mining supplies. Bring him this note to show that you were sent by me. And dunt stray off track with these supplies, we needs em bad!"); + e.other:SummonCursorItem(4754); -- Item: A Jarbled Note + elseif(e.message:findi("return a letter")) then + e.self:Say("I thank you, " .. e.other:GetCleanName() .. ". Without your help I doubt we would have been able to finish this project on time! Please take this to my wife Aliane back home. You can surely count on me telling the Patriarch of how much help you have been when I return home. I wish you good journeys as for me its back to work I go!"); + e.other:SummonCursorItem(4756); -- Item: Letter to Aliane + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4747}, 0)) then + e.self:Say("Ah these must be from ol Coggo! Ye see I had sent out a few men to gather some new picks an such for the mining operation ere but they haven't returned yet. I'm really in need of some picks that are being held in Katta by a friend of mine. Will you [retrieve the mining picks] for me?"); + e.other:Faction(e.self,1512,5); -- house of stout + e.other:Faction(e.self,1508,1); -- traders of the haven + e.other:QuestReward(e.self,0,0,0,0,0,5000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4755}, 0)) then + e.self:Say("Ye did it, " .. e.other:GetCleanName() .. "! Ye hear dat, boys? Dis outlander ere jess delivered us our new minin picks! You have no idea how much these supplies will aid our operation! As a final task would you be able to [return a letter] to me wife back home?"); + e.other:Faction(e.self,1512,5); -- house of stout + e.other:Faction(e.self,1508,1); -- traders of the haven + e.other:QuestReward(e.self,0,0,0,0,0,5000); + yippee(e); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function yippee(e) + eq.get_entity_list():GetMobByNpcTypeID(156064):Say("Hurray!"); + eq.get_entity_list():GetMobByNpcTypeID(156061):Say("Hurray!"); + eq.get_entity_list():GetMobByNpcTypeID(156065):Say("Hurray!"); + eq.get_entity_list():GetMobByNpcTypeID(156066):Say("Hurray!"); + eq.get_entity_list():GetMobByNpcTypeID(156064):CastToMob():DoAnim(8); + eq.get_entity_list():GetMobByNpcTypeID(156061):CastToMob():DoAnim(8); + eq.get_entity_list():GetMobByNpcTypeID(156065):CastToMob():DoAnim(8); + eq.get_entity_list():GetMobByNpcTypeID(156066):CastToMob():DoAnim(8); +end diff --git a/paludal/Diojb_Waksom.lua b/paludal/Diojb_Waksom.lua new file mode 100644 index 0000000..a5dcbd6 --- /dev/null +++ b/paludal/Diojb_Waksom.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetins " .. e.other:GetCleanName() .. ". Great day for a mining if I dunt say so meself. Deres alot to be done so if ye need to speak with someone concerning our operation please see Daesorak."); + end +end diff --git a/paludal/Farlol_Duriclo.lua b/paludal/Farlol_Duriclo.lua new file mode 100644 index 0000000..4d732f7 --- /dev/null +++ b/paludal/Farlol_Duriclo.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Allo dere " .. e.other:GetCleanName() .. ". A mining I am indeed Aye. Daesorak is a gud and fair boss to us. he keeps us on schedule well. Well enough about me I hope ya find what ya seek in these caves."); + end +end diff --git a/paludal/Noppta_Mottun.lua b/paludal/Noppta_Mottun.lua new file mode 100644 index 0000000..bc89885 --- /dev/null +++ b/paludal/Noppta_Mottun.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello " .. e.other:GetCleanName() .. ". I know what youre thinking. What is a halfling doing amongst all these Dwarven miners. Well a strong halfling I am indeed so i fit in just fine!"); + end +end diff --git a/paludal/Overslo_Herlsal.lua b/paludal/Overslo_Herlsal.lua new file mode 100644 index 0000000..f0fc972 --- /dev/null +++ b/paludal/Overslo_Herlsal.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What ya doing here " .. e.other:GetCleanName() .. "? From da looks of ya ye dont appear to be a miner. A lil dainty if ya ask me! Har"); + end +end diff --git a/paw/Brother_Hayle.lua b/paw/Brother_Hayle.lua new file mode 100644 index 0000000..d9a4cac --- /dev/null +++ b/paw/Brother_Hayle.lua @@ -0,0 +1,66 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("This is no place for you. These Splitpaws are very fierce. Only the power of Rodcet Nife will guide them to the light. By the way, I might warn you that the cells here lock behind you."); + elseif(e.message:findi("free") or e.message:findi("help")) then + e.self:Say("I am in no need of rescue. I shall become a beacon of light to lead these beasts to the goodness of Rodcet Nife."); + elseif(e.message:findi("rodcet")) then + e.self:Say("Rodcet Nife is the Prime Healer. The god unto whom all creatures pray at some time in their lives. He will show these gnolls the true inner light. I have converted a few of these creatures, but I fear they have all been executed. My turn will come soon, but I believe that in my martyrdom they shall see the true glory of Rodcet Nife and a new life will heal their evil souls."); + elseif(e.message:findi("here") or e.message:findi("cell")) then + e.self:Say("I was in the process of converting some of these beasts into disciples of Rodcet Nife when their shamans found out and captured me. That was weeks ago, I believe. Now, here, we shall all die."); + elseif(e.message:findi("proof of nobility")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("I require the returned note I gave you, a Testimony of Truth, a Sword of Faith and finally the hilt of Soulfire. The Testimony and Sword of Faith are earned in the Hall of Truth, but for the hilt of Soulfire you shall have to battle [Xicotl]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Temple of Life smiles upon you, friend... but such a delicate matter can only be entrusted to our most loyal members."); + else + e.self:Say("Your mere presence disgusts me. Please remove yourself from my sight. Until you change yourself and your ways, you are unwelcome in the Temple of Life."); + end + elseif(e.message:findi("xicotl")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Xicotl is the evil troll who attempted to steal Soulfire from the vaults of the Temple of Life. The hilt of Soulfire broke off during the battle and now rests in the hands of this troll shadowknight. From what I have heard, he is frequently an invited guest at the castle called Mistmoore. Woe to any paladin who dares set foot upon the land of Mistmoore, but should you attempt it you might search the guest rooms for the troll. May Rodcet Nife walk with you."); + else + e.self:Say("Your mere presence disgusts me. Please remove yourself from my sight. Until you change yourself and your ways, you are unwelcome in the Temple of Life."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I will not hand Soulfire to you until you hand me the Soulfire hilt, Testimony of Truth, Sword of Faith and the returned note. I require them as [proof of nobility]."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18927})) then -- Temple Summons + e.self:Say("I am needed!! What am I doing here? I must return to the Temple of Life to commune with the Prime Healer. Rodcet Nife will give me more strength to finish this job. Thank you, young one! Take this key as a reward. Turn it into Tyokan in the temple shop. Safe journey to you!"); + -- confirmed live faction and Experience + e.other:Faction(e.self,341,20); -- Priest of Life + e.other:Faction(e.self,280,6); -- Knights of Thunder + e.other:Faction(e.self,262,10); -- Guards of Qeynos + e.other:Faction(e.self,221,-5); -- BloodSabers + e.other:Faction(e.self,219,3); -- Antonious Bayle + e.other:QuestReward(e.self,{itemid = 13306,exp = 1000}); -- T.O.L. 2020 + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18936})) then -- A Sealed Note + e.self:Say("Finally!! I see that Ariska has found a noble knight to retrieve Soulfire. Per Ariska's orders I am not to give Soulfire to you until you can show me [proof of nobility]. You must honor both the Temple of Life as well as the Hall of Truth and to a high degree. Only then shall you hold Soulfire."); + e.other:Faction(e.self,341,10); -- Priest of Life + e.other:Faction(e.self,280,3); -- Knights of Thunder + e.other:Faction(e.self,262,5); -- Guards of Qeynos + e.other:Faction(e.self,221,-2); -- BloodSabers + e.other:Faction(e.self,219,1); -- Antonious Bayle + e.other:QuestReward(e.self,0,0,0,0,18937,200); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18937,item2 = 13947,item3 = 18828,item4 = 12197},1,text)) then -- A Note, Brilliant Sword of Faith, Testimony, Glowing Sword Hilt + if(e.other:GetFactionValue(e.self) >= 750) then -- items will get eaten if faction not high enough. + e.self:Say("You have proven yourself worthy to hold Soulfire. Do not let her slip into the hands of evil. There are many who wish to free the many trapped souls of shadowknights and necromancers trapped inside the blade. The power of the blade can be called upon to heal you if need be. May Rodcet Nife and the twins of Marr hold you in their glory."); + e.other:Faction(e.self,341,100); -- Priest of Life + e.other:Faction(e.self,280,30); -- Knights of Thunder + e.other:Faction(e.self,262,50); -- Guards of Qeynos + e.other:Faction(e.self,221,-25); -- BloodSabers + e.other:Faction(e.self,219,15); -- Antonious Bayle + e.other:QuestReward(e.self,{itemid = 5504,exp = 10000}); -- soulfire + else + e.self:Say("Your mere presence disgusts me. Please remove yourself from my sight. Until you change yourself and your ways, you are unwelcome in the Temple of Life."); + -- faction not high enough, items get eaten. + e.self:DeleteQuestLoot(); + end + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of File Zone:paw -- Brother_Hayle diff --git a/permafrost/#Scout_Janomin.lua b/permafrost/#Scout_Janomin.lua new file mode 100644 index 0000000..9d592c6 --- /dev/null +++ b/permafrost/#Scout_Janomin.lua @@ -0,0 +1,20 @@ +function event_spawn(e) + eq.set_timer("depop",3600000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9036})) then + e.self:Say("Perfect work, " .. e.other:GetCleanName() .. "! I am glad the Elders made such a wise choice in sending you. I must admit, I was rather scared during the exploration of these halls. This lair is quite foul, quite foul indeed! Take this wrapped totem and place it in the case that you were given. Once you have all of the totems, seal the case and make your way back to Shar Vahl. I work my way back as well. Thank you again. "); + e.other:QuestReward(e.self,{items = {9037,9031}}); -- Items: Wrapped Ice Bear Totem, Official Seal of the Khati Sha + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/permafrost/#The_Icebound_Spirit.lua b/permafrost/#The_Icebound_Spirit.lua new file mode 100644 index 0000000..437f6f7 --- /dev/null +++ b/permafrost/#The_Icebound_Spirit.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + eq.set_timer("roar",1000); +end + +function event_timer(e) + if(e.timer == "roar") then + eq.stop_timer("roar"); + eq.set_timer("depop",1800000); + eq.zone_emote(0,"A large creature growls from deep within its icy lair."); + elseif(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_death_complete(e) + eq.unique_spawn(73007,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end diff --git a/permafrost/Lady_Vox.lua b/permafrost/Lady_Vox.lua new file mode 100644 index 0000000..3f1de95 --- /dev/null +++ b/permafrost/Lady_Vox.lua @@ -0,0 +1,66 @@ +-- Attempt to limit players level 53 and over from engaging nagafen and vox. +-- Banished to Permafrost. +local SpawnX = 0; +local SpawnY = 0; +local SpawnZ = 0; +local SpawnH = 0; + +function event_spawn(e) + SpawnX = e.self:GetX(); + SpawnY = e.self:GetY(); + SpawnZ = e.self:GetZ(); + SpawnH = e.self:GetHeading(); + local range = 210; + local range2 = 98; + eq.set_proximity(SpawnX - range, SpawnX + range, SpawnY - range2, SpawnY + range, SpawnZ - 20, SpawnZ + 50); +end + +function event_enter(e) + if(e.other:GetLevel() > 52 and e.other:Admin() < 80) then + e.other:Message(4,"I will not fight you, but I shall banish you!"); + e.other:MovePC(30,-7024,2020,-60.7,0); -- Zone: burningwood + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("1",1000); --a 1 second leash timer. + else + eq.stop_timer("1"); + e.self:GMMove(SpawnX,SpawnY,SpawnZ,SpawnH); + end +end + +function event_timer(e) + if(e.timer == "1") then + if(e.self:GetX() < -431 or e.self:GetX() > -85 or e.self:GetY() < 770 or e.self:GetY() > 1090 or e.self:GetZ() < -50) then + e.self:GMMove(SpawnX,SpawnY,SpawnZ,SpawnH); + elseif(e.self:CountHateList() > 0) then + e.self:ForeachHateList( + function(ent, hate, damage, frenzy) + if(ent:IsClient()) then + ent:CastToClient():Message(4,"I will not fight you, but I shall banish you!"); + if(ent:CastToClient():GetBindZoneID() == 73) then + ent:CastToClient():SetBindPoint(30,-7024,2020,-60); + end + ent:CastToClient():MovePC(30,-7024,2020,-60.7,0); + end + end, + function(ent, hate, damage, frenzy) + if(ent:IsClient()) then + if(ent:CastToClient():GetLevel() > 52) then + return true; + end + end + return false; + end + ); + end + end +end + +function event_signal(e) + if ( e.signal == 1 ) then + e.self:Shout("The Sleeper stirs! A glorious new age for Norrath is about to begin, and my exile is about to end!"); + end +end diff --git a/permafrost/Scout_Janomin.lua b/permafrost/Scout_Janomin.lua new file mode 100644 index 0000000..ddc16d2 --- /dev/null +++ b/permafrost/Scout_Janomin.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It is a pleasure to meet you, but I do not have time to speak. I am waiting on official word from Shar Vahl. If you have been sent to assist me, please show me the Official Seal of the Khati Sha at this time. If you are not such a person, please carry on with your business and leave me to tend to mine."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9031})) then + e.self:Say("It is a comfort to meet you, " .. e.other:GetCleanName() .. ". I was afraid that you might not be able to track me with weather out there being what it is. I must admit that my fondness of the snow is at an all time low right now. The sooner you release the spirit that resides in here, the sooner we can make a way back to a warmer climate."); + eq.spawn2(73107,0,0,-135,973,-105,0); -- NPC: The_Icebound_Spirit + eq.unique_spawn(73005,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/permafrost/Zehkes_the_Great_Storm.lua b/permafrost/Zehkes_the_Great_Storm.lua new file mode 100644 index 0000000..feb4589 --- /dev/null +++ b/permafrost/Zehkes_the_Great_Storm.lua @@ -0,0 +1,9 @@ +function event_spawn(e) + eq.set_timer("depop",20000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end diff --git a/poair/#Baltaldor_the_Cursed.lua b/poair/#Baltaldor_the_Cursed.lua new file mode 100644 index 0000000..2c2f5d8 --- /dev/null +++ b/poair/#Baltaldor_the_Cursed.lua @@ -0,0 +1,31 @@ +function event_combat(e) + if ( e.joined ) then + eq.set_timer("drophate", 1000); + else + eq.stop_timer("drophate"); + + -- this is to mimic certain behavior Sony's servers had/has. NPCs aggroed a long time sometimes warp home or + -- some distance away in the direction of home and heal somewhat when they hate list wipe. The exact logic to this + -- behavior is unknown. Bosses with the tank hate list drop mechanic need this in order to not trivialize the + -- encounter using mem blur. This is a crude solution that works well enough + local ratio = e.self:GetHPRatio(); + if ( ratio < 50 or math.random(100) > ratio ) then + e.self:GMMove(e.self:GetGuardPointX(), e.self:GetGuardPointY(), e.self:GetGuardPointZ(), e.self:GetSpawnPointH()); + e.self:SetHP(e.self:GetHP() + math.floor(e.self:GetMaxHP() * 0.3)); + end + end +end + +function event_timer(e) + + if ( e.timer == "drophate") then + + if ( math.random() < 0.01666 ) then -- averages to once per minute + local target = e.self:GetTarget(); + if ( target and target.valid ) then + e.self:RemoveFromHateList(target); + end + eq.debug(e.self:GetName().." dropped target from hate list ("..target:GetName()..")", 2); + end + end +end diff --git a/poair/#Chamberlain_Escalardian.lua b/poair/#Chamberlain_Escalardian.lua new file mode 100644 index 0000000..3675561 --- /dev/null +++ b/poair/#Chamberlain_Escalardian.lua @@ -0,0 +1,42 @@ +function event_death_complete(e) + eq.depop_with_timer(215418); -- armor_guy +end + +function event_signal(e) + local client = eq.get_entity_list():GetClientByID(e.signal); + if ( client and client.valid ) then + e.self:AddToHateList(client, 1); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("drophate", 1000); + else + eq.stop_timer("drophate"); + + -- this is to mimic certain behavior Sony's servers had/has. NPCs aggroed a long time sometimes warp home or + -- some distance away in the direction of home and heal somewhat when they hate list wipe. The exact logic to this + -- behavior is unknown. Bosses with the tank hate list drop mechanic need this in order to not trivialize the + -- encounter using mem blur. This is a crude solution that works well enough + local ratio = e.self:GetHPRatio(); + if ( ratio < 50 or math.random(100) > ratio ) then + e.self:GMMove(e.self:GetGuardPointX(), e.self:GetGuardPointY(), e.self:GetGuardPointZ(), e.self:GetSpawnPointH()); + e.self:SetHP(e.self:GetHP() + math.floor(e.self:GetMaxHP() * 0.3)); + end + end +end + +function event_timer(e) + + if ( e.timer == "drophate") then + + if ( math.random() < 0.01666 ) then -- averages to once per minute + local target = e.self:GetTarget(); + if ( target and target.valid ) then + e.self:RemoveFromHateList(target); + end + eq.debug(e.self:GetName().." dropped target from hate list ("..target:GetName()..")", 2); + end + end +end diff --git a/poair/#Constable_Alranderisan.lua b/poair/#Constable_Alranderisan.lua new file mode 100644 index 0000000..8297d82 --- /dev/null +++ b/poair/#Constable_Alranderisan.lua @@ -0,0 +1,12 @@ +function event_signal(e) + local client = eq.get_entity_list():GetClientByID(e.signal); + if ( client and client.valid ) then + e.self:AddToHateList(client, 1); + end +end + +function event_death_complete(e) + eq.signal(215419, 2); -- POACastellanController + eq.signal(215411, e.killer:GetID(), 1000); -- #Chamberlain_Escalardian + eq.signal(215410, e.killer:GetID(), 1000); -- #A_Chamberlain`s_Apprentice +end diff --git a/poair/#Constable_Belecohen.lua b/poair/#Constable_Belecohen.lua new file mode 100644 index 0000000..6e1adc8 --- /dev/null +++ b/poair/#Constable_Belecohen.lua @@ -0,0 +1,12 @@ +function event_signal(e) + local client = eq.get_entity_list():GetClientByID(e.signal); + if ( client and client.valid ) then + e.self:AddToHateList(client, 1); + end +end + +function event_death_complete(e) + eq.signal(215419, 3); -- POACastellanController + eq.signal(215411, e.killer:GetID(), 1000); -- #Chamberlain_Escalardian + eq.signal(215410, e.killer:GetID(), 1000); -- #A_Chamberlain`s_Apprentice +end diff --git a/poair/#Constable_Ferabalen.lua b/poair/#Constable_Ferabalen.lua new file mode 100644 index 0000000..73171f5 --- /dev/null +++ b/poair/#Constable_Ferabalen.lua @@ -0,0 +1,12 @@ +function event_signal(e) + local client = eq.get_entity_list():GetClientByID(e.signal); + if ( client and client.valid ) then + e.self:AddToHateList(client, 1); + end +end + +function event_death_complete(e) + eq.signal(215419, 4); -- POACastellanController + eq.signal(215411, e.killer:GetID(), 1000); -- #Chamberlain_Escalardian + eq.signal(215410, e.killer:GetID(), 1000); -- #A_Chamberlain`s_Apprentice +end diff --git a/poair/#Gakamenial_Fir`Disralsi.lua b/poair/#Gakamenial_Fir`Disralsi.lua new file mode 100644 index 0000000..2c2f5d8 --- /dev/null +++ b/poair/#Gakamenial_Fir`Disralsi.lua @@ -0,0 +1,31 @@ +function event_combat(e) + if ( e.joined ) then + eq.set_timer("drophate", 1000); + else + eq.stop_timer("drophate"); + + -- this is to mimic certain behavior Sony's servers had/has. NPCs aggroed a long time sometimes warp home or + -- some distance away in the direction of home and heal somewhat when they hate list wipe. The exact logic to this + -- behavior is unknown. Bosses with the tank hate list drop mechanic need this in order to not trivialize the + -- encounter using mem blur. This is a crude solution that works well enough + local ratio = e.self:GetHPRatio(); + if ( ratio < 50 or math.random(100) > ratio ) then + e.self:GMMove(e.self:GetGuardPointX(), e.self:GetGuardPointY(), e.self:GetGuardPointZ(), e.self:GetSpawnPointH()); + e.self:SetHP(e.self:GetHP() + math.floor(e.self:GetMaxHP() * 0.3)); + end + end +end + +function event_timer(e) + + if ( e.timer == "drophate") then + + if ( math.random() < 0.01666 ) then -- averages to once per minute + local target = e.self:GetTarget(); + if ( target and target.valid ) then + e.self:RemoveFromHateList(target); + end + eq.debug(e.self:GetName().." dropped target from hate list ("..target:GetName()..")", 2); + end + end +end diff --git a/poair/#Queen_Silandria.lua b/poair/#Queen_Silandria.lua new file mode 100644 index 0000000..2c2f5d8 --- /dev/null +++ b/poair/#Queen_Silandria.lua @@ -0,0 +1,31 @@ +function event_combat(e) + if ( e.joined ) then + eq.set_timer("drophate", 1000); + else + eq.stop_timer("drophate"); + + -- this is to mimic certain behavior Sony's servers had/has. NPCs aggroed a long time sometimes warp home or + -- some distance away in the direction of home and heal somewhat when they hate list wipe. The exact logic to this + -- behavior is unknown. Bosses with the tank hate list drop mechanic need this in order to not trivialize the + -- encounter using mem blur. This is a crude solution that works well enough + local ratio = e.self:GetHPRatio(); + if ( ratio < 50 or math.random(100) > ratio ) then + e.self:GMMove(e.self:GetGuardPointX(), e.self:GetGuardPointY(), e.self:GetGuardPointZ(), e.self:GetSpawnPointH()); + e.self:SetHP(e.self:GetHP() + math.floor(e.self:GetMaxHP() * 0.3)); + end + end +end + +function event_timer(e) + + if ( e.timer == "drophate") then + + if ( math.random() < 0.01666 ) then -- averages to once per minute + local target = e.self:GetTarget(); + if ( target and target.valid ) then + e.self:RemoveFromHateList(target); + end + eq.debug(e.self:GetName().." dropped target from hate list ("..target:GetName()..")", 2); + end + end +end diff --git a/poair/#Rinturion_Windblade.lua b/poair/#Rinturion_Windblade.lua new file mode 100644 index 0000000..2c2f5d8 --- /dev/null +++ b/poair/#Rinturion_Windblade.lua @@ -0,0 +1,31 @@ +function event_combat(e) + if ( e.joined ) then + eq.set_timer("drophate", 1000); + else + eq.stop_timer("drophate"); + + -- this is to mimic certain behavior Sony's servers had/has. NPCs aggroed a long time sometimes warp home or + -- some distance away in the direction of home and heal somewhat when they hate list wipe. The exact logic to this + -- behavior is unknown. Bosses with the tank hate list drop mechanic need this in order to not trivialize the + -- encounter using mem blur. This is a crude solution that works well enough + local ratio = e.self:GetHPRatio(); + if ( ratio < 50 or math.random(100) > ratio ) then + e.self:GMMove(e.self:GetGuardPointX(), e.self:GetGuardPointY(), e.self:GetGuardPointZ(), e.self:GetSpawnPointH()); + e.self:SetHP(e.self:GetHP() + math.floor(e.self:GetMaxHP() * 0.3)); + end + end +end + +function event_timer(e) + + if ( e.timer == "drophate") then + + if ( math.random() < 0.01666 ) then -- averages to once per minute + local target = e.self:GetTarget(); + if ( target and target.valid ) then + e.self:RemoveFromHateList(target); + end + eq.debug(e.self:GetName().." dropped target from hate list ("..target:GetName()..")", 2); + end + end +end diff --git a/poair/A_Castellan_of_Air.lua b/poair/A_Castellan_of_Air.lua new file mode 100644 index 0000000..67b4dd9 --- /dev/null +++ b/poair/A_Castellan_of_Air.lua @@ -0,0 +1,22 @@ +local CONTROLLER_TYPE = 215419; -- POACastellanController +local INLOKHER_TYPE = 215409; -- #Inlokher_the_Warlord + +function event_death_complete(e) + + eq.signal(CONTROLLER_TYPE, 1); + eq.signal(215383, e.killer:GetID(), 1000); -- #Constable_Alranderisan + eq.signal(215384, e.killer:GetID(), 1000); -- #Constable_Belecohen + eq.signal(215385, e.killer:GetID(), 1000); -- #Constable_Ferabalen + + local roll = math.random(100); + + if ( roll < 6 and not eq.get_entity_list():IsMobSpawnedByNpcTypeID(INLOKHER_TYPE) ) then + eq.spawn2(INLOKHER_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + end + + roll = math.random(1, 4); + + for i = 1, roll do + eq.spawn2(215413, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- A_Vengeful_Airspirit + end +end diff --git a/poair/A_Marauding_Stormrider.lua b/poair/A_Marauding_Stormrider.lua new file mode 100644 index 0000000..4a65be5 --- /dev/null +++ b/poair/A_Marauding_Stormrider.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.set_timer("depop", 12000); +end + +function event_timer(e) + eq.depop(); +end diff --git a/poair/A_Phoenix_Breezewing.lua b/poair/A_Phoenix_Breezewing.lua new file mode 100644 index 0000000..57535a4 --- /dev/null +++ b/poair/A_Phoenix_Breezewing.lua @@ -0,0 +1,5 @@ +function event_death_complete(e) + for i = 2, 4 do + eq.spawn2(215412, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- A_Phoenix_Gustlet + end +end diff --git a/poair/A_Phoenix_Gustlet.lua b/poair/A_Phoenix_Gustlet.lua new file mode 100644 index 0000000..11bfa0b --- /dev/null +++ b/poair/A_Phoenix_Gustlet.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 600000); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if ( e.timer == "depop" and not e.self:Charmed() ) then + eq.depop(); + end +end diff --git a/poair/A_Phoenix_Scorchlet.lua b/poair/A_Phoenix_Scorchlet.lua new file mode 100644 index 0000000..11bfa0b --- /dev/null +++ b/poair/A_Phoenix_Scorchlet.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 600000); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if ( e.timer == "depop" and not e.self:Charmed() ) then + eq.depop(); + end +end diff --git a/poair/A_Phoenix_Searedwing.lua b/poair/A_Phoenix_Searedwing.lua new file mode 100644 index 0000000..a1f5199 --- /dev/null +++ b/poair/A_Phoenix_Searedwing.lua @@ -0,0 +1,5 @@ +function event_death_complete(e) + for i = 2, 4 do + eq.spawn2(215431, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- A_Phoenix_Scorchlet + end +end diff --git a/poair/A_Vengeful_Airspirit.lua b/poair/A_Vengeful_Airspirit.lua new file mode 100644 index 0000000..11bfa0b --- /dev/null +++ b/poair/A_Vengeful_Airspirit.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 600000); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if ( e.timer == "depop" and not e.self:Charmed() ) then + eq.depop(); + end +end diff --git a/poair/Arch_Mage_Alchtonion.lua b/poair/Arch_Mage_Alchtonion.lua new file mode 100644 index 0000000..2c2f5d8 --- /dev/null +++ b/poair/Arch_Mage_Alchtonion.lua @@ -0,0 +1,31 @@ +function event_combat(e) + if ( e.joined ) then + eq.set_timer("drophate", 1000); + else + eq.stop_timer("drophate"); + + -- this is to mimic certain behavior Sony's servers had/has. NPCs aggroed a long time sometimes warp home or + -- some distance away in the direction of home and heal somewhat when they hate list wipe. The exact logic to this + -- behavior is unknown. Bosses with the tank hate list drop mechanic need this in order to not trivialize the + -- encounter using mem blur. This is a crude solution that works well enough + local ratio = e.self:GetHPRatio(); + if ( ratio < 50 or math.random(100) > ratio ) then + e.self:GMMove(e.self:GetGuardPointX(), e.self:GetGuardPointY(), e.self:GetGuardPointZ(), e.self:GetSpawnPointH()); + e.self:SetHP(e.self:GetHP() + math.floor(e.self:GetMaxHP() * 0.3)); + end + end +end + +function event_timer(e) + + if ( e.timer == "drophate") then + + if ( math.random() < 0.01666 ) then -- averages to once per minute + local target = e.self:GetTarget(); + if ( target and target.valid ) then + e.self:RemoveFromHateList(target); + end + eq.debug(e.self:GetName().." dropped target from hate list ("..target:GetName()..")", 2); + end + end +end diff --git a/poair/Essence_of_Air.lua b/poair/Essence_of_Air.lua new file mode 100644 index 0000000..74557ed --- /dev/null +++ b/poair/Essence_of_Air.lua @@ -0,0 +1,76 @@ +local FLAG_LIMIT = 72; + +local flags = 0; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + +function event_signal(e) + rid, gid, cid = nil, nil, nil; + local client = eq.get_entity_list():GetClientByID(e.signal); -- the signal # is the entity ID of a client with kill credit + + if ( client.valid ) then + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + end +end + +function event_spawn(e) + eq.set_timer("depop", 1200000); + flags = 0; +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_say(e) + + if ( ClientCanFlag(e.other) and e.message:findi("hail") ) then + + if ( not e.other:HasItem(29164) and not e.other:HasItem(29165) ) then -- Amorphous Cloud of Air, Quintessence of Elements + e.other:SummonCursorItem(29164); -- Item: Amorphous Cloud of Air + flags = flags + 1; + end + + if ( flags >= FLAG_LIMIT ) then + eq.depop(); + end + end +end diff --git a/poair/POACastellanController.lua b/poair/POACastellanController.lua new file mode 100644 index 0000000..7c920a9 --- /dev/null +++ b/poair/POACastellanController.lua @@ -0,0 +1,113 @@ +local CASTELLAN_TYPE = 215000; -- A_Castellan_of_Air +local ALRANDERISAN_TYPE = 215383; -- #Constable_Alranderisan +local BELECOHEN_TYPE = 215384; -- #Constable_Belecohen +local FERABALEN_TYPE = 215385; -- #Constable_Ferabalen +local CHAMBERLAIN_TYPE = 215411; -- #Chamberlain_Escalardian +local APPRENTICE_TYPE = 215410; -- #A_Chamberlain`s_Apprentice +local ARMOR_GUY_TYPE = 215418; -- armor_guy + +local CASTELLAN_SPAWNIDS = { 365333, 365444, 365629, 365679, 365833, 366093, 366315, 366369, 366414, 366612, + 366707, 366798, 367079, 367099, 367284 }; +local LOCS = { + [ALRANDERISAN_TYPE] = { 403, 463, -88.5 }, + [BELECOHEN_TYPE] = { 518, 456, -88.5 }, + [FERABALEN_TYPE] = { 461, 498, -85.875 }, +}; + +local signals = {}; +local kills = 0; +local spawns = { ALRANDERISAN_TYPE, BELECOHEN_TYPE, FERABALEN_TYPE }; + +function RepopIsland() + local elist = eq.get_entity_list(); + + for _, id in ipairs(CASTELLAN_SPAWNIDS) do + elist:GetSpawnByID(id):Repop(); + end + + kills = 0; + + for i = 2, 4 do + signals[i] = nil; + end + + spawns[1] = eq.ChooseRandom(ALRANDERISAN_TYPE, BELECOHEN_TYPE, FERABALEN_TYPE); + spawns[2] = nil; + spawns[3] = nil; + while ( not spawns[2] ) do + spawns[2] = eq.ChooseRandom(ALRANDERISAN_TYPE, BELECOHEN_TYPE, FERABALEN_TYPE); + if ( spawns[2] == spawns[1] ) then + spawns[2] = nil; + end + end + while ( not spawns[3] ) do + spawns[3] = eq.ChooseRandom(ALRANDERISAN_TYPE, BELECOHEN_TYPE, FERABALEN_TYPE); + if ( spawns[3] == spawns[1] or spawns[3] == spawns[2] ) then + spawns[3] = nil; + end + end +end + +function event_spawn(e) + eq.set_timer("castellan_repop", 1080000); +end + +function event_timer(e) + + if ( e.timer == "castellan_repop" ) then + RepopIsland(); + end +end + +function event_signal(e) + + if ( e.signal == 1 ) then + + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(CASTELLAN_TYPE) ) then + eq.set_timer("castellan_repop", 1080000); -- 18 mins + else + eq.set_timer("castellan_repop", 10800000); -- 3 hours + end + + kills = kills + 1; + + local t, mob; + if ( kills == 5 ) then + t = spawns[1]; + elseif ( kills == 10 ) then + t = spawns[2]; + elseif ( kills == 15 ) then + t = spawns[3]; + end + + if ( t ) then + loc = LOCS[t]; + mob = eq.unique_spawn(t, 0, 0, LOCS[t][1], LOCS[t][2], LOCS[t][3], 0); + if ( mob and mob.valid ) then + eq.debug(mob:GetCleanName().." spawned"); + end + end + + else + signals[e.signal] = 1; + + if ( signals[2] and signals[3] and signals[4] ) then + + local elist = eq.get_entity_list(); + local mob; + + if ( not elist:IsMobSpawnedByNpcTypeID(CHAMBERLAIN_TYPE) and not elist:IsMobSpawnedByNpcTypeID(APPRENTICE_TYPE) ) then + + if ( elist:IsMobSpawnedByNpcTypeID(ARMOR_GUY_TYPE) ) then + mob = eq.spawn2(CHAMBERLAIN_TYPE, 0, 0, 457, 412, -88.622, 0); + else + mob = eq.spawn2(APPRENTICE_TYPE, 0, 0, 457, 412, -88.622, 0); + end + if ( mob and mob.valid ) then + eq.debug(mob:GetCleanName().." spawned"); + end + end + + end + end +end diff --git a/poair/encounters/Dust.lua b/poair/encounters/Dust.lua new file mode 100644 index 0000000..1f1ac9e --- /dev/null +++ b/poair/encounters/Dust.lua @@ -0,0 +1,288 @@ +local CONTROLLER_TYPE = 215422; -- POASpiderController +local SIGISMOND_TYPE = 215375; --Sigismond_Windwalker +local CRYSTALLINE_TYPE = 215043; -- A_Crystalline_Windwalker +local PRISTINE_TYPE = 215044; -- A_Pristine_Recluse +local WEBSPINNER_TYPE = 215045; -- A_Vorladien_Webspinner +local LOSSENMACHAR_TYPE = 215060; -- #Lossenmachar +local ERRATIC_TYPE = 215402; -- An_Erratic_Arachnid +local ARCHWALKER_TYPE = 215400; -- A_Vorladien_Archwalker +local SPAWN_TYPE = 215401; -- A_Vorladien_Spawn +local AVATAR_TYPE = 215394; -- #Avatar_of_Dust +local GUY_TYPE = 215417; -- spider_man +local PH_TYPE = 215428; -- An_Ominous_Recluse + +local ISLAND_SPAWNIDS = { 365476, 365917, 365980, 366466, 366772, 366826, 367087, 367200, 365511, 365661, + 365768, 365770, 365778, 365781, 365869, 366752, 366761, 366814, 367172, 367199, + 365366, 365370, 365373, 365533, 365694, 365791, 366023, 366079, 366156, 366392, + 366471, 366538, 366934, 367344, 366142 }; +local ERRATIC_SPAWNIDS = { 369505, 369506, 369507, 369508, 369509, 369510, 369511, 369512, 369513, 369514, + 369515, 369516, 369517, 369518, 369519 }; +local SIGISMOND_SPAWNID = 366131; +local TIMER = "spider_repop"; + +local eventActive = false; +local kills = 0; +local archwalkerKills = 0; +local moveX, moveY, moveZ; + +function RepopIsland() + local elist = eq.get_entity_list(); + + for _, id in ipairs(ISLAND_SPAWNIDS) do + elist:GetSpawnByID(id):Repop(); + end +end + +function CheckIsland() + local elist = eq.get_entity_list(); + + for _, id in ipairs(ISLAND_SPAWNIDS) do + if ( elist:GetSpawnByID(id):GetNPC().valid ) then + eq.set_timer(TIMER, 1080000); -- 18 mins + return false; + end + end + + eq.set_timer(TIMER, 10800000); -- 3 hours + return true; +end + +function ControllerSpawn(e) + eq.set_timer(TIMER, 1084000); +end + +function ControllerTimer(e) + if ( e.timer == TIMER ) then + + if ( eventActive ) then + eq.depop_all(ERRATIC_TYPE); + eq.depop_all(ARCHWALKER_TYPE); + eq.depop_all(SPAWN_TYPE); + eq.depop_all(PH_TYPE); + + local elist = eq.get_entity_list(); + if ( elist:IsMobSpawnedByNpcTypeID(SIGISMOND_TYPE) ) then + elist:GetSpawnByID(SIGISMOND_SPAWNID):Repop(); + end + + ToggleErraticSpawns(false); + eventActive = false; + kills = 0; + eq.set_timer(TIMER, 1080000); -- 18 mins + end + + RepopIsland(ISLAND_SPAWNIDS); + + elseif ( e.timer == "1h_despawn" ) then + eq.depop_all(ERRATIC_TYPE); + eq.depop_all(ARCHWALKER_TYPE); + eq.depop_all(SPAWN_TYPE); + eq.stop_timer(e.timer); + eq.debug("Dust isle 1 hour despawn timer expired"); + eq.csr_notice("PoAir Dust isle 1 hour despawn timer expired"); + end +end + +function SpawnArchwalker() + eq.spawn2(ARCHWALKER_TYPE, 0, 0, -452, 640, 437.576, 10); +end + +function ToggleErraticSpawns(state) + local elist = eq.get_entity_list(); + + for _, id in ipairs(ERRATIC_SPAWNIDS) do + if ( state ) then + elist:GetSpawnByID(id):Enable(); + else + elist:GetSpawnByID(id):Disable(); + end + end +end + +function ControllerSignal(e) + local elist = eq.get_entity_list(); + + if ( e.signal == 1 ) then + + if ( eventActive ) then + return; + end + + kills = kills + 1; + if ( elist:IsMobSpawnedByNpcTypeID(SIGISMOND_TYPE) ) then + local npc = elist:GetNPCByNPCTypeID(SIGISMOND_TYPE); + + local newSize = 0; + if ( kills % 3 == 0 ) then + newSize = 3 + kills / 3; + elseif ( kills == #ISLAND_SPAWNIDS ) then + newSize = 16; + end + + if ( newSize > 0 ) then + npc:ChangeSize(newSize); + end + end + + if ( CheckIsland() ) then -- true if island spawns are all dead + + eventActive = true; + archwalkerKills = 0; + SpawnArchwalker(); + ToggleErraticSpawns(true); + eq.set_timer("1h_despawn", 3600000); + end + + elseif ( e.signal == 2 ) then -- spawn death + + if ( not elist:IsMobSpawnedByNpcTypeID(SPAWN_TYPE) and not elist:IsMobSpawnedByNpcTypeID(ARCHWALKER_TYPE) ) then + if ( archwalkerKills < 3 ) then + SpawnArchwalker(); + else + local elist = eq.get_entity_list(); + if ( elist:IsMobSpawnedByNpcTypeID(SIGISMOND_TYPE) ) then + local npc = elist:GetNPCByNPCTypeID(SIGISMOND_TYPE); + npc:SetSpecialAbility(24, 0); -- Will Not Aggro off + npc:SetSpecialAbility(25, 0); -- Immune to Aggro off + npc:SetSpecialAbility(35, 0); -- No Harm from Players off + npc:SetBodyType(21, false); -- Animal + + else + eq.unique_spawn(PH_TYPE, 0, 0, -400, 889, 433.6, 131); + ToggleErraticSpawns(false); + end + eq.stop_timer("1h_despawn"); + end + end + end +end + +function IslandDeath(e) + moveX, moveY, moveZ = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + eq.signal(CONTROLLER_TYPE, 1); +end + +function ErraticSpawn(e) + e.self:MoveTo(moveX, moveY, moveZ, -1, false); + eq.set_timer("move", 10000); +end + +function ErraticTimer(e) + if ( not e.self:IsEngaged() ) then + + local t = SIGISMOND_TYPE; + if ( archwalkerKills < 3 ) then + t = ARCHWALKER_TYPE; + end + + local boss = eq.get_entity_list():GetNPCByNPCTypeID(t); + if ( boss.valid and boss:IsEngaged() ) then + e.self:CastToNPC():MoveTo(boss:GetX(), boss:GetY(), boss:GetZ() - 3, -1, false); + end + end +end + +function ArchwalkerDeath(e) + + archwalkerKills = archwalkerKills + 1; + moveX, moveY, moveZ = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + local hl = e.self:GetHateList(); + local mob; + + if ( archwalkerKills < 4 ) then + for i = 1, 3 do + mob = eq.spawn2(SPAWN_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + + for ent in hl.entries do + if ( ent.ent:IsClient() ) then + mob:AddToHateList(ent.ent, 1); + end + end + end + end +end + +function SpawnDeath(e) + moveX, moveY, moveZ = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + eq.signal(CONTROLLER_TYPE, 2); +end + +function BossDeathComplete(e) + ToggleErraticSpawns(false); + eq.unique_spawn(AVATAR_TYPE, 0, 0, 1671, 527, 344, 192); + eq.depop_with_timer(GUY_TYPE); + eq.csr_notice(string.format("PoAir Sigismond Windwalker slain by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end + +function AvatarSpawn(e) + e.self:Shout("Elementals of Air and Dust, I call upon you to aid me in the defense of this land!"); + eq.set_timer("depop", 2700000); +end + +function AvatarCombat(e) + if ( e.joined ) then + eq.set_timer("drophate", 1000); + eq.pause_timer("depop"); + else + eq.stop_timer("drophate"); + eq.resume_timer("depop"); + + -- this is to mimic certain behavior Sony's servers had/has. NPCs aggroed a long time sometimes warp home or + -- some distance away in the direction of home and heal somewhat when they hate list wipe. The exact logic to this + -- behavior is unknown. Bosses with the tank hate list drop mechanic need this in order to not trivialize the + -- encounter using mem blur. This is a crude solution that works well enough + local ratio = e.self:GetHPRatio(); + if ( ratio < 50 or math.random(100) > ratio ) then + e.self:GMMove(e.self:GetGuardPointX(), e.self:GetGuardPointY(), e.self:GetGuardPointZ(), e.self:GetSpawnPointH()); + e.self:SetHP(e.self:GetHP() + math.floor(e.self:GetMaxHP() * 0.3)); + end + end +end + +function AvatarTimer(e) + if ( e.timer == "drophate") then + + if ( math.random() < 0.016666 ) then -- averages to once per 60 seconds + local target = e.self:GetTarget(); + if ( target and target.valid ) then + e.self:RemoveFromHateList(target); + end + eq.debug(e.self:GetName().." dropped target from hate list ("..target:GetName()..")", 2); + end + + elseif ( e.timer == "depop") then + eq.depop(); + eq.csr_notice("PoAir Avatar of Dust despawned"); + end +end + +function GuySpawn(e) + eq.get_entity_list():GetSpawnByID(SIGISMOND_SPAWNID):Repop(); +end + +function event_encounter_load(e) + eq.register_npc_event("Dust", Event.spawn, CONTROLLER_TYPE, ControllerSpawn); + eq.register_npc_event("Dust", Event.timer, CONTROLLER_TYPE, ControllerTimer); + eq.register_npc_event("Dust", Event.signal, CONTROLLER_TYPE, ControllerSignal); + + eq.register_npc_event("Dust", Event.death, CRYSTALLINE_TYPE, IslandDeath); + eq.register_npc_event("Dust", Event.death, PRISTINE_TYPE, IslandDeath); + eq.register_npc_event("Dust", Event.death, WEBSPINNER_TYPE, IslandDeath); + eq.register_npc_event("Dust", Event.death, LOSSENMACHAR_TYPE, IslandDeath); + + eq.register_npc_event("Dust", Event.spawn, ERRATIC_TYPE, ErraticSpawn); + eq.register_npc_event("Dust", Event.timer, ERRATIC_TYPE, ErraticTimer); + + eq.register_npc_event("Dust", Event.death, ARCHWALKER_TYPE, ArchwalkerDeath); + eq.register_npc_event("Dust", Event.death, SPAWN_TYPE, SpawnDeath); + + eq.register_npc_event("Dust", Event.death_complete, SIGISMOND_TYPE, BossDeathComplete); + eq.register_npc_event("Mist", Event.combat, SIGISMOND_TYPE, AvatarCombat); + eq.register_npc_event("Mist", Event.timer, SIGISMOND_TYPE, AvatarTimer); + + eq.register_npc_event("Dust", Event.spawn, GUY_TYPE, GuySpawn); + + eq.register_npc_event("Dust", Event.spawn, AVATAR_TYPE, AvatarSpawn); + eq.register_npc_event("Dust", Event.combat, AVATAR_TYPE, AvatarCombat); + eq.register_npc_event("Dust", Event.timer, AVATAR_TYPE, AvatarTimer); +end diff --git a/poair/encounters/Mist.lua b/poair/encounters/Mist.lua new file mode 100644 index 0000000..305bfc7 --- /dev/null +++ b/poair/encounters/Mist.lua @@ -0,0 +1,199 @@ +local CONTROLLER_TYPE = 215423; -- POAPhoenixController +local WIND_TYPE = 215026; -- A_Wind_Phoenix +local WIZ_WIND_TYPE = 215450; -- A_Wind_Phoenix (wizard) +local ARDENT_TYPE = 215430; -- Ardent_Phoenix_of_Xegony +local SERVITOR_TYPE = 215027; -- Servitor_of_Xegony +local BREEZEWING_TYPE = 215058; -- A_Phoenix_Breezewing +local SEAREDWING_TYPE = 215028; -- A_Phoenix_Searedwing +local CALEBGROTHIEL_TYPE = 215324; -- #Calebgrothiel +local FIRESURGER_TYPE = 215397; -- A_Phoenix_Firesurger +local WINDSURGER_TYPE = 215398; -- A_Phoenix_Windsurger +local BOSS_TYPE = 215399; -- Melernil_Faal`Armanna +local PH_TYPE = 215429; -- A_Firewing_Imitor +local AVATAR_TYPE = 215393; -- #Avatar_of_Mist +local GUY_TYPE = 215416; -- phoenix_guy + +local ISLAND_SPAWNIDS = { 367294, 366886, 366641, 367348, 365682, 365962, 367065, 366509, 365361, 366345, + 365270, 366581, 365877, 366313, 366599, 366899, 367373, 367438, 367538 }; +local SURGER_LOCS = { + { 369, -741, 438, 215 }, + { 348, -678, 438, 149 }, + { 302, -762, 440, 19 }, + { 284, -696, 440, 82 }, +}; + +local TIMER = "phoenix_repop"; + +local eventActive = false; + +function RepopIsland() + local elist = eq.get_entity_list(); + + for _, id in ipairs(ISLAND_SPAWNIDS) do + elist:GetSpawnByID(id):Repop(); + end +end + +function CheckIsland() + local elist = eq.get_entity_list(); + + for _, id in ipairs(ISLAND_SPAWNIDS) do + if ( elist:GetSpawnByID(id):GetNPC().valid ) then + eq.set_timer(TIMER, 1080000); -- 18 mins + return false; + end + end + + eq.set_timer(TIMER, 10800000); -- 3 hours + return true; +end + +function ControllerSpawn(e) + eq.set_timer(TIMER, 1083000); +end + +function ControllerTimer(e) + if ( e.timer == TIMER ) then + + if ( eventActive ) then + eq.depop_all(FIRESURGER_TYPE); + eq.depop_all(WINDSURGER_TYPE); + eq.depop_all(BOSS_TYPE); + eq.depop_all(PH_TYPE); + eventActive = false; + eq.set_timer(TIMER, 1080000); -- 18 mins + end + + RepopIsland(ISLAND_SPAWNIDS); + end +end + +function ControllerSignal(e) + if ( e.signal == 1 ) then + if ( eventActive ) then + return; + end + + if ( CheckIsland() ) then -- true if island spawns are all dead + + eventActive = true; + + local mob, t; + for i, locs in ipairs(SURGER_LOCS) do + mob = eq.spawn2(FIRESURGER_TYPE, 0, 0, locs[1], locs[2], locs[3], locs[4]); + end + end + + elseif ( e.signal == 2 ) then + + local elist = eq.get_entity_list(); + if ( not elist:IsMobSpawnedByNpcTypeID(FIRESURGER_TYPE) and not elist:IsMobSpawnedByNpcTypeID(WINDSURGER_TYPE) ) then + local mob, t; + for i, locs in ipairs(SURGER_LOCS) do + mob = eq.spawn2(WINDSURGER_TYPE, 0, 0, locs[1], locs[2], locs[3], locs[4]); + end + end + + elseif ( e.signal == 3 ) then + local elist = eq.get_entity_list(); + + if ( not elist:IsMobSpawnedByNpcTypeID(WINDSURGER_TYPE) ) then + + if ( elist:IsMobSpawnedByNpcTypeID(GUY_TYPE) ) then + mob = eq.unique_spawn(BOSS_TYPE, 0, 0, 326, -718, 441, 128); + else + eq.unique_spawn(PH_TYPE, 0, 0, 326, -718, 441, 128); + end + end + end +end + +function IslandDeath(e) + eq.signal(CONTROLLER_TYPE, 1); +end + +function WizWindDeath(e) + -- Two Ardents will spawn if this wizard wind phoenix spawn is killed. It's weird + eq.spawn2(ARDENT_TYPE, 0, 0, 592, -655, 440.817, 32); + eq.spawn2(ARDENT_TYPE, 0, 0, 618, -667, 442.988, 0); +end + +function FiresurgerDeath(e) + eq.signal(CONTROLLER_TYPE, 2); +end + +function WindsurgerDeath(e) + eq.signal(CONTROLLER_TYPE, 3); +end + +function BossDeathComplete(e) + eq.unique_spawn(AVATAR_TYPE, 0, 0, -1573, -570, 356.125, 192); + eq.depop_with_timer(GUY_TYPE); + eq.csr_notice(string.format("PoAir Melernil Faal`Armanna slain by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end + +function AvatarSpawn(e) + e.self:Shout("Leave now foolish mortal you have begun to send events in motion that you cannot possibly understand!"); + eq.set_timer("depop", 2700000); +end + +function AvatarCombat(e) + if ( e.joined ) then + eq.set_timer("drophate", 1000); + eq.pause_timer("depop"); + else + eq.stop_timer("drophate"); + eq.resume_timer("depop"); + + -- this is to mimic certain behavior Sony's servers had/has. NPCs aggroed a long time sometimes warp home or + -- some distance away in the direction of home and heal somewhat when they hate list wipe. The exact logic to this + -- behavior is unknown. Bosses with the tank hate list drop mechanic need this in order to not trivialize the + -- encounter using mem blur. This is a crude solution that works well enough + local ratio = e.self:GetHPRatio(); + if ( ratio < 50 or math.random(100) > ratio ) then + e.self:GMMove(e.self:GetGuardPointX(), e.self:GetGuardPointY(), e.self:GetGuardPointZ(), e.self:GetSpawnPointH()); + e.self:SetHP(e.self:GetHP() + math.floor(e.self:GetMaxHP() * 0.3)); + end + end +end + +function AvatarTimer(e) + if ( e.timer == "drophate") then + + if ( math.random() < 0.016666 ) then -- averages to once per 60 seconds + local target = e.self:GetTarget(); + if ( target and target.valid ) then + e.self:RemoveFromHateList(target); + end + eq.debug(e.self:GetName().." dropped target from hate list ("..target:GetName()..")", 2); + end + + elseif ( e.timer == "depop") then + eq.depop(); + eq.csr_notice("PoAir Avatar of Mist despawned"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("Mist", Event.spawn, CONTROLLER_TYPE, ControllerSpawn); + eq.register_npc_event("Mist", Event.timer, CONTROLLER_TYPE, ControllerTimer); + eq.register_npc_event("Mist", Event.signal, CONTROLLER_TYPE, ControllerSignal); + + eq.register_npc_event("Mist", Event.death, WIND_TYPE, IslandDeath); + eq.register_npc_event("Mist", Event.death, WIZ_WIND_TYPE, WizWindDeath); + eq.register_npc_event("Mist", Event.death, SERVITOR_TYPE, IslandDeath); + eq.register_npc_event("Mist", Event.death, BREEZEWING_TYPE, IslandDeath); + eq.register_npc_event("Mist", Event.death, SEAREDWING_TYPE, IslandDeath); + eq.register_npc_event("Mist", Event.death, CALEBGROTHIEL_TYPE, IslandDeath); + + eq.register_npc_event("Mist", Event.death, FIRESURGER_TYPE, FiresurgerDeath); + eq.register_npc_event("Mist", Event.death, WINDSURGER_TYPE, WindsurgerDeath); + + eq.register_npc_event("Mist", Event.death_complete, BOSS_TYPE, BossDeathComplete); + eq.register_npc_event("Mist", Event.combat, BOSS_TYPE, AvatarCombat); + eq.register_npc_event("Mist", Event.timer, BOSS_TYPE, AvatarTimer); + + eq.register_npc_event("Mist", Event.spawn, AVATAR_TYPE, AvatarSpawn); + eq.register_npc_event("Mist", Event.combat, AVATAR_TYPE, AvatarCombat); + eq.register_npc_event("Mist", Event.timer, AVATAR_TYPE, AvatarTimer); +end diff --git a/poair/encounters/Smoke.lua b/poair/encounters/Smoke.lua new file mode 100644 index 0000000..db3a298 --- /dev/null +++ b/poair/encounters/Smoke.lua @@ -0,0 +1,218 @@ +local CONTROLLER_TYPE = 215421; -- POAElementalController +local CONFUSED_TYPE = 215012; -- A_Confused_Air_Elemental +local CHAMPION1_TYPE = 215395; -- An_Elemental_Champion +local CHAMPION2_TYPE = 215447; -- An_Elemental_Champion +local CHAMPION3_TYPE = 215448; -- An_Elemental_Champion +local CHAMPION4_TYPE = 215449; -- An_Elemental_Champion (small one) +local BOSS_TYPE = 215396; -- An_Elemental_Masterpiece +local AVATAR_TYPE = 215392; -- #Avatar_of_Smoke +local GUY_TYPE = 215415; -- elemental_guy +local PH_TYPE = 215427; -- An_Elemental_Anomaly +local SWIRLING_TYPE = 215039; -- A_Swirling_Elemental_Force + +local ISLAND_SPAWNIDS = { 365296, 365384, 365387, 365415, 365449, 365471, 365521, 365730, 365852, 365996, + 366238, 366398, 366425, 366713, 366778, 366918, 367066, 367114, 367117, 367331, + 367514 }; +local CHAMP_LOCS = { + [5] = { CHAMPION1_TYPE, -491, -1274, 320, 64 }, + [10] = { CHAMPION2_TYPE, -434, -1208, 324, 128 }, + [15] = { CHAMPION3_TYPE, -395, -1283, 323, 192 }, + [21] = { CHAMPION4_TYPE, -452, -1341, 320, 0 }, +}; + +local TIMER = "elemental_repop"; + +local moveX, moveY, moveZ; +local kills = 0; + +function RepopIsland() + local elist = eq.get_entity_list(); + + for _, id in ipairs(ISLAND_SPAWNIDS) do + elist:GetSpawnByID(id):Repop(); + end +end + +function CheckIsland() + local elist = eq.get_entity_list(); + + for _, id in ipairs(ISLAND_SPAWNIDS) do + if ( elist:GetSpawnByID(id):GetNPC().valid ) then + eq.set_timer(TIMER, 1080000); -- 18 mins + return false; + end + end + + eq.set_timer(TIMER, 10800000); -- 3 hours + return true; +end + +function ControllerSpawn(e) + eq.set_timer(TIMER, 1082000); +end + +function ControllerTimer(e) + if ( e.timer == TIMER ) then + + kills = 0; + eq.depop_all(CHAMPION1_TYPE); + eq.depop_all(CHAMPION2_TYPE); + eq.depop_all(CHAMPION3_TYPE); + eq.depop_all(CHAMPION4_TYPE); + eq.depop_all(BOSS_TYPE); + eq.depop_all(PH_TYPE); + eq.set_timer(TIMER, 1080000); -- 18 mins + + RepopIsland(ISLAND_SPAWNIDS); + end +end + +function ControllerSignal(e) + if ( e.signal == 1 ) then + + kills = kills + 1; + if ( CHAMP_LOCS[kills] ) then + eq.spawn2(CHAMP_LOCS[kills][1], 0, 0, CHAMP_LOCS[kills][2], CHAMP_LOCS[kills][3], CHAMP_LOCS[kills][4], CHAMP_LOCS[kills][5]); + end + + if ( kills == #ISLAND_SPAWNIDS ) then + local npcList = eq.get_entity_list():GetNPCList(); + local t; + + for npc in npcList.entries do + if ( npc.valid ) then + t = npc:GetNPCTypeID(); + + if ( t == CHAMPION1_TYPE or t == CHAMPION2_TYPE or t == CHAMPION3_TYPE or t == CHAMPION4_TYPE ) then + npc:SetSpecialAbility(24, 0); -- Will Not Aggro off + npc:SetSpecialAbility(25, 0); -- Immune to Aggro off + npc:SetSpecialAbility(35, 0); -- No Harm from Players off + npc:SetBodyType(1, false); -- Humanoid + --npc:SetRunning(true); + --npc:MoveTo(moveX, moveY, moveZ, -1, false); + end + end + end + end + + CheckIsland(); + + elseif ( e.signal == 2 ) then + + local elist = eq.get_entity_list(); + if ( not elist:IsMobSpawnedByNpcTypeID(CHAMPION1_TYPE) and not elist:IsMobSpawnedByNpcTypeID(CHAMPION2_TYPE) + and not elist:IsMobSpawnedByNpcTypeID(CHAMPION3_TYPE) and not elist:IsMobSpawnedByNpcTypeID(CHAMPION4_TYPE) + ) then + + if ( elist:IsMobSpawnedByNpcTypeID(GUY_TYPE) ) then + + local mob = eq.unique_spawn(BOSS_TYPE, 0, 0, -445, -1284, 323, 0); + --[[ + if ( mob and mob.valid ) then + mob:SetRunning(true); + mob:CastToNPC():MoveTo(moveX, moveY, moveZ, -1, false); + end + ]] + else + eq.unique_spawn(PH_TYPE, 0, 0, -445, -1284, 323, 0); + end + end + end +end + +function ConfusedDeath(e) + moveX, moveY, moveZ = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + eq.signal(CONTROLLER_TYPE, 1); +end + +function SwirlingDeath(e) + local mySpawnID = e.self:GetSpawnPointID(); + local found = false; + for _, id in ipairs(ISLAND_SPAWNIDS) do + if ( id == mySpawnID ) then + found = true; + break; + end + end + if ( not found ) then + return; + end + + moveX, moveY, moveZ = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + eq.signal(CONTROLLER_TYPE, 1); +end + +function ChampionDeath(e) + moveX, moveY, moveZ = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + eq.signal(CONTROLLER_TYPE, 2); +end + +function BossDeathComplete(e) + eq.unique_spawn(AVATAR_TYPE, 0, 0, 1396, -680, 18, 0); + eq.depop_with_timer(GUY_TYPE); + eq.csr_notice(string.format("PoAir An Elemental Masterpiece slain by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end + +function AvatarSpawn(e) + e.self:Shout("The time has come for all intruders to be tested I will not allow you to pillage this plane any longer!"); + eq.set_timer("depop", 2700000); +end + +function AvatarCombat(e) + if ( e.joined ) then + eq.set_timer("drophate", 1000); + eq.pause_timer("depop"); + else + eq.stop_timer("drophate"); + eq.resume_timer("depop"); + end +end + +function BossTimer(e) + if ( e.timer == "drophate") then + + if ( math.random() < 0.016666 ) then -- averages to once per 60 seconds + e.self:WipeHateList(); + eq.debug(e.self:GetName().." hate list wiped", 2); + end + end +end + +function AvatarTimer(e) + if ( e.timer == "drophate") then + + if ( math.random() < 0.016666 ) then -- averages to once per 60 seconds + local target = e.self:GetTarget(); + if ( target and target.valid ) then + e.self:RemoveFromHateList(target); + end + eq.debug(e.self:GetName().." dropped target from hate list ("..target:GetName()..")", 2); + end + + elseif ( e.timer == "depop") then + eq.depop(); + eq.csr_notice("PoAir Avatar of Smoke despawned"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("Smoke", Event.spawn, CONTROLLER_TYPE, ControllerSpawn); + eq.register_npc_event("Smoke", Event.timer, CONTROLLER_TYPE, ControllerTimer); + eq.register_npc_event("Smoke", Event.signal, CONTROLLER_TYPE, ControllerSignal); + + eq.register_npc_event("Smoke", Event.death, CONFUSED_TYPE, ConfusedDeath); + eq.register_npc_event("Smoke", Event.death, SWIRLING_TYPE, SwirlingDeath); + + eq.register_npc_event("Smoke", Event.death, CHAMPION1_TYPE, ChampionDeath); + eq.register_npc_event("Smoke", Event.death, CHAMPION2_TYPE, ChampionDeath); + eq.register_npc_event("Smoke", Event.death, CHAMPION3_TYPE, ChampionDeath); + eq.register_npc_event("Smoke", Event.death, CHAMPION4_TYPE, ChampionDeath); + + eq.register_npc_event("Smoke", Event.death_complete, BOSS_TYPE, BossDeathComplete); + eq.register_npc_event("Smoke", Event.combat, BOSS_TYPE, AvatarCombat); + eq.register_npc_event("Smoke", Event.timer, BOSS_TYPE, BossTimer); + + eq.register_npc_event("Smoke", Event.spawn, AVATAR_TYPE, AvatarSpawn); + eq.register_npc_event("Smoke", Event.combat, AVATAR_TYPE, AvatarCombat); + eq.register_npc_event("Smoke", Event.timer, AVATAR_TYPE, AvatarTimer); +end diff --git a/poair/encounters/Wind.lua b/poair/encounters/Wind.lua new file mode 100644 index 0000000..c5ef9a1 --- /dev/null +++ b/poair/encounters/Wind.lua @@ -0,0 +1,271 @@ +local CONTROLLER_TYPE = 215420; -- POAStormriderController +local LIGHTNINGCLAW_TYPE = 215013; -- A_Stormrider_Lightningclaw +local MISCHIEVOUS_TYPE = 215002; -- A_Mischievous_Stormrider +local FEARSOME_TYPE = 215014; -- A_Fearsome_Stormrider +local MENACING_TYPE = 215386; -- A_Menacing_Stormrider +local PRIEST_TYPE = 215387; -- Stormrider_Priest_of_Destruction +local SPORADIC_TYPE = 215388; -- A_Sporadic_Stormrider +local FAKE_BOSS_TYPE = 215389; -- Pherlondien_Clawpike +local BOSS_TYPE = 215390; -- Pherlondien_Clawpike +local TRAP_TYPE = 215424; -- storm_boss_inv +local PH_TYPE = 215425; -- A_Loathesome_Stormclaw +local AVATAR_TYPE = 215391; -- #Avatar_of_Wind +local GUY_TYPE = 215414; -- stormrider_guy + +local ISLAND_SPAWNIDS = { 365989, 366133, 366161, 366543, 366565, 366662, 366887, 367103, 367211, 367463, + 367524, 365410, 365822, 365827, 365916, 366073, 366294, 366502, 367084, 367375, + 365275, 365420, 365467, 365508, 365676, 366140, 367241 }; +local MENACING_LOCS = { + { -547, -745, 107, -296, -664, 109, 211 }, + { -491, -505, 105.7, -288, -640, 111, 211 }, + { -621, -589, 111.9, -292, -652, 110, 211 }, + { -409, -897, 108.8, -301, -675, 108, 211 }, + { -237, -472, 105.7, -275, -647, 112, 211 }, + { -140, -698, 108.8, -284, -669, 111, 211 }, + { -189, -577, 105.7, -280, -658, 112, 211 }, + { -275, -777, 105.7, -288, -680, 111, 211 }, +}; +local BOSS_LOCS = { + { -342, -644, 108.251, 212 }, + { -401, -631, 108.251, 58 }, + { -383, -598, 106, 117 }, + { -382, -656, 105, 17 }, + { -348, -608, 105, 161 }, +}; +local TIMER = "stormrider_repop"; + +local eventActive = false; +local moveX, moveY, moveZ; + +function RepopIsland() + local elist = eq.get_entity_list(); + + for _, id in ipairs(ISLAND_SPAWNIDS) do + elist:GetSpawnByID(id):Repop(); + end +end + +function CheckIsland() + local elist = eq.get_entity_list(); + + for _, id in ipairs(ISLAND_SPAWNIDS) do + if ( elist:GetSpawnByID(id):GetNPC().valid ) then + eq.set_timer(TIMER, 1080000); -- 18 mins + return false; + end + end + + eq.set_timer(TIMER, 10800000); -- 3 hours + return true; +end + +function ControllerSpawn(e) + eq.set_timer(TIMER, 1081000); +end + +function ControllerTimer(e) + if ( e.timer == TIMER ) then + + if ( eventActive ) then + eq.depop_all(MENACING_TYPE); + eq.depop_all(PRIEST_TYPE); + eq.depop_all(SPORADIC_TYPE); + eq.depop_all(FAKE_BOSS_TYPE); + eq.depop_all(BOSS_TYPE); + eq.depop_all(TRAP_TYPE); + eq.depop_all(PH_TYPE); + eventActive = false; + eq.set_timer(TIMER, 1080000); -- 18 mins + end + + RepopIsland(ISLAND_SPAWNIDS); + end +end + +function ControllerSignal(e) + if ( e.signal == 1 ) then + + if ( eventActive ) then + return; + end + + if ( CheckIsland() ) then -- true if island spawns are all dead + + eventActive = true; + + local mob, t; + for i, locs in ipairs(MENACING_LOCS) do + + mob = eq.spawn2(MENACING_TYPE, 0, 0, locs[1], locs[2], locs[3], 0); + mob:CastToNPC():MoveTo(locs[4], locs[5], locs[6], locs[7], true); + + if ( i < 3 ) then + t = 60000; + elseif ( i < 5 ) then + t = 120000; + elseif ( i < 7 ) then + t = 180000; + else + t = 240000; + end + eq.set_timer("wake", t, mob); + end + + eq.spawn2(PRIEST_TYPE, 0, 0, -259, -677, 115, 211); + end + + elseif ( e.signal == 2 ) then + local elist = eq.get_entity_list(); + + if ( not elist:IsMobSpawnedByNpcTypeID(SPORADIC_TYPE) + and not elist:IsMobSpawnedByNpcTypeID(TRAP_TYPE) + and not elist:IsMobSpawnedByNpcTypeID(BOSS_TYPE) + ) then + + if ( elist:IsMobSpawnedByNpcTypeID(GUY_TYPE) ) then + + local bossi = math.random(1, #BOSS_LOCS); + local t; + for i, loc in ipairs(BOSS_LOCS) do + if ( i == bossi ) then + t = BOSS_TYPE; + else + t = FAKE_BOSS_TYPE; + end + eq.spawn2(t, 0, 0, loc[1], loc[2], loc[3], loc[4]); + end + else + eq.spawn2(PH_TYPE, 0, 0, -369, -627, 105.75, 201); + end + end + end +end + +function IslandDeath(e) + moveX, moveY, moveZ = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + eq.signal(CONTROLLER_TYPE, 1); +end + +function MenacingTimer(e) + if ( e.timer == "wake" ) then + eq.stop_timer(e.timer); + + e.self:SetSpecialAbility(24, 0); -- Will Not Aggro off + e.self:SetSpecialAbility(25, 0); -- Immune to Aggro off + e.self:SetSpecialAbility(35, 0); -- No Harm from Players off + e.self:SetBodyType(1, false); -- Humanoid + e.self:SetRunning(true); + + local priest = eq.get_entity_list():GetNPCByNPCTypeID(PRIEST_TYPE); + if ( priest.valid and priest:IsEngaged() ) then + e.self:CastToNPC():MoveTo(priest:GetX(), priest:GetY(), priest:GetZ(), -1, false); + elseif ( moveX ) then + e.self:CastToNPC():MoveTo(moveX, moveY, moveZ, -1, false); + end + + eq.set_timer("move", 10000); + + elseif ( e.timer == "move" ) then + + if ( not e.self:IsEngaged() ) then + + local priest = eq.get_entity_list():GetNPCByNPCTypeID(PRIEST_TYPE); + if ( priest.valid and priest:IsEngaged() ) then + e.self:CastToNPC():MoveTo(priest:GetX(), priest:GetY(), priest:GetZ(), -1, false); + end + end + end +end + +function PriestDeathComplete(e) + eq.depop_all(MENACING_TYPE); + + local rollX, rollY; + for i = 1, 4 do + rollX = math.random(-589, -169); + rollY = math.random(-842, -498); + eq.spawn2(TRAP_TYPE, 0, 0, rollX, rollY, 115, 0); + end +end + +function TrapCombat(e) + if ( e.joined ) then + eq.spawn2(SPORADIC_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + eq.depop(); + end +end + +function SporadicDeath(e) + eq.signal(CONTROLLER_TYPE, 2); +end + +function BossDeath(e) + eq.unique_spawn(AVATAR_TYPE, 0, 0, -1591, 484, 15, 192); + eq.depop_with_timer(GUY_TYPE); + eq.depop_all(FAKE_BOSS_TYPE); + eq.csr_notice(string.format("PoAir Pherlondien Clawpike slain by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end + +function AvatarSpawn(e) + e.self:Shout("I will certainly make sure that no mortal is allowed to defile this sacred realm!"); + eq.set_timer("depop", 2700000); +end + +function AvatarCombat(e) + if ( e.joined ) then + eq.set_timer("drophate", 1000); + eq.pause_timer("depop"); + else + eq.stop_timer("drophate"); + eq.resume_timer("depop"); + + -- this is to mimic certain behavior Sony's servers had/has. NPCs aggroed a long time sometimes warp home or + -- some distance away in the direction of home and heal somewhat when they hate list wipe. The exact logic to this + -- behavior is unknown. Bosses with the tank hate list drop mechanic need this in order to not trivialize the + -- encounter using mem blur. This is a crude solution that works well enough + local ratio = e.self:GetHPRatio(); + if ( ratio < 50 or math.random(100) > ratio ) then + e.self:GMMove(e.self:GetGuardPointX(), e.self:GetGuardPointY(), e.self:GetGuardPointZ(), e.self:GetSpawnPointH()); + e.self:SetHP(e.self:GetHP() + math.floor(e.self:GetMaxHP() * 0.3)); + end + end +end + +function AvatarTimer(e) + if ( e.timer == "drophate") then + + if ( math.random() < 0.016666 ) then -- averages to once per 60 seconds + local target = e.self:GetTarget(); + if ( target and target.valid ) then + e.self:RemoveFromHateList(target); + end + eq.debug(e.self:GetName().." dropped target from hate list ("..target:GetName()..")", 2); + end + + elseif ( e.timer == "depop") then + eq.depop(); + eq.csr_notice("PoAir Avatar of Wind despawned"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("Wind", Event.spawn, CONTROLLER_TYPE, ControllerSpawn); + eq.register_npc_event("Wind", Event.timer, CONTROLLER_TYPE, ControllerTimer); + eq.register_npc_event("Wind", Event.signal, CONTROLLER_TYPE, ControllerSignal); + + eq.register_npc_event("Wind", Event.death, LIGHTNINGCLAW_TYPE, IslandDeath); + eq.register_npc_event("Wind", Event.death, MISCHIEVOUS_TYPE, IslandDeath); + eq.register_npc_event("Wind", Event.death, FEARSOME_TYPE, IslandDeath); + eq.register_npc_event("Wind", Event.timer, MENACING_TYPE, MenacingTimer); + eq.register_npc_event("Wind", Event.death_complete, PRIEST_TYPE, PriestDeathComplete); + eq.register_npc_event("Wind", Event.combat, TRAP_TYPE, TrapCombat); + eq.register_npc_event("Wind", Event.death_complete, SPORADIC_TYPE, SporadicDeath); + + eq.register_npc_event("Wind", Event.death_complete, BOSS_TYPE, BossDeath); + eq.register_npc_event("Wind", Event.combat, BOSS_TYPE, AvatarCombat); + eq.register_npc_event("Wind", Event.timer, BOSS_TYPE, AvatarTimer); + + eq.register_npc_event("Wind", Event.spawn, AVATAR_TYPE, AvatarSpawn); + eq.register_npc_event("Wind", Event.combat, AVATAR_TYPE, AvatarCombat); + eq.register_npc_event("Wind", Event.timer, AVATAR_TYPE, AvatarTimer); +end diff --git a/poair/encounters/Xegony.lua b/poair/encounters/Xegony.lua new file mode 100644 index 0000000..79d75c2 --- /dev/null +++ b/poair/encounters/Xegony.lua @@ -0,0 +1,195 @@ +local XEGONY_TYPE = 215056; -- #Xegony_the_Queen_of_Air +local PLANAR_PROJECTION_TYPE = 215432; -- Essence_of_Air +local PRISMATIC_TYPE = 215004; -- A_Prismatic_Guardian_of_Xegony +local HIGH_COUNCILMAN_TYPE = 215005; -- High_Councilman_of_the_Queen +local INFUSED_TYPE = 215050; -- An_Air_Infused_Defender +local SCOUT_TYPE = 215049; -- An_Air_Phoenix_Scout +local CLOUDWALKER_TYPE = 215048; -- A_Deadly_Cloudwalker +local DJINNI_TYPE = 215047; -- A_Djinni_Air_Defender +local KNIGHT_TYPE = 215052; -- A_Knight_of_Air +local SERVANT_TYPE = 215051; -- Servant_of_Air +local ARBITOR_TYPE = 215406; -- An_Elemental_Arbitor +local HURIDAF_TYPE = 215405; -- Huridaf_Vorgaasna +local NUQUERNAL_TYPE = 215404; -- Nuquernal_Belegrodian +local RINDALER_TYPE = 215408; -- Rindaler_Egulrtan +local WERUIS_TYPE = 215407; -- Weruis_Herfadban +local WESREH_TYPE = 215403; -- Wesreh_Galleantan +local MUZLAKH_TYPE = 215053; -- #Muzlakh_the_Chosen +local WAVES = { + { NUQUERNAL_TYPE, DJINNI_TYPE, 23, 428, 1437 }, + { WESREH_TYPE, SERVANT_TYPE, -352, 359, 1440 }, + { RINDALER_TYPE, KNIGHT_TYPE, -534, 268, 1459.97 }, + { ARBITOR_TYPE, INFUSED_TYPE, -470, -339, 1437 }, + { WERUIS_TYPE, SCOUT_TYPE, -194, -269, 1443.376 }, + { HURIDAF_TYPE, CLOUDWALKER_TYPE, 31, -224, 1440.25 }, +}; +local SPAWNIDS = { 365683, 366211, 366302, 366744, 367102, + 365466, 365559, 365773, 366040, 366441, + 365304, 365447, 366146, 366930, 367528, + 365401, 366167, 367007, 367306, 367517, + 366314, 366857, 366998, 367302, 367416, + 366101, 366152, 366284, 366715, 367134, + 365761, 365797, 366011, 366434, 366583, 366817, + 365312, 365354, 366378, + 367474, +}; +local HP_TRIGGERS = { 99, 85, 70, 55, 40, 25 }; + +local waves = {}; +local trigger = 1; +local aggroTime = 0; + +function RepopEverything() + local elist = eq.get_entity_list(); + for _, id in ipairs(SPAWNIDS) do + elist:GetSpawnByID(id):Repop(); + end + eq.depop_all(ARBITOR_TYPE); + eq.depop_all(HURIDAF_TYPE); + eq.depop_all(NUQUERNAL_TYPE); + eq.depop_all(RINDALER_TYPE); + eq.depop_all(WERUIS_TYPE); + eq.depop_all(WESREH_TYPE); + eq.debug("Xegony adds repop"); +end + +function SpawnWave() + local tries = 0; + local roll; + + while ( not roll or (tries < 100 and waves[roll]) ) do + + roll = math.random(1, 6); + + if ( not waves[roll] ) then + local namedType = WAVES[roll][1]; + local unnamedType = WAVES[roll][2] + local x = WAVES[roll][3]; + local y = WAVES[roll][4]; + local z = WAVES[roll][5]; + local npcList = eq.get_entity_list():GetNPCList(); + local xegony = eq.get_entity_list():GetNPCByNPCTypeID(XEGONY_TYPE); + + for npc in npcList.entries do + if ( npc.valid and npc:GetNPCTypeID() == unnamedType ) then + npc:SetSpecialAbility(24, 0); -- Will Not Aggro off + npc:SetSpecialAbility(25, 0); -- Immune to Aggro off + npc:SetSpecialAbility(35, 0); -- No Harm from Players off + npc:SetBodyType(1, false); -- Humanoid + npc:SetRunning(true); + npc:MoveTo(xegony:GetX(), xegony:GetY(), xegony:GetZ(), -1, false); + end + end + local npc = eq.spawn2(namedType, 0, 0, x, y, z, 0):CastToNPC(); + npc:SetSpecialAbility(24, 0); -- Will Not Aggro off + npc:SetSpecialAbility(25, 0); -- Immune to Aggro off + npc:SetSpecialAbility(35, 0); -- No Harm from Players off + npc:SetBodyType(1, false); -- Humanoid + npc:SetRunning(true); + npc:MoveTo(xegony:GetX(), xegony:GetY(), xegony:GetZ(), -1, false); + + waves[roll] = true; + eq.debug("Xegony wave spawned ("..npc:GetCleanName()..")"); + return; + end + + tries = tries + 1; + end + eq.debug("Script error: could not spawn Xegony wave"); +end + +function XegonySpawn(e) + RepopEverything(); +end + +function XegonyCombat(e) + + if ( e.joined ) then + eq.set_timer("check_hp", 6000); + aggroTime = eq.clock(); + trigger = 1; + for i = 1, 6 do + waves[i] = nil; + end + else + eq.stop_timer("check_hp"); + if ( (eq.clock() - aggroTime) > 120 ) then + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + end + RepopEverything(); + end +end + +function XegonyTimer(e) + if ( e.timer == "check_hp" ) then + + if ( not HP_TRIGGERS[trigger] ) then + return; + end + + if ( (HP_TRIGGERS[trigger] == 99 and e.self:GetHP() < e.self:GetMaxHP()) or e.self:GetHPRatio() <= HP_TRIGGERS[trigger] ) then + SpawnWave(); + trigger = trigger + 1; + eq.csr_notice("PoAir Xegony wave spawn"); + end + end +end + +function XegonyDeathComplete(e) + eq.spawn2(PLANAR_PROJECTION_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + eq.signal(PLANAR_PROJECTION_TYPE, e.killer:GetID()); -- e.killer for death_complete is somebody with kill rights, not death blow + eq.csr_notice(string.format("PoAir Xegony slain by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end + +function AddCombat(e) + if ( e.joined ) then + eq.set_timer("drophate", 1000); + else + eq.stop_timer("drophate"); + end +end + +function AddTimer(e) + if ( e.timer == "drophate") then + + if ( math.random() < 0.06666 ) then -- averages to once per 15 seconds + + local target = e.self:GetTarget(); + if ( target and target.valid ) then + + local xegony = eq.get_entity_list():GetNPCByNPCTypeID(XEGONY_TYPE); + if ( xegony and xegony.valid and xegony:CalculateDistance(e.self:GetX(), e.self:GetY(), e.self:GetZ()) < 30 ) then + + -- if adds are very close to Xegony, then just reset hate to 1 instead of drop entirely + -- this behavior was witnessed on Live servers + e.self:SetHate(target, 1); + --eq.debug(e.self:GetName().." reduced target's hate ("..target:GetName()..")", 2); + else + e.self:RemoveFromHateList(target); + --eq.debug(e.self:GetName().." dropped target from hate list ("..target:GetName()..")", 2); + end + end + end + end +end + +function event_encounter_load(e) + eq.register_npc_event("Xegony", Event.spawn, XEGONY_TYPE, XegonySpawn); + eq.register_npc_event("Xegony", Event.combat, XEGONY_TYPE, XegonyCombat); + eq.register_npc_event("Xegony", Event.timer, XEGONY_TYPE, XegonyTimer); + eq.register_npc_event("Xegony", Event.death_complete, XEGONY_TYPE, XegonyDeathComplete); + + for i, t in ipairs(WAVES) do + eq.register_npc_event("Xegony", Event.combat, t[1], AddCombat); + eq.register_npc_event("Xegony", Event.timer, t[1], AddTimer); + eq.register_npc_event("Xegony", Event.combat, t[2], AddCombat); + eq.register_npc_event("Xegony", Event.timer, t[2], AddTimer); + end + + eq.register_npc_event("Xegony", Event.combat, PRISMATIC_TYPE, AddCombat); + eq.register_npc_event("Xegony", Event.timer, PRISMATIC_TYPE, AddTimer); + eq.register_npc_event("Xegony", Event.combat, HIGH_COUNCILMAN_TYPE, AddCombat); + eq.register_npc_event("Xegony", Event.timer, HIGH_COUNCILMAN_TYPE, AddTimer); + eq.register_npc_event("Xegony", Event.combat, MUZLAKH_TYPE, AddCombat); + eq.register_npc_event("Xegony", Event.timer, MUZLAKH_TYPE, AddTimer); +end diff --git a/poair/player.lua b/poair/player.lua new file mode 100644 index 0000000..45fa632 --- /dev/null +++ b/poair/player.lua @@ -0,0 +1,65 @@ +function MoveGroup(zone, client, dist, x, y, z, h) + local group = client:GetGroup(); + local raid = client:GetRaid(); + + if ( group and group:GroupCount() > 0 ) then + for i = 0, 5 do + local member = group:GetMember(i):CastToClient(); + + if ( member.valid ) then + if ( member:CalculateDistance(client:GetX(), client:GetY(), client:GetZ()) < dist ) then + member:MovePC(zone, x, y, z, h*2); + if ( member:GetPet().valid ) then + if ( member:GetPet():Charmed() ) then + member:GetPet():BuffFadeByEffect(22); -- charm + else + member:GetPet():GMMove(x, y, z, 0); + end + end + eq.get_entity_list():RemoveFromHateLists(member); + end + end + end + + elseif ( raid and raid.valid ) then + local raidGroupID = raid:GetGroup(client:GetName()); + local member; + for i = 0, 71 do + member = raid:GetMember(i); + + if ( member and member.valid and raid:GetGroup(member:GetName()) == raidGroupID ) then + + if ( member:CalculateDistance(client:GetX(), client:GetY(), client:GetZ()) < dist ) then + member:MovePC(zone, x, y, z, h*2); + if ( member:GetPet().valid ) then + if ( member:GetPet():Charmed() ) then + member:GetPet():BuffFadeByEffect(22); -- charm + else + member:GetPet():GMMove(x, y, z, 0); + end + end + eq.get_entity_list():RemoveFromHateLists(member); + end + end + end + else + client:MovePC(zone, x, y, z, h*2); + + if ( client:GetPet().valid ) then + if ( client:GetPet():Charmed() ) then + client:GetPet():BuffFadeByEffect(22); -- charm + else + client:GetPet():GMMove(x, y, z, 0); + end + end + eq.get_entity_list():RemoveFromHateLists(client); + end +end + +function event_click_door(e) + local door_id = e.door:GetDoorID(); + + if ( door_id == 1 and e.self:GetItemIDAt(0) == 28638 ) then -- Wind Etched Key + MoveGroup(215, e.self, 100, -617, 5, 1450, 64); + end +end diff --git a/poair/script_init.lua b/poair/script_init.lua new file mode 100644 index 0000000..dc5fdaf --- /dev/null +++ b/poair/script_init.lua @@ -0,0 +1,5 @@ +eq.load_encounter("Wind"); +eq.load_encounter("Smoke"); +eq.load_encounter("Mist"); +eq.load_encounter("Dust"); +eq.load_encounter("Xegony"); diff --git a/poair/storm_ent.lua b/poair/storm_ent.lua new file mode 100644 index 0000000..f84dd27 --- /dev/null +++ b/poair/storm_ent.lua @@ -0,0 +1,24 @@ +function event_combat(e) + if ( e.joined ) then + + local x, y, mob; + + if ( e.self:GetY() > -500 ) then + for i = 1, 6 do + x, y = math.random(-600, -250), math.random(-700, -550); + mob = eq.spawn2(215426, 0, 0, x, y, 110, 0); -- A_Marauding_Stormrider + mob:CastToNPC():MoveTo(-455, -272, 80, -1, true); + mob:SetRunning(true); + end + else + for i = 1, 6 do + x, y = math.random(-550, -400), math.random(-850, -500); + mob = eq.spawn2(215426, 0, 0, x, y, 108, 0); -- A_Marauding_Stormrider + mob:CastToNPC():MoveTo(-821, -701, 138, -1, true); + mob:SetRunning(true); + end + end + + eq.depop_with_timer(); + end +end diff --git a/podisease/#Aramin_the_Spider_Guardian.lua b/podisease/#Aramin_the_Spider_Guardian.lua new file mode 100644 index 0000000..c84a049 --- /dev/null +++ b/podisease/#Aramin_the_Spider_Guardian.lua @@ -0,0 +1,39 @@ +local MALEVELER_TYPE = 205157; -- An_Arachnae_Maleveler +local SERIOUN_TYPE = 205158; -- An_Arachnae_Serioun +local SPAWN_LOCS = { + 1763, 259, -- seriouns + 1789, 226, + 1842, 199, + 1750, 214, + 1721, 247, -- malevelers + 1746, 187, + 1783, 177, + 1889, 270, +}; + +function event_death_complete(e) + + local x, y, t; + local z = 373; + local r1 = math.random(1, 2); + local r2 = math.random(7, 8); + if ( r1 == 2 ) then + r2 = 8; + end + + -- there is some random component to spawns; I've seen either 3 or 4 of each spawn at time; 7 or 8 total + -- exactly how Sony randomizes this is not quite known but this is a trivial concern + for i = r1, r2 do + + if ( i < 5 ) then + t = SERIOUN_TYPE; + else + t = MALEVELER_TYPE; + end + + x = SPAWN_LOCS[i*2-1]; + y = SPAWN_LOCS[i*2]; + + eq.spawn2(t, 0, 0, x, y, z, 0); + end +end diff --git a/podisease/#Grummus.lua b/podisease/#Grummus.lua new file mode 100644 index 0000000..e04236b --- /dev/null +++ b/podisease/#Grummus.lua @@ -0,0 +1,6 @@ +local PLANAR_PROJECTION_TYPE = 205156; + +function event_death_complete(e) + eq.spawn2(PLANAR_PROJECTION_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + eq.signal(PLANAR_PROJECTION_TYPE, e.killer:GetID()); -- e.killer for death_complete is somebody with kill rights, not death blow +end diff --git a/podisease/A_Planar_Projection.lua b/podisease/A_Planar_Projection.lua new file mode 100644 index 0000000..323a614 --- /dev/null +++ b/podisease/A_Planar_Projection.lua @@ -0,0 +1,92 @@ +-- Note: Grummus seems to grant two flags. The Seer shows both new text ("open before your might") +-- and updated text ("found a small ward to protect") after flagging from him. +-- One flag allows access to CoD and the other is just a continuation of the Fuirstel series. + +local FLAG_LIMIT = 72 * 2; + +local flags = 0; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + +function event_signal(e) + rid, gid, cid = nil, nil, nil; + local client = eq.get_entity_list():GetClientByID(e.signal); -- the signal # is the entity ID of a client with kill credit + + if ( client.valid ) then + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + end +end + +function event_spawn(e) + flags = 0; + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + + if ( ClientCanFlag(e.other) and flags <= FLAG_LIMIT ) then + + if ( e.message:findi("hail") ) then + + if ( qglobals.fuirstel ) then + if ( qglobals.fuirstel == "1" ) then + e.other:Message(0, "You recognize the sound of the voice echoing in your mind to be Milyk Fuirstel's. He tells you before fading, 'I beg of you, return to me with the ward that now envelops your body. This etheric energy is the only thing that can stop this plague that has been placed upon me.'"); + eq.set_global("fuirstel", "2", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + flags = flags + 1; + + if ( qglobals.cl_grummus ) then + eq.delete_global("cl_grummus"); + end + end + else + if ( not qglobals.cl_grummus ) then + e.other:Message(0, "The Planar Projection tells you, 'Now that Grummus has fallen, you must pass into the plane of Bertoxxulous. Deep inside of this castle you will find a room with a large decaying pipe. Push it out of the way and jump into the very plague that is Bertoxxulous' home. Be wary in your travels, for his pestilence shall consume you.'"); + eq.set_global("cl_grummus", "1", 5, "F"); + e.other:Message(15, "You have received a new checklist flag!"); + flags = flags + 1; + end + end + + if ( not qglobals.grummus ) then + eq.set_global("grummus", "1", 5, "F"); + flags = flags + 1; + end + end + end +end diff --git a/podisease/An_Arachnae_Maleveler.lua b/podisease/An_Arachnae_Maleveler.lua new file mode 100644 index 0000000..803daea --- /dev/null +++ b/podisease/An_Arachnae_Maleveler.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 600000); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop() + end +end diff --git a/podisease/An_Arachnae_Serioun.lua b/podisease/An_Arachnae_Serioun.lua new file mode 100644 index 0000000..803daea --- /dev/null +++ b/podisease/An_Arachnae_Serioun.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 600000); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop() + end +end diff --git a/podisease/Grimror_Plaguebringer.lua b/podisease/Grimror_Plaguebringer.lua new file mode 100644 index 0000000..238e284 --- /dev/null +++ b/podisease/Grimror_Plaguebringer.lua @@ -0,0 +1,45 @@ +function event_spawn(e) + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(5); + e.self:AssignWaypoints(math.random(1,6)); +end + +function event_death(e) + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(3000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Grimror no have time ta talk. Gots stuffs ta do."); + elseif(e.message:findi("stuff")) then + e.self:Say("I wuz sent here by Zulort to, err. . . To gadder some alchemy type stuffs. Him have big plan, and need me to travel lots."); + elseif(e.message:findi("big plan")) then + e.self:Emote("laughs. 'Me not tell you dat! Grimror keep secrets secret. You gonna help Grimror or no?'"); + elseif(e.message:findi("help Grimror")) then + e.self:Say("Dat good!"); + e.self:Say("Grimror been getting compon ents for dayz now and Grimror still not finushed. You gonna get dem tings fur me?"); + elseif(e.message:findi("dem tings")) then + e.self:Say("Grimror need bile, dat stuff es strong here! But Grimror keent seem to git eet all. Bile comz from da leetle bugs. Keel little bugs, and geeve Grimror dere leetel bodiez and Grimror give yuuz anyting dat yuuz want. Dere on four leetel buggiez dat Grimror still neez, two uf dem come from da fliez, one comez from da wurmiez, and one comez from the moss-skeeterz. Yuuz bring Grimror dere lavas and Grimror geeve yuuz, and yuuz freends, anyting yuuz want"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Grimror not thupeed! Dis not four!"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9290,item2 = 9291,item3 = 9292,item4 = 9293},1,text)) then + e.self:Say("Yuuz dun guud! But Grimror keent geeve you anyting, but Grimror have dis. Grimror also have seekret information. Krypt of Deekay in in here. Dunt tink yuuz wanna go in dere. Dere be mean old rotten keengs in dere, yuuz dunt want ta mess wif dem, dere also be udder sortz uf baddies in dere, be carefuul if yuuz goin dat way. I hurd stories dat Bertoshulus es in dere too, Grimror even saw him in here one time. In dis place yuuz only gots ta worry about Grummus, him fatter dan Grimror, got theek skin too. Him have key ta get inna de Krypt,but Grimror knew da seekret way een. Dat bracer keen make da portil into de Krypt tink dat yuuz belongz dere. Guud barshin!"); + -- if(not e.other:KeyRingCheck(9294)) then + -- e.other:KeyRingAdd(9294); + -- Confirmed Live Experience + e.other:QuestReward(e.self,{itemid = 9294,exp = 1}); + --if(e.other:HasZoneFlag(200) == false) then + -- e.other:SetZoneFlag(200); + --end + -- end + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/podisease/encounters/Ratboss.lua b/podisease/encounters/Ratboss.lua new file mode 100644 index 0000000..be10015 --- /dev/null +++ b/podisease/encounters/Ratboss.lua @@ -0,0 +1,96 @@ +local RATBOSS_TYPE = 205134; -- #Rallius_Rattican +--local CONTROLLER_TYPE = 205152; -- #Ratboss_Trig +local CRONIE_TYPE = 205160; -- a_bubonian_cronie +local SPIDER_TYPE = 205159; -- A_gargantuan_arachnae +local YOUTH_TYPE = 205161; -- A_bubonian_youth + +local eventActive = false; + +function RatbossCombatEvent(e) + if ( e.joined ) then + + if ( not eventActive ) then + eq.spawn2(SPIDER_TYPE, 0, 0, 96, -3384, -214.25, 174); + eq.spawn2(SPIDER_TYPE, 0, 0, -539, -3482, -257, 80); + eq.set_timer("cronies", 1000); + eq.set_timer("youth", 150000); + eq.set_timer("reset", 1200000); + eventActive = true; + eq.debug("Rallius event started", 1); + end + eq.pause_timer("reset"); + else + eq.resume_timer("reset"); + end +end + +function RatbossDeathEvent(e) + ResetEvent(); + eq.debug("Rallius event ended; boss killed", 1); +end + +function RatbossTimerEvent(e) + + if ( e.timer == "reset" ) then + ResetEvent(); + eq.debug("Rallius event reset", 1); + + elseif ( e.timer == "cronies" ) then + + eq.set_timer("cronies", 290000); + eq.spawn2(CRONIE_TYPE, 22, 0, 96, -3384, -214.119, 0); + eq.spawn2(CRONIE_TYPE, 22, 0, 113, -3377, -217.625, 0); + + elseif ( e.timer == "youth" ) then + + eq.set_timer("youth", 360000); + + local r = math.random(3, 6); + + local mob; + for i = 1, r do + mob = eq.spawn2(YOUTH_TYPE, 22, 0, e.self:GetX() + math.random(-5, 5), e.self:GetY() + math.random(-5, 5), e.self:GetZ(), 0); + mob:CastToNPC():UpdateWaypoint(7); + end + end +end + +function ResetEvent() + eq.stop_timer("cronies"); + eq.stop_timer("youth"); + eq.stop_timer("reset"); + eq.depop_all(SPIDER_TYPE); + eventActive = false; +end + +function TrashEventSpawn(e) + eq.set_timer("depop", 300000); +end + +function TrashEventCombat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function TrashEventTimer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_encounter_load(e) + + eq.register_npc_event("Ratboss", Event.combat, RATBOSS_TYPE, RatbossCombatEvent); + eq.register_npc_event("Ratboss", Event.death, RATBOSS_TYPE, RatbossDeathEvent); + eq.register_npc_event("Ratboss", Event.timer, RATBOSS_TYPE, RatbossTimerEvent); + + local types = { CRONIE_TYPE, YOUTH_TYPE }; + for _, t in ipairs(types) do + eq.register_npc_event("Ratboss", Event.combat, t, TrashEventCombat); + eq.register_npc_event("Ratboss", Event.timer, t, TrashEventTimer); + eq.register_npc_event("Ratboss", Event.spawn, t, TrashEventSpawn); + end +end diff --git a/podisease/player.lua b/podisease/player.lua new file mode 100644 index 0000000..e73c57d --- /dev/null +++ b/podisease/player.lua @@ -0,0 +1,5 @@ +function event_zone(e) + if ( e.zone_id == 200 and e.self:HasZoneFlag(200) == false and eq.get_qglobals(e.self).grummus ) then + e.self:SetZoneFlag(200); + end +end diff --git a/podisease/script_init.lua b/podisease/script_init.lua new file mode 100644 index 0000000..2c64844 --- /dev/null +++ b/podisease/script_init.lua @@ -0,0 +1 @@ +eq.load_encounter("Ratboss"); diff --git a/poeartha/A_Deadly_Earth_Armadillo.lua b/poeartha/A_Deadly_Earth_Armadillo.lua new file mode 100644 index 0000000..4d880ab --- /dev/null +++ b/poeartha/A_Deadly_Earth_Armadillo.lua @@ -0,0 +1,7 @@ +function event_death_complete(e) + local n = math.random(1, 3); + + for i = 1, n do + eq.spawn2(218383, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- A_Miniature_Dustrunner + end +end diff --git a/poeartha/A_Mystical_Arbitor_of_Earth.lua b/poeartha/A_Mystical_Arbitor_of_Earth.lua new file mode 100644 index 0000000..b04e143 --- /dev/null +++ b/poeartha/A_Mystical_Arbitor_of_Earth.lua @@ -0,0 +1,48 @@ +local PLANAR_PROJECTION_TYPE = 218398; + +function event_spawn(e) + eq.set_timer("depop", 3000000); + eq.csr_notice("PoEarthA Arbitor spawned"); +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("drophate", 1000); + else + eq.stop_timer("drophate"); + + -- this is to mimic certain behavior Sony's servers had/has. NPCs aggroed a long time sometimes warp home or + -- some distance away in the direction of home and heal somewhat when they hate list wipe. The exact logic to this + -- behavior is unknown. Bosses with the tank hate list drop mechanic need this in order to not trivialize the + -- encounter using mem blur. This is a crude solution that works well enough + local ratio = e.self:GetHPRatio(); + if ( ratio < 50 or math.random(100) > ratio ) then + e.self:GMMove(e.self:GetGuardPointX(), e.self:GetGuardPointY(), e.self:GetGuardPointZ(), e.self:GetSpawnPointH()); + e.self:SetHP(e.self:GetHP() + math.floor(e.self:GetMaxHP() * 0.3)); + end + end +end + +function event_timer(e) + if ( e.timer == "drophate") then + + if ( math.random() < 0.05 ) then -- averages to once every 20 seconds + local target = e.self:GetTarget(); + if ( target and target.valid ) then + e.self:RemoveFromHateList(target); + end + eq.debug(e.self:GetName().." dropped target from hate list ("..target:GetName()..")", 2); + end + + elseif ( e.timer == "depop" ) then + eq.debug("Arbitor depop"); + eq.depop(); + eq.csr_notice("PoEarthA Arbitor despawned"); + end +end + +function event_death_complete(e) + eq.spawn2(PLANAR_PROJECTION_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + eq.signal(PLANAR_PROJECTION_TYPE, e.killer:GetID()); -- e.killer for death_complete is somebody with kill rights, not death blow + eq.csr_notice(string.format("PoEarthA Arbitor slain by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end diff --git a/poeartha/A_Planar_Projection.lua b/poeartha/A_Planar_Projection.lua new file mode 100644 index 0000000..7bd5867 --- /dev/null +++ b/poeartha/A_Planar_Projection.lua @@ -0,0 +1,82 @@ +local MAX_KEYS = 54; + +local keys; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + +function event_signal(e) + rid, gid, cid = nil, nil, nil; + local client = eq.get_entity_list():GetClientByID(e.signal); -- the signal # is the entity ID of a client with kill credit + + if ( client.valid ) then + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + end +end + + +function event_spawn(e) + eq.set_timer("depop", 600000); + keys = 0; +end + +function event_timer(e) + eq.depop(); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + + if ( ClientCanFlag(e.other) ) then + + if ( e.message:findi("hail") ) then + + if ( not qglobals.earthb_key and keys < MAX_KEYS ) then + + e.self:Say("Your will must be strong "..e.other:GetName()..". Seek council with the council of twelve if you so wish."); + eq.set_global("earthb_key", "1", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + + keys = keys + 1; + if ( keys == MAX_KEYS ) then + eq.depop(); + end + end + end + end +end diff --git a/poeartha/Tantisala_Jaggedtooth.lua b/poeartha/Tantisala_Jaggedtooth.lua new file mode 100644 index 0000000..2c2f5d8 --- /dev/null +++ b/poeartha/Tantisala_Jaggedtooth.lua @@ -0,0 +1,31 @@ +function event_combat(e) + if ( e.joined ) then + eq.set_timer("drophate", 1000); + else + eq.stop_timer("drophate"); + + -- this is to mimic certain behavior Sony's servers had/has. NPCs aggroed a long time sometimes warp home or + -- some distance away in the direction of home and heal somewhat when they hate list wipe. The exact logic to this + -- behavior is unknown. Bosses with the tank hate list drop mechanic need this in order to not trivialize the + -- encounter using mem blur. This is a crude solution that works well enough + local ratio = e.self:GetHPRatio(); + if ( ratio < 50 or math.random(100) > ratio ) then + e.self:GMMove(e.self:GetGuardPointX(), e.self:GetGuardPointY(), e.self:GetGuardPointZ(), e.self:GetSpawnPointH()); + e.self:SetHP(e.self:GetHP() + math.floor(e.self:GetMaxHP() * 0.3)); + end + end +end + +function event_timer(e) + + if ( e.timer == "drophate") then + + if ( math.random() < 0.01666 ) then -- averages to once per minute + local target = e.self:GetTarget(); + if ( target and target.valid ) then + e.self:RemoveFromHateList(target); + end + eq.debug(e.self:GetName().." dropped target from hate list ("..target:GetName()..")", 2); + end + end +end diff --git a/poeartha/arbitor_guy.lua b/poeartha/arbitor_guy.lua new file mode 100644 index 0000000..a31e434 --- /dev/null +++ b/poeartha/arbitor_guy.lua @@ -0,0 +1,30 @@ +local killTimes = {}; + +function event_signal(e) + local now = os.time(); + local dayAgoTime = now - 86400; + + killTimes[e.signal] = now; + + for i = 1, 4 do + if ( not killTimes[i] ) then + if ( e.signal == 4 ) then + eq.debug("No Arbitor spawn; Ring "..i.." not completed"); + end + return; + end + if ( killTimes[i] < dayAgoTime ) then + if ( e.signal == 4 ) then + eq.debug("No Arbitor spawn; Ring "..i.." not completed within 24 hours"); + end + return; + end + end + + eq.unique_spawn(218375, 0, 0, 1530, -2739, 28, 192); -- A_Mystical_Arbitor_of_Earth + eq.debug("Arbitor spawned"); + for i = 1, 4 do + killTimes[i] = nil; + end + eq.depop_with_timer(); +end diff --git a/poeartha/encounters/DustRing.lua b/poeartha/encounters/DustRing.lua new file mode 100644 index 0000000..6f9ffe6 --- /dev/null +++ b/poeartha/encounters/DustRing.lua @@ -0,0 +1,350 @@ +local WARDER_TYPE = 218022; +local DEVOTEE_TYPE = 218366; +local TRIUMVIRATE_TYPE = 218367; +local TRIUMVIRATE2_TYPE = 218421; +local PERFECTED_TYPE = 218413; +local PROTECTOR_TYPE = 218414; +local FOLLOWER_TYPE = 218415; +local ELEMDESPAWN_TYPE = 218397; +local ELEMRESET_TYPE = 218411; +local STONE_GUY_TYPE = 218391; +local ARBITOR_GUY_TYPE = 218393; +local MUDDITE_GUY_TYPE = 218390; +local POEELEM3DAY_TYPE = 218412; +local VEGEROG_GUY_TYPE = 218392; +local THE_CREATURE_TYPE = 218059; + +local WARDER_SPAWNID = 366233; -- dusty warder + +local DEVOTEE_LOCS = { + { 22, -430, 33, 0 }, + { -84, -660, 33, 0 }, + { 89, -657, 33, 0 }, + { 106, -651, 33, 192 }, + { 106, -612, 33, 192 }, + { 98, -461, 33, 128 }, + { -44, -458, 33, 128 }, + { -10, -430, 33, 0 }, + { -123, -575, 33, 192 }, + { -10, -689, 33, 128 }, + { 170, -585, 15, 64 }, + { 170, -534, 13, 64 }, + { 31, -396, 13.75, 0 }, + { -18, -396, 13.375, 0 }, + { -157, -585, 16, 192 }, + { -19, -724, 13.1, 128 }, + { 31, -724, 13.8, 128 }, + { -82, -458, 33, 128 }, + { -94, -503, 33, 64 }, + { -94, -610, 33, 64 }, + { 53, -657, 33, 0 }, + { 105, -515, 33, 192 }, + { 105, -480, 33, 192 }, + { 55, -461, 33, 128 }, + { 136, -575, 33, 64 }, + { 136, -544, 33, 64 }, + { 22, -689, 33, 128 }, + { -157, -535, 13, 192 }, + { -123, -544, 33, 192 }, + { -94, -467, 33, 64 }, + { -94, -647, 33, 64 }, + { -45, -660, 33, 0 }, +}; +local TRIUMVIRATE_LOCS = { + { -17, -535, 35.5, 94 }, + { -17, -585, 35.5, 31 }, + { 28, -560, 35.5, 189 }, +}; + +local triKills, bossWave = 0, 0, 0; +local bossTimer; + +function WarderDeath(e) + + triKills = 0; + + local x, y, z = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + local xOffset = { 60, -60, 60, -60, -60 }; + local yOffset = { 60, 60, -60, -60, -50 }; + local moveX = { -251, -267, -261, -237, -232 }; + local moveY = { -1319, -1330, -1348, -1354, -1328 }; + + for i = 1, 5 do + eq.spawn2(DEVOTEE_TYPE, 0, 0, x + xOffset[i], y + yOffset[i], z+5, 0):CastToNPC():MoveTo(moveX[i], moveY[i], -33, 0, true); + end + + for i, loc in ipairs(DEVOTEE_LOCS) do + eq.spawn2(DEVOTEE_TYPE, 0, 0, loc[1], loc[2], loc[3], loc[4]); + end + + local mob; + for i, loc in ipairs(TRIUMVIRATE_LOCS) do + mob = eq.spawn2(TRIUMVIRATE_TYPE, 0, 0, loc[1], loc[2], loc[3], loc[4]); + mob:SetSpecialAbility(24, 1); -- Will Not Aggro + mob:SetSpecialAbility(25, 1); -- Immune to Aggro + mob:SetSpecialAbility(35, 1); -- No Harm from Players + mob:SetBodyType(11, false); -- NoTarget + end + + eq.spawn2(ELEMDESPAWN_TYPE, 0, 0, 28, -560, 28.625, 0); + eq.zone_emote(0, "The creature explodes into a maelstrom of dirt and dust. Suddenly from the whirling cloud of dust three different streams of dirt come form heading to the elemental temple and then the remainder of the maelstrom bursts apart forming into numerous dust devotees."); + eq.debug("Dust ring active"); + eq.csr_notice(string.format("PoEarthA Dust Ring started by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end + +function DevoteeDeath(e) + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(DEVOTEE_TYPE) ) then + + local x, y, z = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + local npcList = eq.get_entity_list():GetNPCList(); + + for npc in npcList.entries do + + if ( npc.valid and npc:GetNPCTypeID() == TRIUMVIRATE_TYPE ) then + npc:SetSpecialAbility(24, 0); -- Will Not Aggro off + npc:SetSpecialAbility(25, 0); -- Immune to Aggro off + npc:SetSpecialAbility(35, 0); -- No Harm from Players off + npc:SetBodyType(24, false); -- Summoned + + npc:SetRunning(true); + npc:MoveTo(x, y, z, -1, true); + end + end + + eq.get_entity_list():MessageClose(eq.get_entity_list():GetMobByNpcTypeID(THE_CREATURE_TYPE), true, 200, 0, "A deafening roar is heard coming from the Triumvirate of Soil."); + end +end + +function TriumvirateDeath(e) + triKills = triKills + 1; + + if ( triKills == 3 ) then + local x, y, z = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + + local t = PERFECTED_TYPE; + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(POEELEM3DAY_TYPE) ) then + t = FOLLOWER_TYPE; + end + mob = eq.unique_spawn(t, 0, 0, 6, -560, 37.376, 128); + mob:SetRunning(true); + mob:CastToNPC():MoveTo(x, y, z, -1, true); + + eq.get_entity_list():MessageClose(eq.get_entity_list():GetMobByNpcTypeID(THE_CREATURE_TYPE), true, 200, 0, "Within the earthen temple a warder of earth forms, perfect in every way."); + end +end + +function TriumvirateSpawn(e) + if ( triKills < 3 ) then -- the ones that spawn from the Perfected Warder do not turn into tornados apparently + eq.set_timer("invis", 60000); + eq.pause_timer("invis"); + end +end + +function TriumvirateCombat(e) + if ( e.joined ) then + eq.resume_timer("invis"); + else + eq.pause_timer("invis"); + eq.stop_timer("drophate"); + if ( e.self:GetRace() == 233 ) then + e.self:SetRace(209); + e.self:ChangeSize(12); + end + end +end + +function TriumvirateTimer(e) + if ( e.timer == "drophate") then + + if ( math.random() < 0.1 ) then -- averages to once every 10 seconds + local target = e.self:GetTarget(); + if ( target and target.valid ) then + e.self:RemoveFromHateList(target); + end + eq.debug(e.self:GetName().." dropped target from hate list ("..target:GetName()..")", 2); + end + + elseif ( e.timer == "invis" ) then + if ( e.self:GetRace() == 209 ) then + e.self:SetRace(233); -- this turns them into hard-to-see dust tornados + e.self:ChangeSize(12); + else + e.self:SetRace(209); + e.self:ChangeSize(12); + end + eq.set_timer("drophate", 1000); + end +end + +function BossSpawn(e) + if ( math.random(2) == 1 ) then + bossTimer = "protectors"; + else + bossTimer = "triumvirates"; + end + + eq.set_timer(bossTimer, 60000); + eq.pause_timer(bossTimer); + bossWave = 0; +end + +function BossCombat(e) + if ( e.joined ) then + eq.resume_timer(bossTimer); + eq.set_timer("drophate", 1000); + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(TRIUMVIRATE2_TYPE) ) then + bossWave = 0; + end + else + eq.pause_timer(bossTimer); + eq.stop_timer("drophate"); + + -- this is to mimic certain behavior Sony's servers had/has. NPCs aggroed a long time sometimes warp home or + -- some distance away in the direction of home and heal somewhat when they hate list wipe. The exact logic to this + -- behavior is unknown. Bosses with the tank hate list drop mechanic need this in order to not trivialize the + -- encounter using mem blur. This is a crude solution that works well enough + local ratio = e.self:GetHPRatio(); + if ( ratio < 50 or math.random(100) > ratio ) then + e.self:GMMove(e.self:GetGuardPointX(), e.self:GetGuardPointY(), e.self:GetGuardPointZ(), e.self:GetSpawnPointH()); + e.self:SetHP(e.self:GetHP() + math.floor(e.self:GetMaxHP() * 0.3)); + end + end +end + +function BossTimer(e) + + if ( e.timer == "drophate") then + + if ( math.random() < 0.05 ) then -- averages to once every 20 seconds + local target = e.self:GetTarget(); + if ( target and target.valid ) then + e.self:RemoveFromHateList(target); + end + eq.debug(e.self:GetName().." dropped target from hate list ("..target:GetName()..")", 2); + end + + -- force them to kill triumvirates before boss + if ( e.self:GetHPRatio() < 49 and eq.get_entity_list():IsMobSpawnedByNpcTypeID(TRIUMVIRATE2_TYPE) ) then + e.self:SetHP(e.self:GetMaxHP() / 2); + end + + elseif ( e.timer == "protectors" ) then + + bossWave = bossWave + 1; + + local x, y, z = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + local xOffset = { 60, -60, 60, -60 }; + local yOffset = { 60, 60, -60, -60 }; + local j = 1; + + for i = 1, (bossWave + 2) do + eq.spawn2(PROTECTOR_TYPE, 0, 0, x + xOffset[j], y + yOffset[j], z+5, 0):CastToNPC():MoveTo(x, y, z, -1, true); + j = j + 1; + if ( j > 4 ) then + j = 1; + end + end + + elseif ( e.timer == "triumvirates" ) then + + bossWave = bossWave + 1; + local x, y, z = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + + if ( bossWave == 1 ) then + + for i, loc in ipairs(TRIUMVIRATE_LOCS) do + eq.spawn2(TRIUMVIRATE2_TYPE, 0, 0, loc[1], loc[2], loc[3], loc[4]):CastToNPC():MoveTo(x, y, z, -1, true); + end + + else + + local npcList = eq.get_entity_list():GetNPCList(); + for npc in npcList.entries do + + if ( npc.valid and npc:GetNPCTypeID() == TRIUMVIRATE2_TYPE and not npc:IsEngaged() ) then + npc:SetRunning(true); + npc:MoveTo(x, y, z, -1, true); + end + end + end + end +end + +function EventSuccess(e) + eq.debug("Dust ring completed"); + + eq.depop_all(ELEMDESPAWN_TYPE); + eq.spawn2(ELEMRESET_TYPE, 0, 0, 28, -560, 28.627, 0); + if ( e.self:GetNPCTypeID() == PROTECTOR_TYPE ) then + eq.depop_with_timer(POEELEM3DAY_TYPE); + end + + eq.signal(ARBITOR_GUY_TYPE, 4); + eq.csr_notice("PoEarthA Dust Ring success"); +end + +function DespawnSpawn(e) + eq.set_timer("depop", 5880000); +end + +function DespawnTimer(e) + + if ( e.timer == "depop" ) then + -- ring timeout fail + eq.depop_all(DEVOTEE_TYPE); + eq.depop_all(TRIUMVIRATE_TYPE); + eq.depop_all(TRIUMVIRATE2_TYPE); + eq.depop_all(PERFECTED_TYPE); + eq.depop_all(PROTECTOR_TYPE); + eq.depop_all(FOLLOWER_TYPE); + + eq.spawn_from_spawn2(WARDER_SPAWNID); + + eq.debug("Dust Ring failed and reset"); + eq.depop(); + eq.csr_notice("PoEarthA Dust Ring failed"); + end +end + +function ResetSpawn(e) + eq.set_timer("depop", 18000000); +end + +function ResetTimer(e) + if ( e.timer == "depop" ) then + + eq.spawn_from_spawn2(WARDER_SPAWNID); + + eq.debug("Dust Ring now available"); + eq.depop(); + end +end + + +function event_encounter_load(e) + + eq.register_npc_event("DustRing", Event.death_complete, WARDER_TYPE, WarderDeath); + + eq.register_npc_event("DustRing", Event.death_complete, DEVOTEE_TYPE, DevoteeDeath); + + eq.register_npc_event("DustRing", Event.death_complete, TRIUMVIRATE_TYPE, TriumvirateDeath); + eq.register_npc_event("DustRing", Event.spawn, TRIUMVIRATE_TYPE, TriumvirateSpawn); + eq.register_npc_event("DustRing", Event.combat, TRIUMVIRATE_TYPE, TriumvirateCombat); + eq.register_npc_event("DustRing", Event.timer, TRIUMVIRATE_TYPE, TriumvirateTimer); + + eq.register_npc_event("DustRing", Event.spawn, PERFECTED_TYPE, BossSpawn); + eq.register_npc_event("DustRing", Event.combat, PERFECTED_TYPE, BossCombat); + eq.register_npc_event("DustRing", Event.timer, PERFECTED_TYPE, BossTimer); + eq.register_npc_event("DustRing", Event.death_complete, PERFECTED_TYPE, EventSuccess); + eq.register_npc_event("DustRing", Event.spawn, FOLLOWER_TYPE, BossSpawn); + eq.register_npc_event("DustRing", Event.combat, FOLLOWER_TYPE, BossCombat); + eq.register_npc_event("DustRing", Event.timer, FOLLOWER_TYPE, BossTimer); + eq.register_npc_event("DustRing", Event.death_complete, FOLLOWER_TYPE, EventSuccess); + + eq.register_npc_event("DustRing", Event.spawn, ELEMDESPAWN_TYPE, DespawnSpawn); + eq.register_npc_event("DustRing", Event.timer, ELEMDESPAWN_TYPE, DespawnTimer); + + eq.register_npc_event("DustRing", Event.spawn, ELEMRESET_TYPE, ResetSpawn); + eq.register_npc_event("DustRing", Event.timer, ELEMRESET_TYPE, ResetTimer); +end diff --git a/poeartha/encounters/MudRing.lua b/poeartha/encounters/MudRing.lua new file mode 100644 index 0000000..523e7cc --- /dev/null +++ b/poeartha/encounters/MudRing.lua @@ -0,0 +1,396 @@ +-- note: when testing this script, using #kill on undamaged NPCs could break the event or crash the zone; #damage them instead or cast Destroy + +local BLUE_MUDWALKER_TYPE = 218317; +local RED_MUDWALKER_TYPE = 218418; +local RUNNER_TYPE = 218419; -- '_'; the little untargetable golems that run to the temple after red mudwalkers die +local SLUDGE_LURKER_TYPE = 218357; +local MUCK_MUDLET_TYPE = 218358; +local MUDDITE_MUDLING_TYPE = 218361; +local FILTH_GORGER_TYPE = 218359; +local MONSTEROUS_MUDWALKER_TYPE = 218360; +local MERCILESS_MUDSLINGER_TYPE = 218365; +local MUDESPAWN_TYPE = 218394; +local MUDRESET_TYPE = 218387; +local THE_LAST_TYPE = 218085; +local ARBITOR_GUY_TYPE = 218393; +local STONE_GUY_TYPE = 218391; +local MUDDITE_GUY_TYPE = 218390; +local POEELEM3DAY_TYPE = 218412; +local VEGEROG_GUY_TYPE = 218392; + +local BLUE_SPAWNIDS = { 365291, 365399, 365409, 365587, 365808, 366045, 366470, 366646, + 366691, 366737, 366743, 366840, 366891, 366929, 367013, 367097 }; + +local RED_LOCS = { + { 400, 126, 71, 192 }, + { 304, 30, 71, 0 }, + { 280, 126, 71, 64 }, + { 376, 30, 71, 0 }, + { 400, 102, 71, 192 }, + { 352, 150, 71, 128 }, + { 280, 102, 71, 64 }, + { 352, 30, 71, 0 }, + { 400, 78, 71, 192 }, + { 328, 150, 71, 128 }, + { 280, 78, 71, 64 }, + { 328, 30, 71, 0 }, + { 400, 54, 71, 192 }, + { 304, 150, 71, 128 }, + { 280, 54, 71, 64 }, + { 376, 150, 71, 128 }, +}; +local GORGER_LOCS = { + { 397, 149, 71 }, + { 283, 149, 71 }, + { 397, 34, 71 }, + { 283, 34, 71 }, +}; + +local blueKills, runners, lurkerState = 0, 0, 0; +local runX, runY, runZ; +local reds = {}; + +function BlueDeath(e) + blueKills = blueKills + 1; + + local elist = eq.get_entity_list(); + local loc, mob; + + for i = 1, 16 do + if ( not reds[i] ) then + loc = RED_LOCS[i]; + reds[i] = eq.spawn2(RED_MUDWALKER_TYPE, 0, 0, loc[1], loc[2], loc[3], loc[4]):GetID(); + break; + end + end + + if ( blueKills >= 16 and not elist:IsMobSpawnedByNpcTypeID(BLUE_MUDWALKER_TYPE) + and not elist:IsMobSpawnedByNpcTypeID(MUDRESET_TYPE) + ) then + + -- start event + blueKills, runners, lurkerState = 0, 0, 0; + eq.spawn2(MUDESPAWN_TYPE, 0, 0, 338, 88, 68.625, 0); + + mob = eq.spawn2(SLUDGE_LURKER_TYPE, 0, 0, 339, 92, 81.751, 0); + mob:SetSpecialAbility(24, 1); -- Will Not Aggro + mob:SetSpecialAbility(25, 1); -- Immune to Aggro + mob:SetSpecialAbility(35, 1); -- No Harm from Players + mob:SetBodyType(11, false); -- NoTarget + + for _, id in ipairs(BLUE_SPAWNIDS) do + elist:GetSpawnByID(id):Disable(); + elist:GetSpawnByID(id):SetTimer(7200000); + end + + for i, id in ipairs(reds) do + mob = elist:GetMob(id); + eq.stop_timer("depop", mob); + mob:SetSpecialAbility(24, 0); -- Will Not Aggro off + mob:SetSpecialAbility(25, 0); -- Immune to Aggro off + mob:SetSpecialAbility(35, 0); -- No Harm from Players off + mob:SetBodyType(24, false); -- Summoned + end + + eq.zone_emote(0, "The last of the mud walkers has been slain. A loud roar is heard from the center of the muddite temple as the Sludge Lurker comes into being."); + eq.debug("Mud Ring started"); + eq.csr_notice(string.format("PoEarthA Mud Ring started started by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); + end +end + +function RemoveFromReds(id) + for i = 1, 16 do + if ( reds[i] and reds[i] == id ) then + reds[i] = nil; + end + end +end + +function RedSpawn(e) + eq.set_timer("depop", 7200000); +end + +function RedTimer(e) + if ( e.timer == "depop" ) then + RemoveFromReds(e.self:GetID()); + eq.depop(); + end +end + +function RedDeath(e) + runX, runY, runZ = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + + for i = 1, 4 do + eq.spawn2(RUNNER_TYPE, 0, 0, runX + math.random(-10, 10), runY + math.random(-10, 10), runZ, 0); + end + RemoveFromReds(e.self:GetID()); +end + +function RunnerSpawn(e) + e.self:SetRunning(true); + e.self:MoveTo(339, 92, 81.751, -1, true); +end + +function RunnerWaypointArrive(e) + runners = runners + 1; + + if ( runners == 64 ) then + eq.signal(SLUDGE_LURKER_TYPE, 1); + end + eq.depop(); +end + +function LurkerSpawn(e) + if ( lurkerState == 0 ) then + eq.set_next_hp_event(80); + + elseif ( lurkerState == 1 ) then + e.self:SetHP(math.floor(e.self:GetMaxHP() * 0.80)); + eq.set_next_hp_event(60); + + elseif ( lurkerState == 2 ) then + e.self:SetHP(math.floor(e.self:GetMaxHP() * 0.60)); + eq.set_next_hp_event(40); + + elseif ( lurkerState == 3 ) then + e.self:SetHP(math.floor(e.self:GetMaxHP() * 0.40)); + eq.set_next_hp_event(20); + + elseif ( lurkerState == 4 ) then + e.self:SetHP(math.floor(e.self:GetMaxHP() * 0.20)); + end +end + +function LurkerSignal(e) + if ( e.signal == 1 ) then + e.self:SetSpecialAbility(24, 0); -- Will Not Aggro off + e.self:SetSpecialAbility(25, 0); -- Immune to Aggro off + e.self:SetSpecialAbility(35, 0); -- No Harm from Players off + e.self:SetBodyType(24, false); -- Summoned + + e.self:SetRunning(true); + e.self:MoveTo(runX, runY, runZ, -1, true); + end +end + +function LurkerHpEvent(e) + local x, y, z = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + local xt = { 25, 25, 25, 0, 0, 0, 0, -25, -25, -25 }; + local yt = { 25, 0, -25, 25, 10, -10, -25, 25, 0, -25 }; + + for i = 1, 10 do + eq.spawn2(MUCK_MUDLET_TYPE, 0, 0, x + xt[i], y + yt[i], z, 0); + end + + eq.get_entity_list():MessageClose(e.self, true, 200, 0, "Massive gobs of mud fly everywhere as the huge creature of mud explodes. The gobs of mud coalesce into smaller mud creatures."); + eq.depop(); +end + +function MudletSpawn(e) + eq.set_timer("depop", 300000); +end + +function MudletCombat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function MudletTimer(e) + if ( e.timer == "depop" ) then + eq.depop_all(MUCK_MUDLET_TYPE); + end +end + +function MudletDeath(e) + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(MUCK_MUDLET_TYPE) ) then + lurkerState = lurkerState + 1; + eq.spawn2(SLUDGE_LURKER_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ() + 10, 0); + end +end + +function LurkerDeath(e) + runX, runY, runZ = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + local mob; + + eq.get_entity_list():MessageClose(e.self, true, 200, 0, "More mud flies everywhere, coalescing into mud creatures gorged with filth."); + + for i, loc in ipairs(GORGER_LOCS) do + mob = eq.spawn2(FILTH_GORGER_TYPE, 0, 0, loc[1], loc[2], loc[3], 0); + mob:SetRunning(true); + mob:CastToNPC():MoveTo(runX, runY, runZ, -1, true); + end +end + +function GorgerDeath(e) + runX, runY, runZ = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + local elist = eq.get_entity_list(); + + if ( not elist:IsMobSpawnedByNpcTypeID(FILTH_GORGER_TYPE) ) then + + local mob; + local t = MONSTEROUS_MUDWALKER_TYPE; + + if ( not elist:IsMobSpawnedByNpcTypeID(MUDDITE_GUY_TYPE) ) then + t = MERCILESS_MUDSLINGER_TYPE; + end + mob = eq.spawn2(t, 0, 0, 339, 92, 77, 0); + mob:SetRunning(true); + mob:CastToNPC():MoveTo(runX, runY, runZ, -1, true); + + elist:MessageClose(elist:GetMobByNpcTypeID(THE_LAST_TYPE), true, 400, 0, "The last of the filthy mud men fall to the ground motionless. Suddenly a monstrous creature of mud forms from the remains of all the other mud men!"); + end +end + +function MonsterousSpawn(e) + eq.set_timer("adds", 60000); + eq.pause_timer("adds"); +end + +function MonsterousCombat(e) + if ( e.joined ) then + eq.resume_timer("adds"); + eq.set_timer("drophate", 1000); + else + eq.pause_timer("adds"); + eq.stop_timer("drophate"); + + -- this is to mimic certain behavior Sony's servers had/has. NPCs aggroed a long time sometimes warp home or + -- some distance away in the direction of home and heal somewhat when they hate list wipe. The exact logic to this + -- behavior is unknown. Bosses with the tank hate list drop mechanic need this in order to not trivialize the + -- encounter using mem blur. This is a crude solution that works well enough + local ratio = e.self:GetHPRatio(); + if ( ratio < 50 or math.random(100) > ratio ) then + e.self:GMMove(e.self:GetGuardPointX(), e.self:GetGuardPointY(), e.self:GetGuardPointZ(), e.self:GetSpawnPointH()); + e.self:SetHP(e.self:GetHP() + math.floor(e.self:GetMaxHP() * 0.3)); + end + end +end + +function MonsterousTimer(e) + if ( e.timer == "drophate") then + + if ( math.random() < 0.03333 ) then -- averages to once per 30 seconds + local target = e.self:GetTarget(); + if ( target and target.valid ) then + e.self:RemoveFromHateList(target); + end + eq.debug(e.self:GetName().." dropped target from hate list ("..target:GetName()..")", 2); + end + + elseif ( e.timer == "adds" ) then + local x, y, z = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + + for i = 1, 10 do + eq.spawn2(MUDDITE_MUDLING_TYPE, 0, 0, x + math.random(-50, 50), y + math.random(-50, 50), z, 0); + end + end +end + +function EventSuccess(e) + eq.debug("Mud Ring completed"); + + eq.depop_all(MUDESPAWN_TYPE); + eq.spawn2(MUDRESET_TYPE, 0, 0, 0, 0, 6, 0); + if ( e.self:GetNPCTypeID() == MONSTEROUS_MUDWALKER_TYPE ) then + eq.depop_with_timer(MUDDITE_GUY_TYPE); + end + + local elist = eq.get_entity_list(); + for _, id in ipairs(BLUE_SPAWNIDS) do + elist:GetSpawnByID(id):Enable(); + end + + for i = 1, 16 do + reds[i] = nil; + end + + eq.signal(ARBITOR_GUY_TYPE, 2); + eq.csr_notice("PoEarthA Mud Ring success"); +end + +function DespawnSpawn(e) + eq.set_timer("depop", 5880000); +end + +function DespawnTimer(e) + + if ( e.timer == "depop" ) then + -- ring timeout fail + eq.depop_all(RED_MUDWALKER_TYPE); + eq.depop_all(RUNNER_TYPE); + eq.depop_all(SLUDGE_LURKER_TYPE); + eq.depop_all(MUCK_MUDLET_TYPE); + eq.depop_all(MUDDITE_MUDLING_TYPE); + eq.depop_all(FILTH_GORGER_TYPE); + eq.depop_all(MONSTEROUS_MUDWALKER_TYPE); + eq.depop_all(MERCILESS_MUDSLINGER_TYPE); + + --eq.spawn2(MUDRESET_TYPE, 0, 0, 0, 0, 6, 0); + + local elist = eq.get_entity_list(); + for _, id in ipairs(BLUE_SPAWNIDS) do + elist:GetSpawnByID(id):Enable(); + end + + for i = 1, 16 do + reds[i] = nil; + end + + eq.debug("Mud Ring failed and reset"); + eq.depop(); + eq.csr_notice("PoEarthA Mud Ring failed"); + end +end + +function ResetSpawn(e) + eq.set_timer("depop", 18000000); +end + +function ResetTimer(e) + if ( e.timer == "depop" ) then + + eq.debug("Mud Ring now available"); + eq.depop(); + end +end + +function event_encounter_load(e) + + eq.register_npc_event("MudRing", Event.death_complete, BLUE_MUDWALKER_TYPE, BlueDeath); + + eq.register_npc_event("MudRing", Event.spawn, RED_MUDWALKER_TYPE, RedSpawn); + eq.register_npc_event("MudRing", Event.timer, RED_MUDWALKER_TYPE, RedTimer); + eq.register_npc_event("MudRing", Event.death_complete, RED_MUDWALKER_TYPE, RedDeath); + + eq.register_npc_event("MudRing", Event.spawn, RUNNER_TYPE, RunnerSpawn); + eq.register_npc_event("MudRing", Event.waypoint_arrive, RUNNER_TYPE, RunnerWaypointArrive); + + eq.register_npc_event("MudRing", Event.spawn, SLUDGE_LURKER_TYPE, LurkerSpawn); + eq.register_npc_event("MudRing", Event.signal, SLUDGE_LURKER_TYPE, LurkerSignal); + eq.register_npc_event("MudRing", Event.hp, SLUDGE_LURKER_TYPE, LurkerHpEvent); + eq.register_npc_event("MudRing", Event.death_complete, SLUDGE_LURKER_TYPE, LurkerDeath); + + eq.register_npc_event("MudRing", Event.spawn, MUCK_MUDLET_TYPE, MudletSpawn); + eq.register_npc_event("MudRing", Event.timer, MUCK_MUDLET_TYPE, MudletTimer); + eq.register_npc_event("MudRing", Event.death_complete, MUCK_MUDLET_TYPE, MudletDeath); + + eq.register_npc_event("MudRing", Event.death_complete, FILTH_GORGER_TYPE, GorgerDeath); + + eq.register_npc_event("MudRing", Event.spawn, MONSTEROUS_MUDWALKER_TYPE, MonsterousSpawn); + eq.register_npc_event("MudRing", Event.combat, MONSTEROUS_MUDWALKER_TYPE, MonsterousCombat); + eq.register_npc_event("MudRing", Event.timer, MONSTEROUS_MUDWALKER_TYPE, MonsterousTimer); + eq.register_npc_event("MudRing", Event.death_complete, MONSTEROUS_MUDWALKER_TYPE, EventSuccess); + eq.register_npc_event("MudRing", Event.spawn, MERCILESS_MUDSLINGER_TYPE, MonsterousSpawn); + eq.register_npc_event("MudRing", Event.combat, MERCILESS_MUDSLINGER_TYPE, MonsterousCombat); + eq.register_npc_event("MudRing", Event.timer, MERCILESS_MUDSLINGER_TYPE, MonsterousTimer); + eq.register_npc_event("MudRing", Event.death_complete, MERCILESS_MUDSLINGER_TYPE, EventSuccess); + + eq.register_npc_event("StoneRing", Event.spawn, MUDESPAWN_TYPE, DespawnSpawn); + eq.register_npc_event("StoneRing", Event.timer, MUDESPAWN_TYPE, DespawnTimer); + + eq.register_npc_event("StoneRing", Event.spawn, MUDRESET_TYPE, ResetSpawn); + eq.register_npc_event("StoneRing", Event.timer, MUDRESET_TYPE, ResetTimer); +end diff --git a/poeartha/encounters/StoneRing.lua b/poeartha/encounters/StoneRing.lua new file mode 100644 index 0000000..f559f91 --- /dev/null +++ b/poeartha/encounters/StoneRing.lua @@ -0,0 +1,381 @@ +local ROCK_CREATION_TYPE = 218032; +local CRUMBLING_STONE_MASS_TYPE = 218031; +local PILE_OF_BOULDERS_TYPE = 218030; +local BOULDER_THROWER_TYPE = 218033; +local FORTIFICATION_TYPE = 218369; +local MOUND_OF_RUBBLE_TYPE = 218370; +local FAKE_MONSTROSITY_TYPE = 218029; +local ROCK_MONSTROSITY_TYPE = 218371; +local STONE_HEAP_TYPE = 218372; +local ENCRUSTED_DIRT_CLOUD_TYPE = 218373; +local PEREGRIN_ROCKSKULL_TYPE = 218374; +local STONETXT_TYPE = 218036; -- invis man where emotes are centered from +local STONEDESPAWN_TYPE = 218395; -- invis man that spawns when the event begins and depops in 98 minutes which will fail the event +local STONERESET_TYPE = 218388; -- invis man that spawns when the event ends (win or lose) and prevents the trigger mobs from spawning until depop. (6 hours) +local STONE_GUY_TYPE = 218391; -- note: Live servers will not spawn the loot version of the boss if this is spawned. I'm doing the opposite so zone crashes/reboots won't allow the rings to be redone +local ARBITOR_GUY_TYPE = 218393; +local MUDDITE_GUY_TYPE = 218390; +local POEELEM3DAY_TYPE = 218412; +local VEGEROG_GUY_TYPE = 218392; + +local TRIGGER_TYPES = { [CRUMBLING_STONE_MASS_TYPE] = 1, [PILE_OF_BOULDERS_TYPE] = 2, [ROCK_CREATION_TYPE] = 3, [BOULDER_THROWER_TYPE] = 4 }; +local TRIGGER_SPAWNIDS = { 365379, 365553, 365938, 367419, 366541, 366866, 366694, 367274 }; +local FAKE_MONSTROSITY_SPAWNID = 366842; + +local FORT_LOCS = { + { + { -649, -262, 87, 192 }, + { -649, -274, 87, 192 }, + { -640, -279, 87, 192 }, + { -640, -268, 87, 192 }, + { -640, -256, 87, 192 }, + { -657, -268, 87, 192 }, + { -657, -279, 87, 192 }, + { -657, -257, 87, 192 }, + { -657, -246, 87, 192 }, + { -649, -251, 87, 192 }, + { -640, -245, 87, 192 }, + }, + { + { -616, -299, 87, 128 }, + { -599, -306, 87, 128 }, + { -628, -306, 87, 128 }, + { -622, -306, 87, 128 }, + { -616, -306, 87, 128 }, + { -611, -306, 87, 128 }, + { -605, -306, 87, 128 }, + { -616, -292, 87, 128 }, + { -616, -286, 87, 128 }, + { -634, -306, 87, 128 }, + }, + { + { -616, -214, 87, 0 }, + { -621, -222, 87, 0 }, + { -610, -222, 87, 0 }, + { -604, -231, 87, 0 }, + { -616, -231, 87, 0 }, + { -627, -231, 87, 0 }, + { -632, -239, 87, 0 }, + { -622, -239, 87, 0 }, + { -610, -239, 87, 0 }, + { -599, -239, 87, 0 }, + }, + { + { -591, -245, 87, 64 }, + { -584, -245, 87, 64 }, + { -591, -257, 87, 64 }, + { -584, -268, 87, 64 }, + { -575, -279, 87, 64 }, + { -591, -280, 87, 64 }, + { -575, -245, 87, 64 }, + { -584, -257, 87, 64 }, + { -575, -257, 87, 64 }, + { -591, -268, 87, 64 }, + { -575, -268, 87, 64 }, + { -584, -279, 87, 64 }, + }, +}; + +local RUBBLE_LOCS = { + { -598, -279, 95.37598, 224 }, + { -631, -279, 95.37598, 30 }, + { -631, -245, 95.37598, 96 }, + { -598, -245, 95.37598, 160 }, +}; + +local HEAP_LOCS = { + { -555, -323, 87 }, + { -676, -323, 87 }, + { -676, -203, 87 }, + { -555, -203, 87 }, +}; + + +local fortKills, heapKills = 0, 0; +local runX, runY, runZ; +local rubbleIds; + +function TriggerDeath(e) + local myType = e.self:GetNPCTypeID(); + local elist = eq.get_entity_list(); + + if ( not elist:IsMobSpawnedByNpcTypeID(myType) ) then -- note: this will fail if you #kill the NPCs; use #damage instead to test + + if ( not elist:IsMobSpawnedByNpcTypeID(STONEDESPAWN_TYPE) ) then + + -- start event + fortKills, heapKills = 0, 0; + rubbleIds = {}; + eq.spawn2(STONEDESPAWN_TYPE, 0, 0, -587, -206, 82.627, 0); + for _, id in ipairs(TRIGGER_SPAWNIDS) do + elist:GetSpawnByID(id):Disable(false); + end + + eq.debug("Stone Ring started"); + eq.csr_notice(string.format("PoEarthA Stone Ring started started by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); + end + + local locs = FORT_LOCS[TRIGGER_TYPES[myType]]; + + eq.get_entity_list():MessageClose(eq.get_entity_list():GetMobByNpcTypeID(STONETXT_TYPE), true, 200, 0, "The ground shudders as stone fortifications are summoned forth."); + for _, loc in ipairs(locs) do + eq.spawn2(FORTIFICATION_TYPE, 0, 0, loc[1], loc[2], loc[3], loc[4]); + end + end +end + +function FortDeath(e) + fortKills = fortKills + 1; + + if ( fortKills == 43 ) then + + eq.get_entity_list():MessageClose(eq.get_entity_list():GetMobByNpcTypeID(STONETXT_TYPE), true, 200, 0, "The Rock Monstrosity crumbles into mounds of rubble."); + + for i, loc in ipairs(RUBBLE_LOCS) do + rubbleIds[eq.spawn2(MOUND_OF_RUBBLE_TYPE, 0, 0, loc[1], loc[2], loc[3], loc[4]):GetID()] = i; + end + eq.get_entity_list():GetSpawnByID(FAKE_MONSTROSITY_SPAWNID):Disable(); + end +end + +function RubbleSpawnEvent(e) + eq.set_next_hp_event(20); +end + +function RubbleHpEvent(e) + if ( e.hp_event == 20 ) then + e.self:Heal(); + e.self:SetSpecialAbility(24, 1); -- Will Not Aggro + e.self:SetSpecialAbility(25, 1); -- Immune to Aggro + e.self:SetSpecialAbility(35, 1); -- No Harm from Players + e.self:SetBodyType(11, false); -- NoTarget + e.self:BuffFadeAll(); + e.self:WipeHateList(); + eq.set_timer("wipe", 5000); + + runX, runY, runZ = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + + local loc = RUBBLE_LOCS[rubbleIds[e.self:GetID()]]; + e.self:MoveTo(loc[1], loc[2], loc[3], loc[4], true); + end +end + +function RubbleTimerEvent(e) + if ( e.timer == "wipe" ) then + if ( e.self:IsEngaged() ) then + e.self:WipeHateList(); -- sometimes they end up still aggro for whatever reason + end + end +end + +function RubbleWaypointArrive(e) + local mob; + local n = 0; + + for id, i in pairs(rubbleIds) do + + mob = eq.get_entity_list():GetMob(id); + if ( mob and mob.valid ) then + if ( mob:GetX() == RUBBLE_LOCS[i][1] and mob:GetY() == RUBBLE_LOCS[i][2] and mob:GetSpecialAbility(35) == 1 ) then + n = n + 1; + end + else + eq.debug("Stone Ring critical error: invalid A_Mound_of_Rubble entity ID. (NPC may have been killed, which should not happen in normal gameplay)"); + end + end + + if ( n == 4 ) then + -- all 4 rubbles are untargetable and back at spawn points + eq.get_entity_list():MessageClose(eq.get_entity_list():GetMobByNpcTypeID(STONETXT_TYPE), true, 200, 0, "The mounds of rubble reform back into the Rock Monstrosity."); + + mob = eq.spawn2(ROCK_MONSTROSITY_TYPE, 0, 0, -614, -261, 95.375, 64); + mob:SetRunning(true); + if ( runX and runY and runZ ) then + mob:CastToNPC():MoveTo(runX, runY, runZ, -1, false); + end + eq.depop_all(MOUND_OF_RUBBLE_TYPE); + end +end + +function MonstrosityDeath(e) + runX, runY, runZ = e.self:GetX(), e.self:GetY(), e.self:GetZ() - 4.38; + SpawnHeaps(e); +end + +function SpawnHeaps(e) + local mob; + + for i, loc in ipairs(HEAP_LOCS) do + + mob = eq.spawn2(STONE_HEAP_TYPE, 0, 0, loc[1], loc[2], loc[3], 0); + mob:SetRunning(true); + if ( runX and runY and runZ ) then + mob:CastToNPC():MoveTo(runX, runY, runZ, -1, true); + end + end + + if ( heapKills == 0 ) then + mob = eq.spawn2(PEREGRIN_ROCKSKULL_TYPE, 0, 0, -616, -261, 95.375, 64); + local npc = mob:CastToNPC(); + npc:SetSpecialAbility(24, 1); -- Will Not Aggro + npc:SetSpecialAbility(25, 1); -- Immune to Aggro + npc:SetSpecialAbility(35, 1); -- No Harm from Players + npc:SetBodyType(11, false); -- NoTarget + eq.set_timer("lie", 1000, mob); + + eq.get_entity_list():MessageClose(eq.get_entity_list():GetMobByNpcTypeID(STONETXT_TYPE), true, 200, 0, "A gigantic formation of rocks appears, glowing with barely contained fury. It collapses to the ground in a pile of rubble, as heaps of misshapen stone rise from the corners of the temple and close in to attack!"); + else + -- note: if you #kill these without damaging them first it will crash the zone + eq.get_entity_list():MessageClose(eq.get_entity_list():GetMobByNpcTypeID(STONETXT_TYPE), true, 200, 0, "Heaps of misshapen rise from the corners of the temple and close in to attack!"); + end +end + +function HeapDeath(e) + heapKills = heapKills + 1; + runX, runY, runZ = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + + if ( heapKills == 4 or heapKills == 8 or heapKills == 12 or heapKills == 16 or heapKills == 20 ) then + SpawnHeaps(); + + elseif ( heapKills == 24 ) then + + eq.get_entity_list():MessageClose(eq.get_entity_list():GetMobByNpcTypeID(STONETXT_TYPE), true, 200, 0, "As the last of the stone heaps collapses, the gigantic formation of rocks slowly rises to its feet. A gravelly voice echoes in your mind, 'Fools! Invaders! It's been ages since this plane was fouled with the stench of your kind. Prepare to meet your end.' The large rock man then readies itself for attack."); + + eq.depop_all(PEREGRIN_ROCKSKULL_TYPE); + + local t = PEREGRIN_ROCKSKULL_TYPE; + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(STONE_GUY_TYPE) ) then + t = ENCRUSTED_DIRT_CLOUD_TYPE; + end + + local mob = eq.spawn2(t, 0, 0, -614, -261, 95.375, 64); + mob:SetRunning(true); + mob:CastToNPC():MoveTo(runX, runY, runZ, -1, false); + end +end + +function BossCombat(e) + if ( e.joined ) then + eq.set_timer("drophate", 1000); + else + eq.stop_timer("drophate"); + + -- this is to mimic certain behavior Sony's servers had/has. NPCs aggroed a long time sometimes warp home or + -- some distance away in the direction of home and heal somewhat when they hate list wipe. The exact logic to this + -- behavior is unknown. Bosses with the tank hate list drop mechanic need this in order to not trivialize the + -- encounter using mem blur. This is a crude solution that works well enough + local ratio = e.self:GetHPRatio(); + if ( ratio < 50 or math.random(100) > ratio ) then + e.self:GMMove(e.self:GetGuardPointX(), e.self:GetGuardPointY(), e.self:GetGuardPointZ(), e.self:GetSpawnPointH()); + e.self:SetHP(e.self:GetHP() + math.floor(e.self:GetMaxHP() * 0.3)); + end + end +end + +function BossTimer(e) + if ( e.timer == "drophate") then + + if ( math.random() < 0.01666 ) then -- averages to once per minute + local target = e.self:GetTarget(); + if ( target and target.valid ) then + e.self:RemoveFromHateList(target); + end + eq.debug(e.self:GetName().." dropped target from hate list ("..target:GetName()..")", 2); + end + + elseif ( e.timer == "lie" ) then + e.self:SetAppearance(3); -- lying + eq.stop_timer(e.timer); + end +end + +function EventSuccess(e) + eq.debug("Stone Ring completed"); + + eq.depop_all(STONEDESPAWN_TYPE); + eq.spawn2(STONERESET_TYPE, 0, 0, -587, -206, 85.75, 0); + if ( e.self:GetNPCTypeID() == PEREGRIN_ROCKSKULL_TYPE ) then + eq.depop_with_timer(STONE_GUY_TYPE); + end + + eq.signal(ARBITOR_GUY_TYPE, 1); + eq.csr_notice("PoEarthA Stone Ring success"); +end + +function DespawnSpawn(e) + eq.set_timer("depop", 5880000); +end + +function DespawnTimer(e) + + if ( e.timer == "depop" ) then + -- ring timeout fail + eq.depop_all(FORTIFICATION_TYPE); + eq.depop_all(MOUND_OF_RUBBLE_TYPE); + eq.depop_all(ROCK_MONSTROSITY_TYPE); + eq.depop_all(STONE_HEAP_TYPE); + eq.depop_all(ENCRUSTED_DIRT_CLOUD_TYPE); + eq.depop_all(PEREGRIN_ROCKSKULL_TYPE); + + --eq.spawn2(STONERESET_TYPE, 0, 0, -587, -206, 85.75, 0); + local elist = eq.get_entity_list(); + for _, id in ipairs(TRIGGER_SPAWNIDS) do + elist:GetSpawnByID(id):Enable(); + end + elist:GetSpawnByID(FAKE_MONSTROSITY_SPAWNID):Enable(); + + eq.debug("Stone Ring failed and reset"); + eq.depop(); + eq.csr_notice("PoEarthA Stone Ring failed"); + end +end + +function ResetSpawn(e) + eq.set_timer("depop", 18000000); +end + +function ResetTimer(e) + if ( e.timer == "depop" ) then + + local elist = eq.get_entity_list(); + for _, id in ipairs(TRIGGER_SPAWNIDS) do + elist:GetSpawnByID(id):Enable(); + end + elist:GetSpawnByID(FAKE_MONSTROSITY_SPAWNID):Enable(); + + eq.debug("Stone Ring now available"); + eq.depop(); + end +end + +function event_encounter_load(e) + + for id in pairs(TRIGGER_TYPES) do + eq.register_npc_event("StoneRing", Event.death_complete, id, TriggerDeath); + end + + eq.register_npc_event("StoneRing", Event.death_complete, FORTIFICATION_TYPE, FortDeath); + + eq.register_npc_event("StoneRing", Event.spawn, MOUND_OF_RUBBLE_TYPE, RubbleSpawnEvent); + eq.register_npc_event("StoneRing", Event.hp, MOUND_OF_RUBBLE_TYPE, RubbleHpEvent); + eq.register_npc_event("StoneRing", Event.timer, MOUND_OF_RUBBLE_TYPE, RubbleTimerEvent); + eq.register_npc_event("StoneRing", Event.waypoint_arrive, MOUND_OF_RUBBLE_TYPE, RubbleWaypointArrive); + + eq.register_npc_event("StoneRing", Event.spawn, STONEDESPAWN_TYPE, DespawnSpawn); + eq.register_npc_event("StoneRing", Event.timer, STONEDESPAWN_TYPE, DespawnTimer); + + eq.register_npc_event("StoneRing", Event.death_complete, ROCK_MONSTROSITY_TYPE, MonstrosityDeath); + + eq.register_npc_event("StoneRing", Event.death_complete, STONE_HEAP_TYPE, HeapDeath); + + eq.register_npc_event("StoneRing", Event.death_complete, ENCRUSTED_DIRT_CLOUD_TYPE, EventSuccess); + eq.register_npc_event("StoneRing", Event.death_complete, PEREGRIN_ROCKSKULL_TYPE, EventSuccess); + eq.register_npc_event("StoneRing", Event.combat, ENCRUSTED_DIRT_CLOUD_TYPE, BossCombat); + eq.register_npc_event("StoneRing", Event.combat, PEREGRIN_ROCKSKULL_TYPE, BossCombat); + eq.register_npc_event("StoneRing", Event.timer, ENCRUSTED_DIRT_CLOUD_TYPE, BossTimer); + eq.register_npc_event("StoneRing", Event.timer, PEREGRIN_ROCKSKULL_TYPE, BossTimer); + + eq.register_npc_event("StoneRing", Event.spawn, STONERESET_TYPE, ResetSpawn); + eq.register_npc_event("StoneRing", Event.timer, STONERESET_TYPE, ResetTimer); +end diff --git a/poeartha/encounters/Traps.lua b/poeartha/encounters/Traps.lua new file mode 100644 index 0000000..2129b23 --- /dev/null +++ b/poeartha/encounters/Traps.lua @@ -0,0 +1,85 @@ +local TRAP_SPAWNS = { + [218341] = { 218348, 218351, 218006 }, -- TrapMan1, A Needlescale Hatchling, A Prismatic Basilisk, A_Needlescale_Basilisk + [218399] = { 218352, 218377, 218238 }, -- TrapMan2, A Magical Collection of Dust, The Living Earth, An_Earthern_Crusader + [218400] = { 218349, 218381, 218011 }, -- TrapMan3, A Tenacious Arborean, Calris Bristlebranch, An Unkempt Arborean + [218401] = { 218350, 218384, 218004 }, -- TrapMan4, A Young Frog, A Korascian Warlord, A_Korascian_Hunter + [218402] = { 218347, 218378, 218005 }, -- TrapMan5, A Small Rockmonster, A Pristine Gem Golem, A_Gemmed_Guardian + [218403] = { 218344, 218386, 218001 }, -- TrapMan6, A Glass Formation, A Shimmering Gem Sentry, A_Majestic_Gemwalker + [218404] = { 218346, 218385, 218034 }, -- TrapMan7, A Gemmed Rock Man, A Perfect Rock Formation, A_Gemmed_Protector + [218405] = { 218345, 218379, 218002 }, -- TrapMan8, A Young Cave Genoid, Glimmerstone, A_Crystalline_Formation + [218406] = { 218354, 218380, 218016 }, -- TrapMan9, An Unfinished Stonewalker, Galsinak Earthrumble, A_Stone_Abomination + [218407] = { 218355, 218368, 218008 }, -- TrapMan10, A Earth Initiate, Tribal Leader Diseranon, A_Fearsome_Earthcrafter + [218408] = { 218356, 218382, 218025 }, -- TrapMan11, A Vekerchiki Drone, An Ancient Vekerchiki Champion, A_Vekerchiki_Warrior + [218409] = { 218353, 218376, 218000 }, -- TrapMan12, A Mudfilled Earth Golem, A Monsterous Earthwalker, An_Earthen_Mudslinger + [218410] = { 218417, 218417, 218417 }, -- TrapMan13, A Decaying Spelunker +}; + +local counters = {}; + +function TrapCombat(e) + + if ( e.joined ) then + + local myType = e.self:GetNPCTypeID(); + local t = TRAP_SPAWNS[myType][1]; + + -- skeleton traps don't trigger every time + if ( myType == 218410 ) then + if ( math.random(5) < 5 ) then + return; + end + end + + if ( not counters[myType] ) then + counters[myType] = 1; + else + counters[myType] = counters[myType] + 1; + end + + if ( counters[myType] >= 5 ) then + + if ( math.random(2) == 1 ) then + t = TRAP_SPAWNS[myType][2]; + else + t = TRAP_SPAWNS[myType][3]; + end + counters[myType] = 0; + end + + if ( TRAP_SPAWNS[myType] ) then + eq.spawn2(t, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + end + eq.depop_with_timer(); + end +end + +function MobSpawn(e) + eq.set_timer("depop", 1200000); +end + +function MobCombat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function MobTimer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_encounter_load(e) + for id, spawns in pairs(TRAP_SPAWNS) do + eq.register_npc_event("Traps", Event.combat, id, TrapCombat); + + eq.register_npc_event("Traps", Event.spawn, spawns[1], MobSpawn); + eq.register_npc_event("Traps", Event.spawn, spawns[2], MobSpawn); + eq.register_npc_event("Traps", Event.combat, spawns[1], MobCombat); + eq.register_npc_event("Traps", Event.combat, spawns[2], MobCombat); + eq.register_npc_event("Traps", Event.timer, spawns[1], MobTimer); + eq.register_npc_event("Traps", Event.timer, spawns[2], MobTimer); + end +end diff --git a/poeartha/encounters/VineRing.lua b/poeartha/encounters/VineRing.lua new file mode 100644 index 0000000..1c59f57 --- /dev/null +++ b/poeartha/encounters/VineRing.lua @@ -0,0 +1,265 @@ +local TAINTED_TYPE = 218019; +local BLOODTHIRSTY_TYPE = 218362; +local BOSS_TYPE = 218363; -- Derugoak_Bloodwalker +local FAKE_BOSS_TYPE = 218364; -- A_Bloodsoaked_Vegerog +local MANGLED_TYPE = 218420; +local VEGDESPAWN_TYPE = 218396; +local VEGRESET_TYPE = 218389; +local STONE_GUY_TYPE = 218391; +local ARBITOR_GUY_TYPE = 218393; +local MUDDITE_GUY_TYPE = 218390; +local POEELEM3DAY_TYPE = 218412; +local VEGEROG_GUY_TYPE = 218392; +local VEGTXT_TYPE = 218343; + +local TAINTED_SPAWNIDS = { 365330, 365348, 365381, 365393, 365464, 365575, 365709, 365739, 365784, 365799, + 365947, 366070, 366188, 366501, 366590, 366736, 366776, 366796, 366875, 366923, + 366944, 367019, 367085, 367105, 367145, 367184, 367271, 367395, 367449, 367465 }; + +local BLOODTHIRSTY_LOCS = { + { 431, -780, 43.37599, 95 }, + { 481, -780, 43.37599, 128 }, + { 537, -780, 43.37599, 160 }, + { 537, -832, 43.37599, 192 }, + { 537, -885, 43.37599, 223 }, + { 481, -885, 43.37599, 0 }, + { 428, -885, 43.37599, 32 }, + { 428, -834, 43.37599, 64 }, + { 462, -853, 39.37599, 32 }, + { 505, -810, 41.00102, 158 }, +}; + + +local taintedKills = 0; +local addWave = 0; + +function TaintedDeath(e) + + taintedKills = taintedKills + 1; + local elist = eq.get_entity_list(); + + if ( taintedKills == 3 ) then + addWave = 0; + eq.spawn2(VEGDESPAWN_TYPE, 0, 0, 485, -835, 33.752, 0); + + for _, id in ipairs(TAINTED_SPAWNIDS) do + elist:GetSpawnByID(id):Disable(false); + end + end + + if ( taintedKills >= 3 and taintedKills <= 30 and taintedKills % 3 == 0 ) then + local loc = BLOODTHIRSTY_LOCS[taintedKills / 3]; + eq.spawn2(BLOODTHIRSTY_TYPE, 0, 0, loc[1], loc[2], loc[3], loc[4]); + if ( taintedKills < 30 ) then + elist:MessageClose(elist:GetMobByNpcTypeID(VEGTXT_TYPE), true, 300, 0, "A creature rises from the dead bodies of three tainted rock beasts."); + end + end + + if ( taintedKills >= 30 and not elist:IsMobSpawnedByNpcTypeID(TAINTED_TYPE) ) then + + -- start phase 2 + local npcList = elist:GetNPCList(); + + for npc in npcList.entries do + + if ( npc.valid and npc:GetNPCTypeID() == BLOODTHIRSTY_TYPE ) then + npc:SetSpecialAbility(24, 0); -- Will Not Aggro off + npc:SetSpecialAbility(25, 0); -- Immune to Aggro off + npc:SetSpecialAbility(35, 0); -- No Harm from Players off + npc:SetBodyType(25, false); -- Plant + end + end + + elist:MessageClose(elist:GetMobByNpcTypeID(VEGTXT_TYPE), true, 300, 0, "The last of the tainted rock beasts crashes to the ground and yet another creature rises at the top of the temple."); + eq.debug("Vine ring phase 2"); + eq.csr_notice(string.format("PoEarthA Vine Ring phase 2 started by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); + end +end + +function BloodthirstyDeath(e) + + local elist = eq.get_entity_list(); + + if ( not elist:IsMobSpawnedByNpcTypeID(BLOODTHIRSTY_TYPE) ) then + + local runX, runY, runZ = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + local t = BOSS_TYPE; + + if ( not elist:IsMobSpawnedByNpcTypeID(VEGEROG_GUY_TYPE) ) then + t = FAKE_BOSS_TYPE; + end + mob = eq.spawn2(t, 0, 0, 483, -832, 39.376, 128); + mob:SetRunning(true); + mob:CastToNPC():MoveTo(runX, runY, runZ, -1, true); + + elist:MessageClose(elist:GetMobByNpcTypeID(VEGTXT_TYPE), true, 300, 0, "The ground shakes and trembles as Derugoak Bloodwalker rises to defend his temple."); + eq.debug("Vine ring boss spawned"); + end +end + +function BossSpawn(e) + eq.set_timer("adds", 60000); + eq.pause_timer("adds"); +end + +function BossCombat(e) + if ( e.joined ) then + eq.resume_timer("adds"); + eq.set_timer("drophate", 1000); + eq.stop_timer("depop_adds"); + addWave = 0; + else + eq.pause_timer("adds"); + eq.stop_timer("drophate"); + eq.set_timer("depop_adds", 600000); + + -- this is to mimic certain behavior Sony's servers had/has. NPCs aggroed a long time sometimes warp home or + -- some distance away in the direction of home and heal somewhat when they hate list wipe. The exact logic to this + -- behavior is unknown. Bosses with the tank hate list drop mechanic need this in order to not trivialize the + -- encounter using mem blur. This is a crude solution that works well enough + local ratio = e.self:GetHPRatio(); + if ( ratio < 50 or math.random(100) > ratio ) then + e.self:GMMove(e.self:GetGuardPointX(), e.self:GetGuardPointY(), e.self:GetGuardPointZ(), e.self:GetSpawnPointH()); + e.self:SetHP(e.self:GetHP() + math.floor(e.self:GetMaxHP() * 0.3)); + end + end +end + +function BossTimer(e) + if ( e.timer == "drophate") then + + if ( math.random() < 0.05 ) then -- averages to once every 20 seconds + local target = e.self:GetTarget(); + if ( target and target.valid ) then + e.self:RemoveFromHateList(target); + end + eq.debug(e.self:GetName().." dropped target from hate list ("..target:GetName()..")", 2); + end + + elseif ( e.timer == "adds" ) then + local x, y, z = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + local xOffset, yOffset = 0, 0; + addWave = addWave + 1; + + for i = 1, (addWave * 2) do + while (xOffset > -30 and xOffset < 30) do + xOffset = math.random(-40, 40); + end + while (yOffset > -30 and yOffset < 30) do + yOffset = math.random(-40, 40); + end + eq.spawn2(MANGLED_TYPE, 0, 0, x + xOffset, y + yOffset, z+5, 0); + xOffset = 0; + yOffset = 0; + end + eq.get_entity_list():MessageClose(e.self, true, 200, 0, "Derugoak summons minions to his side."); + + elseif ( e.timer == "depop_adds" ) then + eq.stop_timer(e.timer); + eq.depop_all(MANGLED_TYPE); + end +end + +function EventSuccess(e) + eq.debug("Vine ring completed"); + + eq.depop_all(MANGLED_TYPE); + eq.depop_all(VEGDESPAWN_TYPE); + eq.spawn2(VEGRESET_TYPE, 0, 0, 485, -835, 33.752, 0); + if ( e.self:GetNPCTypeID() == BOSS_TYPE ) then + eq.depop_with_timer(VEGEROG_GUY_TYPE); + end + + eq.signal(ARBITOR_GUY_TYPE, 3); + eq.csr_notice("PoEarthA Vine Ring success"); +end + +function MangledSpawn(e) + eq.set_timer("depop", 600000); +end + +function MangledCombat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function MangledTimer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function DespawnSpawn(e) + eq.set_timer("depop", 5880000); +end + +function DespawnTimer(e) + + if ( e.timer == "depop" ) then + -- ring timeout fail + eq.depop_all(BLOODTHIRSTY_TYPE); + eq.depop_all(BOSS_TYPE); + eq.depop_all(FAKE_BOSS_TYPE); + eq.depop_all(MANGLED_TYPE); + + taintedKills = 0; + + local elist = eq.get_entity_list(); + for _, id in ipairs(TAINTED_SPAWNIDS) do + elist:GetSpawnByID(id):Enable(); + end + + eq.debug("Vine Ring failed and reset"); + eq.depop(); + eq.csr_notice("PoEarthA Vine Ring failed"); + end +end + +function ResetSpawn(e) + eq.set_timer("depop", 18000000); +end + +function ResetTimer(e) + if ( e.timer == "depop" ) then + + taintedKills = 0; + + local elist = eq.get_entity_list(); + for _, id in ipairs(TAINTED_SPAWNIDS) do + elist:GetSpawnByID(id):Enable(); + end + + eq.debug("Vine Ring now available"); + eq.depop(); + end +end + +function event_encounter_load(e) + + eq.register_npc_event("VineRing", Event.death_complete, TAINTED_TYPE, TaintedDeath); + + eq.register_npc_event("VineRing", Event.death_complete, BLOODTHIRSTY_TYPE, BloodthirstyDeath); + + eq.register_npc_event("VineRing", Event.spawn, BOSS_TYPE, BossSpawn); + eq.register_npc_event("VineRing", Event.combat, BOSS_TYPE, BossCombat); + eq.register_npc_event("VineRing", Event.timer, BOSS_TYPE, BossTimer); + eq.register_npc_event("VineRing", Event.death_complete, BOSS_TYPE, EventSuccess); + eq.register_npc_event("VineRing", Event.spawn, FAKE_BOSS_TYPE, BossSpawn); + eq.register_npc_event("VineRing", Event.combat, FAKE_BOSS_TYPE, BossCombat); + eq.register_npc_event("VineRing", Event.timer, FAKE_BOSS_TYPE, BossTimer); + eq.register_npc_event("VineRing", Event.death_complete, FAKE_BOSS_TYPE, EventSuccess); + + eq.register_npc_event("VineRing", Event.spawn, MANGLED_TYPE, MangledSpawn); + eq.register_npc_event("VineRing", Event.combat, MANGLED_TYPE, MangledCombat); + eq.register_npc_event("VineRing", Event.timer, MANGLED_TYPE, MangledTimer); + + eq.register_npc_event("VineRing", Event.spawn, VEGDESPAWN_TYPE, DespawnSpawn); + eq.register_npc_event("VineRing", Event.timer, VEGDESPAWN_TYPE, DespawnTimer); + + eq.register_npc_event("VineRing", Event.spawn, VEGRESET_TYPE, ResetSpawn); + eq.register_npc_event("VineRing", Event.timer, VEGRESET_TYPE, ResetTimer); + +end diff --git a/poeartha/player.lua b/poeartha/player.lua new file mode 100644 index 0000000..5506474 --- /dev/null +++ b/poeartha/player.lua @@ -0,0 +1,13 @@ +function event_click_door(e) + local door_id = e.door:GetDoorID(); + + if ( door_id >= 9 and door_id <= 11 ) then + + if ( eq.get_qglobals(e.self).earthb_key ) then + if ( e.self:HasZoneFlag(222) == false ) then + e.self:SetZoneFlag(222); + end + e.self:MovePC(222, -764, 333, -59, 132); + end + end +end \ No newline at end of file diff --git a/poeartha/script_init.lua b/poeartha/script_init.lua new file mode 100644 index 0000000..f871d70 --- /dev/null +++ b/poeartha/script_init.lua @@ -0,0 +1,5 @@ +eq.load_encounter("StoneRing"); +eq.load_encounter("MudRing"); +eq.load_encounter("VineRing"); +eq.load_encounter("DustRing"); +eq.load_encounter("Traps"); diff --git a/poearthb/#Avatar_of_Earth.lua b/poearthb/#Avatar_of_Earth.lua new file mode 100644 index 0000000..285b849 --- /dev/null +++ b/poearthb/#Avatar_of_Earth.lua @@ -0,0 +1,27 @@ +local PLANAR_PROJECTION_TYPE = 222041; -- Essence_of_Earth + +function event_death_complete(e) + eq.spawn2(PLANAR_PROJECTION_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + eq.signal(PLANAR_PROJECTION_TYPE, e.killer:GetID()); -- e.killer for death_complete is somebody with kill rights, not death blow + eq.csr_notice(string.format("PoEarthB Avatar of Earth slain by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end + +function event_spawn(e) + eq.set_timer("depop", 2100000); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.debug("Avatar of Earth depop"); + eq.csr_notice("PoEarthB Avatar of Earth despawned"); + eq.depop(); + end +end diff --git a/poearthb/#War_Chieftan_Awisano.lua b/poearthb/#War_Chieftan_Awisano.lua new file mode 100644 index 0000000..58f6645 --- /dev/null +++ b/poearthb/#War_Chieftan_Awisano.lua @@ -0,0 +1,19 @@ +-- Use invis men to indicate kills so Ginto can spawn if zone crashes between Chiefan kills +local INVIS_MAN_ID = 369489; + +function event_spawn(e) + eq.set_timer("check", 1000); +end + +function event_timer(e) + eq.stop_timer(e.timer); + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(222008) ) then -- A_Myrmidon_of_Stone + eq.depop_with_timer(); + return; + end +end + +function event_death_complete(e) + eq.get_entity_list():GetSpawnByID(INVIS_MAN_ID):GetNPC():Depop(true); + eq.signal(222034, 1); +end diff --git a/poearthb/#War_Chieftan_Birak.lua b/poearthb/#War_Chieftan_Birak.lua new file mode 100644 index 0000000..10da533 --- /dev/null +++ b/poearthb/#War_Chieftan_Birak.lua @@ -0,0 +1,19 @@ +-- Use invis men to indicate kills so Ginto can spawn if zone crashes between Chiefan kills +local INVIS_MAN_ID = 369487; + +function event_spawn(e) + eq.set_timer("check", 1000); +end + +function event_timer(e) + eq.stop_timer(e.timer); + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(222009) ) then -- A_Stonefist_Clansman + eq.depop_with_timer(); + return; + end +end + +function event_death_complete(e) + eq.get_entity_list():GetSpawnByID(INVIS_MAN_ID):GetNPC():Depop(true); + eq.signal(222034, 1); +end diff --git a/poearthb/#War_Chieftan_Galronar.lua b/poearthb/#War_Chieftan_Galronar.lua new file mode 100644 index 0000000..2c4d2ac --- /dev/null +++ b/poearthb/#War_Chieftan_Galronar.lua @@ -0,0 +1,19 @@ +-- Use invis men to indicate kills so Ginto can spawn if zone crashes between Chiefan kills +local INVIS_MAN_ID = 369488; + +function event_spawn(e) + eq.set_timer("check", 1000); +end + +function event_timer(e) + eq.stop_timer(e.timer); + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(222010) ) then -- A_Rock_Studded_Champion + eq.depop_with_timer(); + return; + end +end + +function event_death_complete(e) + eq.get_entity_list():GetSpawnByID(INVIS_MAN_ID):GetNPC():Depop(true); + eq.signal(222034, 1); +end diff --git a/poearthb/#Warlord_Gintolaken.lua b/poearthb/#Warlord_Gintolaken.lua new file mode 100644 index 0000000..312913a --- /dev/null +++ b/poearthb/#Warlord_Gintolaken.lua @@ -0,0 +1,61 @@ +local BOSS_TYPES = { 222035, 222037, 222036, 222008, 222009, 222010 }; -- Chieftans, Chieftan spawners + +function event_spawn(e) + eq.set_timer("check", 1000); +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("drophate", 1000); + else + eq.stop_timer("drophate"); + + -- this is to mimic certain behavior Sony's servers had/has. NPCs aggroed a long time sometimes warp home or + -- some distance away in the direction of home and heal somewhat when they hate list wipe. The exact logic to this + -- behavior is unknown. Bosses with the tank hate list drop mechanic need this in order to not trivialize the + -- encounter using mem blur. This is a crude solution that works well enough + local ratio = e.self:GetHPRatio(); + if ( ratio < 50 or math.random(100) > ratio ) then + e.self:GMMove(e.self:GetGuardPointX(), e.self:GetGuardPointY(), e.self:GetGuardPointZ(), e.self:GetSpawnPointH()); + e.self:SetHP(e.self:GetHP() + math.floor(e.self:GetMaxHP() * 0.3)); + end + end +end + +function event_timer(e) + if ( e.timer == "drophate" ) then + + if ( e.self:GetX() < -137 ) then + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + e.self:WipeHateList(); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + return; + end + + if ( math.random() < 0.03333 ) then -- averages to once per 30 seconds + local target = e.self:GetTarget(); + if ( target and target.valid ) then + e.self:RemoveFromHateList(target); + end + eq.debug(e.self:GetName().." dropped target from hate list ("..target:GetName()..")", 2); + end + + elseif ( e.timer == "check" ) then + eq.stop_timer(e.timer); + + -- Ginto has a spawn2 so he'll be up if the zone goes down. need to despawn him if triggers are up + local elist = eq.get_entity_list(); + for _, id in ipairs(BOSS_TYPES) do + if ( elist:IsMobSpawnedByNpcTypeID(id) ) then + eq.depop_with_timer(); + return; + end + end + end +end + +function event_death_complete(e) + eq.get_entity_list():GetSpawnByID(369490):GetNPC():Depop(true); + eq.get_entity_list():GetSpawnByID(369490):SetTimer(302400000); + eq.csr_notice(string.format("PoEarthB Gintolaken killed by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end diff --git a/poearthb/A_Myrmidon_of_Stone.lua b/poearthb/A_Myrmidon_of_Stone.lua new file mode 100644 index 0000000..b06ec95 --- /dev/null +++ b/poearthb/A_Myrmidon_of_Stone.lua @@ -0,0 +1,25 @@ +local INVIS_MAN_ID = 369489; +local AWISANO_TYPE = 222037; +local AWISANO_SPAWNID = 369492; +local SPAWNIDS = { 369438, 369439, 369440, 369441 }; + +-- force them to respawn at same time +function event_spawn(e) + for _, id in ipairs(SPAWNIDS) do + eq.update_spawn_timer(id, 1000); + end + eq.depop_with_timer(AWISANO_TYPE); + eq.update_spawn_timer(INVIS_MAN_ID, 1000); +end + +function event_death_complete(e) + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(222008) ) then -- A_Myrmidon_of_Stone + + eq.update_spawn_timer(AWISANO_SPAWNID, 1000); + + local variance = math.random(1, 1440); + local t = (60 * 60 + variance) * 60; -- (60 hours/2.5 days * 60 minutes + variance) * 60 seconds + eq.update_spawn_timer(SPAWNIDS[1], t*1000); + end +end diff --git a/poearthb/A_Rathe_Councilman.lua b/poearthb/A_Rathe_Councilman.lua new file mode 100644 index 0000000..9458016 --- /dev/null +++ b/poearthb/A_Rathe_Councilman.lua @@ -0,0 +1,215 @@ +local MEZABLE_TYPE = 222003; +local UNMEZABLE_TYPE = 222039; +local SPAWNIDS = { 369377, 369380, 369382, 369384, 369386, 369387, 369376, 369378, 369379, 369381, 369383, 369385 }; +local BOSS_TYPES = { 222035, 222037, 222036, 222038, 222008, 222009, 222010 }; -- Ginto, Chieftans, Chieftan spawners +local TELEPORT_BOUNDS = { + { n = 957, s = 861, w = 2248, e = 1925 }, + { n = 564, s = 238, w = 2600, e = 2521 }, + { n = 569, s = 236, w = 1595, e = 1511 }, + { n = -55, s = -132, w = 2180, e = 1855 }, +}; +local THRESHOLDS = { 75, 50, 25, 11 }; +local MIN_HITS = { 623, 533, 444, 354, 185 }; +local MAX_HITS = { 2964, 2498, 2032, 1566, 850 }; + +local killed = {}; +local state = {}; + +function TeleportClient(c) + local x = math.random(1, 4); + local rollX, rollY; + + rollX = math.random(TELEPORT_BOUNDS[x].e, TELEPORT_BOUNDS[x].w); + rollY = math.random(TELEPORT_BOUNDS[x].s, TELEPORT_BOUNDS[x].n); + + c:MovePC(222, rollX, rollY, -255, math.random(0, 510)); +end + +-- if this respawn is the only councilman up, repop all of them +function event_spawn(e) + local elist = eq.get_entity_list(); + + local mySpawnID = e.self:GetSpawnPointID(); + killed[mySpawnID] = nil; + state[mySpawnID] = nil; + + for _, id in ipairs(SPAWNIDS) do + if ( id ~= mySpawnID ) then + if ( elist:GetSpawnByID(id):GetNPC().valid ) then + return; + end + end + end + + for _, id in ipairs(SPAWNIDS) do + eq.update_spawn_timer(id, 1); + end + eq.debug("Full council repop"); +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("teleport", 60000); + if ( e.self:GetNPCTypeID() == MEZABLE_TYPE ) then + eq.set_timer("check_mez", 1000); + else + eq.set_timer("checkhp", 3000); + end + else + eq.stop_timer("teleport"); + eq.stop_timer("check_mez"); + eq.stop_timer("check_unmez"); + eq.stop_timer("ten_min"); + end +end + +function event_timer(e) + + if ( e.timer == "checkhp" ) then + + local mySpawnID = e.self:GetSpawnPointID(); + local myState = state[mySpawnID] or 1; + local ratio = e.self:GetHPRatio(); + + if ( not e.self:IsEngaged() ) then + -- reset NPC combat stats if deaggroed and healed + if ( myState > 1 and ratio > THRESHOLDS[1] ) then + state[mySpawnID] = 1; + e.self:ModifyNPCStat("min_hit", tostring(MIN_HITS[1])); + e.self:ModifyNPCStat("max_hit", tostring(MAX_HITS[1])); + e.self:ModifyNPCStat("accuracy", tostring(350)); + e.self:ModifyNPCStat("atk", tostring(30)); + eq.stop_timer(e.timer); + eq.debug("Councilman combat stats reset", 3); + return; + + elseif ( myState == 1 and ratio > THRESHOLDS[1] ) then + eq.stop_timer(e.timer); + end + end + + if ( myState > #THRESHOLDS ) then + return; + elseif ( ratio < THRESHOLDS[myState] ) then + + -- anti-cheat: if ginto, any chieftan, or chieftan spawners are up, then don't allow councilmen to reduce stats + --[[ + local elist = eq.get_entity_list(); + for _, id in ipairs(BOSS_TYPES) do + if ( elist:IsMobSpawnedByNpcTypeID(id) ) then + return; + end + end + ]] + + -- new anti-cheat way is to despawn this NPC so players get 3.5 days after Ginto kill to attempt Rathe + if ( eq.get_entity_list():GetSpawnByID(369490):GetNPC().valid ) then + return; + end + + myState = myState + 1; + state[mySpawnID] = myState; + e.self:ModifyNPCStat("min_hit", tostring(MIN_HITS[myState])); + e.self:ModifyNPCStat("max_hit", tostring(MAX_HITS[myState])); + if ( myState == 5 ) then + e.self:ModifyNPCStat("accuracy", tostring(0)); + e.self:ModifyNPCStat("atk", tostring(0)); + + if ( e.self:GetTarget().valid and e.self:GetTarget():IsClient() ) then + eq.debug( string.format("PoEarthB Rathe Councilman disempowered; Tank: %s <%s>", e.self:GetTarget():GetName(), e.self:GetTarget():CastToClient():GetGuildName()) ); + eq.csr_notice( string.format("PoEarthB Rathe Councilman disempowered; Tank: %s <%s>", e.self:GetTarget():GetName(), e.self:GetTarget():CastToClient():GetGuildName()) ); + end + end + eq.zone_emote(0, "The ground shudders beneath your feet as flecks of dirt and stone fall away from one of the Rathe."); + + end + + elseif ( e.timer == "teleport" ) then + + if ( e.self:IsMezzed() or e.self:GetHPRatio() < 11 ) then + return; + end + --[[ + local hl = e.self:GetHateList(); + local clients = {}; + for ent in hl.entries do + if ( ent.ent:IsClient() and e.self:CalculateDistance(ent.ent:GetX(), ent.ent:GetY(), ent.ent:GetZ()) < 600 ) then + table.insert(clients, ent.ent:CastToClient()); + end + end + + if ( #clients > 0 ) then + TeleportClient( clients[math.random(1, #clients)] ); + end + ]] + local c = e.self:GetHateRandomClient(600); + if ( c and c.valid ) then + TeleportClient(c); + end + + elseif ( e.timer == "ten_min" ) then + + -- this attempts to replicate the quirk Sony's code had which dropped aggro after the NPC was mezzed for 10 minutes + if ( e.self:IsMezzed() ) then + e.self:WipeHateList(); + eq.debug("Mezzed Councilman hate list wiped", 3); + else + eq.stop_timer(e.timer); + end + + elseif ( e.timer == "check_mez" ) then + + if ( e.self:IsMezzed() ) then + eq.stop_timer(e.timer); + eq.set_timer("ten_min", 600000); + eq.set_timer("check_unmez", 1000); + end + + elseif ( e.timer == "check_unmez" ) then + + if ( not e.self:IsMezzed() ) then + eq.stop_timer(e.timer); + eq.stop_timer("ten_min"); + eq.set_timer("check_mez", 1000); + end + end +end + +function event_signal(e) + killed[e.signal] = 1; +end + +function event_death_complete(e) + + -- keeping track of kills in case something goes wrong and spawn timers get screwy + local mySpawnID = e.self:GetSpawnPointID(); + killed[mySpawnID] = 1; + local myType = e.self:GetNPCTypeID(); + + -- the killed table is not shared between the two types, so have to communicate + if ( myType == UNMEZABLE_TYPE ) then + eq.signal(MEZABLE_TYPE, mySpawnID); + else + eq.signal(UNMEZABLE_TYPE, mySpawnID); + end + + for _, id in ipairs(SPAWNIDS) do + if ( not killed[id] ) then + return; + end + end + + local elist = eq.get_entity_list(); + if ( not elist:IsMobSpawnedByNpcTypeID(MEZABLE_TYPE) and not elist:IsMobSpawnedByNpcTypeID(UNMEZABLE_TYPE) ) then + + eq.zone_emote(0, "The last of the council falls to the ground all signs of life gone. Suddenly twelve voices are heard chanting a mystical spell saying, 'Time comes and time passes for the stone is forever. Now we call upon our collective power to defend our stronghold!' The chanting then stops and a deep throated primal scream is heard as the power of twelve comes together as one. The Avatar of Earth has been summoned to defend Ragrax."); + eq.unique_spawn(222040, 0, 0, 2050, 410, -210, 0); -- #Avatar_of_Earth + + local variance = math.random(1, 1440); + local t = (60 * 60 + variance) * 60; -- (60 hours/2.5 days * 60 minutes + variance) * 60 seconds + for i, id in ipairs(SPAWNIDS) do + eq.update_spawn_timer(id, t*1000); + end + eq.csr_notice(string.format("PoEarthB Avatar of Earth spawned by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); + end +end diff --git a/poearthb/A_Rock_Studded_Champion.lua b/poearthb/A_Rock_Studded_Champion.lua new file mode 100644 index 0000000..66d3b02 --- /dev/null +++ b/poearthb/A_Rock_Studded_Champion.lua @@ -0,0 +1,25 @@ +local INVIS_MAN_ID = 369488; +local GALRONAR_TYPE = 222036; +local GALRONAR_SPAWNID = 369494; +local SPAWNIDS = { 369446, 369447, 369448, 369449 }; + +-- force them to respawn at same time +function event_spawn(e) + for _, id in ipairs(SPAWNIDS) do + eq.update_spawn_timer(id, 1000); + end + eq.depop_with_timer(GALRONAR_TYPE); + eq.update_spawn_timer(INVIS_MAN_ID, 1000); +end + +function event_death_complete(e) + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(222010) ) then -- A_Rock_Studded_Champion + + eq.update_spawn_timer(GALRONAR_SPAWNID, 1000); + + local variance = math.random(1, 1440); + local t = (60 * 60 + variance) * 60; -- (60 hours/2.5 days * 60 minutes + variance) * 60 seconds + eq.update_spawn_timer(SPAWNIDS[1], t*1000); + end +end diff --git a/poearthb/A_Stonefist_Clansman.lua b/poearthb/A_Stonefist_Clansman.lua new file mode 100644 index 0000000..f68c82b --- /dev/null +++ b/poearthb/A_Stonefist_Clansman.lua @@ -0,0 +1,25 @@ +local INVIS_MAN_ID = 369487; +local BIRAK_TYPE = 222035; +local BIRAK_SPAWNID = 369493; +local SPAWNIDS = { 369442, 369443, 369444, 369445 }; + +-- force them to respawn at same time +function event_spawn(e) + for _, id in ipairs(SPAWNIDS) do + eq.update_spawn_timer(id, 1000); + end + eq.depop_with_timer(BIRAK_TYPE); + eq.update_spawn_timer(INVIS_MAN_ID, 1000); +end + +function event_death_complete(e) + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(222009) ) then -- A_Stonefist_Clansman + + eq.update_spawn_timer(BIRAK_SPAWNID, 1000); + + local variance = math.random(1, 1440); + local t = (60 * 60 + variance) * 60; -- (60 hours/2.5 days * 60 minutes + variance) * 60 seconds + eq.update_spawn_timer(SPAWNIDS[1], t*1000); + end +end diff --git a/poearthb/Essence_of_Earth.lua b/poearthb/Essence_of_Earth.lua new file mode 100644 index 0000000..e93cee8 --- /dev/null +++ b/poearthb/Essence_of_Earth.lua @@ -0,0 +1,76 @@ +local FLAG_LIMIT = 72; + +local flags = 0; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + +function event_signal(e) + rid, gid, cid = nil, nil, nil; + local client = eq.get_entity_list():GetClientByID(e.signal); -- the signal # is the entity ID of a client with kill credit + + if ( client.valid ) then + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + end +end + +function event_spawn(e) + eq.set_timer("depop", 1200000); + flags = 0; +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_say(e) + + if ( ClientCanFlag(e.other) and e.message:findi("hail") ) then + + if ( not e.other:HasItem(29146) and not e.other:HasItem(29165) ) then -- Mound of Living Stone, Quintessence of Elements + e.other:SummonCursorItem(29146); -- Item: Mound of Living Stone + flags = flags + 1; + end + + if ( flags >= FLAG_LIMIT ) then + eq.depop(); + end + end +end diff --git a/poearthb/The.lua b/poearthb/The.lua new file mode 100644 index 0000000..60dedfd --- /dev/null +++ b/poearthb/The.lua @@ -0,0 +1,17 @@ +local INVIS_MEN_SPAWNIDS = { 369487, 369488, 369489 }; +local GINTO_SPAWNID = 369491; + +function event_signal(e) + if ( e.signal == 1 ) then + local elist = eq.get_entity_list(); + + for _, id in ipairs(INVIS_MEN_SPAWNIDS) do + if ( elist:GetSpawnByID(id):GetNPC().valid ) then + return; + end + end + end + + eq.update_spawn_timer(GINTO_SPAWNID, 1000); + eq.csr_notice("PoEarthB Gintolaken spawned"); +end diff --git a/poearthb/player.lua b/poearthb/player.lua new file mode 100644 index 0000000..dab80bd --- /dev/null +++ b/poearthb/player.lua @@ -0,0 +1,54 @@ +local DOOR1_IDS = { 369453, 369454, 369455, 369456, 369469, 369470, 369474, 369475, 369476, 369479, + 369458, 369459, 369480, 369481, 369468, 369471, 369472, 369473, 369464, 369465, + 369477, 369478, 369457, 369460, 369461, 369462, 369463, 369466, 369467 }; + +local DOOR2_IDS = { 369426, 369427, 369451, 369452, 369430, 369433, 369429, 369431, 369436, 369450, + 369428, 369432, 369434, 369438, 369439, 369440, 369441, 369446, 369447, 369448, + 369449, 369442, 369443, 369444, 369445 }; + +function event_click_door(e) + local door_id = e.door:GetDoorID(); + + if ( door_id == 2 or door_id == 3 ) then + + local elist = eq.get_entity_list(); + + for _, id in ipairs(DOOR1_IDS) do + if ( elist:GetSpawnByID(id):GetNPC().valid ) then + if ( not e.self:GetGM() ) then + e.self:Message(0, "As you attempt to move the wall of stone it is clear that it is being held in place by a powerful force."); + return; + end + end + end + eq.get_entity_list():GetDoorsByDoorID(2):ForceOpen(e.self); + eq.get_entity_list():GetDoorsByDoorID(3):ForceOpen(e.self); + + elseif ( door_id == 4 or door_id == 5 ) then + + local elist = eq.get_entity_list(); + local shut = false; + + for _, id in ipairs(DOOR2_IDS) do + if ( elist:GetSpawnByID(id):GetNPC().valid ) then + shut = true; + break; + end + end + + if ( not shut and (elist:IsMobSpawnedByNpcTypeID(222035) or elist:IsMobSpawnedByNpcTypeID(222036) or + elist:IsMobSpawnedByNpcTypeID(222037) or elist:IsMobSpawnedByNpcTypeID(222038)) + ) then + shut = true; + end + + if ( shut ) then + e.self:Message(0, "The massive wall of rock, dirt and stone seems to be impenetrable. It is obviously held in place by a magical force."); + if ( not e.self:GetGM() ) then + return; + end + end + eq.get_entity_list():GetDoorsByDoorID(4):ForceOpen(e.self); + eq.get_entity_list():GetDoorsByDoorID(5):ForceOpen(e.self); + end +end \ No newline at end of file diff --git a/pofire/Essence_of_Fire.lua b/pofire/Essence_of_Fire.lua new file mode 100644 index 0000000..d954740 --- /dev/null +++ b/pofire/Essence_of_Fire.lua @@ -0,0 +1,76 @@ +local FLAG_LIMIT = 72; + +local flags = 0; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + +function event_signal(e) + rid, gid, cid = nil, nil, nil; + local client = eq.get_entity_list():GetClientByID(e.signal); -- the signal # is the entity ID of a client with kill credit + + if ( client.valid ) then + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + end +end + +function event_spawn(e) + eq.set_timer("depop", 1200000); + flags = 0; +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_say(e) + + if ( ClientCanFlag(e.other) and e.message:findi("hail") ) then + + if ( not e.other:HasItem(29147) and not e.other:HasItem(29165) ) then -- Globe of Dancing Flame, Quintessence of Elements + e.other:SummonCursorItem(29147); -- Item: Globe of Dancing Flame + flags = flags + 1; + end + + if ( flags >= FLAG_LIMIT ) then + eq.depop(); + end + end +end diff --git a/pofire/encounters/Fennin.lua b/pofire/encounters/Fennin.lua new file mode 100644 index 0000000..b582c36 --- /dev/null +++ b/pofire/encounters/Fennin.lua @@ -0,0 +1,250 @@ +local CONTROLLER_TYPE = 217068; -- A_booming +local GUARDIAN_TYPE = 217050; -- Guardian_of_Doomfire +local REAVER_TYPE = 217417; -- a_rage_reaver_of_flame +local HEALER_TYPE = 217418; -- a_chaos_healer_of_flame +local MAGUS_TYPE = 217419; -- a_dark_magus_of_flame +local DARKFIEND_TYPE = 217421; -- a_doomfire_darkfiend +local CHAOSFIEND_TYPE = 217420; -- a_doomfire_chaosfiend +local RAGEFIEND_TYPE = 217422; -- a_doomfire_ragefiend +local AZOBIAN_TYPE = 217425; -- Azobian_the_Darklord +local JAVONN_TYPE = 217426; -- Javonn_the_Overlord +local HEBAB_TYPE = 217453; -- Hebabbilys_the_Ragelord +local REAX_TYPE = 217427; -- Reaxnous_the_Chaoslord +local KIRTRA_TYPE = 217432; -- Chancellor_Kirtra +local TRAXOM_TYPE = 217433; -- Chancellor_Traxom +local CRATO_TYPE = 217429; -- Omni_Magus_Crato +local PROLLAZ_TYPE = 217428; -- Warlord_Prollaz +local ELITE_TYPE = 217430; -- elite_guardian_of_ro +local FENNIN_TYPE = 217440; -- Fennin_Ro_the_Tyrant_of_Fire +local PROJECTION_TYPE = 217454; -- Essence_of_Fire + +local TRASH_TYPES = { + REAVER_TYPE, HEALER_TYPE, MAGUS_TYPE, DARKFIEND_TYPE, CHAOSFIEND_TYPE, RAGEFIEND_TYPE, AZOBIAN_TYPE, + JAVONN_TYPE, HEBAB_TYPE, REAX_TYPE, KIRTRA_TYPE, TRAXOM_TYPE, CRATO_TYPE, PROLLAZ_TYPE +}; + +local SPAWNS = { -- these locs are copied from showeq so they are Y, X, Z, 360 degree headings + [1] = { + [REAVER_TYPE] = { + { -1621, -588, -166.625, 329.0625 }, + { -1321, -605, -117.375, 37.26563 }, + { -1085, -673, -145.1589, 2.109375 }, + { -1620, -834, -207.625, 95.625 }, + { -1465, -668, -146.747, 28.82813 }, + { -1422, -714, -146.747, 47.8125 }, + { -1321, -561, -116.625, 337.5 }, + { -1070, -719, -146.747, 54.14063 }, + { -992, -579, -146.747, 78.04688 }, + { -1202, -459, -201.747, 73.82813 }, + { -1147, -452, -201.7444, 94.21875 }, + { -1643, -789, -201.375, 85.07813 }, + { -1671, -839, -207.625, 80.85938 }, + { -1166, -624, -119.75, 319.2188 }, + { -944, -575, -146.747, 100.5469 }, + { -995, -500, -166.747, 159.6094 }, + { -1003, -466, -166.747, 181.4063 }, + }, + [HEALER_TYPE] = { + { -955, -486, -166.625, 114.6094 }, + { -1635, -560, -166.625, 309.375 }, + { -956, -598, -146.747, 86.48438 }, + { -1658, -867, -207.625, 85.07813 }, + { -1467, -715, -146.747, 44.29688 }, + { -1197, -625, -116.625, 337.5 }, + { -1172, -452, -201.747, 90.70313 }, + }, + [MAGUS_TYPE] = { + { -1175, -584, -116.625, 311.4844 }, + { -1636, -860, -207.625, 85.07813 }, + { -1586, -508, -166.625, 281.9531 }, + { -1351, -576, -117, 52.73438 }, + { -1117, -709, -145.2836, 16.17188 }, + { -981, -596, -146.625, 86.48438 }, + { -1152, -505, -201.747, 97.73438 }, + { -1188, -513, -201.747, 90.70313 }, + }, + [DARKFIEND_TYPE] = { + { -1331, -590, -105.497, 10.54688 }, + { -1180, -613, -105.4944, 319.9219 }, + { -1081, -703, -135.4944, 45 }, + }, + [CHAOSFIEND_TYPE] = { + { -994, -483, -156.1194, 182.1094 }, + { -969, -577, -136.1194, 90.70313 }, + { -1172, -471, -191.122, 90 }, + }, + [RAGEFIEND_TYPE] = { + { -1444, -692, -134.872, 46.40625 }, + { -1647, -823, -195.75, 90 }, + { -1604, -539, -154.75, 305.1563 }, + }, + }, + [2] = { + [REAVER_TYPE] = { + { -1573, -1245, -227.747, 142.0313 }, + { -1629, -1241, -227.747, 104.0625 }, + { -1621, -1306, -227.747, 94.21875 }, + { -1611, -1293, -227.747, 142.0313 }, + { -1595, -1274, -227.747, 142.0313 }, + { -1585, -1229, -227.747, 106.1719 }, + { -1551, -1217, -227.747, 142.0313 }, + }, + [HEALER_TYPE] = { + { -1577, -1284, -221.747, 142.7344 }, + { -1584, -1350, -200.747, 142.7344 }, + { -1525, -1312, -198.4345, 142.7344 }, + { -1506, -1247, -200.747, 142.7344 }, + { -1550, -1302, -203.747, 142.7344 }, + }, + [MAGUS_TYPE] = { + { -1592, -1335, -209.747, 142.7344 }, + { -1540, -1235, -221.747, 142.7344 }, + { -1604, -1322, -221.747, 142.7344 }, + { -1525, -1247, -209.747, 142.7344 }, + }, + [AZOBIAN_TYPE] = { { -1513, -1274, -184.6845, 139.9219 }, }, + [JAVONN_TYPE] = { { -1495, -1338, -181.5, 142.7344 }, }, + [HEBAB_TYPE] = { { -1562, -1339, -184.6845, 123.0469 }, }, + [REAX_TYPE] = { { -1572, -1286, -204.997, 114.6094 }, }, + }, + [3] = { + [KIRTRA_TYPE] = { { -1152, -1555, -199, 182 } }, + [TRAXOM_TYPE] = { { -1132, -1451, -199, 182 } }, + [CRATO_TYPE] = { { -906, -1393, -183, 182 } }, + [PROLLAZ_TYPE] = { { -906, -1587, -183, 182 } }, + }, + [4] = { + [FENNIN_TYPE] = { { -930, -1504, -160, 182 } }, + }, +}; + +local ELITE_SPAWNIDS = { 369529, 369530, 369531, 369532, 369533, 369534, 369535, 369536, 369537, 369538 }; + +local PHASE_TEXT = { + "The ground rumbles as the Guardian of Doomfire collapses to the ground dead. Then a loud booming voice is heard saying, 'Come little mortals! Feel the chaos of the fires that flame the dark rage. Test yourselves against the might of my armies!'", + "Four enraged roars of fury echo from further down the bridge over the cacophany of an army waiting to hand out death. The powerful voice is then heard saying, 'Rexanous, Azobian, Hebabbilys, and Javonn! Come destroy these intruders.'", + "As the last of the army is defeated visions of endless burning flames intrude into your mind. Suddenly the visions ends as a call comes from just ahead saying, 'Prepare to meet your end at the hands of the Council of Fire!'", + "A maddened call of endless fury erupts as a burning creature of pure destructions stands tall before you. The creature then speaks in the loud booming voice of immense power saying, 'You are fools to have come this far. Prepare to tremble at the might of Doomfire!'", +} + + +local phase = 0; + +function ToggleElites(state) + local elist = eq.get_entity_list(); + + for _, id in ipairs(ELITE_SPAWNIDS) do + if ( state ) then + elist:GetSpawnByID(id):Enable(); + else + elist:GetSpawnByID(id):Disable(); + end + end + +end + +function SpawnPhase(phase) + + if ( not SPAWNS[phase] ) then + eq.debug("invalid phase "..phase); + return; + end + + for typ, tab in pairs(SPAWNS[phase]) do + for _, l in ipairs(tab) do + eq.spawn2(typ, 0, 0, l[2], l[1], l[3], l[4]*0.7); + end + end + + eq.zone_emote(0, PHASE_TEXT[phase]); + + if ( phase == 4 ) then + ToggleElites(true); + end +end + +function GuardianCombat(e) + if ( e.joined ) then + eq.zone_emote(0, "Guardian of Doomfire lets out an echoing howl of fury and might that reverbrates throughout the scorched landscape as it moves to attack."); + end +end + +function GuardianDeathComplete(e) + phase = 1; + SpawnPhase(phase); + eq.signal(CONTROLLER_TYPE, 1); + eq.csr_notice(string.format("PoFire Fennin Ro script started by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end + +function ControllerSignal(e) + if ( e.signal == 1 ) then + eq.set_timer("fail", 17500000); -- note: the fail timer is not well understood and may not be accurate for all circumstances + + elseif ( e.signal == 2 ) then + eq.stop_timer("fail"); + phase = 0; + ToggleElites(false); + end +end + +function ControllerTimer(e) + + if ( e.timer == "fail" ) then + eq.stop_timer(e.timer); + + eq.zone_emote(0, "A booming voice shouts out, 'You do not have the might to match the creatures of Doomfire, come back when you do.'"); + + for _, typ in ipairs(TRASH_TYPES) do + eq.depop_all(typ); + end + eq.depop_all(FENNIN_TYPE); + ToggleElites(false); + eq.csr_notice("PoFire Fennin event timed out"); + end +end + +function TrashDeathComplete(e) + local elist = eq.get_entity_list(); + + for _, typ in ipairs(TRASH_TYPES) do + if ( elist:IsMobSpawnedByNpcTypeID(typ) ) then + return; + end + end + + phase = phase + 1; + SpawnPhase(phase); +end + +function FenninDeathComplete(e) + eq.signal(CONTROLLER_TYPE, 2); + eq.spawn2(PROJECTION_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + eq.signal(PROJECTION_TYPE, e.killer:GetID()); -- e.killer for death_complete is somebody with kill rights, not death blow + eq.zone_emote(0, "Loud cries of hopelessness echo throughout the burning lands. The creatures of Doomfire call out to their master, Fennin Ro the Tyrant of Fire, for his dead body now lies at the feet of the mighty adventurers."); + eq.csr_notice(string.format("PoFire Fennin Ro slain by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end + +function event_encounter_load(e) + eq.register_npc_event("Fennin", Event.combat, GUARDIAN_TYPE, GuardianCombat); + eq.register_npc_event("Fennin", Event.death_complete, GUARDIAN_TYPE, GuardianDeathComplete); + + eq.register_npc_event("Fennin", Event.signal, CONTROLLER_TYPE, ControllerSignal); + eq.register_npc_event("Fennin", Event.timer, CONTROLLER_TYPE, ControllerTimer); + + eq.register_npc_event("Fennin", Event.death_complete, REAVER_TYPE, TrashDeathComplete); + eq.register_npc_event("Fennin", Event.death_complete, HEALER_TYPE, TrashDeathComplete); + eq.register_npc_event("Fennin", Event.death_complete, MAGUS_TYPE, TrashDeathComplete); + eq.register_npc_event("Fennin", Event.death_complete, DARKFIEND_TYPE, TrashDeathComplete); + eq.register_npc_event("Fennin", Event.death_complete, CHAOSFIEND_TYPE, TrashDeathComplete); + eq.register_npc_event("Fennin", Event.death_complete, RAGEFIEND_TYPE, TrashDeathComplete); + eq.register_npc_event("Fennin", Event.death_complete, AZOBIAN_TYPE, TrashDeathComplete); + eq.register_npc_event("Fennin", Event.death_complete, JAVONN_TYPE, TrashDeathComplete); + eq.register_npc_event("Fennin", Event.death_complete, HEBAB_TYPE, TrashDeathComplete); + eq.register_npc_event("Fennin", Event.death_complete, REAX_TYPE, TrashDeathComplete); + eq.register_npc_event("Fennin", Event.death_complete, KIRTRA_TYPE, TrashDeathComplete); + eq.register_npc_event("Fennin", Event.death_complete, TRAXOM_TYPE, TrashDeathComplete); + eq.register_npc_event("Fennin", Event.death_complete, CRATO_TYPE, TrashDeathComplete); + eq.register_npc_event("Fennin", Event.death_complete, PROLLAZ_TYPE, TrashDeathComplete); + + eq.register_npc_event("Fennin", Event.death_complete, FENNIN_TYPE, FenninDeathComplete); +end diff --git a/pofire/encounters/SnareImmunity.lua b/pofire/encounters/SnareImmunity.lua new file mode 100644 index 0000000..d9e6343 --- /dev/null +++ b/pofire/encounters/SnareImmunity.lua @@ -0,0 +1,25 @@ +-- Field 1 mobs have a chance to be snare immune. doing this instead of duplicating all of the types + +local TYPES = { + 217048, -- an_obsidian_tree_spider + 217455, -- an_obsidian_tree_spider + 217002, -- an_obsidian_tree_spiderling + 217423, -- a_fiery_spirit_steed + 217007, -- a_jopal_hunter + 217028, -- a_jopal_gatherer + 217029, -- a_flame_lord + 217006, -- a_flame_lordling + 217047, -- a_jopal_lavahurler +}; + +function SpawnEvent(e) + if ( math.random(5) == 1 ) then + e.self:SetSpecialAbility(16, 1); -- Snare + end +end + +function event_encounter_load(e) + for _, id in pairs(TYPES) do + eq.register_npc_event("SnareImmunity", Event.spawn, id, SpawnEvent); + end +end \ No newline at end of file diff --git a/pofire/script_init.lua b/pofire/script_init.lua new file mode 100644 index 0000000..c33bb95 --- /dev/null +++ b/pofire/script_init.lua @@ -0,0 +1,2 @@ +eq.load_encounter("Fennin"); +eq.load_encounter("SnareImmunity"); diff --git a/poinnovation/#Chronographer_Muon.lua b/poinnovation/#Chronographer_Muon.lua new file mode 100644 index 0000000..ff445a3 --- /dev/null +++ b/poinnovation/#Chronographer_Muon.lua @@ -0,0 +1,42 @@ +local MAELIN_TYPE = 206209; + +function HasItemInvOnly(client, itemid) + + --main inventory and cursor + for i = 0, 30, 1 do + local thisitem = client:GetItemIDAt(i); + if(thisitem == itemid) then + return true; + end + end + + --main/cursor containers + for i = 250, 339, 1 do + local thisitem = client:GetItemIDAt(i); + if(thisitem == itemid) then + return true; + end + end +end + +function event_say(e) + + local qglobals = eq.get_qglobals(e.other); + + if ( qglobals.zebuxoruk == "2" and HasItemInvOnly(e.other, 29165) ) then -- Quintessence of Elements + + if ( e.message:findi("hail") ) then + e.other:Message(0, "Chronographer Muon tells you, 'Acquisition of power completed. Would you like to be transported to the time-projection chamber?'"); + + elseif ( e.message:findi("yes") ) then + e.other:Message(0, "Chronographer Muon tells you, 'Compliance.'"); + e.other:MovePC(206, 291, -860, -1850, 64*2); + eq.unique_spawn(MAELIN_TYPE, 0, 0, 763, -837, -1887.122, 184); + end + else + + if ( e.message:findi("hail") ) then + e.other:Message(0, "Chronographer Muon tells you, 'Greeting acknowledged. I have no use for you at this time. Good bye.'"); + end + end +end diff --git a/poinnovation/#Giwin_Mirakon.lua b/poinnovation/#Giwin_Mirakon.lua new file mode 100644 index 0000000..fd4753a --- /dev/null +++ b/poinnovation/#Giwin_Mirakon.lua @@ -0,0 +1,85 @@ +local FLAG_LIMIT = 72; + +local flags = 0; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + +function event_signal(e) + rid, gid, cid = nil, nil, nil; + local client = eq.get_entity_list():GetClientByID(e.signal); -- the signal # is the entity ID of a client with kill credit + + if ( client.valid ) then + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + end +end + +function event_spawn(e) + flags = 0; + --eq.depop_with_timer(206038); -- preflag Giwin; apparently didn't depop on AK? + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + + if ( ClientCanFlag(e.other) ) then + + if ( e.message:findi("hail") ) then + + if ( not qglobals.zeks ) then + e.other:Message(0, "Giwin Mirakon tells you, 'Hey what are you doing! Look at this mess that you have caused. Rallos is not going to be happy about this.'"); + if ( not qglobals.cl_behemoth and flags < FLAG_LIMIT ) then + eq.set_global("cl_behemoth", "1", 5, "F"); + e.other:Message(15, "You have received a new checklist flag!"); + flags = flags + 1; + end + + else + e.other:Message(0, "Giwin Mirakon gives you a look of disbelief and then concern. 'You destroyed the machine?! You should come with me to the Plane of Tactics. Surely the Zeks will want to honor you in your warring spirit. I will go on ahead of you to prepare for your arrival. I believe that you can access the Plane through the portal that the weakli.. Er tranquil have opened in the Plane of Tranquility. I anticipate our next meeting on the Battlefields of Zek!'"); + if ( qglobals.zeks == "1" and flags <= FLAG_LIMIT ) then + eq.set_global("zeks", "2", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + flags = flags + 1; + + if ( qglobals.cl_behemoth ) then + eq.delete_global("cl_behemoth"); + end + end + end + end + end +end diff --git a/poinnovation/#Xanamech_Nezmirthafen.lua b/poinnovation/#Xanamech_Nezmirthafen.lua new file mode 100644 index 0000000..591d698 --- /dev/null +++ b/poinnovation/#Xanamech_Nezmirthafen.lua @@ -0,0 +1,41 @@ +function event_signal(e) + if ( e.signal == 1 ) then + e.self:SetAppearance(0); + eq.set_timer("wake", 3500); + end +end + +function event_spawn(e) + eq.set_timer("lie", 300); + eq.set_timer("depop", 1800000); +end + +function event_timer(e) + + eq.stop_timer(e.timer); + + if ( e.timer == "depop" ) then + eq.depop(); + + elseif ( e.timer == "lie" ) then + e.self:SetAppearance(1); + + elseif ( e.timer == "wake" ) then + e.self:SetSpecialAbility(24, 0); -- Will Not Aggro off + e.self:SetSpecialAbility(25, 0); -- Immune to Aggro off + e.self:SetSpecialAbility(35, 0); -- No Harm from Players off + e.self:SetBodyType(5, false); -- Construct + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_death_complete(e) + eq.signal(206033, e.killer:GetID()); -- Nitram_Anizok +end diff --git a/poinnovation/Giwin_Mirakon.lua b/poinnovation/Giwin_Mirakon.lua new file mode 100644 index 0000000..dd91f90 --- /dev/null +++ b/poinnovation/Giwin_Mirakon.lua @@ -0,0 +1,44 @@ + +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + + if ( qglobals.zeks ) then + e.other:Message(0, "Giwin Mirakon tells you, 'Well go on then, what are you cowering around for, let us see what kind of warrior you are!'"); + else + if ( e.message:findi("hail") ) then + e.other:Message(0, "Giwin Mirakon tells you, 'How did you get in here? Hrmm no matter, you will be helping me now for I am a [great warrior] of Rallos Zek and I know you wish not to provoke my fury!'"); + + elseif ( e.message:findi("great warrior") ) then + e.other:Message(0, "Giwin Mirakon tells you, 'Yeah, you heard me! You know that I must be important if Rallos himself has plucked me from the battlefield to complete this [task]. Even though I serve my lord, I am desperate to return to my place on the eternal battlefield.'"); + + elseif ( e.message:findi("task") ) then + e.other:Message(0, "Giwin Mirakon tells you, 'Ya, you see Rallos sent me here to contract the machines to work on a mana powered piece of machinery that could test all on the eternal battlefield. This weapon of ultimate destruction is taking quite a long time to be completed. You know... if you were to go [test the machine] and it were to fail against you I could be on my way back to tell Rallos that it was defeated by mere mortals. Help me to get back to the battlefield and out of this rusted out junk heap.'"); + + elseif ( e.message:findi("test the machine") ) then + e.other:Message(0, "Giwin Mirakon tells you, 'Haha! I knew I sensed the warring spirit within you. Go through over there. Ignore those steam powered soldiers and their talk of perimeters. Go into the main construction area, you will know you are there when you see power carriers taking energy to power up the machine. If you can stop the energy carriers from releasing their energy the machine will activate to see what has happened. I shall come to check on you and take a full report when you have destroyed it. Long live Rallos!'"); + eq.set_global("zeks", "1", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + end + end +end + +function event_trade(e) + + local itemInst, item; + + for i = 1, 4 do + + itemInst = e.trade["item"..i]; + + if ( itemInst and itemInst.valid ) then + item = itemInst:GetItem(); + + e.self:Say("Thanks for the "..itemInst:GetName().." "..e.other:GetCleanName().."."); + + if ( item:NoDrop() == 255 and e.self:CountLoot() < 30 ) then + e.self:RemoveItem(itemInst:GetID()) -- prevent multiples + e.self:AddItem(itemInst:GetID(), itemInst:GetCharges(), true); + end + end + end +end diff --git a/poinnovation/Loreseeker_Maelin.lua b/poinnovation/Loreseeker_Maelin.lua new file mode 100644 index 0000000..28c3363 --- /dev/null +++ b/poinnovation/Loreseeker_Maelin.lua @@ -0,0 +1,21 @@ +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + + if ( qglobals.zebuxoruk == "2" and e.other:HasItem(29165) ) then -- Quintessence of Elements + + if ( e.message:findi("hail") ) then + e.self:Emote("fidgets about with excitement, 'So here you are, this is quite impressive. I cannot wait to see the results of this impressive machine! I have coordinated with the clockworks here that have not gone mad. We have set the machine to tear a point of time open that should be equal to that based on the cipher and history that we have [researched].'"); + + elseif ( e.message:findi("researched") ) then + e.self:Say("Based on the findings from the information that you brought back to me I have determined the exact time to open. I believe the machine will work. Please step up and activate the machine! Once you have formed a bond with the Plane of Time you will be able to access the Plane again through the Plane of Tranquility. They have built a portal there, but no one was able to become attuned to that plane, until you that is. Good luck!"); + end + end +end + +function event_spawn(e) + eq.set_timer("depop", 900000); +end + +function event_timer(e) + eq.depop(); +end diff --git a/poinnovation/Manaetic_Prototype_IX.lua b/poinnovation/Manaetic_Prototype_IX.lua new file mode 100644 index 0000000..e3c8de0 --- /dev/null +++ b/poinnovation/Manaetic_Prototype_IX.lua @@ -0,0 +1,34 @@ +function event_timer(e) + + if ( e.timer == "teleport" ) then + + eq.set_timer("teleport", math.random(2, 30) * 1000); + local target = e.self:GetTarget(); + + if ( target and target.valid ) then + e.self:SetHate(target, 1); + if ( target:IsClient() ) then + target:CastToClient():MovePC(206, 281, -239, 2, 64*2); + end + end + + elseif ( e.timer == "boundscheck" ) then + if ( e.self:GetY() > -350 or e.self:GetY() < -600 ) then + e.self:Emote("rattles violently and disappears!"); + e.self:GMMove(e.self:CastToNPC():GetSpawnPointX(), e.self:CastToNPC():GetSpawnPointY(), e.self:CastToNPC():GetSpawnPointZ(), e.self:CastToNPC():GetSpawnPointH()); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + e.self:WipeHateList(); + e.self:Heal(); + end + end +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("teleport", math.random(2, 30) * 1000); + eq.set_timer("boundscheck", 3000); + else + eq.stop_timer("teleport"); + eq.stop_timer("boundscheck"); + end +end diff --git a/poinnovation/Manaetic_Prototype_X.lua b/poinnovation/Manaetic_Prototype_X.lua new file mode 100644 index 0000000..cc44aff --- /dev/null +++ b/poinnovation/Manaetic_Prototype_X.lua @@ -0,0 +1,34 @@ +function event_timer(e) + + if ( e.timer == "teleport" ) then + + eq.set_timer("teleport", math.random(2, 30) * 1000); + local target = e.self:GetTarget(); + + if ( target and target.valid ) then + e.self:SetHate(target, 1); + if ( target:IsClient() ) then + target:CastToClient():MovePC(206, 1, -473, 2, 128*2); + end + end + + elseif ( e.timer == "boundscheck" ) then + if ( e.self:GetX() > -100 or e.self:GetX() < -400 ) then + e.self:Emote("rattles violently and disappears!"); + e.self:GMMove(e.self:CastToNPC():GetSpawnPointX(), e.self:CastToNPC():GetSpawnPointY(), e.self:CastToNPC():GetSpawnPointZ(), e.self:CastToNPC():GetSpawnPointH()); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + e.self:WipeHateList(); + e.self:Heal(); + end + end +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("teleport", math.random(2, 30) * 1000); + eq.set_timer("boundscheck", 3000); + else + eq.stop_timer("teleport"); + eq.stop_timer("boundscheck"); + end +end diff --git a/poinnovation/Manaetic_Prototype_XI.lua b/poinnovation/Manaetic_Prototype_XI.lua new file mode 100644 index 0000000..df5daac --- /dev/null +++ b/poinnovation/Manaetic_Prototype_XI.lua @@ -0,0 +1,34 @@ +function event_timer(e) + + if ( e.timer == "teleport" ) then + + eq.set_timer("teleport", math.random(2, 30) * 1000); + local target = e.self:GetTarget(); + + if ( target and target.valid ) then + e.self:SetHate(target, 1); + if ( target:IsClient() ) then + target:CastToClient():MovePC(206, -231, -241, 2, 192*2); + end + end + + elseif ( e.timer == "boundscheck" ) then + if ( e.self:GetX() > 400 or e.self:GetX() < 100 ) then + e.self:Emote("rattles violently and disappears!"); + e.self:GMMove(e.self:CastToNPC():GetSpawnPointX(), e.self:CastToNPC():GetSpawnPointY(), e.self:CastToNPC():GetSpawnPointZ(), e.self:CastToNPC():GetSpawnPointH()); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + e.self:WipeHateList(); + e.self:Heal(); + end + end +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("teleport", math.random(2, 30) * 1000); + eq.set_timer("boundscheck", 3000); + else + eq.stop_timer("teleport"); + eq.stop_timer("boundscheck"); + end +end diff --git a/poinnovation/Nitram_Anizok.lua b/poinnovation/Nitram_Anizok.lua new file mode 100644 index 0000000..3b286bf --- /dev/null +++ b/poinnovation/Nitram_Anizok.lua @@ -0,0 +1,130 @@ +local FLAG_LIMIT = 72; +local DRAGON_TYPE = 206208; -- #Xanamech_Nezmirthafen + +local dragonSlain = false; +local walking = false; +local flags = 0; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + +function event_spawn(e) + dragonSlain = false; + walking = false; + flags = 0; +end + +function event_signal(e) + dragonSlain = true; + e.self:CastToNPC():SetNoQuestPause(false); + eq.set_timer("depop", 600000); + + rid, gid, cid = nil, nil, nil; + local client = eq.get_entity_list():GetClientByID(e.signal); -- the signal # is the entity ID of a client with kill credit + + if ( client.valid ) then + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + end +end + +function event_say(e) + + if ( dragonSlain ) then + + if ( e.message:findi("hail") and ClientCanFlag(e.other) ) then + + e.other:Message(0, "Nitram Anizok tells you, 'Whew that was a close one! I shall have to study these schematics and see where I went wrong. Maybe if I build a new one that uses the correct kind of power source it would work better! Anyhow, why don't you stop these beasts at the source? If you go up to the main factory door and twist the very bottom rivet of the icon three times to the right, it will open. I doubt they have changed how this works. Good luck!'"); + + local qglobals = eq.get_qglobals(e.other); + if ( not qglobals.poi_door and flags < FLAG_LIMIT ) then + eq.set_global("poi_door", "1", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + flags = flags + 1; + end + end + + elseif ( not walking ) then + + if ( e.message:findi("hail") ) then + e.self:Say("Oh my hello! It has been such a long time since I have had visitors. Have you come to learn of [advanced tinkering] as well?"); + + elseif ( e.message:findi("advanced tinkering") ) then + e.self:Say("Aye, I advanced to this plane due to my work on tinkering back in Ak`Anon. A grand city it is, but my abilities were compromised with the materials I had to work with there. My body and soul has come to rest here, forever coming up with new ideas. You should be aware though that this plane is not how it was when I arrived. Much [construction] has taken place."); + + elseif ( e.message:findi("construction") ) then + e.self:Say("When I first arrived I started creating smaller things. As time went on my inventions became more and more focused and impressive. I started building steam powered clockwork to help me gather materials. I had gone too far giving them the ability to learn and with a built in desire of self perpetuation. They began to integrate themselves with the clockwork that already existed within the factory that you can see if you step outside. I once worked within the factory with a kind and fair gnome, Meldrath. Now that he has gone missing the clockworks seem to be working towards a more devious goal. The clockwork out here in the junkyard have been discarded due to their malfunction or replacement by a more efficient series. Needless to say their [instinct for survival] has not been lost."); + + elseif ( e.message:findi("instinct for survival") ) then + e.self:Say("The clockwork have become increasingly aggressive because of their desperation for spare parts. I have to defend myself anytime I head out to find parts for my tinkering. I fear for my safety with what is being built in the factory. I have started to build myself my own means of defense. It is nearly completed but I need an odd combination of batteries to start it up. I should have planned more carefully for it to use simple mana batteries."); + + elseif ( e.message:findi("combination of batteries") ) then + e.self:Say("Well you see when I was back home it was common for me to use a mycological spore extricate-kinetoconvertor to power my devices. I started planning my defense to use this as a power source out of sheer habit. Here in this desolation the mushrooms that were grown back home do not exist. I am going to have to rig something from spare parts. It is taking a long time with my having to search the junkyard small portions at a time due to the clockworks. Would you help me in [collecting materials]?"); + + elseif ( e.message:findi("collecting materials") ) then + e.self:Emote("peers over some schematics laying on a table next to him. 'Let us see here. I have some of the base parts for the power source. If you could collect a copper node, a bundle of super conductive wires, and an intact power cell I could power up the machine. Good luck to you "..e.other:GetCleanName()..", I hope that we can work together on this.'"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if ( not walking and item_lib.check_turn_in(e.self, e.trade, {item1 = 9295, item2 = 9426, item3 = 9434}) ) then + e.self:Say("Excellent! This is wonderful, please follow me! I will show you the power of my greatest invention."); + walking = true; + e.self:CastToNPC():SetNoQuestPause(true); -- do not pause on say events + e.self:AssignWaypoints(22); + e.self:SetNPCFactionID(1006); + eq.set_timer("depop", 3600000); + end + + item_lib.return_items(e.self, e.other, e.trade); +end + +function event_waypoint_arrive(e) + + if ( e.wp == 20 ) then + eq.spawn2(DRAGON_TYPE, 0, 0, -711, 1583, -45, 128); + + elseif ( e.wp == 27 ) then + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(DRAGON_TYPE) ) then + e.self:Emote("places the power unit right into the chest of the huge metallic beast. It roars to life as steam begins pouring out of its huge gaping maw. Suddenly it begins to attack! 'Malfunction! There is an error in its recognization process! Help me to stop it before it destroys us all!'"); + eq.signal(DRAGON_TYPE, 1); + else + eq.depop_with_timer(); + end + end +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop_with_timer(); + end +end diff --git a/poinnovation/encounters/Behemoth.lua b/poinnovation/encounters/Behemoth.lua new file mode 100644 index 0000000..754d6fb --- /dev/null +++ b/poinnovation/encounters/Behemoth.lua @@ -0,0 +1,230 @@ +local CONTROLLER_TYPE = 206197; -- Weapon_Event_Master +local WAVE_TIME = 48000; +local WAKE_TIME = 450000; +local CLOCKWORK_DEVICE_TYPE = 206001; +local BEHEMOTH_TYPE = 206046; +local GIWIN_FLAGGER_TYPE = 206203; -- #Giwin_Mirakon + +local WAVE_SPAWNS = { + { -- 12:00 + { x = 1095, y = 560 }, + { x = 1155, y = 560 }, + { x = 1180, y = 600 }, + { x = 1155, y = 650 }, + { x = 1065, y = 605 }, + { x = 1095, y = 650 }, + 13, 14 -- grids; if two, is randomly chosen + }, + { -- 2:30 + { x = 835, y = 330 }, + { x = 850, y = 285 }, + { x = 750, y = 285 }, + { x = 770, y = 240 }, + { x = 775, y = 330 }, + { x = 835, y = 240 }, + 15 + }, + { -- 4:30 + { x = 750, y = -285 }, + { x = 860, y = -285 }, + { x = 835, y = -330 }, + { x = 775, y = -330 }, + { x = 775, y = -240 }, + { x = 840, y = -240 }, + 16 + }, + { -- 6:00 + { x = 1065, y = -600 }, + { x = 1180, y = -600 }, + { x = 1150, y = -650 }, + { x = 1155, y = -560 }, + { x = 1095, y = -560 }, + { x = 1090, y = -650 }, + 17, 18 + }, + { -- 7:30 + { x = 1415, y = -330 }, + { x = 1380, y = -280 }, + { x = 1475, y = -240 }, + { x = 1475, y = -330 }, + { x = 1410, y = -240 }, + { x = 1500, y = -285 }, + 19 + }, + { -- 10:30 + { x = 1475, y = 330 }, + { x = 1415, y = 330 }, + { x = 1475, y = 240 }, + { x = 1500, y = 285 }, + { x = 1405, y = 240 }, + { x = 1385, y = 285 }, + 20 + } +}; + +local exploders = {}; +local woken = false; +local kills = 0; + +function ControllerSpawn(e) + eq.set_timer("wave", WAVE_TIME); + eq.set_timer("wake", WAKE_TIME); +end + +function ControllerTimer(e) + + if ( e.timer == "wave" ) then + SpawnWave(); + elseif ( e.timer == "wake" and not woken ) then + + local behe = eq.get_entity_list():GetMobByNpcTypeID(BEHEMOTH_TYPE); + + if ( behe and behe.valid ) then + + if ( kills < 10 ) then + eq.debug("Refusing to wake the behemonth; not enough kills"); + eq.csr_notice("PoInnovation Warning: Refusing to wake the behemonth; not enough kills"); + return; + end + + behe:SetSpecialAbility(24, 0); -- Will Not Aggro off + behe:SetSpecialAbility(35, 0); -- No Harm from Players off + behe:SetBodyType(5, false); -- Construct + + local roll = math.random(1, 4); + local spell; + if ( roll == 1 ) then + spell = 1080; -- Gas Leak + elseif ( roll == 2 ) then + spell = 1081; -- Deathfog IV + elseif ( roll == 3 ) then + spell = 1082; -- Biomelt IX + elseif ( roll == 4 ) then + spell = 1083; -- Liquid Hydrokill + end + behe:CastToNPC():AddAISpell(0, spell, 1, 0, -1, -150); + + eq.set_timer("depop", 1200000, behe); + eq.set_timer("boundscheck", 2000, behe); + woken = true; + eq.debug("Behemoth awakened"); + eq.csr_notice("PoInnovation Behemoth awakened"); + end + end +end + +function ControllerSignal(e) + if ( e.signal == 1 ) then + eq.set_timer("wake", WAKE_TIME); + end +end + +function BehemothSpawn(e) + woken = false; + kills = 0; +end + +function SpawnWave() + local loc, grid, mob; + for _, t in ipairs(WAVE_SPAWNS) do + loc = math.random(1, 6); + if ( #t == 8 ) then + grid = t[math.random(7, 8)]; + else + grid = t[7]; + end + mob = eq.spawn2(CLOCKWORK_DEVICE_TYPE, grid, 0, t[loc].x, t[loc].y, 75, 0); + --eq.get_entity_list():OpenDoorsNear(mob:CastToNPC()); + end +end + +function BehemothCombat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function BehemothTimer(e) + if ( e.timer == "boundscheck" ) then + if ( e.self:GetX() > 1215 or e.self:GetX() < 1033 or e.self:GetY() > 120 or e.self:GetY() < -120 ) then + e.self:GMMove(e.self:CastToNPC():GetSpawnPointX(), e.self:CastToNPC():GetSpawnPointY(), e.self:CastToNPC():GetSpawnPointZ(), e.self:CastToNPC():GetSpawnPointH()); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + end + elseif ( e.timer == "depop" ) then + eq.depop_with_timer(); + woken = false; + eq.csr_notice("PoInnovation Behemoth despawned"); + end +end + +function BehemothDeathComplete(e) + eq.spawn2(GIWIN_FLAGGER_TYPE, 0, 0, 1013, 0, 2.1, 193); + eq.signal(GIWIN_FLAGGER_TYPE, e.killer:GetID()); -- e.killer for death_complete is somebody with kill rights, not death blow + woken = false; + eq.csr_notice(string.format("PoInnovation Behemoth slain by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end + +function BlowUp(e) + e.self:CastSpell(2321, e.self:GetID()); + eq.set_timer("depop", 100); + eq.signal(CONTROLLER_TYPE, 1); +end + +function DeviceWaypointArrive(e) + if ( e.self:GetX() > 1069 and e.self:GetX() < 1176 + and e.self:GetY() < 38 and e.self:GetY() > -39 + and (e.self:GetY() > 30 or e.self:GetY() < -30) + ) then + eq.set_timer("boom", 2000); + end +end + +function DeviceTimer(e) + if ( e.timer == "boom" ) then + eq.stop_timer("boom"); + if ( e.self:IsEngaged() ) then + exploders[e.self:GetID()] = true; + return + end + BlowUp(e); + elseif ( e.timer == "depop" ) then + eq.depop(); + end +end + +function DeviceCombat(e) + if ( not e.joined and exploders[e.self:GetID()] ) then + exploders[e.self:GetID()] = nil; + BlowUp(e); + end +end + +function DeviceDeath(e) + kills = kills + 1; + if ( exploders[e.self:GetID()] ) then + exploders[e.self:GetID()] = nil; + end +end + +function event_encounter_load(e) + eq.register_npc_event("Behemoth", Event.spawn, CONTROLLER_TYPE, ControllerSpawn); + eq.register_npc_event("Behemoth", Event.timer, CONTROLLER_TYPE, ControllerTimer); + eq.register_npc_event("Behemoth", Event.signal, CONTROLLER_TYPE, ControllerSignal); + + -- ensure spawn event executes + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(CONTROLLER_TYPE) ) then + eq.depop_with_timer(CONTROLLER_TYPE); + end + + eq.register_npc_event("Behemoth", Event.spawn, BEHEMOTH_TYPE, BehemothSpawn); + eq.register_npc_event("Behemoth", Event.combat, BEHEMOTH_TYPE, BehemothCombat); + eq.register_npc_event("Behemoth", Event.timer, BEHEMOTH_TYPE, BehemothTimer); + eq.register_npc_event("Behemoth", Event.death_complete, BEHEMOTH_TYPE, BehemothDeathComplete); + + eq.register_npc_event("Behemoth", Event.timer, CLOCKWORK_DEVICE_TYPE, DeviceTimer); + eq.register_npc_event("Behemoth", Event.combat, CLOCKWORK_DEVICE_TYPE, DeviceCombat); + eq.register_npc_event("Behemoth", Event.death, CLOCKWORK_DEVICE_TYPE, DeviceDeath); + eq.register_npc_event("Behemoth", Event.waypoint_arrive, CLOCKWORK_DEVICE_TYPE, DeviceWaypointArrive); +end diff --git a/poinnovation/encounters/EnduranceRoom.lua b/poinnovation/encounters/EnduranceRoom.lua new file mode 100644 index 0000000..3bd5438 --- /dev/null +++ b/poinnovation/encounters/EnduranceRoom.lua @@ -0,0 +1,398 @@ +local CONTROLLER_TYPE = 206094; -- Endurance_Listener +local KAEON_TYPE = 206045; -- #Researcher_Kaeon +local KELRIG_TYPE = 206204; -- #Assistant_Kelrig + +local CONTRAPTION_TYPE = 206199; -- a_manaetic_contraption +local GADGET_TYPE = 206201; -- a_manaetic_gadget +local MECH_TYPE = 206202; -- a_persistent_mechanization +local DEVICE1_TYPE = 206200; -- a_manaetic_device +local DEVICE2_TYPE = 206205; -- a_manaetic_device +local DEVICE3_TYPE = 206206; -- a_manaetic_device +local DEVICE4_TYPE = 206207; -- a_manaetic_device +local MOBS = { CONTRAPTION_TYPE, GADGET_TYPE, MECH_TYPE, DEVICE1_TYPE, DEVICE2_TYPE, DEVICE3_TYPE, DEVICE4_TYPE }; + +local WAVE_SPAWN_NUMS = { 3, 4, 6, 8, 4, 4, 8, 7 }; +local TOTAL_SPAWNS_NUM = 0; +for _, v in ipairs(WAVE_SPAWN_NUMS) do TOTAL_SPAWNS_NUM = TOTAL_SPAWNS_NUM + v; end +local WAVE_SPAWN_LOCS = { + { x = -405, y = -736 }, + { x = -267, y = -875 }, + { x = -315, y = -875 }, + { x = -320, y = -644 }, + { x = -175, y = -785 }, + { x = -405, y = -786 }, + { x = -265, y = -644 }, + { x = -175, y = -736 }, +}; +local ROOM1Z = 0; +local ROOM2Z = -172.9; + +local room = { + { occupied = false, wave = 0, runs = 0, mobs = {}, kills = 0 }, + { occupied = false, wave = 0, runs = 0, mobs = {}, kills = 0 } +}; + +function ControllerSignal(e) + + if ( e.signal == 1 or e.signal == 2 ) then + eq.set_timer("room"..e.signal.."wave", 120000); + eq.set_timer("reset"..e.signal, 1800000); + eq.stop_timer("room"..e.signal.."check"); + room[e.signal].occupied = true; + room[e.signal].mobs = {}; + room[e.signal].wave = 0; + room[e.signal].kills = 0; + eq.debug("Endurance Room "..e.signal.." starting round "..(room[e.signal].runs + 1), 1); + + elseif ( e.signal == 3 or e.signal == 4 ) then + local roomNum = e.signal - 2; + eq.set_timer("reset"..roomNum, 720000); + end +end + +function ControllerTimer(e) + + if ( e.timer == "room1wave" or e.timer == "room2wave" ) then + local r = 1; + if ( e.timer == "room2wave" ) then + r = 2; + end + + room[r].wave = room[r].wave + 1; + + if ( room[r].wave < 8 ) then + eq.set_timer(e.timer, (math.random(0, 21) + 107) * 1000); + else + eq.stop_timer(e.timer); + end + SpawnWave(r); + + elseif ( e.timer == "reset1" or e.timer == "reset2" ) then + local r = 1; + if ( e.timer == "reset2" ) then + r = 2; + end + eq.stop_timer(e.timer); + eq.stop_timer("room"..r.."wave"); + eq.set_timer("room"..r.."check", 3000000); + + if ( room[r].kelrig and room[r].kelrig.valid ) then + room[r].kelrig:Depop(); + room[r].kelrig = nil; + end + room[r].occupied = false; + room[r].mobs = {}; + room[r].runs = 0; + room[r].kills = 0; + room[r].wave = 0; + eq.debug("Endurance Room "..r.." now available", 1); + + elseif ( e.timer == "room1check" or e.timer == "room2check" ) then + eq.stop_timer(e.timer); + local r = 1; + if ( e.timer == "room2check" ) then + r = 2; + end + if ( not room[r].occupied and MobInTrial(r) ) then + eq.signal(CONTROLLER_TYPE, r); -- event starts up again if people stay inside ~hour + end + end +end + +function SpawnWave(r) + local numSpawns = WAVE_SPAWN_NUMS[room[r].wave]; + local loc, t, deviceSpawned, typeId, z, z2, mob; + local spawnLocs = {}; + + if ( numSpawns > 8 ) then + numSpawns = 8; + end + eq.debug("spawning "..numSpawns.." mobs in wave "..room[r].wave.." of room "..r, 2); + + if ( r == 1 ) then + z = 66; + z2 = ROOM1Z + 1.25; + else + z = -103; + z2 = ROOM2Z + 1.25; + end + + for i = 1, numSpawns do + + loc = math.random(1, 8); + while (spawnLocs[loc]) do + loc = math.random(1, 8); + end + + spawnLocs[loc] = true; + end + + for i = 1, 8 do + if ( spawnLocs[i] and WAVE_SPAWN_LOCS[i] ) then + t = math.random(1, 3); + if ( room[r].wave == 8 and not deviceSpawned ) then + t = 4; + deviceSpawned = true; + end + + if ( t == 1 ) then + typeId = CONTRAPTION_TYPE; + elseif ( t == 2 ) then + typeId = GADGET_TYPE; + elseif ( t == 3 ) then + typeId = MECH_TYPE; + elseif ( t == 4 ) then + if ( room[r].runs <= 1 ) then + typeId = DEVICE1_TYPE; + elseif ( room[r].runs == 2 ) then + typeId = DEVICE2_TYPE; + elseif ( room[r].runs == 3 ) then + typeId = DEVICE3_TYPE; + elseif ( room[r].runs >= 4 ) then + typeId = DEVICE4_TYPE; + end + end + + mob = eq.spawn2(typeId, 0, 0, WAVE_SPAWN_LOCS[i].x, WAVE_SPAWN_LOCS[i].y, z, 0); + table.insert(room[r].mobs, mob:GetID()); + mob:CastToNPC():MoveTo(-290, -760, z2, -1, true); + end + end +end + +function MobSpawn(e) + eq.set_timer("depop", 720000); +end + +function MobTimer(e) + + if ( e.timer == "depop" ) then + local myId = e.self:GetID(); + + for roomNum = 1, 2 do + for i, id in ipairs(room[roomNum].mobs) do + if ( id == myId ) then + table.remove(room[roomNum].mobs, i); + break; + end + end + end + eq.depop(); + end +end + +function MobCombat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function MobDeath(e) + local myId = e.self:GetID(); + local roomNum; + + for r = 1, 2 do + for i, id in ipairs(room[r].mobs) do + if ( id == myId ) then + table.remove(room[r].mobs, i); + room[r].kills = room[r].kills + 1; + roomNum = r; + break; + end + end + end + + if ( roomNum and room[roomNum].wave == 8 and room[roomNum].kills > (TOTAL_SPAWNS_NUM - 15) and e.self:GetCleanName() == "a manaetic device" ) then + local z = ROOM1Z + 9.376; + if ( roomNum == 2 ) then + z = ROOM2Z + 9.376; + end + room[roomNum].kelrig = eq.spawn2(KELRIG_TYPE, 0, 0, -196, -759, z, 192); + room[roomNum].runs = room[roomNum].runs + 1; + eq.signal(CONTROLLER_TYPE, roomNum + 2); + eq.debug("Endurance Room "..roomNum.." successfully finished", 1); + end +end + +function MoveGroup(zone, client, dist, x, y, z, h) + local group = client:GetGroup(); + local raid = client:GetRaid(); + + if ( group and group:GroupCount() > 0 ) then + for i = 0, 5 do + local member = group:GetMember(i):CastToClient(); + + if ( member.valid ) then + if ( member:CalculateDistance(client:GetX(), client:GetY(), client:GetZ()) < dist ) then + member:MovePC(zone, x, y, z, h*2); + if ( member:GetPet().valid and not member:GetPet():Charmed() ) then + member:GetPet():GMMove(x, y, z, 0); + end + end + end + end + + elseif ( raid and raid.valid ) then + local raidGroupID = raid:GetGroup(client:GetName()); + local member; + for i = 0, 71 do + member = raid:GetMember(i); + + if ( member and member.valid and raid:GetGroup(member:GetName()) == raidGroupID ) then + + if ( member:CalculateDistance(client:GetX(), client:GetY(), client:GetZ()) < dist ) then + member:MovePC(zone, x, y, z, h*2); + if ( member:GetPet().valid and not member:GetPet():Charmed() ) then + member:GetPet():GMMove(x, y, z, 0); + end + end + end + end + else + client:MovePC(zone, x, y, z, h*2); + if ( client:GetPet().valid and not client:GetPet():Charmed() ) then + client:GetPet():GMMove(x, y, z, 0); + end + end +end + +function MoveCorpses(roomNum) + local corpseList = eq.get_entity_list():GetCorpseList(); + local minZ, maxZ; + if ( roomNum == 1 ) then + minZ = -1; + maxZ = 500; + else + minZ = -500; + maxZ = -1; + end + + if ( corpseList ) then + for corpse in corpseList.entries do + if ( corpse.valid and corpse:GetY() < -500 and corpse:GetY() > -1000 + and corpse:GetX() < -150 and corpse:GetX() > -500 + and corpse:GetZ() < maxZ and corpse:GetZ() > minZ + ) then + if ( corpse:IsPlayerCorpse() ) then + corpse:MoveToGraveyard(); + end + end + end + end +end + +function MobInTrial(roomNum) + local mobList = eq.get_entity_list():GetMobList(); + local minZ, maxZ; + if ( roomNum == 1 ) then + minZ = -1; + maxZ = 500; + else + minZ = -500; + maxZ = -1; + end + + if ( mobList ) then + for mob in mobList.entries do + if ( mob.valid and mob:GetY() < -500 and mob:GetY() > -1000 + and mob:GetX() < -150 and mob:GetX() > -500 + and mob:GetZ() < maxZ and mob:GetZ() > minZ + ) then + if ( mob:IsClient() and not mob:CastToClient():GetGM() ) then + return true; + end + if ( mob:IsNPC() and not mob:IsPet() and mob:GetRace() ~= 127 and mob:GetRace() ~= 216 ) then -- invis man, Horse + return true; + end + end + end + end + return false; +end + +function KaeonSay(e) + if ( e.message:findi("hail") ) then + e.self:Say("Salutations. We have been monitoring your performance in the scrap yards. Your ability seems to rival your physical capabilities. We would like to test your endurance and mental abilities further. Would you comply to endurance testing?"); + + elseif ( e.message:findi("comply to endurance testing") ) then + e.self:Say("Excellent. We would like to test a maximum of six at one time. Are you ready to begin testing?"); + + elseif ( e.message:findi("ready") ) then + + local room1available = not MobInTrial(1); + local room2available = not MobInTrial(2); + if ( room[1].occupied ) then + room1available = false; + end + if ( room[2].occupied ) then + room2available = false; + end + + if ( not room1available and not room2available ) then + e.self:Say("Sorry that testing lab is currently resetting from previous use."); + else + + local roomNum = 1; + local z = 5; + if ( not room1available ) then + roomNum = 2; + z = -165; + end + e.self:Say("Excellent I will now send you down to the testing bay. Assistant Kelrig will be there shortly with further instructions."); + MoveCorpses(roomNum); + MoveGroup(206, e.other:CastToClient(), 150, -274, -760, z, 0); + eq.signal(CONTROLLER_TYPE, roomNum); + end + end +end + +function KelrigSay(e) + + local roomNum; + if ( room[1].kelrig and room[1].kelrig:GetID() == e.self:GetID() ) then + roomNum = 1; + elseif ( room[2].kelrig and room[2].kelrig:GetID() == e.self:GetID() ) then + roomNum = 2; + end + + if ( e.message:findi("hail") ) then + if ( not roomNum or room[roomNum].runs < 2 ) then + e.self:Say("Interesting, your abilities have shown you to be sufficient. We would like to continue testing, are you ready to continue or would you like to quit here?"); + elseif ( room[roomNum].runs == 2 ) then + e.self:Say("Once again you have provided sufficient data. More data is required, are you ready to continue or do you need to quit here?"); + elseif ( room[roomNum].runs == 3 ) then + e.self:Say("Data shows you working above the standards of other mortals, what is the extra factor to your success? You must continue, are you ready or do you need to quit here?"); + elseif ( room[roomNum].runs > 3 ) then + e.self:Say("Excellent. This data will be of great use to us. Thank you for your time. Goodbye."); + e.self:CastSpell(1090, e.other:GetID()); -- Mechinetic Dislocation IV + end + + elseif ( roomNum and e.message:findi("ready") ) then + e.self:Say("Your cooperation is appreciated, prepare yourselves."); + + room[roomNum].kelrig = nil; + eq.signal(CONTROLLER_TYPE, roomNum); + e.self:Depop(); + + elseif ( e.message:findi("quit") ) then + e.self:Say("We shall process the data that you have afforded us. Good bye."); + e.self:CastSpell(1090, e.other:GetID()); -- Mechinetic Dislocation IV + end +end + +function event_encounter_load(e) + eq.register_npc_event("EnduranceRoom", Event.signal, CONTROLLER_TYPE, ControllerSignal); + eq.register_npc_event("EnduranceRoom", Event.timer, CONTROLLER_TYPE, ControllerTimer); + + eq.register_npc_event("EnduranceRoom", Event.say, KAEON_TYPE, KaeonSay); + eq.register_npc_event("EnduranceRoom", Event.say, KELRIG_TYPE, KelrigSay); + + for _, id in ipairs(MOBS) do + eq.register_npc_event("EnduranceRoom", Event.spawn, id, MobSpawn); + eq.register_npc_event("EnduranceRoom", Event.timer, id, MobTimer); + eq.register_npc_event("EnduranceRoom", Event.combat, id, MobCombat); + eq.register_npc_event("EnduranceRoom", Event.death, id, MobDeath); + end +end diff --git a/poinnovation/encounters/JunkBeast.lua b/poinnovation/encounters/JunkBeast.lua new file mode 100644 index 0000000..97ad104 --- /dev/null +++ b/poinnovation/encounters/JunkBeast.lua @@ -0,0 +1,67 @@ +--[[ + +Junk Beast has spawn behavior that must be scripted to replicate as the hardcoded spawning +mechanisms do not function as Sony's does. + +Junk Beast has two possible spawns: + +From a random location in the northern central north/south patrol route or in a box region +where the north/south route bisects, in the northern region of the zone. + +If he spawns in the north/south patrol route, he doesn't stay there. He instead moves to +the short patrol route near the mech dragon room and patrols that. He never goes back to +his spawn area. + +If he spawns in the box, he roams almost the entire zone circuit, minus the zone-in area. +The spawn point is random inside this box. + +]] + +local NPC_TYPES = { + 206060, -- #Junk_Beast + 206036, -- an_erratic_model + 206047, -- a_busted_power_carrier + 206028, -- a_defective_clockwork + 206020 -- a_scrounging_clockwork +}; + +function SpawnEvent(e) + + local id = e.self:CastToNPC():GetSpawnPointID(); + + if ( id == 345196 ) then -- from a random waypoint spawn using grid 4 + eq.set_timer("type1", 3000); + + elseif ( id > 700000 ) then -- this spawn is from a roambox random spawn; these spawn IDs are > 700000 + eq.set_timer("type2", 3000); + end +end + +function TimerEvent(e) + -- have to use a timer because grids stupidly don't load until after spawn event when zone first boots + + if ( e.timer == "type1" ) then + eq.stop_timer("type1"); + + e.self:AssignWaypoints(2); + e.self:CastToNPC():UpdateWaypoint(4); + e.self:CastToNPC():MoveTo(-690, 962, -44.5, -1, true); + + elseif ( e.timer == "type2" ) then + eq.stop_timer("type2"); + + e.self:AssignWaypoints(9); + if ( math.random(1, 2) == 1 ) then + e.self:CastToNPC():UpdateWaypoint(17); + else + e.self:CastToNPC():UpdateWaypoint(153); + end + end +end + +function event_encounter_load(e) + for i, id in ipairs(NPC_TYPES) do + eq.register_npc_event("JunkBeast", Event.spawn, id, SpawnEvent); + eq.register_npc_event("JunkBeast", Event.timer, id, TimerEvent); + end +end diff --git a/poinnovation/player.lua b/poinnovation/player.lua new file mode 100644 index 0000000..d1abba0 --- /dev/null +++ b/poinnovation/player.lua @@ -0,0 +1,28 @@ +function event_enter_zone(e) + if ( e.self:GetY() < -500 and e.self:GetY() > -1000 and e.self:GetX() < -150 and e.self:GetX() > -500 ) then + -- move player out of trial areas if they log in from camping there + e.self:MovePC(206, 270, 518, -48, 90*2); + end +end + +function event_click_door(e) + local id = e.door:GetDoorID(); + + if ( id == 7 ) then + local qglobals = eq.get_qglobals(e.self); + if ( qglobals.poi_door ) then + e.door:ForceOpen(e.self); + end + + elseif ( id == 145 ) then + local qglobals = eq.get_qglobals(e.self); + if ( qglobals.zebuxoruk == "2" and e.self:HasItem(29165) ) then + eq.set_global("time", "1", 5, "F"); + e.self:SetZoneFlag(219); + e.self:SetZoneFlag(223); + e.self:Message(15, "You have received a character flag!"); + e.self:Message(257, "The ages begin to tear through your body. You wake to find yourself in another time."); + e.self:MovePC(219, 223, 140, 11, 94); + end + end +end diff --git a/poinnovation/script_init.lua b/poinnovation/script_init.lua new file mode 100644 index 0000000..ee74ae7 --- /dev/null +++ b/poinnovation/script_init.lua @@ -0,0 +1,3 @@ +eq.load_encounter("Behemoth"); +eq.load_encounter("JunkBeast"); +eq.load_encounter("EnduranceRoom"); diff --git a/pojustice/#Jacosh_Steldenn.lua b/pojustice/#Jacosh_Steldenn.lua new file mode 100644 index 0000000..1eb249d --- /dev/null +++ b/pojustice/#Jacosh_Steldenn.lua @@ -0,0 +1,12 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Jacosh Steldenn (201080) +---------------------------------------------------------------------- + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("looks down, his dark eyes burrowing into yours. 'My prison is not one for casual visits, " .. e.other:Race() .. ". What is your business here? Do you seek an audience with the Tribunal?'"); + elseif(e.message:findi("audience with the Tribunal")) then + e.self:Say("nods slightly. 'You shall find them through this gateway. I trust you shall find their knowledge vast, and their justice...' his lips curl into a sneer, 'quite fitting."); + end +end diff --git a/pojustice/#Mavuin.lua b/pojustice/#Mavuin.lua new file mode 100644 index 0000000..cea878f --- /dev/null +++ b/pojustice/#Mavuin.lua @@ -0,0 +1,29 @@ +function event_say(e) + local qglobals = eq.get_qglobals(e.self, e.other); + local mavuinFlag = tonumber(qglobals["mavuin"]) or 0; + + if ( e.message:findi("hail") ) then + + if ( mavuinFlag >= 2 ) then + e.other:Message(0, "Mavuin tells you, 'So you have pleaded my case to the Tribunal, I am most thankful. I hope that they will listen to my case soon and release me. The knowledge that I promised you is this. The followers in the Plane of Tranquility are trying to find information on what has happened to Zebuxoruk. What I know is that he has been captured for a second time. If you want to find out more information I believe you should seek an audience with Karana and Mithaniel Marr. I can only assume that they were present at the time of his capture and know why this has taken place. Also seek from Marr a way to translate the divine language. Only with it can you understand the writing of the gods. There is no more that I can tell you, but thank you once again for your attempt in returning my freedom.'"); + if ( mavuinFlag == 2 ) then + eq.set_global("mavuin", "3", 5, "F"); + end + e.other:Message(15, "You have received a character flag!"); + + elseif ( mavuinFlag == 0 ) then + e.other:Message(0, "Mavuin strains his eyes to look up at you in disbelief, then reaches down into a rusted vent and pulls out a journal. 'Please I implore you, take word to the Tribunal. I have done nothing wrong, yet I have been sentenced to eternity in this cell. I wish to present all of the [information] about my case to them. They must listen to my plea if they are truly the gods of justice.'"); + + elseif ( mavuinFlag == 1 ) then + e.other:Message(0, "Mavuin tells you, 'Please it is the only hope that I live for. Deliever me from this horrid fate. Take word of my desire to plead my case before the Tribunal!'"); + end + + elseif ( mavuinFlag <= 1 and e.message:findi("information") ) then + e.other:Message(0, "Mavuin tells you, 'I know it has been said for years before me, and will be said for years after me, but I was truly framed for my crime. You see the gods feared the knowledge that I carry with me. So to prevent me passing this knowledge to others, it was set up to show that I had plotted to murder one of the other elders. Please go before the tribunal and plead my case. If you do this I will share what I know with you, I apologize for holding it against you, but I am desperate to be released.'"); + if ( mavuinFlag == 0 ) then + eq.set_global("mavuin", "1", 5, "F"); + end + e.other:Message(15, "You have received a character flag!"); + end + +end diff --git a/pojustice/A_violet_rose.lua b/pojustice/A_violet_rose.lua new file mode 100644 index 0000000..8b2f0c2 --- /dev/null +++ b/pojustice/A_violet_rose.lua @@ -0,0 +1,8 @@ +function event_combat(e) + e.self:Emote("lies in the middle of the floor. It seems to call to you in a faint whisper. As you get closer, it suddenly explodes in a cloud of thick black smoke."); + eq.spawn2(201517, 0, 0, 116, -308, -0.259, 33); -- Wraith_of_Domagr + eq.spawn2(201517, 0, 0, 107, -274, -0.259, 81); + eq.spawn2(201517, 0, 0, 158, -274, -0.259, 164); + eq.spawn2(201517, 0, 0, 164, -306, -0.259, 213); + eq.depop_with_timer(); +end diff --git a/pojustice/Agent_of_The_Tribunal.lua b/pojustice/Agent_of_The_Tribunal.lua new file mode 100644 index 0000000..23618a8 --- /dev/null +++ b/pojustice/Agent_of_The_Tribunal.lua @@ -0,0 +1,20 @@ +local SPAWNPOINT_IDS = { [345314] = 1, [345318] = 2, [345313] = 3, [345315] = 4, [345316] = 5, [345317] = 6 }; +local CONTROLLER_IDS = { 201512, 201511, 201513, 201514, 201515, 201510 }; + +function event_say(e) + local trialNum = SPAWNPOINT_IDS[e.self:GetSpawnPointID()]; + + if ( e.message:findi("hail") ) then + e.self:Say("Are you ready to [return]?"); + + elseif ( e.message:findi("return") ) then + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(CONTROLLER_IDS[trialNum]) ) then + e.self:Say("The trial is yet underway. You must wait."); + else + e.other:CastToClient():MovePC(201, 473, 685, 10, 0); + if ( e.other:GetPet().valid and not e.other:GetPet():Charmed() ) then + e.other:GetPet():GMMove(473, 685, 10, 0); + end + end + end +end diff --git a/pojustice/Al-Corisalm.lua b/pojustice/Al-Corisalm.lua new file mode 100644 index 0000000..24204f6 --- /dev/null +++ b/pojustice/Al-Corisalm.lua @@ -0,0 +1,32 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Al`Corisalm (201419) +---------------------------------------------------------------------- + +function event_say(e) + if(e.language == 11 and e.other:GetLanguageSkill(11) >= 100) then + if(e.message:findi("Hail")) then + e.self:Say("Hah!' He chuckles, a disembodied and deep laugh that sounds as if it comes from the cell-floor itself. '" .. e.other:Race() .. "! Such a delight to see one other than Steldenn. Have you [escaped] this place?",11); + elseif(e.message:findi("escaped")) then + e.self:Say("My plans for escape are detailed. I but await the perfect moment, that golden opportunity, that ray of light that shines but once in forever. If nothing else, I have time to make plans! Such plans, worthy of the Great Al`Corisalm! I imagine that you are anxious for me to [tell] you of such things.' You feel a warmth on your face, as if the figure has come particularly close.",11); + elseif(e.message:findi("tell")) then + e.self:Say("I shall!' He laughs and you hear the clap of hands. 'Of course! Before I was brought to this place, I was an... Advisor, of sorts. The Great Al`Corisalm, renowned traveler, collector, theologian and revered sorcerer of Erud. He was a wise one, Erud. To take on my counsel and to listen as raptly to my sage advice as you do now... a rare wisdom did he possess. Whether in war, or in peace, his ear was my captive audience. Such an [audience], ah me...",11); + elseif(e.message:findi("audience")) then + e.self:Say("Can the sun be held responsible for its warmth, with which it nurtures the crops and brings life unto the world? Can the mountains be held accountable for being strong, the bones of the earth? Of course they cannot, it is but their nature. So it is with my wisdom. The Great Al`Corisalm is wise, as the sun is warm, as the mountains are sturdy. All the more painful is my [plight], as you might well imagine.",11); + elseif(e.message:findi("plight")) then + e.self:Say("Being a master of the refined arts, my conclusions are based on facts. A pure fact, perfect and true, is an atomic quantity of beauty itself. I once said that on a speech to the Low Men, across the Wide Sea. All of my advice, for good or ill, can only be based on the data which I collect. The veracity of such information is subject only to those that procure it, I am sure that you [agree].",11); + elseif(e.message:findi("agree")) then + e.self:Say("There are those that sought to bring Erud low. In his time of greatest struggle, he fought with the ignorant, the clumsy, and the bereft of wisdom. It is in this time that he came to me with a question, a decision so momentous that he could not act without first consulting the Great Al'Corisalm. His construction of his new city was to be a testament to the pure wisdom of our kind, and of course required very particular and precise requirements for the [location] of its foundation.",11); + elseif(e.message:findi("location")) then + e.self:Say("Ahh..' He coughs, and a moment of silence passes. You feel the chill air of the surroundings, as you try to pin-point the location of the disembodied voice which then resumes. 'Erud's new city needed magical channels, certain qualities of the natural bedrock which conveyed that power innate to the earth itself. It is this power that I proposed to harness in order to drive our new inventions: our water purification systems, our transport systems, all manner of civic advances that would make the new city a beacon of civility in the midst of the Low Men. So, I sought data from those whom know the [natural powers] so well.",11); + elseif(e.message:findi("natural powers")) then + e.self:Say("Geomancers are they, to us. Druids are they, to the Low Men. Yet, I was tricked. Those that would have brought Erud low placed an agent in the forests, posing as a geomancer. To compound treachery upon treachery it was my turn-coat friend, Shadalis, that led me to believe this geomancer was to be trusted. With innocent motivation, I collected the necessary information from this agent of the Dark Ones. Believing it, trusting my friend Shadalis, I used the geomancer's advice to advise Erud. It proved to be my [undoing].",11); + elseif(e.message:findi("undoing")) then + e.self:Say("To live a life according to the tenets of wisdom, to insist upon rational proof throughout one's entire existence, and then to throw it all away by believing a traitor that one took to be a friend... it is something for which the Great Al`Corisalm will carry in his heart forever. Erud began construction of his city based upon my flawed advice and, soon enough, the evidence of the Dark Ones' trickery became obvious. The powers of the earth that we sought to harness turned against us, causing anarchy, [chaos].",11); + elseif(e.message:findi("chaos")) then + e.self:Say("Such events are not for me to describe to you, there are some things best left untold. When the final dust settled upon the earth, it was to me that Erud came. To me that he apportioned responsibility. He turned me over to the judges of the Low Men. They banished my form to the ether, and in turn passed on my spirit here, to the Tribunal, to be judged. It is here that I await trial at the hands of the Judges Which Have Always Been. That is, unless I escape...' The voice trails off into silence. A shiver passes through you.",11); + end + else + e.self:Emote('does not appear to understand you.'); + end +end \ No newline at end of file diff --git a/pojustice/Alkus_McNeeson.lua b/pojustice/Alkus_McNeeson.lua new file mode 100644 index 0000000..0f6edfc --- /dev/null +++ b/pojustice/Alkus_McNeeson.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("produces a dagger from the folds of his clothing and scowls at you. 'Who are you? What are you doing here? Did [they] send you?'"); + elseif(e.message:findi("they")) then + e.self:Say("Don't play dumb! I knew that they would send killers, perhaps this means my [punishment] has ended. Perhaps now I can know death?"); + elseif(e.message:findi("punishment")) then + e.self:Emote("judges you warily. 'Hmm, you don't look much like one of their [killers]."); + elseif(e.message:findi("killers")) then + e.self:Say("I won't say their name. I was one of them, and I am still honor bound to secrecy. Just know that on Norrath there are good reasons to fear the [shadows]."); + elseif(e.message:findi("shadows")) then + e.self:Say("I was one of them, born and bred to be an assassin. It was my life. In our circle, failure is death, but [what I did] was worse than failure so I wasn't granted the release of the Eternal Slumber."); + elseif(e.message:findi("what did you do")) then + e.self:Say("I betrayed the sect. I protected, still [protect], my love. She failed an assignment, and in the infinite wisdom of the council they sent me to exact our justice on her. It was to be my final test, failure would mean death, as it does always, success would mean ascension to the council. I knew that were I simply to fail, it would only be a matter of time before one of my brethren would be successful, then not only would my death be in vain, but I would see my love too soon in the afterworld."); + elseif(e.message:findi("protect")) then + e.self:Say("I hid her from the sect. They were infuriated with my betrayal, and they needed to make an example of me. Instead of killing me, they sent me to the wracks, there I learned the true meaning of pain, they offered me a swift death for the [location] of my love, but I would not break, I could not break."); + elseif(e.message:findi("location")) then + e.self:Say("They never found her, she died of natural causes many years later. The whole time I kept her secret, kept her hidden. When word of her death reached the council they knew they failed, and they decided death was too kind for me, so they sent me here for an eternity... Never to die, never to meet my love in the beyond. I have been here longer than I can remember, and will be here longer than I can perceive. My only hope is that one day they will see fit to grant me death, to free me from this prison."); + end +end diff --git a/pojustice/Aneya_Mallar.lua b/pojustice/Aneya_Mallar.lua new file mode 100644 index 0000000..1f55bc7 --- /dev/null +++ b/pojustice/Aneya_Mallar.lua @@ -0,0 +1,8 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Aneya Mallar (201291) +---------------------------------------------------------------------- + +function event_say(e) + e.self:Emote("glares at you and does not respond."); +end diff --git a/pojustice/Archpriest_Del-Maque.lua b/pojustice/Archpriest_Del-Maque.lua new file mode 100644 index 0000000..41529c8 --- /dev/null +++ b/pojustice/Archpriest_Del-Maque.lua @@ -0,0 +1,22 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Archpriest Del`Maque (201333) +---------------------------------------------------------------------- + +function event_say(e) + if(e.language == 17 and e.other:GetLanguageSkill(17) >= 100) then + if(e.message:findi("Hail")) then + e.self:Say("Hmmm.' He motions to his two followers to be still. 'This one will not trouble us, I think.' He turns to face you. The years have not been kind to his ancient face, but his age does not bring weakness. He eyes you with a fierce gaze. 'From the expression on its face, it doesn't even seem to [understand] what I'm saying.",17); + elseif(e.message:findi("understand")) then + e.self:Say("What!' He grins a malicious smile, his yellowing tongue flicking out across his teeth. 'Perhaps ye're not so ignorant, after all. What brings ye here? 'Tis usually only the damned guards that I see, bringing me that vermin-feed that they call nourishment. Even the [Mistress] provided better than this.",17); + elseif(e.message:findi("Mistress")) then + e.self:Say("Fool...' He sniggers to himself. 'Well, that's what she called herself, the silly wench. Trying to build herself a little city of her own, what arrogance...' From the folds of his thick robes, he reveals a small crystal sphere. 'Nothing that the [eyes] of Del`Maque cannot see, ye ken.",17); + elseif(e.message:findi("eyes")) then + e.self:Say("The eyes of the dead are everywhere, and with the correct devices and words...' He passes his hand over the sphere and clouds appear within, as if a fog had suddenly awoken. He looks at you with ancient, lidded eyes that glitter with amusement. 'Try to set up her own little city... right in the mountains, so she did. All the terrain of the Lavastorm Mountains itself couldn't halt the advance of the angry King. I wonder how the King [found out]...",17); + elseif(e.message:findi("found out")) then + e.self:Say("Guess!' He grins. 'How do ye think? 'Tis a foolish woman indeed that trusts the heart of Del`Maque. I do hope that her downfall was not too... crushing.' He laughs quietly. 'Of course, treachery to a witch is strictly against the letter of the law, ye ken. I don't doubt that any reasonable judge with absolve me of all guilt. If thy witch is a traitor, how else can ye act?' He replaces the sphere within his robes. 'Poor, dearest, Najena...",17); + end + else + e.self:Emote('does not appear to understand you.'); + end +end diff --git a/pojustice/Baxo_Numbalin.lua b/pojustice/Baxo_Numbalin.lua new file mode 100644 index 0000000..54dc9b0 --- /dev/null +++ b/pojustice/Baxo_Numbalin.lua @@ -0,0 +1,10 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Baxo Numbalin (201282) +---------------------------------------------------------------------- + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("furrows his brow and sighs heavily, his grief and boredom more than apparent. The gnome looks up at you with deadened eyes and a veil of unfathomable sadness. He opens his mouth as if to speak, but remains silent and turns away, staring once more upon the unvarnished walls of his cell."); + end +end diff --git a/pojustice/Bimlee_Mellswar.lua b/pojustice/Bimlee_Mellswar.lua new file mode 100644 index 0000000..d9f2c2d --- /dev/null +++ b/pojustice/Bimlee_Mellswar.lua @@ -0,0 +1,8 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Bimlee Mellswar (201387) +---------------------------------------------------------------------- + +function event_say(e) + e.self:Emote("glares at you and does not respond."); +end diff --git a/pojustice/Brugga.lua b/pojustice/Brugga.lua new file mode 100644 index 0000000..ee24360 --- /dev/null +++ b/pojustice/Brugga.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.language == 19 and e.other:GetLanguageSkill(19) >= 100) then + if(e.other:GetFaction(e.self) < 5) then + if(e.message:findi("Hail")) then + e.self:Say("Ragh!' His eyes you with pure hatred. 'Indigo, my dark bowels. . . treachery it is, treachery against the clan. Gharol paid! Paid for it!' He shows you his hands and grins maliciously. 'Paid, he did!",19); + elseif(e.message:findi("rare disease")) then + e.self:Emote("snorts 'You have someone that needs killing, or someone that needs saving? It not matter to Brugga, but you smell of a hero, so Brugga think there someone need saving. Well Brugga have time, so you give Brugga the disease and Brugga see."); + end + else + e.self:Say("I wont deal with one such as you...",19); + end + else + e.self:Emote('does not appear to understand you.'); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 29302}, 0)) then + e.self:Emote("dips his finger into the flask and tastes the liquid, 'Hmm, someone start work on this already and it still vile. This nothing that Brugga have trouble to cure, we just need stronger toxins to drive this one back. Brugga need a gnome made crawlerpoison, a venom sack from the Terror Matriarch, and the stinger from a Nettling Wraith, Brugga make you a cure."); + e.other:QuestReward(e.self,0,0,0,0,29302); + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 29297,item2 = 29298,item3 = 29299})) then + e.self:Say("Yes, Brugga work with this.' Brugga chants and makes strange gestures while mixing the objects in his mortar and pestle. 'Ok, Brugga finished now. You have your cure, give cure with the bile and that will heal. You go now, Brugga done talking.",19); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,29295,100000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/pojustice/Captain_Nyra.lua b/pojustice/Captain_Nyra.lua new file mode 100644 index 0000000..5ca5b6d --- /dev/null +++ b/pojustice/Captain_Nyra.lua @@ -0,0 +1,10 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Captain Nyra (201350) +---------------------------------------------------------------------- + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("glares coldly upon ".. e.other:GetName() .. ", a seemingly deadened emotion of hate briefly resurrected in her gaze, 'Move along, traveler. We are nothing for your interests -- merely prisoners. Stay and observe us if you will -- perhaps one day, you will join us."); + end +end diff --git a/pojustice/Drazl.lua b/pojustice/Drazl.lua new file mode 100644 index 0000000..877b71d --- /dev/null +++ b/pojustice/Drazl.lua @@ -0,0 +1,22 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Drazl (201304) +---------------------------------------------------------------------- + +function event_say(e) + if(e.language == 13 and e.other:GetLanguageSkill(13) >= 100) then + if(e.message:findi("Hail")) then + e.self:Say("Well ventured, ".. e.other:GetName() .. ". You seem afraid... I assure you, there is no need. Drazl may have been bad once, but no more. No more badness. You seem far too nice, far too nice by far. Drazl wouldn't harm a fly. Not a hair on your dainty head. Not any more. [Those days] have long gone.",13); + elseif(e.message:findi("Those days")) then + e.self:Say("The fools that follow the King so blindly... they will soon see! Though I may be captive, here, my work shall go on! My peers are working even now on raising our army... raising our army from the grave! So comfortably, he sits, the King. So comfortably, his [revolution] but a memory. Soon, he shall be less smug, it is my guarantee.",13); + elseif(e.message:findi("revolution")) then + e.self:Say("His has not always been in a position of power, but when the revolutions come the mob will blindly follow any fool. Fool, I say! None more foolish than King Dergzl. His power seized when the masses overthrew their masters... he shall soon know the feeling. When the [wheels] that I have set in motion finish their turning, he shall know!",13); + elseif(e.message:findi("wheels")) then + e.self:Say("There are those amongst his... subjects - gah, how I hate that word! - who cannot stand his suffocating and absolute rule. We brave few, we brave and daring few... we seem so small in numbers, but we have the biggest [resource] of all from which to draw our armies.",13); + elseif(e.message:findi("resource")) then + e.self:Say("Why, the grave itself! My colleagues have made certain pacts and bargains. I wish only that I could see it with my own eyes. Such is my real punishment, that I cannot see the imminent downfall of Dergzl when the armies formed of his revived ancestors come to slay him and throw him from his throne. Instead... instead, here I rot. Not bad any more. Not bad at all, am I. Merely disappointed that when the forces of undeath come, I shall not be there to lead them. Lead them to a new Guk, a free Guk!",13); + end + else + e.self:Emote('does not appear to understand you.'); + end +end diff --git a/pojustice/Dremekal.lua b/pojustice/Dremekal.lua new file mode 100644 index 0000000..9420e82 --- /dev/null +++ b/pojustice/Dremekal.lua @@ -0,0 +1,8 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Dremekal (201306) +---------------------------------------------------------------------- + +function event_say(e) + e.self:Emote("snorts and glares down upon you, his human-like eyes blazing with contempt, 'How dare you approach and speak with us! Do you think that in this place, our bias toward you has fallen? Do you believe that we are creatures whose convictions have changed to allow recognition, let alone camaraderie to your kind? We are not as desperate and easy to break as the children of the gods that have been confined to this place. Our tales are for the judgment of the Tribunal and them alone! Begone from this place! Seek out your own kind who dwell to the north! They may have the tales of woe and tragedy that your kind disgustingly amuse yourselves with.'"); +end diff --git a/pojustice/Dumann_the_Quick.lua b/pojustice/Dumann_the_Quick.lua new file mode 100644 index 0000000..a02724c --- /dev/null +++ b/pojustice/Dumann_the_Quick.lua @@ -0,0 +1,10 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Dumann the Quick (201210) +---------------------------------------------------------------------- + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Ye rancid fool! What kind of imbecile do ye think me to be? Justice! Hah!' A distant look crosses his face. 'There ain't no such thing as justice. 'Specially not for the likes of me. They say ye time comes - well our time came!"); + end +end diff --git a/pojustice/Elzabetha_Ianthe.lua b/pojustice/Elzabetha_Ianthe.lua new file mode 100644 index 0000000..bf76531 --- /dev/null +++ b/pojustice/Elzabetha_Ianthe.lua @@ -0,0 +1,10 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Elzabetha Ianthe (201353) +---------------------------------------------------------------------- + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("gives a solemn nod and speaks in a hushed voice, 'You should not wander this place, ".. e.other:GetName() .. ". We are creatures condemned for eternity in this limbo. Some of us await our oblivion while others dwell in an infinite prison. We are all criminals here -- some greater than others, but all have committed crimes that their people could not judge. The Tribunal will judge those whose mortal crimes fall beyond the capabilities of their people to pass punishment upon. Do not pity us, ".. e.other:GetName() .. " and do be careful in your travels amongst us. To speak with us could lead to invoking the Tribunal's wrath upon us further. Many are recently free of solitary confinement and to send them there again would be unfathomably cruel."); + end +end \ No newline at end of file diff --git a/pojustice/Evia_N-Cizai.lua b/pojustice/Evia_N-Cizai.lua new file mode 100644 index 0000000..3efdcb6 --- /dev/null +++ b/pojustice/Evia_N-Cizai.lua @@ -0,0 +1,18 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Evia N`Cizai (201307) +---------------------------------------------------------------------- + +function event_say(e) + if(e.language == 11 and e.other:GetLanguageSkill(11) >= 100) then + if(e.message:findi("Hail")) then + e.self:Say("The darkest days are yet to come. Though I may be interred within this vile prison, my forces shall continue to despoil! I am proud of my heritage, and my lineage shall continue long into the Age of [Dark Paths], you shall see!",11); + elseif(e.message:findi("Dark Paths")) then + e.self:Say("You shall see... foolish, mortal ".. e.other:GetName() .. ". When your families are burned at the stake, and my armies raze your cities and slaughter your animals... then you shall see! Just like they did in Perronium!' She throws back her head and lets loose a laugh of purest, unadulterated evil. 'I shall bathe in the blood of the weak, just as I did in [Perronium]!",11); + elseif(e.message:findi("Perronium")) then + e.self:Emote("grins and regards you with malice. 'Your time will come.",11); + end + else + e.self:Emote('does not appear to understand you.'); + end +end diff --git a/pojustice/Exiled_Officer_of_Marr.lua b/pojustice/Exiled_Officer_of_Marr.lua new file mode 100644 index 0000000..653d107 --- /dev/null +++ b/pojustice/Exiled_Officer_of_Marr.lua @@ -0,0 +1,22 @@ +function event_spawn(e) + eq.set_timer("depop", 120000); + eq.set_timer("fd", 100); -- have to set appearance change on a timer after spawning because the server code is retarded +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + elseif(e.timer == "fd") then + eq.stop_timer("fd"); + e.self:SetAppearance(3); -- FD + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29281}, 0)) then + e.other:QuestReward(e.self,{items = {29294,29281}}); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/pojustice/Exiled_Soldier_of_Marr.lua b/pojustice/Exiled_Soldier_of_Marr.lua new file mode 100644 index 0000000..d90ec5b --- /dev/null +++ b/pojustice/Exiled_Soldier_of_Marr.lua @@ -0,0 +1,22 @@ +function event_spawn(e) + eq.set_timer("depop", 120000); + eq.set_timer("fd", 100); -- have to set appearance change on a timer after spawning because the server code is retarded +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + elseif(e.timer == "fd") then + eq.stop_timer("fd"); + e.self:SetAppearance(3); -- FD + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29281}, 0)) then + e.other:QuestReward(e.self,{items = {29293,29281}}); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/pojustice/Exiled_Trooper_of_Marr.lua b/pojustice/Exiled_Trooper_of_Marr.lua new file mode 100644 index 0000000..376d415 --- /dev/null +++ b/pojustice/Exiled_Trooper_of_Marr.lua @@ -0,0 +1,22 @@ +function event_spawn(e) + eq.set_timer("depop", 120000); + eq.set_timer("fd", 100); -- have to set appearance change on a timer after spawning because the server code is retarded +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + elseif(e.timer == "fd") then + eq.stop_timer("fd"); + e.self:SetAppearance(3); -- FD + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29281}, 0)) then + e.other:QuestReward(e.self,{items = {29292,29281}}); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/pojustice/Genni_Dulzane.lua b/pojustice/Genni_Dulzane.lua new file mode 100644 index 0000000..27b9096 --- /dev/null +++ b/pojustice/Genni_Dulzane.lua @@ -0,0 +1,20 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Genni Dulzane (201410) +---------------------------------------------------------------------- + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("turns her face to you; the expression is one of compassion. 'Hail to thee, ".. e.other:GetName() .. ". 'Tis a fearful dread that ye carry, fearful indeed. I am not fearful any more. In death, one learns tranquility. Did not the old ones of Quellious always put it so? Let me stay your fears; wouldst ye [talk a while]?"); + elseif(e.message:findi("talk a while")) then + e.self:Say("It is well, the librarians used to say that we were to learn from history. Learn well!' She chuckles, the laugh a hollow sound carried away on the chill breeze. 'Together, we three were brought to this place. Much like the others here, we were innocent all three. Is not every one of us innocent, even in crime? Ours is a Fate [cheated], though."); + elseif(e.message:findi("cheated")) then + e.self:Say("Aye, cheated, but in tranquility even the affairs of men mean naught, know ye that. Waiting in Judgment, waiting for the Law Absolute, we were. Waiting here...' She waves her hand at the surroundings, and you detect a barely audible sigh escape her lips. 'Waiting and waiting. To eternal imprisonment we were resigned, for our [crimes]. All three of us, our merry band of seekers. In life, we were petulant, eager."); + elseif(e.message:findi("crimes")) then + e.self:Say("Our crimes are of the flesh. Foolish, young, and to be paid for. They are of little consequence now. Much as everything, ye might say. Little expected, our judgment was to be more swift than we had a right to expect, and from [improper hands]."); + elseif(e.message:findi("improper hands")) then + e.self:Emote("dims slightly, then returns to sight. 'Improper indeed, for the door was burst open, and armed! Armed he was! Terrible and vicious, with anger and hatred - no justice, no judgment, unless 'twas the judgment of a [mortal]!'"); + elseif(e.message:findi("mortal")) then + e.self:Say("Who can say? There are forces at work within this judiciary that are not those of the Tribunal, I am certain. We must forgive the transgressions of the mortal; they shall reach their tranquility in time."); + end +end diff --git a/pojustice/Golikan.lua b/pojustice/Golikan.lua new file mode 100644 index 0000000..fc3598c --- /dev/null +++ b/pojustice/Golikan.lua @@ -0,0 +1,12 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Golikan (201339) +---------------------------------------------------------------------- + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("regards you with indifference. 'Hail indeed. It seems that even in the realms of Pure Justice, there are conflicting forces at work. My friends and I remain here, bound to the spot at which we were [murdered], long before any Judgment could be placed upon us. Perhaps we shall yet have our revenge, and our peace."); + elseif(e.message:findi("murdered")) then + e.self:Say("Aye, put to the sword, all three.' Her unfaltering gaze regards you with accusing eyes. 'A mortal, such as yourself, just a guard mayhap. When revenge is met, then we shall to our place of resting go. Revenge, and rest. There is naught else.'"); + end +end diff --git a/pojustice/Grum.lua b/pojustice/Grum.lua new file mode 100644 index 0000000..eed7b59 --- /dev/null +++ b/pojustice/Grum.lua @@ -0,0 +1,16 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Grum (201327) +---------------------------------------------------------------------- + +function event_say(e) + if(e.language == 7 and e.other:GetLanguageSkill(7) >= 100) then + if(e.message:findi("Hail")) then + e.self:Say("Huh?' He lifts his head and looks at you with a blank expression. 'Whoz you? Mez not expectin visitors. Mez in [trouble].",7); + elseif(e.message:findi("trouble")) then + e.self:Say("Ya, trouble big. Real big dis time. Stupid Grum, wez been told to guard some little shorty by da big man in da black robe. Grum had to watch her during da night while the others went to make sure dat the humeyz been scared off. But da shorty, she wuz so perdee. So perdee... When da otherz come back, dey found Grum. Grum all alone with a flower behind his ear and big smilin all over. Mez alwayz been stupid for da perdee ones.' He looks down at something that he holds in his lap, and you notice it is a small, wilting daisy.",7); + end + else + e.self:Emote('does not appear to understand you.'); + end +end \ No newline at end of file diff --git a/pojustice/Guardian_Ionew.lua b/pojustice/Guardian_Ionew.lua new file mode 100644 index 0000000..120e452 --- /dev/null +++ b/pojustice/Guardian_Ionew.lua @@ -0,0 +1,8 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Guardian Ionew (201355) +---------------------------------------------------------------------- + +function event_say(e) + e.self:Emote("does not seem to budge or take notice of your presence. The gargoyle remains still and absolute in its poise, ignoring your presence and voice entirely. You notice the shackles bound to its limbs, binding them together by a two-foot length of chain. The creature is a prisoner, but is inanimate. A brief sense of intrigue, curiosity, and a slight fear fills you as you realize that not only those who hold spirits are subject to the Tribunal's judgment."); +end diff --git a/pojustice/Gubkuk.lua b/pojustice/Gubkuk.lua new file mode 100644 index 0000000..717c69c --- /dev/null +++ b/pojustice/Gubkuk.lua @@ -0,0 +1,14 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Gubkuk (201404) +---------------------------------------------------------------------- + +function event_say(e) + if(e.language == 6 and e.other:GetLanguageSkill(6) >= 100) then + if(e.message:findi("Hail")) then + e.self:Say("You bite-size, me should lick lips and get hungry. But me not. Me want good food, me want some of dem roots that me found just outside home. What good is home if you not allowed to eat the roots? No one told me what dey was for. Me only wanted tasty bite... Nalikor so angry...",6); + end + else + e.self:Emote('does not appear to understand you.'); + end +end diff --git a/pojustice/High_Shaman_Dannal.lua b/pojustice/High_Shaman_Dannal.lua new file mode 100644 index 0000000..41b6629 --- /dev/null +++ b/pojustice/High_Shaman_Dannal.lua @@ -0,0 +1,10 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: High Shaman Dannal (201338) +---------------------------------------------------------------------- + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("narrows his eyes in a hardened stare. You see something in his face that you had formerly believed to be vanquished from this place -- life and spirit. His eyes are bright and vibrant in their emotion of disdain and his face is hard and steely. As he speaks, you find yourself somewhat taken back with surprise at his strength and undefeated spirit, 'This is the realm of my deity; the realm that I served. Look at me, ".. e.other:GetName() .. "! I am a priest of the Tribunal! For you to think upon me as a criminal is to think justly, for I would not be here had my convictions been of another accord. My pride in this place -- my life, despite the eternity I have already endured, is preserved for I know that even in the end, my faith was pure and my actions show that I am indeed the strongest spirit to ever serve The Tribunal. I committed a crime, and I condemned myself to this place with my own hand, through the powers granted to me by my faith did I sacrifice my own self to this fate. Now move along."); + end +end diff --git a/pojustice/Iyalinaoukh.lua b/pojustice/Iyalinaoukh.lua new file mode 100644 index 0000000..15d35fa --- /dev/null +++ b/pojustice/Iyalinaoukh.lua @@ -0,0 +1,8 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Iyalinaoukh (201409) +---------------------------------------------------------------------- + +function event_say(e) + e.self:Emote("tilts her head and glares down upon you with sapphire, feline eyes. The sphinx flaps her wings and rears her head in a gesture of amusement. 'A mortal before Iyalinaoukh? Truly, how ironic this is, but yet it is without just end. Move along, mortal. This place of Norrath's creatures is not one that takes kindly to the presence of the free. Even in this place, our crimes are beyond your understanding and your ears unworthy of the voices that would tell their tales.'"); +end diff --git a/pojustice/Jhyric_Kan_Voth.lua b/pojustice/Jhyric_Kan_Voth.lua new file mode 100644 index 0000000..d4f89d5 --- /dev/null +++ b/pojustice/Jhyric_Kan_Voth.lua @@ -0,0 +1,28 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Jhyric Kan Voth (201377) +---------------------------------------------------------------------- + +function event_say(e) + if(e.language == 24 and e.other:GetLanguageSkill(24) >= 100) then + if(e.message:findi("Hail")) then + e.self:Say("Hail.' Jhyric looks at you with stern eyes. He seems to be deep in thought. 'What is your business here? You walk with freedom around this [prison].",24); + elseif(e.message:findi("Prison")) then + e.self:Say("It is not for one of my kind to be sealed in a place such as this. Since when has nobility been constrained? Since when has honor been a virtue to put on trial and quantify with weights and measures? The Taruun are beyond such affronts to our valor. Ever since the time of the [Great Unification] have we been the eyes and ears of the Crown upon Norrath.",24); + elseif(e.message:findi("great unification")) then + e.self:Say("Your lack of knowledge of history belies your ignorance, ".. e.other:GetName() .. ".' His eyes sparkle, and you notice that captivity has merely honed his spirit. 'Many centuries ago, the explorers came to our noble city. [Explorers] from the cities of Norrath, they came in droves once their primitive minds discovered the workings of the Great Spires, following their Al'kabor. Their kind trampled our crops with their clumsiness and eagerness to explore our lands.",24); + elseif(e.message:findi("Explorers")) then + e.self:Say("How they came, in droves no less... like locusts, it is written.' He wrinkles his small nose in disgust. 'All the races of the Below, appearing day after day after day at the Great Nexus, near to where the Fordels and the Midsts made their settlement. Our King welcomed them with the nobility customary to my kind. Some he even allowed to become honorary citizens. History proved him wise. In exchange for local commodities, those of the explorers upon which he bestowed citizenship took word back to the Below, to Norrath, to the leaders of Men, and of the Elves. It was a time of [prosperity].",24); + elseif(e.message:findi("prosperity")) then + e.self:Say("Aye, the trade was welcome within the Great Walls. Though primitive and in the thrall and worship of gods, certain trade-ways of the Norrathians proved to be extremely lucrative to the Kingdom. The King was thrice-blessed for his foresight and dealings with the primitives, the history books tell us. Your lack of knowledge surpasses your ugliness, you know.' His ears lie flat against his head and his tail swishes violently. 'Surely you did not come here for a history lesson from a [veteran]?",24); + elseif(e.message:findi("veteran")) then + e.self:Say("I have seen more wars than you have had hot meals.' A feline chuckle escapes him, despite his earnest expression. 'The wars when the Unification ended, the wars with the Dalh Shir, the endless wars with no names that we Taruun fight for Shar Vahl without it even knowing we fight. Here I remain, trying to make sense of the words of fools, and wondering as to the [true nature] of my imprisonment.",24); + elseif(e.message:findi("true nature")) then + e.self:Say("I should have expected such things to escape your ignorant senses. Time! Can you not see? Time itself stands still here, or so it seems. I have gleaned much information from those bumbling fools that I can, here in this place. Wherever I am, 'tis a time outside of times. The poor fools here seem to come from...' His eyes take on a nervous twitch. 'They seem to come from many different times. I have spoken to Ancients, here. And I have spoken to those from centuries which have not yet passed. I cannot determine what [witchcraft] it is at work, but I shall find out, depend upon it.",24); + elseif(e.message:findi("witchcraft")) then + e.self:Say("What else could bind us all here, like cubs held by the scruff? Surely you do not mean to tell me that you believe all this nonsense about justice. What justice is there in a world that makes captives of noble souls such as myself?' He growls, and evidently tires of you, turning away and muttering to himself.",24); + end + else + e.self:Emote('does not appear to understand you.'); + end +end diff --git a/pojustice/Kimry_Joolimel.lua b/pojustice/Kimry_Joolimel.lua new file mode 100644 index 0000000..d7a4901 --- /dev/null +++ b/pojustice/Kimry_Joolimel.lua @@ -0,0 +1,18 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Kimry Joolimel (201363) +---------------------------------------------------------------------- + +function event_say(e) + if(e.language == 8 and e.other:GetLanguageSkill(8) >= 100) then + if(e.message:findi("Hail")) then + e.self:Say("Hi there!' Her radiant smile seems too quick and shallow, you wonder what she wants from you. 'Tell me, what's a nice " .. e.other:Race() .. " doing in such a foul place such as this? Have you been...' She makes a motion with her hand as if raising an invisible glass to her anxious lips. 'Partaking of the [finer things] in life, too?",8); + elseif(e.message:findi("finer things")) then + e.self:Say("Mmmm!' She broadens her smile, until she appears to be nearly all teeth. You ponder just how wide a gnome can grin. 'A little of the old Spirits, eh? I'm not talking about those boring ghosts that flit back and forth around these parts, wailing all night, either! Have you got some of the [good stuff] for me? Have you? Come on, Kimry knows you have.",8); + elseif(e.message:findi("good stuff")) then + e.self:Say("Come on!' She smiles yet wider from her place on the bed as her hands begin to tremble. 'Don't hold out on me now, I know you've got some there! Just a little sip, that's all I ask. What harm can it do? I'm already here, so it cannot get any worse! Come on, just give mother what she wants... Just a little sip is all!",8); + end + else + e.self:Emote('does not appear to understand you.'); + end +end diff --git a/pojustice/Klaren_Dunn.lua b/pojustice/Klaren_Dunn.lua new file mode 100644 index 0000000..2574707 --- /dev/null +++ b/pojustice/Klaren_Dunn.lua @@ -0,0 +1,14 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Klaren Dunn (201295) +---------------------------------------------------------------------- + +function event_say(e) + if(e.language == 5 and e.other:GetLanguageSkill(5) >= 100) then + if(e.message:findi("Hail")) then + e.self:Say("Allfather's blessings to you, ".. e.other:GetName() .. ". You dress mighty odd for a " .. e.other:Race() .. ", I must say.' She regards you with great interest. 'A prayer to Surrilis himself for your health. You look as if you're right bursting at the seams to talk, so you are. Have you brought word from one of my friends?",5); + end + else + e.self:Emote('does not appear to understand you.'); + end +end diff --git a/pojustice/Kuraal_Nem_Azmih.lua b/pojustice/Kuraal_Nem_Azmih.lua new file mode 100644 index 0000000..1262c72 --- /dev/null +++ b/pojustice/Kuraal_Nem_Azmih.lua @@ -0,0 +1,8 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Kuraal Nem Azmih (201354) +---------------------------------------------------------------------- + +function event_say(e) + e.self:Emote("glares at you and does not respond."); +end diff --git a/pojustice/Lasiya.lua b/pojustice/Lasiya.lua new file mode 100644 index 0000000..46a3a8b --- /dev/null +++ b/pojustice/Lasiya.lua @@ -0,0 +1,14 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Lasiya (201362) +---------------------------------------------------------------------- + +function event_say(e) + if(e.language == 23 and e.other:GetLanguageSkill(23) >= 100) then + if(e.message:findi("Hail")) then + e.self:Say("" .. e.other:Race() .. "...' She tucks her long, beautiful hair behind her ears and meets your gaze. In her eyes you see... desire? 'The Dark Tower always has need for new... blood. Come closer, little " .. e.other:Race() .. ". Lasiya won't hurt you, not a bit. Come and lose yourself in my arms... I can guarantee you an eternity from which you will never wish to escape...",23); + end + else + e.self:Emote('does not appear to understand you.'); + end +end diff --git a/pojustice/Librarian_Rushal.lua b/pojustice/Librarian_Rushal.lua new file mode 100644 index 0000000..7974560 --- /dev/null +++ b/pojustice/Librarian_Rushal.lua @@ -0,0 +1,34 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Librarian Rushal (201226) +---------------------------------------------------------------------- + +function event_say(e) + if(e.language == 18 and e.other:GetLanguageSkill(18) >= 100) then + if(e.message:findi("Hail")) then + e.self:Say("A " .. e.other:Race() .. ", what a pleasant ssssurprise. Here, of all placesss. I wonder of which crime you are accusssed to bring you here, to the plane that watches all [planes]?"); + elseif(e.message:findi("planes")) then + e.self:Say("In thisss regard, you are talking to the expert, should such a thing exist. I have been lauded as the authority on such mattersss. I am not a walker of the planes, merely a ssstudent of them, but there is much one can learn should accessss to the relevant [resources] become posssible.",18); + elseif(e.message:findi("resources")) then + e.self:Say("Long yearsss did I ssserve. My cruel massster, Ral'Zehta the Knowing, kept me as a slave. Dark, was Chelsith. From within its walls, the cries of my kind rang throughout night and throughout day. I consider myssself lucky, for my massster was the Proctor of the Great Library. Such a collection of knowledge hasss never been heard of, I assure you. Hall upon hall upon hall of collected ssscrolls, tomes, grimoires, and works of the cabalist arts. I was one of his prized ssslaves, such as my race were to the Green-Scaled Ones. Mine was a special [talent].",18); + elseif(e.message:findi("talent")) then + e.self:Say("My kind are not known for their natural erudition, but I was blesssed by The Fearsome Himssself with the ability to learn, and learn quickly. I sssoon learned the tongue of the Green-Scaled Ones, and many more besides from other ssslaves taken captive in the many conquessssts of the Green-Scales. This came to my massster's attention, and it pleased him. Pleased him as a particularly intelligent pet would please someone, I believe. He put me to [work].",18); + elseif(e.message:findi("work")) then + e.self:Say("As hisss prized ssslave, I was given the task of filing, cataloguing and sorting in the immense and endlessss halls, galleries and corridors of the Great Library, asssisting my master in his daily dutiesss. I slept in the library at nights, but my nourishment was the [knowledge] contained therein.",18); + elseif(e.message:findi("knowledge")) then + e.self:Say("The Green-Scales were travelers, and plunderersss. They bargained with the gods themselvesss, made pacts and broke them. The treasures that they amassed, the things that no mortal of our plane was meant to ssssee... they coveted, and fought for, and hoarded. The knowledge that they gained... that was the real treasure, but they valued it little compared to shining and glittering booty that they could lay their foul hands upon. Much of that knowledge made itsss way into the Great Library. Much of that was learned by me. I fed my [passion].",18); + elseif(e.message:findi("passion")) then + e.self:Say("The knowledge of the planesss, of course. Those dimensions that run aligned with our own, and touch it, and each other, from place to place. Like skinsss on an onion, an onion that one could peel forever and ever. I can tell you about [this place], should you care to hear it.",18); + elseif(e.message:findi("this place")) then + e.self:Say("According to the booksss that I had accesss to, this place is the embodiment of order within the universe. Ever sssince the first mote of ordering of existence, springing out of the chaosss, so too did the Plane of Jussstice exist, to serve and judge the ordering. It issss said in the Great Books that it shall remain until the end of Order itssself, until everything once again is anarchy. Until then, there are the [Judges].",18); + elseif(e.message:findi("Judges")) then + e.self:Say("Lizardman, 'The six Judges rule thisss place, six and one more it is written. Those accusssed of the mossst serious of crimesss are banished to this realm, their Court, for Trial by the Judges of all Judgesss, the Tribunal. It isss written that their jussstice is impartial, and absssolute. The innocent are returned to their place of origin, and their guilty meet the Executioner. The judges deliver the fairessst [Justice] of them all.",18); + elseif(e.message:findi("Justice")) then + e.self:Say("The Great Bookssss were vague on thisss point, but it seemed that each of the accusssed, in order for justice to be total, is here judged according to the lawsss of their own sssociety. From the handsss of their own flesh and blood come the lawsss, and it is to these that they are held accountable. Jussstice for me may be very different to justice for you, ".. e.other:GetName() .. ", but we are both served fairly. As for my [crime], I am guilty already and confesssed.",18); + elseif(e.message:findi("crime")) then + e.self:Say("I am a traitor. When the planning for revolution came, inssstead of pledging my arms to those that would overthrow the Green-Scalesss, I could not leave my massster. More, I could not turn from the Great Library because, for me, it was the reason for living itssself. Were I to live ten thousand livesss, I could never read every book held within itsss endlesss walls. Sssso, the flesh of my brothersss I denied in exchange for my thirssst for pure knowledge. Ssssometimes, one must stand for one's beliefs, and I have remained true to myssself, if not to my fellowsss. The law may find me guilty, but my heart issss innocent, ".. e.other:GetName() .. "; mark you well. When The Green came, by brethren sent me here, and here I wait.",18); + end + else + e.self:Emote('does not appear to understand you.'); + end +end diff --git a/pojustice/Master_Vhezar.lua b/pojustice/Master_Vhezar.lua new file mode 100644 index 0000000..8948bc9 --- /dev/null +++ b/pojustice/Master_Vhezar.lua @@ -0,0 +1,20 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Master Vhezar (201378) +---------------------------------------------------------------------- + +function event_say(e) + if(e.language == 18 and e.other:GetLanguageSkill(18) >= 100) then + if(e.message:findi("Hail")) then + e.self:Say("Hail.' He holds your gaze. 'Peace be with you, ".. e.other:GetName() .. ". You appear unrestful, this is good. Unrest makes one attentive. Focused. Alert. You will need the sum total of your wits at your command if you are to not fall to the [forces] at work in this place of imprisonment.",18); + elseif(e.message:findi("forces")) then + e.self:Say("There are many. The representatives of True Justice hold sway here, and the task of dispensing judgments falls upon them. I have heard that the Warden...' He looks out to see if he is being overheard. 'I have heard that the Warden has his own thoughts on justice, however. Then, there are we [prisoners].",18); + elseif(e.message:findi("prisoners")) then + e.self:Say("From those with whom I have talked, it seems that we have little in common save that we have all been accused of the most serious of crimes. The definition of serious seems to vary according to the background of the prisoner, though. I overheard a conversation of a dwarf claiming that she was sent here for overcharging on goods that she sold, for example.' He shakes his head and looks resigned to a long fate. I have [faith].",18); + elseif(e.message:findi("faith")) then + e.self:Say("As a Grandmaster, my life is one of pure worship. In the worship of the Great Fearsome, so I go about my days. My faith shall not let me down, of this I have no doubt. Even in the face of great accusation, I shall remain true to the one, real god.' He adjusts his wristband and glances at you from the corner of one eye. 'That god is Cazic-Thule, mark you, " .. e.other:Race() .. ".",18); + end + else + e.self:Emote('does not appear to understand you.'); + end +end diff --git a/pojustice/Moobik.lua b/pojustice/Moobik.lua new file mode 100644 index 0000000..32c0473 --- /dev/null +++ b/pojustice/Moobik.lua @@ -0,0 +1,14 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Moobik (201297) +---------------------------------------------------------------------- + +function event_say(e) + if(e.language == 7 and e.other:GetLanguageSkill(7) >= 100) then + if(e.message:findi("Hail")) then + e.self:Say("Vengeance!' He bellows and looks about as if he has misplaced his weapon. 'The Avatar of my God fell to my axe, and you shall be next! There are no Gods, only victors in battle!",7); + end + else + e.self:Emote('does not appear to understand you.'); + end +end diff --git a/pojustice/Mublok.lua b/pojustice/Mublok.lua new file mode 100644 index 0000000..f5b9a75 --- /dev/null +++ b/pojustice/Mublok.lua @@ -0,0 +1,8 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Mublok (201290) +---------------------------------------------------------------------- + +function event_say(e) + e.self:Emote("curls his lips up, revealing the row of sharp, vermin teeth, 'Begone from here!' The rat hisses in an almost screeching tone, 'You debase us with your presence -- even in this place. We are beyond your judgment and understanding. We are creatures whom the gods themselves may only pass judgment upon and in that, we are superior to you. Move along! Move along!'"); +end diff --git a/pojustice/Nemli.lua b/pojustice/Nemli.lua new file mode 100644 index 0000000..102b6ba --- /dev/null +++ b/pojustice/Nemli.lua @@ -0,0 +1,26 @@ +--------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Nemli (201357) +---------------------------------------------------------------------- + +function event_say(e) + if(e.language == 5 and e.other:GetLanguageSkill(5) >= 100) then + if(e.message:findi("Hail")) then + e.self:Say("Hail!' He jumps up and extends you his hand. 'Well met, ".. e.other:GetName() .. "! It's been a while since I saw a friendly face, here in all this gloom, I have to tell ye.' His feet nearly leave the floor in his excitement. 'Do ye bring word from [Nammy]?",5); + elseif(e.message:findi("Nammy")) then + e.self:Say("Aye!' He nods enthusiastically. 'Aye, Nammy! Me own dear brother, so he is. Have ye heard from him? I've not heard from him since the [job].'",5); + elseif(e.message:findi("job")) then + e.self:Say("What a job it was, for two enterprising young men of opportunity like ourselves. Why, King Butcherblock's chamberlain himself brought us before him, so he did. Dressed us all up plush-like, and told us about a wealthy elf who'd stolen something o' the King's. He wanted us to find it... what a lark! Well, who's we to refuse the kind of [offer] he made, eh?",5); + elseif(e.message:findi("offer")) then + e.self:Say("Aye! He said that this elf had been stealing from the King for a long time, Brell only knows how he managed it. He said that we could take whatever we wanted from the elf's mansion as payment, but that the book that he was all riled up about... the [book] he wanted back safe and sound in the palace, so he did.",5); + elseif(e.message:findi("book")) then + e.self:Say("That he didn't tell us. I heard rumor that it was something like his family history, or his family tree, or something thereabouts. Who cares, that's what Nammy and I said! A job's a job, right? So's following the directions, we snuck out to this mansion. All alone it was, standing there in the forest. Being good at our craft, the locks didn't prove any obstacle, and we were in!' He shudders. 'Then the lights came on. We'd been [caught].'",5); + elseif(e.message:findi("caught")) then + e.self:Say("Aye, like rats in a trap, so's to speak.' He thumps his thigh with his fist. 'They seemed to be expecting us, like. The weirdest thing of all, was that nothing in the house looked elvish at all. All of it good, honest dwarven stuff. All dressed up rich and gaudy, a Stout I'd never seen walking in Kaladim told us that he was the mansion's owner. What a lark! I'm not sure what's going on, to tell ye truth, but it sounds as if we've got mixed up in the [games] of the nobles.",5); + elseif(e.message:findi("games")) then + e.self:Say("Games they are, too. Little folk like me have no wot of what's going on, ye know. I don't know if the chamberlain knew who owned the house, or if we got the wrong one maybe... we followed the directions to the letter, though. Nammy managed to escape through a window while the guards took me into chains. He said he'd be back and rescue me when he could! Come on, Nammy - I need ye now!",5); + end + else + e.self:Emote('does not appear to understand you.'); + end +end diff --git a/pojustice/Norlta_Zamish.lua b/pojustice/Norlta_Zamish.lua new file mode 100644 index 0000000..05f35fd --- /dev/null +++ b/pojustice/Norlta_Zamish.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hmm, is someone there? I've been [wrongfully imprisoned] I'm waiting for appeal, but its been a long time. Where, in the name of Brell, is my appeal?"); + elseif(e.message:findi("wrongfully imprisoned")) then + e.self:Say("They have me here for a little [white lie], how can that be justice? What is this, the Plane of Injustice? The Plane of Unfarity?"); + elseif(e.message:findi("white lie")) then + e.self:Emote("blushes. 'Well maybe a little more than a little white lie, but I still don't deserve to be here with murderers and crazy people, and the like. You look like a fair person, why don't you tell me if you think I should be here, want to [know what happened]?'"); + elseif(e.message:findi("know what happened")) then + e.self:Say("I was an apprentice for Varkon Theardor in Ak'Anon, and he sent me to scout the minotaur caves, to make sure the hero wasn't out and about. Well I made it out to Steamfont, and it was one of the most beautiful days I'd ever seen, halfway to the caves I set down to watch some clouds go by. Next thing I know it was hours later, I didn't rightly have time to make it to the caves and back, so I went to [Varkon] and told him the hero wasn't around."); + elseif(e.message:findi("Varkon")) then + e.self:Say("Well little did I know, Varkon was planning a trip to the caves, I guess I should have figured it, but I just wasn't thinking. Hours passed, until finally word came that the minotaur hero had squished poor Varkon. When news reached Larkon, Varkon's brother, that I was responsible for Varkon's death he asked that I be set before the Tribunal."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 2) then + e.self:SetAppearance(1); + end +end diff --git a/pojustice/Priest_of_Tumagal.lua b/pojustice/Priest_of_Tumagal.lua new file mode 100644 index 0000000..0622baa --- /dev/null +++ b/pojustice/Priest_of_Tumagal.lua @@ -0,0 +1,10 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Say("Seek ye the way to avoid Justice, "..e.other:Race().."?' He laughs a hearty laugh, which fades in and out as his body materialises and dematerialises before you. 'Ye might as well try and escape Time itself. I spent more than my fair share of time here, an eternity it was. In the endless millennia that this place has served the universe, there have been more than a few attempts at escape. Walk the [tunnels] some have... but fleeing justice is much like trying to outrun yer own shadow."); + + elseif ( e.message:findi("tunnels") ) then + e.self:Say("What ye see here is the combined effort of the countless aeons of inhabitants bidding to escape the clutches of Justice. I would not break yer hopes, but none o' them made it out.' He bursts into laughter again. 'Well, nearly all o' them..."); + end + +end \ No newline at end of file diff --git a/pojustice/Quillon.lua b/pojustice/Quillon.lua new file mode 100644 index 0000000..2217e7c --- /dev/null +++ b/pojustice/Quillon.lua @@ -0,0 +1,8 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Quillon (201407) +---------------------------------------------------------------------- + +function event_say(e) + e.self:Emote("remains stiff and lifeless in its posture. The gargoyle creature's eyes suddenly catch you off-guard as they open to look upon you. Hate and spite is draped over you by the crimson orbs of the gargoyle's gaze. Without a word or sound, the creature returns to its lifeless stance, ignoring your presence further."); +end diff --git a/pojustice/Ra-Silyas.lua b/pojustice/Ra-Silyas.lua new file mode 100644 index 0000000..352ec30 --- /dev/null +++ b/pojustice/Ra-Silyas.lua @@ -0,0 +1,10 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Ra`Silyas (201330) +---------------------------------------------------------------------- + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("gives a cold, callous glare to ".. e.other:GetName() .. ", 'What business do you believe befits you in this place, ".. e.other:GetName() .. "? Your presence is not welcome among us. You are a creature who is free and you walk willingly among the eternal prisoners of justice. How quaint, indeed. Move along for in the north where your kin reside. Perhaps they may be more informative and receptive to your presence than we."); + end +end diff --git a/pojustice/Rhionn_Leafsblade.lua b/pojustice/Rhionn_Leafsblade.lua new file mode 100644 index 0000000..e398d61 --- /dev/null +++ b/pojustice/Rhionn_Leafsblade.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("raises his head from his hands, it appears he was weeping. 'Murderer! I am a [murderer].'"); + elseif(e.message:findi("murderer")) then + e.self:Emote("sighs heavily, wiping his face with his sleeve. 'I am a ranger as I am sure you could have guessed. I spent my entire life serving Karana, I was a loyal husband, I loved my [wife] with all of my heart.'"); + elseif(e.message:findi("wife")) then + e.self:Say("My wife was beautiful, a wonder to behold. A friend came to me one day to tell me that my wife was killed by a band of ruffians. I was heartbroken and blind from rage. The bandit leader, I was told, was a man by the name of Filland Rallis. I knew [Filland], he was once a noble paladin, but he fell from his God's graces."); + elseif(e.message:findi("filland")) then + e.self:Say("Filland never lost his honor, I'm not sure what action he performed to fall, but he had never committed an ignoble act. I was shocked that he would take to murder; all of his crimes were stealing from those who had excess, and giving to those that were needy. He was a [hero] to many of us."); + elseif(e.message:findi("hero")) then + e.self:Say("Yes, I have heard bards even still sing of his laurels. He was renowned for his skill with a blade, and his mithril armor was legendary, and heirloom of his family name. Without investigation or research I assumed that the rumors of my wife's death were accurate and I set to [slay her killer]."); + elseif(e.message:findi("slay her killer")) then + e.self:Say("It was to be no easy task. I was no match for him in close quarters, there were few that were when he held a sword in his hands. I knew that he would be no match for my bowmanship. So I went to a friend, a [centaur] I had done much business with, and had him make a magical arrow, one capable of piercing Filland's armor."); + elseif(e.message:findi("centaur")) then + e.self:Say("Shaldyn Thunderhoof, the greatest fletcher Norrath has ever known. He sent me far and wide to collect components for the arrow. When I returned he assembled it for me. I never let him know what the arrow was to be used for, I felt better not to burden him with my sorrows. Then I set out to [kill Filland]"); + end +end diff --git a/pojustice/Royal_Guardian_Finro.lua b/pojustice/Royal_Guardian_Finro.lua new file mode 100644 index 0000000..3822fb0 --- /dev/null +++ b/pojustice/Royal_Guardian_Finro.lua @@ -0,0 +1,14 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Royal_Guardian_Finro (201415) +---------------------------------------------------------------------- + +function event_say(e) + if(e.language == 12 and e.other:GetLanguageSkill(12) >= 100) then + if(e.message:findi("Hail")) then + e.self:Say("Leave me be, whoever you are. The time for words is passed...",12); + end + else + e.self:Emote('does not appear to understand you.'); + end +end \ No newline at end of file diff --git a/pojustice/Shaldyn_Thunderhoof.lua b/pojustice/Shaldyn_Thunderhoof.lua new file mode 100644 index 0000000..2bbfcc7 --- /dev/null +++ b/pojustice/Shaldyn_Thunderhoof.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks up at you with a curious gleam in his eyes. 'Ahh, a visitor. Is there something you need or are you here for a story?'"); + elseif(e.message:findi("story")) then + e.self:Say("Well I'll tell you my story then. I was once a master fletcher, my arrows flew straighter and farther than any made before and any that have come since. I was a master of my craft; a bowman with a quiver of my arrows and one of my bows could drop a griffon at 20 paces with a single shot. One day a [ranger] came with a special order, one that I couldn't let pass."); + elseif(e.message:findi("ranger")) then + e.self:Say("His name was Rhionn Leafsblade, I believe he resides here with me as well. He wanted a magical arrow, a single arrow able to pierce even the strongest mithril breastplate. I had done work with Rhionn before, and believed him an honorable man, and the [challenge] was not one that I could pass up."); + elseif(e.message:findi("challenge")) then + e.self:Emote("smiles. 'The arrow of course. Mundane materials would not have been sufficient to hold the enchantments necessary to get this bow to perform as he requested. I had Rhionn gather the materials I needed, the claw of a black drake, feathers from the Spiroc Lord, and a dracolich bone for the shaft. I had no idea what he would [use it for]."); + end +end diff --git a/pojustice/Shera_Banneth.lua b/pojustice/Shera_Banneth.lua new file mode 100644 index 0000000..0fb2ba5 --- /dev/null +++ b/pojustice/Shera_Banneth.lua @@ -0,0 +1,24 @@ +function event_spawn(e) + eq.set_timer("sit",100000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I dun wanna talk to anyone, go away! Dun ask me [why]!"); + elseif(e.message:findi("why")) then + e.self:Say("My you are dense? Well I canna say I dinna expect it from a " .. e.other:Race() .. ". Aren't you afraid you are gonna end up like my [husband]?"); + elseif(e.message:findi("husband")) then + e.self:Say("My husband was Suili Banneth. He was a foul drunk of the worst sorts, never an 'onest day o' work in his life. Well I found a man worth my time so a lil hemlock in Suili's ale at night an he dinna wake up. I guess his family was upset aboot tha, so they petitioned ta sen' me 'ere."); + end +end + +function event_timer(e) + if(e.timer == "sit") then + e.self:SetAppearance(1); + eq.set_timer("stand",2000); + elseif(e.timer == "stand") then + eq.stop_timer("stand"); + e.self:SetAppearance(0); + eq.set_timer("sit",100000); + end +end \ No newline at end of file diff --git a/pojustice/Sheyna_D-Leen.lua b/pojustice/Sheyna_D-Leen.lua new file mode 100644 index 0000000..7204861 --- /dev/null +++ b/pojustice/Sheyna_D-Leen.lua @@ -0,0 +1,8 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Sheyna D`Leen (201386) +---------------------------------------------------------------------- + +function event_say(e) + e.self:Emote("glares at you and does not respond."); +end diff --git a/pojustice/Sister_Tomyn.lua b/pojustice/Sister_Tomyn.lua new file mode 100644 index 0000000..1c8d385 --- /dev/null +++ b/pojustice/Sister_Tomyn.lua @@ -0,0 +1,8 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Sister_Tomyn (201352) +---------------------------------------------------------------------- + +function event_say(e) + e.self:Emote("glares at you and does not respond."); +end \ No newline at end of file diff --git a/pojustice/Sralm_Noramir.lua b/pojustice/Sralm_Noramir.lua new file mode 100644 index 0000000..2178d56 --- /dev/null +++ b/pojustice/Sralm_Noramir.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("pounces at you, grabbing you by your throat. 'What are you doing here? Who sent you?'"); + elseif(e.message:findi("sent m")) then + e.self:Say("I hope you are not here to free a prisoner. The Tribunal punishes such actions harshly. Once here there is no hope of escape. Even for one such as I."); + elseif(e.message:findi("such as i")) then + e.self:Say("Ahh, how rude of me. Allow me to introduce myself. I am Sralm Noramir, warrior by birth thief by choice."); + elseif(e.message:findi("thief")) then + e.self:Say("Aye, I could steal the sword from a warriors hands or a kiss from a ladys lips. Ever hear of Emperor Sllanar?"); + elseif(e.message:findi("Emperor Sllanar")) then + e.self:Say("He was the ruler of Sebilis, for a short time. It does not surprise me that you have not heard of him. His rule was not long, and he did little good or bad for the iksar. He was, however, quite [wealthy]."); + elseif(e.message:findi("wealthy")) then + e.self:Say("Quite wealthy, indeed. More money than you could ever imagine, but it was just as much as I could imagine. I felt that the good Emperor had more wealth than he could possibly ever spend, so I thought it was my duty to [relieve] him of some of the excess."); + elseif(e.message:findi("emperor")) then + e.self:Say("You see, generally thieves were imprisoned, or at worst executed, but banishment here was usually reserved to those who committed heinous crimes. I guess you should be careful when you rob the person who gets to decide on the definition of heinous. Have you any news of [Sebilis]?"); + elseif(e.message:findi("relieve")) then + e.self:Say("Yes, and quite a job it was. He kept all of his accumulated wealth in caves deep below the city. Though they were well guarded, it was nothing for one such as myself. I will not bore you with details, but the short of it is I made off with a king's ransom... Literally. Unfortunately, I was [caught]."); + elseif(e.message:findi("caught")) then + e.self:Emote("sighs, 'It seems the good Emperor was quite paranoid, and took precautions against this contingency. All of his wealth was enchanted by a tracking spell. It was silly of me not to look for it. Stealing was a minor crime in Sebilis, but stealing from the [Emperor] was another issue all its own.'"); + elseif(e.message:findi("Sebilis")) then + e.self:Say("Sebilis is the city of the Iksar. The greatest city on all of Kunark, and was my home at one time. I guess no news is good news."); + end +end diff --git a/pojustice/Tamsin.lua b/pojustice/Tamsin.lua new file mode 100644 index 0000000..702b89a --- /dev/null +++ b/pojustice/Tamsin.lua @@ -0,0 +1,32 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Tamsin (201401) +---------------------------------------------------------------------- + +function event_say(e) + if(e.language == 8 and e.other:GetLanguageSkill(8) >= 100) then + if(e.message:findi("Hail")) then + e.self:Say("Hail to thee, ".. e.other:GetName() .. ". Sit with me, if ye please. Were it only that I could offer ye a little more in the way of hospitality. Tell me a little of Ak'anon, of my dear home; does it [prosper]?",8); + elseif(e.message:findi("prosper")) then + e.self:Say("How could it be otherwise?' A light smile crosses her graceful features. You perceive a sadness in her eyes. 'I cannot imagine how long I have been here... here, locked away from the one that I [love], away from my dearest heart.'",8); + elseif(e.message:findi("love")) then + e.self:Say("The famous bard Aebriolle spake it best, when he said 'the course of true love never did run smooth'. So it is, but in my heart I shall carry my [devotion].",8); + elseif(e.message:findi("devotion")) then + e.self:Say("In my adolescence, I was flighty; 'tis a most common phenomena I know, but mine led me to the desire for power. I was so afraid... afraid of seeing the deaths of friends, my uncle... death became my enemy. The Eldrith Collective gave me free reign in my studies, and it was then that my need to overcome my fear of my life's end took me into the works of Shadow. Foolish, perhaps. Ye would not be the first to call me such, but a destiny is a destiny, as inevitable as the tides of the sea. The [Dark Reflection] took me in.' Her beautiful eyes meet your own with a steady gaze.",8); + elseif(e.message:findi("Dark Reflection")) then + e.self:Say("It pains me to hear their name spoken by another, but they took me in and treated me well. They guided my studies, and showed me...' A shadow passes between the two of you, and is gone. 'They showed me how to conquer death itself. The Dark Books I studied and, by the time womanhood was upon me, I was a mistress of death, able to command and direct the forces of the afterworlds. Dark powers there are, ".. e.other:GetName() .. ". Dark powers that course through the ether and the bones of the earth upon which we stand.' She reaches into her slender, silken robe and produces a locket. 'Curious indeed that even death itself was conquered with love, when my love I did [meet].'",8); + elseif(e.message:findi("meet")) then + e.self:Say("My studies, always my life had been my studies. When searching the woods near to Ak'anon for blackroot, I met my love. My love, all dressed in traveling garb and radiant as the sun; as like to me as white to black, as life to death itself. Do ye believe in love at first sight, ".. e.other:GetName() .. "? It takes your heart in its clasp and makes your soul its own, more binding than any ritual of raising or invocation of the dead. Such was my love: nature walker, protector of the forest, servant of the Rainkeeper. The effect upon my existence was that of a hurricane to a dandelion... I was carried away and my [previous life] forgotten.",8); + elseif(e.message:findi("previous life")) then + e.self:Say("There is a space in thy life carved by thy actions, and that space can be filled by nothing but thy own destiny. So it was with me.' Her expression becomes distant, her delicate lips becoming set and resolute. 'The Dark Reflection had looked for me since my disappearance, since I flew from them so long ago hand-in-hand with the one that had taken my heart. The Scryer had found me, and whilst we were sleeping under the stars, took me by force. I was returned to the Reflection in Ak'anon, where upon they did decree my [trial].",8); + elseif(e.message:findi("trial")) then + e.self:Say("For my turning from the path of the Dark Studies, for betrayal of their code and the oath I had taken to them in my hasty youth, they were to put me to death. A woman should be strong in her hour of utmost dread, should she not? As was I, defiant to the last. My old tutor, Evazan, could not bear to see such an end to his best pupil. He entreated the Dark Reflection's Provost for mercy on my part, for trial fair. So, with heart unburdened, I find myself here. Awaiting my [end].",8); + elseif(e.message:findi("end")) then + e.self:Say("Cry not for me, ".. e.other:GetName() .. ". I have lived and I have loved. In this I am blessed. I harbour no illusions that my time draws to an end, but my heart is [glad].",8); + elseif(e.message:findi("glad")) then + e.self:Say("Glad, and free. In the next world I shall meet my Love again, and unfettered by those who would stand between us.' Her eyes dance with an inner fire, and she smiles as if to comfort you.",8); + end + else + e.self:Emote('does not appear to understand you.'); + end +end diff --git a/pojustice/Tamyna_Willowsong.lua b/pojustice/Tamyna_Willowsong.lua new file mode 100644 index 0000000..cb82432 --- /dev/null +++ b/pojustice/Tamyna_Willowsong.lua @@ -0,0 +1,26 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Tamyna Willowsong (201325) +---------------------------------------------------------------------- + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("gives a solemn nod in recognition of ".. e.other:GetName() .. ", though her features are wrought with an unfathomable sorrow, 'Shhh, friend. The prisoners are not to speak here. If we are caught, we will be placed in solitary confinement, and I do not think that I would be able to endure that torment again. Nevertheless, your presence is comforting. It has been a long time since I have had another show any interest in me.' The Feir'Dal's face gains a strange light of wonder for a moment, 'Perhaps you would wish to hear my tale and grant a brief moment of release from this torture?"); + elseif(e.message:findi("hear your tale")) then + e.self:Emote("smiles gently, though the sorrow on her features almost sting at your heart, 'I'm grateful for it, friend. I was not always a prisoner and was once a being of good heart and faith. A bard of Erollisi Marr, I traveled Norrath in hopes of spreading joy and hope to all of its citizens. During my travels, my own heart was graced with Erollisi's passions in a most unfortunate and tragic circumstance."); + elseif(e.message:findi("circumstance")) then + e.self:Say("I was visiting the city of Freeport, delivering one of my many tales to the people in the Theatre of the Tranquil. As I finished my tale, the most handsome man I had ever seen approached me. He gave praise to my tale and song and offered to walk with me a while through the Commonlands beyond. He claimed that he was enchanted and could not rest the night without being witness to my talents further, for my tales and voice struck his heart and spirit like no other. I was immediately enchanted with the half-elven gentleman and took his hand. Seemingly, it was a joyful man that led me through the calm Commonlands. I serenaded him with my lute and voice, all the while giving the glorious tales of Norrath's most notable legends. When the night turned to dawn and the sands of Ro were at our feet, he returned me to the city and our company parted at the bard's guild that housed me throughout my stay there. This meeting would change my life.'"); + elseif(e.message:findi("life")) then + e.self:Say("The handsome man, who revealed his name to me as Tarraul, returned for each of my shows and each night for the three weeks that I remained in Freeport, we spent together. I had fallen in love with the man -- more passionately and truly than I believed my heart possible. He claimed to return the same feelings for me, having brought gifts of single flowers upon each night that we met. I thanked Erollisi silently, for never in my deepest fantasies had I dreamed that such a love was possible. The final eve before my return to the isle of Erollisi in the Ocean of Tears, Tarraul proposed but it was not a moment of joy for me, for he held a condition -- a choice that tore me apart."); + elseif(e.message:findi("choice")) then + e.self:Say("Tarraul requested that I forfeit my place amongst the sister of Erollisi and join him solely in the city of Freeport. He claimed that he could not bear to be without me, should I be his bride, and that my dedication to the sisters would have us in needless separation. I asked if he would join me on my ventures around Norrath, but he declined, for Freeport was his home and his obligations resided there. I returned to the isle of Erollisi without an answer to my love's question. For a week I sat in thought and wonder, questioning my faith for the first time. How could I be given this gift of love -- so pure and whole in my entirety, but yet be asked to remove myself from that which had brought us together? I eventually made a decision, one that I would regret for the rest of my short life."); + elseif(e.message:findi("decision")) then + e.self:Say("I found Erollisi to be a cruel goddess whose followers were naive. I could not understand how the goddess of love would place one of her followers on a path of choice between the two guiding passions in their lives. I left the isle in fury, rudely denouncing my faith in the Queen of Love and forever removing myself from the order. I returned to Freeport and my love that eve. We were married the following week in a small, private ceremony performed by one of Tarraul's dear friends. It wouldn't be for another three years before I would discover exactly what I had done."); + elseif(e.message:findi("done")) then + e.self:Say("One eve, a knock came upon our door. Tarraul and a fellow merchant were occupied at the time, engaged in affairs of business. I answered the door and to my surprise, two paladins from the Temple of Marr were at our door. They exclaimed that they wished to speak with my husband. Surprised and confused, I allowed them in and questioned their reasoning for coming to our home so late. They looked upon me with pity and expressed their remorse in having to reveal the truth of my husband to me in this fashion, but they had no choice. I was so confused and demanded to know why they were in my home. Tarraul had come down the stairs and the knights, pushing me aside, drew their blades and ordered that he go with them. My husband looked at me, a sly grin upon his face -- one that I had not seen in the years that I had known him. A split moment and all was rent. It would be too late before I discovered the 'truth' the paladins had spoken."); + elseif(e.message:findi("truth")) then + e.self:Say("My husband did something I had not thought him capable of in the past -- he reached out his arms in a graceful arcane motion and uttered an incantation. The three of them were immediately engaged. I was confused, and concerned for my love's safety. I did not think clearly at that moment and drew my rapiers from their proper place upon the wall and joined my husband's side. It would work, somehow, that both paladins would fall to my blades and in the end, Tarraul would stand, smirking with an immeasurable sense of pride and a wicked light to his face that I shall never forget. He then took me upstairs and helped me wash the paladin's blood from my hands. My clothes were disposed of and my weapons polished. He spoke not a word to me, despite how I questioned him. Only the light of dark pride filled his eyes. The paladin's bodies were disposed of before I had finished cleaning up. Frantically, I demanded answers of my husband and finally, he gave them to me."); + elseif(e.message:findi("answer")) then + e.self:Say("I asked him why the paladins sought him and why his reaction was so brash and violent. He smirked at this and revealed something that should have torn me a part then, but had no effect. The half-elven man I had known for three years disappeared and in his wake, stood a Teir'Dal. He was an enchanter and an aid to the Dismal Rage and Sir Lucan D'Lere. He said he was proud of me, that the actions I was so quick to perform had surprised and intrigued him most deeply. I loved him still, for I cared not what race he was -- I still do not care. I could not see past his lies and deceit and I agreed to help him dispose of the paladin's bodies. We returned to our house and the last thing I remember was a muttered word and then darkness. I awoke in the prison beneath the Temple of Marr three days later. I never did see my husband again. The paladins would deliver unto me the short path that had dictated the rest of my short existence."); + end +end diff --git a/pojustice/The_Seventh_Hammer.lua b/pojustice/The_Seventh_Hammer.lua new file mode 100644 index 0000000..4b2e4f0 --- /dev/null +++ b/pojustice/The_Seventh_Hammer.lua @@ -0,0 +1,60 @@ +local INVIS_TRIBUNAL_TYPE = 201423; -- #The_Tribunal_ +local VIS_TRIBUNAL_TYPE = 201427; -- The_Tribunal + +local skipAggroText; + +function AnimateTribunal(animationId) + local npcList = eq.get_entity_list():GetNPCList(); + + if ( npcList ) then + for npc in npcList.entries do + if ( npc.valid and npc:GetNPCTypeID() == VIS_TRIBUNAL_TYPE ) then + npc:DoAnim(animationId); + end + end + end +end + +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Greetings mortal, it seems the council has deemed you worthy of the challenge, are you ready to face judgement?"); + + elseif ( e.message:findi("ready to face") ) then + e.self:Say("Very well mortals, Now begins the test of your very souls!"); + skipAggroText = true; + e.self:AddToHateList(e.other); + end +end + +function event_combat(e) + if ( e.joined ) then + if ( not skipAggroText ) then + e.self:Say("Prepare for judgement mortals!"); + end + eq.set_timer("verdict", math.random(181, 190) * 1000); + eq.set_timer("tremor", math.random(86, 95) * 1000); + eq.stop_timer("stop"); + else + skipAggroText = false; + eq.set_timer("stop", 600000); + end +end + +function event_timer(e) + + if ( e.timer == "verdict" ) then + eq.set_timer("verdict", 187000); + AnimateTribunal(42); + eq.get_entity_list():GetMobByNpcTypeID(INVIS_TRIBUNAL_TYPE):CastSpell(1108, e.self:GetID()); -- Verdict of Eternity + + elseif ( e.timer == "tremor" ) then + eq.set_timer("tremor", 187000); + AnimateTribunal(1); + eq.get_entity_list():GetMobByNpcTypeID(INVIS_TRIBUNAL_TYPE):CastSpell(1107, e.self:GetID()); -- Tremor of Judgment + + elseif ( e.timer == "stop" ) then + eq.stop_timer("stop"); + eq.stop_timer("verdict"); + eq.stop_timer("tremor"); + end +end diff --git a/pojustice/The_Tribunal.lua b/pojustice/The_Tribunal.lua new file mode 100644 index 0000000..603dbda --- /dev/null +++ b/pojustice/The_Tribunal.lua @@ -0,0 +1,253 @@ +local PREPARED_TEXT = { + "nods slightly. 'Very well. When you are ready, you may begin the trial of lashing. You must protect the victims from their tormentors. Be wary of the scourge of honor - you cannot fight it directly. You must find and destroy its life force to defeat it. We shall judge the mark of your success.'", + "nods slightly. 'Very well. When you are ready, you may begin the trial of execution. The victim will perish should the hooded executioner reach him. Its life will end only when all of the nemeses which accompany it also perish. We shall judge the mark of your success.'", + "nods slightly. 'Very well. When you are ready, you may begin the trial of stoning. The archers will not cease their punishment until nothing else stands. Do not let the prisoners take more than they can bear. We shall judge the mark of your success.'", + "nods slightly. 'Very well. When you are ready, you may begin the trial of torture. Only when a wraith of agony dies will the prisoners feel any relief. Take care to find and kill it quickly, lest their torment overcome them. We shall judge the mark of your success.'", + "nods slightly. 'Very well. When you are ready, you may begin the trial of hanging. Act quickly to destroy the spirits of suffocation before their victims perish. We shall judge the mark of your success.'", + "nods slightly. 'Very well. When you are ready, you may begin the trial of flame. You must endure the heat of the fire and be sure not to let its creatures reach the center. We shall judge the mark of your success.'", +}; +local TRIAL_TEXT = { + "Trial of Lashing", + "Trial of Execution", + "Trial of Stoning", + "Trial of Torture", + "Trial of Hanging", + "Trial of Flame", +}; +local SPAWNPOINT_IDS = { [345327] = 1, [345328] = 2, [345329] = 3, [345330] = 4, [345331] = 5, [345332] = 6 }; +local CONTROLLER_IDS = { 201512, 201511, 201513, 201514, 201515, 201510 }; +local CONTROLLER_COORDS = { + { 1308, -1045, -13.248 }, + { 119, -1197, 73.75 }, + { -204, -1099, 73.75 }, + { 818, -1096, 58.75 }, + { 416, -1193, 73.75 }, + { 850, -660, 55.75 }, +}; +local TELEPORT_COORDS = { + { 1340, -1120, 2, 64 }, + { 195, -1050, 75, 128 }, + { -150, -1190, 75, 0 }, + { 726, -1119, 90, 64 }, + { 490, -1050, 75, 128 }, + { 880, -660, 56, 128 }, +}; +local TRIAL_BOUNDARIES = { -- top bottom left right + { -1000, -1500, 1500, 1000 }, + { -1000, -1500, 350, 50 }, + { -1000, -1500, 10, -300 }, + { -950, -1500, 1000, 650 }, + { -1000, -1500, 650, 350 }, + { -600, -850, 1000, 750 }, +}; +local AGENT_TYPE = 201075; -- Agent_of_The_Tribunal + +local trialsUnderway = {}; + +function FindMarks(client) + local marks = { 31796, 31842, 31844, 31845, 31846, 31960 }; + local numFound = 0; + for k, v in pairs(marks) do + if ( client:HasItem(v) ) then + numFound = numFound + 1; + end + end + return numFound; +end + +function MobInTrial(trialNum) + local mobList = eq.get_entity_list():GetMobList(); + + if ( mobList ) then + for mob in mobList.entries do + if ( mob.valid and mob:GetY() < TRIAL_BOUNDARIES[trialNum][1] + and mob:GetY() > TRIAL_BOUNDARIES[trialNum][2] + and mob:GetX() < TRIAL_BOUNDARIES[trialNum][3] + and mob:GetX() > TRIAL_BOUNDARIES[trialNum][4] + ) then + if ( mob:IsClient() and not mob:CastToClient():GetGM() ) then + return true; + end + if ( mob:IsNPC() and not mob:IsPet() and mob:CastToNPC():GetNPCTypeID() ~= AGENT_TYPE and mob:GetRace() ~= 216 ) then -- Horse + return true; + end + end + end + end + return false; +end + +function MoveCorpses(trialNum) + local corpseList = eq.get_entity_list():GetCorpseList(); + + if ( corpseList ) then + for corpse in corpseList.entries do + if ( corpse.valid and corpse:GetY() < TRIAL_BOUNDARIES[trialNum][1] + and corpse:GetY() > TRIAL_BOUNDARIES[trialNum][2] + and corpse:GetX() < TRIAL_BOUNDARIES[trialNum][3] + and corpse:GetX() > TRIAL_BOUNDARIES[trialNum][4] + ) then + if ( corpse:IsPlayerCorpse() ) then + corpse:MoveToGraveyard(); + end + end + end + end +end + +function MoveGroup(zone, client, dist, x, y, z, h) + local group = client:GetGroup(); + local raid = client:GetRaid(); + + if ( group and group:GroupCount() > 0 ) then + for i = 0, 5 do + local member = group:GetMember(i):CastToClient(); + + if ( member.valid ) then + if ( member:CalculateDistance(client:GetX(), client:GetY(), client:GetZ()) < dist ) then + member:MovePC(zone, x, y, z, h*2); + if ( member:GetPet().valid ) then + if ( member:GetPet():Charmed() ) then + member:GetPet():BuffFadeByEffect(22); -- charm + else + member:GetPet():GMMove(x, y, z, 0); + end + end + eq.get_entity_list():RemoveFromHateLists(member); + end + end + end + + elseif ( raid and raid.valid ) then + local raidGroupID = raid:GetGroup(client:GetName()); + local member; + for i = 0, 71 do + member = raid:GetMember(i); + + if ( member and member.valid and raid:GetGroup(member:GetName()) == raidGroupID ) then + + if ( member:CalculateDistance(client:GetX(), client:GetY(), client:GetZ()) < dist ) then + member:MovePC(zone, x, y, z, h*2); + if ( member:GetPet().valid ) then + if ( member:GetPet():Charmed() ) then + member:GetPet():BuffFadeByEffect(22); -- charm + else + member:GetPet():GMMove(x, y, z, 0); + end + end + eq.get_entity_list():RemoveFromHateLists(member); + end + end + end + else + client:MovePC(zone, x, y, z, h*2); + + if ( client:GetPet().valid ) then + if ( client:GetPet():Charmed() ) then + client:GetPet():BuffFadeByEffect(22); -- charm + else + client:GetPet():GMMove(x, y, z, 0); + end + end + eq.get_entity_list():RemoveFromHateLists(client); + end +end + +function event_signal(e) + local trialNum = SPAWNPOINT_IDS[e.self:GetSpawnPointID()]; + + if ( e.signal == trialNum ) then + eq.set_timer("delay"..trialNum, 60000); + trialsUnderway[trialNum] = true; + eq.debug(TRIAL_TEXT[trialNum].." failed. Accessible again in 60 seconds", 1); + elseif ( e.signal == (trialNum + 6) ) then + eq.set_timer("delay"..trialNum, 1800000); + trialsUnderway[trialNum] = true; + eq.debug(TRIAL_TEXT[trialNum].." success. Accessible again in 30 minutes", 1); + end +end + +function event_timer(e) + if ( #e.timer == 6 ) then + eq.stop_timer(e.timer); + local num = tonumber(e.timer:sub(6, 6)); + if ( num ) then + MoveCorpses(num); + trialsUnderway[num] = nil; + eq.debug(TRIAL_TEXT[num].." is now available", 1); + end + end +end + +function event_say(e) + local qglobals = eq.get_qglobals(e.self, e.other); + local trialNum = SPAWNPOINT_IDS[e.self:GetSpawnPointID()]; + + if ( e.message:findi("hail") ) then + e.self:Emote(" fixes you with a dark, piercing gaze. 'What do you want, mortal?'"); + return; + end + + if ( e.message:findi("mavuin") ) then + + if ( qglobals.mavuin ) then + + if ( (qglobals.mavuin == "1" and FindMarks(e.other) > 0) or qglobals.mavuin == "2" ) then + e.other:Message(0, "The Tribunal tells you, 'You have completed a trial - impressive for mortals. You can tell Mavuin that we will hear his plea. We will seek him out as time befits us.'"); + if ( qglobals.mavuin == "1" ) then + eq.set_global("mavuin", "2", 5, "F"); + end + e.other:Message(15, "You have received a character flag!"); + return; + end + + if ( qglobals.mavuin == "1" ) then + e.other:Message(0, "The Tribunal tells you, 'So, mortal, you wish us to allow a prisioner to plead his case? What power do you think that you hold that we should field your interests? You must prove yourself in one of our trials before we will consider hearing this plea.'"); + + elseif ( qglobals.mavuin == "3" ) then + e.other:Message(0, "The Tribunal tells you, 'Do not worry about Mavuin. We are currently reviewing his case and his accusations of interference in the Pantheon's plans.'"); + end + end + + elseif ( e.message:findi("prove") ) then + e.self:Say("The trials of the Tribunal are no easy affair. They will severely test your might and skill. Are you prepared for such an ordeal?"); + + elseif (e.message:findi("prepared")) then + e.self:Emote(PREPARED_TEXT[trialNum]); + + elseif (e.message:findi("ready to begin the "..TRIAL_TEXT[trialNum])) then + + if ( trialsUnderway[trialNum] or MobInTrial(trialNum) ) then + e.self:Say("That trial is already underway. You must wait."); + else + trialsUnderway[trialNum] = true; + e.self:Say("Then begin."); + + eq.spawn2(CONTROLLER_IDS[trialNum], 0, 0, CONTROLLER_COORDS[trialNum][1], CONTROLLER_COORDS[trialNum][2], CONTROLLER_COORDS[trialNum][3], 0); + + -- npc teleports all group members within 50 units of the client that starts the trial + MoveGroup(201, e.other, 50, TELEPORT_COORDS[trialNum][1], TELEPORT_COORDS[trialNum][2], TELEPORT_COORDS[trialNum][3], TELEPORT_COORDS[trialNum][4]); + eq.debug(TRIAL_TEXT[trialNum].." begun by "..e.other:GetCleanName(), 1); + end + + elseif (e.message:findi("knowledge") ) then + local marks = FindMarks(e.other); + + if ( qglobals.seventh or marks == 6 ) then + e.other:Message(0, "The Tribunal tells you, 'Most impressive. It has been long since a mortal has shown such prowess.' It considers you for a long moment. 'There is one final test that you must undergo.' A gleaming metal disc appears in your hand. 'Hold up the Mark of Justice as you enter the portal, and prepare for your judgement.'"); + + if ( not qglobals.seventh ) then + eq.set_global("seventh", "1", 5, "F"); + end + e.other:Message(15, "You have received a character flag!"); + + if ( not e.other:HasItem(31599) ) then + e.other:SummonItem(31599); -- Item: The Mark of Justice + end + elseif ( marks > 0 ) then + e.other:Message(0, "The Tribunal tells you, 'You have done well, mortal, but there are more trials yet for you to complete.'"); + else + e.other:Message(0, "The Tribunal considers you for a long moment. 'The knowledge of the gods is not so easily given to an unproven mortal.'"); + end + end +end diff --git a/pojustice/Thrak_Riftwing.lua b/pojustice/Thrak_Riftwing.lua new file mode 100644 index 0000000..c4fa1bd --- /dev/null +++ b/pojustice/Thrak_Riftwing.lua @@ -0,0 +1,8 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Thrak_Riftwing (201343) +---------------------------------------------------------------------- + +function event_say(e) + e.self:Emote("glares at you and does not respond."); +end diff --git a/pojustice/Trader_Sha-Deno.lua b/pojustice/Trader_Sha-Deno.lua new file mode 100644 index 0000000..2de4114 --- /dev/null +++ b/pojustice/Trader_Sha-Deno.lua @@ -0,0 +1,8 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Trader Sha`Deno (201408) +---------------------------------------------------------------------- + +function event_say(e) + e.self:Emote("tilts his head, his eyes lighting with a sense of curiosity and amusement, 'Greetings, free one. You wander the cells of eternal prisoners... How intriguing. Perhaps you have a fascination for the degenerate and hopeless? Or perhaps you wish to teach yourself of what paths that will grant you avoidance of this place in your own hereafter, hrm? Aaaah... So many questions, but yet you truly do not hold any of the answers. I... I am a criminal like no other in this place, and still my tale is not for you to know. Continue your search, but if I may direct you to the northern quarter where your own people reside, I'm certain you will find more of the answers that you seek.'"); +end diff --git a/pojustice/Trazin_D-Feyl.lua b/pojustice/Trazin_D-Feyl.lua new file mode 100644 index 0000000..cecf748 --- /dev/null +++ b/pojustice/Trazin_D-Feyl.lua @@ -0,0 +1,20 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Trazin_D`Feyl (201196) +---------------------------------------------------------------------- + +function event_say(e) + if(e.language == 4 and e.other:GetLanguageSkill(4) >= 100) then + if(e.message:findi("Hail")) then + e.self:Say("Hail, ".. e.other:GetName() .. ". These are momentous times. You stand before a [martyr]!",4); + elseif(e.message:findi("martyr")) then + e.self:Say("I shall give myself for the glory of the Dark Prince! In my death, he shall take me in his arms and welcome me as one of his faithful, one of his true faithful! Unlike the blasphemous fools that would send me here, to an eternity of waiting! In his name was the [pact] so forged!",4); + elseif(e.message:findi("pact")) then + e.self:Say("So it is.' He grins. 'The gates of the far temple, did I oversee. In distant Kiera'loal, and to the [General] did I pledge allegiance, in the name of the Dark Prince!' His eyes roll, and you wonder how long he has been insane. 'Allegiance!",4); + elseif(e.message:findi("General")) then + e.self:Say("Walker of worlds, is he. Burner of the Gods themselves, victor in battles uncounted, spreading the work of my Dark Regent without even knowing it! Vhan`Geltah has seen more than I can ever dream, and by his side, I would have seen yet more! More! In my death, I shall be redeemed, for my Lord knows the truth of my soul, and it is with him that my true Judgment shall stand.",4); + end + else + e.self:Emote('does not appear to understand you.'); + end +end diff --git a/pojustice/Trisha_Pettals.lua b/pojustice/Trisha_Pettals.lua new file mode 100644 index 0000000..5a17297 --- /dev/null +++ b/pojustice/Trisha_Pettals.lua @@ -0,0 +1,16 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Trisha Pettals (201264) +---------------------------------------------------------------------- + +function event_say(e) + if(e.language == 9 and e.other:GetLanguageSkill(9) >= 100) then + if(e.message:findi("Hail")) then + e.self:Say("Why!' She sobs, and covers her face with her hands. 'Why did I listen to him? Why? What [foul misfortune] is this that has descended upon me?",9); + elseif(e.message:findi("foul misfortune")) then + e.self:Say("Such woeful days, of such infinite duration have I spent herein. All because I took the advice of Vanim... what evil tidings he brought. What lies he spread, and what a susceptible fool am I for believing him...' She redoubles her tears, and you can do little to bring her around. 'Dear Rainkeeper, why?",9); + end + else + e.self:Emote('does not appear to understand you.'); + end +end diff --git a/pojustice/Vulur_Stonehold.lua b/pojustice/Vulur_Stonehold.lua new file mode 100644 index 0000000..630c897 --- /dev/null +++ b/pojustice/Vulur_Stonehold.lua @@ -0,0 +1,10 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Vulur Stonehold (201411) +---------------------------------------------------------------------- + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("raises a brow and gives a sneer of disdain, 'What ye want?! Can ye not see that I be a prisoner o'this place?! Or be ye as blind as ye appear dumb? Be off with ye! I be in no mood t'be taunted by the presence o'a free one and 'ave no tales o'woe an' sorrow t'share with ye! My reasons o'bein' 'ere be mine an' mine alone, y'ear?! I not be a snivlin' coward like many o'this places inmates. I 'ave no interest on dwellin' on the past. Be on yer way an' let me be!"); + end +end \ No newline at end of file diff --git a/pojustice/Welas_Hollander.lua b/pojustice/Welas_Hollander.lua new file mode 100644 index 0000000..d943509 --- /dev/null +++ b/pojustice/Welas_Hollander.lua @@ -0,0 +1,14 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Welas Hollander (201326) +---------------------------------------------------------------------- + +function event_say(e) + if(e.language == 11 and e.other:GetLanguageSkill(11) >= 100) then + if(e.message:findi("Hail")) then + e.self:Say("Unnnn...' He fades and then rematerializes, as if talking is causing great effort. 'Hail to thee, ".. e.other:GetName() .. ". Be careful! Ware! Careful who to trust in here, or ye'll find one day waking with a blade in your chest, as I did! Watch ye!",11); + end + else + e.self:Emote('does not appear to understand you.'); + end +end diff --git a/pojustice/Wraith_of_Domagr.lua b/pojustice/Wraith_of_Domagr.lua new file mode 100644 index 0000000..4393c68 --- /dev/null +++ b/pojustice/Wraith_of_Domagr.lua @@ -0,0 +1,15 @@ +function event_spawn(e) + eq.set_timer("depop", 200000); +end + +function event_timer(e) + eq.depop(); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/pojustice/Wurgoz.lua b/pojustice/Wurgoz.lua new file mode 100644 index 0000000..c7af364 --- /dev/null +++ b/pojustice/Wurgoz.lua @@ -0,0 +1,10 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Wurgoz (201337) +---------------------------------------------------------------------- + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("tilts his head and gives a slight twitch of his eyes in quick observation of ".. e.other:GetName() .. ", 'You are free... you are not a prisoner of this place. Interesting. Perhaps... perhaps you would care to listen to my tale? Maybe... maybe you can give me some relief from this suffering and ease my conscience if only for a moment."); + end +end diff --git a/pojustice/Yalaki.lua b/pojustice/Yalaki.lua new file mode 100644 index 0000000..40dd31d --- /dev/null +++ b/pojustice/Yalaki.lua @@ -0,0 +1,8 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Yalaki (201356) +---------------------------------------------------------------------- + +function event_say(e) + e.self:Emote("twitches its nose, sniffing the air about you. The ratman then gives a hissing sound of disdain and shakes its head rapidly as if to ward off an offensive presentation, 'Go away! I have nothing to share with you -- time or tale. We have no love for you or your kind. Go on, now. Go on! Return to the north where your kind dwell in their pitiful misery and regret.'"); +end diff --git a/pojustice/Yventa_Va-Ssula.lua b/pojustice/Yventa_Va-Ssula.lua new file mode 100644 index 0000000..932d1c3 --- /dev/null +++ b/pojustice/Yventa_Va-Ssula.lua @@ -0,0 +1,10 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Yventa Va`Ssula (201328) +---------------------------------------------------------------------- + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("flicks her reptilian tongue at you as she glares at you in utter contempt. Her voice spills forward in a whispered hiss, 'What purpose have you here among us, free one? Do you find yourself pleased by the misery of the degenerate beings this place hosts? Or perhaps you are a bard and wish to spread the tales of our treachery as a lesson to the innocent? You know nothing if that is your wish here, for not all of us are victims of conscious convictions. Some, like myself, are held because of who we are in the innermost depths of our spirits -- something that we cannot help or change. We are condemned for that which we could not control in our lives. That is the true element of my fate here. If you do not understand or accept this, then perhaps you should speak with us and hear our tales. Learn before you base assumptions upon ignorance."); + end +end diff --git a/pojustice/Zadyr_Moralin.lua b/pojustice/Zadyr_Moralin.lua new file mode 100644 index 0000000..0356a3f --- /dev/null +++ b/pojustice/Zadyr_Moralin.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.language == 17 and e.other:GetLanguageSkill(17) >= 100) then -- Elder Teir'Dal + if(e.message:findi("hail")) then + e.self:Say("By the Prince, have you come to [free] me from this place?", 17); + elseif(e.message:findi("free")) then + e.self:Say("I must find a way out of this prison, my trial is approaching, so says the warden. Time is running out for me. There is little chance of reprieve, given my [experiments].", 17); + elseif(e.message:findi("experiments")) then + e.self:Say("My people are fleeing, fleeing underground away from the traitor-elves. We are taking to the tunnels and to the caverns, where we can rebuild our strength, beneath the surface. The Prince will protect our people. My experiments were dire indeed, and yet in times of war one must take every opportunity one can get to defeat one's foe, as I am certain that you would agree. I experimented upon the souls of my [slaves].", 17); + elseif(e.message:findi("slaves")) then + e.self:Say("My House always kept dwarves; they are sturdy, hard-working and durable. It has always been the law of our House never to abuse the slaves, however. The war with the traitors lasted so long, and I saw an opportunity to end it. My research into the binding of mortal souls, and to use that harnessed spiritual power for further incantations, had proceeded to the point at which I required actual living subjects upon which to perform my [rituals].", 17); + elseif(e.message:findi("rituals")) then + e.self:Say("The ritual of binding requires over two whole days of preparation, and the separation and captivation of the subject's soul takes a further two days of rigorous effort. I succeeded, but the price was high. Upon three of my slaves did I perform the rituals, and thrice damned am I for it. I wielded the power of their life's energies with decisiveness. My [victories] were the stuff of legends.", 17); + elseif(e.message:findi("victories")) then + e.self:Say("Against the traitor-elves, my new-found energies from the life-force of my three slaves' trapped souls provided me with the ability to lay waste to whole legions of our enemies. Yet in their foolishness, my peers of the Prince's Elves sought to stop me, and bring me to [justice].", 17); + elseif(e.message:findi("justice")) then + e.self:Say("They took me in my sleep, and for my 'crimes', I was banished here. Banished here like a criminal, rather than a savior of our species! Without my rituals, without my incantations, our people are doomed - they flee to the underworld and hide, like vermin. Even now, I sit here, accused, and were that not torment enough I am constantly reminded of my deeds by the souls of the three that I damned with me.", 17); + end + else + e.self:Emote('does not appear to understand you.'); + end +end diff --git a/pojustice/Zakis_Var_Sl-tad.lua b/pojustice/Zakis_Var_Sl-tad.lua new file mode 100644 index 0000000..ed8ab52 --- /dev/null +++ b/pojustice/Zakis_Var_Sl-tad.lua @@ -0,0 +1,10 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Zakis Var Sl`tad (201340) +---------------------------------------------------------------------- + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("twitches his tail and glares at ".. e.other:GetName() .. " with an eye seemingly full of disdain, though surprisingly, you do not feel as if the emotion is directed solely at you. The look seems to be a constant upon this one's face -- a mask of torment, hate, and regret. In a barely audible hiss, the Iksar prisoner speaks, 'Perhaps you find amusement in the suffering of others? Very well, listen to the tale. It has been long since I have had the pleasure of seeing fear -- borne of my own acts -- blaze in the eyes of another."); + end +end diff --git a/pojustice/Zayenaekk.lua b/pojustice/Zayenaekk.lua new file mode 100644 index 0000000..4eb0322 --- /dev/null +++ b/pojustice/Zayenaekk.lua @@ -0,0 +1,10 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: Zayenaekk (201281) +---------------------------------------------------------------------- + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("flaps her wings and raises her chin high and proud as she gazes down upon ".. e.other:GetName() .. ", 'You stand before Zayenaekk -- servant of Murdunk and prisoner now of the Tribunal. It has been many years since our paths last crossed, " .. e.other:Race() .. ", but there is nothing more to this being than the formerly stated. Move along, ".. e.other:GetName() .. ". This is not a realm for the free to wander."); + end +end diff --git a/pojustice/Zenoux.lua b/pojustice/Zenoux.lua new file mode 100644 index 0000000..56a35dc --- /dev/null +++ b/pojustice/Zenoux.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.language == 22 and e.other:GetLanguageSkill(22) == 100) then -- Elder Dragon + if(e.message:findi("hail")) then + e.self:Say("Mortal. . .' He flaps his wings and a talon taps against the floor, making a sharp noise in the silence. 'Mortal. . . time is short. If you can understand me, perhaps you can help me. I need my grimoire, my tome, the source of my power. With help from the [distant ones], I can make my escape.",22); + elseif(e.message:findi("distant one")) then + e.self:Say("My learning is one of the eldest. . . perhaps. . . in all existence. From the depths of Limbo can I convene with them. . . they, the distant ones. My bidding can they fulfill, for short times. I need my grimoire! My grimoire, hear me, " .. e.other:Race() .. "! Fetch it and I can reward you with riches beyond your wildest reckoning! Hurry!",22); + end + else + e.self:Emote("does not appear to understand you."); + end +end diff --git a/pojustice/_.lua b/pojustice/_.lua new file mode 100644 index 0000000..ee7a465 --- /dev/null +++ b/pojustice/_.lua @@ -0,0 +1,4 @@ +function event_spawn(e) + eq.zone_emote(7, "An unnatural silence falls around you. The justice of the Tribunal has been pronounced once again. The defendants have been found . . . lacking."); + eq.depop_with_timer(); +end diff --git a/pojustice/__.lua b/pojustice/__.lua new file mode 100644 index 0000000..a5465df --- /dev/null +++ b/pojustice/__.lua @@ -0,0 +1,7 @@ +function event_combat(e) + e.self:Emote("The shrill croon of banshees fills the room..."); + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(201287) ) then + eq.spawn2(201287, 0, 0, 223, -494, -26, 0); -- wraith_of_retribution + end + eq.depop_with_timer(); +end diff --git a/pojustice/a_forgotten_spirit.lua b/pojustice/a_forgotten_spirit.lua new file mode 100644 index 0000000..f579103 --- /dev/null +++ b/pojustice/a_forgotten_spirit.lua @@ -0,0 +1,10 @@ +---------------------------------------------------------------------- +-- Zone: PoJustice +-- NPC: a forgotten spirit (201133) +---------------------------------------------------------------------- + +function event_say(e) + if(e.message:findi("")) then -- Anything said + e.self:Message(15,"You can't think of any reason why you would be here."); + end +end diff --git a/pojustice/encounters/BurningTrial.lua b/pojustice/encounters/BurningTrial.lua new file mode 100644 index 0000000..aee7c87 --- /dev/null +++ b/pojustice/encounters/BurningTrial.lua @@ -0,0 +1,155 @@ +local WAVE_TIMER = 130000; -- oldEQ/AK timer was ~130 seconds. Live is ~98 seconds + +local CONTROLLER_TYPE = 201510; -- #Event_Burning_Control +local TRIBUNAL_TYPE = 201508; -- The_Tribunal +local THE_FLAME_TYPE = 201509; -- The_flame + +local FIEND_TYPE = 201476; -- fiend_of_flame +local SPIRIT_TYPE = 201488; -- spirit_of_flame +local NEMESIS_TYPE = 201450; -- #a_burning_nemesis +local AGGRESSOR_TYPE = 201459; -- #a_fiery_aggressor +local BOSS_TYPE = 201486; -- #Punisher_of_Flame +local MOBS = { FIEND_TYPE, SPIRIT_TYPE, NEMESIS_TYPE, AGGRESSOR_TYPE, BOSS_TYPE }; + +local WAVE_SPAWN_COORDS = { + { x = 879, y = -661 }, + { x = 833, y = -683 }, + { x = 811, y = -730 }, + { x = 834, y = -775 }, + { x = 881, y = -798 }, + { x = 925, y = -773 }, + { x = 949, y = -728 }, + { x = 926, y = -681 } +}; + +local flame, spell; + +function ControllerSpawn(e) + eq.set_timer("wave", 26000); + eq.set_timer("flame", 28000); + flame = eq.spawn2(THE_FLAME_TYPE, 0, 0, 880, -727, 55.753, 0); + wave = 0; + killed = 0; + spell = 1; +end + +function ControllerTimer(e) + + if ( e.timer == "wave" ) then + wave = wave + 1; + + if ( wave == 4 ) then + eq.stop_timer("wave"); + else + eq.set_timer("wave", WAVE_TIMER); + end + SpawnWave(); + + elseif ( e.timer == "flame" ) then + if ( spell == 1 ) then + flame:CastSpell(1281, e.self:GetID()); -- Searing Heat + spell = 2; + else + flame:CastSpell(1131, e.self:GetID()); -- Wave of Heat + spell = 1; + end + end +end + +function SpawnWave() + local typeRoll, spawnRoll, mob; + local count = 1; + local spawns = {}; + + while ( count < 5 ) do + + spawnRoll = math.random(1, 8); + + if ( not spawns[spawnRoll] ) then + + typeRoll = math.random(0, 99); + if ( typeRoll < 47 ) then + spawns[spawnRoll] = FIEND_TYPE; + elseif ( typeRoll < 94 ) then + spawns[spawnRoll] = SPIRIT_TYPE; + elseif ( typeRoll < 97 ) then + spawns[spawnRoll] = NEMESIS_TYPE; + else + spawns[spawnRoll] = AGGRESSOR_TYPE; + end + count = count + 1; + end + end + + for i = 1, 8 do + if ( spawns[i] ) then + mob = eq.spawn2(spawns[i], 0, 0, WAVE_SPAWN_COORDS[i].x, WAVE_SPAWN_COORDS[i].y, 56, 0); + mob:CastToNPC():MoveTo(880, -730, 56.37, -1, true); + end + end +end + +function MobSpawn(e) + eq.set_timer("depop", 60000); +end + +function MobTimer(e) + if ( wave > 0 ) then + TrialFail(); + end + wave = 0; + eq.depop(); +end + +function MobCombat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function MobDeath(e) + killed = killed + 1; + if ( wave == 4 and killed >= 16 ) then + eq.unique_spawn(BOSS_TYPE, 0, 0, 885, -725, 58.251, 0); + end +end + +function WaypointArrive(e) + e.self:CastSpell(3610, e.self:GetID()); -- Unfold Fletching Kit; Live does this; I assume this is just for the animation/effect? or Sony dev used wrong spell id + eq.get_entity_list():MessageClose(e.self, true, 200, 0, "Flames burst forth from the stake!"); +end + +function BossDeath(e) + eq.signal(TRIBUNAL_TYPE, 12); + + eq.depop_all(CONTROLLER_TYPE); + eq.depop_all(THE_FLAME_TYPE); + wave = 0; +end + +function TrialFail() + eq.signal(TRIBUNAL_TYPE, 6); + + eq.depop_all(CONTROLLER_TYPE); + eq.depop_all(THE_FLAME_TYPE); + wave = 0; +end + +function event_encounter_load(e) + eq.register_npc_event("BurningTrial", Event.spawn, CONTROLLER_TYPE, ControllerSpawn); + eq.register_npc_event("BurningTrial", Event.timer, CONTROLLER_TYPE, ControllerTimer); + + eq.register_npc_event("BurningTrial", Event.death, BOSS_TYPE, BossDeath); + + for _, id in ipairs(MOBS) do + eq.register_npc_event("BurningTrial", Event.spawn, id, MobSpawn); + eq.register_npc_event("BurningTrial", Event.timer, id, MobTimer); + eq.register_npc_event("BurningTrial", Event.combat, id, MobCombat); + if ( id ~= BOSS_TYPE ) then + eq.register_npc_event("BurningTrial", Event.death, id, MobDeath); + eq.register_npc_event("BurningTrial", Event.waypoint_arrive, id, WaypointArrive); + end + end +end diff --git a/pojustice/encounters/ExecutionTrial.lua b/pojustice/encounters/ExecutionTrial.lua new file mode 100644 index 0000000..e04da32 --- /dev/null +++ b/pojustice/encounters/ExecutionTrial.lua @@ -0,0 +1,205 @@ +local WAVE_TIMER = 137000; -- oldEQ/AK timer was ~2:15-2:20. Live is ~1:37 + +local CONTROLLER_TYPE = 201511; -- #Event_Execution_Control +local TRIBUNAL_TYPE = 201508; -- The_Tribunal +local EXECUTIONER_TYPE = 201501; -- an_executioner +local PRISONER_TYPE = 201500; -- a_sentenced_prisoner + +local DARK_NEMESIS_TYPE = 201457; -- a_dark_nemesis +local FIERCE_NEMESIS_TYPE = 201458; -- a_fierce_nemesis +local PRIEST_TYPE = 201484; -- #priest_of_doom +local HERALD_TYPE = 201478; -- #herald_of_destruction +local BOSS_TYPE = 201485; -- #Prime_Executioner_Vathoch +local MOBS = { DARK_NEMESIS_TYPE, FIERCE_NEMESIS_TYPE, PRIEST_TYPE, HERALD_TYPE, BOSS_TYPE }; + +local WAVE_SPAWN_COORDS = { + { + { x = 229, y = -1070 }, + { x = 228, y = -1088 }, + { x = 174, y = -1070 }, + { x = 175, y = -1089 }, + }, + { + { x = 216, y = -1091 }, + { x = 215, y = -1111 }, + { x = 161, y = -1089 }, + { x = 160, y = -1111 }, + }, + { + { x = 216, y = -1070 }, + { x = 228, y = -1112 }, + { x = 175, y = -1110 }, + { x = 161, y = -1070 }, + } +}; + +local controller, executioner, prisoner, killed; + +function ControllerSpawn(e) + eq.set_timer("wave", 26000); + prisoner = eq.spawn2(PRISONER_TYPE, 0, 0, 171, -1167, 81.6, 0); + controller = e.self; + wave = 0; +end + +function ControllerTimer(e) + + if ( e.timer == "wave" ) then + wave = wave + 1; + killed = 0; + + if ( wave == 4 ) then + eq.stop_timer("wave"); + else + eq.set_timer("wave", WAVE_TIMER); + end + eq.set_timer("executioner", 60000); + SpawnWave(); + + elseif ( e.timer == "executioner" ) then + eq.stop_timer("executioner"); + if ( executioner and prisoner ) then + executioner:Say("Very well."); + executioner:CastSpell(982, prisoner:GetID()); + end + + elseif ( e.timer == "prisoner" ) then + eq.stop_timer("prisoner"); + if ( prisoner ) then + prisoner:Emote("bows his head and says nothing."); + end + + elseif ( e.timer == "fail" ) then + eq.stop_timer("fail"); + TrialFail(); + end +end + +function SpawnWave() + local t, roll, mob; + local waveType = math.random(1, 3); + + for _, coords in ipairs(WAVE_SPAWN_COORDS[waveType]) do + + roll = math.random(0, 99); + + if ( roll < 32 ) then + t = DARK_NEMESIS_TYPE; + elseif ( roll < 94 ) then + t = FIERCE_NEMESIS_TYPE; + elseif ( roll < 97 ) then + t = PRIEST_TYPE; + else + t = HERALD_TYPE; + end + mob = eq.spawn2(t, 0, 0, coords.x, coords.y, 75, 128); + end + --[[ + grid: 265, -1051, 75 + 193, -1047, 75 + 194, -1154, 82 + 169.5, -1157, 82 + ]] + if ( not executioner ) then + executioner = eq.spawn2(EXECUTIONER_TYPE, 42, 0, 265, -1051, 75, 192); + end + eq.set_timer("executioner", 40000, controller); +end + +function MobDeath(e) + if ( not controller ) then + return; + end + + killed = killed + 1; + + if ( killed < 4 ) then + eq.set_timer("executioner", 34000, controller); -- AK logs show time from mob kill to prisoner death 34 or 35 seconds + eq.stop_timer("prisoner", controller); + if ( executioner ) then + executioner:GMMove(196, -1058, 75); + executioner:CastToNPC():UpdateWaypoint(1); + executioner:CastToNPC():SetWaypointPause(); + end + else + if ( executioner ) then + executioner:Depop(); + executioner = nil; + end + eq.stop_timer("executioner", controller); + if ( wave == 4 ) then + eq.depop_all(PRISONER_TYPE); + prisoner = nil; + eq.spawn2(BOSS_TYPE, 0, 0, 195, -1157, 82, 0); + end + end +end + +function WaypointArrive(e) + if ( e.wp == 3 ) then + -- in AK logs, this emote is done 16-18 seconds after a kill + e.self:Emote("intones, 'Do you have any final words before your sentence is carried out?'"); + eq.set_timer("prisoner", 3500, controller); + end +end + +function BossDeath(e) + eq.signal(TRIBUNAL_TYPE, 8); + eq.depop_all(CONTROLLER_TYPE); + controller = nil; +end + +function PrisonerDeath(e) + eq.set_timer("fail", 2500, controller); -- delay depops so NPCs can animate + eq.get_entity_list():MessageClose(e.self, true, 200, 0, "The prisoners cry is cut off as his body crumples to the ground. You have failed."); +end + +function TrialFail() + eq.signal(TRIBUNAL_TYPE, 2); + eq.depop_all(PRISONER_TYPE); + prisoner = nil; + eq.depop_all(EXECUTIONER_TYPE); + executioner = nil; + eq.depop_all(CONTROLLER_TYPE); + controller = nil; +end + +function MobSpawn(e) + eq.set_timer("depop", 60000); +end + +function MobTimer(e) + if ( wave > 0 ) then + TrialFail(); + end + wave = 0; + eq.depop(); +end + +function MobCombat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("ExecutionTrial", Event.spawn, CONTROLLER_TYPE, ControllerSpawn); + eq.register_npc_event("ExecutionTrial", Event.timer, CONTROLLER_TYPE, ControllerTimer); + + eq.register_npc_event("ExecutionTrial", Event.waypoint_arrive, EXECUTIONER_TYPE, WaypointArrive); + + eq.register_npc_event("ExecutionTrial", Event.death, BOSS_TYPE, BossDeath); + + eq.register_npc_event("ExecutionTrial", Event.death_complete, PRISONER_TYPE, PrisonerDeath); + + for _, id in ipairs(MOBS) do + eq.register_npc_event("ExecutionTrial", Event.spawn, id, MobSpawn); + eq.register_npc_event("ExecutionTrial", Event.timer, id, MobTimer); + eq.register_npc_event("ExecutionTrial", Event.combat, id, MobCombat); + if ( id ~= BOSS_TYPE ) then + eq.register_npc_event("ExecutionTrial", Event.death, id, MobDeath); + end + end +end diff --git a/pojustice/encounters/HangingTrial.lua b/pojustice/encounters/HangingTrial.lua new file mode 100644 index 0000000..b1a674d --- /dev/null +++ b/pojustice/encounters/HangingTrial.lua @@ -0,0 +1,254 @@ +local WAVE_TIMER = 118000; -- oldEQ/AK timer was ~118-119 seconds. Live is ~88 seconds + +local CONTROLLER_TYPE = 201515; -- #Event_Hanging_Control +local TRIBUNAL_TYPE = 201508; -- The_Tribunal +local PRISONER1_TYPE = 201497; -- a_sentenced_prisoner (aviak) +local PRISONER2_TYPE = 201498; -- a_sentenced_prisoner (wood elf) +local PRISONER3_TYPE = 201499; -- a_sentenced_prisoner (barbarian) + +local BREATHLESS_TYPE = 201449; -- a_breathless_void +local STIFLING_TYPE = 201471; -- a_stifling_nemesis +local SPIRIT1_TYPE = 201489; -- spirit_of_suffocation (enchanter) +local SPIRIT2_TYPE = 201490; -- spirit_of_suffocation (necromancer) +local SPIRIT3_TYPE = 201491; -- spirit_of_suffocation (magician) +local SMOTHERING_TYPE = 201470; -- #a_smothering_nemesis +local PHANTOM_TYPE = 201483; -- #phantom_of_asphyxiation +local BOSS_TYPE = 201477; -- #Gallows_Master_Teion +local MOBS = { BREATHLESS_TYPE, STIFLING_TYPE, SPIRIT1_TYPE, SPIRIT2_TYPE, SPIRIT3_TYPE, SMOTHERING_TYPE, PHANTOM_TYPE, BOSS_TYPE }; + +local WAVE_SPAWN_COORDS = { + { x = 520, y = -1071 }, + { x = 461, y = -1072 } +}; +local SPIRIT_SPAWN_COORDS = { + { x = 440, y = -1134 }, + { x = 489, y = -1136 }, + { x = 541, y = -1139 } +}; +local wave, killed; + +local prisoners = { + [1] = { type = PRISONER1_TYPE, + emote1 = "The prisoner begins to choke as an invisible noose tightens around its neck.", + emote2 = "The prisoner clutches at its throat, trying desperately to breathe.", + emote3 = "The prisoner falls to the ground, legs kicking and fingers clawing at its throat.", + emote4 = "The prisoner gives one final twitch and suddenly becomes still, its limbs no longer flailing. You have failed.", + }, + [2] = { type = PRISONER2_TYPE, + emote1 = "The prisoner begins to choke as an invisible noose tightens around her neck.", + emote2 = "The prisoner clutches at her throat, trying desperately to breathe.", + emote3 = "The prisoner falls to the ground, legs kicking and fingers clawing at her throat.", + emote4 = "The prisoner gives one final twitch and suddenly becomes still, her limbs no longer flailing. You have failed.", + }, + [3] = { type = PRISONER3_TYPE, + emote1 = "The prisoner begins to choke as an invisible noose tightens around his neck.", + emote2 = "The prisoner clutches at his throat, trying desperately to breathe.", + emote3 = "The prisoner falls to the ground, legs kicking and fingers clawing at his throat.", + emote4 = "The prisoner gives one final twitch and suddenly becomes still, his limbs no longer flailing. You have failed.", + }, +}; + + +function ControllerSpawn(e) + eq.set_timer("wave", 26000); + wave = 0; + killed = 0; + for i = 1, 3 do + prisoners[i].spiritId = nil; + prisoners[i].timer = nil; + end +end + +function ControllerTimer(e) + + if ( e.timer == "wave" ) then + wave = wave + 1; + + if ( wave == 4 ) then + eq.stop_timer("wave"); + else + eq.set_timer("wave", WAVE_TIMER); + + if ( wave == 1 ) then + eq.spawn2(PRISONER1_TYPE, 0, 0, 440, -1175, 80.751, 0); + eq.spawn2(PRISONER2_TYPE, 0, 0, 489, -1175, 80.126, 0); + eq.spawn2(PRISONER3_TYPE, 0, 0, 540, -1175, 81.376, 0); + end + end + SpawnWave(); + SpawnSpirit(); + eq.set_timer("spirit", 47000); + + elseif ( e.timer == "spirit" ) then + eq.stop_timer("spirit"); + SpawnSpirit(); + end +end + +function SpawnWave() + local t, roll, mob, coords; + local count = 1; + + for i = 1, 2 do + coords = WAVE_SPAWN_COORDS[i]; + + roll = math.random(1, 100); + if ( roll > 97 and not eq.get_entity_list():IsMobSpawnedByNpcTypeID(SMOTHERING_TYPE) ) then + t = SMOTHERING_TYPE; + elseif ( roll > 48 ) then + t = STIFLING_TYPE; + else + t = BREATHLESS_TYPE; + end + + eq.spawn2(t, 0, 0, coords.x, coords.y, 73, 128); + end +end + +function SpawnSpirit() + local spawned, mob, prisoner, spritType; + local giveup = 1; + local roll = math.random(1, 100); + if ( roll > 97 and not eq.get_entity_list():IsMobSpawnedByNpcTypeID(PHANTOM_TYPE) ) then + spritType = PHANTOM_TYPE; + elseif ( roll > 64 ) then + spritType = SPIRIT1_TYPE; + elseif ( roll > 32 ) then + spritType = SPIRIT2_TYPE; + else + spritType = SPIRIT3_TYPE; + end + + while ( not spawned and giveup < 100 ) do + + roll = math.random(1, 3); + if ( not prisoners[roll].spiritId ) then + + mob = eq.spawn2(spritType, 0, 0, SPIRIT_SPAWN_COORDS[roll].x, SPIRIT_SPAWN_COORDS[roll].y, 73, 128); + + prisoners[roll].spiritId = mob:GetID(); + prisoners[roll].timer = 1; + + prisoner = eq.get_entity_list():GetMobByNpcTypeID(prisoners[roll].type); + if ( prisoner and prisoner.valid ) then + eq.get_entity_list():MessageClose(prisoner, true, 200, 0, prisoners[roll].emote1); + prisoner:SetHeading(128); + eq.set_timer("noose", 17000, prisoner); + end + spawned = true; + end + giveup = giveup + 1; + end +end + +function PrisonerTimer(e) + if ( e.timer == "noose" ) then + + local myType = e.self:GetNPCTypeID(); + + for i = 1, 3 do + if ( prisoners[i].type == myType ) then + + if ( prisoners[i].timer == 1 ) then + eq.get_entity_list():MessageClose(e.self, true, 200, 0, prisoners[i].emote2); + + elseif ( prisoners[i].timer == 2 ) then + eq.get_entity_list():MessageClose(e.self, true, 200, 0, prisoners[i].emote3); + e.self:SetAppearance(3); -- lie down + + elseif ( prisoners[i].timer == 3 ) then + eq.get_entity_list():MessageClose(e.self, true, 200, 0, prisoners[i].emote4); + TrialFail(); + end + prisoners[i].timer = prisoners[i].timer + 1; + return; + end + end + end +end + +function MobSpawn(e) + eq.set_timer("depop", 60000); +end + +function MobTimer(e) + if ( wave > 0 ) then + TrialFail(); + end + wave = 0; + eq.depop(); +end + +function MobCombat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function MobDeath(e) + local myType = e.self:GetNPCTypeID(); + killed = killed + 1; + + if ( myType == SPIRIT1_TYPE or myType == SPIRIT2_TYPE or myType == SPIRIT3_TYPE or myType == PHANTOM_TYPE ) then + local prisoner; + for i = 1, 3 do + if ( prisoners[i].spiritId == e.self:GetID() ) then + prisoners[i].spiritId = nil; + prisoner = eq.get_entity_list():GetMobByNpcTypeID(prisoners[i].type); + if ( prisoner and prisoner.valid ) then + prisoner:Emote("gasps, taking in large breaths and coughing as the invisible noose disappears."); + prisoner:SetAppearance(0); -- stand + prisoner:SetHeading(0); + eq.stop_timer("noose", prisoner); + end + break; + end + end + end + + if ( wave == 4 and killed >= 16 ) then + eq.unique_spawn(BOSS_TYPE, 0, 0, 490, -1052, 76.251, 128); + end +end + +function BossDeath(e) + eq.signal(TRIBUNAL_TYPE, 11); + + eq.depop_all(CONTROLLER_TYPE); + eq.depop_all(PRISONER1_TYPE); + eq.depop_all(PRISONER2_TYPE); + eq.depop_all(PRISONER3_TYPE); + wave = 0; +end + +function TrialFail() + eq.signal(TRIBUNAL_TYPE, 5); + + eq.depop_all(CONTROLLER_TYPE); + eq.depop_all(PRISONER1_TYPE); + eq.depop_all(PRISONER2_TYPE); + eq.depop_all(PRISONER3_TYPE); + wave = 0; +end + +function event_encounter_load(e) + eq.register_npc_event("HangingTrial", Event.spawn, CONTROLLER_TYPE, ControllerSpawn); + eq.register_npc_event("HangingTrial", Event.timer, CONTROLLER_TYPE, ControllerTimer); + + eq.register_npc_event("HangingTrial", Event.timer, PRISONER1_TYPE, PrisonerTimer); + eq.register_npc_event("HangingTrial", Event.timer, PRISONER2_TYPE, PrisonerTimer); + eq.register_npc_event("HangingTrial", Event.timer, PRISONER3_TYPE, PrisonerTimer); + + eq.register_npc_event("HangingTrial", Event.death, BOSS_TYPE, BossDeath); + + for _, id in ipairs(MOBS) do + eq.register_npc_event("HangingTrial", Event.spawn, id, MobSpawn); + eq.register_npc_event("HangingTrial", Event.timer, id, MobTimer); + eq.register_npc_event("HangingTrial", Event.combat, id, MobCombat); + if ( id ~= BOSS_TYPE ) then + eq.register_npc_event("HangingTrial", Event.death, id, MobDeath); + end + end +end diff --git a/pojustice/encounters/LashingTrial.lua b/pojustice/encounters/LashingTrial.lua new file mode 100644 index 0000000..fd2fe75 --- /dev/null +++ b/pojustice/encounters/LashingTrial.lua @@ -0,0 +1,205 @@ +local WAVE_TIMER = 192000; -- oldEQ/AK timer was 3:12. Live is 2:15 + +local CONTROLLER_TYPE = 201512; -- #Event_Lashing_Control +local TRIBUNAL_TYPE = 201508; -- The_Tribunal +local OGRE_TYPE = 201502; -- a_tormented_prisoner +local SPIRIT1_TYPE = 201503; -- a_flickering_spirit (level 15, 450 hp) +local SPIRIT2_TYPE = 201516; -- a_flickering_spirit (level 30, 7000 hp) + +local LASHER_TYPE = 201466; -- a_savage_lasher +local LASHER_RARE_TYPE = 201462; -- #a_harrowing_lasher +local PUNISHER_TYPE = 201463; -- a_malevolent_punisher +local PUNISHER_RARE_TYPE = 201472; -- #a_stinging_nemesis +local SCOURGE_TYPE = 201467; -- a_scourge_of_honor +local BOSS_TYPE = 201479; -- #Lashman_Azakal +local MOBS = { LASHER_TYPE, LASHER_RARE_TYPE, PUNISHER_TYPE, PUNISHER_RARE_TYPE, SCOURGE_TYPE, BOSS_TYPE }; + +local WAVE_SPAWN_COORDS = { + { x = 1402, y = -1179, z = 3, moveX = 1402, moveY = -1129, moveZ = 3 }, + { x = 1357, y = -1061, z = 3, moveX = 1357, moveY = -1111, moveZ = 3 }, + { x = 1357, y = -1179, z = 3, moveX = 1357, moveY = -1129, moveZ = 3 }, + { x = 1402, y = -1060, z = 3, moveX = 1402, moveY = -1111, moveZ = 3 } +}; +local SPIRIT_COORDS = { + { x = 1298, y = -1169, z = -13.247 }, + { x = 1296, y = -1071, z = -13.247 }, + { x = 1155, y = -1119, z = 88.751 } +}; +local OGRE_COORDS = { + { x = 1417, y = -1071, z = -3.5 }, + { x = 1417, y = -1120, z = -3.5 }, + { x = 1412, y = -1168, z = -3.5 }, +}; + +local wave; +local killed; +local scourges; +local scourgeSpirit = {}; -- keep track of entity IDs for the scourges and 'fake' spirits to remove when real one is killed + +function ControllerSpawn(e) + eq.set_timer("wave", 26000); + + for i = 1, 3 do + eq.spawn2(OGRE_TYPE, 0, 0, OGRE_COORDS[i].x, OGRE_COORDS[i].y, OGRE_COORDS[i].z, 192); + end + wave = 0; + killed = 0; + scourges = 0; +end + +function ControllerTimer(e) + + if ( e.timer == "wave" ) then + wave = wave + 1; + + if ( wave == 4 ) then + eq.stop_timer("wave"); + else + eq.set_timer("wave", WAVE_TIMER); + end + eq.set_timer("scourge", math.random(30, 60)*1000); + SpawnWave(); + + elseif (e.timer == "scourge") then + eq.stop_timer("scourge"); + SpawnScourge(); + end +end + +function SpawnWave() + local t, roll, mob; + + for _, coords in ipairs(WAVE_SPAWN_COORDS) do + roll = math.random(0, 99); + if ( roll < 47 ) then + t = LASHER_TYPE; + elseif ( roll < 94 ) then + t = PUNISHER_TYPE; + elseif ( roll < 97 ) then + t = LASHER_RARE_TYPE; + else + t = PUNISHER_RARE_TYPE; + end + mob = eq.spawn2(t, 0, 0, coords.x, coords.y, coords.z, 0); + mob:CastToNPC():MoveTo(coords.moveX, coords.moveY, coords.moveZ, -1, true); + end +end + +function SpawnScourge() + local spirit1, scourge, spirit2; + local scourgeSpiritLoc = math.random(1, 3); + local locs = { [1] = math.random(1,3) }; + + locs[2] = locs[1]; + while (locs[2] == locs[1]) do + locs[2] = math.random(1, 3); + end + + locs[3] = locs[1]; + while (locs[3] == locs[1] or locs[3] == locs[2]) do + locs[3] = math.random(1, 3); + end + + for i, loc in ipairs(locs) do + + if ( i == 1 ) then + spirit2 = eq.spawn2(SPIRIT2_TYPE, 0, 0, SPIRIT_COORDS[loc].x, SPIRIT_COORDS[loc].y, SPIRIT_COORDS[loc].z, 0); + scourge = eq.spawn2(SCOURGE_TYPE, 0, 0, 1334, -1119, 1.126, 64); + scourgeSpirit[spirit2:GetID()] = { scourge:GetID() }; + else + spirit1 = eq.spawn2(SPIRIT1_TYPE, 0, 0, SPIRIT_COORDS[loc].x, SPIRIT_COORDS[loc].y, SPIRIT_COORDS[loc].z, 0); + table.insert(scourgeSpirit[spirit2:GetID()], spirit1:GetID()); + end + end +end + +function TrialFail() + eq.signal(TRIBUNAL_TYPE, 1); + + eq.depop_all(CONTROLLER_TYPE); + eq.depop_all(OGRE_TYPE); + eq.depop_all(SPIRIT1_TYPE); + eq.depop_all(SPIRIT2_TYPE); + + scourgeSpirit = {}; +end + +function Spirit2Death(e) + local depopIds = scourgeSpirit[e.self:GetID()]; + local mob; + if ( depopIds ) then + for _, id in ipairs(depopIds) do + mob = eq.get_entity_list():GetMob(id); + if ( mob:GetNPCTypeID() == SCOURGE_TYPE or mob:GetNPCTypeID() == SPIRIT1_TYPE ) then + mob:Depop(); + end + end + scourgeSpirit[e.self:GetID()] = nil; + end + eq.depop_all(SCOURGE_TYPE); -- killing a 7k hp spirit removes all scourges, but not all the extra spirits + scourges = 0; + + if ( wave == 4 and scourges == 0 ) then + eq.unique_spawn(BOSS_TYPE, 0, 0, 1334, -1119, 1.126, 64); + end +end + +function BossDeath(e) + eq.signal(TRIBUNAL_TYPE, 7); + + eq.depop_all(CONTROLLER_TYPE); + eq.depop_all(OGRE_TYPE); + eq.depop_all(SPIRIT1_TYPE); + eq.depop_all(SPIRIT2_TYPE); + eq.depop_all(SCOURGE_TYPE); + + scourgeSpirit = {}; + wave = 0; +end + +function OgreDeath(e) + eq.get_entity_list():MessageClose(e.self, true, 200, 0, "The prisoner's screams cut off suddenly as he topples over, dead. You have failed."); + TrialFail(); +end + +function MobSpawn(e) + eq.set_timer("depop", 60000); +end + +function MobTimer(e) + if ( wave > 0 ) then + TrialFail(); + end + wave = 0; + eq.depop(); +end + +function MobCombat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function MobDeath(e) + killed = killed + 1; +end + +function event_encounter_load(e) + eq.register_npc_event("LashingTrial", Event.spawn, CONTROLLER_TYPE, ControllerSpawn); + eq.register_npc_event("LashingTrial", Event.timer, CONTROLLER_TYPE, ControllerTimer); + + eq.register_npc_event("LashingTrial", Event.death, OGRE_TYPE, OgreDeath); + eq.register_npc_event("LashingTrial", Event.death, SPIRIT2_TYPE, Spirit2Death); + eq.register_npc_event("LashingTrial", Event.death, BOSS_TYPE, BossDeath); + + for _, id in ipairs(MOBS) do + eq.register_npc_event("LashingTrial", Event.spawn, id, MobSpawn); + eq.register_npc_event("LashingTrial", Event.timer, id, MobTimer); + eq.register_npc_event("LashingTrial", Event.combat, id, MobCombat); + if ( id ~= SCOURGE_TYPE and id ~= BOSS_TYPE ) then + eq.register_npc_event("LashingTrial", Event.death, id, MobDeath); + end + end +end diff --git a/pojustice/encounters/StoningTrial.lua b/pojustice/encounters/StoningTrial.lua new file mode 100644 index 0000000..ba8cf0f --- /dev/null +++ b/pojustice/encounters/StoningTrial.lua @@ -0,0 +1,175 @@ +local WAVE_TIMER = 170000; -- oldEQ/AK timer was ~2:50-2:55. Live is ~2:03 + +local CONTROLLER_TYPE = 201513; -- #Event_Stoning_Control +local TRIBUNAL_TYPE = 201508; -- The_Tribunal +local PITILESS_TYPE = 201475; -- a_pitiless_avenger +local ACCUSED_TYPE = 201504; -- an_accused_prisoner + +local RELENTLESS_TYPE = 201464; -- a_relentless_punisher +local SHADOW_TYPE = 201469; -- a_shadow_grinder +local NEMESIS_TYPE = 201482; -- #nemesis_of_stone +local RUTHLESS_TYPE = 201465; -- #a_ruthless_grinder +local BOSS_TYPE = 201496; -- #Yurae_Zhaleem +local MOBS = { RELENTLESS_TYPE, SHADOW_TYPE, NEMESIS_TYPE, RUTHLESS_TYPE, BOSS_TYPE }; + +local ACCUSED_COORDS = { + { x = -89, y = -1044 }, + { x = -130, y = -1045 }, + { x = -171, y = -1044 }, +}; +local WAVE_SPAWN_COORDS = { + { + { x = -17, y = -1098 }, + { x = -18, y = -1136 }, + }, + { + { x = -109, y = -1233 }, + { x = -148, y = -1230 }, + }, + { + { x = -242, y = -1135 }, + { x = -242, y = -1104 }, + } +}; + +local wave, killed, spawned; +local accusedNpcs = {}; + +function ControllerSpawn(e) + eq.set_timer("wave", 26000); + wave = 0; + killed = 0; + spawned = 0; + + for i = 1, 3 do + accusedNpcs[i] = eq.spawn2(ACCUSED_TYPE, 0, 0, ACCUSED_COORDS[i].x, ACCUSED_COORDS[i].y, 72.19, 128); + end +end + +function ControllerTimer(e) + + if ( e.timer == "wave" ) then + wave = wave + 1; + + if ( wave == 4 ) then + eq.stop_timer("wave"); + else + eq.set_timer("wave", WAVE_TIMER); + end + SpawnWave(); + spawned = spawned + 4; + end +end + +function SpawnWave() + local t, roll, room, lastRoom, mob, coords; + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(PITILESS_TYPE) ) then + mob = eq.spawn2(PITILESS_TYPE, 0, 0, -74, -1183, 73.31, 0); + for i = 1, 3 do + mob:AddToHateList(accusedNpcs[i], 20); + end + mob = eq.spawn2(PITILESS_TYPE, 0, 0, -184, -1183, 73.31, 0); + for i = 3, 1, -1 do + mob:AddToHateList(accusedNpcs[i], 20); + end + end + + for i = 1, 2 do + room = math.random(1, 3); + if ( i == 2 and room == lastRoom ) then + room = lastRoom + 1; + if ( room == 4 ) then + room = 1; + end + end + lastRoom = room; + + for j = 1, 2 do + coords = WAVE_SPAWN_COORDS[room][j]; + + roll = math.random(0, 99); + if ( roll < 47 ) then + t = RELENTLESS_TYPE; + elseif ( roll < 94 ) then + t = SHADOW_TYPE; + elseif ( roll < 97 ) then + t = NEMESIS_TYPE; + else + t = RUTHLESS_TYPE; + end + mob = eq.spawn2(t, 0, 0, coords.x, coords.y, 73.75, 0); + mob:CastToNPC():MoveTo(-130, -1120, 73.75, -1, true); + end + end +end + +function MobSpawn(e) + eq.set_timer("depop", 60000); +end + +function MobTimer(e) + if ( wave > 0 ) then + TrialFail(); + end + wave = 0; + eq.depop(); +end + +function MobCombat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function MobDeath(e) + killed = killed + 1; + if ( killed == spawned ) then + eq.depop_all(PITILESS_TYPE); + if ( wave == 4 ) then + eq.unique_spawn(BOSS_TYPE, 0, 0, -130, -1120, 75, 128); + end + end +end + +function BossDeath(e) + eq.signal(TRIBUNAL_TYPE, 9); + + eq.depop_all(CONTROLLER_TYPE); + eq.depop_all(PITILESS_TYPE); + eq.depop_all(ACCUSED_TYPE); + wave = 0; +end + +function TrialFail() + eq.signal(TRIBUNAL_TYPE, 3); + + eq.depop_all(CONTROLLER_TYPE); + eq.depop_all(PITILESS_TYPE); + eq.depop_all(ACCUSED_TYPE); + wave = 0; +end + +function AccusedDeath(e) + eq.get_entity_list():MessageClose(e.self, true, 200, 0, "The prisoner collapses and lies still, no longer shielding herself from the stones. You have failed."); + TrialFail(); +end + +function event_encounter_load(e) + eq.register_npc_event("StoningTrial", Event.spawn, CONTROLLER_TYPE, ControllerSpawn); + eq.register_npc_event("StoningTrial", Event.timer, CONTROLLER_TYPE, ControllerTimer); + + eq.register_npc_event("StoningTrial", Event.death, ACCUSED_TYPE, AccusedDeath); + eq.register_npc_event("StoningTrial", Event.death, BOSS_TYPE, BossDeath); + + for _, id in ipairs(MOBS) do + eq.register_npc_event("StoningTrial", Event.spawn, id, MobSpawn); + eq.register_npc_event("StoningTrial", Event.timer, id, MobTimer); + eq.register_npc_event("StoningTrial", Event.combat, id, MobCombat); + if ( id ~= BOSS_TYPE ) then + eq.register_npc_event("StoningTrial", Event.death, id, MobDeath); + end + end +end diff --git a/pojustice/encounters/TortureTrial.lua b/pojustice/encounters/TortureTrial.lua new file mode 100644 index 0000000..4485c25 --- /dev/null +++ b/pojustice/encounters/TortureTrial.lua @@ -0,0 +1,217 @@ +local WAVE_TIMER = 172000; -- oldEQ/AK timer was ~172 seconds. Live is ~123 seconds + +local CONTROLLER_TYPE = 201514; -- #Event_Torture_Control +local TRIBUNAL_TYPE = 201508; -- The_Tribunal +local PRISONER_TYPE = 201505; -- a_tortured_prisoner +local PAIN_AND_SUFFERING_TYPE = 201506; -- Pain_and_Suffering +local RELIEF_TYPE = 201507; -- Relief + +local WRAITH_TYPE = 201495; -- wraith_of_agony +local NEMESIS_TYPE = 201481; -- nemesis_of_pain +local TWISTED_TYPE = 201473; -- a_twisted_tormentor +local NEMESIS_NAMED_TYPE = 201480; -- #nemesis_of_despair +local ACCURSED_TYPE = 201474; -- #an_accursed_tormentor +local BOSS_TYPE = 201487; -- #Punisher_Veshtaq +local MOBS = { WRAITH_TYPE, TWISTED_TYPE, NEMESIS_TYPE, NEMESIS_NAMED_TYPE, ACCURSED_TYPE, BOSS_TYPE }; + +local PRISONER_SPAWN_COORDS = { + { x = 905, y = -1157, h = 223 }, + { x = 832, y = -1158, h = 32 }, + { x = 833, y = -1085, h = 95 }, + { x = 906, y = -1084, h = 159 } +}; +local PAIN_SPAWN_COORDS = { + { x = 913, y = -1164 }, + { x = 826, y = -1163 }, + { x = 826, y = -1078 }, + { x = 911, y = -1079 } +}; +local WAVE_SPAWN_COORDS = { + { + { x = 883, y = -1012, h = 128 }, + { x = 854, y = -1013, h = 128 }, + }, + { + { x = 881, y = -1228, h = 0 }, + { x = 856, y = -1224, h = 0 }, + }, +}; + +local wave, killed; +local waveSpawnIds = { [1] = {}, [2] = {}, [3] = {}, [4] = {} }; +local prisonerTable = { [1] = {}, [2] = {}, [3] = {}, [4] = {} }; + +function ControllerSpawn(e) + eq.set_timer("wave", 26000); + wave = 0; + killed = 0; + for i = 1, 4 do + for j = 1, 4 do + waveSpawnIds[i][j] = nil; + end + end +end + +function ControllerTimer(e) + + if ( e.timer == "wave" ) then + wave = wave + 1; + local prisoner, pain; + + if ( wave == 4 ) then + eq.stop_timer("wave"); + else + eq.set_timer("wave", WAVE_TIMER); + + if ( wave == 1 ) then + + eq.spawn2(RELIEF_TYPE, 0, 0, 871, -1123, 58.751, 0); + + for i = 1, 4 do + prisoner = eq.spawn2(PRISONER_TYPE, 0, 0, PRISONER_SPAWN_COORDS[i].x, PRISONER_SPAWN_COORDS[i].y, 58.126, PRISONER_SPAWN_COORDS[i].h); + pain = eq.spawn2(PAIN_AND_SUFFERING_TYPE, 0, 0, PAIN_SPAWN_COORDS[i].x, PAIN_SPAWN_COORDS[i].y, 58.751, 0); + pain:SetSkill(10, 10); -- bash; logs showed they used these + pain:SetSkill(30, 10); -- kick + --pain:AddToHateList(prisoner); + prisonerTable[i][1] = prisoner; + prisonerTable[i][2] = pain; + end + end + end + + for i = 1, 4 do + prisoner, pain = prisonerTable[i][1], prisonerTable[i][2]; + if ( prisoner and prisoner.valid ) then + pain:AddToHateList(prisoner); -- doing this every wave because of the 10 minute timer + end + end + SpawnWave(); + end +end + +function SpawnWave() + local t, roll, mob, coords; + local count = 1; + + for i = 1, 2 do + for j = 1, 2 do + coords = WAVE_SPAWN_COORDS[i][j]; + + roll = math.random(0, 99); + if ( roll < 47 ) then + t = TWISTED_TYPE; + elseif ( roll < 94 ) then + t = NEMESIS_TYPE; + elseif ( roll < 97 ) then + t = NEMESIS_NAMED_TYPE; + else + t = ACCURSED_TYPE; + end + mob = eq.spawn2(t, 0, 0, coords.x, coords.y, 73.75, coords.h); + mob:CastToNPC():MoveTo(875, -1120, 60, -1, true); + waveSpawnIds[wave][count] = mob:GetID(); + count = count + 1; + end + end +end + +function MobSpawn(e) + eq.set_timer("depop", 60000); +end + +function MobTimer(e) + if ( wave > 0 ) then + TrialFail(); + end + wave = 0; + eq.depop(); +end + +function MobCombat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function MobDeath(e) + local isWraith; + killed = killed + 1; + + if ( e.self:GetNPCTypeID() == WRAITH_TYPE ) then + isWraith = true; + local relief = eq.get_entity_list():GetMobByNpcTypeID(RELIEF_TYPE); + if ( relief.valid ) then + relief:CastSpell(1130, relief:GetID()); + end + end + + if ( wave == 4 and killed >= 19 ) then + eq.depop_all(RELIEF_TYPE); + eq.depop_all(PRISONER_TYPE); + eq.depop_all(PAIN_AND_SUFFERING_TYPE); + prisonerTable[1] = {}; prisonerTable[2] = {}; prisonerTable[3] = {}; prisonerTable[4] = {}; + eq.unique_spawn(BOSS_TYPE, 0, 0, 887, -1121, 60, 64); + + elseif ( not isWraith and wave < 4 and wave > 0 ) then + local inWave; + local myId = e.self:GetID(); + + for i = 1, 4 do + for j = 1, 4 do + + if ( waveSpawnIds[i][j] and waveSpawnIds[i][j] == myId ) then + inWave = true; + waveSpawnIds[i][j] = nil; + end + end + if ( inWave ) then + inWave = false; + if ( not waveSpawnIds[i][1] and not waveSpawnIds[i][2] and not waveSpawnIds[i][3] and not waveSpawnIds[i][4] ) then + if ( math.random(0, 99) < 50 ) then + eq.spawn2(WRAITH_TYPE, 0, 0, 887, -1121, 58, 64); + else + eq.spawn2(WRAITH_TYPE, 0, 0, 723, -1119, 88, 64); + end + end + end + end + end +end + +function BossDeath(e) + eq.signal(TRIBUNAL_TYPE, 10); + + eq.depop_all(CONTROLLER_TYPE); + wave = 0; +end + +function TrialFail() + eq.signal(TRIBUNAL_TYPE, 4); + + eq.depop_all(CONTROLLER_TYPE); + eq.depop_all(RELIEF_TYPE); + eq.depop_all(PRISONER_TYPE); + eq.depop_all(PAIN_AND_SUFFERING_TYPE); + prisonerTable[1] = {}; prisonerTable[2] = {}; prisonerTable[3] = {}; prisonerTable[4] = {}; + wave = 0; +end + +function event_encounter_load(e) + eq.register_npc_event("TortureTrial", Event.spawn, CONTROLLER_TYPE, ControllerSpawn); + eq.register_npc_event("TortureTrial", Event.timer, CONTROLLER_TYPE, ControllerTimer); + + eq.register_npc_event("TortureTrial", Event.death, PRISONER_TYPE, TrialFail); + eq.register_npc_event("TortureTrial", Event.death, BOSS_TYPE, BossDeath); + eq.register_npc_event("TortureTrial", Event.death, WRAITH_TYPE, WraithDeath); + + for _, id in ipairs(MOBS) do + eq.register_npc_event("TortureTrial", Event.spawn, id, MobSpawn); + eq.register_npc_event("TortureTrial", Event.timer, id, MobTimer); + eq.register_npc_event("TortureTrial", Event.combat, id, MobCombat); + if ( id ~= BOSS_TYPE ) then + eq.register_npc_event("TortureTrial", Event.death, id, MobDeath); + end + end +end diff --git a/pojustice/player.lua b/pojustice/player.lua new file mode 100644 index 0000000..47f21ae --- /dev/null +++ b/pojustice/player.lua @@ -0,0 +1,29 @@ +local SEVENTH_HAMMER_TYPE = 201074; + +function event_enter_zone(e) + if ( (e.self:GetY() < -900 and e.self:GetX() > -300) or (e.self:GetY() < -600 and e.self:GetX() > 700) ) then + -- move player out of trial areas if they log in from camping there + e.self:MovePC(201, 473, 685, 10, 0); -- pojustice, blue portal tribunal room + end +end + +function event_timer(e) + if ( e.timer == "seventh" ) then + eq.stop_timer("seventh"); + + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(SEVENTH_HAMMER_TYPE) ) then + if ( eq.get_entity_list():GetNPCByNPCTypeID(SEVENTH_HAMMER_TYPE):IsEngaged() ) then + return; + end + end + e.self:MovePC(201, 76, 1310, 10, 256); -- pojustice, seventh hammer room + end +end + +function event_click_door(e) + local id = e.door:GetDoorID(); + + if ( id >= 1 and id <= 6 and e.self:GetItemIDAt(0) == 31599 ) then -- The Mark of Justice + eq.set_timer("seventh", 1); -- need timer because script executes before normal door teleport + end +end diff --git a/pojustice/script_init.lua b/pojustice/script_init.lua new file mode 100644 index 0000000..8e45c32 --- /dev/null +++ b/pojustice/script_init.lua @@ -0,0 +1,6 @@ +eq.load_encounter("LashingTrial"); +eq.load_encounter("ExecutionTrial"); +eq.load_encounter("StoningTrial"); +eq.load_encounter("TortureTrial"); +eq.load_encounter("HangingTrial"); +eq.load_encounter("BurningTrial"); diff --git a/pojustice/tormented_wraith.lua b/pojustice/tormented_wraith.lua new file mode 100644 index 0000000..67c954a --- /dev/null +++ b/pojustice/tormented_wraith.lua @@ -0,0 +1,33 @@ +-- there are two types of NPCs with this name + +function event_say(e) + if ( e.self:GetNPCTypeID() == 201055 ) then + e.self:Emote("glares at you and does not respond."); + else + e.self:Emote("wails, sending a chill throughout your bones."); + end +end + +function event_death_complete(e) + + if ( e.self:GetNPCTypeID() == 201055 ) then + local spawnId = e.self:GetSpawnPointID(); + local roll = math.random(0, 99); + local t; + + if ( spawnId == 345579 ) then + t = 201336; -- Exiled_Soldier_of_Marr + elseif ( spawnId == 345591 ) then + t = 201440; -- Exiled_Trooper_of_Marr + elseif ( spawnId == 345592 ) then + t = 201441; -- Exiled_Officer_of_Marr + end + + if ( roll < 50 ) then + eq.get_entity_list():MessageClose(e.self, true, 100, 0, "As the shade receives a killing blow, its weakened form falls to the ground, idle and still."); + eq.unique_spawn(t,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + else + eq.get_entity_list():MessageClose(e.self, true, 100, 0, "As the shade receives a killing blow, its image wavers for a moment, weakened, then fades away, unable to maintain its form."); + end + end +end diff --git a/pojustice/wraith_of_agony.lua b/pojustice/wraith_of_agony.lua new file mode 100644 index 0000000..f578aac --- /dev/null +++ b/pojustice/wraith_of_agony.lua @@ -0,0 +1,7 @@ +function event_combat(e) + eq.signal(201450, 8); +end + +function event_death_complete(e) + eq.signal(201450, 8); +end diff --git a/poknowledge/Acomar_Lothwol.lua b/poknowledge/Acomar_Lothwol.lua new file mode 100644 index 0000000..c5c39e5 --- /dev/null +++ b/poknowledge/Acomar_Lothwol.lua @@ -0,0 +1,34 @@ +--Beginner Magic Manual + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:DoAnim(70); + if(e.other:HasItem(28745) and e.other:GetLevel() > 19) then -- must have Planar Traveler's Manual for this response + e.self:Say("It is good to see you. " .. e.other:GetCleanName() .. ". As a teacher, my job is to share the knowledge of all things mystical with eager students. I sense you have obtained the basics of planar knowledge, you are now ready to begin your first lesson in the ways of magical ability. Are you [willing to learn] what life has to offer?"); + else + e.self:Say("It is good to see you. " .. e.other:GetCleanName() .. ". I trust the people of New Tanaan have treated you well thus far. It is refreshing to see so many people of different cultures coming together in harmony. don't you think? So many shared experiences from all corners of the universe provide us with a great benefit of wisdom. As a teacher, my job is to share the knowledge of all things mystical with eager students. If you are truly interested in knowledge, you should prepare yourself with the basics first. A solid foundation leads to a new heights of achievement."); + end + elseif(e.other:HasItem(28745) and e.other:GetLevel() > 19 and e.message:findi("willing to learn")) then + e.self:DoAnim(57); + e.self:Say("The use of magic can be a taxing ordeal on the body, and quite often may leave you in a weakened state. Fortunately, I happen to know of a rather rejuvenating meal that will grant new power to your condition. If you are not familiar with the recipe for [Hobgoblin Surprise], I can tell you. What you must do is bring me some as well as your Planar Traveler's Manual. I hope you won't be long, for I am beginning to get quite hungry."); + elseif(e.other:HasItem(28745) and e.other:GetLevel() > 19 and e.message:findi("hobgoblin surprise")) then + e.self:DoAnim(57); + e.self:Say("Don't be put off by the name, it's actually quite tasty. To make Hobgoblin Surprise, get a pie tin, some bread, add some hobgoblin meat and brown gravy. Cook it in the oven and enjoy the results. Mmm mmm, it waters my mouth just thinking about it."); + elseif(e.message:findi("willing to learn")) then + e.self:DoAnim(48); + e.self:Say("I am glad to see you are willing to learn, however I'm afraid you are not ready for my teachings. Come back when you have acquired the proper tools of learning."); + elseif(e.message:findi("hobgoblin surprise")) then + e.self:DoAnim(64); + e.self:Say("I am glad to see you are willing to learn, however I'm afraid you are not ready for my teachings. Come back when you have acquired the proper tools of learning."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetLevel() > 19 and item_lib.check_turn_in(e.self, e.trade, {item1 = 29751, item2 = 28745})) then--Hobgoblin Surprise, Planar Traveler's Manual + e.self:Say("How delicious! You have done well here, I can't remember how long it's been since I've tasted a meal so fine. Take this book, it will certainly help you in your use of the magical arts. When you are ready, Cadelid Etord will give you your next lesson, so be sure to speak to him. Do not lose your book or else he may not appreciate you coming to class unprepared."); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,math.random(10),math.random(10),math.random(0,5),28795,500000); --Beginner Magic Manual + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Agrakath_Theric.lua b/poknowledge/Agrakath_Theric.lua new file mode 100644 index 0000000..b8c0138 --- /dev/null +++ b/poknowledge/Agrakath_Theric.lua @@ -0,0 +1,18 @@ +--Willamina's Needles +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("regards you indifferently. 'You appear to be new around here, as I have not seen your face walking these streets before. If you have come seeking knowledge, the library of Myrist will be a most excellent resource for you. If you have come for any other reason, I'm afraid your quest will not go very far with me, as I do not have much time to hear of your escapades. Good day.'"); + elseif(e.message:findi("erase the debt")) then + e.self:Emote("grins and says, 'So, that weasel Caden has sent you to settle his debt? And you actually agreed to this endeavor? Ha ha, very well! I shall transfer the responsibility of what Caden owes me to your shoulders. I have a simple job for you. Somewhere in the library there lies a book I have been searching for, but it has eluded me for quite some time. I believe it can be found somewhere in the upper levels. You are to venture into Myrist and seek out a tome titled History of Evils: The Age of Scale, and bring it to me. Do this one task for me and your debt shall be relinquished.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28188})) then--History of Evils: The Age of Scale + e.self:Emote("eyes go wide with surprise as you hand over the book. 'Very impressive for one of your abilities. Here, take this note to Caden. He is absolved of his debt to me at this time.'"); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,28084,100);--Note to Caden + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Aid_Eino.lua b/poknowledge/Aid_Eino.lua new file mode 100644 index 0000000..800684d --- /dev/null +++ b/poknowledge/Aid_Eino.lua @@ -0,0 +1,14 @@ +function event_say(e) + if ( e.other:HasItem(16260) ) then -- Tiny Gold Fist + if(e.message:findi("hail")) then + e.self:Say("Why hello " .. e.other:GetCleanName() .. "! It is good to see you again after our adventure in the Plane of Nightmare. Know that you have shown your worth to both Kerasha and myself. Should you ever need anything feel free to call upon us. May Quellious guide your path in the Planes!"); + end + else + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. "! I am Eino, Monk of Quellious and Aid to Councilwoman Kerasha! I spend my time as protector to the councilwoman as well as taking small jaunts to the planes to obtain items for her magic research. If you be a hearty individual with some allies you may be able to help me."); + end + if(e.message:findi("help")) then + e.self:Say("Then meet me this night in the Plane of Nightmares. Near the waterfall of the upper plateau is a large tree. Should you see a soft glow, know that I am about. Signal to me by saying 'Quellious be my guide'. I shall emerge from my concealment."); + end + end +end diff --git a/poknowledge/Aid_Fimli.lua b/poknowledge/Aid_Fimli.lua new file mode 100644 index 0000000..1f28def --- /dev/null +++ b/poknowledge/Aid_Fimli.lua @@ -0,0 +1,24 @@ +--Cloak of Lesser Pernicity +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. "! I wish I had time to chatter but my duties to the list and the Grand Librarian keep me extremely busy."); + elseif(e.message:findi("duties")) then + e.self:Say("I am the aid for the Grand Librarian he has me cataloging tomes on the master list. I spend so much time working on the list I haven't had time to go collect these items from the planes my uncle in Ak'Anon keeps pestering me over. He wants to upgrade his scrapyard back in Ak'Anon, and says only these items will do. Would you be willing to do me a favor?"); + elseif(e.message:findi("favor")) then + e.self:Say("Wonderful! If you would gather the following; a bundle of superconductive wires, silicorrosive grease, a gold tipped boar horn and a shard of pure energy, then take them to my uncle Sanfyrd in Ak'Anon. I would really appreciate being able to get back to my work uninterrupted."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 15980})) then --Note to Fimli + e.self:Say("Great! I see you got the items to uncle; perhaps he will stop badgering me now and let me be in my work. Hmmmmm, Uncle mentions in his letter that he worked out a way for a gnome to make a giant set of crab crackers. He states it is useless in Norrath but I may be able to make some use of it out here. I guess it wouldn't hurt to share it with you and file it away in the library. To create the cracker combine two metal rods, firewater and a knuckle joint in a toolbox. Interesting indeed, anyways here if your reward; I hope you can put it to good use."); + e.other:QuestReward(e.self,0,0,0,0,15807,1000); --Cloak of Lesser Pernicity + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Aid_Garuuk.lua b/poknowledge/Aid_Garuuk.lua new file mode 100644 index 0000000..6b5bdf8 --- /dev/null +++ b/poknowledge/Aid_Garuuk.lua @@ -0,0 +1,25 @@ +--Hoop of the Traveller +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hullo traveler, an' welcum ta New Tanaan. Have ya been sittin' in da library very long? Da pages contained whif'in dese walls hold many inturestin' bits uv knowledge. As aides ta da council, our job is ta help assist our represenuhtives wif da task uv cullectin' more an' more knowledge fer da library. Right now I'm busy researchin' artifacts uv power fer Srethix but I'm missin' sum books I need. An' worse den dat, all dis werk has made me late in deliverin' sum supplies ta Grobb. Do ya think you could [give me a hand] whif dat?"); + elseif(e.message:findi("hand")) then + if(e.other:Race() == "Troll") then + e.self:Say("Dat wud be great! My cuzin has been lookin' fer sum new ingredients ta experuhment whif his alchemy. I wuz suppos'd ta bring him sum but I didn't have da time. If you could get a Swirling Banshee Essense, Arachnae Fangs, a Wrulon Claw, an' a Blood Raven Tailfeather, take dem ta my cuzin Bregna in Grobb. He'll be most happy ta see dem delivured."); + else + e.self:Say("Umm, on secund thought, maybe you shudn't help me after all. Da trolls where I come frum aren't as kind an' undurstandin' as I am."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28740})) then --Troll Receipt + if(e.other:Race() == "Troll") then + e.self:Say("Great! I see you got da supplies ta Bregna after all. I wuz worried you might not make it too. Silly me fer tinkin' dat. Here, you can have dis as payment fer yer time. Oh hey, if you got sum more time, maybe you can help me again? Srethix is lookin' fer sum books, but I don't know where dey be at. You shud ask Srethix what books you can help him find. I put in a gud werd fer you, don't worry!"); + e.other:QuestReward(e.self,0,0,0,0,2418,1000); --Hoop of the Traveler + else + e.self:Say("What's dis? A receipt frum a " .. e.other:Race() .. "? You cud not have gottun dis from Bregna, dis must be a forgury. I'll keep dis so you can't fool anywun else whif dis again."); + end + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Aid_Grimel.lua b/poknowledge/Aid_Grimel.lua new file mode 100644 index 0000000..b954689 --- /dev/null +++ b/poknowledge/Aid_Grimel.lua @@ -0,0 +1,142 @@ +--PoP Crafting quests/Signets of the Councilmen/Planar Progression +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + + if ( e.message:findi("hail") ) then + e.self:Say("Greetings and Salutations " .. e.other:GetCleanName() .. "! I am Grimel, aid to the mighty paladin Councilman Taldarius. In between his duties to the city, Taldarius and I spend most of our time in the Planes cleansing evil. Even now I am preparing for battle. Taldarius intends to go further into the Planes than ever before on our next trip and I am working on gathering the special supplies we need. If you are willing to help I may have some use for your skills if you are a master of trades and have traveled in the Planes."); + + elseif ( e.message:findi("willing to help") ) then + e.self:Say("Excellent! I am looking for a smith to add a special imbue to Councilman Taldarius's armor. Are you well versed in the art of smithing?"); + + elseif ( e.message:findi("versed in the art of smithing") ) then + if ( qglobals.fuirstel and qglobals.fuirstel == "5" ) then -- Grummus and Bertox series complete + if ( e.other:GetRawSkill(63) > 219 ) then -- Blacksmithing + e.self:Say("Thank you for offering to help " .. e.other:GetCleanName() .. ". Take this breastplate and clean it with a diluted acid wash to get all of the debris out of it. Brew the wash by combining acid and three celestial essences. Once the armor is cleaned, coat it with hurricane temper. Finally add two black diamonds of nightmare to the breastplate. This should provide adequate protection for our next journey."); + e.other:SummonCursorItem(15984); -- Filthy Breastplate + else + e.self:DoAnim(52); -- not sure what this is supposed to be. a quick laugh I guess? but this is what Sony uses + e.self:Say("I would not trust you to make a file, much less touch Councilman Taldarius's armor! Come back when you are more skilled in the craft."); + end + else + e.self:DoAnim(52); + e.self:Say("I am sorry, but one who has such limited knowledge of the Planes would not be able to assist me."); + end + + elseif ( e.message:findi("have skill in brewing") ) then + if ( qglobals.thelin and qglobals.thelin == "4" ) then -- Terris/Thelin series complete + if ( e.other:GetRawSkill(65) > 219 ) then -- Brewing + e.self:Say("I bet you could make a wicked brew! However I am forced to drink a refreshing drink while out adventuring. I do have this powder that will give the best drinks quite a bite though. Mix the powder in with two Kaladim Constitutionals and a flask of pure water. If you need more dust just ask for it! Put three twice brewed constitutionals and the signet in this drink barrel. As hard as drink barrels are to get these days, you need to return it to me along with the drink you create with it."); + e.other:SummonCursorItem(17179); --Portable Drink Barrel + e.other:SummonCursorItem(15992,1); --Fermenting Dust + e.other:SummonCursorItem(15992,1); --Fermenting Dust + e.other:SummonCursorItem(15992,1); --Fermenting Dust + else + e.self:DoAnim(63); -- laugh with knee slap + e.self:Say("I am not picky with what I drink however the swill you could brew I wouldn't force on a Bubonian! Come back when you have gained more skill."); + end + else + e.self:DoAnim(52); + e.self:Say("I am sorry, but one who has such limited knowledge of the Planes would not be able to assist me."); + end + + elseif ( e.message:findi("jewel craft skills to the test") ) then + if ( qglobals.saryrn or qglobals.cipher ) then -- Saryrn flag + if ( e.other:GetRawSkill(68) > 219 ) then -- Jewelcraft + e.self:Say("My hand was crushed when I used it to deflect a blow from a War Boar that was headed towards Taldarius's back. For some time afterwards my hand was crippled but Brell saw to it I regained full use of it. The ring I used to wear was damaged beyond repair and my hand was never steady enough to etch a new one. If you would make me a new one by combining a mounted blue diamond, the etching dust and etching tools in a jewelry kit. Then take the faceted gem and combine it with a bar of pure enchanted velium and my signet. I have no idea how the pure bars are made. You may want to seek the help of the ice dwarves."); + e.other:SummonCursorItem(15988); -- Etching Dust + else + e.self:Say("While you may have mastered the arts of smithing and brewing, I still find your ability to work with gems lacking. Return when you are more skilled."); + end + else + e.self:DoAnim(52); + e.self:Say("While you do have some knowledge of the Planes, you are lacking what I require for any further tasks."); + end + + elseif ( e.message:findi("ready to use some clay") ) then + if ( qglobals.zeks and (qglobals.zeks == "6" or qglobals.zeks == "7") ) then -- cipher and zek brothers killed + if ( e.other:GetRawSkill(69) > 219 ) then -- Pottery + e.self:Say("On our last tome gathering expedition a stray arrow in the Plane of War struck our urn filled with sacred water. It was quite a waste of sacred water! Three large enchanted blocks of clay, three lacquered opals, a vial of purified mana, a ceramic lining, sculpting tools and the urn pattern should make an unfired urn. The urn is so large you will need to fire it with three divine crystalline glazes. Once you have the urn it needs to be filled with three sacred waters and the signet as a cap."); + e.other:SummonCursorItem(16243); -- Urn Pattern + else + e.self:DoAnim(63); -- laugh with knee slap + e.self:Say("I once saw a house built out of sun-fired clay, with your skills I wouldn't wager you could build more than a rickety birdhouse. Please don't crush any birds."); + end + else + e.self:DoAnim(52); + e.self:Say("While you do have some knowledge of the Planes, you are lacking what I require for any further tasks."); + end + + elseif ( e.message:findi("skilled with the needle") ) then + if ( qglobals.pofire and qglobals.pofire == "2" ) then -- PoFire access + if ( e.other:GetRawSkill(61) > 219 ) then -- Tailoring + e.self:Say("I appreciate the help " .. e.other:GetCleanName() .. ". I need a new tunic made for Councilman Taldarius. Last trip through the Plane of Disease, one of those flies spit mucus on him and it dripped through his armor seams! The result was a gooey mess that ate away all the leather underneath. It was a blessing he was wearing something under all that metal! Combine three firesilk swatches, a vial of purified mana, an emblem of fire, a firestrand curing agent, a tunic pattern and the signet. Bring it to me when you have completed it."); + else + e.self:DoAnim(63); -- laugh with knee slap + e.self:Say("With your ability I think you would have trouble mending a pair of socks! Seek me out when you are more skilled."); + end + else + e.self:DoAnim(52); + e.self:Say("Your knowledge of the Planes is impressive, however you still have much to learn."); + end + + elseif ( e.message:findi("skills with a fletching knife") ) then + if ( qglobals.pofire and qglobals.pofire == "2" ) then -- PoFire access + if ( e.other:GetRawSkill(64) > 219 ) then -- Fletching + e.self:Say("Aye I can see you are skilled with the fletching knife " .. e.other:GetCleanName() .. ". It is good too, I need to replace Councilman Taldarius's bow from Plane of Air. Combine a planing tool, two wind metal bow cams, an air arachnid silk string, a featherwood staff and the signet. I hope the bow will be up to his standards, he sure loved his old bow."); + else + e.self:DoAnim(63); -- laugh with knee slap + e.self:Say("Stringing a bow requires much time and patience. I am afraid I have a limited amount of both right now to watch your fruitless attempts. I would go observe some elves working the craft, and hope to learn something."); + end + else + e.self:DoAnim(52); + e.self:Say("Your knowledge of the Planes is impressive, however you still have much to learn."); + end + + elseif ( e.message:findi("master chef") ) then + if ( qglobals.pofire and qglobals.pofire == "2" and qglobals.zebuxoruk and qglobals.zebuxoruk == "2" ) then -- all elemental planes + if ( e.other:GetRawSkill(60) > 219 ) then -- Baking + e.self:Say("When we adventure in the Planes there is only one meal that keeps us in top fighting shape. It is called a Bristlebane's Party Platter. Unfortunately the platter is awkward and not easy to adventure with so you need to place them in this satchel. I know not how to make the Platter, a rather nice female Halfling cleric always used to deliver them to us but I heard she was crushed by a Regrua while hunting for a rare component in the Plane of Water. Brell bless her soul! Combine three of the platters and the signet inside the satchel."); + e.other:SummonCursorItem(17180); -- Field Satchel + else + e.self:DoAnim(63); -- laugh with knee slap + e.self:Say("If I wanted bad food I would still be in Rivervale consuming that slop Ella passes off as fine cuisine. Seek me out when you have mastered the frying pan."); + end + else + e.self:DoAnim(52); + e.self:Say("Your knowledge of the Planes is impressive, however you still have much to learn."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 15985})) then --Imbued Breastplate + e.self:Emote("smiles. 'What a wonderful job! Councilman Taldarius shall wear this on our next adventure, I am sure he will find it more protective than his old one. Take this signet as a token of my gratitude. If you are not too busy I have another task, do you have any brewing skill?'"); + e.other:QuestReward(e.self,0,0,0,0,16249); --Hardened Leather Signet + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 15993, item2 = 17179})) then --Portable Drink and Portable Drink Barrel + e.self:Emote("gulps down a Twice Brewed Constitutional and burps loudly! 'Ahhhh that was refreshing! That should hold me over for quite some time. I see you are quite deft of hand, perhaps you would care to put your jewel craft skills to the test?'"); + e.other:QuestReward(e.self,0,0,0,0,16250); --Clay Signet + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 15991})) then --Velium Blue Diamond Ring + e.self:Emote("grins. 'Quite a nice ring you have made for me " .. e.other:GetCleanName() .. ". May it serve me as well as my old ring. Here take this signet. We seem to be finishing the tasks on my list at a nice pace. Tell me when you are ready to use some clay."); + e.other:QuestReward(e.self,0,0,0,0,16251); --Wooden Signet + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 16246})) then --Filled Sacred Urn + e.self:Say("Outstanding work " .. e.other:GetCleanName() .. "! I can feel the purity of the water radiating through the clay. Are ye skilled with the needle as well as an accomplished potter?"); + e.other:QuestReward(e.self,0,0,0,0,16252); --Metal Signet + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 15986})) then --Fire Undergarment Tunic + e.self:Emote("Aid Grimel inspects the tunic. 'Good work " .. e.other:GetCleanName() .. ". This will definitely serve Councilman Taldarius well. Here take this! If you have skills with a fletching knife I may have a job for you to do.'"); + e.other:QuestReward(e.self,0,0,0,0,1079); --Marked Signet + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 16247})) then --Signet Featherwood Bow + e.self:Say("Masterful work " .. e.other:GetCleanName() .. "! I can see your skill in the curves of the bow. Take this as a sign of my respect for your skill. The last item I need before we can be off is some food. I warn you this will truly test your skills. Do you fancy yourself a master chef?"); + e.other:QuestReward(e.self,0,0,0,0,16254); --Runed Signet + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 16248})) then --Food Satchel + e.self:Say("Truly amazing! Now the Councilman and I can be off on our expedition to the Elemental Planes!' He takes out a tool and marks his signet before handing it to you, 'Before we depart you may want to ask the Councilman about the signet."); + e.other:QuestReward(e.self,0,0,0,0,16256); --Marked Runed Signet + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Alexis_Dubbani.lua b/poknowledge/Alexis_Dubbani.lua new file mode 100644 index 0000000..5da7f5e --- /dev/null +++ b/poknowledge/Alexis_Dubbani.lua @@ -0,0 +1,21 @@ +--Quest Name: Alexis' Book Collection + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Why hello there. " .. e.other:GetCleanName() .. ". I'm so glad you could take the time to see my exhibit. I am a collector of [books]. and I seek many more volumes of strange and wonderful texts. Perhaps I could hire your services to help me find some more?"); + elseif(e.message:findi("books")) then + e.self:Say("I am still looking for the following. Please locate a Black Tome with Silver Runes, Tome of the Eternal, Codex of the Warrior, and a Book of Inspiration. Please store them inside a Collector's Box you can get from [Merri] for safekeeping. After you find all the books, be sure to close the box and return it to me. I appreciate your help."); + elseif(e.message:findi("merri")) then + e.self:Say("Curator Merri is the founder of the museum in the Selia district of New Tanaan. She is a true visionary and a wonderful person as well. It is her dream to turn life's love into something truly grand. She also carries with her the Collector's Boxes. If you need one, be sure to ask her for it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28081})) then + e.self:Say("These volumes will add to my collection greatly! You are too kind to have done this task for me, please accept this gift with my thanks."); + e.other:QuestReward(e.self,0,0,0,0,28240); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Amile_Pitt.lua b/poknowledge/Amile_Pitt.lua new file mode 100644 index 0000000..00673ad --- /dev/null +++ b/poknowledge/Amile_Pitt.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings. " .. e.other:GetCleanName() .. ". If you have come searching to restock on goods. then I am most glad to see you. Please. browse my wares and purchase whatever you need from my stock."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Arch_Mage_Deidus.lua b/poknowledge/Arch_Mage_Deidus.lua new file mode 100644 index 0000000..8186f08 --- /dev/null +++ b/poknowledge/Arch_Mage_Deidus.lua @@ -0,0 +1,25 @@ +--Arch_Mage_Deidus.pl +--Planar Armor Exchange/Magician Tomes/Some other text, preserved but cleaned + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("gives a loathsome, unwavering stare upon " .. e.other:GetCleanName() .. ". His features are steely and cold in their disdain. 'Kartis is the place of shadow - the cornerstone of the seed of corruption in this universe. You have no place here as you are. Return to Selia. for you will find nothing of use to you here. If you intend to decipher the purpose of the shadow or interrupt the training of our disciples, then you are grievously mistaken in your cause. We will share nothing with the likes of you in the ways of knowledge. Though slowly, if you choose to remain, we shall corrupt and contort you to our will. Even through mere acts of training, you will be fueling the shadow and will become a part of it unwittingly or no.'"); + end +end +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {1239, 1240, 1241, 1242, 1243, 1244, 1245}); --Apothic Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Arch_Mage_Narik.lua b/poknowledge/Arch_Mage_Narik.lua new file mode 100644 index 0000000..b56ca97 --- /dev/null +++ b/poknowledge/Arch_Mage_Narik.lua @@ -0,0 +1,34 @@ +--Willamina's Needles/Planar Armor Exchange/Magician Tomes + +function event_say(e) + if(e.message:findi("Hail")) then + if(e.other:Race() == "Dark Elf" or e.other:Race() == "Iksar" or e.other:Race() == "Troll" or e.other:Race() == "Ogre" or e.other:Class() == "Shadowknight" or e.other:Class() == "Necromancer") then + e.self:DoAnim(26); + e.self:Emote("raises a brow and gives an emotionless stare of objective study toward " .. e.other:GetCleanName() .. ", 'You seem out of place -- perhaps lost. The district of Kartis is not far from here and I believe you would be received more properly among your own kind of the shadows. Do not take offense to this suggestion, for that is merely all it is. Though we of Tanaan are beings of pure and strict neutrality, regarding zealous boasting of both light and darkness to be counter productive to the natural order of knowledge and enlightenment, that does not necessarily mean you are wholly unwelcome among us. However, if you choose on remaining in our district for a time, do be careful when you choose to return to Norrath. The devices here would likely take you to a place of your demise.'"); + else + e.self:DoAnim(48); + e.self:Emote("gives a gentle smile and polite bow of respect to " .. e.other:GetCleanName() .. ", 'Greetings and welcome to the district of Tanaan, traveler. This place of neutrality is quite content to have you among us, learning from us what we humbly can teach you. Many adepts who were adventurers not too different from yourself have stepped forward and offered their memories as present lessons to those willing to learn of them. I myself was a master of the elements in my time, though I do not make this declaration as one that craves due respect for the title. Rather, I hope that you may perhaps be of the same path and if you need tutoring in the way of skills, then I would be more than pleased to oblige your needs.'"); + end + elseif(e.message:findi("jewel")) then + e.self:Emote("slams his book shut. 'So, the snake has legs after all! Tell Onirelin if he wants this back, he can come here himself and kiss my. . ., no wait. I have a better idea.' He draws closer and whispers, 'Did Onirelin tell you why I took this jewel? I did it in response to him taking my lady love, Elisha Dirtyshoes. We were to be married until she ran off with him. However, she also ran off with my engagement ring I gave to her. It is quite valuable to me, and I would be most happy to have it back. If you can procure it from her, I'll give Onirelin his jewel back. He's suffered long enough, I think.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {1239, 1240, 1241, 1242, 1243, 1244, 1245}); --Apothic Armor + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28087})) then --Narik's Ring + e.self:Say("This is truly excellent. You have done well recovering this for me. You may take Onirelin's jewel and also tell him never to set foot near me again. Leave me now, I have much work to do."); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,28088,100); --Onirelin's Jewel + end + + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Arch_Mage_Olera.lua b/poknowledge/Arch_Mage_Olera.lua new file mode 100644 index 0000000..7e1f2f4 --- /dev/null +++ b/poknowledge/Arch_Mage_Olera.lua @@ -0,0 +1,25 @@ +--Arch_Mage_Olera.pl +--Planar Armor Exchange/Magician Tomes + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("gives an almost unearthly graceful gesture in warm welcoming of " .. e.other:GetCleanName() .. ". 'May the light of honor, valor, and untainted passion guide you through the dark turmoil of this dreaded era. I am very pleased to see you before us, friend, for the children of the light must all come together in this dark hour of Norrath and the universe's fate. If you have need of guidance in the ways of the elements, then what humble knowledge I have is at your disposal, my friend.'"); + end +end +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {1239, 1240, 1241, 1242, 1243, 1244, 1245}); --Apothic Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Assassin_Daran.lua b/poknowledge/Assassin_Daran.lua new file mode 100644 index 0000000..d0c20ad --- /dev/null +++ b/poknowledge/Assassin_Daran.lua @@ -0,0 +1,24 @@ +--Rogue Tomes/Planar Armor Exchange +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("grins wildly at " .. e.other:GetCleanName() .. ". An uncomfortable presence washes over you in a split moment as you catch the halfling's narrowed eyes searching every inch of your person. 'Hail, greetings, and well met, friend! I am Daran, rogue extraordinaire! Rather, I am -the- rogue, I should say. A'course I dinnae boast, my friend! Aww. . . dinnae be offended or feel inferior, but be honored that ye stand in my presence. Well, enough of the introductions then, yes? Hrm. . . what have we here? Perhaps ye be a rogue, hrm? Ye seek my infinite and unsurpassed cunning and prowess perhaps to teach ye? Well then, if it is a master of the shadows that you wish to be, then I be the man who will most assuredly make a proper rogue out of you yet.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {4901, 4902, 4903, 4904, 4905, 4906, 4907}); --Woven Shadow Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Assassin_Mirot.lua b/poknowledge/Assassin_Mirot.lua new file mode 100644 index 0000000..b2b9e0d --- /dev/null +++ b/poknowledge/Assassin_Mirot.lua @@ -0,0 +1,25 @@ +--Rogue Tome Handins/Planar Armor Exchange +---- Added update for Training Day - mrhodes +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("gives a sharply raised brow and cruelly wicked smirk, his comely features contorted in a sinister mask of disgust and amusement. 'Well, how charming of you to find it within your heart to visit Kartis, my dear pathetic " .. e.other:GetCleanName() .. ". Do not think that you will be received in the manner you had hoped, for we are in the city of knowledge where tolerance for all beings to one extent or another is mandatory. Aaaah, yes, we will tolerate your existence among us, but only for the amusement of watching you squirm uncomfortably when presented with the truth of our purpose. Even further the amusement would stretch is if you would have the audacity to train from one of our adepts -- who are, I assure you, most eager to lend their dark arts to you, for it only fuels the shadow, despite your intent on learning from us.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {4901, 4902, 4903, 4904, 4905, 4906, 4907}); --Woven Shadow Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Assassin_Rysarieul.lua b/poknowledge/Assassin_Rysarieul.lua new file mode 100644 index 0000000..07a07b5 --- /dev/null +++ b/poknowledge/Assassin_Rysarieul.lua @@ -0,0 +1,24 @@ +--Rogue Tomes/Planar Armor Exchange +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("performs a deep, sweeping bow in a graceful and almost flamboyant display of greetings. 'Welcome, welcome to the district of Selia, my friend. I am Assassin Rysarieul -- even the light needs its agents who walk the shadows. We lend an ear to its whispered secrets and an eye to the evils that it harbors. We are essential in this battle against the infectious corruption that threatens every corner of existence, for only we can learn of its secrets. In Selia, however, I serve as an advisor and observer more so than an active agent. The passing of time has finally taken its toll upon me -- though my people timeless in their natural long life, we do eventually grow old and wary. This is not to say that because the blade has left my hand and my feet too weak to tread upon the shards of darkness that I have abandoned my cause. I serve the cause of light still, though as a mentor to the young scouts and agents of this era of turmoil and chaos.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {4901, 4902, 4903, 4904, 4905, 4906, 4907}); --Woven Shadow Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Audri_Deepfacet.lua b/poknowledge/Audri_Deepfacet.lua new file mode 100644 index 0000000..098739c --- /dev/null +++ b/poknowledge/Audri_Deepfacet.lua @@ -0,0 +1,24 @@ +-------------------------- +--Quest Name:Turnin NPC for one Armor Task given by Castlen Drewe +--Author: Domel +--NPCs Involved: 2 [Castlen Drewe(202294) and Audri Deepfacet(202069)] +--Items Involved: 1 Permafrost Crystals(22121) +---------------------------------- +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings. traveler. and welcome to New Tanaan. You will find that there is much to be gained in the way of knowledge here. Knowledge not only of the mind. but of skill. I am an adept jeweler and have offered my services to the city to repay its gracious host to me over the years. Please. feel free to search my inventory and purchase that which you might fancy."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 22121})) then--Permafrost crystal + e.self:Say("It is so lovely, just as I saw before! I believe I can fashion something quite nice for you out of it. I need only a chip to study for myself. Thanks so much! "); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Bargol_Halith.lua b/poknowledge/Bargol_Halith.lua new file mode 100644 index 0000000..3e814a4 --- /dev/null +++ b/poknowledge/Bargol_Halith.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello. traveler. If you be interested in brewing. then you've come to the right man. My wares are for producing the most tasty beverages in all of New Tanaan. and they are yours to purchase should you wish."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Basur_TuQual.lua b/poknowledge/Basur_TuQual.lua new file mode 100644 index 0000000..e9f874f --- /dev/null +++ b/poknowledge/Basur_TuQual.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("curls his lips as he tilts his head. the wooden pipe remaining firmly placed between his teeth as he puffs on it a few times. The dwarf's cloudy eyes study you heavily and the sound of a husky voice can be heard mumbling a series of incomprehensible words. Eventually. the dwarf nods his head a few times and speaks in a strong. booming voice. 'Well. what 'ave we 'ere. hrm? A 'traveler'? A 'warrior'? A 'scholar'? By the looks o'ye. it appears ye just left yer mother's sweet. carin' arms and now ye wish t'gain fame. glory. and power. hrm? Well. there's nothin' I can do t'elp with dat soft appearance ye 'ave. but perhaps I can strengthen yer stomach. aye? I doubt ye be of the calibur and wit t'be one. but if by some cruel stroke o'the gods' 'umor. ye be a brewer. then dinnae wander far fer I 'ave all the supplies ye be needin' t'make a proper drink t'arden dat soft belly o'yours.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Bemli_Takoth.lua b/poknowledge/Bemli_Takoth.lua new file mode 100644 index 0000000..a03849a --- /dev/null +++ b/poknowledge/Bemli_Takoth.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("gives a generous smile. his broad face warmly lighting with his greetings. 'Welcome. welcome traveler! My my. let's have a look at ye. shall we? Hrm. . . yes. I can see how ye indeed be quite the adventurer! I can sense the ways o'the world about ye. Those feet 'ave traveled. but they have much more t'travel yet. I be thinkin'! Well. traveler. whilst ye be in New Tanaan. allow yeself a bit o'rest an' recreation. Let ye feet cool from the countless miles that lay behind 'em. but dinnae let ye mind fall weary! Nor ye hands if ye be a man o'the trades. If ye be a potter. by chance. then the fates are surely in your favor this day! I meself am a potter an' would be more pleased than a weary Deputy with the first mug o'Jumjum o'the day t'help ye! Search me wares. friend and dinnae be shy t'purchase anything that might catch yer fancy.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Boiron_Ston.lua b/poknowledge/Boiron_Ston.lua new file mode 100644 index 0000000..258a619 --- /dev/null +++ b/poknowledge/Boiron_Ston.lua @@ -0,0 +1,18 @@ +--Willamina's Needles +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to New Tanaan. traveler. The practice of smithing is a time-honored tradition for my people. My particular specialty is craftsmanship of plate armor for the larger races of Norrath. Feel free to search my stock for anything you might need to help aid your pursuit of this skill."); + elseif(e.message:findi("like elisha dirtyshoes")) then + e.self:Say("Aye, she's a pretty lass. And I am aware of her feelings toward me. I haven't had the courage to approach her though. My family standard has recently disappeared, and no dwarf is the same when their standard is in jeopardy. Seek out Caden Zharik and demand my standard back, I believe he may have lifted it from me."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28085})) then--Boiron's Standard + e.self:Emote("seems to perk up. 'Ah, 'tis a beauty, is it not? I thank you for its safe return. Perhaps I shall go and visit Elisha after all. Please take this letter to her, so she may be ready for me when I arrive.'"); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,28086,100);--Letter to Elisha + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Bolcen_Tendag.lua b/poknowledge/Bolcen_Tendag.lua new file mode 100644 index 0000000..e53c64b --- /dev/null +++ b/poknowledge/Bolcen_Tendag.lua @@ -0,0 +1,18 @@ +--Willamina's Needles +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("coughs and says. 'Hello traveler. Allow me to introduce myself. I am Bolcen. If you are looking for my master Xelrin. you may find him upstairs. Careful should you stand too close to me however. I have become ill.' He coughs again."); + elseif(e.message:findi("needles")) then + e.self:Say("I feel just terrible that I haven't been to see Willamina yet. Due to my illness I barely have the energy to stand. If you could aid me in some way, I would greatly appreciate it. Mirao Frostpouch might have an elixir that would help me feel better. Please seek him out and ask for it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28091})) then--Curative Potion + e.self:Say("Oh thank you so much.' He drinks from the bottle, then reaches in his pocket and produces a set of needles. 'I believe this is what Willamina is in need of. Please take these to her and give her my best."); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,28092,100);--New Sewing Needles + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Bookbrowser_Talika.lua b/poknowledge/Bookbrowser_Talika.lua new file mode 100644 index 0000000..849d6df --- /dev/null +++ b/poknowledge/Bookbrowser_Talika.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Why hello there wanderer. This library here in New Tanaan is a wonderous sight is it not? There are all manner of books here to occupy the curious of heart. If you are seeking stories of the Halflings. like myself. I have found some books you may be interested in. You can borrow them if you like and the magic of the library will return them when you are finished with them."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Borik_Darkanvil.lua b/poknowledge/Borik_Darkanvil.lua new file mode 100644 index 0000000..fd12f41 --- /dev/null +++ b/poknowledge/Borik_Darkanvil.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, Borik Darkanvil, at your service. I was once a planar traveler like you. Those days are behind me, now I am content to earn my keep as a blacksmith, and to experiment with some of the [special recipes] that I have picked up in these outer planes."); + elseif(e.message:findi("special recipes")) then + e.self:Say("Well a little bit of this and a little bit of that. If there is anything you need assistance in making come see me. I may be able to help."); + elseif(e.message:findi("box of souls")) then + e.self:Emote("eyes grow narrow. 'So looking to capture some souls are you? It's none of my business I suppose so don't answer. I'm pretty sure that I don't want to know. I paid heavily for the formula for the Box of Souls, but its not a price I would pass on to anyone else. There isn't much to it, but it does take the hands of a skilled smith and the magic of Tanaan's forges to event attempt it. First you will need a block of [Perilium]."); + elseif(e.message:findi("Perilium")) then + e.self:Say("Perilium was once used to make clockwork machines, there are now stronger metals so it has become harder and harder to find Perilium, much less a block that is large enough to be of any use. Then you will need to find the brain of a crystal spider, this is where the actual soul will be held. Of course the box will need a supernatural power source, the souls are held into place by the horror of their own dreams, the heart of an agony mephit will give the device that power. Forge these with a smithing hammer and a water flask and you will have your box. Of course if you have not the skill, I can [forge them for you]."); + elseif(e.message:findi("forge them for me")) then + if(e.self:GetSkill(63) > 59) then + e.self:Say("A smith of your skill does not need my assistance in making the box, however I won't turn away your money. Bring me three thousand platinum, the perilium, the brain, and the heart and I will make the box for you."); + else + e.self:Say("If you return all three items to me I will do the work for you for, a mere three thousand platinum. I will not guarantee my success, but I can guarantee if you do not have the skill, you will fail."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29228, item2 = 29229, item3 = 29230, platinum = 3000})) then + e.self:Say("Ah ha! Here we go one box of souls!"); + e.other:QuestReward(e.self,0,0,0,0,29281); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Cadelawin_Browan.lua b/poknowledge/Cadelawin_Browan.lua new file mode 100644 index 0000000..ff4bfa5 --- /dev/null +++ b/poknowledge/Cadelawin_Browan.lua @@ -0,0 +1,22 @@ +--Mystic Cloak Recharge +function event_say(e) + if(e.message:findi("Hail") and e.other:HasItem(1057)) then + e.self:Say("Wow, you have a Mystic Cloak! I was just reading a book about cloaks with similar enchantments. I'm studying to try and learn how to make magical and enchanted armor. I'm pretty sure I have figured out a way to [recharge] a Mystic Cloak."); + elseif(e.message:findi("Hail")) then + e.self:Say("Hello there. Fine afternoon. isn't it?"); + elseif(e.message:findi("recharge")) then + e.self:Say("Well, in the case of the Mystic Cloak at least, the true enchantment is in the brooch that you use to clip the cloak around your shoulders. The cloak itself cannot run out of magic, the brooch, however, can. When it no longer has the ability to cast spells you should be able to attach a [new brooch] and regain the magic the cloak once possessed."); + elseif(e.message:findi("new brooch")) then + e.self:Say("'I figured that would be your next question. Each enchanted cloak has its own brooch, and you need to know the specifics of the brooch for your cloak in order to replace it. You happen to be in luck today as I happen to know the specifications for the cloak associated with the Mystic Cloak. First you will need talisman made from Chrysoberyl. That talisman will need to be affixed inside a Planar Jeweler's kit by a skilled jewelcrafter to an enchanted platinum bar with a magic scroll of steelskin and a vial of distilled mana. Once you have the brooch simply attach it to your cloak in one of the looms you can find in Jeral, it shouldn't be terribly difficult."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Cadelid_Etord.lua b/poknowledge/Cadelid_Etord.lua new file mode 100644 index 0000000..dda2bdb --- /dev/null +++ b/poknowledge/Cadelid_Etord.lua @@ -0,0 +1,22 @@ +--Intermediate Magic Manual +function event_say(e) + if(e.message:findi("hail")) then + e.self:DoAnim(70); + if(e.other:HasItem(28795)) then + e.self:Say("I see by the beginner manual you carry that you are on the right track. Let us continue your lessons, shall we? Magic can be a susceptible, yet volatile force sometimes, especially when wielded in the hands of dark beings. I fear there is one such being in particular that seeks to damage the very foundation of our mystic abilities, an ugly warrior by the name of Vhaksiz the Shade. He calls the Plane of Nightmares his home. You must seek this foul creature out and acquire proof of his demise: his dark, sinister heart. Bring it to me along with your Beginner's Magic Manual."); + else + e.self:Say("Welcome. You stand inside the meeting hall for the Selia district. a most beautiful section of New Tanaan if there ever was one. Although I do miss the adventuresome streets of Shar Vahl. my home. it just can't compare to the serene beauty of this place. Back home I was a teacher of the mystic arts. and ever since arriving to this land my knowledge has increased tenfold. If you seek to gain a better understanding of the ways of magic. see me again sometime when you have elevated your ability to a higher degree."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28795, item2 = 28801})) then--Beginner Magic Manual, Heart of Vhaksiz + e.self:Say("I say, " .. e.other:GetCleanName() .. ", you have certainly proven yourself, and I am quite proud of you. I believe your time has come, take this and when you are ready, speak to Zalil Nyvin. And remember, difficult tasks are put in our way not to stop us, but to call out our strength and resolve."); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,math.random(10),math.random(10),math.random(0,10),28796,500000);--Intermediate Magic Manual + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Caden_Zharik.lua b/poknowledge/Caden_Zharik.lua new file mode 100644 index 0000000..10e90dd --- /dev/null +++ b/poknowledge/Caden_Zharik.lua @@ -0,0 +1,19 @@ +--Willamina's Needles +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("What? Oh, sorry. You appear to be harmless enough. Never can be too careful these days, you know. Say. as long as you're here, would you care to have a look at my stock of supplies and see if there's anything you might need? I worked really hard to scrounge this together, won't you just like to have a look?"); + end + if(e.message:findi("standard")) then + e.self:Emote("turns white with fear. 'Ah, so he sent you to rough me up, did he? Fine, but you should know you couldn't hurt me any worse than Agrakath Theric would! I'm in a bit of trouble you see, I owe Agrakath some money I haven't got. So I stole the standard to pay him off. If you could please find him and have him somehow erase my debt, I would gladly give the standard back.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28084})) then--Note to Caden + e.self:Emote("eyes go wide with relief. 'Oh thank you thank you! Here, take the standard. And do apologize to Boiron for me. It shall never happen again. Again, thank you!'"); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,28085,100);--Boiron's Standard + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Caonid_Girwil.lua b/poknowledge/Caonid_Girwil.lua new file mode 100644 index 0000000..e440b6f --- /dev/null +++ b/poknowledge/Caonid_Girwil.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("narrows his wild. blazing eyes upon you. The troll sniffs the air about you. studying you with great care and intent. Eventually. a gruff. hoarse hiss escapes the troll's throat as it backs away. seemingly disinterested and unimpressed. 'How puny you people are now. How spoiled and depraved of true turmoil. chaos. and petty desires for mere wealth. I've hunted down food more impressive and intimidating than you. How disgusting you are. Weakling.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Cavalier_Waut.lua b/poknowledge/Cavalier_Waut.lua new file mode 100644 index 0000000..2c30625 --- /dev/null +++ b/poknowledge/Cavalier_Waut.lua @@ -0,0 +1,40 @@ +--Paladin PoP Spells +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Good day t'ye, traveler. The adepts of New Tanaan 'ave worked very laboriously t'properly welcome ye t'the Plane of Knowledge. Many of us 'ave delved into the past lives of our ventures upon Norrath an' 'ave brought forth from the recesses of our memories the spells that we once wielded as might t'our cause. Now, we no longer be needin' them, but we understand that ye may very well find them t'be of use yet. Oh, and if ye find an item of arcane nature though it seems t'be mundane or useless t'ye, dinnae disregard it! The planes 'old many items that are not what they seem, friend. Return such incorporeal runes and scrolls t'me and I shall make them spells worhty of any crusading paladin!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local ethereal = item_lib.count_handed_item(e.self, e.trade, {29112}); --Ethereal Parchment + local spectral = item_lib.count_handed_item(e.self, e.trade, {29131}); --Spectral Parchment + local glyphed = item_lib.count_handed_item(e.self, e.trade, {29132}); --Glyphed Rune Word + if(ethereal > 0) then + repeat + e.self:Emote("accepts the item carefully, studying it with great caution as she handles it in her small hands. The paladin then nods softly to herself as if in recognition or preparation and then closes her eyes. The dwarf's voice begins to spill softly across the area in a divine chant of reverence and prayer. As the dwarf speaks her indeciferable words, the item in her hand seems to grow corporeal and real. Runes form upon it in silvery script that seem to shimmer in the torch-cast light of Myrist. Eventually, she opens her eyes and inspects the item for a final time. Nodding to herself once more in satisfaction, she hands the scroll to you with a warm smile, ''This should de ye good, m'friend, I guarantee! Be careful, though, for this be a powerful spell not t'be underestimated or used without caution or respect."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(26945, 21631, 26941, 21652, 26933, 26937)); --Level 61 or 62 Paladin spell, PoP (Greater Immobilize, Touch of Nife, Crusader's Touch, Force of Akilae, Ward of Nife, Deny Undead) + ethereal = ethereal - 1; + until ethereal == 0; + end + if(spectral > 0) then + repeat + e.self:Emote("accepts the item carefully, studying it with great caution as she handles it in her small hands. The paladin then nods softly to herself as if in recognition or preparation and then closes her eyes. The dwarf's voice begins to spill softly across the area in a divine chant of reverence and prayer. As the dwarf speaks her indeciferable words, the item in her hand seems to grow corporeal and real. Runes form upon it in silvery script that seem to shimmer in the torch-cast light of Myrist. Eventually, she opens her eyes and inspects the item for a final time. Nodding to herself once more in satisfaction, she hands the scroll to you with a warm smile, ''This should de ye good, m'friend, I guarantee! Be careful, though, for this be a powerful spell not t'be underestimated or used without caution or respect."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(26934, 26939, 21654, 26935, 21649)); --Level 63 or 64 Paladin spell, PoP (Pious Might, Light of Nife, Aura of the Crusader, Quellious' Word of Serenity, Supernal Cleansing) + spectral = spectral - 1; + until spectral == 0; + end + if(glyphed > 0) then + repeat + e.self:Emote("accepts the item carefully, studying it with great caution as she handles it in her small hands. The paladin then nods softly to herself as if in recognition or preparation and then closes her eyes. The dwarf's voice begins to spill softly across the area in a divine chant of reverence and prayer. As the dwarf speaks her indeciferable words, the item in her hand seems to grow corporeal and real. Runes form upon it in silvery script that seem to shimmer in the torch-cast light of Myrist. Eventually, she opens her eyes and inspects the item for a final time. Nodding to herself once more in satisfaction, she hands the scroll to you with a warm smile, ''This should de ye good, m'friend, I guarantee! Be careful, though, for this be a powerful spell not t'be underestimated or used without caution or respect."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(21653, 26936, 26938)); --Level 65 Paladin spell, PoP (Shackles of Tunare, Wave of Marr, Brell's Stalwart Shield) + glyphed = glyphed - 1; + until glyphed == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Channeler_Alyrianne.lua b/poknowledge/Channeler_Alyrianne.lua new file mode 100644 index 0000000..d940be9 --- /dev/null +++ b/poknowledge/Channeler_Alyrianne.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("May knowledge guide you. and may you step upon this path without judgment or bias. The citizens of New Tanaan have made this pledge to you. friend. and the scholars have vowed their existence to it. As wizards of the prime in our time there. the channelers have come together and composed the spells familiar to this class upon Norrath and though here they are no different. their presence and availability to you may prove a blessing and a convenience. Do not hesitate to search through our tomes and scrolls if you are in need of this knowledge as you progress in power."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Channeler_Lariland.lua b/poknowledge/Channeler_Lariland.lua new file mode 100644 index 0000000..42201d4 --- /dev/null +++ b/poknowledge/Channeler_Lariland.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings to you. traveler. The channelers or New Tanaan are eager to have your kind among us. for it has been far too long since we have been graced with the opportunity to guide. All scholars of New Tanaan have offered up their wisdom of their individual past experiences as a mortal profession upon the prime in order to aid you in the most effective manner for your current position within the universe. As all channelers here were wizards in our prime upon the material world. we have combined our tomes and memories into tangible form so that the wizards of the prime may make use of them once again."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Channeler_Olaemos.lua b/poknowledge/Channeler_Olaemos.lua new file mode 100644 index 0000000..e3f9542 --- /dev/null +++ b/poknowledge/Channeler_Olaemos.lua @@ -0,0 +1,41 @@ +--Wizard PoP Spells +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am channeler Olaemos, one of five scholars in the art of evocation to reside here in Myrist. We have volunteered to temporarily halt our personal quests for knowledge and power beyond the material world so that we may aid the travelers in our midst. The spells we have scribed are native to your world, though in our hands they are available to all practitioners of the evocational arts despite race or religious differences. There is one other thing that I can aid you with should you truly be a wizard and that is the scribing of a most foreign and potent spell. I require you to find a piece of the untainted, fledgling magical manifestations upon the plane. These items appear as scrolls or runes that seem mundane to the eyes of mortals, though they are far more powerful than you realize. If you are fortunate enough to stumble across such a treasure, do not discard it but return it to me and I shall turn it into a power most befitting of the plane's travelers."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local ethereal = item_lib.count_handed_item(e.self, e.trade, {29112}); --Ethereal Parchment + local spectral = item_lib.count_handed_item(e.self, e.trade, {29131}); --Spectral Parchment + local glyphed = item_lib.count_handed_item(e.self, e.trade, {29132}); --Glyphed Rune Word + if(ethereal > 0) then + repeat + e.self:Emote("almost brashly snatches the item out of your grip with his small, cold froglok hands. The wizard eyes the item quickly, nodding and mumbling to himself at an inaudible tone. Eventually, the wizard begins to weave a spell around the item, which seems to become saturated with the conjured magic. Runes of a brilliant, shimmering azure appear upon the parchment, which is now wholly tangible in its form. As the spell ends, the forglok inspects his work one last time before offering the spell to you, 'Take this, " .. e.other:GetCleanName() .. ". Do not use it without caution or discipline, for the power is unlike anything you have wielded in the past. It will affect both the divine and primal realms, despite its astral birth."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(26944, 28413, 28438, 28437, 21662, 28440, 28441, 28442)); --Level 61 or 62 Wizard spell, PoP (Greater Fetter, Shield of the Arcane, Tears of Ro, Resistant Armor, Teleport, Elemental Barrier, Draught of Ro, or Lure of Ro.) + ethereal = ethereal - 1; + until ethereal == 0; + end + if(spectral > 0) then + repeat + e.self:Emote("almost brashly snatches the item out of your grip with his small, cold froglok hands. The wizard eyes the item quickly, nodding and mumbling to himself at an inaudible tone. Eventually, the wizard begins to weave a spell around the item, which seems to become saturated with the conjured magic. Runes of a brilliant, shimmering azure appear upon the parchment, which is now wholly tangible in its form. As the spell ends, the forglok inspects his work one last time before offering the spell to you, 'Take this, " .. e.other:GetCleanName() .. ". Do not use it without caution or discipline, for the power is unlike anything you have wielded in the past. It will affect both the divine and primal realms, despite its astral birth."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(28414, 28445, 28446, 28448, 26940, 28415, 28444, 28447)); --Level 63 or 64 Wizard spell, PoP (Force Shield, Draught of Thunder, Agnarr's Thunder, Iceflame of E'ci, Tears of Arlyxir, Shield of Maelin, Telekin, or Draught of E'ci) + spectral = spectral - 1; + until spectral == 0; + end + if(glyphed > 0) then + repeat + e.self:Emote("almost brashly snatches the item out of your grip with his small, cold froglok hands. The wizard eyes the item quickly, nodding and mumbling to himself at an inaudible tone. Eventually, the wizard begins to weave a spell around the item, which seems to become saturated with the conjured magic. Runes of a brilliant, shimmering azure appear upon the parchment, which is now wholly tangible in its form. As the spell ends, the forglok inspects his work one last time before offering the spell to you, 'Take this, " .. e.other:GetCleanName() .. ". Do not use it without caution or discipline, for the power is unlike anything you have wielded in the past. It will affect both the divine and primal realms, despite its astral birth."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(26942, 21663, 28443, 28450)); --Level 65 Wizard spell, PoP (Shock of Magic, Greater Decession, Tears of Marr, or Strike of Solusek) + glyphed = glyphed - 1; + until glyphed == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- quest by Kilelen +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Chronicler_Bixbot.lua b/poknowledge/Chronicler_Bixbot.lua new file mode 100644 index 0000000..5ef7745 --- /dev/null +++ b/poknowledge/Chronicler_Bixbot.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:CastToNPC():SetNoQuestPause(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:DoAnim(27); + e.self:Say("Welcome..Welcome! I am so excited to see a new face around New Tanaan. The Great Library of New Tanaan has a plethora of magnificent tomes to tantilize ones mind. I have here some books telling stories of gnomes that have shaped the history of our people. You may borrow them if you are literate in the Gnomish language. The books will return to me when you are finished with them via the enchantments placed upon them by New Tanaan."); + end +end diff --git a/poknowledge/Ciren_Darkbog.lua b/poknowledge/Ciren_Darkbog.lua new file mode 100644 index 0000000..55089bd --- /dev/null +++ b/poknowledge/Ciren_Darkbog.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("If you are not an adept in the ways of poison making. then be off with you. I have neither the time nor the desire to stand idle and make pointless chit-chat with anyone. else it yields a considerable profit worthy of my time."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Councilman_Srethix.lua b/poknowledge/Councilman_Srethix.lua new file mode 100644 index 0000000..eae27a5 --- /dev/null +++ b/poknowledge/Councilman_Srethix.lua @@ -0,0 +1,29 @@ +--Tome of Dark Power +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("regards you with narrow eyes, then smiles. 'Greetings. I am Councilman Srethix of Kartis. It is good to see some new visitors to our little corner of the cosmos. I certainly hope you can find what you are looking for here in the Myrist library. Unfortunately, I'm sorry to say that I am quite busy seeking some rare books at the moment, and I do not have much time for light conversation. Otherwise, I believe my aid Garuuk may have some chores he could use help with. That is, if you feel up to it.'"); + elseif(e.message:findi("rare books")) then + e.self:Emote("glares at Garuuk and turns back to you. 'You are interested in a job seeking knowledge, yes? Very well, I think I may have something suitable for you. I happen to be seeking an ancient tome containing some valuable information about artifacts of power. I have learned this book is somewhere in our very own library but so far Garuuk has been unable to locate it. Find me the Tome of Dark Power and I may see what other jobs I can pass along to you.' "); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28741})) then--Locked Tome of Dark Power + e.self:Say("Very impressive, this little tome has eluded my aid for quite some time now. How good of you to discover its whereabouts and bring it to me. But from the looks of it, this book has a strong, magically-sealed lock upon its cover. I wonder if Elder Tal Almad would know how to break it? Take this to him in the Plane of Tranquility and let him have a look at it. If he can open it, bring it back to me."); + e.other:QuestReward(e.self,0,0,0,0,28741); --Locked Tome of Dark Power...yes, he hands it right back. + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 28742})) then--Unlocked Tome of Dark Power + e.self:Say("It's good to see my instincts about the Elder were correct.' He opens the book, begins thumbing through the pages, and frowns. 'What's this? Some pages are missing, eight of them to be exact. I'm afraid this book will be of no use to me without those pages. You can have it. I wonder what happened to them, whomever had this book before must have removed them for some reason. If you find the missing pages somewhere, be sure to close them up inside the book and return it to me."); + e.other:QuestReward(e.self,0,0,0,0,17182)--Unfinished Tome of Dark Power + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 28746})) then--Tome of Dark Power + e.self:Emote("grins wickedly. 'You have done excellently. The tome will now serve my purposes. You may take this as a reward.' He pauses for a moment and continues, 'This task you have performed shows your confidence, patience, and the best of all, determination. Perhaps someday you would consider applying yourself to serve as an aid by my side? I can clearly see you have quite a broad spectrum of usefulness. Much more so than some other attendants I know...'"); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,15790,1000000)--Cloak of the Wise + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Councilman_Taldarius.lua b/poknowledge/Councilman_Taldarius.lua new file mode 100644 index 0000000..ab5347c --- /dev/null +++ b/poknowledge/Councilman_Taldarius.lua @@ -0,0 +1,30 @@ +--Signets of the Councilmen +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("regards you, and grins. 'Greetings, " .. e.other:GetCleanName() .. ". I am Councilman Taldarius, mighty Paladin of Mithaniel Marr and Guardian of the City of Tanaan! If you cannot find what you are looking for here in the Myrist library, I most certainly can add it to my list of things to look for in the Planes. Unfortunately, I am quite busy at the moment, planning my next trip to the Elemental Planes. I believe my aid may have some tasks he could use help with. That is, if you are skilled enough.'"); + elseif((e.message:findi("marked runed signet")) and e.other:HasItem( 16256)) then + e.self:Say("I see you have helped Grimel immensely. He would not have given up his signet very easily. I cannot let him deprive himself of such a valuable tool. If you were to do a task for me I would grant you something I picked up in the Planes. Are you interested in the task?"); + elseif((e.message:findi("interested in the task")) and e.other:HasItem( 16256)) then + e.self:Say("Very well " .. e.other:GetCleanName() .. ". I warn you I will not grant this without proof that you possess a valiant spirit. You may have the trust of my aid but I still require a noble deed. Through research done by the council they have discovered something called a Hope Stone that exists in the Elemental Planes. Bring me one of these stones and the signet of Grimel. Fear not I shall reward you well."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 16256, item2 = 16258}) and not e.other:HasItem(16255) and not e.other:HasItem(16257)) then --Marked Runed Signet, Hope Stone + e.self:Say("Wonderful! You have proven yourself as both a Master of the Trade as well as a valiant spirit. Take this and may it server you well! If this signet does not suffice, bring it back to me and i will exchange it for one more attuned to your needs."); + e.other:QuestReward(e.self,0,0,0,0,16255); --Signet of Might + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 16255})) then --Signet of Might + e.self:Say("I hope this is more attuned to your needs."); + e.other:QuestReward(e.self,0,0,0,0,16257); --Signet of the Arcane + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 16257})) then --Signet of the Arcane + e.self:Say("I hope this is more attuned to your needs."); + e.other:QuestReward(e.self,0,0,0,0,16255); --Signet of Might + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Councilwoman_Kerasha.lua b/poknowledge/Councilwoman_Kerasha.lua new file mode 100644 index 0000000..3e276c0 --- /dev/null +++ b/poknowledge/Councilwoman_Kerasha.lua @@ -0,0 +1,52 @@ +--Essences of Power +function event_say(e) + + if ( e.other:HasItem(16260) ) then -- Tiny Gold Fist + if ( e.message:findi("hail") ) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. "! It pleases me very much that you were able to help Eino out in his time of need.' Councilwoman Kerasha glances at Eino, 'Tunare only knows what I would do without him at my side. There is another matter at hand that has come to the attention of the council that is beyond even our combined power and requires the aid of a powerful alliance. Would you be willing to aid Tanaan?"); + elseif(e.message:findi("aid")) then + e.self:Say("A rift in this plane at the point of harmony upon which the city of Tanaan is built is crumbling. The other council members do not see it happening for they lack the sight that I possess. Granted it will take time but it is something that must be set to right or our home will fall to waste among the tides of the Planes.' Councilwoman Kerasha's body grows rigid. 'I did not spend my life in defense of this city to watch it crumble to dust! The way to repair the breach is difficult but I feel Tunare will grant me the strength once I have the four essences of power in my grasp."); + elseif(e.message:findi("essences of power")) then + e.self:Say("The powers that watch over the four elemental planes all guard their respective essence of power. You must defeat each of them in turn and place them all within this sacred bowl. Once I have the combined power of the planes I can begin the ceremony and set the foundation of the city to rights. Thank you for your offer to assist me " .. e.other:GetCleanName() .. "."); + e.other:SummonCursorItem(17183); --Sacred Bowl + end + else + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". I am Councilwoman Kerasha, representative of the Selia district. I provide the voice of nature to the Council of Tanaan. Woe is the city in any realm that forgets to heed Mother Tunare. For where else could one draw strength from but the land?"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 16266})) then --Power of the Planes + e.self:Emote("takes the Power from you and hands it to Aid Eino. 'Thank you " .. e.other:GetCleanName() .. ". The energy I must expend to perform such a task is days in the gathering. The city of Tanaan is forever in your debt. Take this, it is but a small token of the gratitude of the city. If it does not suit you, return it to me and I shall give you another reward.'"); + e.other:QuestReward(e.self,0,0,0,0,32106); --Jade Hoop of Speed + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 32106})) then --Jade Hoop of Speed + e.self:Say("I understand. Take this, may it serve you well, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,17209); --Frizznik's Endless Coin Purse + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 17209})) then --Frizznik's Endless Coin Purse + e.self:Say("I understand. Take this, may it serve you well, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,32107); --Cord of Invigoration + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 32107})) then --Cord of Invigoration + e.self:Say("I understand. Take this, may it serve you well, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,32108); --Mace of the Ancients + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 32108})) then --Mace of the Ancients + e.self:Say("I understand. Take this, may it serve you well, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,32109); --Ring of Farsight + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 32109})) then --Ring of Farsight + e.self:Say("I understand. Take this, may it serve you well, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,32106); --Jade Hoop of Speed + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Crusader_Difur.lua b/poknowledge/Crusader_Difur.lua new file mode 100644 index 0000000..1d9252b --- /dev/null +++ b/poknowledge/Crusader_Difur.lua @@ -0,0 +1,24 @@ +--Paladin Tomes/Planar Armor Exchange +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("kneels before " .. e.other:GetCleanName() .. " in humble recognition. The clang of his spotless, dwarven crafted armor against the stone floor briefly chimes through the hall. The song of steel and marble is echoed by his gruff, iron voice. 'I am Difur, Crusader of Brell Serillis and master of the paladins in the district of Tanaan. If ye seek knowledge and wisdom of the justly knights of Norrath than I, most humbly, am at yer service, traveler.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {4851, 4852, 4853, 4854, 4855, 4856, 4857}); --Valorium Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Crusader_Gimil.lua b/poknowledge/Crusader_Gimil.lua new file mode 100644 index 0000000..ce1b479 --- /dev/null +++ b/poknowledge/Crusader_Gimil.lua @@ -0,0 +1,24 @@ +--Paladin Tomes/Planar Armor Exchange +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("kneels low before " .. e.other:GetCleanName() .. ", offering a humble gesture of respect and greetings. 'The light of Selia embraces thee, my friend. If you reside in our midst in searching for knowledge and guidance, then know that we are your servants in that quest. Should you be a paladin, and your object of faith is of no consequence in this matter, then my services are humbly at your disposal should you need or wish them.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {4851, 4852, 4853, 4854, 4855, 4856, 4857}); --Valorium Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Culkin_Ironstove.lua b/poknowledge/Culkin_Ironstove.lua new file mode 100644 index 0000000..c5ce8c1 --- /dev/null +++ b/poknowledge/Culkin_Ironstove.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Good day to you. " .. e.other:GetCleanName() .. ". I am Culkin Ironstove. one of five merchants that provide goods for those who practice the art of baking. Search my wares if you wish. and know that if I do not possess that which you require. then there are four other Ironstoves who are just as glad as I to aid you where we can."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Curator_Merri.lua b/poknowledge/Curator_Merri.lua new file mode 100644 index 0000000..63e7349 --- /dev/null +++ b/poknowledge/Curator_Merri.lua @@ -0,0 +1,24 @@ +--Merri's Artifact Collection/The Collector's Box + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("beams a smile as you approach. 'Welcome " .. e.other:GetCleanName() .. ". This building will be the site of New Tanaan's greatest museum ever. I realize it looks a bit empty now, but just imagine how beautiful it will look after we fill it with rare and exotic treasures from all over. It's a very exciting time, no? Of course, we still need to obtain a few more [artifacts].'"); + elseif(e.message:findi("artifacts")) then + e.self:Say("Each of the people you see working here has their own exhibit to build and maintain. If you speak to them, they can tell you about which items they are looking for to add to their collection. Any items you collect will need to be placed inside one of my storage containers. If you [need a Collector's Box] at any time, just ask me. Also know I could use some help in retrieving some [special items] for my own exhibit."); + elseif(e.message:findi("special items")) then + e.self:Say("My display will showcase the many interesting religious idols and artifacts from Norrath's history. Most of my gallery is complete, but I still need a few more items. I am looking for a Forlorn Totem of Rolfron Zek, Idol of Woven Grass, Coldain Fetish, and a Petrified Totem. Once you have these holy artifacts, close them up inside a Collector's Box and return it to me. Good luck."); + elseif(e.message:findi("collector's box") or e.message:findi("collectors box")) then + e.self:Say("Here you go, good luck on your hunt."); + e.other:SummonCursorItem(17769);--Collector's Box + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28082})) then--Collection of Idols + e.self:Say("Thank you very much " .. e.other:GetCleanName() .. "! Here, please accept this as a reward for the fine work you've done.");--Text made up, can't find a reference + e.other:QuestReward(e.self,0,0,0,0,28241);--Fine Antique Velvet Rose + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Daeld_Atand.lua b/poknowledge/Daeld_Atand.lua new file mode 100644 index 0000000..50650dd --- /dev/null +++ b/poknowledge/Daeld_Atand.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail and well met. my friend! If you have come searching for supplies needed to fish out of the fair waters of Norrath. than you have come to the right place. Please. search my inventory as you wish -- I'm certain that what you seek is right here. If for some reason I do not carry the rare item you desire at this moment. then seek out Ramos Jerwan. for he likely shall."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Dalin_Greskar.lua b/poknowledge/Dalin_Greskar.lua new file mode 100644 index 0000000..834cf93 --- /dev/null +++ b/poknowledge/Dalin_Greskar.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings visitor! I am a maker and seller of fine ceramics and pottery supplies here in the wondrous city of New Tanaan. If you are practicing the art of pottery then perhaps I can interest you in some of my high quality supplies."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Darius_Gandril.lua b/poknowledge/Darius_Gandril.lua new file mode 100644 index 0000000..4509a83 --- /dev/null +++ b/poknowledge/Darius_Gandril.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Good day to you. traveler. The trails of the outer planes and Norrath alike take their tolls upon any adventurer. The need for supplies is great to maintain strength. agility. awareness. and focus and thus. I provide that which may quench your common desires. Search my stock as you wish and purchase what catches your eye. My prices are most fair. I assure you."); + end +end + +function event_spawn(e) + x = e.self:GetX(); + y = e.self:GetY(); + eq.set_proximity(x - 90, x + 90, y - 90, y + 90); +end + +function event_enter(e) + eq.signal(202274,5); --Nomaad +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Derin_ODanos.lua b/poknowledge/Derin_ODanos.lua new file mode 100644 index 0000000..4e93fce --- /dev/null +++ b/poknowledge/Derin_ODanos.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome. traveler! If you are in need of supplies to brew potions. then you have come to the right man! Please. search my wares and perhaps you may find what you need."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Dogle_Pitt.lua b/poknowledge/Dogle_Pitt.lua new file mode 100644 index 0000000..a8c4e8b --- /dev/null +++ b/poknowledge/Dogle_Pitt.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("claps his thick hands together. creating a loud burst of sound that echoes his hardy yalp of welcoming. 'Greetings t'ye traveler an' welcome t'New Tanaan! I see that ye be a well-seasoned traveler! O'course nothin' escapes good ol' Dogle Pitt's eye. Perhaps that's why I be the most trusted banker in all o'these parts. aye? Indeed! If ye need a place t'store some o'yer excess belongin's there. then dinnae be shy in lettin' me be their temporary caretaker. There's no place safer fer all the treasures in the world than Dogle Pitt's safe. I assure ye!'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Drelynn_Beaufax.lua b/poknowledge/Drelynn_Beaufax.lua new file mode 100644 index 0000000..d8ca46e --- /dev/null +++ b/poknowledge/Drelynn_Beaufax.lua @@ -0,0 +1,25 @@ +--Drelynn's Gem Collection +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("A fine day to you, " .. e.other:GetCleanName() .. ". The exhibit you will see here soon will likely be the most valuable of them all. My display will house some of the most precious and rare gemstones you will ever find. It is too sad there are still spaces missing in my display box, if I could only find a few more [gems] to fill them out."); + elseif(e.message:findi("gems")) then + e.self:Say("To make the exhibit truly stand out, I would need to add a Blackened Sapphire, Greenscale Emerald, Shimmering Velium Ruby, and a Hope Diamond. Could I perhaps procure these from you? Visit [Merri] and get a Collector's Box from her. Carefully place the gems inside and close it up. Once you return this to me, I can pay you for your services."); + elseif(e.message:findi("merri")) then + e.self:Say("Curator Merri is the founder of the museum in the Selia district of New Tanaan. She is a true visionary and a wonderful person as well. It is her dream to turn life's love into something truly grand. She also carries with her the Collector's Boxes. If you need one, be sure to ask her for it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28077})) then--Collection of Gems + e.self:Emote("inspects each gem carefully. 'These are in much better condition then I thought I would get them in. Adding these to my exhibit pleases me greatly. As promised, here is something for you.'"); + e.other:QuestReward(e.self,0,0,0,0,28242);--Fine Antique Veil + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Elementalist_Somat.lua b/poknowledge/Elementalist_Somat.lua new file mode 100644 index 0000000..3875d59 --- /dev/null +++ b/poknowledge/Elementalist_Somat.lua @@ -0,0 +1,41 @@ +--Magician PoP Spells/Songs +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, traveler! I am Somat, Elementalist extraordinaire and one of several of my trade here in New Tanaan. We have all spent much time preparing for your arrival and hope that our time is not in vain. If you are a wielder of the elemental forces, then come and browse my inventory, friend! I may hold a spell or two that might pique your interest. Also, if you perhaps hold a seemingly mundane item of arcane relation that you found in your travels upon the planes, then do not hesitate to let me have a look at it. Don't worry -- we are not thieves here! Rather, we wish to aid you and I so love dabbling in the chaos of planar magic!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local ethereal = item_lib.count_handed_item(e.self, e.trade, {29112}); --Ethereal Parchment + local spectral = item_lib.count_handed_item(e.self, e.trade, {29131}); --Spectral Parchment + local glyphed = item_lib.count_handed_item(e.self, e.trade, {29132}); --Glyphed Rune Word + if(ethereal > 0) then + repeat + e.self:Emote("takes the planar arcane item and examines it with a strange glance in his eye. At first he seems overly excited -- like a child who has been handed a new toy, but then his glance changes into something that had previously seemed impossible of his charming features -- a stern seriousness. The gnome closes his eyes and begins a soft chant beneath his breath. The words are barely audible beneath the slow, gentle vibration that rings through the air around the both of you. The item seems to grow more real and tangible, its incorporeal state completely rent beneath the magician's spell. The gnome eventually opens his eyes and scans the arcane runes, scribed in fiery red, pale blue, crystal, and a deep emerald hue. He then nods in approval and extends the scroll to you, 'There you go, friend! This should do quite nicely, indeed!"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(21641, 21642, 32411, 29357, 29358, 29359, 29360, 29361, 28413, 28428, 28440, 21637, 21643, 21646, 21669, 28430, 28431)); --Level 61 or 62 Magician spell, PoP (Belt of Magi'Kot, Blade of Walnan, Flameshield of Ro, Summon Platinum Choker, Summon Runed Mantle, Summon Sapphire Bracelet, Summon Spiked Ring, Summon Glowing Bauble, Shield of the Arcane, Ward of Xegony, Elemental Barrier, Xegony's Phantasmal Guard, Fist of Ixiblat, Talisman of Return, Burnout V, Sun Storm, Servant of Marr) + ethereal = ethereal - 1; + until ethereal == 0; + end + if(spectral > 0) then + repeat + e.self:Emote("takes the planar arcane item and examines it with a strange glance in his eye. At first he seems overly excited -- like a child who has been handed a new toy, but then his glance changes into something that had previously seemed impossible of his charming features -- a stern seriousness. The gnome closes his eyes and begins a soft chant beneath his breath. The words are barely audible beneath the slow, gentle vibration that rings through the air around the both of you. The item seems to grow more real and tangible, its incorporeal state completely rent beneath the magician's spell. The gnome eventually opens his eyes and scans the arcane runes, scribed in fiery red, pale blue, crystal, and a deep emerald hue. He then nods in approval and extends the scroll to you, 'There you go, friend! This should do quite nicely, indeed!"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(21644, 29362, 28432, 28433, 28497, 16341, 29363, 21645, 21659, 21668, 28415, 28434)); --Level 63 or 64 Magician spell, PoP (Blade of The Kedge, Summon Jewelry Bag, Black Steel, Child of Ro, Malosinia, Elemental Silence, Maelstrom of Ro, Girdle of Magi'Kot, Destroy Summoned, Planar Renewal, Shield of Maelin, Maelstrom of Thunder) + spectral = spectral - 1; + until spectral == 0; + end + if(glyphed > 0) then + repeat + e.self:Emote("takes the planar arcane item and examines it with a strange glance in his eye. At first he seems overly excited -- like a child who has been handed a new toy, but then his glance changes into something that had previously seemed impossible of his charming features -- a stern seriousness. The gnome closes his eyes and begins a soft chant beneath his breath. The words are barely audible beneath the slow, gentle vibration that rings through the air around the both of you. The item seems to grow more real and tangible, its incorporeal state completely rent beneath the magician's spell. The gnome eventually opens his eyes and scans the arcane runes, scribed in fiery red, pale blue, crystal, and a deep emerald hue. He then nods in approval and extends the scroll to you, 'There you go, friend! This should do quite nicely, indeed!"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(28435, 28436, 16342)); --Level 65 Magician spell, PoP (Rathe's Son, Sun Vortex, Call of the Arch Mage) + glyphed = glyphed - 1; + until glyphed == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--quest by Kilelen +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Elisha_Dirtyshoes.lua b/poknowledge/Elisha_Dirtyshoes.lua new file mode 100644 index 0000000..f127a7d --- /dev/null +++ b/poknowledge/Elisha_Dirtyshoes.lua @@ -0,0 +1,18 @@ +--Willamina's Needles +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well, good day to you, good traveler. I am Elisha Dirtyshoes, a humble citizen of New Tanaan. Though I have never braved the dangers of an adventurer's life, I make a suitable and humble life here in this beautiful city. If you are a potter, then perhaps my wares might interest you?"); + elseif(e.message:findi("ring")) then + e.self:Emote("sighs and says, 'Tis a painful memory, for sure. My love for Narik fell once I met Onirelin, but my love for him was not reciprocated. Now I am left with no one to share my life, with only this ring as a reminder. Narik may have it back if he desires it, but then I shall be left truly alone. Boiron Ston once held a door open for me, such a handsome dwarf he is. If he could only find more time to spend with me, giving up this ring would be no problem at all. Do you think he likes me? Could you ask him and find out?'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28086})) then--Letter to Elisha + e.self:Emote("reads the letter and says, 'Oh happy day! Boiron will be visiting me soon. You may take Narik's ring back to him now. If you'll excuse me, I have some cleaning up to do.'"); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,28087,100);--Narik's Ring + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Ellis_Cloudchaser.lua b/poknowledge/Ellis_Cloudchaser.lua new file mode 100644 index 0000000..9d97ef9 --- /dev/null +++ b/poknowledge/Ellis_Cloudchaser.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well. good day to you my friend. and welcome! We of New Tanaan are quite excited with the recent influx of foreigners into our fair hamlet in the cosmos -- but I ramble without speech of business. If you are a fletcher in trade. then you have certainly come to the right place. for you will not find prices more fair or supplies more generous in any region upon Norrath as you will here. in New Tanaan."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Ethoach_Trokith.lua b/poknowledge/Ethoach_Trokith.lua new file mode 100644 index 0000000..9fbaa0e --- /dev/null +++ b/poknowledge/Ethoach_Trokith.lua @@ -0,0 +1,22 @@ +--Advanced Stealth Manual + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:DoAnim(70); + if(e.other:HasItem(28793)) then + e.self:Say("Good day, " .. e.other:GetCleanName() .. ". It would appear you have learned much about the art of stealth already, and this is good. Are you ready to learn more? If so, listen closely. To graduate to the next level of precision and cunning you need to discover a few items. Bring forth a Blizzard Gem, a Symbol of the Diaku, a Blue Diamond, and your Intermediate Stealth Manual. I feel this will be an adequate test of your skill at this stage in your development. Good luck!"); + else + e.self:Say("Good day, " .. e.other:GetCleanName() .. ". The pursuit of knowledge above all else is most important. It is good to see one such as yourself partaking in that pursuit simply by coming to me for guidance. I am afraid however that I must reject you, for you do not appear to be ready to learn what I have to offer. Please understand I mean no ill by this and I wish to see you again sometime when you are truly capable of my teachings."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetLevel() > 19 and item_lib.check_turn_in(e.self, e.trade, {item1 = 22503, item2 = 9423, item3 = 26709, item4 = 28793})) then--Blue Diamond, Blizzard Gem, Symbol of the Diaku, Intermediate Stealth Manual + e.self:Say("Astounding! This certainly proves you are worth far more than you appear. Take this book, it can teach you many new things. Also know this, Tenada Jeried is available for further study, and only for advanced students such as yourself. Be sure to visit him and tell him you are interested in learning from him. Take care, " .. e.other:GetCleanName() .. "."); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,math.random(5),math.random(5),0,28794,500000); --Advanced Stealth Manual + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Ferin_Lightfoot.lua b/poknowledge/Ferin_Lightfoot.lua new file mode 100644 index 0000000..4f95cc7 --- /dev/null +++ b/poknowledge/Ferin_Lightfoot.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:DoAnim(29); + e.self:Say("Greetings. " .. e.other:GetCleanName() .. ". I am Ferin Lightfoot. resident of New Tanaan and scholar in my prime. Now. in my retirement from the excitement of my former life as an adventurer. I am here to offer what knowledge I can in order to help those akin to my former life. In addition to basic supplies which you may need on your adventures I also carry some books which may help liven up any dull. boring spells during your travels."); + end +end diff --git a/poknowledge/Gammle_Hecht.lua b/poknowledge/Gammle_Hecht.lua new file mode 100644 index 0000000..b953c7a --- /dev/null +++ b/poknowledge/Gammle_Hecht.lua @@ -0,0 +1,20 @@ +--Quest Name: Gammle's Display + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Good day " .. e.other:GetCleanName() .. ". I don't mean to be curt but I have much work to do to be ready for my museum display, and there is not much time left. I expect many young warriors to be visiting here, but it is unfortunate that I do not have the final pieces I am [missing]. They would add to the collection greatly."); + elseif(e.message:findi("missing")) then + e.self:Say("If you would be willing to help me, I can make it worth your while. I need you to find a Minotaur Battle Axe, Goblin Two-Handed Sword, Chill Dagger, and an Ancient Sensate Shield. When you get these items, put them in a Collector's Box that you can get from [Merri], close it up and bring it to me."); + elseif(e.message:findi("merri")) then + e.self:Say("Curator Merri is the founder of the museum in the Selia district of New Tanaan. She is a true visionary and a wonderful person as well. It is her dream to turn life's love into something truly grand. She also carries with her the Collector's Boxes. If you need one, be sure to ask her for it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28079})) then + e.self:Say("These will do. Please accept this as a show of my appreciation. Now if you'll excuse me I have much work left to do."); + e.other:QuestReward(e.self,0,0,0,0,28243); + end +end diff --git a/poknowledge/Glena_Quok.lua b/poknowledge/Glena_Quok.lua new file mode 100644 index 0000000..07360c5 --- /dev/null +++ b/poknowledge/Glena_Quok.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("gives a warm. toothy smile and pleasant nod of her head in greeting. 'An' good day t'ye. " .. e.other:GetCleanName() .. "! Well. what might 'have brought ye t'old Glena Quok. Hrm? Perhaps ye be a distinguished member o'the blacksmithin' arts. aye? Well. if that indeed be the case. then we certaintly be in luck! I am a bit familiar with the trade meself an' offer me services t'any smith who may 'ave use fer what I am offerin' at the time. Dinnae be shy. friend! Search me wares if ye be interested and purchase what ye like.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Gligo_Muddypants.lua b/poknowledge/Gligo_Muddypants.lua new file mode 100644 index 0000000..49319bf --- /dev/null +++ b/poknowledge/Gligo_Muddypants.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Oh. hello there. " .. e.other:GetCleanName() .. "! If you are searching for pottery materials. well then my friend. you have certainly come to the right place. Come and search my wares. if you wish it. I guarantee that my prices are most fair.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Grand_Librarian_Maelin.lua b/poknowledge/Grand_Librarian_Maelin.lua new file mode 100644 index 0000000..b1d5b43 --- /dev/null +++ b/poknowledge/Grand_Librarian_Maelin.lua @@ -0,0 +1,85 @@ +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + + if ( e.message:findi("hail") ) then + + if ( qglobals.time or (qglobals.zebuxoruk == "2" and e.other:HasItem(29165)) ) then + e.other:Message(0, "Maelin tells you, 'The Quintessence! Oh my this is amazing! I have come into contact with Chronographer Muon in the realm of innovation. Go to him, show him you have the power to activate machine. I shall meet you there, this I must see!'"); + + elseif ( qglobals.zebuxoruk == "2" ) then + e.other:Message(0, "Maelin tells you, 'As I have told you, you must retrieve the elemental essence from each elemental plane so that we can activate the machine in the Plane of Innovation that will open a portal into the shard of time that Zebuxoruk is held.'"); + + elseif ( qglobals.cipher ) then + e.other:Message(0, "Maelin tells you, 'Welcome back my friends. I assure you that I have been studying the Cipher of Druzzil very diligently. Did you happen to find any lore or information that I could look at?'"); + + elseif ( qglobals.mmarr and qglobals.saryrn ) then + e.other:Message(0, "Maelin tells you, 'Astounding, this truly is the Cipher of Druzzil! I shall take notes from your knowledge and try to learn from it. If you happen upon any artifacts that have writings in the language of the gods bring them back to me and I will do my best to read them to you in common tongue.'"); + eq.set_global("cipher", "1", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + eq.delete_global("mmarr"); + eq.delete_global("saryrn"); + else + e.other:Message(0, "Maelin tells you, 'Welcome to Myrist! This is truly something for me to be proud of. All of the knowledge you can find here in this library is because of many years of hard work gathering data. If you happen to come across any especially interesting information come bring it to me and I will try to catalogue it for the library.'"); + end + + elseif ( e.message:findi("lore") ) then + + if ( qglobals.zebuxoruk ) then + + if ( qglobals.zebuxoruk == "2" ) then + e.other:Message(0, "Maelin tells you, 'As I have told you, you must retrieve the elemental essence from each elemental plane so that we can activate the machine in the Plane of Innovation that will open a portal into the shard of time that Zebuxoruk is held.'"); + elseif ( qglobals.zeks and qglobals.zeks == "7" ) then + e.other:Message(0, "Maelin tells you, 'A parchment of Rallos'? Let me read it, it says that Rallos was not alone in his feelings about mortals. Solusek Ro also holds stake in the war to be led on Norrath. Not only this but he is channeling power from his father's plane into his own. He is taking that power and intensifying it through an artifact of great power, and then focusing it onto one point. It is a detailed as a crystal that burns with all the powers of the plane of fire. It is said to have the ability to turn the face of Norrath into a charred wasteland. They plan for a manaetic behemoth to carry and deposit it upon Norrath. You must stop these plans, you must stop Solusek!'"); + else + e.other:Message(0, "Maelin tells you, 'Since we now know of the fate of Zebuxoruk I would suggest seeking those that could have had a hand in the planning and tactics of that situation. The Zeks are especially gifted at things of this nature. I would recommend trying to get any information from them that you can.'"); + end + else + if ( qglobals.mmarr_book and qglobals.karana and qglobals.karana == "4" ) then + e.other:Message(0, "Maelin tells you, 'This is quite interesting friends. It is a detailed document on what has become of Zebuxoruk. It seems that he had been tampering with translating works of the gods for mortals. This knowledge was leading them to enlightenment and finally to ascention into dietyhood. This angered the gods, for they felt that any diety should be chosen by them. Ascension of any mortal was not something they were prepared to deal with.'"); + eq.set_global("zebuxoruk", "1", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + eq.delete_global("mmarr_book"); + eq.delete_global("karana"); + + elseif ( qglobals.mmarr_book or (qglobals.karana and qglobals.karana == "4") ) then + e.other:Message(0, "Maelin tells you, 'What is this that you have found? It appears to be written in the divine language. Let me see, the writing on the front seems to indicate that it is some sort of journal of things already passed. I cannot make heads or tails of the rest of it though, there must be another piece.'"); + + else + e.other:Message(0, "Maelin tells you, 'Come now, I don't see any new lore about you. There is no reason to be dishonest with me.'"); + end + end + + elseif ( e.message:findi("information") ) then + + if ( qglobals.zebuxoruk == "2" ) then + e.other:Message(0, "Maelin tells you, 'As I have told you, you must retrieve the elemental essence from each elemental plane so that we can activate the machine in the Plane of Innovation that will open a portal into the shard of time that Zebuxoruk is held.'"); + + elseif ( qglobals.zebuxoruk == "1" and qglobals.zeks == "7" ) then + e.other:Message(0, "Maelin tells you, 'There is no way to escape from the prison that is The Plane of Time. I am sorry but your quest for information ends here. Time is something that none of us can escape. That is however.. back when my explorations of the Planes were more common, I would travel searching for knowledge and lore to bring back to Tanaan. I stumbled into the Plane of Innovation. It was a great marvel to see indeed. I found the creator of all things mechanical. Meldrath the Marvelous was a kind and just gnome. We spent many weeks together discussing all of his devices. This included a machine that would allow you to open a tear into a period of time and enter into that time. The machine was more of a flight of whimsy though as the power necessary to power such a machine was enormous. He jokingly equated needing the very essence of the elements to power it.'"); + e.other:Message(0, "Maelin takes a deep breath and continues, 'I can see now that he was not joking at all. Let us suppose that you travelers could venture into the Elemental Planes and retrieve this essence; and form it into one powerful conglomeration. You could open a tear into the period of time before Zebuxoruk was imprisoned. There is no way you can free him from his stasis now, but if you were to halt the Pantheon at the time of imprisonment. Hah! It could work I do believe. Forgive me, but my old gnomish heart is alive with the excitement of possibilities. Gather up your strength friends, travel into the deep elements. You will need all of your wits about you. Find the very essence of the elementals, and fuse them into one. How to combine them I do not know, and can only wish you luck on finding that information. If you can accomplish this please come get me. I would like to record the events as they take place!'"); + eq.set_global("zebuxoruk", "2", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + + elseif ( qglobals.zeks ) then + + if ( qglobals.cipher ) then + + if ( qglobals.zeks == "7" ) then + e.other:Message(0, "Maelin tells you, 'Now that we have learned what has been planned for Norrath, might I suggest that you try to obtain any lore that you can while traveling the planes? I would like to learn from any history written in the divine language that you might come across.'"); + + elseif ( qglobals.zeks == "6" ) then + e.other:Message(0, "Maelin tells you, 'As I have already told you, Rallos must be stopped! The war he plans to rage on Norrath could have devastating effects on not only that planet but all planes of existence!'"); + + elseif ( qglobals.zeks == "5" ) then + e.other:Message(0, "Maelin tells you, 'This cannot be. You must hurry! Rallos Zek seems to be planing a massive raid on Norrath. He is tired of mortals overstepping their boundaries! You are the only hope! Go challenge Rallos, hurry!'"); + eq.set_global("zeks", "6", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + end + else + if ( qglobals.zeks == "3" or qglobals.zeks == "4" or qglobals.zeks == "5" ) then + e.other:Message(0, "Maelin tells you, 'Notes written in the language of the gods! Unfortunately only one with the Cipher of Druzzil could translate these. I do not know where this legendary cipher can be retrieved, but I wish you luck in finding it and bringing it to me.'"); + end + end + end + end +end diff --git a/poknowledge/Grandmaster_Chendra.lua b/poknowledge/Grandmaster_Chendra.lua new file mode 100644 index 0000000..84a8ac2 --- /dev/null +++ b/poknowledge/Grandmaster_Chendra.lua @@ -0,0 +1,24 @@ +--Monk Tomes/Planar Armor Exchange +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("gives a deep-seated bow of respect and humble greetings. Her voice is gentle and calm, like the soothing melody of a grandmother with the youth of a newborn wind. 'Greetings, my friend, and may the light watch over your path. The district of Selia is one of light and upholds its virtues fervently, though we do not seek to impose upon others in our humble plane. You will find many whom, upon your world, are enemies but here, though they look upon you with disdain, are ultimately your equals in the quest for knowledge and enlightenment. If you are a student of the disciplines of the monk, then I shall lend my knowledge to you whenever you are in need of lessons in the martial skills of our order.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {1201, 1202, 1203, 1204, 1205, 1206}); --Shiverback-hide Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Grandmaster_Limsa.lua b/poknowledge/Grandmaster_Limsa.lua new file mode 100644 index 0000000..2be60f4 --- /dev/null +++ b/poknowledge/Grandmaster_Limsa.lua @@ -0,0 +1,24 @@ +--Monk Tomes/Planar Armor Exchange +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("closes his eyes and gives a deep-seated bow before " .. e.other:GetCleanName() .. ". 'Greetings, traveler. I am Grand Master Limsa, master of the tranquil order of the Tanaan district of the Plane of Knowledge. Monks of both Norrathian orders may approach me for guidance and knowledge through the long path of self-mastery and discipline.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {1201, 1202, 1203, 1204, 1205, 1206}); --Shiverback-hide Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Grandmaster_Vohar.lua b/poknowledge/Grandmaster_Vohar.lua new file mode 100644 index 0000000..b3ffb17 --- /dev/null +++ b/poknowledge/Grandmaster_Vohar.lua @@ -0,0 +1,24 @@ +--Monk Tomes/Planar Armor Exchange +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("sneers coldly, his face contorting into a wretched, gruesome stare of hate. His eyes fill with an untamed, feral bloodlust as his low, hissing voice begins to seep from his throat. 'You stand within the district of Kartis -- the cradle of the seed of corruption in the universe. How strange it is that we find a child of the goodly mortal virtues willingly engaging in conversation with those they have sworn to destroy. I see that perhaps you feel yourself immune to the corruption, or that you will cast down your blade and use wit and the power of your 'pure' soul to overcome the shadow at its core. How amusing -- pathetically naive and vain, but amusing nonetheless. Learn from our adepts -- convince yourself it is a means to learn our secrets, if you will, but learn from us. You will serve us most efficiently without even a conscious awareness of your deeds.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {1201, 1202, 1203, 1204, 1205, 1206}); --Shiverback-hide Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Grave_Lord_Dreavud.lua b/poknowledge/Grave_Lord_Dreavud.lua new file mode 100644 index 0000000..7f0cdc2 --- /dev/null +++ b/poknowledge/Grave_Lord_Dreavud.lua @@ -0,0 +1,24 @@ +--Shadow Knight Tomes/Planar Armor Exchange +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("peels back the upper right portion of his thin lips, giving a dark sneer of his gruesome features and horrific maw. 'You do not belong here! Return to Selia, where the light thrives. The shadow would embrace you, should you let it, but you are here for some righteous cause - one to destroy the shadow or learn of its secrets. You will find no success here, you pathetic little light crawler. Remain here and ignore my warning, and you will condemn yourself to consumption by the shadow should you further pursue its interests.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {4841, 4842, 4843, 4844, 4845, 4846, 4847}); --Umbral Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Grave_Lord_Vizurik.lua b/poknowledge/Grave_Lord_Vizurik.lua new file mode 100644 index 0000000..7eeea72 --- /dev/null +++ b/poknowledge/Grave_Lord_Vizurik.lua @@ -0,0 +1,24 @@ +--Shadow Knight Tomes/Planar Armor Exchange +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("peels back the upper right portion of his thin lips, giving a dark sneer of his gruesome features and horrific maw. 'You do not belong here! Return to Selia, where the light thrives. The shadow would embrace you, should you let it, but you are here for some righteous cause - one to destroy the shadow or learn of its secrets. You will find no success here, you pathetic little light crawler. Remain here and ignore my warning, and you will condemn yourself to consumption by the shadow should you further pursue its interests.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {5166, 5167, 5168, 5169, 5171, 5172, 5173}); --Greenmist Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Gravelady_Beddia.lua b/poknowledge/Gravelady_Beddia.lua new file mode 100644 index 0000000..63f45ff --- /dev/null +++ b/poknowledge/Gravelady_Beddia.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail seeker of knowledge. There is much to be learned here in New Tanaan of the dark gods of Norrath. I have been searching the great library for tomes pertaining to my patron Bertoxxulous. the Plague Lord and made some interesting finds. If you wish to study the tomes I have uncovered you may borrow them and they will be returned to me by the magic of New Tanaan when you are through."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Guardian_Adew.lua b/poknowledge/Guardian_Adew.lua new file mode 100644 index 0000000..15403be --- /dev/null +++ b/poknowledge/Guardian_Adew.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to the Selia district of [New Tanaan]. Be sure to help us to keep it clean!"); + end +end diff --git a/poknowledge/Guardian_Cigosh.lua b/poknowledge/Guardian_Cigosh.lua new file mode 100644 index 0000000..a52f8ac --- /dev/null +++ b/poknowledge/Guardian_Cigosh.lua @@ -0,0 +1,7 @@ +-- poknowledge\Guardian_Cigosh.lua NPCID 202102 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to New Tanaan, friend! Enjoy your visit and may your quest for enlightenment be a pleasant one!"); + end +end \ No newline at end of file diff --git a/poknowledge/Guardian_Daknot.lua b/poknowledge/Guardian_Daknot.lua new file mode 100644 index 0000000..5914724 --- /dev/null +++ b/poknowledge/Guardian_Daknot.lua @@ -0,0 +1,7 @@ +-- poknowledge\Guardian_Daknot.lua NPCID 202118 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("grins a wide toothy smile and says. 'You may want to watch yourself. unless you are looking to enter a painful situation. The portals in this district will lead someone of your race to a city of the wrong alignment. If you use the portals and end up in the wrong place. you'll be crushed for certain."); + end +end \ No newline at end of file diff --git a/poknowledge/Guardian_Drendle.lua b/poknowledge/Guardian_Drendle.lua new file mode 100644 index 0000000..cc9cf08 --- /dev/null +++ b/poknowledge/Guardian_Drendle.lua @@ -0,0 +1,7 @@ +-- poknowledge\Guardian_Drendle.lua NPCID 202115 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Selia district of New Tanaan. Be sure to help us to keep it clean!"); + end +end \ No newline at end of file diff --git a/poknowledge/Guardian_Frendad.lua b/poknowledge/Guardian_Frendad.lua new file mode 100644 index 0000000..b004b1c --- /dev/null +++ b/poknowledge/Guardian_Frendad.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("grins a wide toothy smile and says. 'You may want to watch yourself. unless you are looking to enter a painful situation. The portals in this district will lead someone of your race to a city of the wrong alignment. If you use the portals and end up in the wrong place. you'll be crushed for certain.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Guardian_Jerbabi.lua b/poknowledge/Guardian_Jerbabi.lua new file mode 100644 index 0000000..9a39283 --- /dev/null +++ b/poknowledge/Guardian_Jerbabi.lua @@ -0,0 +1,7 @@ +-- poknowledge\Guardian_Jerbabi.lua NPCID 202027 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote(" nods deeply in formal greetings. 'The guardians of Jeral welcome you, traveler. Tread freely and without fear of judgment among us, for we embrace all as our equals. Respect our laws and we shall respect your individuality and preferences in life. Only quarrel and conflict are condemned in Jeral and thus our company is quite willing to accommodate any traveler's needs. Find our merchants, masters, and citizens if you have need of supplies or knowledge, for we are eager to make the acquaintance of all of Norrath's soldiers."); + end +end diff --git a/poknowledge/Guardian_Kedirakith.lua b/poknowledge/Guardian_Kedirakith.lua new file mode 100644 index 0000000..b004b1c --- /dev/null +++ b/poknowledge/Guardian_Kedirakith.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("grins a wide toothy smile and says. 'You may want to watch yourself. unless you are looking to enter a painful situation. The portals in this district will lead someone of your race to a city of the wrong alignment. If you use the portals and end up in the wrong place. you'll be crushed for certain.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Guardian_Rhenwan.lua b/poknowledge/Guardian_Rhenwan.lua new file mode 100644 index 0000000..15403be --- /dev/null +++ b/poknowledge/Guardian_Rhenwan.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to the Selia district of [New Tanaan]. Be sure to help us to keep it clean!"); + end +end diff --git a/poknowledge/Guardian_Rhorin.lua b/poknowledge/Guardian_Rhorin.lua new file mode 100644 index 0000000..316cb6e --- /dev/null +++ b/poknowledge/Guardian_Rhorin.lua @@ -0,0 +1,7 @@ +-- poknowledge\Guardian_Rhorin.lua NPCID 202106 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("grins a wide toothy smile and says. 'You may want to watch yourself. unless you are looking to enter a painful situation. The portals in this district will lead someone of your race to a city of the wrong alignment. If you use the portals and end up in the wrong place. you'll be crushed for certain."); + end +end \ No newline at end of file diff --git a/poknowledge/Guardian_Rirak.lua b/poknowledge/Guardian_Rirak.lua new file mode 100644 index 0000000..3664d43 --- /dev/null +++ b/poknowledge/Guardian_Rirak.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to [New Tanaan]. friend! Enjoy your visit and may your quest for enlightenment be a pleasant one!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Guardian_Thaowyn.lua b/poknowledge/Guardian_Thaowyn.lua new file mode 100644 index 0000000..379828e --- /dev/null +++ b/poknowledge/Guardian_Thaowyn.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to the Selia district of [New Tanaan]. Be sure to help us to keep it clean!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Guardian_Ulaurd.lua b/poknowledge/Guardian_Ulaurd.lua new file mode 100644 index 0000000..06284a0 --- /dev/null +++ b/poknowledge/Guardian_Ulaurd.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to the Kartis district of [New Tanaan]. comrade. May you gain power through knowledge."); + end +end diff --git a/poknowledge/Guardian_Vaehan.lua b/poknowledge/Guardian_Vaehan.lua new file mode 100644 index 0000000..cf5680c --- /dev/null +++ b/poknowledge/Guardian_Vaehan.lua @@ -0,0 +1,7 @@ +-- poknowledge\Guardian_Vaehan.lua NPCID 202096 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Selia district of New Tanaan. Be sure to help us to keep it clean!"); + end +end \ No newline at end of file diff --git a/poknowledge/Guardian_Wedrijan.lua b/poknowledge/Guardian_Wedrijan.lua new file mode 100644 index 0000000..b004b1c --- /dev/null +++ b/poknowledge/Guardian_Wedrijan.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("grins a wide toothy smile and says. 'You may want to watch yourself. unless you are looking to enter a painful situation. The portals in this district will lead someone of your race to a city of the wrong alignment. If you use the portals and end up in the wrong place. you'll be crushed for certain.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Gwiraba_Gelrid.lua b/poknowledge/Gwiraba_Gelrid.lua new file mode 100644 index 0000000..aa2c2e4 --- /dev/null +++ b/poknowledge/Gwiraba_Gelrid.lua @@ -0,0 +1,21 @@ +--Advanced Combat Manual + +function event_say(e) + if(e.message:findi("Hail")) then + if(e.other:HasItem(28790)) then + e.self:Say("Good day to you, " .. e.other:GetCleanName() .. ". By the looks of things you have learned quite a bit about planar combat already, but if you wish to be truly knowledgeable on the subject, there is one last course you must undertake. Using your newfound courage and bravery, you must collect for me a Sandstorm Gem, a Rage Filled Gem, and a Blue Diamond. Bring me these items along with your Intermediate Combat Manual. And remember, unless you have the moral nerve to live out your convictions, they are of little account."); + else + e.self:Say("Good day to you, " .. e.other:GetCleanName() .. ". Are you new to this cirty or have you been a long time resident? I'm afraid I do not get to run about and explore like I used to, as my studies keep me quite busy. If you have the time and inclination, I would suggest you explore the land some more. Then perhaps one day when you return, you will be redy to learn what I have to teach you."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetLevel() > 19 and item_lib.check_turn_in(e.self, e.trade, {item1 = 22503, item2 = 26697, item3 = 9421, item4 = 28790})) then--Blue Diamond, Rage Filled Gem, Sandstorm Gem, Intermediate Combat Manual + e.self:Say("I must say, this is a surprise. I was beginning to wonder if you would ever return with these. I'm glad you see you have though. Take this new book and use it well in your future journeys. You may also be interested to know that Tenada Jeried also has a few lesson plans for very advanced students. If you should see him, be sure to tell him you are interested in learning from him. Good luck to you, " .. e.other:GetCleanName() .. "!"); + e.other:QuestReward(e.self,0,math.random(10),math.random(10),math.random(0,5),28791,500000); --Advanced Combat Manual + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Halena_Paerk.lua b/poknowledge/Halena_Paerk.lua new file mode 100644 index 0000000..e3ceb87 --- /dev/null +++ b/poknowledge/Halena_Paerk.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings to you. traveler. The recent past has brought quite a bit of excitement that New Tanaan is not quite accustomed to -- though it is welcome nonetheless. Many residents of the city are former adventurers like yourself. Others were great adepts and craftsmen. Being a former tradeswoman and adventurer. I have come to New Tanaan in hopes of bettering my own knowledge in the ways of my trade. However. in recent light of your presence. many of us have chosen to aid you where we can. If you are a blacksmith. or aspire to be. then I may have some supplies worthy of your talent."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Heretic_Ceikon.lua b/poknowledge/Heretic_Ceikon.lua new file mode 100644 index 0000000..2386812 --- /dev/null +++ b/poknowledge/Heretic_Ceikon.lua @@ -0,0 +1,9 @@ +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Heretic_Drahur.lua b/poknowledge/Heretic_Drahur.lua new file mode 100644 index 0000000..6649bd0 --- /dev/null +++ b/poknowledge/Heretic_Drahur.lua @@ -0,0 +1,41 @@ +--Necromancer PoP Spells +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Salutations. The keepers of necromancy in New Tanaan are neither your enemy or foe, as they may have been upon the material world of Norrath. Though our natures are in tact, we have elevated ourselves beyond the petty, debased bickering that Norrath has come to embody over the passing eras. All adventurers and intelligent beings are welcome in our midst, for we share only the common goal of knowledge and personal betterment in our power. I have gathered tomes and spells that I no longer have use for, as I have ascended beyond Norrath's limitations of the dark arts. However, you remain a mortal still and your abilities may never reach the esteemed levels of ours, bur do not let this discourage you. Search my tomes and perhaps I hold something of importance or relevance to your current quest for power. There is another realm of magic that I am quite familiar with, as well -- the aspects of planar magic."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local ethereal = item_lib.count_handed_item(e.self, e.trade, {29112}); --Ethereal Parchment + local spectral = item_lib.count_handed_item(e.self, e.trade, {29131}); --Spectral Parchment + local glyphed = item_lib.count_handed_item(e.self, e.trade, {29132}); --Glyphed Rune Word + if(ethereal > 0) then + repeat + e.self:Emote("takes the arcane item from you. The erudite inspects the incorporeal item for a brief amount of time. He then closes his eyes and begins a dark chant that causes the air about you to grow cold and stiff - your breathing is briefly impaired and for a single moment, you feel as if you are about to suffocate. As the erudite's voice falls back to silence, the discomfort fades and you look upon the item in his hands. It is corporeal now - tangible in all aspects. Runes of inky black have formed upon the item - runes that you recognize immediately as those of necromantic foundations. The erudite gives a gentle nod of his head and hands the scroll to you, 'This should prove more than useful for your endeavors in the planes. However, it extends beyond such limits and can be applied to the primordial world."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(26945, 21638, 21640, 28413, 28417, 26946, 28418, 28419)); --Level 61 or 62 Necromancer spell, PoP (Greater Immobilize, Touch of Mujaki, Neurotoxin, Shield of the Arcane, Legacy of Zek, Petrifying Earth, Rune of Death, Saryrn's Kiss) + ethereal = ethereal - 1; + until ethereal == 0; + end + if(spectral > 0) then + repeat + e.self:Emote("takes the arcane item from you. The erudite inspects the incorporeal item for a brief amount of time. He then closes his eyes and begins a dark chant that causes the air about you to grow cold and stiff - your breathing is briefly impaired and for a single moment, you feel as if you are about to suffocate. As the erudite's voice falls back to silence, the discomfort fades and you look upon the item in his hands. It is corporeal now - tangible in all aspects. Runes of inky black have formed upon the item - runes that you recognize immediately as those of necromantic foundations. The erudite gives a gentle nod of his head and hands the scroll to you, 'This should prove more than useful for your endeavors in the planes. However, it extends beyond such limits and can be applied to the primordial world."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(28414, 28420, 28421, 28422, 28415, 28423, 28424, 28559)); --Level 63 or 64 Necromancer spell, PoP (Force Shield, Death's Silence, Embracing Darkness, Saryrn's Companion, Shield of Maelin, Seduction of Saryrn, Touch of Death, Destroy Undead) + spectral = spectral - 1; + until spectral == 0; + end + if(glyphed > 0) then + repeat + e.self:Emote("takes the arcane item from you. The erudite inspects the incorporeal item for a brief amount of time. He then closes his eyes and begins a dark chant that causes the air about you to grow cold and stiff - your breathing is briefly impaired and for a single moment, you feel as if you are about to suffocate. As the erudite's voice falls back to silence, the discomfort fades and you look upon the item in his hands. It is corporeal now - tangible in all aspects. Runes of inky black have formed upon the item - runes that you recognize immediately as those of necromantic foundations. The erudite gives a gentle nod of his head and hands the scroll to you, 'This should prove more than useful for your endeavors in the planes. However, it extends beyond such limits and can be applied to the primordial world."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(28416, 28425, 28427)); --Level 65 Necromancer spell, PoP (Blood of Thule, Child of Bertoxxulous, Word of Terris) + glyphed = glyphed - 1; + until glyphed == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- quest by Kilelen +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Heretic_Edalith.lua b/poknowledge/Heretic_Edalith.lua new file mode 100644 index 0000000..2386812 --- /dev/null +++ b/poknowledge/Heretic_Edalith.lua @@ -0,0 +1,9 @@ +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Heretic_Elirev.lua b/poknowledge/Heretic_Elirev.lua new file mode 100644 index 0000000..2386812 --- /dev/null +++ b/poknowledge/Heretic_Elirev.lua @@ -0,0 +1,9 @@ +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Heretic_Niraf.lua b/poknowledge/Heretic_Niraf.lua new file mode 100644 index 0000000..2386812 --- /dev/null +++ b/poknowledge/Heretic_Niraf.lua @@ -0,0 +1,9 @@ +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Hierophant_Trilawyth.lua b/poknowledge/Hierophant_Trilawyth.lua new file mode 100644 index 0000000..07373af --- /dev/null +++ b/poknowledge/Hierophant_Trilawyth.lua @@ -0,0 +1,24 @@ +--Planar Armor Exchange +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("gives a gentle bow of his head in respect toward " .. e.other:GetCleanName() .. ". 'The district of Tanaan welcomes you, traveler. The adepts of the city have come together collectively and as individuals in hopes of aiding our visitors as we are able. In my time upon Norrath, I served as a child of nature dedicated to Tunare, the Mother of All. Though my faith has not wavered and my philosophies of nature have only grown in this astral city, I am able to train any druid who is in need of gaining a better grasp upon their skills. Mind you, however, that I am not a preacher and will not guide you through the instruction of faith or spell, for it is these things you must acquire and perfect through your own trials.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {3801, 3802, 3803, 3804, 3805, 3806, 3807}); --Vermiculated Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/High_Priest_Elikor.lua b/poknowledge/High_Priest_Elikor.lua new file mode 100644 index 0000000..05b194c --- /dev/null +++ b/poknowledge/High_Priest_Elikor.lua @@ -0,0 +1,35 @@ +--Planar Armor Exchange +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("raises a brow sharply, his beautiful features contorting into a flawless mask of regal superiority and a meager amusement in disdain toward " .. e.other:GetCleanName() .. ". 'I see that the ranting of Selia's zealous crusaders of 'passion and honor' have become even too much for those who once believed themselves of the same cause. Indeed, how marvelously intriguing. Perhaps now you reside in Kartis to bathe in the cold embrace of the shadow -- a promise of power has beckoned you, and your spirit heeds the call hungrily. Perhaps consciously, you do not see it -- or you are ashamed to admit the tantalizing, unbearable lure of guaranteed power, but you do feel it in your dreams, in the deepest recesses of your 'pure' soul. The hate. . . the glorious hate thrives in your eyes like blooming nightshade in the cold winter sun as they gaze upon me now. Aaaah. . . how beautiful it is. . . how truly beautiful you could be. Yes, I believe that you do indeed have a home here, in Kartis, among the shadows and the true power of this universe. Ha!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {4881, 4882, 4883, 4884, 4885, 4886, 4887}); --Ethereal Mist Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Imported from original file +function event_spawn(e) + x = e.self:GetX(); + y = e.self:GetY(); + eq.set_proximity(x - 90, x + 90, y - 90, y + 90); +end + +function event_enter(e) + eq.signal(202273,5); --Qadar +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/High_Priest_Eliwan.lua b/poknowledge/High_Priest_Eliwan.lua new file mode 100644 index 0000000..b5ac718 --- /dev/null +++ b/poknowledge/High_Priest_Eliwan.lua @@ -0,0 +1,24 @@ +--Planar Armor Exchange +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("makes an almost unearthly graceful gesture as he bows politely at the waist in formal greetings. 'May the light of Tunare shine brightly upon your fate, my friend, and may the purity of goodly virtues guide your convictions. I am High Priest Eliwan, former scholar, historian, and spiritual leader in the faith dedicated toward the Mother of All. In the era that housed my life, Takish`Hiz was my home in the beautiful forest of Elddar, the shining crown jewel of Tunare's grace and infinite splendor. We were at peace then -- the trolls and ogres had yet to rise against us and the foul Teir`Dal still far from their surfacing from the bowels of the underfoot. Eventually, the time would come for me to pass beyond and it was the light of Selia that seduced my spirit with its decadent allure of purity. Though I love my goddess, I did not wish to leave her service in the universe and this recent era has granted me the utmost pleasure of returning to that active service again.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {4881, 4882, 4883, 4884, 4885, 4886, 4887}); --Ethereal Mist Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/High_Priest_Vasil.lua b/poknowledge/High_Priest_Vasil.lua new file mode 100644 index 0000000..5836f02 --- /dev/null +++ b/poknowledge/High_Priest_Vasil.lua @@ -0,0 +1,24 @@ +--Planar Armor Exchange +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("closes his eyes and gives a deep, formal bow before " .. e.other:GetCleanName() .. ". 'Welcome to Jeral, friend. I am Vasil, High Priest of Brell Serillis and resident master of the clerical arts in the district of Tanaan. If you have come in search of a mentor to guide you through the skills of your priesthood, then do not be discouraged by my own declaration of faith should it differ from yours. I cannot teach you how to know and be close to your deity in life, for only you may know that individually, but I can impart to you the fundamental basics that every priest, despite the object of their undying faith and devotion, wields in their life of service.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {4881, 4882, 4883, 4884, 4885, 4886, 4887}); --Ethereal Mist Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Holly_Longtail.lua b/poknowledge/Holly_Longtail.lua new file mode 100644 index 0000000..63a7f71 --- /dev/null +++ b/poknowledge/Holly_Longtail.lua @@ -0,0 +1,24 @@ +--Holly Longtail's Replacement Parts +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". The preservation of ancestors is a time-honored tradition. It's a task one must handle with painstaking care and precision. Please do not fret for the lives of these specimens. They live in the eternal realm of beauty now. I have quite a large collection of stuffed animals ready to go, but many of them have sustained injuries in their capture. In fact, I wouldn't mind some help to collect some [replacement parts] from creatures around the world."); + elseif(e.message:findi("replacement parts")) then + e.self:Say("Grab a Collector's Box from [Merri] before you go. You need to recover an Undead Froglok Tongue, Cockatrice Beak, High Quality Cougarskin, and a Tiny Rockhopper Eye. Seal the box tightly and return it to me. If the contents are in sufficient and usable condition, I may have a reward for you."); + elseif(e.message:findi("Merri")) then + e.self:Say("Curator Merri is the founder of the museum in the Selia district of New Tanaan. She is a true visionary and a wonderful person as well. It is her dream to turn life's love into something truly grand. She also carries with her the Collector's Boxes. If you need one, be sure to ask her for it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28076})) then--Collection of Taxidermy + e.self:Emote("opens the box and carefully inspects its contents. 'These will do. Please accept this as a show of my appreciation. Now if you'll excuse me I have much work left to do."); + e.other:QuestReward(e.self,0,0,0,0,28237);--Fine Antique Ring + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Horil_Imsin.lua b/poknowledge/Horil_Imsin.lua new file mode 100644 index 0000000..bc8629d --- /dev/null +++ b/poknowledge/Horil_Imsin.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail and well met. " .. e.other:GetCleanName() .. ". If you have come seeking the ways of the blacksmith. then you have certainly come to one of many places that can accommodate you. However. New Tanaan is unique from the cities of the prime in that in no other common ground of trade will you find such a diversity and acceptance of culture. Well then. if you are indeed a blacksmith and are seeking materials. please feel free to peruse my inventory at your leisure. I'm sure that I can provide something of use to you. and if not. my brethren will likely carry that which you seek.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Illusionist_Acored.lua b/poknowledge/Illusionist_Acored.lua new file mode 100644 index 0000000..4c4c06a --- /dev/null +++ b/poknowledge/Illusionist_Acored.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Why. hello there. " .. e.other:GetCleanName() .. ". and welcome to New Tanaan. In the past. we were rarely graced with the visits of Norrath's brave adventurers. but now it seems that your presence is delivered in a most gracious and unpredicted volume. Oh but I do not complain. my friend! I am merely excited and bound in wonder at the true. underlying tale of it all -- why. something most extraordinary must be on the heels of history's most recent climax for such interest to be garnered by Norrath's worldly scholars and travelers. We of New Tanaan understand these things most well. indeed. and our guidance is extended to all should they need it. I personally am one whose affinity is that of enchantments. and any who share my niche are more than welcome to browse what spells I carry and purchase them at their will and desire."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Illusionist_Jerup.lua b/poknowledge/Illusionist_Jerup.lua new file mode 100644 index 0000000..50771db --- /dev/null +++ b/poknowledge/Illusionist_Jerup.lua @@ -0,0 +1,40 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings traveler and welcome to the Plane of Knowledge! I am so pleased to see so many eager minds among us -- for it has been so long since I have had the meaningful presence of a pupil. If by chance you practice the art of Enchantments. then I might be of service to you. I have penned many spells from memory as a wandering enchanter and scholar of Norrath's history and though these spells are nothing unique or rare unto your world. they may provide some aid to you while you are here. Also. if you happen upon a seemingly meaningless item of arcane nature -- you will recognize these specific items I speak of by their corporeal state of existence -- then do not hesitate to take them up and return them to me. I know a thing or two regarding planar magic and can turn these seemingly mundane items into enchantments of great power."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local ethereal = item_lib.count_handed_item(e.self, e.trade, {29112}); --Ethereal Parchment + local spectral = item_lib.count_handed_item(e.self, e.trade, {29131}); --Spectral Parchment + local glyphed = item_lib.count_handed_item(e.self, e.trade, {29132}); --Glyphed Rune Word + if(ethereal > 0) then + repeat + e.self:Emote("accepts the item quite eagerly. With wide-eyes, the enchanter carefully examines every aspect of the fledgling arcane item. Eventually, she begins to weave a soft chant of arcane words -- their nature familiar to you of the art of enchantment, though they remain foreign in dialect and meaning. Eventually, the enchanter grows silent and the object cradled in her hands is whole and born anew. Golden runes line the tangible parchment -- runes of arcane enchantment. The enchantress then extends the item to you in gracious and unconditional offering, ''You have done well in recovering this, " .. e.other:GetCleanName() .. ". I am quite surprised that you were able to find one, for they are rare indeed. In any case, I have turned it into something that may prove useful to you as your journeys upon the planes continue."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(26944, 28413, 28643, 28644, 28452, 28453, 26947, 21665, 21667, 28455, 28457, 28469, 21639)); --Level 61 or 62 Enchanter spell, PoP (Greater Fetter, Shield of the Arcane, Arcane Rune, Boggle, Howl of Tashan, Rune of Zebuxoruk, Pacification, Speed of Vallon, Guard of Druzzil, Strangle, Beckon, Word of Morell, Aeldorb's Animation) + ethereal = ethereal - 1; + until ethereal == 0; + end + if(spectral > 0) then + repeat + e.self:Emote("accepts the item quite eagerly. With wide-eyes, the enchanter carefully examines every aspect of the fledgling arcane item. Eventually, she begins to weave a soft chant of arcane words -- their nature familiar to you of the art of enchantment, though they remain foreign in dialect and meaning. Eventually, the enchanter grows silent and the object cradled in her hands is whole and born anew. Golden runes line the tangible parchment -- runes of arcane enchantment. The enchantress then extends the item to you in gracious and unconditional offering, ''You have done well in recovering this, " .. e.other:GetCleanName() .. ". I am quite surprised that you were able to find one, for they are rare indeed. In any case, I have turned it into something that may prove useful to you as your journeys upon the planes continue."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(21666, 28458, 28460, 28461, 28464, 28415, 28459, 28465, 28468)); --Level 63 or 64 Enchanter spell, PoP (Night's Dark Terror, Torment of Scio, Tranquility, Uproar, Sleep, Shield of Maelin, Insanity, Command of Druzzil, Bliss) + spectral = spectral - 1; + until spectral == 0; + end + if(glyphed > 0) then + repeat + e.self:Emote("accepts the item quite eagerly. With wide-eyes, the enchanter carefully examines every aspect of the fledgling arcane item. Eventually, she begins to weave a soft chant of arcane words -- their nature familiar to you of the art of enchantment, though they remain foreign in dialect and meaning. Eventually, the enchanter grows silent and the object cradled in her hands is whole and born anew. Golden runes line the tangible parchment -- runes of arcane enchantment. The enchantress then extends the item to you in gracious and unconditional offering, ''You have done well in recovering this, " .. e.other:GetCleanName() .. ". I am quite surprised that you were able to find one, for they are rare indeed. In any case, I have turned it into something that may prove useful to you as your journeys upon the planes continue."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(21648, 21664, 28470)); --Level 65 Enchanter spell, PoP (Illusion Froglok, Vallon's Quickening, Voice of Quellious) + glyphed = glyphed - 1; + until glyphed == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--quest by Kilelen +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Illusionist_Lobaen.lua b/poknowledge/Illusionist_Lobaen.lua new file mode 100644 index 0000000..edac8d5 --- /dev/null +++ b/poknowledge/Illusionist_Lobaen.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Good day to you. " .. e.other:GetCleanName() .. ". Despite your purpose among us in New Tanaan. know that we bear no ill will toward any for mere distinctions of race or religious preference. We are all equals -- children of the gods and children of the earth alike. It has been a very long time since I have been among adventurers. and I admit that this is truly an experience I have not craved. The nymphs were persecuted in our day. though not through intended force. but in the expansion of your cultures and the erection of great elven and human cities. Aaah. but I do dwell on matters of the past. What is done is done. Now. I exist to aid you should you wish it. friend. I have adopted the mortal art of enchantment and what knowledge I have of it is yours should it be of use."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Illusionist_Sevat.lua b/poknowledge/Illusionist_Sevat.lua new file mode 100644 index 0000000..7d0986e --- /dev/null +++ b/poknowledge/Illusionist_Sevat.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello. traveler. New Tanaan greets you warmly and with the utmost respect. We only hope that you may return to us the same indifference and non prejudicial regard for knowledge and self-progression as we have founded this city upon for a timeless age. I myself was once a traveler as you are now -- exploring the world in search of adventure. wealth. fame. and glory. I am an enchanter. though now I exist as a scholar and researcher of my art. I. like so many other citizens of New Tanaan. have volunteered to give my knowledge unto those willing to accept it. If you are of the same art as I. perhaps you would wish to search my inventory. I have penned many spells from the memories of my youth and you may find something of interest amongst my collection."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Jahzo_Hammertail.lua b/poknowledge/Jahzo_Hammertail.lua new file mode 100644 index 0000000..46be412 --- /dev/null +++ b/poknowledge/Jahzo_Hammertail.lua @@ -0,0 +1,7 @@ +-- poknowledge\Jahzo_Hammertail.lua NPCID 202072 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("speaks forth in a slow and almost whispered hiss of the Cabilisian accent. 'Aaaah. . . Good day to you. traveler. Perhaps you have come in search of supplies to further your trade as a smith. yes? Well. then look no further. " .. e.other:GetCleanName() .. ". for the Hammertails hold the highest quality in their inventories and there is nothing that you won't find in our stock. we assure you.'"); + end +end diff --git a/poknowledge/Jaren_Cloudchaser.lua b/poknowledge/Jaren_Cloudchaser.lua new file mode 100644 index 0000000..46ec3a5 --- /dev/null +++ b/poknowledge/Jaren_Cloudchaser.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail and well met. friend. and welcome to New Tanaan. If your stay with us is brief and you seek only supplies. then know only security for this city holds an endless bounty of that which you seek. Within my particular shop. you will find materials used for fletching. If that which I carry is what you are in search of. then please. search and purchase at your leisure."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Kaleras_Darkanvil.lua b/poknowledge/Kaleras_Darkanvil.lua new file mode 100644 index 0000000..61312b7 --- /dev/null +++ b/poknowledge/Kaleras_Darkanvil.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Good day t'ye. traveler. If ye be in need of smithin' supplies. then ye've certainly come t'the right place. friend! The Darkanvils have many supplies needed for crafting some of the finest weapons and armor the universe has ever seen. and they are offered t'ye. . . At a fair price. a'course."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Kanio_Paerk.lua b/poknowledge/Kanio_Paerk.lua new file mode 100644 index 0000000..6dac552 --- /dev/null +++ b/poknowledge/Kanio_Paerk.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met. my friend. I am Kanio Paerk. a former warrior and tradesmen of the people of Kelethin. I and my lovely wife. Halena. have come to New Tanaan in hopes of furthering our knowledge. However. we have found the recent influx of Norrathian travelers to be quite intriguing and we wish to offer our aid where we can. As a blacksmith. I have been able to forge many components that will aid other adepts as myself in their own further quest for knowledge. Search my inventory. if you wish. and I will be more than pleased to accommodate you where I can."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Kertak_Hammertail.lua b/poknowledge/Kertak_Hammertail.lua new file mode 100644 index 0000000..09a24ac --- /dev/null +++ b/poknowledge/Kertak_Hammertail.lua @@ -0,0 +1,7 @@ +-- poknowledge\Zosran_Hammertail.lua NPCID 202074 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("addresses you in a hissing voice overwhelmed by the familiar accent of Cabilis. 'Welcome. stranger. to New Tanaan. You shall find little difficulty in gathering supplies for all known trades upon Norrath. If you seek to forge weaponry or armor of iron and steel. then the Hammertails are those at whom your search ends.'"); + end +end \ No newline at end of file diff --git a/poknowledge/Kirem_Deepfacet.lua b/poknowledge/Kirem_Deepfacet.lua new file mode 100644 index 0000000..90cd758 --- /dev/null +++ b/poknowledge/Kirem_Deepfacet.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Good day. traveler. I am Kirem Deepfacet and as a merchant of precious metals and stones. I serve this city. which has been most gracious in providing a home away from the turmoil of Norrath. If you seek supplies to craft jewelry of all sorts. then do not hesitate to search my inventory."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Klen_Ironstove.lua b/poknowledge/Klen_Ironstove.lua new file mode 100644 index 0000000..37e2e36 --- /dev/null +++ b/poknowledge/Klen_Ironstove.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings. traveler. and welcome to my shop! All adventurers who brave the toils of the astral realms of the gods need their sustenance and ol' Klen Ironstove provides all the necessities for bakers to produce their wares. Come. peruse my goods and see if there's anything here of interest t'ye."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Leramas_Feston.lua b/poknowledge/Leramas_Feston.lua new file mode 100644 index 0000000..07f6e87 --- /dev/null +++ b/poknowledge/Leramas_Feston.lua @@ -0,0 +1,21 @@ +--Intermediate Stealth Manual +function event_say(e) + if(e.message:findi("Hail")) then + e.self:DoAnim(70); + if(e.other:HasItem(28792)) then + e.self:Say("I hope your first teachings have taught you well, " .. e.other:GetCleanName() .. ". It is time for your next lesson. The accumulation of knowledge requires exploration and study. If you explore the cave system in the Plane of Disease, you may eventually discover a foul being by the name of Rallius Rattican. You are to bring me his head, along with your Beginner Stealth Manual. Once done, we may proceed with your next lesson."); + else + e.self:Say("Hello and welcome to New Tanaan. You are currently standing inside the Tanaan meeting hall. please feel free to relax and let your mind rest for a time here. Surely the adventures of planar travel must have you weary by now. The exploration of knowledge is a noble cause indeed. I have dedicated my life to helping others with their studies. Perhaps once you have achieved a certain level of readiness you should seek me out again."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28792, item2 = 29133})) then--Beginner Stealth Manual, Rattican's Head + e.self:Say("Good work, " .. e.other:GetCleanName() .. ". I must say I am quite impressed with your recovery of this. Clearly you have shown you are ready to begin your next lesson. Take this new book and when you are ready, speak to Ethoach Trokith. And remember, difficult tasks are put in our way not to stop us, but to call out our strength and resolve."); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,math.random(10),math.random(10),math.random(0,10),28793,500000);--Intermediate Stealth Manual + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Lohie_Cantare.lua b/poknowledge/Lohie_Cantare.lua new file mode 100644 index 0000000..8a731e1 --- /dev/null +++ b/poknowledge/Lohie_Cantare.lua @@ -0,0 +1,21 @@ +--Lohie's Music Exhibit + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". Have you come to see my exhibit? I am honored but also sad to say it is incomplete. Mine will be the finest presentation of musical history you will find, once I finish assembling my display. If you have some free time, perhaps you could help me collect some still missing [pieces]?"); + elseif(e.message:findi("pieces")) then + e.self:Say("'I need you to bring me a Minotaur Horn, Tambourine of Rituals, Orcish Lute of Singing, and a Stretched Skin Drum. If you could find these for me, I would be most overjoyed. You will need to get a Collector's Box from [Merri] to keep them in. Close the box up tightly and return it to me once you have placed the instruments inside. Hurry back and we shall have a grand festival!"); + elseif(e.message:findi("merri")) then + e.self:Say("Curator Merri is the founder of the museum in the Selia district of New Tanaan. She is a true visionary and a wonderful person as well. It is her dream to turn life's love into something truly grand. She also carries with her the Collector's Boxes. If you need one, be sure to ask her for it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28080})) then--Collection of Instruments + e.self:Emote("inspects each instrument carefully. 'These are in much better condition then I thought I would get them in. Adding these to my exhibit pleases me greatly. As promised, here is something for you.'");--Borrowed text, no final turn in text. + e.other:QuestReward(e.self,0,0,0,0,28239);--Fine Antique Amice + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Loran_Thu-Leth.lua b/poknowledge/Loran_Thu-Leth.lua new file mode 100644 index 0000000..18d3c24 --- /dev/null +++ b/poknowledge/Loran_Thu-Leth.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("If you are in need of poisons. then your presence is not a waste of my time. However. if you seek idle chit-chat or have come for some other affair than to purchase my wares. begone with you. I haven't the time nor the desire to engage in activities that will not yield me profit."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Magnar_Quok.lua b/poknowledge/Magnar_Quok.lua new file mode 100644 index 0000000..d03fb93 --- /dev/null +++ b/poknowledge/Magnar_Quok.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("gives a quaint. warm smile of welcoming. 'Greetin's an' well met. friend! I be Magnar Quok an' black smithin' be me trade! If ye by chance 'ave an affinity fer the anvil an' 'ammer as well. then ye 'ave certainly come t'the right place! Come. dinnae be shy an' search me wares! I'm certain I 'old somethin' that would be of use t'ye in the ways of iron and fire!'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Merabo_Sotath.lua b/poknowledge/Merabo_Sotath.lua new file mode 100644 index 0000000..90572cc --- /dev/null +++ b/poknowledge/Merabo_Sotath.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("gives you a wide. toothy grin. 'Welcome. traveler! The Plane o'Knowledge offers many. many great things as t'the ways of the universe and legends o'the greatest people t'ever walk the face o'Norrath. But that's not all we 'ave 'ere! The merchants an' tradesmen of Norrath from eras recent an' ancient past 'ave come t'gether in celebration o'your arrival. We 'ope t'meet new young an' aspiring people o'the arts an' share with them our experiences an' knowledge. If ye be a brewer. well then. this day be one of good fortune fer me. Come and inspect me wares. friend. and purchase whatever catches yer eye. The supplies 'ere are guaranteed and worth more than the measly price o'which I be sellin' 'em fer.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Merin_Darkanvil.lua b/poknowledge/Merin_Darkanvil.lua new file mode 100644 index 0000000..6090d47 --- /dev/null +++ b/poknowledge/Merin_Darkanvil.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Why. good day t'ye as well. good traveler. and welcome t'New Tanaan. We are overjoyed with your kind in our midst. for it 'as been far too long since we've been graced with the hearty character of Norrath's finest heroes and villians alike. Dinnae mistake this for boredom with our fair 'amlet of the cosmos. but take it as a compliment and one not given lightly at that. Well. if you are not inside the library. then you must be searching for supplies -- or ye be lost. In either case. perhaps you would find interest in supplies for blacksmithin"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Minstrel_Cirsaelle.lua b/poknowledge/Minstrel_Cirsaelle.lua new file mode 100644 index 0000000..7aec5d6 --- /dev/null +++ b/poknowledge/Minstrel_Cirsaelle.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings to you. " .. e.other:GetCleanName() .. ". and welcome to New Tanaan. I am Cirsaelle. a former minstrel of Norrath in a time long since past. Despite my age and the distance of time that separates the now from when last my feet touched Norrathian soil. my wisdom and memories have not faded. Though I wish I could help all travelers that approach me. my knowledge is limited to that of the bardic traditions. If these ways would aid your quest for self-enlightenment and progression. then perhaps I might be of service. Please. investigate the songs that I possess at your leisure. All coin that is given in trade will help fund this city's recent need to accommodate all Norrathian visitors."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Minstrel_Eoweril.lua b/poknowledge/Minstrel_Eoweril.lua new file mode 100644 index 0000000..85901d0 --- /dev/null +++ b/poknowledge/Minstrel_Eoweril.lua @@ -0,0 +1,41 @@ +--Bard PoP Spells/Songs +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail and well met, my friend. New Tanaan greets you most warmly and is grateful to have you in our midst. All residents of this great Plane of Knowledge have come together in recent times with the unexpected, though warmly embraced presence of Norrathian visitors. We hope that we might be able to aid you in lending our wisdom and timeless knowledge wherever possible to your cause. I wish I could do more, my friend, but I am but a humble bard and my services may only benefit those of like profession. However, if you believe that my services could be of use, then do not hesitate to peruse my inventory and purchase what you will. If by chance you come across a curious parchment or other arcane item of seemingly unidentifiable purpose, then do not hesitate to bring it to me. Besides having composed many a song in my day, I do know a thing or two regarding mysteries of the planes' magics."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local ethereal = item_lib.count_handed_item(e.self, e.trade, {29112}); --Ethereal Parchment + local spectral = item_lib.count_handed_item(e.self, e.trade, {29131}); --Spectral Parchment + local glyphed = item_lib.count_handed_item(e.self, e.trade, {29132}); --Glyphed Rune Word + if(ethereal > 0) then + repeat + e.self:Emote("takes the item from you and begins to humm softly, the item changes in his hands as the words take form into melody."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(28471, 28473, 21636, 28474, 28475, 28484, 16391)); --Level 61 or 62 Bard spell, PoP (Silent Song of Quellious, Tuyen's Chant of the Plague, Dreams of Thule, Druzzil's Disillusionment, Melody of Mischief, Warsong of Zek, Wind of Marr) + ethereal = ethereal - 1; + until ethereal == 0; + end + if(spectral > 0) then + repeat + e.self:Emote("takes the item from you and begins to humm softly, the item changes in his hands as the words take form into melody."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(28478, 28480, 28483, 28472, 28479, 28481, 28482, 21650)); --Level 63 or 64 Bard spell, PoP (Psalm of Veeshan, Tuyen's Chant of Venom, Tuyen's Chant of Ice, Rizlona's Call of Flame, Dreams of Terris, Call of the Banshee, Chorus of Marr, Requiem of Time) + spectral = spectral - 1; + until spectral == 0; + end + if(glyphed > 0) then + repeat + e.self:Emote("takes the item from you and begins to humm softly, the item changes in his hands as the words take form into melody."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(28477, 28485, 28486)); --Level 65 Bard spell, PoP (Tuyen's Chant of Fire, Harmony of Sound, Lullaby of Morell) + glyphed = glyphed - 1; + until glyphed == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--quest by Kilelen +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Minstrel_Gwiar.lua b/poknowledge/Minstrel_Gwiar.lua new file mode 100644 index 0000000..a89a30d --- /dev/null +++ b/poknowledge/Minstrel_Gwiar.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings. traveler. and well met. I am Minstrel Gwiar. and it is a pleasure to make the acquaintence of a fellow Norrathian whose career is in its prime. For many years I have been a resident of New Tanaan. taking awe in this place of unhindered wisdom and knowledge without the turmoil and unncessary. petty bias of the material worlds. Aaah. but I get ahead of myself -- please. forgive me. As a citizen of New Tanaan. I have pledged my knowledge to all visitors of our humble plane. Should you hold an interest in the bardic ways. then my inventory might hold some interest to you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Minstrel_Joet.lua b/poknowledge/Minstrel_Joet.lua new file mode 100644 index 0000000..fe0f137 --- /dev/null +++ b/poknowledge/Minstrel_Joet.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail. good traveler! Here. in the aptly named Plane of Knowledge. you will find a seemingly endless library of history. lore. and arcane and spiritual knowledge. In the recent times with the unexpected. though welcome arrival of other Norrathian travelers. the citizens of New Tanaan have come together in hopes of sharing our experiences in the mind to aid all that are willing. In a former life. I was a traveling minstrel in the court of the Combine Empire and what experience I gained from that life. I am willing to share with others like myself. If you are interested in song. then perhaps you would find my inventory of interest. Search as you will. my friend. and know that all prices are for the betterment of the city as a whole and not for personal gain."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Minstrel_Silnon.lua b/poknowledge/Minstrel_Silnon.lua new file mode 100644 index 0000000..8f2a7be --- /dev/null +++ b/poknowledge/Minstrel_Silnon.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Ah. good day to thee. " .. e.other:GetCleanName() .. " and welcome to New Tanaan. If you are searching for knowledge and a quiet. peaceful place to calm your senses from the wears of battle. then you could not have made a finer choice than the Plane of Knowledge. The residents of New Tanaan have come together with the recent presence of your kind in hopes of aiding and guiding you where and when we can. If you are perhaps of the bardic ilk. then I might be of some assistance. Please. search my stock if you wish it. All of the songs are recently penned by my own hand. though they are not of a unique or rare breed. they will serve any bard of the proper experience."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Mirao_Frostpouch.lua b/poknowledge/Mirao_Frostpouch.lua new file mode 100644 index 0000000..d9821dd --- /dev/null +++ b/poknowledge/Mirao_Frostpouch.lua @@ -0,0 +1,19 @@ +--Willamina's Needles +function event_say(e) + if(e.message:findi("Hail")) then + e.self:DoAnim(60); + e.self:Say("And good day to you, " .. e.other:GetCleanName() .. ". This great, wondrous city holds a seemingly endless supply of knowledge and power, attainable by all who walk our streets and seek it. In an effort to accommodate the travelers, scholars, and heroes alike that have ventured into our midst in this recent era. the citizens of New Tanaan have individually offered their own unique knowledge in almost every area significant to travelers of all professions. As a former chemist and knowing that not all of Norrath's great minds have the time or the patience to brew arcane potions. I have taken the liberty to craft some from my memory. Those that you will find in my inventory are the ones I felt would best suit our visitors."); + elseif(e.message:findi("have come for the elixir")) then + e.self:Say("That poor lad, he's always catching ill this time of year. Unfortunately I am out of the medicine he needs right now. Perhaps if you could obtain the key ingredient I am missing, I could brew up a batch for you to take to him. I have heard Cador recently came into possession of some black lava powder. If you can convince him to give you some, bring it to me right away!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28090})) then--Black Lava Powder + e.self:Emote("takes the powder and quickly dashes it into a boiling cauldron. He then stirs it and pours the concoction into a small bottle. 'Here you go, this should make poor Bolcen feel much better. Hurry now, he's waiting."); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,28091,100);--Curative Potion + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Mystic_Abomin.lua b/poknowledge/Mystic_Abomin.lua new file mode 100644 index 0000000..255d77f --- /dev/null +++ b/poknowledge/Mystic_Abomin.lua @@ -0,0 +1,42 @@ +--Shaman PoP Spells +--The level 64 spell scroll Talisman of Celerity isn't in my copy of the db, so it's not in this quest. Added by renoofturks spell talisman of alacrity + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("The mystics of New Tanaan embrace your presence among us most kindly - regard us as a friend and mentor, should you need our guidance we have offered our services to the shamans of Norrath that venture in our city. Though our guidance is that of spells native to your world, the mystic scribes in this city may hold some convenience for we do not hold the prejudice of the material world's citizens. Beyond these familiar scrolls, I may be able to aid you further should you bring me a fledgling arcane item from the planes. You will know of that which I speak if and when you stumble upon such a rare and seemingly mundane item. Do not be fooled by its plain appearance - the primordial essence of pure magic resides in these arcane relics and I can be the key to unlock them to the shamanistic powers."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local ethereal = item_lib.count_handed_item(e.self, e.trade, {29112}); --Ethereal Parchment + local spectral = item_lib.count_handed_item(e.self, e.trade, {29131}); --Spectral Parchment + local glyphed = item_lib.count_handed_item(e.self, e.trade, {29132}); --Glyphed Rune Word + if(ethereal > 0) then + repeat + e.self:Emote("carefully takes the planar arcane item from you. With a careful eye, he inspects every portion of the incorporeal item before nodding to himself in satisfaction. The shaman then closes his eyes and chants lowly in an unfamiliar language. You feel the coalescing of spirits around you in the area as the shaman calls them forth to bless the arcane item in his grip. Dark runes of a rusted color begin to carve themselves onto a parchment that grows more real and tangible with each syllable uttered by the shaman. Eventually, his chant comes to a close and the completed item is handed to you without expectation of further aid on your behalf, 'Do not use this power without caution, " .. e.other:GetCleanName() .. ". It is quite powerful indeed for it is power forged upon the planar worlds but may affect both astral and prime alike."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(28487, 28488, 28489, 28490, 26945, 26946,21660, 21661, 28491, 28492, 28493, 28494)); --Level 61 or 62 Shaman spell, PoP (True Spirit, Agility of the Wrulan, Spear of Torment, Cloud of Grummus, Greater Immobilize, Tnarg's Mending, Focus of Soul, Ancestral Guard, Endurance of the Boar, Talisman of the Wrulan, Talisman of the Tribunal, Petrifying Earth) + ethereal = ethereal - 1; + until ethereal == 0; + end + if(spectral > 0) then + repeat + e.self:Emote("carefully takes the planar arcane item from you. With a careful eye, he inspects every portion of the incorporeal item before nodding to himself in satisfaction. The shaman then closes his eyes and chants lowly in an unfamiliar language. You feel the coalescing of spirits around you in the area as the shaman calls them forth to bless the arcane item in his grip. Dark runes of a rusted color begin to carve themselves onto a parchment that grows more real and tangible with each syllable uttered by the shaman. Eventually, his chant comes to a close and the completed item is handed to you without expectation of further aid on your behalf, 'Do not use this power without caution, " .. e.other:GetCleanName() .. ". It is quite powerful indeed for it is power forged upon the planar worlds but may affect both astral and prime alike."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(28495, 28496, 28497, 28498, 28499, 28531, 26910, 26912, 26913, 26914, 26911)); --Level 63 or 64 Shaman spell, PoP (Tears of Saryrn, Malicious Decay, Malosinia, Strength of the Diaku, Talisman of the Boar, Blessing of Replenishment, Velium Strike, Talisman of the Diaku, Tiny Terror, Breath of Ultor, Talisman of Alacrity) + spectral = spectral - 1; + until spectral == 0; + end + if(glyphed > 0) then + repeat + e.self:Emote("carefully takes the planar arcane item from you. With a careful eye, he inspects every portion of the incorporeal item before nodding to himself in satisfaction. The shaman then closes his eyes and chants lowly in an unfamiliar language. You feel the coalescing of spirits around you in the area as the shaman calls them forth to bless the arcane item in his grip. Dark runes of a rusted color begin to carve themselves onto a parchment that grows more real and tangible with each syllable uttered by the shaman. Eventually, his chant comes to a close and the completed item is handed to you without expectation of further aid on your behalf, 'Do not use this power without caution, " .. e.other:GetCleanName() .. ". It is quite powerful indeed for it is power forged upon the planar worlds but may affect both astral and prime alike."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(26915, 26916, 26917, 26918, 26919)); --Level 65 Shaman spell, PoP (Malos, Blood of Saryrn, Focus of the Seventh, Quiescence, Ferine Avatar) + glyphed = glyphed - 1; + until glyphed == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Mystic_Goharkor.lua b/poknowledge/Mystic_Goharkor.lua new file mode 100644 index 0000000..d3b7b68 --- /dev/null +++ b/poknowledge/Mystic_Goharkor.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("speaks in a hushed voice. barely audible. though the tones of an ancient and long past era emerge through the Iksar's unfamiliar accent. 'Greetings. " .. e.other:GetCleanName() .. ". The mystics of New Tanaan welcome you as an equal. We are scholars and no longer bound by the darkness of our shallow disdain for race or faith. However. each adept must teach only within their knowledge and as a shaman. I must extend my knowledge only to those who are of the same ilk. I have scribed many spells from my memory of the times past on Norrath and these spells are for any that they would aid.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Mystic_Pikor.lua b/poknowledge/Mystic_Pikor.lua new file mode 100644 index 0000000..d243cab --- /dev/null +++ b/poknowledge/Mystic_Pikor.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("The mystics of New Tanaan greet " .. e.other:GetCleanName() .. " openly. Do not be afraid of Pikor. for my appearance betrays my nature in this place. All are Pikor's equals. and none below me. I am a mystic of Innoruuk. but my faith in the dark father is not of blood and death any longer. Pikor is of knowledge and power beyond Norrath. and I must cast down my guidance of the eye and turn to the spirit. as shall you when your time comes. If you are a shaman. Pikor may guide you as I have scribed my memory of spells no longer useful here for shaman who seek and need the power."); + end +end + +function event_spawn(e) + x = e.self:GetX(); + y = e.self:GetY(); + eq.set_proximity(x - 90, x + 90, y - 90, y + 90); +end + +function event_enter(e) + eq.signal(202274,5); --Nomaad +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Mystic_Ryrin.lua b/poknowledge/Mystic_Ryrin.lua new file mode 100644 index 0000000..5b9afb9 --- /dev/null +++ b/poknowledge/Mystic_Ryrin.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail to you. " .. e.other:GetCleanName() .. ". The Mystics of New Tanaan extend their welcome to you. traveler. and hope that our knowledge will come of use to all that seek it. As an adept and shaman of the Tribunal. I have come to dismiss all former prejudice of race and accept each being as an equal to me in creation and existence. With the recent influx of travelers from Norrath to our city and the planes beyond. the citizens of New Tanaan have done what we can to assure that those who seek knowledge will have it at their disposal. The adepts maintain their art and thus you must seek the scholar of your class in order to receive proper guidance and aid that you might seek. I have scribed some spells from my past upon Norrath. and though they no longer prove useful to me in this place. I am certain that they will aid a shaman of Norrath should they be in need of them."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Mystic_Somas.lua b/poknowledge/Mystic_Somas.lua new file mode 100644 index 0000000..ed0e3fa --- /dev/null +++ b/poknowledge/Mystic_Somas.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail to you. " .. e.other:GetCleanName() .. ". New Tanaan's mystics are always fond of visitors. for it is we above all others who desire pupils and interaction with the world. Though often times we seem solitary. the spirits guide us and we always listen. It is when a pupil is listening to our words and following a path carved from our guidance that we feel possessed with life and purpose. The mystics of New Tanaan have been limited. however. and we may only properly guide others who are shaman of their mortal world. Spells have been scribed from our collective memories and those who feel that they may gain from our efforts are encouraged to browse our inventories."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Neverral_N-Ryt.lua b/poknowledge/Neverral_N-Ryt.lua new file mode 100644 index 0000000..9806d81 --- /dev/null +++ b/poknowledge/Neverral_N-Ryt.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings traveler. If you have come to New Tanaan seeking knowledge then perhaps these books I have uncovered in great library will interest you. You may borrow them and the magic of New Tanaan will return them to their place in the library when you are through."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Noirin_Khalen.lua b/poknowledge/Noirin_Khalen.lua new file mode 100644 index 0000000..6f658aa --- /dev/null +++ b/poknowledge/Noirin_Khalen.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("gives a gentile nod of her head in a proper and well-trained greeting. 'Good day to you " .. e.other:GetCleanName() .. ". and may the light of this place enlighten your quest for knowledge and understanding of our existence. I am Norin Khalen. a former enchanter and scholar of the world and a master jeweler of Erudin. In this place. in this time and era. I serve the people and the purpose as a craftswoman. My wares are suited for my art and are available to any aspiring jeweler that may wish to perfect their art whilst in our midst. I also have the ability to translate special scrolls into knowledge of how to imbue planar gems.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Onirelin_Gali.lua b/poknowledge/Onirelin_Gali.lua new file mode 100644 index 0000000..bc3f167 --- /dev/null +++ b/poknowledge/Onirelin_Gali.lua @@ -0,0 +1,18 @@ +--Willamina's Needles +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("peers you over carefully, studying you. 'Welcome and come in, stranger. Are you here to simply look around or have you come to speak to my superior, Gunyth? If so, you may find him upstairs. Watch your step, now.'"); + elseif(e.message:findi("artifact")) then + e.self:Emote("pauses for a moment and continues, 'I am aware of that which Cador desires. Be wary of his ways for they are not always as they appear. Nevertheless, if he thinks this artifact will bring him greater peace, he may have it for a price. Certainly I have no use for it but what do I get in return? I'll tell you. Narik and I used to be good friends, until he became jealous of my relationship with his former companion Elisha. During our fight, he marched off with one of my finest jewels, and I believe still has it. Find him and ask for my jewel back. If you bring it to me, Cador may get want he wants as well.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28088})) then--Onirelin's Jewel + e.self:Say("How did you get this away from Narik? Oh never mind, I'm just happy to have it back. I shall give you what Cador desires now, keep it secure and deliver it to him."); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,28089,100);--Cador's Artifact + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Oracle_Balek.lua b/poknowledge/Oracle_Balek.lua new file mode 100644 index 0000000..0589aa6 --- /dev/null +++ b/poknowledge/Oracle_Balek.lua @@ -0,0 +1,19 @@ +--Planar Armor Exchange +--New file, no text at all for him, so just going with the armor turn-ins and that's all. +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {5182, 5183, 5184, 5185, 5186, 5187, 5188, 5189}); --Scaled Hierophant Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Oracle_Cador.lua b/poknowledge/Oracle_Cador.lua new file mode 100644 index 0000000..6a71e81 --- /dev/null +++ b/poknowledge/Oracle_Cador.lua @@ -0,0 +1,26 @@ +--Willamina's Needles/Planar Armor Exchange +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("gives a stiff nod in proper greetings to " .. e.other:GetCleanName() .. ". 'The light of Selia shines in welcoming, friend. If you seek supplies or training, know that Selia will accommodate your every need in these specific areas most efficiently -- for that is what we have striven for in the recent past with the unexpected, though eagerly welcome influx of Norrath's heroes. I am Oracle Cador, shaman of The Truthbringer and adept of my art in the district of Selia. I shall oblige any needs that you may have now or in the future regarding training in the shamanistic ways. If you are of another adept path, then do not be disheartened for Selia holds an adept master for every art that the pure light of goodly mortal virtues shines upon.'"); + elseif(e.message:findi("black lava powder")) then + e.self:Say("You are most astute. I do have a stock of black lava powder with me, but I will only share it with those who prove themselves worthy. Onirelin Gali is currently in possession of an artifact I need to better commune with the spirits. Please recover it for me."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {4871, 4872, 4873, 4874, 4875, 4876, 4877}); --Rune Etched Armor + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28089})) then--Cador's Artifact + e.self:Say("The spirits are restful now that this piece of legend is in safe hands. You may take this to Mirao for whatever purpose he desires it for. May your vision always be clear!"); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,28090,100); --Black Lava Powder + end + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Oracle_Guwan.lua b/poknowledge/Oracle_Guwan.lua new file mode 100644 index 0000000..e755781 --- /dev/null +++ b/poknowledge/Oracle_Guwan.lua @@ -0,0 +1,24 @@ +--Planar Armor Exchange +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("curls back his thin, reptilian-like lips, baring a two rows of jagged, unkempt teeth in a sinister sneer of hate. 'Little worm speaks? How quaint and disgusting you are, worm, and how pathetic. Begone from Kartis, little worm, you do not belong among the shadows. Your ears will melt when the shadow speaks the secrets of its mind and infinite memory. But. . . hehehe. . . but. yes. maybe you little worms think yourselves beyond the shadow's venomous tongue. . . maybe you are. . . heheheh. . . maybe you should stay, worm, and learn from Guwan. He knows much of the shadow's words, the shadow that taints and subdues the world of spirits to its will. Yes, stay worm, and learn from the shadow. . . see how. . . hehehehe. . . see how brave you truly are.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {4871, 4872, 4873, 4874, 4875, 4876, 4877}); --Rune Etched Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Oracle_Maeth.lua b/poknowledge/Oracle_Maeth.lua new file mode 100644 index 0000000..24baa1e --- /dev/null +++ b/poknowledge/Oracle_Maeth.lua @@ -0,0 +1,24 @@ +--Planar Armor Exchange +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("makes a sweeping motion with his arms in an almost ritualistic fashion of greetings known only to those of the shamanistic world. 'We welcome you, friend, to the Tanaan district of the Plane of Knowledge. Beyond a seemingly endless fount of tangible supplies, the adepts of Jeral have come together and offered to retake our former duties as guildmasters and mentors to those of our art. In my life before New Tanaan's embrace of me, I served as one of many shamans of the Northmen, before Halas' walls were secured in the turmoil of the frozen north. As the years passed and years fell way to decades, I ascended to hold the seat of guild master of my order and have mentored countless shamans in my day. If you are in need of such knowledge, then please, do not hesitate in acquiring my aid.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {4871, 4872, 4873, 4874, 4875, 4876, 4877}); --Rune Etched Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Pathfinder_Viliken.lua b/poknowledge/Pathfinder_Viliken.lua new file mode 100644 index 0000000..d8e1f2b --- /dev/null +++ b/poknowledge/Pathfinder_Viliken.lua @@ -0,0 +1,40 @@ +--Ranger PoP Spells +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, friend, and welcome to New Tanaan. We have worked hard to properly greet you into our midst, and hope that our efforts shall not be in vain. As a ranger of Tunare in my former life upon Norrath, I have joined my fellow Pathfinders in scribing spells from memory of our journeys upon your world. These spells are not unique to the Plane of Knowledge, for they are the same as those Norrath offers to its guardians. However, they may be convenient for you to purchase here while you are browsing our libraries and engaging in the wonders of our beautiful, peaceful city. However, do not forget the scholars whilst you are engaging in the planes. You may stumble across a piece of pure arcane manifestation that may appear mundane at first, but with my help can become a spell of great power to all of nature's wardens."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local ethereal = item_lib.count_handed_item(e.self, e.trade, {29112}); --Ethereal Parchment + local spectral = item_lib.count_handed_item(e.self, e.trade, {29131}); --Spectral Parchment + local glyphed = item_lib.count_handed_item(e.self, e.trade, {29132}); --Glyphed Rune Word + if(ethereal > 0) then + repeat + e.self:Emote("takes the arcane item from you. Carefully, he inspects it -- nodding to himself in recognition of the item and planning of his next step. The ranger then begins a soft, melodic chant of priestly origin. You recognize the nature of the words to be a hym of the natural world, though you cannot decipher their meaning. The arcane object fades into existence, the runes etching themselves upon the surface become clear in their mat, neutral hues. Eventually, the ranger's chant ends and the object in his hand is complete. He then extends it to you in unconditional offering, 'Use this wisely and with great respect for the power that has originated it. The primordial arcane powers of the divine worlds are not to be disrespected.'"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(26943, 21628, 21627)); --Level 61 or 62 Ranger spell, PoP (Earthen Roots, Call of the Rathe, Strength of Tunare) + ethereal = ethereal - 1; + until ethereal == 0; + end + if(spectral > 0) then + repeat + e.self:Emote("takes the arcane item from you. Carefully, he inspects it -- nodding to himself in recognition of the item and planning of his next step. The ranger then begins a soft, melodic chant of priestly origin. You recognize the nature of the words to be a hym of the natural world, though you cannot decipher their meaning. The arcane object fades into existence, the runes etching themselves upon the surface become clear in their mat, neutral hues. Eventually, the ranger's chant ends and the object in his hand is complete. He then extends it to you in unconditional offering, 'Use this wisely and with great respect for the power that has originated it. The primordial arcane powers of the divine worlds are not to be disrespected.'"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(26931, 26929, 26930, 21626)); --Level 63 or 64 Ranger spell, PoP (Frozen Wind, Nature's Rebuke, Spirit of the Predator, Brushfire) + spectral = spectral - 1; + until spectral == 0; + end + if(glyphed > 0) then + repeat + e.self:Emote("takes the arcane item from you. Carefully, he inspects it -- nodding to himself in recognition of the item and planning of his next step. The ranger then begins a soft, melodic chant of priestly origin. You recognize the nature of the words to be a hym of the natural world, though you cannot decipher their meaning. The arcane object fades into existence, the runes etching themselves upon the surface become clear in their mat, neutral hues. Eventually, the ranger's chant ends and the object in his hand is complete. He then extends it to you in unconditional offering, 'Use this wisely and with great respect for the power that has originated it. The primordial arcane powers of the divine worlds are not to be disrespected.'"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(21655, 26932)); --Level 65 Ranger spell, PoP (Protection of the Wild, Cry of Thunder) + glyphed = glyphed - 1; + until glyphed == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Perago_Crotal.lua b/poknowledge/Perago_Crotal.lua new file mode 100644 index 0000000..3881ebc --- /dev/null +++ b/poknowledge/Perago_Crotal.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well. greetings to you good traveler! Perago Crotal is at your service and I guarantee that if its fresh vegetables that you're searching for. you shan't find a rival to my products. Aaah. but I speak too much -- come and see for yourself. my friend."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Peras_Glickon.lua b/poknowledge/Peras_Glickon.lua new file mode 100644 index 0000000..22f481e --- /dev/null +++ b/poknowledge/Peras_Glickon.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings. traveler! If you have come searching to restock on reagents. then I am most glad to see you. Please. browse my wares and purchase whatever you need from my stock."); + end +end + +function event_spawn(e) + x = e.self:GetX(); + y = e.self:GetY(); + eq.set_proximity(x - 90, x + 90, y - 90, y + 90); +end + +function event_enter(e) + eq.signal(202273,5); --Qadar +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Phantasmist_Abaur.lua b/poknowledge/Phantasmist_Abaur.lua new file mode 100644 index 0000000..54de5c9 --- /dev/null +++ b/poknowledge/Phantasmist_Abaur.lua @@ -0,0 +1,24 @@ +--Planar Armor Exchange +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("closes his eyes and in a graceful motion, gives a low, sweeping bow. 'Greetings to you, friend, and welcome to the district of Selia. We are the beacon of light and justice, of all that is good and kind. As Tanaan is the cornerstone of neutrality, we are the shining jewel of righteousness, valor, and honor. I am Phantasmist Abaur and in my years upon Norrath, served as an enchanter within the arcane council of Freeport. Then, the city was in a fledgling state of being -- the Temple of Truth was still in the primordial beginnings of its construction and the city served mostly as a port rather than the functioning metropolis I'm told it has come to be today. If you practice the same art and require aid in learning the fundamental basic skills, then I will be more than pleased to oblige that necessity.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {1246, 1247, 1248, 1249, 1250, 1251, 1252}); --Insidious Armor, the comments on Alla's about this not being taken are in error, I believe. It's Fine Insidious that's not taken. + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Phantasmist_Salkith.lua b/poknowledge/Phantasmist_Salkith.lua new file mode 100644 index 0000000..b9e11f3 --- /dev/null +++ b/poknowledge/Phantasmist_Salkith.lua @@ -0,0 +1,25 @@ +--Planar Armor Exchange +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("tilts his head back, a sneer crossing his features in unmasked disgust toward " .. e.other:GetCleanName() .. ". 'What exactly are you doing here, " .. e.other:GetCleanName() .. "? Don't you know that this is the district of Kartis -- the center of the shaded voice of mortal power in the known universe? Perhaps you stumbled into the darkness by accident -- but then, why would not your deity of pure light, justice, valor, and honor deter you from this place? Perhaps they have abandoned you, or perhaps you have been subject to the true face value of their illusion.'"); + e.self:Emote("ponders a moment, then continues. 'Yes, " .. e.other:GetCleanName() .. ", your god does not exist -- not as you think of them, for none of them care of you either way. Serve them with your life and go to the same place that all mortals go when they perish, despite their dogmatic affiliations. Indeed, I stand here on my own accord -- my faith is in myself and in my power and thus is how I fuel the shadow. Perhaps this is a life more suited for you -- for it is a shame to see all that conviction and head-strong will go to waste, now isn't it?'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {1246, 1247, 1248, 1249, 1250, 1251, 1252}); --Insidious Armor, the comments on Alla's about this not being taken are in error, I believe. It's Fine Insidious that's not taken. + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Phantasmist_Tairon.lua b/poknowledge/Phantasmist_Tairon.lua new file mode 100644 index 0000000..bc77783 --- /dev/null +++ b/poknowledge/Phantasmist_Tairon.lua @@ -0,0 +1,31 @@ +--Planar Armor Exchange +function event_say(e) + if(e.message:findi("Hail")) then + if(e.other:Race() == "Dark Elf" or e.other:Race() == "Iksar" or e.other:Race() == "Troll" or e.other:Race() == "Ogre" or e.other:Class() == "Shadowknight" or e.other:Class() == "Necromancer") then + e.self:DoAnim(48) + e.self:Emote("gives a soft, though polite nod of greetings. 'You stand within the district of Tanaan -- one of neutrality, free of the constraints of zealous purpose and philosophies. We tolerate all in our midst, though I must warn you that your presence here may be challenged in question by the residents of this place. We do not hold your kind in a high regard, for we understand that your purpose in this universe is one of corruption and evil, despite your rational. Even if you have hopes of ascending beyond the preconceived judgment of your lineage, we shall not place trust in you. In any case, we of Tanaan shall uphold the law of this fair astral city and the knowledge that we have to offer is at your disposal should you be in need of it. However, I would suggest that you make way to the district of Kartis, where one of your kind would be received more warmly.'"); + else + e.self:DoAnim(70); + e.self:Emote("gives a deep, sweeping bow of proper and formal greetings. 'Welcome, Heiggan, to the district of Tanaan -- the true soul and core of the city of New Tanaan. We uphold a strict and fervent belief in neutrality; where corruption is viewed in ill regard and the unwavering iron belief of superiority and self-imposed justice is equally disliked in our midst. Though we of Tanaan are not like the scholars of Myrist, who have thrown down their mortal heritage in favor of the pursuit of inner-enlightenment and power beyond their mortal coils, we have not abandoned the true purpose of this city and offer our guidance and knowledge to all who we deem worthy of it from our own attentions. As a former enchanter in my existence upon Norrath, I am more than capable of mentoring those who practice my art if they should desire my guidance.'"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {1246, 1247, 1248, 1249, 1250, 1251, 1252}); --Insidious Armor, the comments on Alla's about this not being taken are in error, I believe. It's Fine Insidious that's not taken. + if(count > 0) then + repeat + e.self:Say("This looks good, thank you " .. e.other:GetCleanName() .. "."); + -- Confirmed Live Experience: 300000 + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Primalist_Saosith.lua b/poknowledge/Primalist_Saosith.lua new file mode 100644 index 0000000..f90b748 --- /dev/null +++ b/poknowledge/Primalist_Saosith.lua @@ -0,0 +1,46 @@ +--Beastlord PoP Spells +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome, traveler, to New Tanaan. All citizens of New Tanaan have come together in welcoming Norrath's curious travelers who crave knowledge and a path to better themselves individually. What little help I alone can offer is extended to the Beastlords of Norrath, for as I was once one of them in a time long since past. If you are a Beastlord, then perhaps what spells that I have penned, though neither unique nor rare to your world, would be of use. If through your endeavors upon the planes you happen to come across fledgling manuscripts -- similar to those upon which a spell or song is scribed -- then you may return them to me if you wish. I am quite versed in the ways of planar magics relating to the Beastlord's focus."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local ethereal = item_lib.count_handed_item(e.self, e.trade, {29112}); --Ethereal Parchment + local spectral = item_lib.count_handed_item(e.self, e.trade, {29131}); --Spectral Parchment + local glyphed = item_lib.count_handed_item(e.self, e.trade, {29132}); --Glyphed Rune Word + if(ethereal > 0) then + repeat + e.self:Say("The magic you have given me is quite potent, it should be a simple task to use primal forces to focus its magic into a spell."); + e.self:Emote("closes her eyes and the object glows slightly in her hands."); + e.self:Say("Here, I hope this will prove of some use to you."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(28544, 28545, 21629, 28547, 28548)); --Level 61 or 62 Beastlord spell, PoP (Spirit of Arag, Infusion of Spirit, Healing of Sorsha, Scorpion Venom, Spiritual Vigor) + ethereal = ethereal - 1; + until ethereal == 0; + end + if(spectral > 0) then + repeat + e.self:Say("The magic you have given me is quite potent, it should be a simple task to use primal forces to focus its magic into a spell."); + e.self:Emote("closes her eyes and the object glows slightly in her hands."); + e.self:Say("Here, I hope this will prove of some use to you."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(28549, 28550, 21630, 28551, 28552)); --Level 63 or 64 Beastlord spell, PoP (Arag's Celerity, Spirit of Rellic, Frost Spear, Spiritual Dominion, Spirit of Sorsha) + spectral = spectral - 1; + until spectral == 0; + end + if(glyphed > 0) then + repeat + e.self:Say("The magic you have given me is quite potent, it should be a simple task to use primal forces to focus its magic into a spell."); + e.self:Emote("closes her eyes and the object glows slightly in her hands."); + e.self:Say("Here, I hope this will prove of some use to you."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(28553, 28554)); --Level 65 Beastlord spell, PoP (Sha's Revenge, Ferocity) + glyphed = glyphed - 1; + until glyphed == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Primalist_Uliag.lua b/poknowledge/Primalist_Uliag.lua new file mode 100644 index 0000000..1844bd5 --- /dev/null +++ b/poknowledge/Primalist_Uliag.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello " .. e.other:GetCleanName() .. "!"); -- TODO: update text + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Created April 17, 2010 by mrhodes +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Radie_Imsin.lua b/poknowledge/Radie_Imsin.lua new file mode 100644 index 0000000..9782960 --- /dev/null +++ b/poknowledge/Radie_Imsin.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Ah. greetings to you. traveler. Much traffic has passed this quiet. peaceful city's ground in the recent past. It has been a very long time since last we have been graced with the pleasure of a bustling city atmosphere. though we hope that the general peace and courtesy to all beings remains intact. With this new excitement. many of the city's adepts have emerged in hopes to aid the new comers where and when we can. As a blacksmith and former shaman of my tribe. I have offered my knowledge in the ways of smithing to any. My inventory holds many components that smiths will need throughout their career and search for advancement and perfection. and all are for sale at a reasonable price."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Raewyth_Velanor.lua b/poknowledge/Raewyth_Velanor.lua new file mode 100644 index 0000000..6e423ff --- /dev/null +++ b/poknowledge/Raewyth_Velanor.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("winces his reptilian eyes in a brief. callous study of you. The Iksar's features contort into a grim. malicious smirk that masterfully incorporates his inherantly viscious and merciless demeanor. In a drawled hiss. heavily accented with the Sebilisian Empire of old. the iksar finally speaks. 'How quaint -- a 'hero' of the world. yes? Well. it seems that this era has no hope for true glory afterall. despite all of the opportunities that those before you have offered. How you squander their legendary work with your debased. pathetic little whimsical dreams of wealth and fame. How selfish you are for all the wrong reasons. It would be pitiable if it weren't for the true element of humor we will gain from your collective failure.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Ramos_Jerwan.lua b/poknowledge/Ramos_Jerwan.lua new file mode 100644 index 0000000..8fa492d --- /dev/null +++ b/poknowledge/Ramos_Jerwan.lua @@ -0,0 +1,21 @@ +-- poknowledge\Ramos_Jerwan.lua NPCID 202303 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day, traveler. Many curious people about these recent days, all inquiring in their thirst for knowledge and personal advancement. Well, if you lead the humble life of a fisherman, or break from the squalls of battle for some peace and quiet at a river or sea shore, then you have come to the right man. All the supplies any fisherman needs may be purchased at my shop, though if for some reason I do not possess that which you are seeking, perhaps my comrade, Daeld, will. Or have you come perhaps to help me with my studies?"); + elseif(e.message:findi("studies")) then + e.self:Say("It's quite simple really. I'm interested in studying some aquatic specimens from around the planes... will you take up your pole and give me a hand?"); + elseif(e.message:findi("hand")) then + e.self:Say("There are some particularly interesting cichlid swimming about in the Plane of Nightmare. I also hear the discus in the Plane of Valor are quite plentiful. I need you to bring me two sets of bones from each for study. You do know how to extract them, yes? If not, I believe the lovely Peras Glickon may have something that can instruct you. Best of luck lad."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29173,item2 = 29173,item3 = 29171,item4 = 29171})) then -- Vallorian Discus Bones, Nightmare Cichlid Bones + e.self:Say("Ah, you've done quite well. Take this, it's a special gift I recovered from a recent adventure, and I can think of no greater person to keep it than you. Remember if you're in need of fishing supplies, come see us any time."); + e.other:QuestReward(e.self,0,0,0,0,29175,500); -- Fisherman's Companion + end + item_lib.return_items(e.self, e.other, e.trade); +end \ No newline at end of file diff --git a/poknowledge/Randi_Ellan.lua b/poknowledge/Randi_Ellan.lua new file mode 100644 index 0000000..3ebc9e7 --- /dev/null +++ b/poknowledge/Randi_Ellan.lua @@ -0,0 +1,21 @@ +--Randi's Floral Specimens + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("And a good morning to you as well, " .. e.other:GetCleanName() .. ". I can see by the gleam in your eye you are interested in learning more about the flowers of Norrath. Sadly my exhibit is not much to speak of. I require new [specimens] to help build my collection."); + elseif(e.message:findi("specimens")) then + e.self:Say("If you could find some for me, I would be ever so grateful. I need a Black Root, Maneater Bud, Yew Leaf, and a Twilight Orchid. If you should come across them, handle them with care. Be sure to get a Collector's Box from [Merri] to keep them in. Close the box and return it to me."); + elseif(e.message:findi("Merri")) then + e.self:Say("Curator Merri is the founder of the museum in the Selia district of New Tanaan. She is a true visionary and a wonderful person as well. It is her dream to turn life's love into something truly grand. She also carries with her the Collector's Boxes. If you need one, be sure to ask her for it.");--Text from Holly's quest. + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28083})) then--Collection of Plants + e.self:Say("Plants and flowers are a special treasure I keep close to my heart. Did you ever stop to marvel at how beautiful these specimens are? I thank you greatly for them. Here, take this in return."); + e.other:QuestReward(e.self,0,0,0,0,28238);--Fine Antique Corset + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Reaver_Nydlil.lua b/poknowledge/Reaver_Nydlil.lua new file mode 100644 index 0000000..4ff9527 --- /dev/null +++ b/poknowledge/Reaver_Nydlil.lua @@ -0,0 +1,42 @@ +--Reaver_Nydlil.pl +--Shadowknight PoP Spells +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("'s voice spills forth in a piercing hiss, the pitch high and accented in the tones of the Iksarian Empire of old."); + e.self:Say("Welcome to New Tanaan, and stand before us as enemies not, but as equals. Your mind should be open to us, for we wish only to guide you where we have been led in our years beyond Norrath. If you are a knight of the shadows, then perhaps I may be of service in guiding you further to power. The adepts of New Tanaan, the scholars, have come forward and penned spells of our former lives in memory. We wish to share this knowledge with you without bias or judgment. There is more beyond the mortal limits of magic that I can aid you to attain should you wield the blade of the shadow. If you happen across a seemingly mundane arcane item of incorporeal material, do not discard it. Return it to me and I shall carve for you from its essence a most powerful spell conceived in the divine realms of pure magic."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local ethereal = item_lib.count_handed_item(e.self, e.trade, {29112}); --Ethereal Parchment + local spectral = item_lib.count_handed_item(e.self, e.trade, {29131}); --Spectral Parchment + local glyphed = item_lib.count_handed_item(e.self, e.trade, {29132}); --Glyphed Rune Word + if(ethereal > 0) then + repeat + e.self:Emote("accepts the item carefully, his scaled hand delicate in its grasp. The iksar takes note of every detail upon the untainted planar arcane item before closing his eyes and giving forth a drawled, hissing chant of sounds and foreign words. The object in the shadowknight's hands begins to radiate in a dark aura as it pulses in and out of reality -- every beat of its wavering existence bringing it closer to a tangible state. Eventually, the item becomes whole, and the crimson runes, seemingly forged of blood from an unknown source, are flawless in their construction. The iksar opens his eyes and inspects the completed scroll briefly before handing it to you, 'This will serve you well, " .. e.other:GetCleanName() .. ". Go to the realms of the divine and see exactly what new power has been granted to you."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(26920, 26924, 26921, 26925, 26937)); --Level 61 or 62 Class spell, PoP (Festering Darkness, Aura of Darkness, Touch of Volatis, Zevfeer's Bite, Deny Undead) + ethereal = ethereal - 1; + until ethereal == 0; + end + if(spectral > 0) then + repeat + e.self:Emote("accepts the item carefully, his scaled hand delicate in its grasp. The iksar takes note of every detail upon the untainted planar arcane item before closing his eyes and giving forth a drawled, hissing chant of sounds and foreign words. The object in the shadowknight's hands begins to radiate in a dark aura as it pulses in and out of reality -- every beat of its wavering existence bringing it closer to a tangible state. Eventually, the item becomes whole, and the crimson runes, seemingly forged of blood from an unknown source, are flawless in their construction. The iksar opens his eyes and inspects the completed scroll briefly before handing it to you, 'This will serve you well, " .. e.other:GetCleanName() .. ". Go to the realms of the divine and see exactly what new power has been granted to you."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(21651, 26922, 26923, 21632, 21634, 21633)); --Level 63 or 64 Class spell, PoP (Shroud of Chaos, Aura of Pain, Terror of Thule, Blood of Hate, Pact of Hate, Spear of Decay) + spectral = spectral - 1; + until spectral == 0; + end + if(glyphed > 0) then + repeat + e.self:Emote("accepts the item carefully, his scaled hand delicate in its grasp. The iksar takes note of every detail upon the untainted planar arcane item before closing his eyes and giving forth a drawled, hissing chant of sounds and foreign words. The object in the shadowknight's hands begins to radiate in a dark aura as it pulses in and out of reality -- every beat of its wavering existence bringing it closer to a tangible state. Eventually, the item becomes whole, and the crimson runes, seemingly forged of blood from an unknown source, are flawless in their construction. The iksar opens his eyes and inspects the completed scroll briefly before handing it to you, 'This will serve you well, " .. e.other:GetCleanName() .. ". Go to the realms of the divine and see exactly what new power has been granted to you."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(26926, 26927, 26928, 21635)); --Level 65 Class spell, PoP (Voice of Thule, Aura of Hate, Touch of Innoruuk, Cloak of Luclin) + glyphed = glyphed - 1; + until glyphed == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Renni_Stone.lua b/poknowledge/Renni_Stone.lua new file mode 100644 index 0000000..012d7dc --- /dev/null +++ b/poknowledge/Renni_Stone.lua @@ -0,0 +1,21 @@ +--Renni's Rock Collection + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Har har, " .. e.other:GetCleanName() .. "! I see yer curious mind has brought ye to what will be the most fabulous and fascinating museum display of them all, the geological exhibit. Behold the [rocks] of Norrath! I'd be most delighted to show them to ye, eh, but I'm afraid it's not quite ready yet, you see. Some pieces of my collection have gone missing and I haven't gone to get replacements yet."); + elseif(e.message:findi("rocks")) then + e.self:Say("Eh, let's see. I'm missing a Whirling Crystal, A Scarlet Stone, Icy Geoduck, and A Pulsating Rock. Might ye have these on ye? If ye do, go and get a Collector's Box from [Merri], and put them inside. Close the box and bring it to me. The display will be most grand if ye do!"); + elseif(e.message:findi("Merri")) then + e.self:Say("Curator Merri is the founder of the museum in the Selia district of New Tanaan. She is a true visionary and a wonderful person as well. It is her dream to turn life's love into something truly grand. She also carries with her the Collector's Boxes. If you need one, be sure to ask her for it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + -- if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28077})) then--Collection of Gems correct item does not exist in db + -- e.self:Emote("opens the box carefully and inspects the contents. 'These will do. Thank ye. Take this as a reward.'");--Text made up, no reference + -- e.other:QuestReward(e.self,0,0,0,0,28235);--Fine Antique Pelisse + -- end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Researcher_Eldaro.lua b/poknowledge/Researcher_Eldaro.lua new file mode 100644 index 0000000..cdc72d8 --- /dev/null +++ b/poknowledge/Researcher_Eldaro.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Salutations stranger. I wish to continue to my study of the multitude of tomes stored here in the Great Library of New Tanaan. If you are interested in tomes relative to the history of the Erudite people then I shall permit you to borrow these tomes I have located. The tomes will be returned when you are done with them by the magics of New Tanaan. If you are not interested in these tomes then I shall end our conversation now and return to my studies."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Sage_Balic.lua b/poknowledge/Sage_Balic.lua new file mode 100644 index 0000000..bd4067f --- /dev/null +++ b/poknowledge/Sage_Balic.lua @@ -0,0 +1,78 @@ +-------------------------- +--Quest Name: Crown of Deceit +--Author: Shadestrike +--NPCs Involved: Sage Balic, an_old_froglok +--Zone: Plane of Knowledge +---------------------------- +local continue; + +function event_spawn(e) + continue = 0; +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings friend. Welcome to my place of private contemplation. I relax here and leaf through my old studies, admiring at creations from the past made by races we thought would never amount to anything. My favorite tomes to look at are those that deal with Frogloks."); + elseif(e.message:findi("your research")) then + e.self:Say("My research? Oh, I imagine Tenada sent you to me. I'd love to tell you about my studies, if you have time to listen. [Continue]"); + elseif(e.message:findi("continue") and continue == 0) then + continue = 1; + eq.set_timer("cont",60000); + e.self:Say("I have come to Knowledge to fine-tune my abilities in spell craft. To date I've been able to create some minor incantations, but have had little success in creating any magic that was truly revolutionary. I am actually in a bit of a race with the other Sages who are my contemporaries. They too are looking to make a major breakthrough . . . Come to think of it, I could probably find quite a few [uses for their research], should you manage to come by any of it. [Continue]"); + elseif(e.message:findi("continue") and continue == 1) then + continue = 0; + e.self:Say("Sorry, I digress. Where was I? Oh yes! In the past I, as well as the other Sages, have had little success; however from the volumes of information found here, each of us found a new outlook on the creation of magic. I found that most of the magical discoveries came from existing magical components, mostly runes and words of power. Should you come by any of these components please use this box to check to see if they have the proper magical configuration. The extractor will be able to remove what it needs if you find a valid combination. Right now I believe the box will only function with a single word and rune of approximately the same power."); + e.other:SummonCursorItem(17176); -- Item: Sage's Box of Research + elseif(e.message:findi("their research")) then + e.self:Say("Well it couldn't hurt, now could it? If you manage to 'acquire' any of their research feel free to show it to my assistants; Xelrin's research to Tenada and Gunyth's research to Winon downstairs."); + elseif(e.message:findi("froglok")) then + e.self:Say("A surprising race to study is the Frogloks of Antonica. While we may think their magic was weak, it was at one time so powerful the Gods reached down and smote them for their creations. Balls of energy that made life into magic! Their High Enchanter even made a mask that transformed the wearer into a Teir`Dal! Quite an interesting race worthy of some study if you ask me, someday I shall like to go and see these frogloks, especially to learn more knowledge of the magical mask."); + elseif(e.message:findi("magical mask")) then + e.self:Emote("blinks and looks at you. 'I have told you all that I know, for more knowledge you will need to seek its creator. The enchanter is more than likely very old, the mask having been made at the height of the power of the Froglok race. Here take this picture book to aid you in your quest.' Sage Balic hands you a book."); + e.other:SummonCursorItem(11275); -- Item: Picturebook + end +end + +function event_timer(e) + if(e.timer == "cont") then + eq.stop_timer("cont"); + continue = 0; + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 15946}, 0)) then -- Word of Combine + e.other:QuestReward(e.self,{itemid = 32019,exp = 100000}) -- Sage's Apprentice Cap + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15947}, 0)) then -- Word of Sorcery + e.other:QuestReward(e.self,{itemid = 32020,exp = 100000}) -- Twisted Talisman + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15948}, 0)) then -- Word of Helix + e.other:QuestReward(e.self,{itemid = 32021,exp = 100000}) -- Three Ringed Hoop + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15949}, 0)) then -- Word of Inverse + e.other:QuestReward(e.self,{itemid = 32022,exp = 100000}) -- Joined Signet + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15950}, 0)) then -- Word of Impetus + e.other:QuestReward(e.self,{itemid = 32023,exp = 100000}) -- Apprentice's Notebook + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15952}, 0)) then -- Evocation Binding + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15954}, 0)) then -- Abjuration Binding + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15955}, 0)) then -- Spell: Strong Poison + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15951}, 0)) then -- Spell: Ykesha + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15953}, 0)) then -- Spell: Screaming Mace + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15956}, 0)) then -- Aqi Note + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15942}, 0)) then -- Bep Note + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15943}, 0)) then -- Cjo Note + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15944}, 0)) then -- Da Note + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15945}, 0)) then -- Eio Note + e.other:QuestReward(e.self,{exp = 100000}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Sage_Gunyth.lua b/poknowledge/Sage_Gunyth.lua new file mode 100644 index 0000000..0470b4c --- /dev/null +++ b/poknowledge/Sage_Gunyth.lua @@ -0,0 +1,67 @@ +local continue; + +function event_spawn(e) + continue = 0; +end + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("turns a condescending eye toward you. 'I am quite busy here. and I do not appreciate interruptions. My [research] is important. and I do not have time to explain everything to you.'"); + elseif(e.message:findi("research")) then + e.self:Say("Well it seems that I am not going to rid myself of you so easily so I will explain what I can. I will be sure to use small words and simple concepts so you will be sure to understand. Every spell is much like an orchestra; there are different instruments and octaves, and every instrument has a range of notes. These notes are the important component. [continue]"); + elseif(e.message:findi("continue") and continue == 0) then + continue = 1; + eq.set_timer("cont",60000); + e.self:Say("It is my theory that all of the notes have been discovered, and creating new spells will just be a matter of combining notes in new and different fashions. Since you seem so interested in my research, I can use assistance in gathering notes. I have separated all teh spells that are readily accessible to me, but I do not have time to gather components from the more difficult to obtain spells. [Continue]"); + elseif(e.message:findi("continue") and continue == 1) then + continue = 0; + e.self:Say("I have constructed this extractor to break spells apart into their notes. It will not work on all spells, and I do not have time to compile a list of spells that it will and will not work on. As my apprentice, as that seems to be what you are intent on becoming, you will separate any spells you come across and return the notes to me where, you will need to insert four spell scrolls of the same power belonging to different arcane circles. For some reason the extractor only works for spells between the 10th and 14th circles, I hope to have that problem resolved soon. This extractor is not simple to use, and you will find you will have more success with the more powerful spells if you have a greater understanding on how spells are constructed. There is one more [task] that I require of my understudy.'"); + e.other:SummonCursorItem(17176); -- Item: Sage's Box of Research + elseif(e.message:findi("task")) then + e.self:Say("There are two other sages who like to call themselves my equals. They are taking different paths in their studies, and it would be to our benefit to have access to their work, I created that extractor with their aid so I know their methods cannot be far from my own. You must also gather what information you can from their research and return Balic's research to Onirelin Gali my assistant, and Xelrin's research to Xasri Virek his associate. I have nothing more for you, and I have been distracted long enough, be off!"); + end +end + +function event_timer(e) + if(e.timer == "cont") then + eq.stop_timer("cont"); + continue = 0; + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 15956}, 0)) then -- Aqi Note + e.other:QuestReward(e.self,{itemid = 32014,exp = 100000}) -- Talisman of Research + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15942}, 0)) then -- Bep Note + e.other:QuestReward(e.self,{itemid = 32015,exp = 100000}) -- Amulet of Knowledge + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15943}, 0)) then -- Cjo Note + e.other:QuestReward(e.self,{itemid = 32016,exp = 100000}) -- Book of Forgotten Magic + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15944}, 0)) then -- Da Note + e.other:QuestReward(e.self,{itemid = 32017,exp = 100000}) -- Arcane Quill + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15945}, 0)) then -- Eio Note + e.other:QuestReward(e.self,{itemid = 32018,exp = 100000}) -- Gem of Flowing Breath + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15952}, 0)) then -- Evocation Binding + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15954}, 0)) then -- Abjuration Binding + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15955}, 0)) then -- Spell: Strong Poison + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15951}, 0)) then -- Spell: Ykesha + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15953}, 0)) then -- Spell: Screaming Mace + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15946}, 0)) then -- Word of Combine + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15947}, 0)) then -- Word of Sorcery + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15948}, 0)) then -- Word of Helix + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15949}, 0)) then -- Word of Inverse + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15950}, 0)) then -- Word of Impetus + e.other:QuestReward(e.self,{exp = 100000}) + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/poknowledge/Sage_Xelrin.lua b/poknowledge/Sage_Xelrin.lua new file mode 100644 index 0000000..274c96d --- /dev/null +++ b/poknowledge/Sage_Xelrin.lua @@ -0,0 +1,65 @@ +local continue; + +function event_spawn(e) + continue = 0; +end + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". I assume you are here to ask about my research? I imagine that word has spread of my groundbreaking approach to spell creation. Well I am always willing to enlighten those that choose to learn. As not to bog you down with too many details. my theory is simple. [Continue]"); + elseif(e.message:findi("continue") and continue == 0) then + continue = 1; + eq.set_timer("cont",60000); + e.self:Say("Well the idea is rather basic. As I am sure you know. there are many magical artifacts in the world with effects that we have not mastered. It is my conjecture that some of the magic may be extracted from these items in order to further our magical repertoire. Even in the case where an object has a spell that we already have access to. I believe the binding used to tie the magic to the object could be useful as well. [Continue]"); + elseif(e.message:findi("continue") and continue == 1) then + continue = 0; + e.self:Say("By using this box created in cooperation with the [other sages] in Knowledge. you will be able to either extract a magical scroll or the binding used to hold the magic to the object. Those elements will be the basis for my research. Just bring anything you manage to extract for me."); + e.other:SummonCursorItem(17176); -- Item: Sage's Box of Research + elseif(e.message:findi("other sages")) then + e.self:Say("chuckles. 'Well my associates are working on their own theories for the creation of new magic. I am sure that their projects are no where near advanced as mine. but even their primitive research could prove a boon in my own work. If you happen to come across any of their research feel free to show it to my assistants. they will know the best manner in which to process it. Bring reseach from Balic to Bolcen. and Gunyth's research to Acomar. Thank you for your assistance.'"); + end +end + +function event_timer(e) + if(e.timer == "cont") then + eq.stop_timer("cont"); + continue = 0; + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 15952}, 0)) then -- Evocation Binding + e.other:QuestReward(e.self,{itemid = 32025,exp = 100000}) -- Orb of Arcane Visions + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15954}, 0)) then -- Abjuration Binding + e.other:QuestReward(e.self,{itemid = 32027,exp = 100000}) -- Flawed Spell Creation + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15955}, 0)) then -- Spell: Strong Poison + e.other:QuestReward(e.self,{itemid = 32028,exp = 100000}) -- Visionary's Lens + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15951}, 0)) then -- Spell: Ykesha + e.other:QuestReward(e.self,{itemid = 32024,exp = 100000}) -- Gleaming Bauble + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15953}, 0)) then -- Spell: Screaming Mace + e.other:QuestReward(e.self,{itemid = 32026,exp = 100000}) -- Sentient Medallion + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15946}, 0)) then -- Word of Combine + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15947}, 0)) then -- Word of Sorcery + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15948}, 0)) then -- Word of Helix + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15949}, 0)) then -- Word of Inverse + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15950}, 0)) then -- Word of Impetus + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15956}, 0)) then -- Aqi Note + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15942}, 0)) then -- Bep Note + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15943}, 0)) then -- Cjo Note + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15944}, 0)) then -- Da Note + e.other:QuestReward(e.self,{exp = 100000}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 15945}, 0)) then -- Eio Note + e.other:QuestReward(e.self,{exp = 100000}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Savage_Lord_Cedrean.lua b/poknowledge/Savage_Lord_Cedrean.lua new file mode 100644 index 0000000..090f451 --- /dev/null +++ b/poknowledge/Savage_Lord_Cedrean.lua @@ -0,0 +1,25 @@ +--Beastlord Tomes/Planar Armor Exchange +--I added the tome hand-in, it didn't exist previously -Kilelen +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("in an almost arcane motion, gives a mystic gesture of ancient greetings. 'The light of Selia shines upon you most brightly, " .. e.other:GetCleanName() .. ". Be at ease, and know that all answers you seek will be delivered in time. The library of Myrist, though lacking the purity of the virtues we hold most dear to our selves in valiant memory of our mortal endeavors, is truly an unrivaled source of infinite knowledge. However, if you seek the comfort of your own light and goodly virtues, then Selia shall provide whatever it can to accommodate your needs while in our midst. Unfortunately, the ruling of the council has limited each individual citizen of the city to one particular specialty so that each have their equal opportunity to share their unique knowledge. In my former life, I was a master of the beasts and crusader of Mithaniel Marr. If you share the same profession as I and are in need of training, then I am more than pleased to oblige you.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {7817, 7818, 7819, 7832, 7833, 7834, 7835}); --Anthemion Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Savage_Lord_Dwev.lua b/poknowledge/Savage_Lord_Dwev.lua new file mode 100644 index 0000000..0c58d4c --- /dev/null +++ b/poknowledge/Savage_Lord_Dwev.lua @@ -0,0 +1,25 @@ +--Beastlord Tomes/Planar Armor Exchange +--I added the tome handin, it didn't exist previously - Kilelen +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("growls lowly, the rumble from the depths of his throat akin to that of a starved tiger prepared to pounce upon its first prey. 'Yoo worm! Yoo worm stupidly come to shadow, and now shadow wants worm to be its slave. Worm shood stay and be shadow's slave, be Dwev's slave. Dwev teech worm how to rip spirits frum spirit world and make beasts worm's slaves, like worm be to Dwev! HAHA! Yes. Dwev smart! Dwev serve shadow faith. . . faithful. . . gud with new worm slave.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {7817, 7818, 7819, 7832, 7833, 7834, 7835}); --Anthemion Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Savage_Lord_Etherat.lua b/poknowledge/Savage_Lord_Etherat.lua new file mode 100644 index 0000000..d8582b9 --- /dev/null +++ b/poknowledge/Savage_Lord_Etherat.lua @@ -0,0 +1,25 @@ +--Beastlord Tomes/Planar Armor Exchange +--I added the tome handin, it didn't exist previously - Kilelen +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("performs an ancient, graceful gesture that is seemingly arcane in nature, though no energy can be felt entering or dispersing in the room. 'Tanaan welcomes you to its midst, traveler, There is much to be found in the whole of New Tanaan and specifically, the great library of Myrist. However, there is only so much that the tangible world can teach you. friend. for true, infinite knowledge lies eternally beyond the confines of material and astral domains. Within yourself. your very spirit and the spirits that surround you lays the key to true enlightenment and self-progress. Should you follow the path of the Beastlords. then I may be of aid in guiding your further toward the realization of your potential and the true elements surrounding you.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {7817, 7818, 7819, 7832, 7833, 7834, 7835}); --Anthemion Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Savet_Ironstove.lua b/poknowledge/Savet_Ironstove.lua new file mode 100644 index 0000000..5a342aa --- /dev/null +++ b/poknowledge/Savet_Ironstove.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings. " .. e.other:GetCleanName() .. ". and welcome to New Tanaan. This city holds a great variety of supplies for all tradesmen -- you shall not find such a welcoming host of merchants gathered in one city upon Norrath. I guarantee! Come. if you be a baker. and search my inventory. Perhaps you shall find something of interest or necessity to your search."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Seer_Mal_Nae-Shi.lua b/poknowledge/Seer_Mal_Nae-Shi.lua new file mode 100644 index 0000000..e254ac4 --- /dev/null +++ b/poknowledge/Seer_Mal_Nae-Shi.lua @@ -0,0 +1,483 @@ +--[[ + Character flags + --------------- + mavuin - Mavuin flag series (three values) + seventh - all PoJ trial marks obtained, said 'information' to Tribunal. No Seer text for this flag apparently (one value) + thelin - PoNightmare flag series (four values) + poi_door - Plane of Innovation door openable: Xanamech killed (one value) + zeks - PoI Giwin flags + Zeks in Tactics (seven values) + fuirstel - PoDisease and CoD flag series (five values) + grummus - Grummus planar projection and access to CoD (one value) Grummus grants two flags: this and one for the fuirstel series + aerindar - Aerin`Dar flag; access to HoH (two values; first value is hidden PP hail flag) + bertox_key - Access to Bertoxxulous level in CoD (needed to use chair teleport) + hohtrials - HoH trials; 3 characters long; either a 1 or 0 for each trial, like "110" + mmarr - Mith Marr cipher half (one value) + mmarr_book - Mith Marr book half; combined with karana to make zebuxoruk flag; Marr planar projection grants two flags (one value) + tylis - Tylis flags for PoTorment (two values) + saryrn - Saryrn (one value) + karana - Askr + Karana flags (four values) + cipher - cipher of druzzil; deletes mmarr, saryrn flags (one value) + sol_room - Flags of the five Solusek Tower wings; 5 characters long; either a 1 or 0 for each wing, like "01101" + zebuxoruk - deletes mmarr_book and karana flags; Air, Earth, Water plane access at value "2" (two values) + pofire - PoFire flag and preflag (two values) + time - PoTime series (1 value) + earthb_key - + + Checklist flags - temporary flags that turn into character flags when you unlock memories with the proper preflags + --------------- + cl_grummus + cl_maze + cl_behemoth + cl_aerindar + cl_terris + cl_bertox + cl_keeper + cl_saryrn + cl_vallon + cl_tallon + cl_rallos + cl_karana + cl_mmarr + cl_mmarr_book + cl_solusek +]] + +local checklistFlags = { + { "cl_grummus", -- checklist flag qglobal + -- unlock memories text without preflags + "You remember seeing a small trinket by Grummus' body and wondering what it was for. Perhaps speaking to someone near the Plane of Disease will shed some light on the situation.", + -- unlock memories text after obtaining preflags and new character flag granted + "For a moment you pause, sticking a hand in your pocket. Inside you find the small ward that was lying near Grummus' body, perhaps you should bring this to Milyk.", + "fuirstel", "1", -- the flag needed to unlock + "fuirstel", "2" -- the new unlocked character flag value + }, + { "cl_maze", + "", -- note: this checklist flag does not appear to have 'unlock memories' text associated with it. At least one Live + "Thelin speaks in your mind, 'It was an act of kindness to help me in the maze before you knew I was in need of help. Please finish your task and free me from Terris' grasp.'", + "thelin", "1", + "thelin", "2" + }, + { "cl_behemoth", + "", -- note: this checklist flag does not appear to have 'unlock memories' text associated with it. At least one Live + "Giwin Mirakon's image appears in your mind, 'Sorry for the misunderstanding, I forgot that I asked you to test the machine for me. The Zeks will be proud of your warrior spirit, meet me in the Plane of Tactics.", + "zeks", "1", + "zeks", "2" + }, + { "cl_aerindar", + "You have defeated Aerin`Dar but have yet to learn the true meaning of Justice.", + "You have learned the meaning of both Justice and Honor. You may now pass into the Halls of Honor.", + "mavuin", "3", + "aerindar", "2" + }, + { "cl_terris", + "Terris still haunts your nightmares whenever you attemt to recall your battle with her.", + "You black out for a moment, in your nightmare you see Terris-Thule, still alive. There is a blur which seems like hours, finally you manage to strike Terris down with Thelin's dagger. Terris' image flutters for a moment and you see Thelin's image, 'Finally, you have freed me from nightmare. I thank you, my friend.'", + "thelin", "2", + "thelin", "3" + }, + { "cl_bertox", + "As you recall your memory of your battle against the Plaguebringer, an image of the Fuirstel brothers flashes through your mind.", + "You focus back to your battle with the Plaguebringer, memories of his death give you a moment of clarity. You now have the knowledge to help Milyk.", + "fuirstel", "3", + "fuirstel", "4" + }, + { "cl_keeper", + "Although it was kind of you to help him, Tylis still seems to have no idea who you are.", + "Tylis voice rings in your ears, 'Now I remember you. Thank you for saving me, your spirit now may access places in my prison where it could not. Beware Sorrowsong.'", + "tylis", "1", + "tylis", "2" + }, + { "cl_saryrn", + "You attempt to recall your defeat of Saryrn, but whenever you try to focus you feel a searing pain on your arm.", + "You feel the searing pain of torment as half of the Cipher of the Gods glows on your arm.", + "tylis", "2", + "saryrn", "1" + }, + { "cl_vallon", + "Vallon fell before you with great ease, you seem to remember some strange pouches around his body, but... well it is probably nothing.", + "Giwin's invitation to Drunder reminds you of some notes you found around Vallon's body.", + "zeks", "2", + "zeks", "3" + }, + { "cl_tallon", + "Tallon fell before you with great ease, you seem to remember some strange pouches around his body, but... well it is probably nothing.", + "Giwin's invitation to Drunder reminds you of some notes you found around Tallon's body.", + "zeks", "2", + "zeks", "4" + }, + { "cl_rallos", + "Your heart beat speeds as you recall the Warlord's flaming axe, behind the dark sockets of his helm you sense darker intentions.", + "The Cipher on your arm glows for a moment, the booming voice of the Warlord rings through your ears, 'You have finally earned the right to claim you have 'defeated' me.'", + "zeks", "6", + "zeks", "7" + }, + { "cl_karana", + "You recall meeting with Karana, but the memory is clouded. You sense that the answer you seek may be in Storms.", + "As you think back to your meeting with Karana the Talisman in your chest warms and a light rain falls from the sky. When you look down, a small book written in a language you can not read, rests in your hands.", + "karana", "3", + "karana", "4" + }, + { "cl_mmarr", + "An Image of Mithaniel flashes before you, 'You have yet to earn a place of Honor. When you have, we will speak again.'", + "An Image of Mithaniel flashes before you, 'You have finally earned a place of Honor. Wear this Cipher with pride.'", + "hohtrials", "111", + "mmarr", "1" + }, + { "cl_mmarr_book", + "An image of Mithaniel flashes before you. He looks up from a small book in his hands and smiles at you, 'You have not yet earned the Honor to see these words.'", + "An Image of Mithaniel flashes before you, 'These notes should assist you on your quest for the Fallen. Justify the Honor that you have been given.'", + "hohtrials", "111", + "mmarr_book", "1" + }, + { "cl_solusek", + "Besting the Burning Prince proves your might, but you still must prove your warrior's spirit.", + "", -- might be blank? I got a flag without purple text + "zeks", "7", + "pofire", "2" + } +}; + +function GuidedMeditation(client) + local qglobals = eq.get_qglobals(client); + + -- these are in order as they are in Sony's code + + if ( qglobals.time ) then + client:Message(257, "Your soul has formed a bond with the Plane of Time. You can now pass through the portal in the Plane of Tranquility safely."); + end + + if ( qglobals.zebuxoruk ) then + if ( qglobals.zebuxoruk == "1" ) then + client:Message(257, "The History translated for you reveals the fate of Zebuxoruk. Trapped in the Plane of Time you must gain the power of the elements to gain entrance."); + elseif ( qglobals.zebuxoruk == "2" ) then + client:Message(257, "Learning of Zebuxoruk's fate, the only way to save him is gather materials that will allow you to power up the machine to send you into the Plane of Time. Maelin has charged you with finding an elemental power source sufficient to activate Meldrath's time machine."); + end + + -- sanity checks + if ( qglobals.mmarr_book ) then + eq.delete_global("mmarr_book"); + end + if ( qglobals.karana ) then + eq.delete_global("karana"); + end + end + + if ( qglobals.mmarr_book ) then + client:Message(257, "The information obtained from Mithaniel is written in a language that you cannot comprehend."); + end + + if ( qglobals.karana and not qglobals.zebuxoruk ) then + + if ( qglobals.karana == "1" ) then + client:Message(257, "You have shown your prowess in battle to Askr, now you must make strides to get to the Bastion of Thunder."); + elseif ( qglobals.karana == "2" or qglobals.karana == "3" ) then + client:Message(257, "You have obtained the Talisman of Thunderous Foyer from Askr, he seeks further assistance in the Bastion of Thunder."); + elseif ( qglobals.karana == "4" ) then + client:Message(257, "The information obtained from Karana is written in a language that you cannot comprehend."); + end + end + + if ( qglobals.cipher ) then + client:Message(257, "The Cipher of the Divine Language appears on your arms for a brief moment then fades."); + + -- sanity checks + if ( qglobals.saryrn ) then + eq.delete_global("saryrn"); + end + if ( qglobals.mmarr ) then + eq.delete_global("mmarr"); + end + end + + if ( qglobals.saryrn ) then + client:Message(257, "Saryrn been destroyed. An aura surrounds the mystical symbols that have appeared on your arm."); + end + + if ( qglobals.mmarr ) then + client:Message(257, "Mithaniel has been bested. An aura surrounds the mystical symbols that have appeared on your arm."); + end + + if ( qglobals.hohtrials ) then + + if ( qglobals.hohtrials == "111" and (qglobals.mmarr or qglobals.cipher) ) then + client:Message(257, "You have completed all of Honor's Trials."); + else + if ( qglobals.hohtrials:sub(1, 1) == "1" ) then + client:Message(257, "You have beaten Rydda`Dar in the first of Honor's Trials."); + end + if ( qglobals.hohtrials:sub(2, 2) == "1" ) then + client:Message(257, "You have saved the villagers in the second of Honor's Trials."); + end + if ( qglobals.hohtrials:sub(3, 3) == "1" ) then + client:Message(257, "You have defeated the nomads in the third of Honor's Trials."); + end + end + end + + if ( qglobals.aerindar and qglobals.aerindar == "2" ) then + client:Message(257, "You have bested Aerin`Dar and proven yourself honorable enough to pass into Mithaniel's Halls."); + end + + if ( qglobals.mavuin ) then + if ( qglobals.mavuin == "1" ) then + client:Message(257, "The evidence of Mavuin is the only thing that can save him now."); + elseif ( qglobals.mavuin == "2" ) then + client:Message(257, "Having endured the trials, the Tribunal has agreed to reconsider Mavuin's case."); + elseif ( qglobals.mavuin == "3" ) then + client:Message(257, "Mavuin is grateful to you for taking his case before the Tribunal. The information provided to you, that Mithaniel Marr and Karana carry information you should seek, could be quite useful."); + end + end + + if ( qglobals.tylis ) then + if ( qglobals.tylis == "1" ) then + client:Message(257, "Tylis is being tortured by Saryrn. The only way for him to get away from his misery is to escape from the Plane of Torment."); + elseif ( qglobals.tylis == "2" ) then + client:Message(257, "Tylis has been removed from his agony."); + end + end + + if ( qglobals.thelin ) then + if ( qglobals.thelin == "1" ) then + client:Message(257, "Thelin being tormented by the imagery of Terris Thule needs assisstance escaping from the Plane of Nightmares."); + elseif ( qglobals.thelin == "2" ) then + client:Message(257, "Thelin has completed his pact with Terris Thule, but has been refused. The only way to escape his torment now is to destroy Terris Thule."); + elseif ( qglobals.thelin == "3" ) then + client:Message(257, "Terris Thule's grasp over Thelin has been released."); + elseif ( qglobals.thelin == "4" ) then + client:Message(257, "Saved from a world of eternal nightmares, Thelin is forever in your debt."); + end + end + + if ( qglobals.fuirstel ) then + if ( qglobals.fuirstel == "1" ) then + client:Message(257, "Alder Fuirstel wishes you to obtain the Ward from the Plane of Disease and take it to his ill brother Milyk."); + elseif ( qglobals.fuirstel == "2" ) then + client:Message(257, "Grummus has been destroyed, about his corpse you found a small ward to protect from disease."); + elseif ( qglobals.fuirstel == "3" ) then + client:Message(257, "Milyk has been saved from certain death, but is not recovering. Only by destroying the ruler of all things pestilent will his curse be lifted."); + elseif ( qglobals.fuirstel == "4" ) then + client:Message(257, "Bertoxxulous has been slain, the curse from Milyk now lifted."); + elseif ( qglobals.fuirstel == "5" ) then + client:Message(257, "Saved from certain doom, Milyk and Adler are forever in your debt."); + end + end + + if ( qglobals.grummus ) then + client:Message(257, "Now that Grummus has been destroyed, the entrance to the Crypt of Bertoxxulous should open before your might."); + end + + if ( qglobals.pofire ) then + + if ( qglobals.pofire == "1" ) then + client:Message(257, "The portal into the Plane of Fire has been altered. Miak needs you to find the correct way to channel the portal."); + + if ( qglobals.sol_room ) then + + if ( qglobals.sol_room:sub(1, 1) == "1" ) then + client:Message(257, "Xuzl's arcane wisdom pulses in your mind."); + end + if ( qglobals.sol_room:sub(2, 2) == "1" ) then + client:Message(257, "Arlyxir's wealth of knowledge flows through your mind."); + end + if ( qglobals.sol_room:sub(3, 3) == "1" ) then + client:Message(257, "The power of Dresolik surges through you."); + end + if ( qglobals.sol_room:sub(4, 4) == "1" ) then + client:Message(257, "Rizlona's song slips through your thoughts."); + end + if ( qglobals.sol_room:sub(5, 5) == "1" ) then + client:Message(257, "Jiva's strength fills your body."); + end + end + + elseif ( qglobals.pofire == "2" ) then + client:Message(257, "The true route to the Plane of Fire is now clear in your mind."); + end + end + + if ( qglobals.zeks ) then + + if ( qglobals.zeks == "2" ) then -- preflag doesn't appear to have text + client:Message(257, "Giwin would like you to find him in Drunder so he can present you to Rallos Zek."); + elseif ( qglobals.zeks == "3" ) then + client:Message(257, "The pack of notes from Vallon are scribbled in a language that you cannot comprehend."); + elseif ( qglobals.zeks == "4" ) then + client:Message(257, "The pack of notes from Tallon are scribbled in a language that you cannot comprehend."); + elseif ( qglobals.zeks == "5" ) then + client:Message(257, "The pack of notes from Vallon are scribbled in a language that you cannot comprehend."); + client:Message(257, "The pack of notes from Tallon are scribbled in a language that you cannot comprehend."); + elseif ( qglobals.zeks == "6" ) then + client:Message(257, "The words of Maelin echo in your mind, 'The Zeks and Solusek are planning an invasion of Norrath, find out more from Rallos if you can.'"); + elseif ( qglobals.zeks == "7" ) then + if ( not qglobals.pofire or qglobals.pofire == "1" ) then + client:Message(257, "The parchments of Rallos are scribed in a language that you cannot comprehend; they do however have detailed drawings of the manaetic behemoth that you have already destroyed."); + end + end + end + + if ( qglobals.poi_door ) then + client:Message(257, "You remember Nitram's words - 'three small turns to the right on the bottommost rivet should open the door'."); + end + + if ( not qglobals.mavuin and not qglobals.fuirstel and not qglobals.thelin and not qglobals.poi_door + and not qglobals.zeks and not qglobals.aerindar and not qglobals.tylis and not qglobals.hohtrials + and not qglobals.mmarr and not qglobals.mmarr_book and not qglobals.saryrn and not qglobals.karana + and not qglobals.cipher and not qglobals.sol_room and not qglobals.grummus and not qglobals.zebuxoruk + and not qglobals.pofire and not qglobals.time + ) then + client:Message(257, "You manage to recover some images from your childhood, but no recent events spark a memory."); + end +end + +function UnlockMemories(client) + local qglobals = eq.get_qglobals(client); + local flagFound; + local flagName, lockedText, unlockedText, reqFlagName, reqFlagValue, newFlagName, newFlagValue; + + for i, t in ipairs(checklistFlags) do + flagName, lockedText, unlockedText, reqFlagName, reqFlagValue, newFlagName, newFlagValue = t[1], t[2], t[3], t[4], t[5], t[6], t[7]; + + if ( qglobals[flagName] ) then + flagFound = true; + + -- special logic for zek brothers; otherwise two more qglobals would be needed, so they were just combined into one zeks series + if ( qglobals.zeks ) then + if ( flagName == "cl_tallon" and qglobals.zeks == "3" ) then + reqFlagValue = "3"; + newFlagValue = "5"; + end + if ( flagName == "cl_vallon" and qglobals.zeks == "4" ) then + reqFlagValue = "4"; + newFlagValue = "5"; + end + end + + if ( qglobals[reqFlagName] and qglobals[reqFlagName] == reqFlagValue ) then + + client:Message(257, unlockedText); + eq.set_global(newFlagName, newFlagValue, 5, "F"); + qglobals[newFlagName] = newFlagValue; + client:Message(15, "You have received a character flag!"); + eq.delete_global(flagName); + else + client:Message(257, lockedText); + end + end + end + + if ( not flagFound ) then + client:Message(257, "You manage to recover some images from your childhood, but no recent events spark a memory."); + end +end + +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Emote(" snaps from her meditation, 'Greetings traveler, I am Mal Nae`Shi. I have come here to heighten my awareness through meditation, much can be learned through a brief exploration of one's self... Assuming there is something there to learn. While reaching inner peace is a journey each spirit must undertake on its own, I can begin your voyage with [guided meditation] which will aid your memory, once you are seated. I can also [unlock] some [memories] which may previously been inaccessible.'"); + + elseif ( e.message:findi("guided meditation") ) then + if ( e.other:IsSitting() ) then + GuidedMeditation(e.other); + else + e.other:Message(0, "Seer Mal Nae`Shi tells you, 'You will never be able to focus unless you are relaxed. Please, sit down for a moment and allow me to [guide your meditation].'"); + end + + elseif ( e.message:findi("unlock") and e.message:findi("memories") ) then + if ( e.other:IsSitting() ) then + UnlockMemories(e.other); + else + e.other:Message(0, "Seer Mal Nae`Shi tells you, 'You will never be able to focus unless you are relaxed. Please, sit down for a moment and allow me to [unlock your memories].'"); + end + + elseif ( e.message:findi("time") and e.other:GetGM() and e.other:Admin() >= 80 ) then + eq.set_global("poi_door", "1", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + eq.set_global("mavuin", "3", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + eq.set_global("fuirstel", "5", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + eq.set_global("thelin", "4", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + eq.set_global("zeks", "7", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + eq.set_global("aerindar", "1", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + eq.set_global("tylis", "2", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + eq.set_global("hohtrials", "111", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + eq.set_global("cipher", "1", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + eq.set_global("grummus", "1", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + eq.set_global("sol_room", "11111", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + eq.set_global("zebuxoruk", "2", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + eq.set_global("pofire", "2", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + eq.set_global("time", "1", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + eq.set_global("bertox_key", "1", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + eq.set_global("earthb_key", "1", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + + elseif ( e.message:findi("delete") and e.other:GetGM() and e.other:Admin() >= 80 ) then + eq.delete_global("mavuin"); + eq.delete_global("seventh"); + eq.delete_global("fuirstel"); + eq.delete_global("thelin"); + eq.delete_global("poi_door"); + eq.delete_global("zeks"); + eq.delete_global("aerindar"); + eq.delete_global("tylis"); + eq.delete_global("hohtrials"); + eq.delete_global("mmarr"); + eq.delete_global("mmarr_book"); + eq.delete_global("saryrn"); + eq.delete_global("karana"); + eq.delete_global("cipher"); + eq.delete_global("grummus"); + eq.delete_global("sol_room"); + eq.delete_global("zebuxoruk"); + eq.delete_global("pofire"); + eq.delete_global("time"); + eq.delete_global("bertox_key"); + eq.delete_global("earthb_key"); + eq.delete_global("cl_grummus"); + eq.delete_global("cl_maze"); + eq.delete_global("cl_behemoth"); + eq.delete_global("cl_aerindar"); + eq.delete_global("cl_terris"); + eq.delete_global("cl_bertox"); + eq.delete_global("cl_keeper"); + eq.delete_global("cl_saryrn"); + eq.delete_global("cl_vallon"); + eq.delete_global("cl_tallon"); + eq.delete_global("cl_rallos"); + eq.delete_global("cl_karana"); + eq.delete_global("cl_mmarr"); + eq.delete_global("cl_mmarr_book"); + eq.delete_global("cl_solusek"); +--[[ + elseif ( e.message:findi("test") and e.other:GetGM() and e.other:Admin() >= 80 ) then + + eq.set_global("cl_maze", "1", 5, "F"); + eq.set_global("cl_grummus", "1", 5, "F"); + eq.set_global("cl_vallon", "1", 5, "F"); + eq.set_global("cl_tallon", "1", 5, "F"); + eq.set_global("cl_mmarr", "1", 5, "F"); + eq.set_global("cl_mmarr_book", "1", 5, "F"); + eq.set_global("cl_saryrn", "1", 5, "F"); + eq.set_global("cl_terris", "1", 5, "F"); + + eq.set_global("cl_rallos", "1", 5, "F"); + elseif ( e.message:findi("t2") and e.other:GetGM() and e.other:Admin() >= 80 ) then + eq.set_global("mmarr", "1", 5, "F"); + eq.set_global("mmarr_book", "1", 5, "F"); + eq.set_global("karana", "4", 5, "F"); + eq.set_global("saryrn", "1", 5, "F"); + eq.set_global("zeks", "5", 5, "F"); +]] + end +end diff --git a/poknowledge/Serin_ODanos.lua b/poknowledge/Serin_ODanos.lua new file mode 100644 index 0000000..db0286c --- /dev/null +++ b/poknowledge/Serin_ODanos.lua @@ -0,0 +1,7 @@ +-- poknowledge\Serin_O-Danos.lua NPCID 202079 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings and well met,"..e.other:GetName()..". I am Serin O'Danos, one of three alchemists that have left our native world of Norrath in search of more peaceful pastures here in New Tanaan. We make a modest, humble living and pride ourselves on the benefit our knowledge gives to aspiring and adept alchemists alike. If you are in need of ingredients to brew a potion, then search our wares at your convenience and leisure. The O'Danos' are more than happy to accommodate your needs."); + end +end \ No newline at end of file diff --git a/poknowledge/Severg_ODanos.lua b/poknowledge/Severg_ODanos.lua new file mode 100644 index 0000000..d5841f3 --- /dev/null +++ b/poknowledge/Severg_ODanos.lua @@ -0,0 +1,7 @@ +-- poknowledge\Severg_O-Danos.lua NPCID 202139 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("Aaah. . . Good day to you. "..e.other:GetName()..". I am Severg O'Danos. once a great alchemist upon Norrath with my brothers. but I have found a new calling here in New Tanaan. If you yourself are a dabbler in the art of potion making. then perhaps my wares will serve you well. Please. feel free to peruse my wares at your leisure."); + end +end \ No newline at end of file diff --git a/poknowledge/Sirekoth_Eshe.lua b/poknowledge/Sirekoth_Eshe.lua new file mode 100644 index 0000000..16ca0d4 --- /dev/null +++ b/poknowledge/Sirekoth_Eshe.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail visitor of New Tanaan! If you are an aspiring brewer then perhaps you may be interested in the supplies I have for sale. I assure you my wares are of the highest quality."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Sorcerer_Dogan.lua b/poknowledge/Sorcerer_Dogan.lua new file mode 100644 index 0000000..af1e088 --- /dev/null +++ b/poknowledge/Sorcerer_Dogan.lua @@ -0,0 +1,24 @@ +--Planar Armor Exchange +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("sneers darkly, revealing a row of unmanaged teeth beneath his grim visage. 'You travel too leniently, child of the light. Return to Selia, for you will find no welcoming here -- only darkness and shadow that would wish to consume you. However, if you are intent upon being among us, then by all means, do so at your own peril -- I care not for what fate befalls you and honestly, do not think you worthy of the shadow's service. Disregard my warnings if you must, but while you do so, do take the time to speak with the other adept minions of the shadow. They present most pressing arguments and will often give you the opportunity to learn from them the ways of their specific art. How marvelous it would be -- oh the irony indeed, that a child of the light would learn the ways of their craft from those whom they claim to detest! Aaaah. . . how you fuel us, and how we marvel at it.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {1225, 1226, 1227, 1228, 1229, 1230, 1231}); --Carmine Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Sorcerer_Farin.lua b/poknowledge/Sorcerer_Farin.lua new file mode 100644 index 0000000..a554671 --- /dev/null +++ b/poknowledge/Sorcerer_Farin.lua @@ -0,0 +1,24 @@ +--Planar Armor Exchange +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("gives a deep, respectful nod of his head toward " .. e.other:GetCleanName() .. ". 'Welcome, " .. e.other:GetCleanName() .. ". I am Sorcerer Farin, ancient wizard of Erudin and head sorcerer of Selia. In light of your arrival, those who walk the path of light and hold the virtues of honor and justice high in their spirits. I offer my aid to any that would be so obliged as to accept it. In my former years, I was one of few guild masters in the newfound city of Erudin and what knowledge I have of that past is at your disposal.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {1225, 1226, 1227, 1228, 1229, 1230, 1231}); --Carmine Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Sorcerer_Kerynth.lua b/poknowledge/Sorcerer_Kerynth.lua new file mode 100644 index 0000000..b25bc2d --- /dev/null +++ b/poknowledge/Sorcerer_Kerynth.lua @@ -0,0 +1,25 @@ +--Planar Armor Exchange +function event_say(e) + if(e.message:findi("Hail")) then + if(e.other:Race() == "Dark Elf" or e.other:Race() == "Iksar" or e.other:Race() == "Troll" or e.other:Race() == "Ogre" or e.other:Class() == "Shadowknight" or e.other:Class() == "Necromancer") then + e.self:DoAnim(60) + e.self:Emote("inhales sharply in a very stern study of the dark one before him. 'You travel lightly, I see. Perhaps you are merely lost and my reaction is one of preconceived notions. In any event, the district of Kartis is not too distant a travel from where you stand now and I'm certain that your own kind would be more than helpful in accommodating your immediate needs while within this fair city. If for one reason or another you are here by intent, then we reluctantly welcome you upon the condition that you uphold our ways of neutrality -- the ramblings of the zealous are not welcome sounds to our ears. If you seek guidance in the ways of fundamental skills necessary to the elementalists of Norrath, then I am at your service should you desire it.'"); + else + e.self:DoAnim(48); + e.self:Emote("gives a deep nod of his head in formal and polite recognition of " .. e.other:GetCleanName() .. " before him. 'Greetings, traveler, and welcome to the district of Tanaan. In light of your presence among us, we have gathered our knowledge and memories of lives past upon Norrath in hopes that our experiences would benefit you in the present. Do not hesitate to approach all citizens of this district, for we are equally fair and willing to grant you the aid that is within our individual power to provide. In my own personal experience upon Norrath, I was a wizard of some power -- though I do not boast. I have offered my knowledge of this art to any who would have the desire to learn from me. Unfortunately, time is not a luxury that you possess in the manner that we of the Plane are graced and thus, I may only offer instruction on skills. If you are in need of spells, then the library of Myrist should be your destination. The scholars there are infinitely wise despite their mortal lineage.'"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {1225, 1226, 1227, 1228, 1229, 1230, 1231}); --Carmine Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Soulbinder_Jera.lua b/poknowledge/Soulbinder_Jera.lua new file mode 100644 index 0000000..80c75f8 --- /dev/null +++ b/poknowledge/Soulbinder_Jera.lua @@ -0,0 +1,15 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID(),0,1); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Szrix_Hammertail.lua b/poknowledge/Szrix_Hammertail.lua new file mode 100644 index 0000000..0ed238d --- /dev/null +++ b/poknowledge/Szrix_Hammertail.lua @@ -0,0 +1,54 @@ +-- poknowledge\Szrix_Hammertail.lua NPCID 202071 + +local RESPONSES = { + "stares at you long and hard. 'Long ago I escaped imprisonment from Drunder, such things I saw there I would not wish to think of again. Never again would I even think of speaking of Drunder was it not for the favor owed to the Lord of Guile. The task he set to me I accomplished to a degree. I was able to obtain the materials Eriak spoke of through much difficulty. I was also able to create a set of weaponry that will do much harm to the Warlord. Should you wish to test your skill I may be able to help ye.'", + "glares at you. 'Very well, %s, I will teach you. Combining Decorin ore and a flask of water in a forge makes the base metal of Drunder. Ye then need a temper brewed for the weaponry. Find the shards of valor and decant their essence with a celestial solvent. Based on what type of weapon ye desire is the mold that is needed. Do you wish to craft a Sword, a Bastard Sword, a Claidhmore, a Battlehammer, an Ulak, a Dagger or a Bow?'", + "To make the sword, combine Drunder's steel, pulsing blue vial, long blade mold, hilt mold, and a pommel mold in a forge. This will make a weapon that will cause some worry to the Zeks.", + "To make the bastard sword, combine Drunder's steel, pulsing blue vial, dual-edged blade mold, hilt mold, and pommel mold in a forge. This will make a weapon that will cause some worry to the Zeks.", + "To make the claidhmore, combine Drunder's steel, pulsing blue vial, heavy steel blade mold, hilt mold, and a pommel mold in a forge. This will make a weapon that will cause some worry to the Zeks.", + "To make the battlehammer, combine Drunder's steel, pulsing blue vial, mace head mold, and an oak shaft in a forge. This will make a weapon that will cause some worry to the Zeks.", + "To make the ulak, combine Drunder's steel, pulsing blue vial, pommel mold, short blade mold, and a hilt mold in a forge. This will make a weapon that will cause some worry to the Zeks.", + "To make the dagger, combine Drunder's steel, pulsing blue vial, dagger blade mold, and a hilt mold in a forge. This will make a weapon that will cause some worry to the Zeks.", + "To make the bow, combine Drunder's steel, pulsing blue vial and a file in a forge. This will make a weapon that will cause some worry to the Zeks.", + "hisses at you as if about to attack. 'Won't you let me be! Torment me no more about memories of the past! This is the last bit I shall tell you then hope to never see you again. Combine any of the weapons with a substance made from decanting the black blood, insanity fangs and celestial solvent. The weapons made thusly will cause even the Warlord to flinch at the thought of facing them. All but the bow must be made in a forge, combine the bow and the substance in a fletching kit.'", +}; + +local TRIGGERS = { + "dark courage", + "test my skill", + "sword", + "bastard", + "claidhmore", + "battlehammer", + "ulak", + "dagger", + "bow", + "black insanity", +}; + +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Emote("speaks in a drawling hiss. his voice tainted with the dark accent of Cabilis. 'The Hammertails greet you. traveler. If you seek supplies of which to craft iron and steel weaponry. then you need search no further. The Hammertails will accommodate all of your needs at a fair price.'"); + return; + end + + local qglobals = eq.get_qglobals(e.other); + local zeks = tonumber(qglobals.zeks) or 0; + + for i, text in ipairs(TRIGGERS) do + if ( e.message:findi(text) ) then + if ( zeks > 4 ) then + if ( i == 1 or i == 10 ) then + e.self:Emote(RESPONSES[i]); + elseif ( i == 2 ) then + e.self:Emote(RESPONSES[i]:format(e.other:GetName())); + else + e.self:Say(RESPONSES[i]); + end + else + e.self:DoAnim(31); -- yawn + end + return; + end + end +end diff --git a/poknowledge/Tabben_Bromal.lua b/poknowledge/Tabben_Bromal.lua new file mode 100644 index 0000000..f99ab0e --- /dev/null +++ b/poknowledge/Tabben_Bromal.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What is it? What do you wan. . . Oh bloody underfoot, do forgive me, traveler. I'm not used to all this bickering and flittering about -- you know, the bustle of the 'living' city. The racket, the noise, and the wails of the children. Bah! I came here to escape it, not to relive it. But if I survived it once, I sure as Brell's holy bottom will do it again! In hopes of getting you all out of here as soon as possible and the peace and quiet being resurrected out of your blessed absence, I've agreed to lend some of my knowledge of the more inferior levels of tinkering to those who have an interest in this art. If you don't intend on purchasing any materials, then be off with you and leave me in peace. However, if you have coin in your pocket and you plan on spending, then do so quickly. I have more pressing things to do with my time than wait while you leisurely browse my wares."); + elseif(e.message:findi("ready to write down")) then + if(e.other:HasItem(17278)) then -- Item: Small Parts Container he replies to this if I have small parts container. + e.self:Say("Very well. You'll need to gather up a dense hammered casing for the outer shell; a crystalline carapace will act to protect the face of the device; and it requires a fiery power source to propel the rotor mechanism. The device is then attached around the neck, much like the one you are wearing. The only difference will be the strands of living chain that will keep it from slipping from around your neck. Place those four items and your talisman in that box and return it to me. We should be able to get this thing built for you without much fuss at all, should all things go well on your end of the task, of course."); + else + e.self:Say("Ready for what?"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28278})) then -- Strange Jeweler's Schematic + e.self:Emote("takes the document from you and looks at it for a moment. 'Well, this is a beautiful looking schematic. I wonder what they are trying to make with it? Where did you get this? No wait; don't tell me. I'd rather not know. I can make some of this writing out but just barely. What I can read leads me to believe that I'd be better off not knowing.'"); + e.self:Emote("falls victim to his curiosity and grabs a small kit from the table behind him. 'Take this kit and look for the following parts,' he says as he scrunches his nose at the schematic again. 'We'll need a Tri-coated Metal Casing, one Size C spring, some Creeping silk strands -- whatever those are -- and some Congealed Bile-based Ooze. I'm not sure if this thing is wanting us to make a device or some sort of nasty cocktail, but that's what it's asking for... ewww!'"); + e.self:Say("Seal those things up in the container that I just gave you and bring it straight back to me. I'll wait here for you and see if I can decipher anymore of this schematic."); --not sure on how to check to see if the container combine works + e.other:QuestReward(e.self,{items = {17277,28278}}); -- item: Small Parts kit, Strange Jeweler's Schematic + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 28283})) then -- Sealed Parts Box + e.self:Say("Oh, you've returned! Very good, " .. e.other:GetCleanName() .. "! Saria and I have made some real progress on the document that you brought us. Watch this and you'll see what I mean!"); + e.self:Emote("quickly opens the small case and removes the parts. He takes a tiny spanner, several small bolts, and a long wire and quickly pieces together what appears to be a small clockwork talisman. He pulls a leather string through the top of it and offers it to you."); + e.self:Say("That should work for you, but from what we gathered, there's another layer of mechanics that works to shield and envelope the existing talisman. It's going to require more parts. So take this container and let me know when you're [ready] to write down the names of the next set of parts."); + e.other:QuestReward(e.self,{items = {17278,28284}}); -- Item: Small Parts Container, Small Clockwork Talisman + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 28289})) then + e.self:Emote("nods at you and takes the parts box over to the table. He seems to have laid out the extra tools that he needs prior to your return. With only a few twists and clicks, the pieces of the talisman lock together and begin to glow. The gnome turns and hands you the talisman and the design schematic in an exaggeratedly sharp gesture."); + e.self:Say("Please take the schematic to Elder Clinka. I'm afraid that I don't have the courage to spend any more time working on this for you. I wish I had a more adventurous spirit, but I don't. I like it here because it's peaceful. I don't need anyone changing that for you. Take care and be cautious on your way to see her. There's no telling who or what may be after you! When you show her the schematic, you may want to mention that most of that writing wasn't on there when we got it."); + e.self:Say("It's seems that words are beginning to write themselves onto that schematic of yours. Maybe she'll be able to understand them. I sure don't want to. Take care."); + e.other:QuestReward(e.self,{items = {28291,28290}}); -- Item: The Talisman Schematic, Powered Clockwork Talisman + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Talespinner_Trogmarz.lua b/poknowledge/Talespinner_Trogmarz.lua new file mode 100644 index 0000000..1230e35 --- /dev/null +++ b/poknowledge/Talespinner_Trogmarz.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Har! Yooz wan be smart like Trogmarz. den yooz read books like Trogmarz! Meez gotz sum books bout ancient trolls yooz can borrow if yooz wantz. Da mojo of da library will bring zem back when yooz are done wit dem."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Tarerd_Gahar.lua b/poknowledge/Tarerd_Gahar.lua new file mode 100644 index 0000000..df5582e --- /dev/null +++ b/poknowledge/Tarerd_Gahar.lua @@ -0,0 +1,19 @@ +--The Magic Pool +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I'm sorry " .. e.other:GetCleanName() .. ", I have neither the time nor the patience to chat right now."); + elseif(e.message:findi("pool")) then + e.self:Say("Oh Tatlan and Wicas sent you did they? I'll tell you what I told them, nothing is free. If you want to know about the pools then I need something [from you] first."); + elseif(e.message:findi("from me")) then + e.self:Say("I'm sure it'll be easy for an adventurer as you. I am working on a potion, and I cannot currently travel to gather my last component. If you could bring me the blood of a Sarnak I'd be willing to share what I know."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 22519})) then --Sarnak Blood + e.self:Say("Ahh this is exactly what I was looking for. All the information I've gathered from these pools has come from Myrist. Thiran will give you the book I used as a reference. Give him this note so he knows I sent you."); + e.other:QuestReward(e.self,{itemid = 15958}); --Note From Tarerd + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Telir_Na-Shalith.lua b/poknowledge/Telir_Na-Shalith.lua new file mode 100644 index 0000000..445a1a8 --- /dev/null +++ b/poknowledge/Telir_Na-Shalith.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Whatever your affair or business is -- if it is not with the intent to purchase supplies to poison your blade -- I suggest that you move along for I have neither the time nor the care to hold meaningless dialogue with one who will not bear unto me a profit."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Tenada_Jeried.lua b/poknowledge/Tenada_Jeried.lua new file mode 100644 index 0000000..0db3e03 --- /dev/null +++ b/poknowledge/Tenada_Jeried.lua @@ -0,0 +1,27 @@ +--Three Manuals/Sage's Box of Research +--Giren found text for the Three Manuals quest, thanks. -Kilelen +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("I am afraid I have little that I can talk about right now. If you like you may speak to my [instructor] he can probably tell you about our work."); + elseif(e.message:findi("who is your instructor")) then + e.self:Say("My instructor is Sage Balic; you will be able to find him upstairs. Ask him about his research. I'm sure he would love to tell you about his work."); + elseif(e.message:findi("interested in learning")) then + e.self:Emote("considers for a moment and continues, 'Very well, but first you must prove that you are a student of the advanced arts. In order to do this, you will need to collect each of the advanced manuals in combat, stealth, and magic. You will also need to seek out a prized possession known as a Hope Stone. I believe it currently lies somewhere in the elemental planes. Return to me with these four tools of learning, and only then will you be truly worthy of what secrets the planes have to offer.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 16258, item2 = 28791, item3 = 28797, item4 = 28794})) then--Hope Stone, Advanced Combat Manual, Advanced Magic Manual, Advanced Stealth Manual + e.self:Emote("'s eyes go wide. 'This is incredible! You have proven yourself to be truly worthy of these planar secrets, " .. e.other:GetCleanName() .. ". May its knowledge contained within guide you safely wherever you travel.'"); + -- Confirmed Live Experience + e.other:QuestReward(e.self,{itemid = 28798, exp = 1000000});--Secrets of the Planes + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Tranus_Ironstove.lua b/poknowledge/Tranus_Ironstove.lua new file mode 100644 index 0000000..1b1401c --- /dev/null +++ b/poknowledge/Tranus_Ironstove.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Aaah. . . good day to you. my friend. and welcome! It has been a most exciting time these past few weeks with the influx of young and seasoned adventurers alike. It has been quite difficult to keep up on our stock. but do not be discouraged. for Tranus Ironstove's supplies are always well-kept! If you are in need of baking supplies. then search my wares and perhaps I might hold that which you seek."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Tratlan_Jowyr.lua b/poknowledge/Tratlan_Jowyr.lua new file mode 100644 index 0000000..9aea13d --- /dev/null +++ b/poknowledge/Tratlan_Jowyr.lua @@ -0,0 +1,32 @@ +--The Magic Pool +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("looks deeply into the pool in front of him, 'Well darn it! I still can't see anything in this blasted [pool], can you Wicas?"); + --Need to trigger Wicas to say: "Nothing at all. Do you think that he led us astray?" right after this. + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(202301)) then + eq.get_entity_list():GetMobByNpcTypeID(202301):Say("Nothing at all. Do you think that he led us astray?"); -- Make Wicas Adaolath also talk. + end + elseif(e.message:findi("pool")) then + e.self:Emote("glances up at you like he just noticed your presence, 'This pool. There is supposed to be strong [magic] in it.'"); + elseif(e.message:findi("magic")) then + e.self:Say("Scrying magic. These pools can supposedly glance into all of the knowledge past, present, and future."); + --Need to trigger Wicas to say: "I think we should just do what [Tarerd] wants us to do." + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(202301)) then + eq.get_entity_list():GetMobByNpcTypeID(202301):Say("I think we should just do what [Tarerd] wants us to do."); -- Make Wicas Adaolath also talk. + end + elseif(e.message:findi("tarerd")) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(202301)) then + eq.get_entity_list():GetMobByNpcTypeID(202301):Say("Tarerd is the one who told us about these pools. He wanted us to kill some sort of lizards for him, but we have neither the time nor energy for such adventures. Perhaps you can get some information about the pools from him."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 15960})) then--The Reflecting Pools of Tanaan + e.self:Emote("leafs quickly through the book. 'Thank you, it will take quite some time to go through all the information here. Here is a little something for your troubles.'"); + -- Confirmed Live Experience + e.other:QuestReward(e.self,{itemid = 9321,exp = 150000}); --Fine Cut, Diamond Inlaid Mask + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Trep_Thilcan.lua b/poknowledge/Trep_Thilcan.lua new file mode 100644 index 0000000..37450f9 --- /dev/null +++ b/poknowledge/Trep_Thilcan.lua @@ -0,0 +1,24 @@ +-- poknowledge\Trep_Thilcan.lua NPCID 202057 + +function event_say(e) + if(e.other:GetLevel() < 35) then + e.self:Say(eq.ChooseRandom("Someone with your skills is more suited to beetle slaying. Run along, now.","This matter is far too advanced for you to handle. Come back after you've killed a few more large rats.","It's much safer for you to spend time fishing than on a dangerous issue like this.","I think I saw a gnoll pup you could probably defeat, a few miles back.")); + elseif(e.message:findi("hail")) then + e.self:Say("Hi! You wouldn't be able to do a favor for a poor gnome would you?"); + elseif(e.message:findi("will do you a favor")) then + e.self:Say("Well I am trying to setup a shop here, it is such a choice location! I am afraid if I leave though that nasty Halfling over there may steal my spot! She has been watching me keenly all day. I know she is just waiting for me to walk away. If you would go purchase some supplies for me from various locations around the world I would be able to reward you for your time spent. If you are ready to begin?'"); + elseif(e.message:findi("ready to begin")) then + e.self:Say("Great! Here is a special crate. It needs to be filled with a purification tablet from Freeport, a keg of beer from Qeynos, a ball of twine from Shadeweaver, a bundle of weapons from Firiona, an armor assortment from Thurgadin, and a case of meat from the Bazaar. That should give me quite a stock of items to sell to travelers out here."); + e.other:SummonCursorItem(17177); -- Item: Empty Supplies Crate + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 15978}, 0)) then + e.self:Say("Fantastic! You got me everything I need to set up shop. Here is some money for your troubles. I hoped you learned something as well. I am sorry I have nothing more to give you except this advice, if you combine a clockwork carapace, a metal rod, gnomish bolts, firewater and grease in a toolbox you should get something nice!"); + e.other:QuestReward(e.self,0,0,0,60,0,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Vicar_Ceraen.lua b/poknowledge/Vicar_Ceraen.lua new file mode 100644 index 0000000..8f7b97d --- /dev/null +++ b/poknowledge/Vicar_Ceraen.lua @@ -0,0 +1,41 @@ +--Cleric PoP Spells +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Ceraen, priest of Tunare and resident of New Tanaan for over three centuries of my existence. Do not fear those whom may have been your enemy upon the prime. The scholars are equal and without bias toward one another, thus there is no safer place in the cosmos than New Tanaan. Each resident strives to bring knowledge closer to the curious and willing, and I am not exempt from this." ); + e.self:Say("If you are a priest in your world and seek to gain a higher understanding of the divine power that your faith has allowed you to wield, then perhaps what spells I have penned from memory of your world would be of use. I have also mastered levels in the workings of planar magic and its chaotic ways of forming upon the manifested planes. If by chance you come across a fledgling arcane item -- you will know it for its incorporeal state -- then do not hesitate to bring it to me. I may be able to infuse it with the powers of the divine and forge from it a spell of priestly might."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local ethereal = item_lib.count_handed_item(e.self, e.trade, {29112}); --Ethereal Parchment + local spectral = item_lib.count_handed_item(e.self, e.trade, {29131}); --Spectral Parchment + local glyphed = item_lib.count_handed_item(e.self, e.trade, {29132}); --Glyphed Rune Word + if(ethereal > 0) then + repeat + e.self:Emote("takes the arcane item with great care and respect from you. For several moments the priest seems to enter a state of contemplative meditiation upon the arcane planar item. Suddenly, he begins a slow, soft chant -- a prayer whose dialect is unknown to your ears. Eventually, the arcane item in his hand begins to waver into this existence, its corporeal state rendered beneath the priest's chanting. As he grows quiet and calm once more, the priest hands the corporeal item to you -- the runes of divine power etched upon the tangible scroll, 'This should be of great use to you, " .. e.other:GetCleanName() .. ". Use its power wisely."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(28646, 28557, 28561, 28572, 21690, 26945,26946,28558, 28563, 28566, 28567, 28564, 26947)); --Level 61 or 62 Cleric spell, PoP (Faith, Symbol of Kazad, Ward of Gallantry, Tarnation, Sermon of Penitence, Petrifying Earth, Greater Immobilize, Virtue, Blessing of Reverence, Supernal Elixir, Condemnation, Catastrophe, Pacification) + ethereal = ethereal - 1; + until ethereal == 0; + end + if(spectral > 0) then + repeat + e.self:Emote("takes the arcane item with great care and respect from you. For several moments the priest seems to enter a state of contemplative meditiation upon the arcane planar item. Suddenly, he begins a slow, soft chant -- a prayer whose dialect is unknown to your ears. Eventually, the arcane item in his hand begins to waver into this existence, its corporeal state rendered beneath the priest's chanting. As he grows quiet and calm once more, the priest hands the corporeal item to you -- the runes of divine power etched upon the tangible scroll, 'This should be of great use to you, " .. e.other:GetCleanName() .. ". Use its power wisely."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(21647, 28569, 28571, 28573, 28559, 28560, 28562)); --Level 63 or 64 Cleric spell, PoP (Kazad's Mark, Hammer of Damnation, Supernal Light, Sound of Might, Destroy Undead, Mark of Kings, Word of Replenishment) + spectral = spectral - 1; + until spectral == 0; + end + if(glyphed > 0) then + repeat + e.self:Emote("takes the arcane item with great care and respect from you. For several moments the priest seems to enter a state of contemplative meditiation upon the arcane planar item. Suddenly, he begins a slow, soft chant -- a prayer whose dialect is unknown to your ears. Eventually, the arcane item in his hand begins to waver into this existence, its corporeal state rendered beneath the priest's chanting. As he grows quiet and calm once more, the priest hands the corporeal item to you -- the runes of divine power etched upon the tangible scroll, 'This should be of great use to you, " .. e.other:GetCleanName() .. ". Use its power wisely."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(21689, 28555, 28565, 28568, 28570)); --Level 65 Cleric spell, PoP (Yaulp VI, The Silent Command, Armor of the Zealot, Mark of the Righteous, Hand of Virtue) + glyphed = glyphed - 1; + until glyphed == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Vicar_Delin.lua b/poknowledge/Vicar_Delin.lua new file mode 100644 index 0000000..d1497d1 --- /dev/null +++ b/poknowledge/Vicar_Delin.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well. good day t'ye. traveler and welcome t'New Tanaan! We pride ourselves upon the knowledge and wisdom each lad and lass of this fine city has come to study for the rest of their days. Yee need not be worrin' 'bout any lack of acceptance or aid from us. stranger. fer we all be willin' t'aid any who would merely lend an ear. and in some cases. a bit of coin. Aye. traveler. we do still be needin' a bit of gold 'ere an' there if we are to support the sudden flood of ye travelers. now don't we? In any case. dinnae let such small stipulations bother ye. fer our prices be quite fair. Now. if ye be a cleric. then ye 'ave come t'the right place. friend. I myself am a priest of Brell. an' what knowledge I 'ave fer the takin' is yours should ye provide the asked price. o'course."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Vicar_Diarin.lua b/poknowledge/Vicar_Diarin.lua new file mode 100644 index 0000000..d53558b --- /dev/null +++ b/poknowledge/Vicar_Diarin.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Good day to you. traveler. and may the gods be with you in your quest for knowledge. New Tanaan shall not hinder your quest. my friend -- on the contrary. we strive to provide whatever wisdom and guidance that you would need to further your own path. Do not hesitate to approach us and know us as friend. and nothing more. Unfortunately. my personal experience and knowledge is limited to that of a priestess. for I was bred devoted to The Prime Healer. However. if you are a priest--it does not matter the divine focus of your faith-- then I may serve some purpose to you after all. Please. search my inventory should you have any interest in it and purchase whatever you need that I can possibly provide."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Vicar_Glaunn.lua b/poknowledge/Vicar_Glaunn.lua new file mode 100644 index 0000000..a000087 --- /dev/null +++ b/poknowledge/Vicar_Glaunn.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to New Tanaan. traveler. and know that you are among allies in the quest for knowledge and personal enlightenment. All of New Tanaan's residents have strived for the past weeks to accommodate every visitor's needs as we can. Collectively. we have proven to be without a match in our efforts to do so. as the knowledge kept here is seemingly infinite. Individually. however. we hold specialties that one must take into account before judging us as the proper aid for your current quest. If your life is dedicated to the ways of the priest. despite the mode of your faith. then I may be of service to you. My inventory is stocked. as I am sure that it shall always be. Search it at your convenience and leisure should you wish it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Vicar_Thiran.lua b/poknowledge/Vicar_Thiran.lua new file mode 100644 index 0000000..c64140a --- /dev/null +++ b/poknowledge/Vicar_Thiran.lua @@ -0,0 +1,15 @@ +--The Magic Pool +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("A dark day to you. New Tanaan has opened its arms to all of Norrath's travelers and scholars alike -- though still I doubt most are worthy of our infinite and unsurpassed knowledge. In any case, we all must uphold the laws of our city, else we become as debased and pathetic as the secular, warring cultures of the material universe. You will find that, despite the medium of our birth or the shadow of faith in our hearts, we are all equally tolerant of each being to approach us. Though I myself am no stranger to the duties of a mentor, I do not think that at this juncture, I would provide any useful assistance to any not of the many clergies associated with the pantheon. If you do indeed serve one of the gods of Nature and Influence, then my services may not prove a waste of our collective time. Search my inventory at your will, and purchase what you wish should you find anything of use to you at this point in your life of service."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 15958})) then--Note From Tarerd + e.self:Emote("quickly reads the note, and says 'Tarerd wants me to give you that book? I thought he wanted me to keep it secret. Well no matter.' Thiran rummages through the books in front of him. 'Well this is unfortunate. It looks like I loaned my friend the incorrect book. I'm not sure where he's gone off to, here is the book he was looking for. If you happen to run into Jeren Manri anywhere, he'll probably exchange this book for the book on the scrying pools.'"); + e.other:QuestReward(e.self,{itemid = 15959}); --Goblins and Their Religions + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Virtuoso_Ciadus.lua b/poknowledge/Virtuoso_Ciadus.lua new file mode 100644 index 0000000..6bd448d --- /dev/null +++ b/poknowledge/Virtuoso_Ciadus.lua @@ -0,0 +1,22 @@ +--Added tome handins - Kilelen +function event_say(e) + e.self:Emote("raises a brow sharply, his Teir'Dal heritage perfectly displayed in his sharp features twisted in a glare of flawless contempt. 'The district of Kartis -- the land of the shadow -- is not a place for you, light crawler. Your presence here has no justification and you only insult your people by being here. Yes, you have betrayed your philosophy, for you are fueling the shadow with your presence within it. You may see yourself as a creature of justice and think yourself doing good by being here -- perhaps to show us the light, or to learn our secrets. Aaah. . . learn our secrets. Yes, why don't you do that? I would be more than willing to teach you, light crawler, for whatever it is you learn under the shadow's guidance, despite how you use that knowledge, you fuel it, for you are now a product of corruption.'"); +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {4861, 4862, 4863, 4864, 4865, 4866, 4867}); --Imbrued Platemail Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Virtuoso_Legilwan.lua b/poknowledge/Virtuoso_Legilwan.lua new file mode 100644 index 0000000..45dfa78 --- /dev/null +++ b/poknowledge/Virtuoso_Legilwan.lua @@ -0,0 +1,31 @@ +--Planar Armor Exchange + +function event_say(e) + if(e.message:findi("Hail")) then + if(e.other:Race() == "Dark Elf" or e.other:Race() == "Iksar" or e.other:Race() == "Troll" or e.other:Race() == "Ogre" or e.other:Class() == "Shadowknight" or e.other:Class() == "Necromancer") then + e.self:DoAnim(60) + e.self:Emote("raises a brow sharply and gains a face of almost belittling amusement as he eyes " .. e.other:GetCleanName() .. " before him. 'Do you not think yourself out of place here, dark one? Please, do not be offended, for that is not my intent in the least, of course. I would rather see your needs fulfilled to the utmost of your necessity than see you leave this place no more knowledgeable than before your arrival. The library of Myrist in the center of our city is home to the scholars of New Tanaan, who believe themselves to have ascended beyond the 'petty mortal squabbles"); + else + e.self:DoAnim(48); + e.self:Emote("gives a gentle, though formal nod of his head in warm greetings. 'Welcome, " .. e.other:GetCleanName() .. ", to the district of Tanaan. We have the utmost faith that this humble place will accommodate your every need most generously. The merchants in scattered throughout our region are quite useful to any tradesmen or adventurer seeking to restock on supplies and the devises of teleportation found in this district should be more than suitable for one of your ilk. If you have come to Tanaan seeking guidance in the ways of mentorship and skills, then know only success in your search for we are more than prepared to accommodate the needs of almost any adventurer. The bards of Norrath who seek guidance without the ravings of a philosophical, political, or religious zealot will find myself to be a most formidable suitor to their needs.'"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {4861, 4862, 4863, 4864, 4865, 4866, 4867}); --Imbrued Platemail Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Virtuoso_Zoama.lua b/poknowledge/Virtuoso_Zoama.lua new file mode 100644 index 0000000..2a31029 --- /dev/null +++ b/poknowledge/Virtuoso_Zoama.lua @@ -0,0 +1,25 @@ +--Bard Tomes/Planar Armor Exchange +--Added tome handins - Kilelen +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("gives a warm smile of her comely features and a delicate bow of her head in greetings. 'Good day to you, " .. e.other:GetCleanName() .. ", and welcome to the district of Selia. You will find that the light and mortal virtues of justly kindness, honor, valor, and untainted passion are represented in full upon this plane in our midst. Rather, each of the three districts that house the adepts of New Tanaan represent and fulfill the core elements and pure essence of mortal virtues within the universe, we collectively embody that of the light. I'm certain you will find yourself at home among us, and for this we are pleased and grateful. During your stay with us, I would suggest that you seek our adepts and merchants, for the knowledge we hold cannot be found in the library of Myrist. for it is one that is the key to purity and faith of the light. If you are one of the bardic traditions, then I may be of assistance to you should you need training the ways of your skills. Otherwise, it has been a pleasure to make your acquaintance.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {4861, 4862, 4863, 4864, 4865, 4866, 4867}); --Imbrued Platemail Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Vuli_Ironstove.lua b/poknowledge/Vuli_Ironstove.lua new file mode 100644 index 0000000..d12cae4 --- /dev/null +++ b/poknowledge/Vuli_Ironstove.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome. traveler! The Ironstoves pride ourselves upon our goods. for no other baker in the whole of the cosmos can hold a candle to our quality. Please. search my inventory and if you do not find that which you are searching for. then search my brethren's stock. I guarantee that among the five of us. you will find the exact ingredient you seek."); + end +end + +function event_spawn(e) + x = e.self:GetX(); + y = e.self:GetY(); + eq.set_proximity(x - 90, x + 90, y - 90, y + 90); +end + +function event_enter(e) + eq.signal(202273,5); --Qadar +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Wanderer_Astobin.lua b/poknowledge/Wanderer_Astobin.lua new file mode 100644 index 0000000..33b19ec --- /dev/null +++ b/poknowledge/Wanderer_Astobin.lua @@ -0,0 +1,40 @@ +--Druid PoP Spells +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings traveler. I am Wanderer Astobin, warden of nature and guardian of Tunare's most blessed and sacred of treasures -- life and balance. I have pledged my existence to upholding this vow and even here, that vow remains. Though I no longer carry my scimitar or scout the wilds of the world as one of its many guardians, my pledge shall remain whole through my guidance of others whose pledge is akin to mine. If you are a druid -- your deity matters not -- then allow me to guide you if I may. What spells I have scribed are for you to search through and purchase should you find them worthy of your abilities. If through your travels in the outer planes you discover incorporeal items seemingly of an arcane nature, do not disregard them. I am well-trained in the ways and manner of planar magic and will be more than willing to turn these fledgling arcane items into tangible spells suited for those of druidic vows."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local ethereal = item_lib.count_handed_item(e.self, e.trade, {29112}); --Ethereal Parchment + local spectral = item_lib.count_handed_item(e.self, e.trade, {29131}); --Spectral Parchment + local glyphed = item_lib.count_handed_item(e.self, e.trade, {29132}); --Glyphed Rune Word + if(ethereal > 0) then + repeat + e.self:Emote("respectfully accepts the item, holding it in his hands like one would a delicate and priceless relic. His eyes scan its every surface in a detailed study before he closes his eyes and begins to weave a chant of unknown dialect and origin. As the druid's voice filters softly through the area, the object in his hand begins to fade into this existence, its intangible state destroyed beneath the druid's magic. Runes begin to appear upon the fully manifested scroll -- runes of a druidic decent. The druid ceases his chanting and then slowly hands the item to you, 'This is a spell of great power. Use it wisely and with caution, for to abuse the gifts of nature is to corrupt our sole purpose.'"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(26943, 28524, 28525, 28526, 28564, 21656, 28527, 28528, 28529, 28530)); --Level 61 or 62 Druid spell, PoP (Earthen Roots, Storm's Fury, Hand of Ro, Winter's Storm, Catastrophe, Flight of Eagles, Immolation of Ro, Karana's Rage, Nature's Might, Ro's Illumination) + ethereal = ethereal - 1; + until ethereal == 0; + end + if(spectral > 0) then + repeat + e.self:Emote("respectfully accepts the item, holding it in his hands like one would a delicate and priceless relic. His eyes scan its every surface in a detailed study before he closes his eyes and begins to weave a chant of unknown dialect and origin. As the druid's voice filters softly through the area, the object in his hand begins to fade into this existence, its intangible state destroyed beneath the druid's magic. Runes begin to appear upon the fully manifested scroll -- runes of a druidic decent. The druid ceases his chanting and then slowly hands the item to you, 'This is a spell of great power. Use it wisely and with caution, for to abuse the gifts of nature is to corrupt our sole purpose.'"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(21658, 21659, 28531, 28532, 28533, 28535, 28536, 28538, 21657, 28534, 28537, 28539, 28540)); --Level 63 or 64 Druid spell, PoP (Protection of the Nine, Destroy Summoned, Blessing of Replenishment, E'ci's Frosty Breath, Nature's Infusion, Command of Tunare, Swarming Death, Shield of Bracken, Karana's Renewal, Protection of Seasons, Savage Roots, Summer's Flame, Brackencoat) + spectral = spectral - 1; + until spectral == 0; + end + if(glyphed > 0) then + repeat + e.self:Emote("respectfully accepts the item, holding it in his hands like one would a delicate and priceless relic. His eyes scan its every surface in a detailed study before he closes his eyes and begins to weave a chant of unknown dialect and origin. As the druid's voice filters softly through the area, the object in his hand begins to fade into this existence, its intangible state destroyed beneath the druid's magic. Runes begin to appear upon the fully manifested scroll -- runes of a druidic decent. The druid ceases his chanting and then slowly hands the item to you, 'This is a spell of great power. Use it wisely and with caution, for to abuse the gifts of nature is to corrupt our sole purpose.'"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(28645, 28541, 28542, 28543)); --Level 65 Druid spell, PoP (Legacy of Bracken, Blessing of the Nine, Winter's Frost, Mask of the Forest) + glyphed = glyphed - 1; + until glyphed == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Wanderer_Frardok.lua b/poknowledge/Wanderer_Frardok.lua new file mode 100644 index 0000000..6f717db --- /dev/null +++ b/poknowledge/Wanderer_Frardok.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Why. hello there " .. e.other:GetCleanName() .. " ! We are most excited indeed to see so many scholars from Norrath gathering within our city walls. It is so rare in this time of turmoil that so many beings of diverse and even opposing cultures and philosophies may come together without fear or hate of one another. Aaah. the bliss of balance -- and what an irony it is that all my life I strove for it upon the primal world and it is within the cosmos that I find it. I ramble. forgive me. friend. If you are a druid yourself and seek guidance in the ways of furthering your abilities as a warden of nature. then perhaps my inventory might hold something of use to you. Go on. then. and search as you will. Do not hesitate to purchase anything that catches your eye."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Wanderer_Kedrisan.lua b/poknowledge/Wanderer_Kedrisan.lua new file mode 100644 index 0000000..505c9bd --- /dev/null +++ b/poknowledge/Wanderer_Kedrisan.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail. " .. e.other:GetCleanName() .. " and good day to thee. The halls of New Tanaan are open to any being of intelligence and self-empowered will that wishes to walk among its halls and libraries. so dinnae be frightened by my seemingly nonconformist presence here. Like my fellow citizens. I have pledged my knowledge to any visitor that has any need or wish of me. though I fear I may only be of use to the druids of the material world. If you believe that I could provide anything of use to you. then do not hesitate to browse my inventory. All of the spells there were penned by my own hand and my stock is always plentiful."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Wanderer_Qenda.lua b/poknowledge/Wanderer_Qenda.lua new file mode 100644 index 0000000..67e06a2 --- /dev/null +++ b/poknowledge/Wanderer_Qenda.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings to you. traveler. and we warmly welcome you to our midst. New Tanaan holds a limitless fount of knowledge of past history. lore. and research of both the arcane and of faith. If you have come in search of knowledge that would guide you further in the protection of the sacred. natural world as one of its druids. then I may be of humble service to you. Do not hesitate to peruse my inventory should you have wish or need of it. All items that I possess are for a moderate price that will aid the city in furthering our research and guidance of all of Norrath's scholars."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Wanderer_Thermon.lua b/poknowledge/Wanderer_Thermon.lua new file mode 100644 index 0000000..eec02c4 --- /dev/null +++ b/poknowledge/Wanderer_Thermon.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Why. hello there friend and welcome! New Tanaan has seen much excitement these past days. and we are only pleased to accommodate each and every adventurer and scholar who wishes our guidance. If you are a warden of the natural world. then perhaps my wisdom may hold some meaningful importance to you. Come and search my spells. friend. and purchase whatever might catch your eye should you have use or need of it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Warder_Elwysaie.lua b/poknowledge/Warder_Elwysaie.lua new file mode 100644 index 0000000..d060362 --- /dev/null +++ b/poknowledge/Warder_Elwysaie.lua @@ -0,0 +1,26 @@ +--Planar Armor Exchange + +function event_say(e) + if(e.message:findi("Hail")) then + if(e.other:Race() == "Dark Elf" or e.other:Race() == "Iksar" or e.other:Race() == "Troll" or e.other:Race() == "Ogre" or e.other:Class() == "Shadowknight" or e.other:Class() == "Necromancer") then + e.self:DoAnim(48); + e.self:Emote("stands tall, eyeing " .. e.other:GetCleanName() .. " before her with neither disdain nor favor as she delivers a proper nod of greetings. 'Greetings to you, dark one. You stand within the district of Tanaan -- the cornerstone of neutrality not only within this plane, but within the universe. In no place within the known, infinite cosmos will you find this perfect a balance of intelligent and willful minds. We do not have an adversity to your presence among us, should you choose to yield to our wishes and keep your dark intents and purposes within the recesses of your mind until you return to Norrath. Be wary, dark one, if this is your final destination within the Plane of Knowledge before you return to your native soil, for our devices will take you to a place that may not take kindly to your presence. I suggest you return to Kartis, where your kind would hold you in higher regard and favor and the means to return to your home would be less catastrophic in their consequences.'"); + else + e.self:DoAnim(70); + e.self:Emote("gives a formal bow at the waist in an almost regal greeting toward " .. e.other:GetCleanName() .. ". 'Good day to you , traveler, and may Tunare's gracious hand guide your fate with freedom. I am Warder Elwysaie, a soldier and guardian of nature in my life upon Norrath. Here, I am a soldier still but one of faith and knowledge. I set my blades down long ago, and though I understand most gravely that the shadow of corruption that threatens this delicate and necessary balance still looms most deadly over us, I was no longer able to be nature's wrath adn vengeance. It was then that I heard the calling of New Tanaan and eagerly I followed to this place of neutrality. In the recent times where Norrath's travelers who have yet to appeal to the Plane of Knowledge grace us as visitors and students of our ways, I have volunteered my former status and knowledge to any young ranger who may need guidance in their skills as they grow in power."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {4891, 4892, 4893, 4894, 4895, 4896, 4897}); --Thorny Vine Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Warlock_Vesthin.lua b/poknowledge/Warlock_Vesthin.lua new file mode 100644 index 0000000..5debe7d --- /dev/null +++ b/poknowledge/Warlock_Vesthin.lua @@ -0,0 +1,24 @@ +--Planar Armor Exchange +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("peels back his thin, scaled lips, revealing a row of flawless tiny fangs in a grim gaze that brings even the bravest paladin to a moment of hesitation. 'We are somewhat. . . put off by your presence among us, though this is something I'm certain will not take long to remedy once you understand the peril you have come into. Strange, however, that you would wander into Kartis of either your own free will or the misdirection of your own footsteps. Perhaps you feel that you may learn from us what the other minions of the shadow have kept in their souls to use against us. I assure you, no such thing will come as you expect. Begone from this place, " .. e.other:GetCleanName() .. ", for you will only burden or distract the best of us with the temptation to lure you into our folds. Aaaah, yes, that is the action of Kartis -- to bring our shadow into your soul, for we have emerged beyond the blade and drawing of blood in our convictions. By all means, continue in our midst and engage in that test if you believe yourself above it.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {1232, 1233, 1234, 1235, 1236, 1237, 1238}); --Blighted Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Warlord_Gligoth.lua b/poknowledge/Warlord_Gligoth.lua new file mode 100644 index 0000000..0be53f9 --- /dev/null +++ b/poknowledge/Warlord_Gligoth.lua @@ -0,0 +1,23 @@ +--Warrior Tomes/Planar Armor Exchange +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("glares coldly, his mouth twisted in a gruesome sneer of disgust. 'Kartis is place of shadow, not gud for light crawlers. But yu here, yu want something from shadow? Yes, yu want shadow to teach yu - yu want shadow to feed yu secrets, but yu will only fuel shadow's power in learning from it. If yu still want to stay in Kartis, then yu will only give power to shadow that yu say yu hate. I will teach yu, light crawler, if yu still tink yu can outsmart shadow's soldiers. I'll make that puny stick-thing yu light crawlers call weapons into fierce tools of war and no matter who dey kill, yu will kill in the shadow's name.'"); + end +end +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {4911, 4912, 4913, 4914, 4915, 4916, 4917}); --Indicolite Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Warlord_Korehan.lua b/poknowledge/Warlord_Korehan.lua new file mode 100644 index 0000000..2361d0d --- /dev/null +++ b/poknowledge/Warlord_Korehan.lua @@ -0,0 +1,23 @@ +--Warrior Tomes/Planar Armor Exchange +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("stands tall and in a stiff, well-trained mode, salutes " .. e.other:GetCleanName() .. ". 'Welcome to the district of Selia. 'ere, ye will find that we all be children of light -- that virtues such as valor and justice are 'eld in the utmost respect and fervent reverence. Dinnae be fooled by our appearance, friend, fer we may differ in religions, but our focus be paralleled. If ye be a young warrior searchin' fer a mentor in the skills of the blade, then ye certaintly 'ave come t'the right man. If ye be of another art, then dinnae be discouraged, fer Selia 'olds many adepts and ye shall find one to suit ye in our midst.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {4911, 4912, 4913, 4914, 4915, 4916, 4917}); --Indicolite Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Warlord_Skriek.lua b/poknowledge/Warlord_Skriek.lua new file mode 100644 index 0000000..7dc0120 --- /dev/null +++ b/poknowledge/Warlord_Skriek.lua @@ -0,0 +1,19 @@ +--Warrior Tomes/Planar Armor Exchange +--Created file, added warrior tomes as well -Kilelen +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {5174, 5175, 5176, 5177, 5178, 5179, 5180, 5181}); --Legionnaire Scale Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Warlord_Welorf.lua b/poknowledge/Warlord_Welorf.lua new file mode 100644 index 0000000..5494722 --- /dev/null +++ b/poknowledge/Warlord_Welorf.lua @@ -0,0 +1,24 @@ +--Warrior Tomes/Planar Armor Exchange +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("gathers a deep breath, his body seeming unnaturally stiff within the large suit of iron. His cold, steely eyes glance over you once before addressing you in a low, baritone voice. 'You stand before Welorf, Warlord of the North and former chief of the Steel Warrior's clan. Should you be a warrior, the knowledge of my blade is at your reach and perhaps in time, and with some training, a proper warrior can borne of the weak creature I see before me.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local count = item_lib.count_handed_item(e.self, e.trade, {4911, 4912, 4913, 4914, 4915, 4916, 4917}); --Indicolite Armor + if(count > 0) then + repeat + e.self:Say("Thank you, " .. e.other:GetCleanName() .. "."); --Text made up + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10028, 10037, 22503, 15981),300000); --Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + count = count - 1; + until count == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Wegal_Darkanvil.lua b/poknowledge/Wegal_Darkanvil.lua new file mode 100644 index 0000000..ad5d22c --- /dev/null +++ b/poknowledge/Wegal_Darkanvil.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("An' a blessed day t'ye. friend. New Tanaan 'as not seen this level of excitement in quite some time -- it is a warmly received break from the serious and almost somber atmosphere this fair little place be known fer. In any case. perhaps ye be searchin' fer some smithin' supplies. and if that be the case then ye 'ave come t'the right place! The Darkanvils were master smiths of our time in Kaladim. before its fair gates opened to the surface above. no doubt. We 'ave recreated some of the supplies commonly used in this trade on your world and offer them at a fair price. we guarantee!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Wicas_Adaolath.lua b/poknowledge/Wicas_Adaolath.lua new file mode 100644 index 0000000..f67dd0e --- /dev/null +++ b/poknowledge/Wicas_Adaolath.lua @@ -0,0 +1,17 @@ +--The Magic Pool + +function event_say(e) + if(e.message:findi("tarerd")) then + e.self:Say("Tarerd is the one who told us about these pools. He wanted us to kill some sort of lizards for him, but we have neither the time nor energy for such adventures. Perhaps you can get some information about the pools from him."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Wilacor_Goldenmead.lua b/poknowledge/Wilacor_Goldenmead.lua new file mode 100644 index 0000000..63da808 --- /dev/null +++ b/poknowledge/Wilacor_Goldenmead.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:DoAnim(29); + e.self:Say("Greetings. traveler! I am Wilacor Goldenmead. resident of this most fair of cities and baking is my trade. I know that the worlds beyond this place are treacherous indeed. and one needs their strength to withstand the dangers that they most certainly face. The supplies that I provide are ideal for all adventurers and will keep the most hardy of warriors strong and well-nourished so that they may be at their best when battle is nigh. Come. search my wares and purchase as you will!"); + end +end diff --git a/poknowledge/Willamina.lua b/poknowledge/Willamina.lua new file mode 100644 index 0000000..a687638 --- /dev/null +++ b/poknowledge/Willamina.lua @@ -0,0 +1,24 @@ +-- poknowledge\Willamina.lua NPCID 202057 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello and good morning " .. e.other:GetName().. " It's such a lovely day to sit and enjoy the beautiful surroundings. is it not? I do hope you find what you are looking for here. Not all of us have been so successful in our individual [quests]."); + elseif(e.message:findi("quests")) then + e.self:Say("The city is full of curious people all searching for something. Many have struggled for a long time to find their reward. Some are not even aware of what is it they are looking for, but will know it when they see it. Would you care to [help] me out? It will only take a moment."); + elseif(e.message:findi("help")) then + e.self:Say("How wonderful! To pass the time I enjoy sitting under the trees and sewing together luscious fabrics. But now it seems my old sewing needles have all broke or gone dull, and I require a new supply. Bolcen Tendag has promised to purchase and deliver some for me, but he has not yet arrived and I worry about him. If you could locate him and ask him about the needles I would appreciate it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28092})) then --New Sewing Needles + e.self:Emote("takes the needles and smiles. 'Thank you so much, kind stranger. I can't tell you how much you have really helped by doing this for me. It's funny, you know. The entire city seems to be in a happier mood today. I can't quite put my finger on it, but everyone seems to have uplifted spirits. Oh well, thank you again. I have something you may find to be of use to you, if you would be interested. Remember, knowledge is the key to life."); + -- Confirmed Live Experience + e.other:QuestReward(e.self,{itemid = 28745,exp = 100}); + end + + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/poknowledge/Winon_Glahar.lua b/poknowledge/Winon_Glahar.lua new file mode 100644 index 0000000..91b3994 --- /dev/null +++ b/poknowledge/Winon_Glahar.lua @@ -0,0 +1,32 @@ +--Beginner Stealth Manual + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:DoAnim(70); + if(e.other:HasItem(28745) and e.other:GetLevel() > 19) then + e.self:Say("Good day, " .. e.other:GetCleanName() .. ". I see your curiosity of the planes is growing, as you have obtained a manual on planar travel. It is good to see young adventurers interested in planar exploration, but there is one aspect of discovery you must always be prepared for, the struggle for survival. There are very dangerous places to be seen and experienced out there, and it would behoove you to be ready to face what challenges may come. With my help, I can teach you the basics of planar stealth and reflexes if you are [willing to learn]."); + else + e.self:Say("Good day, " .. e.other:GetCleanName() .. ". I trust you are enjoying your visist to New Tanaan? If you have not already been, be sure to visit the Myrist library. There is much to be learned there; things you may have never thought possible before. I myself am a teacher of sorts, but I am only available to those who have obtained the proper tools of learning. Perhaps you will be a student of mine someday?"); + end + elseif(e.other:HasItem(28745) and e.other:GetLevel() > 19 and e.message:findi("willing to learn")) then + e.self:DoAnim(48); + e.self:Say("This is good. Through your trials of planar travel shall your knowledge of stealth techniques grow, and the more you learn, the more you shall produce. In order to prove your newfound knowledge, your first lesson will be to create a special [planar stein] of particular design. Once you have acquired this stein, you must give it to me along with your Planar Traveler's Manual. Once done, new lessons may be opened up to you."); + elseif(e.other:HasItem(28745) and e.other:GetLevel() > 19 and e.message:findi("planar stein")) then + e.self:DoAnim(64); + e.self:Say("To fashion the stein I seek, you must acquire a Block of Tanaan Clay, a Ceramic Lining Sketch, Tainted Planar Essence, a Water Flask, and some Sculpting Tools. Use these items in a pottery wheel to create your base model to work from. Crush some Valor Crystals together with some Glaze Lacquer in a glaze mortar to make Crystalline Valor Glaze. You must then take a Lacquered Peridot, the Crystalline Valor Glaze, a High Quality Firing Sheet, and the base model stein and merge them in a kiln to put the finishing touches on your work. I hope to see you bring me a handsome-looking stein soon. Good luck!"); + elseif(e.message:findi("willing to learn") or e.message:findi("planar stein")) then + e.self:DoAnim(57); + e.self:Say("I am glad to see you are willing to learn, however I'm afraid you are not ready for my teachings. Come back when you have acquired the proper tools of learning."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetLevel() > 19 and item_lib.check_turn_in(e.self, e.trade, {item1 = 29168, item2 = 28745})) then--Planar Peridot Encrusted Stein, Planar Traveler's Manual + e.self:Say("Marvelous! You certainly have shown to be a skilled craftsman, and I thank you for such a lovely beverage conveyance. Take this book and use it to learn from. When you are ready, speak with Leramas Feston for your next lesson. Do not lose this manual or else he will not be able to train you."); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,math.random(10),math.random(10),0,28792,500000); --Beginner Stealth Manual + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Wisdomseeker_Raulin.lua b/poknowledge/Wisdomseeker_Raulin.lua new file mode 100644 index 0000000..7055a8e --- /dev/null +++ b/poknowledge/Wisdomseeker_Raulin.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail adventurous traveler! I have been researching the druidic heritages of various Norrathian cultures and have made some interesting finds here in the great library. Feel free to borrow the books I have found if you like. The sorcery of the library will return the books to their proper places when you are through with them."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/poknowledge/Xasri_Virek.lua b/poknowledge/Xasri_Virek.lua new file mode 100644 index 0000000..56efaf9 --- /dev/null +++ b/poknowledge/Xasri_Virek.lua @@ -0,0 +1,22 @@ +--Xasri_Virek.pl +--Intermediate Combat Manual + +function event_say(e) + if(e.message:findi("Hail")) then + if(e.other:HasItem(28788)) then + e.self:Say("Welcome my student. I see you have brought with you the Beginner's Manual. If you are ready for your next lesson, the task is simple. A vicious terror has awoken somewhere in the Plane of Innovation. You must seek out the Junk Beast and bring me its power source along with your Beginner Combat Manual. Doing this will prove your battle courage above all else. Remember, the gem cannot be polished without friction, nor man or lizard perfected without trials. I wish you luck."); + else + e.self:Say("Hail. and welcome to the Kartis meeting hall. I trust you are keeping busy here in New Tanaan? It is truly a wonderful city. there are many interesting new things to discover here. I came here from my home of Cabilis long ago. but I could not dream of returning now. My life is here. wading in the font of knowledge that this place has to offer. Hopefully I will be able to help you discover your own knowledge one day."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28788, item2 = 29145})) then --Beginner Combat Manual, Junk Beast Power Source + e.self:Say("Very impressive, " .. e.other:GetCleanName() .. ". This proves you have clearly graduated to the next phase of training we have to offer. Keep this book by your side and speak to Gwiraba Gelrid when you are ready for your next lesson."); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,math.random(5),0,0,28790,500000);--Intermediate Combat Manual + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Yeril_Imsin.lua b/poknowledge/Yeril_Imsin.lua new file mode 100644 index 0000000..7c2f211 --- /dev/null +++ b/poknowledge/Yeril_Imsin.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Good day to you, " .. e.other:GetCleanName() .. ". New Tanaan holds a wealth of knowledge and opportunities to further yourself in more ways than mere talent of the mind. If you are a craftsman of steel and armor and seek to further progress your trade, then you have come to the right place. My inventory is quite plentiful and holds the necessary elements for any blacksmith's trade. I am also willing to pay those [willing to help] me restock my supply of high quality ore."); + elseif(e.message:findi("willing to help")) then + e.self:Say("Excellent! Simply fill this crate with either four large bricks or four small bricks of unrefined ore from Norrath and return it to me. I will provide you with coin and refine the ore for sale to the smiths of New Tanaan."); + e.other:SummonCursorItem(17814);--Empty Ore Crate + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10953})) then--Large Shipment of High Quality Ore + e.self:Say("Thank you " .. e.other:GetCleanName() .. "! I will prepare the ore for sale and be open for business again momentarily. Here is your payment for your services."); + e.other:Faction(e.self,1636, 4);--Inhabitants of Tanaan + e.other:QuestReward(e.self,0,0,0,44,0,5000); + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10952})) then--Small Shipment of High Quality Ore + e.self:Say("Thank you " .. e.other:GetCleanName() .. "! I will prepare the ore for sale and be open for business again momentarily. Here is your payment for your services."); + e.other:Faction(e.self,1636, 4);--Inhabitants of Tanaan + e.other:QuestReward(e.self,0,0,0,14,0,5000); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Zalil_Nyvin.lua b/poknowledge/Zalil_Nyvin.lua new file mode 100644 index 0000000..f389605 --- /dev/null +++ b/poknowledge/Zalil_Nyvin.lua @@ -0,0 +1,23 @@ +--Advanced Magic Manual + +function event_say(e) + if(e.message:findi("hail")) then + e.self:DoAnim(70); + if(e.other:HasItem(28796)) then + e.self:Say("How do you do, " .. e.other:GetCleanName() .. "? So you think you're skilled in the art of magic, do you? Pay close attention for this course I have for you will test your magical prowess like none before. In order to continue my work I will need for you to bring back a few things for me. When you can locate a Tornado Gem, a Battle Worn Trinket, and a Blue Diamond, return and hand them to me along with your Intermediate Magic Manual. If you can do this, then perhaps maybe there is a shred of hope left for you after all! Be off now and good luck!"); + else + e.self:Say("How do you do, " .. e.other:GetCleanName() .. "? I wish I could say I had time to chat but despite appearances I am actually quite busy. As a teacher of magic I need to constantly update my lesson plans. Would you be interested in learning from me? I would be happy to teach you but my course is quite advanced. and I can sense you may not quite be ready yet. Please return when you have become so."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetLevel() > 19 and item_lib.check_turn_in(e.self, e.trade, {item1 = 22503, item2 = 26710, item3 = 9424, item4 = 28796})) then--Blue Diamond, Battle Worn Trinket, Tornado Gem, Intermediate Magic Manual + e.self:Say("'When I saw you walk in the room with these, I nearly fainted. Bravo to you on a job well done. Take this book, may it light your path to day's end. Say, want to know something else? I hear Tenada Jeried is looking for some more students of your caliber. You may wish to seek him out and see what he has to offer. Just tell him you are interested in learning from him. Bye, " .. e.other:GetCleanName() .. "!"); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,math.random(10),math.random(0,5),math.random(0,5),28797,500000); --Advanced Magic Manual + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Zauvudd_Gigoth.lua b/poknowledge/Zauvudd_Gigoth.lua new file mode 100644 index 0000000..c539397 --- /dev/null +++ b/poknowledge/Zauvudd_Gigoth.lua @@ -0,0 +1,34 @@ +--Beginner Combat Manual + +function event_say(e) + if(e.message:findi("hail")) then + e.self:DoAnim(70); + if(e.other:HasItem(28745) and e.other:GetLevel() > 19) then -- must have Planar Traveler's Manual for this response + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". I see you have obtained a manual on planar travel. It is good to see your determination has taken its first step to true glory. I think you may finally be ready to learn the basics of planar combat, that is if you are [willing to learn]. Remember, courage is imperial. It underlies true achievement. With your courage you shall achieve many great things."); + else + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". If you are looking for something in particular, I might be able to help you. I spent many years teaching combat techniques to the finest warriors in Grobb. I came to New Tanaan to further develop my teaching skills; it seems we all have our own lessons to learn. I can teach you a few things if you are looking to be taught. You will need to prepare yourself with the necessary equipment before I can begin though."); + end + elseif(e.other:HasItem(28745) and e.other:GetLevel() > 19 and e.message:findi("willing to learn")) then + e.self:DoAnim(57); + e.self:Say("This is good. One of the most important aspects to your battle readiness is your strong willpower and bravery. Years ago I discovered a particular concoction that will very readily put your willpower to the test. Unfortunately I ran out not too long ago and I am in need of some more [Planar Blood Brew]. If you can make some more for my students, it would certainly look favorably upon you in your future teachings. Bring me some along with your Planar Traveler's Manual."); + elseif(e.other:HasItem(28745) and e.other:GetLevel() > 19 and e.message:findi("planar blood brew")) then + e.self:DoAnim(57); + e.self:Say("To make the infamous Planar Blood Brew, you must attain some Nightmare Mephit Blood, Slarghilug Blood, Bubonian Blood, Soda Water, Grapes, a Cask, a Cork, and a Corking Device. Mix them in a Brew Barrel, and if you are skilled enough, the resulting swill should curl the hairs on even the hardiest of traveler's heads!"); + elseif(e.message:findi("willing to learn")) then + e.self:DoAnim(48); + e.self:Say("I am glad to see you are willing to learn, however I'm afraid you are not ready for my teachings. Come back when you have acquired the proper tools of learning."); + elseif(e.message:findi("planar blood brew")) then + e.self:DoAnim(64); + e.self:Say("I am glad to see you are willing to learn, however I'm afraid you are not ready for my teachings. Come back when you have acquired the proper tools of learning."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetLevel() > 19 and item_lib.check_turn_in(e.self, e.trade, {item1 = 28787, item2 = 28745})) then --Planar Blood Brew, Planar Traveler's Manual + e.self:Say("Wow, this is great! Wow! This is may be the best Planar Blood Brew I have ever tasted! You have passed the first test with flying colors. Here, you take this book and learn well from it. When you are ready for your next lesson, speak to Xasri Virek."); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,math.random(0,10),math.random(0,10),28788,500000); --Beginner Combat Manual + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/poknowledge/Zosran_Hammertail.lua b/poknowledge/Zosran_Hammertail.lua new file mode 100644 index 0000000..d7d4059 --- /dev/null +++ b/poknowledge/Zosran_Hammertail.lua @@ -0,0 +1,7 @@ +-- poknowledge\Zosran_Hammertail.lua NPCID 202073 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("'s voice come forth in a drawling hiss. though unlike the other reptilian voices of the Cabilisian Iksars. this one's is almost melodic like the hum of a soft breeze through a winding canyon. 'Greetings traveler. If you are an adept in the art of smithing. then look no further than the Hammertails of New Tanaan for your supplies.'"); + end +end \ No newline at end of file diff --git a/poknowledge/player.lua b/poknowledge/player.lua new file mode 100644 index 0000000..5214f07 --- /dev/null +++ b/poknowledge/player.lua @@ -0,0 +1,10 @@ +function event_click_door(e) + local door_id = e.door:GetDoorID(); + + if(door_id == 27) then + if(e.self:GetLevel() < 46) then + e.self:Message(13, "You are not yet experienced enough to pass through an inter-planar portal."); + end + end + + end \ No newline at end of file diff --git a/ponightmare/#Deyid_the_Twisted.lua b/ponightmare/#Deyid_the_Twisted.lua new file mode 100644 index 0000000..0606c54 --- /dev/null +++ b/ponightmare/#Deyid_the_Twisted.lua @@ -0,0 +1,95 @@ +local SEILAEN_TYPE = 204047; -- Seilaen +local FOREBODING_TYPE = 204484; -- a_foreboding_tree +local BLIGHTED_TYPE = 204459; -- a_blighted_treant +local CORRUPT_TYPE = 204460; -- a_corrupt_treant + +local FOREBODING_LOCS = { + { x = 1105, y = 926, z = 280.376, h = 234, x2 = 1087, y2 = 965, z2 = 279.6 }, + { x = 1032, y = 900, z = 280.376, h = 251, x2 = 1025, y2 = 939, z2 = 281, t = BLIGHTED_TYPE }, + { x = 910, y = 912, z = 280.376, h = 22, x2 = 931, y2 = 945, z2 = 283 }, + { x = 833, y = 978, z = 280.376, h = 43, x2 = 874, y2 = 1006, z2 = 275 }, + { x = 785, y = 1073, z = 280.376, h = 62, x2 = 828, y2 = 1077, z2 = 283.5, t = CORRUPT_TYPE }, + { x = 773, y = 1184, z = 280.376, h = 81 }, + { x = 853, y = 1289, z = 278.68, h = 101, x2 = 886, y2 = 1250, z2 = 277 }, + { x = 1003, y = 1270, z = 280.376, h = 128, x2 = 1000, y2 = 1236, z2 = 283, t = BLIGHTED_TYPE }, + { x = 1084, y = 1205, z = 280.376, h = 149, x2 = 1072, y2 = 1181, z2 = 280.9 }, + { x = 1181, y = 1110, z = 278.924, h = 184, x2 = 1154, y2 = 1106, z2 = 280.376 }, + { x = 1194, y = 999, z = 279.407, h = 209, x2 = 1155, y2 = 1028, z2 = 280, t = CORRUPT_TYPE }, +}; + +local forebodingIDs; + +function event_spawn(e) + eq.set_timer("depop", 1800000); + eq.set_timer("checkbounds", 5000); + eq.set_next_hp_event(85); + forebodingIDs = {}; +end + +function event_hp(e) + if ( e.hp_event == 85 ) then + eq.set_next_hp_event(60); + local mob; + + for _, coords in ipairs(FOREBODING_LOCS) do + mob = eq.spawn2(FOREBODING_TYPE, 0, 0, coords.x, coords.y, coords.z, coords.h or 0); + table.insert(forebodingIDs, mob:GetID()); + end + eq.get_entity_list():MessageClose(e.self, true, 200, 0, "A low groaning sound wells up out of the surrounding woods as the rustling of leaves indicate something sinister is manifesting"); + + elseif ( e.hp_event == 60 ) then + eq.set_next_hp_event(45); + local mob; + local coords; + for i, id in ipairs(forebodingIDs) do + coords = FOREBODING_LOCS[i]; + mob = eq.get_entity_list():GetMob(id); + if ( coords.x2 ) then + mob:CastToNPC():MoveTo(coords.x2, coords.y2, coords.z2, -1, true); + end + end + eq.get_entity_list():MessageClose(e.self, true, 200, 0, "Deyid the Twisted waves his branches about in agitation and the surrounding trees close in."); + + elseif ( e.hp_event == 45 ) then + local mob, mob2; + + for i, id in ipairs(forebodingIDs) do + mob = eq.get_entity_list():GetMob(id); + if ( FOREBODING_LOCS[i].t ) then + mob2 = eq.spawn2(FOREBODING_LOCS[i].t, 0, 0, mob:GetX(), mob:GetY(), mob:GetZ(), mob:GetHeading()); + mob2:CastToNPC():MoveTo(e.self:GetX(), e.self:GetY(), e.self:GetZ(), -1, false); + mob:Depop(); + end + end + eq.get_entity_list():MessageClose(e.self, true, 200, 0, "Several of the foreboding trees tear their roots from the ground and move in to aid Deyid."); + end +end + +function event_death_complete(e) + eq.signal(SEILAEN_TYPE, 1); + eq.signal(FOREBODING_TYPE, 1); +end + +function event_timer(e) + if ( e.timer == "checkbounds" ) then + if ( e.self:GetZ() < 270 ) then + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + e.self:WipeHateList(); + e.self:Heal(); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + eq.set_next_hp_event(85); + eq.depop_all(FOREBODING_TYPE); + eq.depop_all(BLIGHTED_TYPE); + eq.depop_all(CORRUPT_TYPE); + forebodingIDs = {}; + end + + + elseif ( e.timer == "depop" ) then + eq.signal(SEILAEN_TYPE, 2); + eq.depop_all(FOREBODING_TYPE); + eq.depop_all(BLIGHTED_TYPE); + eq.depop_all(CORRUPT_TYPE); + eq.depop(); + end +end diff --git a/ponightmare/#Hobgoblin_Anguish_Lord.lua b/ponightmare/#Hobgoblin_Anguish_Lord.lua new file mode 100644 index 0000000..bb1e582 --- /dev/null +++ b/ponightmare/#Hobgoblin_Anguish_Lord.lua @@ -0,0 +1,3 @@ +function event_death(e) + eq.update_spawn_timer(369184, 432000000); -- #The_Bullyrag_Bat, 5 days +end diff --git a/ponightmare/#Terror_Matriarch.lua b/ponightmare/#Terror_Matriarch.lua new file mode 100644 index 0000000..8e8b54b --- /dev/null +++ b/ponightmare/#Terror_Matriarch.lua @@ -0,0 +1,14 @@ +function event_combat(e) + if ( e.joined ) then + eq.set_timer("hatchling", 30000); + else + eq.stop_timer("hatchling"); + end +end + +function event_timer(e) + if ( e.timer == "hatchling" ) then + -- spawn an_abhorrent_hatchling or a_rapacious_hatchling or a_voracious_hatchling + eq.spawn2(eq.ChooseRandom(204475, 204469, 204474), 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + end +end diff --git a/ponightmare/#The_Bullyrag_Bat.lua b/ponightmare/#The_Bullyrag_Bat.lua new file mode 100644 index 0000000..0de4d96 --- /dev/null +++ b/ponightmare/#The_Bullyrag_Bat.lua @@ -0,0 +1,3 @@ +function event_death(e) + eq.unique_spawn(204482, 0, 0, 727, 4567, -97.75, 127); -- #The Painwrack Hobgoblin +end diff --git a/ponightmare/#The_Fearsome_Hobgoblin.lua b/ponightmare/#The_Fearsome_Hobgoblin.lua new file mode 100644 index 0000000..15084bc --- /dev/null +++ b/ponightmare/#The_Fearsome_Hobgoblin.lua @@ -0,0 +1,5 @@ +function event_death(e) + eq.unique_spawn(204479, 0, 0, 1484, 2650, -69.5, 183); -- #Hobgoblin Anguish Lord + eq.unique_spawn(204468, 0, 0, 1465, 2625, -80.875, 183); -- #a malevolent mephit + eq.unique_spawn(204465, 0, 0, 1459, 2660, -79, 183); -- #a fearsome bat +end diff --git a/ponightmare/#The_Painwrack_Hobgoblin.lua b/ponightmare/#The_Painwrack_Hobgoblin.lua new file mode 100644 index 0000000..9cdb846 --- /dev/null +++ b/ponightmare/#The_Painwrack_Hobgoblin.lua @@ -0,0 +1,3 @@ +function event_death(e) + eq.unique_spawn(204481, 0, 0, 1686, 4079, 36.875, 166); -- #The Fearsome Hobgoblin +end diff --git a/ponightmare/Aid_Eino.lua b/ponightmare/Aid_Eino.lua new file mode 100644 index 0000000..5bd11b8 --- /dev/null +++ b/ponightmare/Aid_Eino.lua @@ -0,0 +1,99 @@ +local BANSHEE_TYPE = 204015; -- a_tortured_banshee +local NIGHTSTALKER_TYPE = 204019; -- a_nightstalker +local HOBGOBLIN_TYPE = 204011; -- a_hobgoblin +local TREMULOUS_BAT_TYPE = 204030; -- a_tremulous_bat +local TERROR_BAT_TYPE = 204042; -- a_terror_bat +local TORMENT_BAT_TYPE = 204031; -- a_torment_bat +local DREAMKEEPER_TYPE = 204480; -- The_Dreamkeeper + +local INVIS_MAN_SPAWNPOINTID = 345856; + +local escortDone = false; + +function event_spawn(e) + e.self:Emote("steps from the shadows 'I am glad you were able to come help me, this is quite a dangerous realm! We must tread carefully if we are to find the item Kerasha desires from this vile place. Sometimes I worry her research with the magic of the land puts her in much danger. Let us be off and find that which she desires.'"); + eq.set_timer("setrespawn", 1000); + escortDone = false; +end + +function event_timer(e) + if ( e.timer == "setrespawn" ) then + eq.stop_timer("setrespawn"); + eq.get_entity_list():GetSpawnByID(INVIS_MAN_SPAWNPOINTID):SetTimer(2160000); + elseif ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_waypoint_arrive(e) + + if ( e.wp == 2 ) then + e.self:Say("Vile Beasts! Our presence has been detected! Let not their dreams of evil sway you!"); + eq.spawn2(BANSHEE_TYPE, 0, 0, 992, -1083, 213, 106); + eq.spawn2(BANSHEE_TYPE, 0, 0, 1053, -1147, 216, 216); + eq.spawn2(BANSHEE_TYPE, 0, 0, 971, -1124, 212, 60); + eq.spawn2(BANSHEE_TYPE, 0, 0, 1071, -1101, 215, 179); + + elseif ( e.wp == 3 ) then + e.self:Say("Even in my home I always hated werewolves, I fear you not vile fiends!"); + eq.spawn2(NIGHTSTALKER_TYPE, 0, 0, 586, -1625, 209.664, 172); + eq.spawn2(NIGHTSTALKER_TYPE, 0, 0, 532, -1583, 208, 123); + + elseif ( e.wp == 4 ) then + e.self:Say("Have you ever had a dream where you were being chased and could not run? This place is the source of such nightmares. Break those blocks and defend yourself!"); + eq.spawn2(HOBGOBLIN_TYPE, 0, 0, 524, -611, 213, 98); + eq.spawn2(HOBGOBLIN_TYPE, 0, 0, 505, -674, 213, 53); + eq.spawn2(HOBGOBLIN_TYPE, 0, 0, 552, -722, 211, 8); + eq.spawn2(HOBGOBLIN_TYPE, 0, 0, 624, -694, 212, 214); + eq.spawn2(HOBGOBLIN_TYPE, 0, 0, 589, -631, 217, 157); + + elseif ( e.wp == 6 ) then + e.self:Say("Something knows we hunt it! Cast your trepidations aside and defeat this evil! Fear us Keeper, we have come for you!"); + eq.spawn2(BANSHEE_TYPE, 0, 0, 492, 659, 212, 56); + eq.spawn2(BANSHEE_TYPE, 0, 0, 576, 597, 212, 7); + eq.spawn2(BANSHEE_TYPE, 0, 0, 677, 652, 215, 202); + eq.spawn2(BANSHEE_TYPE, 0, 0, 604, 767, 211, 134); + eq.spawn2(eq.ChooseRandom(TREMULOUS_BAT_TYPE, TREMULOUS_BAT_TYPE, TERROR_BAT_TYPE, TORMENT_BAT_TYPE), 0, 0, 527, 610, 213, 31); + eq.spawn2(eq.ChooseRandom(TREMULOUS_BAT_TYPE, TREMULOUS_BAT_TYPE, TERROR_BAT_TYPE, TORMENT_BAT_TYPE), 0, 0, 627, 602, 214, 236); + eq.spawn2(eq.ChooseRandom(TREMULOUS_BAT_TYPE, TREMULOUS_BAT_TYPE, TERROR_BAT_TYPE, TORMENT_BAT_TYPE), 0, 0, 650, 732, 210, 161); + eq.spawn2(eq.ChooseRandom(TREMULOUS_BAT_TYPE, TREMULOUS_BAT_TYPE, TERROR_BAT_TYPE, TORMENT_BAT_TYPE), 0, 0, 538, 719, 209, 91); + + elseif ( e.wp == 7 ) then + e.self:SetAppearance(1); -- sit + + elseif ( e.wp == 8 ) then + e.self:Say("The fiend shows itself! Spew your vile dreams no longer! Dispatch it!"); + local mob = eq.unique_spawn(DREAMKEEPER_TYPE, 0, 0, 578, 717, 205, 129); + + elseif ( e.wp == 10 ) then + e.self:Say("Hand me the strand from the beast. Quellious knows what Kerasha wants with such a thing."); + eq.set_timer("depop", 1800000); + escortDone = true; + end +end + +function event_waypoint_depart(e) + if ( e.wp == 2 ) then + e.self:Say("Now that our presence here is discovered we cannot delay. Rest when you can."); + elseif ( e.wp == 3 or e.wp == 4 ) then + e.self:Say("Now that you are rested, follow my steps, may Quellious guard us!"); + elseif ( e.wp == 6 ) then + e.self:Say("Excellent rest up for a few moments, rally your strength as I meditate on a teaching of Quellious."); + elseif ( e.wp == 8 ) then + e.self:Emote("holds his bleeding side. 'That beast was quite vicious. Quickly! Let us make our way to the portal. I must seek the healers of tranquility to stanch the bleeding of this wound. Give me a moment to gather my strength.'"); + elseif ( e.wp == 9 ) then + e.self:Emote("gathers his strength and limps forward. 'Follow my steps to the portal!'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if ( escortDone and item_lib.check_turn_in(e.self, e.trade, {item1 = 16261}, 0) ) then -- Strand of Nightmare + e.self:Say("Excellent! You and your companions have served me well, take my mark as a symbol of trust. The Council may smile more favorably upon you now. May Quellious watch over you!"); + e.other:QuestReward(e.self, 0, 0, 0, 0, 16260, 100000); -- Tiny Gold Fist + eq.depop(); + end + + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/ponightmare/EinoInvisDay.lua b/ponightmare/EinoInvisDay.lua new file mode 100644 index 0000000..56d7d9c --- /dev/null +++ b/ponightmare/EinoInvisDay.lua @@ -0,0 +1,43 @@ +local BANSHEE_TYPE = 204015; -- a_tortured_banshee +local NIGHTSTALKER_TYPE = 204019; -- a_nightstalker +local HOBGOBLIN_TYPE = 204011; -- a_hobgoblin +local TREMULOUS_BAT_TYPE = 204030; -- a_tremulous_bat +local TERROR_BAT_TYPE = 204042; -- a_terror_bat +local TORMENT_BAT_TYPE = 204031; -- a_torment_bat + +local MOB_TYPES = { [BANSHEE_TYPE] = 1, [NIGHTSTALKER_TYPE] = 1, [HOBGOBLIN_TYPE] = 1, [TREMULOUS_BAT_TYPE] = 1, [TERROR_BAT_TYPE] = 1, [TORMENT_BAT_TYPE] = 1 }; + +function event_spawn(e) + eq.debug("EinoInvisDay spawn", 2); + eq.set_timer("timecheck", 10000); + + -- Depop mobs spawned by the Eino escort script. + -- These are supposed to depop in ~10 minutes of unaggro time, but implementing that precisely would require + -- a lot of redundant and/or kludgy code due to our lack of a hardcoded despawn timer, so I opted to remove + -- them this way instead. The scripted NPCs are the same NPC types of NPCs found elsewhere in the zone but + -- they are beyond the invisible drop-off wall, so this sould be safe to do. This will depop them about + -- 36 minutes after the escort was started. + local npcList = eq.get_entity_list():GetNPCList(); + + if ( npcList ) then + for npc in npcList.entries do + if ( npc.valid ) then + if ( MOB_TYPES[npc:GetNPCTypeID()] ) then + if ( npc:GetX() > 480 and not npc:IsEngaged() ) then + npc:Depop(); + end + end + end + end + end +end + +function event_timer(e) + if ( e.timer == "timecheck" ) then + local zoneTime = eq.get_zone_time()["zone_hour"] + 1; + if ( zoneTime > 19 or zoneTime < 7 ) then + eq.debug("EinoInvisDay despawn", 2); + eq.depop_with_timer(); + end + end +end diff --git a/ponightmare/EinoInvisNight.lua b/ponightmare/EinoInvisNight.lua new file mode 100644 index 0000000..3f058f0 --- /dev/null +++ b/ponightmare/EinoInvisNight.lua @@ -0,0 +1,30 @@ +local EINO_TYPE = 204467; -- Aid_Eino + +function event_spawn(e) + eq.debug("EinoInvisNight spawn", 2); + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + eq.set_proximity(xloc - 30, xloc + 30, yloc - 30, yloc + 30); + eq.enable_proximity_say(); + + eq.set_timer("timecheck", 10000); +end + +function event_timer(e) + + if ( e.timer == "timecheck" ) then + local zoneTime = eq.get_zone_time()["zone_hour"] + 1; + if ( zoneTime > 6 and zoneTime < 20 ) then + eq.depop_with_timer(); + eq.debug("EinoInvisNight despawn", 2); + end + end +end + +function event_proximity_say(e) + + if ( e.message:findi("Quellious be my guide") ) then + eq.unique_spawn(EINO_TYPE, 8, 0, 1686, -527, 217.194, 37); + eq.depop_with_timer(); + end +end diff --git a/ponightmare/Hatchling.lua b/ponightmare/Hatchling.lua new file mode 100644 index 0000000..951132e --- /dev/null +++ b/ponightmare/Hatchling.lua @@ -0,0 +1,15 @@ +local MOB_TYPES = { + 204475, -- an_abhorrent_hatchling + 204469, -- a_rapacious_hatchling + 204474, -- a_voracious_hatchling +}; + +function event_combat(e) + if ( e.joined ) then + local r = math.random(2, 4); + for i = 1, r do + eq.spawn2(MOB_TYPES[math.random(1,3)], 0, 0, e.self:GetX() + math.random(-10, 10), e.self:GetY() + math.random(-10, 10), e.self:GetZ() + 3, 0); + end + eq.depop_with_timer(); + end +end diff --git a/ponightmare/Seilaen.lua b/ponightmare/Seilaen.lua new file mode 100644 index 0000000..751944a --- /dev/null +++ b/ponightmare/Seilaen.lua @@ -0,0 +1,140 @@ +local DEYID_TYPE = 204461; -- #Deyid_the_Twisted + +local ports = 0; + +function MoveGroup(client, dist, x, y, z, h) + local group = client:GetGroup(); + local raid = client:GetRaid(); + local moved = 0; + + if ( group and group:GroupCount() > 0 ) then + for i = 0, 5 do + local member = group:GetMember(i):CastToClient(); + + if ( member.valid ) then + if ( member:CalculateDistance(client:GetX(), client:GetY(), client:GetZ()) < dist ) then + member:MovePC(204, x, y, z, h*2); + moved = moved + 1; + if ( member:GetPet().valid and not member:GetPet():Charmed() ) then + member:GetPet():GMMove(x, y, z, 0); + end + end + end + end + return moved; + elseif ( raid and raid.valid ) then + local raidGroupID = raid:GetGroup(client:GetName()); + local member; + for i = 0, 71 do + member = raid:GetMember(i); + + if ( member and member.valid and raid:GetGroup(member:GetName()) == raidGroupID ) then + + if ( member:CalculateDistance(client:GetX(), client:GetY(), client:GetZ()) < dist ) then + member:MovePC(204, x, y, z, h*2); + moved = moved + 1; + if ( member:GetPet().valid and not member:GetPet():Charmed() ) then + member:GetPet():GMMove(x, y, z, 0); + end + end + end + end + return moved; + else + client:MovePC(204, x, y, z, h*2); + if ( client:GetPet().valid and not client:GetPet():Charmed() ) then + client:GetPet():GMMove(x, y, z, 0); + end + return 1; + end + return 0; +end + +function ClientOnPlateau() + local clientList = eq.get_entity_list():GetClientList(); + + if ( clientList ) then + for client in clientList.entries do + + if ( not client:GetGM() + and client:GetY() > 800 and client:GetY() < 1365 + and client:GetX() > 670 and client:GetX() < 1270 + and client:GetZ() > 250 + ) then + return true; + end + end + end + return false; +end + +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Emote("Seilaen looks at you with eyes wide with fear. 'Who.. who are you? You.. You must help me!'"); + + elseif ( e.message:findi("help") ) then + e.self:Say("The forest, it.. I can feel it looking at me.. following me! Oh, I just want to leave and go!"); + + elseif ( e.message:findi("following") ) then + e.self:Say("I don't know what it could be, I was just walking home and.. and.. this doesn't look like the forest near my home at all! Oh, and I am wearing my mother's Locket of Escape.. but it won't work for me!"); + + elseif ( e.message:findi("locket") ) then + e.self:Say("My mother always carried this with her. I have no idea why I suddenly have it. Perhaps I can make it work for you, if you want me to?"); + + elseif ( e.message:findi("want") ) then + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(DEYID_TYPE) ) then + e.self:Say("Oh it worked! Are you still here? Oh, please, don't have left me. Come tell me you are still here!"); + eq.spawn2(DEYID_TYPE, 0, 0, 1011, 1081, 283.462, 59); + e.other:MovePC(204, 1213, 1103, 282, 187*2); + else + e.self:Say("Hmm.. It doesn't seem to want to work. Do you see Deyid?"); + end + + elseif ( e.message:findi("where") ) then + e.self:Say("What did you see?"); + + elseif ( e.message:findi("deyid") and eq.get_entity_list():IsMobSpawnedByNpcTypeID(DEYID_TYPE) ) then + e.self:Say("Ohh, that must be what is causing all this trouble! You all seem so brave. Maybe if you chop down Deyid the Twisted I will be able to go home? Will you please? If you have gathered together and are prepared, have your leaders step forward and tell me their readiness. Mother's Locket doesn't seem as bright as it was before. I fear I can only use it but a couple more times."); + + elseif ( e.message:findi("ready") and eq.get_entity_list():IsMobSpawnedByNpcTypeID(DEYID_TYPE) ) then + + if ( ports < 2 ) then + --e.self:Say(""); + ports = ports + 1; + MoveGroup(e.other, 150, 1213, 1103, 282, 187); + else + e.self:Say("Oh, I am sorry I can't make it work any more! I do hope those that are up on the plateau will be sufficient to overcome the big tree!"); + end + end +end + +function event_signal(e) + if ( e.signal == 1 ) then + e.self:Shout("Oh thank you! Thank you! I don't feel the trees watching me anymore! And.. Let me try Mother's Locket again, I think it might work.."); + eq.depop_with_timer(); + + elseif ( e.signal == 2 ) then + if ( not ClientOnPlateau() ) then + ports = 0; + eq.debug("Deyid event reset", 1); + else + eq.set_timer("checkplateau", 600000); + end + end +end + +function event_spawn(e) + ports = 0; +end + +function event_timer(e) + if ( e.timer == "checkplateau" ) then + if ( not ClientOnPlateau() ) then + ports = 0; + eq.stop_timer("checkplateau"); + eq.debug("Deyid event reset", 1); + end + end +end diff --git a/ponightmare/The_Dreamkeeper.lua b/ponightmare/The_Dreamkeeper.lua new file mode 100644 index 0000000..6c8dcc5 --- /dev/null +++ b/ponightmare/The_Dreamkeeper.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 600000); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end diff --git a/ponightmare/Untel-Dak.lua b/ponightmare/Untel-Dak.lua new file mode 100644 index 0000000..01bb4eb --- /dev/null +++ b/ponightmare/Untel-Dak.lua @@ -0,0 +1,17 @@ +function event_combat(e) + if ( e.joined ) then + eq.set_timer("boundscheck", 3000); + else + eq.stop_timer("boundscheck"); + end +end + +function event_timer(e) + + if ( e.timer == "boundscheck" ) then + if ( e.self:GetY() > -1550 ) then + e.self:WipeHateList(); + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + end + end +end diff --git a/ponightmare/Vhaksiz_the_Shade.lua b/ponightmare/Vhaksiz_the_Shade.lua new file mode 100644 index 0000000..f6e5b8d --- /dev/null +++ b/ponightmare/Vhaksiz_the_Shade.lua @@ -0,0 +1,25 @@ +local x, y, z; + +function event_spawn(e) + x = e.self:GetX(); + y = e.self:GetY(); + z = e.self:GetZ(); +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("leashcheck", 3000); + else + eq.stop_timer("leashcheck"); + end +end + +function event_timer(e) + if ( e.timer == "leashcheck" ) then + if ( e.self:CalculateDistance(x, y, z) > 155 ) then + e.self:WipeHateList(); + e.self:GMMove(x, y, z, e.self:GetSpawnPointH()); + e.self:CastSpell(2830, e.self:GetID()); + end + end +end diff --git a/ponightmare/a_blighted_treant.lua b/ponightmare/a_blighted_treant.lua new file mode 100644 index 0000000..51c5eda --- /dev/null +++ b/ponightmare/a_blighted_treant.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 100000); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end diff --git a/ponightmare/a_corrupt_treant.lua b/ponightmare/a_corrupt_treant.lua new file mode 100644 index 0000000..51c5eda --- /dev/null +++ b/ponightmare/a_corrupt_treant.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 100000); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end diff --git a/ponightmare/a_foreboding_tree.lua b/ponightmare/a_foreboding_tree.lua new file mode 100644 index 0000000..04037f8 --- /dev/null +++ b/ponightmare/a_foreboding_tree.lua @@ -0,0 +1,15 @@ +function event_signal(e) + + if ( e.signal == 1 ) then + + e.self:SetAppearance(3); + eq.set_timer("depop", 3600000); + + end +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end diff --git a/ponightmare/a_rapacious_hatchling.lua b/ponightmare/a_rapacious_hatchling.lua new file mode 100644 index 0000000..9d0d809 --- /dev/null +++ b/ponightmare/a_rapacious_hatchling.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 300000); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end diff --git a/ponightmare/a_voracious_hatchling.lua b/ponightmare/a_voracious_hatchling.lua new file mode 100644 index 0000000..9d0d809 --- /dev/null +++ b/ponightmare/a_voracious_hatchling.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 300000); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end diff --git a/ponightmare/an_abhorrent_hatchling.lua b/ponightmare/an_abhorrent_hatchling.lua new file mode 100644 index 0000000..9d0d809 --- /dev/null +++ b/ponightmare/an_abhorrent_hatchling.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 300000); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end diff --git a/ponightmare/encounters/Maze.lua b/ponightmare/encounters/Maze.lua new file mode 100644 index 0000000..0e72da6 --- /dev/null +++ b/ponightmare/encounters/Maze.lua @@ -0,0 +1,548 @@ +local GOVERNOR_TYPE = 204458; -- Maze_Checker +local THELIN_OUTSIDE_TYPE = 204070; -- Thelin_Poxbourne +local THELIN_INSIDE_TYPE = 204486; -- Thelin_Poxbourne +local TERRIS_TYPE = 204483; -- Terris_Thule +local NIGHTMARISH_TYPE = 204487; -- nightmarish_construct + +local BLOODTHIRSTY_TYPE = 204463; -- a_bloodthirsty_raven +local ABHORRENT_TYPE = 204476; -- an_abhorrent_nightstalker +local SINISTER_TYPE = 204472; -- a_sinister_nightstalker +local THULIAN_TYPE = 204473; -- a_thulian_nightstalker +local AGGRESSOR_TYPE = 204477; -- an_aggressor_arachnid +local CONSTRUCT_TYPE = 204464; -- a_construct_of_nightmares +local MOB_TYPES = { BLOODTHIRSTY_TYPE, ABHORRENT_TYPE, SINISTER_TYPE, THULIAN_TYPE, AGGRESSOR_TYPE, CONSTRUCT_TYPE }; + +local THELIN_SPAWNIDS = { 346002, 346001, 346000 }; -- note: this order is important; starts top to bottom +local BOUNDARIES = { + { t = 6550, l = -4000, r = -5100, b = 5550 }, + { t = 5550, l = -4000, r = -5100, b = 4550 }, + { t = 4550, l = -4000, r = -5100, b = 3500 } +}; +local PORT_COORDS = { + { x = -4466, y = 5642, z = 5 }, -- Maze Sending1 1159 + { x = -4466, y = 4642, z = 5 }, -- Maze Sending2 1160 + { x = -4466, y = 3642, z = 5 } -- Maze Sending3 1161 +}; + +--[[ + States: + 0 = Maze available for use + 1 = A group ported up but didn't start it + 2 = Thelin is wandering + 3 = Boss spawned; Thelin accepting dagger blade shard from boss + 4 = Thelin and Terris dialog complete; hailing Thelin ports you out + 5 = Thelin despawned; waiting for cleanup to allow reuse +]] +local instance = { + { rid = 0, ports = 0, state = 0, ids = {}, terris = nil }, + { rid = 0, ports = 0, state = 0, ids = {}, terris = nil }, + { rid = 0, ports = 0, state = 0, ids = {}, terris = nil } +}; + +function GetInstanceFromSpawnID(spawnId) + local i; + + if ( THELIN_SPAWNIDS[1] == spawnId ) then + i = 1; + elseif ( THELIN_SPAWNIDS[2] == spawnId ) then + i = 2; + elseif ( THELIN_SPAWNIDS[3] == spawnId ) then + i = 3; + end + return i; +end + +function ClientInTrial(trialNum) + local clientList = eq.get_entity_list():GetClientList(); + + if ( clientList ) then + for client in clientList.entries do + if ( client.valid and client:GetY() < BOUNDARIES[trialNum].t + and client:GetY() > BOUNDARIES[trialNum].b + and client:GetX() < BOUNDARIES[trialNum].l + and client:GetX() > BOUNDARIES[trialNum].r + ) then + if ( not client:GetGM() ) then + return true; + end + end + end + end + return false; +end + +function CheckRemoveFromTrial(trialNum, limit, zone, x, y, z, h) + local clientList = eq.get_entity_list():GetClientList(); + local n = 0; + + if ( clientList ) then + for client in clientList.entries do + if ( client.valid and client:GetY() < BOUNDARIES[trialNum].t + and client:GetY() > BOUNDARIES[trialNum].b + and client:GetX() < BOUNDARIES[trialNum].l + and client:GetX() > BOUNDARIES[trialNum].r + ) then + if ( not client:GetGM() ) then + n = n + 1; + if ( n > limit ) then + client:MovePC(zone, x, y, z, h*2); + if ( client:GetPet().valid and not client:GetPet():Charmed() ) then + client:GetPet():GMMove(x, y, z, 0); + end + if ( limit > 0 ) then + eq.debug(client:GetName().." removed from trial because client limit of "..limit.." exceeded"); + end + n = n - 1; + end + end + end + end + end +end + +function RemoveNearbyFromTrial(i, zone, dist, ox, oy, x, y, z, h) + local clientList = eq.get_entity_list():GetClientList(); + + if ( clientList ) then + for client in clientList.entries do + if ( client.valid and not client:GetGM() + and client:GetY() < (oy+dist) and client:GetY() > (oy-dist) + and client:GetX() < (ox+dist) and client:GetX() > (ox-dist) + ) then + client:MovePC(zone, x, y, z, h*2); + if ( client:GetPet().valid and not client:GetPet():Charmed() ) then + client:GetPet():GMMove(x, y, z, 0); + end + end + end + end +end + +function MoveGroup(zone, client, dist, x, y, z, h) + local group = client:GetGroup(); + local raid = client:GetRaid(); + + if ( group and group:GroupCount() > 0 ) then + for i = 0, 5 do + local member = group:GetMember(i):CastToClient(); + + if ( member.valid ) then + if ( member:CalculateDistance(client:GetX(), client:GetY(), client:GetZ()) < dist ) then + member:MovePC(zone, x, y, z, h*2); + if ( member:GetPet().valid ) then + if ( member:GetPet():Charmed() ) then + member:GetPet():BuffFadeByEffect(22); -- charm + else + member:GetPet():GMMove(x, y, z, 0); + end + end + eq.get_entity_list():RemoveFromHateLists(member); + end + end + end + + elseif ( raid and raid.valid ) then + local raidGroupID = raid:GetGroup(client:GetName()); + local member; + for i = 0, 71 do + member = raid:GetMember(i); + + if ( member and member.valid and raid:GetGroup(member:GetName()) == raidGroupID ) then + + if ( member:CalculateDistance(client:GetX(), client:GetY(), client:GetZ()) < dist ) then + member:MovePC(zone, x, y, z, h*2); + if ( member:GetPet().valid ) then + if ( member:GetPet():Charmed() ) then + member:GetPet():BuffFadeByEffect(22); -- charm + else + member:GetPet():GMMove(x, y, z, 0); + end + end + eq.get_entity_list():RemoveFromHateLists(member); + end + end + end + else + client:MovePC(zone, x, y, z, h*2); + + if ( client:GetPet().valid ) then + if ( client:GetPet():Charmed() ) then + client:GetPet():BuffFadeByEffect(22); -- charm + else + client:GetPet():GMMove(x, y, z, 0); + end + end + eq.get_entity_list():RemoveFromHateLists(client); + end +end + +function GovernorTimerEvent(e) + + if ( e.timer == "check" ) then + + -- check for rooms to reset + for i = 1, 3 do + if ( instance[i].state == 5 or instance[i].state == 1 ) then + if ( not ClientInTrial(i) ) then + instance[i].state = 0; + instance[i].rid = 0; + instance[i].ports = 0; + instance[i].ids = {}; + if ( instance[i].terris ) then + instance[i].terris:Depop(); + end + instance[i].terris = nil; + eq.debug("Hedge maze "..i.." now available"); + end + end + end + + -- check for too many players in rooms + for i = 1, 3 do + if ( instance[i].state > 0 ) then + CheckRemoveFromTrial(i, 18, 204, 1668, 282, 215, 0); + end + end + + -- stop timer if all rooms are state 0 + local stopTimer = true; + for i = 1, 3 do + if ( instance[i].state > 0 ) then + stopTimer = false; + end + end + if ( stopTimer ) then + eq.stop_timer(e.timer); + end + return; + end +end + +function ThelinWaypointEvent(e) + local i = GetInstanceFromSpawnID(e.self:GetSpawnPointID()); + local offset = 1000 - (i * 1000); + local nc; + + if ( e.wp == 26 ) then + e.self:Emote("kneels down and picks up a dagger hilt."); + eq.spawn2(SINISTER_TYPE, 0, 0, -4725, 6249+offset, 5, 0); + eq.spawn2(SINISTER_TYPE, 0, 0, -4726, 6244+offset, 5, 0); + nc = eq.spawn2(NIGHTMARISH_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + + elseif ( e.wp == 46 ) then + e.self:Emote("slowly picks up a shard of a dagger blade."); + eq.spawn2(ABHORRENT_TYPE, 0, 0, -4757, 6092+offset, 5, 0); + eq.spawn2(BLOODTHIRSTY_TYPE, 0, 0, -4755, 6091+offset, 5, 0); + eq.spawn2(BLOODTHIRSTY_TYPE, 0, 0, -4756, 6094+offset, 5, 0); + nc = eq.spawn2(NIGHTMARISH_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + + elseif ( e.wp == 57 ) then + e.self:Emote("picks up a the top half of a dagger blade."); + eq.spawn2(AGGRESSOR_TYPE, 0, 0, -4923, 5735+offset, 5, 0); + eq.spawn2(ABHORRENT_TYPE, 0, 0, -4921, 5735+offset, 5, 0); + eq.spawn2(SINISTER_TYPE, 0, 0, -4924,5735+offset, 5, 0); + eq.spawn2(THULIAN_TYPE, 0, 0, -4922, 5733+offset, 5, 0); + nc = eq.spawn2(NIGHTMARISH_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + + elseif ( e.wp == 71 ) then + e.self:Emote("picks up a dagger handle with a small hole in it."); + eq.spawn2(AGGRESSOR_TYPE, 0, 0, -4144, 5620+offset, 5, 0); + eq.spawn2(ABHORRENT_TYPE, 0, 0, -4142, 5620+offset, 5, 0); + eq.spawn2(THULIAN_TYPE, 0, 0, -4143, 5625+offset, 5, 0); + eq.spawn2(THULIAN_TYPE, 0, 0, -4140, 5625+offset, 5, 0); + eq.spawn2(BLOODTHIRSTY_TYPE, 0, 0, -4141, 5623+offset, 5, 0); + nc = eq.spawn2(NIGHTMARISH_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + + elseif ( e.wp == 88 ) then + e.self:Emote("picks up a small gem to place inside the handle."); + eq.spawn2(AGGRESSOR_TYPE, 0, 0, -4268, 5892+offset, 5, 0); + eq.spawn2(AGGRESSOR_TYPE, 0, 0, -4263, 5895+offset, 5, 0); + eq.spawn2(ABHORRENT_TYPE, 0, 0, -4265, 5890+offset, 5, 0); + eq.spawn2(SINISTER_TYPE, 0, 0, -4267, 5890+offset, 5, 0); + eq.spawn2(THULIAN_TYPE, 0, 0, -4264, 5896+offset, 5, 0); + eq.spawn2(BLOODTHIRSTY_TYPE, 0, 0, -4266, 5894+offset, 5, 0); + nc = eq.spawn2(NIGHTMARISH_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + + elseif ( e.wp == 99 ) then + e.self:Emote("kneels down and picks up a dagger blade tip."); + eq.spawn2(AGGRESSOR_TYPE, 0, 0, -4430, 6368+offset, 5, 0); + eq.spawn2(AGGRESSOR_TYPE, 0, 0, -4435, 6368+offset, 5, 0); + eq.spawn2(ABHORRENT_TYPE, 0, 0, -4433, 6365+offset, 6.75, 0); + eq.spawn2(SINISTER_TYPE, 0, 0, -4431, 6367+offset, 6.75, 0); + eq.spawn2(THULIAN_TYPE, 0, 0, -4434, 6369+offset, 6.75, 0); + eq.spawn2(BLOODTHIRSTY_TYPE, 0, 0, -4432, 6366+offset, 6.25, 0); + nc = eq.spawn2(NIGHTMARISH_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + + elseif ( e.wp == 106 ) then + eq.spawn2(CONSTRUCT_TYPE, 0, 0, -4550, 6118+offset, 5, 0); + instance[i].state = 3; + eq.set_timer("depop", 7200000); -- so maze doesn't get stuck in an unusuable state in case nobody turns in boss item + + elseif ( e.wp == 108 ) then + eq.set_timer("talk1", 5000); + end + + if ( nc ) then + table.insert(instance[i].ids, nc:GetID()); + end +end + +function ThelinTradeEvent(e) + local i = GetInstanceFromSpawnID(e.self:GetSpawnPointID()); + local item_lib = require("items"); + + if ( instance[i].state == 3 and item_lib.check_turn_in(e.self, e.trade, {item1 = 9258}) ) then -- Dagger Blade Shard + e.self:Emote("takes the final shard from you and places all of the pieces on the ground, with unseen hands the dagger moves together and fuses itself back together into one complete piece. Thelin picks it up and hands it to you."); + e.other:QuestReward(e.self, 0, 0, 0, 0, 9259); -- Thelin's Dagger + e.self:SetRunning(true); + e.self:ResumeWandering(); + e.self:SetSpecialAbility(35, 1); -- No Harm from Players on + e.self:SetSpecialAbility(24, 1); -- Will Not Aggro on + e.self:SetSpecialAbility(25, 1); -- Immune to Aggro on + + local offset = 1000 - (i * 1000); + instance[i].terris = eq.spawn2(TERRIS_TYPE, 0, 0, -4532, 5950+offset, 8, 0); + eq.set_timer("depop", 1500000); + end + + item_lib.return_items(e.self, e.other, e.trade); +end + + +function ThelinOutsideSayEvent(e) + + local qglobals = eq.get_qglobals(e.other); + + if ( not qglobals.thelin ) then + if ( e.message:findi("hail") ) then + e.other:Message(0, "Thelin Poxbourne screams loudly, and then falls asleep once again."); + end + return; + end + + if ( e.message:findi("hail") ) then + e.other:Message(0, "Thelin Poxbourne tells you, 'Who is it? Are you.. really there? You are! Please I beg of you to help me escape from this horrid place. Terris Thule is holding me here, she delights in the nightmares she sends me. To further torture me, she has offered me a pact. She has said that if I can retrieve my [dagger], then I am free to go. She does this only because she knows that I cannot retrieve it on my own.'"); + + elseif ( e.message:findi("dagger") ) then + e.other:Message(0, "Thelin Poxbourne tells you, 'She has taken the only thing that has brought me any joy in my life. She took it and broke it into seven pieces. She placed them deep within the labyrinth of my nightmare. I must retrieve it, will you [help] me. Please I beg of your mercy.'"); + + elseif ( e.message:findi("help") ) then + e.other:Message(0, "Thelin Poxbourne tells you, 'I do not know who you are, but I am thankful that you have stumbled upon me. I can bring you into my dream state, but my powers are limited so I can only handle eighteen at once. Please when you are prepared have the leader of each of your band of adventurers tell me they are ready.'"); + + elseif ( e.message:findi("ready") ) then + + -- Port-in logic is: If first group is in a raid, save that raid ID and only allow groups from that raid inside + -- If first group is NOT in a raid, allow other non-raid groups inside but not raided groups + -- No groups allowed in once waves start or the port limit is reached + local trial = 0; + local rid = 0; + local raid = e.other:GetRaid(); + local raidInTrial = false; + + --local group = client:GetGroup(); + --if ( not group.valid ) then + -- return; + --end + + if ( raid.valid ) then + rid = raid:GetID(); + end + + if ( rid > 0 ) then + for i = 1, 3 do + + if ( instance[i].rid == rid ) then + raidInTrial = true; + + if ( instance[i].state == 1 and instance[i].ports < 3 ) then + trial = i; -- raid is doing this trial + break; + end + end + end + + if ( not raidInTrial and trial == 0 ) then + for i = 1, 3 do + if ( instance[i].state == 0 and not ClientInTrial(i) ) then + trial = i; + break; + end + end + end + else + -- not in a raid + + -- try to fill a trial first + for i = 1, 3 do + if ( instance[i].rid == 0 and instance[i].state == 1 and instance[i].ports < 3 ) then + trial = i; + break; + end + end + + if ( trial == 0 ) then + for i = 1, 3 do + if ( instance[i].state == 0 and not ClientInTrial(i) ) then + trial = i; + break; + end + end + end + end + + if ( trial > 0 ) then + + e.self:Emote("closes his eyes and falls asleep immediately. He looks peaceful for a moment and then screams in agony!"); + + if ( instance[trial].state == 0 ) then + instance[trial].state = 1; + instance[trial].rid = rid; + + local gov = eq.get_entity_list():GetMobByNpcTypeID(GOVERNOR_TYPE); + eq.set_timer("check", 10000, gov); + + eq.debug("Hedge Maze "..trial.." starting", 1); + end + instance[trial].ports = instance[trial].ports + 1; + eq.debug("Porting group into hedge maze "..trial.."; raid ID == "..rid, 2); + MoveGroup(204, e.other, 150, PORT_COORDS[trial].x, PORT_COORDS[trial].y, PORT_COORDS[trial].z, 64); + else + e.self:Emote("groans in agony. 'I suddenly feel the grasp of Terris upon my heart. I must.. rest. Can you please come back after I have rested.'"); + end + end +end + +function ThelinInsideSayEvent(e) + local i = GetInstanceFromSpawnID(e.self:GetSpawnPointID()); + + if ( instance[i].state == 1 ) then + + if ( e.message:findi("hail") ) then + e.self:Say("Has everyone made it here safely? When you tell me I will seal off my dream and we can begin. We must be careful here, visions await around every turn. Are you ready to follow? I know where all the pieces of the dagger are, but I cannot collect them all on my own."); + + elseif ( e.message:findi("ready") ) then + e.self:Say("Please stay close, I know not what horror Terris will unleash upon us."); + e.self:CastToNPC():SetNoQuestPause(true); -- do not pause on say events + e.self:SetSpecialAbility(35, 0); -- No Harm from Players off + e.self:CastToNPC():SetCastRateDetrimental(35); -- this should really be implemented as an NPC database field + -- this NPC is a shadowknight but casts necro spells; needs to cast aggressively as well + e.self:AssignWaypoints(8+i); + instance[i].state = 2; + end + + elseif ( instance[i].state == 4 ) then + + if ( e.message:findi("hail") ) then + + local qglobals = eq.get_qglobals(e.other); + + if ( not qglobals.thelin ) then + e.other:Message(0, "Thelin Poxbourne tells you, 'I do not recognize your face. Are you a vision sent by Terris?! Begone from my thoughts and begone from my dreams!'"); + eq.set_global("cl_maze", "1", 5, "F"); + e.other:Message(15, "You have received a new checklist flag!"); + + else + e.other:Message(0, "Thelin Poxbourne tells you, 'Please destroy her for all that have had to endure her hideous visions.' Thelin closes his eyes and is swept away from his nightmare. The land of pure thought begins to vanish from around you."); + + if ( qglobals.thelin == "1" ) then + eq.set_global("thelin", "2", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + + if ( qglobals.cl_maze ) then + eq.delete_global("cl_maze"); + end + end + end + + e.self:CastSpell(1195, e.other:GetID()); -- Waking Moment + end + end +end + +function ThelinTimerEvent(e) + local i = GetInstanceFromSpawnID(e.self:GetSpawnPointID()); + + if ( e.timer == "talk1" ) then + e.self:Say("Terris hear me now! I have done as you have called for. My beloved dagger is whole once again! Come now keep up your part of the bargain."); + instance[i].terris:Say("You fool! You did not earn this prize on your own! The contract that has been drawn is now invalid. You will never leave my grasp, prepare your soul for eternal torment!"); + eq.set_timer("talk2", 8000); + + elseif ( e.timer == "talk2" ) then + e.self:Say("Vile wench, I knew in the end it would come to this. You shall pay dearly for your injustice here."); + instance[i].terris:Emote("laughs heartily and then vanishes in a swirl of incorporeal mist."); + instance[i].terris:CastSpell(36, e.self:GetID()); -- Gate + eq.set_timer("talk3", 8000); + eq.set_timer("terrisdepop", 2000); + + elseif ( e.timer == "terrisdepop" ) then + instance[i].terris:Depop(); + instance[i].terris = nil; + + elseif ( e.timer == "talk3" ) then + e.self:Say("So then my hope is nearly lost. Take with you my dagger. Plunge it deep into her soulless heart. If I cannot escape from this plane under her rules, I shall make my own!"); + eq.set_timer("depop", 600000); + instance[i].state = 4; + eq.debug("Hedge Maze "..i.." success"); + + elseif ( e.timer == "depop" ) then + instance[i].state = 5; + eq.depop_with_timer(); + end + eq.stop_timer(e.timer); +end + +function ThelinDeathEvent(e) + local i = GetInstanceFromSpawnID(e.self:GetSpawnPointID()); + + local mob; + for _, id in ipairs(instance[i].ids) do + mob = eq.get_entity_list():GetNPCByID(id); + if ( mob and mob.valid ) then + mob:CastSpell(3073, id); -- Banishment of Nightmares + end + end + -- have to remove players this way because Banishment doesn't work since it's flagged a beneficial spell + RemoveNearbyFromTrial(i, 204, 100, e.self:GetX(), e.self:GetY(), 1668, 282, 213, 255); + instance[i].state = 5; + eq.debug("Hedge Maze "..i.." failed"); +end + +function MobSpawnEvent(e) + eq.set_timer("depop", 1200000); +end + +function MobTimerEvent(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function CombatEvent(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + + eq.register_npc_event("Maze", Event.timer, GOVERNOR_TYPE, GovernorTimerEvent); + + eq.register_npc_event("Maze", Event.timer, THELIN_INSIDE_TYPE, ThelinTimerEvent); + eq.register_npc_event("Maze", Event.waypoint_arrive, THELIN_INSIDE_TYPE, ThelinWaypointEvent); + eq.register_npc_event("Maze", Event.trade, THELIN_INSIDE_TYPE, ThelinTradeEvent); + eq.register_npc_event("Maze", Event.death_complete, THELIN_INSIDE_TYPE, ThelinDeathEvent); + + eq.register_npc_event("Maze", Event.say, THELIN_OUTSIDE_TYPE, ThelinOutsideSayEvent); + eq.register_npc_event("Maze", Event.say, THELIN_INSIDE_TYPE, ThelinInsideSayEvent); + + eq.register_npc_event("Maze", Event.spawn, NIGHTMARISH_TYPE, MobSpawnEvent); + eq.register_npc_event("Maze", Event.timer, NIGHTMARISH_TYPE, MobTimerEvent); + + for _, id in ipairs(MOB_TYPES) do + eq.register_npc_event("Maze", Event.spawn, id, MobSpawnEvent); + eq.register_npc_event("Maze", Event.timer, id, MobTimerEvent); + eq.register_npc_event("Maze", Event.combat, id, CombatEvent); + end +end diff --git a/ponightmare/encounters/Mujaki.lua b/ponightmare/encounters/Mujaki.lua new file mode 100644 index 0000000..722893e --- /dev/null +++ b/ponightmare/encounters/Mujaki.lua @@ -0,0 +1,498 @@ +-- event starts 5 minutes after the first group ports in +-- Mujaki and riders respawn after 25 minutes of cumulative unaggro time after they become active/targetable +-- note: this script uses the terms 'instance' 'trial' and 'room' interchangeably +--[[ + video recording of Live event was: + 0:10 port-in + 5:10 singles + 7:11 singles + 9:12 singles + 11:13 doubles + 13:14 doubles + 15:15 doubles + 17:17 doubles + 19:18 singles + 21:18 boss (16:08 after wave 1) +]] + +local GOVERNOR_TYPE = 204455; -- Grave_Checker +local MUJAKI_TYPE = 204039; -- Mujaki_the_Devourer +local ETUMER_TYPE = 204036; -- Etumer +local SERVANT_TYPE = 204470; -- a_servant_of_Mujaki (level 58) +local RIDER_TYPE = 204471; -- a_servant_of_Mujaki (level 60) +local HELOT_TYPE = 204466; -- #a_helot_of_Mujaki + +local MUJAKI_SPAWNIDS = { 345997, 345998, 345999 }; -- note: this order is important; starts right to left +local BOUNDARIES = { + { t = -2000, l = -950, r = -2000, b = -3100 }, + { t = -3000, l = 100, r = -950, b = -4100 }, + { t = -2000, l = 1200, r = 100, b = -3100 }, +}; +local PORT_COORDS = { + { x = -1936, y = -2109, z = 170 }, + { x = -882, y = -3112, z = 170 }, + { x = 164, y = -2113, z = 170 }, +}; +local SPAWN_LOCS = { + { + { x = -1090, y = -2660, z = 149 }, + { x = -1462, y = -2985, z = 149 }, + { x = -1862, y = -2660, z = 149 }, + }, + { + { x = -37, y = -3660, z = 149 }, + { x = -409, y = -3985, z = 149 }, + { x = -809, y = -3660, z = 149 }, + }, + { + { x = 1006, y = -2660, z = 149 }, + { x = 634, y = -2985, z = 149 }, + { x = 234, y = -2660, z = 149 }, + }, +}; + +--[[ + states: + 0 = trial is reset/available + 1 = at least one group ported in but mobs not spawning yet + 2 = waves spawning + 3 = waves no longer spawning and boss is active + 4 = trial is over win or fail; script will clean-up and reset trial after all players leave +]] +local instance = { + { rid = 0, ports = 0, wave = 0, state = 0, ids = {} }, + { rid = 0, ports = 0, wave = 0, state = 0, ids = {} }, + { rid = 0, ports = 0, wave = 0, state = 0, ids = {} } +}; + +function ClientInTrial(trialNum) + local clientList = eq.get_entity_list():GetClientList(); + + if ( clientList ) then + for client in clientList.entries do + if ( client.valid and client:GetY() < BOUNDARIES[trialNum].t + and client:GetY() > BOUNDARIES[trialNum].b + and client:GetX() < BOUNDARIES[trialNum].l + and client:GetX() > BOUNDARIES[trialNum].r + ) then + if ( not client:GetGM() ) then + return true; + end + end + end + end + return false; +end + +function CheckRemoveFromTrial(trialNum, limit, zone, x, y, z, h) + local clientList = eq.get_entity_list():GetClientList(); + local n = 0; + + if ( clientList ) then + for client in clientList.entries do + if ( client.valid and client:GetY() < BOUNDARIES[trialNum].t + and client:GetY() > BOUNDARIES[trialNum].b + and client:GetX() < BOUNDARIES[trialNum].l + and client:GetX() > BOUNDARIES[trialNum].r + ) then + if ( not client:GetGM() ) then + n = n + 1; + if ( n > limit ) then + client:MovePC(zone, x, y, z, h*2); + eq.debug(client:GetName().." removed from trial because client limit of "..limit.." exceeded"); + n = n - 1; + end + end + end + end + end +end + +function MoveGroup(zone, client, dist, x, y, z, h) + local group = client:GetGroup(); + local raid = client:GetRaid(); + + if ( group and group:GroupCount() > 0 ) then + for i = 0, 5 do + local member = group:GetMember(i):CastToClient(); + + if ( member.valid ) then + if ( member:CalculateDistance(client:GetX(), client:GetY(), client:GetZ()) < dist ) then + member:MovePC(zone, x, y, z, h*2); + if ( member:GetPet().valid ) then + if ( member:GetPet():Charmed() ) then + member:GetPet():BuffFadeByEffect(22); -- charm + else + member:GetPet():GMMove(x, y, z, 0); + end + end + eq.get_entity_list():RemoveFromHateLists(member); + end + end + end + + elseif ( raid and raid.valid ) then + local raidGroupID = raid:GetGroup(client:GetName()); + local member; + for i = 0, 71 do + member = raid:GetMember(i); + + if ( member and member.valid and raid:GetGroup(member:GetName()) == raidGroupID ) then + + if ( member:CalculateDistance(client:GetX(), client:GetY(), client:GetZ()) < dist ) then + member:MovePC(zone, x, y, z, h*2); + if ( member:GetPet().valid ) then + if ( member:GetPet():Charmed() ) then + member:GetPet():BuffFadeByEffect(22); -- charm + else + member:GetPet():GMMove(x, y, z, 0); + end + end + eq.get_entity_list():RemoveFromHateLists(member); + end + end + end + else + client:MovePC(zone, x, y, z, h*2); + + if ( client:GetPet().valid ) then + if ( client:GetPet():Charmed() ) then + client:GetPet():BuffFadeByEffect(22); -- charm + else + client:GetPet():GMMove(x, y, z, 0); + end + end + eq.get_entity_list():RemoveFromHateLists(client); + end +end + +function GovernorTimerEvent(e) + + if ( e.timer == "check" ) then + + -- check for rooms to reset + for i = 1, 3 do + if ( instance[i].state == 4 ) then + if ( not ClientInTrial(i) ) then + eq.get_entity_list():GetSpawnByID(MUJAKI_SPAWNIDS[i]):SetTimer(1); + instance[i].state = 0; + instance[i].rid = 0; + instance[i].wave = 0; + instance[i].ports = 0; + instance[i].ids = {}; + eq.debug("Mujaki room "..i.." now available"); + end + end + end + + -- check for too many players in rooms + for i = 1, 3 do + if ( instance[i].state > 0 ) then + CheckRemoveFromTrial(i, 24, 204, 1668, 282, 215, 0); + end + end + + -- stop timer if all rooms are state 0 + local stopTimer = true; + for i = 1, 3 do + if ( instance[i].state > 0 ) then + stopTimer = false; + end + end + if ( stopTimer ) then + eq.stop_timer("check"); + end + return; + end + + local i = e.timer:sub(-1, -1); -- get last string character + i = tonumber(i); + + if ( not i ) then + eq.debug("error: could not get instance ID from event string ("..e.timer..")", 1); + return; + end + + if ( e.timer == "wave1" or e.timer == "wave2" or e.timer == "wave3" ) then + + if ( instance[i].wave == 0 ) then + eq.stop_timer(e.timer); -- shouldn't have to do this but it was bugging out for some reason without it + eq.set_timer(e.timer, 120000); + instance[i].state = 2; + + elseif ( instance[i].wave == 8 ) then + instance[i].state = 3; + eq.stop_timer(e.timer); + ActivateBoss(i); + eq.debug("Boss active in Mujaki room "..i, 2); + return; + end + instance[i].wave = instance[i].wave + 1; + SpawnWave(i); + eq.debug("Mujaki room "..i.." wave "..instance[i].wave, 2); + if ( instance[i].wave > 3 and instance[i].wave < 8 ) then + eq.set_timer("double"..i, 3000); + end + + elseif ( e.timer == "double1" or e.timer == "double2" or e.timer == "double3" ) then + eq.stop_timer(e.timer); + SpawnWave(i); + end +end + +function ActivateBoss(i) + local elist = eq.get_entity_list(); + + local mujaki = elist:GetSpawnByID(MUJAKI_SPAWNIDS[i]):GetNPC(); + if ( not mujaki.valid or mujaki:GetHP() < 1 ) then + eq.debug("Error: Could not awaken Mujaki", 1); + return; + end + + mujaki:SetBodyType(3, false); -- make targetable (undead type) + mujaki:SetSpecialAbility(24, 0); -- Will Not Aggro off + mujaki:SetSpecialAbility(35, 0); -- No Harm from Players off + eq.set_timer("depop", 1500000, mujaki); + + local npc; + for id, spawnLoc in pairs(instance[i].ids) do + if ( spawnLoc == 4 ) then + npc = elist:GetNPCByID(id); + if ( npc.valid ) then + npc:SetBodyType(3, false); -- make targetable (undead type) + npc:SetSpecialAbility(24, 0); -- Will Not Aggro off + npc:SetSpecialAbility(35, 0); -- No Harm from Players off + eq.set_timer("depop", 1500000, npc); + end + end + end +end + +function SpawnWave(i) + local wave = instance[i].wave; + local loc, t, mob; + + local mujaki = eq.get_entity_list():GetSpawnByID(MUJAKI_SPAWNIDS[i]):GetNPC(); + if ( not mujaki.valid ) then + eq.debug("error: could not get mujaki mob object from spawn ID", 1); + return; + end + + for s = 1, 3 do + loc = SPAWN_LOCS[i][s]; + t = SERVANT_TYPE; + if ( math.random(100) < 6 and not eq.get_entity_list():IsMobSpawnedByNpcTypeID(HELOT_TYPE) ) then + t = HELOT_TYPE; + end + + mob = eq.spawn2(t, 0, 0, loc.x, loc.y, loc.z, 0); + instance[i].ids[mob:GetID()] = s; + mob:CastToNPC():MoveTo(mujaki:GetX(), mujaki:GetY() - 115, mujaki:GetZ(), -1, true); + end +end + +function EtumerSayEvent(e) + + if ( e.message:findi("hail") ) then + e.self:Emote("looks at you with wide, wild eyes. 'Who.. what.. who are you? If you are a sending from my brother, you will not take me so easily!'"); + + elseif ( e.message:findi("brother") ) then + e.self:Say("Mujaki! Haha! He.. He captured me and.. imprisoned me here as punishment for some supposed transgressions against him. Mujaki always was jealous of my own prowess and resentful of our fathers favor toward me. He has only further proven his weakness through trapping me with power granted to him by Terris Thule. Hmm, perhaps.."); + + elseif ( e.message:findi("perhaps") ) then + e.self:Say("Perhaps you could find some way to overwhelm Mujaki? I might be able to work an enchantment to transport you closer to my brother. I only feel I have the power to send twenty four of you, when you have formed rank please have the leaders of your groups let me know when you are ready."); + + elseif ( e.message:findi("ready") ) then + + -- Port-in logic is: If first group is in a raid, save that raid ID and only allow groups from that raid inside + -- If first group is NOT in a raid, allow other non-raid groups inside but not raided groups + -- No groups allowed in once waves start or the port limit is reached + local trial = 0; + local rid = 0; + local raid = e.other:GetRaid(); + local raidInTrial = false; + + --local group = client:GetGroup(); + --if ( not group.valid ) then + -- return; + --end + + if ( raid.valid ) then + rid = raid:GetID(); + end + + if ( rid > 0 ) then + for i = 1, 3 do + + if ( instance[i].rid == rid ) then + raidInTrial = true; + + if ( instance[i].state == 1 and instance[i].ports < 4 ) then + trial = i; -- raid is doing this trial + break; + end + end + end + + if ( not raidInTrial and trial == 0 ) then + for i = 1, 3 do + if ( instance[i].state == 0 and not ClientInTrial(i) + and eq.get_entity_list():GetSpawnByID(MUJAKI_SPAWNIDS[i]):GetNPC().valid + ) then + trial = i; + break; + end + end + end + else + -- not in a raid + + -- try to fill a trial first + for i = 1, 3 do + if ( instance[i].rid == 0 and instance[i].state == 1 and instance[i].ports < 4 ) then + trial = i; + break; + end + end + + if ( trial == 0 ) then + for i = 1, 3 do + if ( instance[i].state == 0 and not ClientInTrial(i) + and eq.get_entity_list():GetSpawnByID(MUJAKI_SPAWNIDS[i]):GetNPC().valid + ) then + trial = i; + break; + end + end + end + end + + if ( trial > 0 ) then + + if ( instance[trial].state == 0 ) then + instance[trial].state = 1; + instance[trial].wave = 0; + instance[trial].rid = rid; + + local gov = eq.get_entity_list():GetMobByNpcTypeID(GOVERNOR_TYPE); + eq.set_timer("wave"..trial, 120000, gov); + eq.set_timer("check", 10000, gov); + + eq.debug("Mujaki room "..trial.." starting", 1); + end + instance[trial].ports = instance[trial].ports + 1; + eq.debug("Porting group into Mujaki room "..trial.."; raid ID == "..rid, 2); + MoveGroup(204, e.other, 150, PORT_COORDS[trial].x, PORT_COORDS[trial].y, PORT_COORDS[trial].z, 64); + else + e.self:Say("I... I don't think I can muster the force to work this teleportation. Allow me to rest and return to me later, perhaps I can work it then."); + end + end +end + +function ServantSpawnEvent(e) + eq.set_timer("platform", 1000); +end + +function ServantTimerEvent(e) + if ( e.timer == "platform" and not e.self:IsEngaged() ) then + local i; + local s; + local mujaki; + if ( instance[1].ids[e.self:GetID()] ) then + i = 1; + elseif ( instance[2].ids[e.self:GetID()] ) then + i = 2; + elseif ( instance[3].ids[e.self:GetID()] ) then + i = 3; + end + if ( i ) then + s = instance[i].ids[e.self:GetID()]; + mujaki = eq.get_entity_list():GetSpawnByID(MUJAKI_SPAWNIDS[i]):GetNPC(); + end + + if ( s and mujaki and mujaki.valid and mujaki:CalculateDistance(e.self:GetX(), e.self:GetY(), e.self:GetZ()) < 150 ) then + local mx = mujaki:GetX(); + local my = mujaki:GetY(); + local mz = mujaki:GetZ(); + local x, y; + + if ( s == 1 ) then + x = mx + math.random(20, 60); + y = my + math.random(-20, 20); + elseif ( s == 2 ) then + x = mx + math.random(-20, 20); + y = my + math.random(-60, -20); + elseif ( s == 3 ) then + x = mx + math.random(-60, -20); + y = my + math.random(-20, 20); + end + + local rider = eq.spawn2(RIDER_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + rider:CastToNPC():MoveTo(x, y, mz - 5, -1, true); + instance[i].ids[rider:GetID()] = 4; + eq.depop(); + end + end +end + +function MujakiDeathEvent(e) + local spawnId = e.self:GetSpawnPointID(); + local i = 1; + + if ( MUJAKI_SPAWNIDS[2] == spawnId ) then + i = 2; + elseif ( MUJAKI_SPAWNIDS[3] == spawnId ) then + i = 3; + end + instance[i].state = 4; +end + +function CombatEvent(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function MujakiTimerEvent(e) + if ( e.timer == "depop" ) then + local spawnId = e.self:GetSpawnPointID(); + local i = 1; + + if ( MUJAKI_SPAWNIDS[2] == spawnId ) then + i = 2; + elseif ( MUJAKI_SPAWNIDS[3] == spawnId ) then + i = 3; + end + instance[i].state = 4; + + eq.depop_with_timer(); + eq.debug("Mujaki in room "..i.." depoped", 2); + end +end + +function RiderTimerEvent(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_encounter_load(e) + + eq.register_npc_event("Mujaki", Event.timer, GOVERNOR_TYPE, GovernorTimerEvent); + + eq.register_npc_event("Mujaki", Event.spawn, SERVANT_TYPE, ServantSpawnEvent); + eq.register_npc_event("Mujaki", Event.timer, SERVANT_TYPE, ServantTimerEvent); + eq.register_npc_event("Mujaki", Event.spawn, HELOT_TYPE, ServantSpawnEvent); + eq.register_npc_event("Mujaki", Event.timer, HELOT_TYPE, ServantTimerEvent); + + eq.register_npc_event("Mujaki", Event.combat, RIDER_TYPE, CombatEvent); + eq.register_npc_event("Mujaki", Event.combat, MUJAKI_TYPE, CombatEvent); + eq.register_npc_event("Mujaki", Event.timer, RIDER_TYPE, RiderTimerEvent); + eq.register_npc_event("Mujaki", Event.timer, MUJAKI_TYPE, MujakiTimerEvent); + + eq.register_npc_event("Mujaki", Event.death, MUJAKI_TYPE, MujakiDeathEvent); + + eq.register_npc_event("Mujaki", Event.say, ETUMER_TYPE, EtumerSayEvent); +end diff --git a/ponightmare/player.lua b/ponightmare/player.lua new file mode 100644 index 0000000..999f8c4 --- /dev/null +++ b/ponightmare/player.lua @@ -0,0 +1,14 @@ +function event_click_door(e) + local qglobals = eq.get_qglobals(e.self); + local door_id = e.door:GetDoorID(); + + if ( door_id == 59 ) then + if ( qglobals.thelin and (tonumber(qglobals.thelin) or 0) > 1 ) then + if ( e.self:HasZoneFlag(221) == false ) then + e.self:SetZoneFlag(221); + end + else + e.self:Message(13, "You lack the will to pass through this portal safely."); + end + end +end diff --git a/ponightmare/script_init.lua b/ponightmare/script_init.lua new file mode 100644 index 0000000..db164d1 --- /dev/null +++ b/ponightmare/script_init.lua @@ -0,0 +1,2 @@ +eq.load_encounter("Maze"); +eq.load_encounter("Mujaki"); diff --git a/postorms/Askr_the_Lost.lua b/postorms/Askr_the_Lost.lua new file mode 100644 index 0000000..c442a39 --- /dev/null +++ b/postorms/Askr_the_Lost.lua @@ -0,0 +1,196 @@ +-- Instead of using qglobals, tracking conversation status this way instead +-- Needs to reset on zoning which can't be done with qglobals +-- Sony has some sort of temporary character flag that deletes on zone-out +local stateTable = {}; -- key is player name, value is conversation state +local entries = 0; +local headTable = {}; -- remember who turned in a head; this persists after zoning + +local RESPONSES = { + "Askr looks up at you and when he does, you take note of the scraggly beard on his weather-worn face; the scent of ale permeates your senses and pushes you to look away slightly. In an apparent drunken stupor, Askr begins to speak with surprising clarity. 'Here to wash the windows and clean the flooring, are you? No? Well, you can't be much help then. And the likes of you obviously wouldn't be able to get rid of the massive problem we're having. Bah, says I. You can help me no more than any of these other vagrants. Leave me alone to my ale and my misery.'", + "Askr the Lost says 'Did you not hear me? If you're not here to help, then go elsewhere. I am so very busy... busy with ale, busy with misery... hah, that rhymed!'", + "Askr raises an eyebrow your way, as though he is becoming slightly irritated by your constant babble. He goes back to his drinking with hopes that you'll leave him alone long enough to drink in peace.", + "", + "The drunken stupor that Askr had been in earlier appears to vanish in an instant; a glimmer of hope now flashes in the depths of his eyes. 'This is the head of a giant... a storm giant from outside the caves.' Askr ponders what this revelation could mean. He mutters to himself, 'If it is possible that someone has indeed bested a giant here in the planes, then perhaps it is possible...' He looks back at you very sternly and asks, 'Tell me now and be truthful, was it you who severed the head of this giant from his body?'", + "Askr the Lost says 'Truly, I am amazed that someone of your caliber was able to do what I could not. I have been stuck in these desolate caves for so long, I had almost lost hope that I would ever find a way to get rid of those accursed giants. But you... you have been able to best at least one of them. It is reasonable to suggest that if you are able to dispatch one, you may be able to dispatch others. I need to know for sure if you are as capable an individual as it appears you are. This is very important, so are you paying attention?'", + "Askr the Lost says 'This place was once beautiful and serene, with the great Karana's showers falling day and night soothing the lands and the creatures that inhabit it. Alas, there was an invasion of a superior force -- the storm giants which you have encountered. They laid waste to the lands, burned down trees, and have caused so much havoc I don't even know what is to become of it. Originally, they came as one group and crossed the breadth of the land pillaging and plundering all that they could find. Over time, though, they grew apart and distinct factions grew around Mount Grenidor.' [continue]", + "Askr the Lost says 'To the south of Grenidor lay Srerendi, Shores of the Lost and the Srerendi storm giants. Born of the ocean and the cool air, they lay claim to the shores and the plains inland as their own. To the west of Grenidor lay Krendic, Sands of Chaos and the Krendic storm giants. They have skin that is thick as dirt and blend in well with their surroundings. To the north of the great mount lay Kelek`Vor, the Forest of Tears and the Kelek`Vor storm giants. They are born of the wood and take great pleasure in seeing it used to their own purposes.' [continue]", + "Askr the Lost says 'I must know if you are truly capable of defeating the storm giants that abound here. To do this, you must slay one of each of the three factions and return to me something specific to each tribe: from the Srerendi storm giants, return their shorn beard; from the Krendic storm giants, a piece of their rocky carcass; from the Kelek`Vor storm giants, the crest from their warrior garments. These three items will ensure that you indeed do have the ability to defeat the foul denizens that have seized control of these lands. When you have acquired the three of these items, seal them in this bag and return them to me, so that I know that you are indeed capable of fulfilling a hero's destiny.'", + "", + "Askr looks over the remnants of the storm giants in his hands then looks up at you with a glimmer of hope in his eyes. 'Then it's true! You have the means to push back the scourge of giants... you must go forth to the Bastion of Thunder and finish there what you have started here. It is imperative that you clear the forces of giants from the Bastion so that order can be restored to the thunderous reaches beyond.'", + "Askr the Lost says 'To be honest, I cannot say that it is entirely possible, what with the ferocity of the giants and their reluctance to leave the lands they now inhabit. From what I do know, each of the Leaders of each tribe has one piece to allow entrance into the Bastion of Thunder. When two of these pieces are combined, they form an esoteric medallion that allows instant passage to the thunderous plains beyond. If you can find and seal two pieces of the medallion in this bag, I will be able to forge them into the medallion that will help you on your journey.'", + "", + "Askr the Lost says 'You have retrieved the pieces! You are well on your way to pushing forth on your quest to return balance to the plains of thunder. The most difficult part lies before you... deep in the heart of Mount Grenidor, there is a tempest that rages on eternally. It is there that you must present your medallion to the skies above to be transported to the citadel of thunderous might. Take the medallion and go forth, then deliver these storm giants to their creator!'", + "Askr the Lost says 'A hearty welcome back to you, friend. You have the means to push back the scourge of giants... you must go forth to the Bastion of Thunder and finish there what you have started here. It is imperative that you clear the forces of giants from the Bastion so that order can be restored to the thunderous reaches beyond.'", + "Askr the Lost says 'You have returned to me, but for what purpose? You already have the way to the Bastion of Thunder, so please make haste there and rid the Bastion of those horrid storm giants! Only then may the balance that once ruled over these thunderous lands return to its rightful place.'", + "Askr points drunkenly towards the exit of the cave. 'Have you not seen the foul denizens of destruction outside? Hrmph! Going everywhere they please, pillaging, plundering... I'm lucky to have survived this long. Bah, it doesn't matter, there's nothing that anyone can do to stop them, and that is why I'm still stuck here with my *hic* potions.'", + "Askr the Lost says 'I was afraid you would not return to finish the noble story you had started! But now I see my worries were ill placed. You have proven yourself a worthy adversary to even the mightiest of foes, but your journey does not end here! Seek me out that which I require and let your story continue on its way to greatness!'", + "Askr the Lost says 'You did well defeating one giant, but you have yet to prove that you are able to best giants from each tribe. I bid you luck friend, but you must go forth before I can speak with you more.'", + "Askr merely glances at you with a questioning look, as though he doesn't know what that is to be used for. Perhaps you should speak with him to clarify.", +}; + +function event_timer(e) + -- periodocally check if players have left the zone, then clear their quest status if so + if ( e.timer == "checkreset" ) then + + local mob; + local elist = eq.get_entity_list(); + + for name, id in pairs(stateTable) do + + mob = elist:GetClientByName(name); + + if ( not mob or not mob.valid ) then + stateTable[name] = nil; + entries = entries - 1; + --eq.debug(name.." deleted from Askr the Lost conversation memory", 3); + end + end + end + if ( entries == 0 ) then + eq.stop_timer(e.timer); + --eq.debug("memory timer stopped for Askr the Lost", 3); + end +end + +function GetState(name, karana) + + local state = 1; + + if ( not stateTable[name] ) then + stateTable[name] = state; + + if ( entries == 0 ) then + eq.set_timer("checkreset", 15000); + --eq.debug("memory timer started for Askr the Lost", 3); + end + entries = entries + 1; + end + return stateTable[name]; +end + +function SetState(name, state) + stateTable[name] = state; +end + +function event_say(e) + + local name = e.other:GetName(); + local qglobals = eq.get_qglobals(e.other); + local karana = tonumber(qglobals.karana or 0); + if ( qglobals.zebuxoruk ) then + karana = 4; + end + local state = GetState(name, karana); + + if ( karana == 0 ) then + + if ( e.message:findi("hail") ) then + + if ( headTable[name] ) then + e.other:Message(0, RESPONSES[18]); + state = 8; + SetState(name, state); + end + + if ( state <= 3 ) then + e.other:Message(0, RESPONSES[state]); + SetState(name, state + 1); + end + + elseif ( e.message:findi("massive problem") ) then + e.other:Message(0, RESPONSES[17]); + + elseif ( e.message:findi("it was me") ) then + if ( state == 6 ) then + e.other:Message(0, RESPONSES[state]); + SetState(name, state + 1); + end + + elseif ( e.message:findi("paying attention") ) then + if ( state == 7 ) then + e.other:Message(0, RESPONSES[state]); + SetState(name, state + 1); + end + + elseif ( e.message:findi("yes") ) then + if ( state == 6 or state == 7 ) then + e.other:Message(0, RESPONSES[state]); + SetState(name, state + 1); + end + + elseif ( e.message:findi("continue") ) then + if ( state == 8 or state == 9 ) then + e.other:Message(0, RESPONSES[state]); + if ( state == 9 ) then + e.other:SummonCursorItem(17192); -- Askr's Bag of Verity + end + SetState(name, state + 1); + elseif ( state > 9 ) then + e.other:Message(0, RESPONSES[19]); + end + end + + elseif ( karana == 1 ) then + + if ( e.message:findi("hail") ) then + e.other:Message(0, RESPONSES[15]); + + elseif ( e.message:findi("bastion of thunder") ) then + e.other:Message(0, RESPONSES[12]); + e.other:SummonCursorItem(17192); -- Askr's Bag of Verity + SetState(name, state + 1); + end + + elseif ( karana >= 2 ) then + + if ( e.message:findi("hail") ) then + e.other:Message(0, RESPONSES[16]); + end + + end + +end + +function event_trade(e) + local karana = tonumber(eq.get_qglobals(e.other).karana or 0); + local item_lib = require("items"); + + if ( item_lib.check_turn_in(e.self, e.trade, { item1 = 28749 }) -- wind giant head + or item_lib.check_turn_in(e.self, e.trade, { item1 = 28781 }) -- desert giant head + or item_lib.check_turn_in(e.self, e.trade, { item1 = 28782 }) -- forest giant head + ) then + + e.other:Message(0, RESPONSES[5]); + e.other:QuestReward(e.self, 0, 0, 0, 0, 0, 1); + e.other:SummonCursorItem(11486); -- returns a 'Storm Giant Head' that doesn't work for turn-in + SetState(e.other:GetName(), 6); + headTable[e.other:GetName()] = true; + end + + if ( item_lib.check_turn_in(e.self, e.trade, { item1 = 11487 }) ) then -- Askr's Sealed Bag of Verity + + if ( karana == 0 ) then + e.other:Message(0, RESPONSES[11]); + e.other:QuestReward(e.self, 0, 0, 0, 0, 0, 1000); + eq.set_global("karana", "1", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + SetState(e.other:GetName(), 12); + end + end + + if ( item_lib.check_turn_in(e.self, e.trade, { item1 = 11488 }) ) then -- Esoteric Meld + + if ( karana == 1 ) then + e.other:QuestReward(e.self, 0, 0, 0, 0, 0, 10000); + eq.set_global("karana", "2", 5, "F"); + e.other:Message(15, "The mystical medallion given to you by Askr settles around your neck and then disappears into nothingness. There is no call for alarm, for the medallion is now a part of your soul."); + e.other:Message(0, RESPONSES[14]); + e.other:Message(15, "You have received a character flag!"); + else + e.other:Message(0, RESPONSES[20]); + e.other:SummonCursorItem(11488); + end + end + + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/postorms/Bittrik_the_Unkempt.lua b/postorms/Bittrik_the_Unkempt.lua new file mode 100644 index 0000000..f3a3e48 --- /dev/null +++ b/postorms/Bittrik_the_Unkempt.lua @@ -0,0 +1,92 @@ +-- Instead of using qglobals, tracking conversation status this way instead +-- Needs to reset on zoning which can't be done with qglobals +-- Sony has some sort of temporary character flag that deletes on zone-out +local stateTable = {}; -- key is player name, value is conversation status +local entries = 0; + +local RESPONSES = { + "Bittrik the Unkempt says 'Oh me oh my! A visitor! Pardon me for not cleaning up, but I wasn't expecting company so early! Bittrik's the name, stories are my game. Looking to unmask the secret of the Kingdom of Lok? I might indeed have that story tucked away somewhere. Perhaps you'd fancy a smaller story, one revolving around an ill-tempered giant? That one happens to be one of my favorites! Of course, there are the stories of raging Storms to be found through this land, which I know plenty about as well. So, what'll it be, friend?'", + "", + "Bittrik the Unkempt says 'Ah, you're interested in one of the most peculiar stories I know, eh? Most would say that the story is a fluke, derived from a crazed mind. We'll see what you think. Of course I'm sure you're aware of the fact that this place has been in existence long before any of our time. But, in the beginning, there were only a small population of beasties and creatures that lived in the plains, desert and forest. One day though, after a particularly nasty storm, a large mountain giant washed ashore. He was battered and beaten, weathered by the storm, and nearly dead.' [continue]", + "Bittrik the Unkempt says 'I'm sure you can believe that this massive creature felt slightly out of place, being so far from his mountainous homelands, however he took it upon himself to find suitable living areas in the region he was now in. His journey started in the Plains of Lost Souls, Srerendi; the mild trees and vegetation, while appealing, weren't enough to satiate his hunger for a land close to that of his home. The trees were sparsely packed, the wildlife was mundane, and he felt that the rivers that flowed through the plains were far too gloomy. Not only that, but he couldn't stand to be so close to the shipwreck that landed him here in the first place.' [continue]", + "Bittrik the Unkempt says 'Dissatisfied with the look and feel of the plains, the giant looked westward for greener pastures. As he walked through the hills making his way west, he thought back to days gone past, of his comrades in arms and his cohorts in exploration. He was known to be a strong and proud warrior, but he was not known to be the most friendly of giants, certainly not to outsiders and certainly not when he was outnumbered. The younger giants in the tribe thought of him as very ornery and somewhat short-tempered, yet very noble and well versed in the ways of the world. These things harked back to more pleasant times long before he arrived in this wretched place of vast storms.' [continue]", + "Bittrik the Unkempt says 'As he reminisced about days of yore, the ground under his feet changed from a pale green to that of blistering white sands. Rocks encased this deserted area, long forgotten except for the sparse collection of desert-going creatures. He was amazed at the sudden climate change he found; that rolling plains could twist and contort so quickly into a desert region puzzled him. One thing he was sure of, he wasn't going to live in a dry, overheated place like this. He decided he would go north to see if there was another climate change nearby, perhaps one that was more closely linked to his home climate in the mountains.' [continue]", + "Bittrik the Unkempt says 'He saw the scorched, burning sand below his feet and pondered what could do such a thing to this land. Had there been such severe storms that it caused all the vegetation and trees in this area to be swept away into nothing? Or was this a foreshadowing of events that would eventually engulf him and these lands in a shroud of death and demise? He shuddered at the questions rolling around in his mind; why was he so afraid of these questions anyway? He was a mighty warrior with decades of training and experience. He figured he was just being paranoid from being so far away from home and shrugged it off as just that -- paranoia.' [continue]", + "Bittrik the Unkempt says 'The longer he walked, the more he thought that this may be it; he thought that there was endless desert from here on out. After some time, he came upon a small oasis, filled with glistening water. He gulped down the water as though he had not had any for years. When he was thoroughly quenched, he stopped to think about the logic of such cool, clear water in the middle of a desert before finally realizing that there must be cooler lands nearby. He moved on through the heat, hoping that his next step would bring him to the edge of the next climate.' [continue]", + "Bittrik the Unkempt says 'He ran a few more steps when out of nowhere, he found himself in the middle of a densely packed, lush and fertile forest. He could hardly believe his eyes as he looked around at the tall trees and their very green leaves. He strolled through the forest glowing at the thought of having found a new home for himself, even though he was so far from the reaches of civilization. It was high time he started to build a place to live.' [continue]", + "Bittrik the Unkempt says 'He spent many weeks laboring away, cutting down nearby trees and turning them into lumber for a cabin. The end result was a modest cabin that he could live in without disturbing the peace and tranquility of the surrounding forest area. He was to live there for a long time, living among the forest and in peace... alone. That is until the Storms came, but that is another story altogether.' [continue]", + "Bittrik the Unkempt says 'That's all there is to the story of the ornery giant who lived in the forest. I happen to think that it's a wonderful story, but to each their own I guess. I have other stories, if you're interested though! Perhaps you'd like to hear about the Kingdom of Lok and the tribulations of a once proud land? Or maybe you'd like to be dragged into the stories of how the Storms came to be in these lands? Of course if you like, I can tell you the story of the ornery giant again. So what'll it be, friend?'", + "", + "Bittrik the Unkempt says 'Aha! You prefer a story of myth and legend. The story of Lok begins with a hero, as does any good story. In the days before time was time, when enchanted creatures roamed the land and created havoc at every stopping ground, there lived a group of beings that you now know as the frogloks. They were not always as heartless and thoughtless as they seem, and in fact were once a proud and dignified race and a cunning adversary for anyone that might try to defile their lands or trounce upon their good name.' [continue]", + "Bittrik the Unkempt says 'Centuries passed and king after king found his way to the throne of the mighty Kingdom of Lok. A few filled the role nobly, passing on the edicts of their ancestors and persuing a rich and honorable lifestyle for their people. But most were tyrannical in nature, oppressive and diabolical, mean-spirited and otherwise horrible kings. Yet it seemed, with each and every king that ruled and passed away, the Kingdom of Lok would not sway; it would remain ever-present for the world of Norrath to see in all its glory, always there to instill fear into the minds of any would-be aggressors.' [continue]", + "Bittrik the Unkempt says 'Little did the people of Lok know that there was an even more sinister character orchestrating the kingdom and its kings; little did they know that a very powerful wizard held control over the kingdom and used it as he pleased as a weapon of destruction against any and all who got in his way. Of course, he was also the reason the kingdom had lasted in the eyes of the world for so long. Year after year, he would strive to become the most powerful wizard in the world, sending armies out after those who might pose a threat to him and eliminating them. 'Krrovok klek Tor', they called him. Translated into common, it means 'Deliverer of Doom'; more and more the title given to this horrifying wizard became all too true.' [continue]", + "Bittrik the Unkempt says 'Then the day came when a hero was born to the people of Lok, shrouded in secrecy and hidden far away from the reaches of the Arch Mage. This Loknite was to be the savior of the kingdom; he was to grow strong and purge the evil wizard from the lands forever. For years, he was trained to be a holy knight, learning all that he could about discipline, the ways of the warrior, and the principles of knighthood. He grew powerful, but did not lose sight of the fact that he must follow the path of nobility, or else nothing would ever change in the kingdom.' [continue]", + "Bittrik the Unkempt says 'After so much training, the people's hero was finally ready to enter into their hearts. 'Drornok Tok Vo`Lok', or 'Noble Hero of Lok'; the people chanted this as he strode by them, the hope that he would bring evident on their faces, in their voices, and in their hearts. He knew that he was destined to bring order and peace back to Lok and to rid it of the wicked evil that had plagued it for so very long; he was making his trek to the Arch Mage's tower, and for better or for worse, he was not likely going to leave it.' [continue]", + "Bittrik the Unkempt says 'The tale of a hero is wrought with hardships, both great and small, and the same was true for Drornok Tok Vo`Lok. The closer he got to the towering stronghold of the mighty wizard, the easier it was for the Arch Mage to sense him and send his denizens forth to wreak mayhem on the lands of Lok. Alone, and without fear, Drornok Tok Vo`Lok looked to all that he had learned until now and found the strength to defeat the gruesome and loathsome minions of Krrovok klek Tor. He moved slowly but surely through the Kingdom of Lok, his dedication was tried, but true. From every nook and cranny of the kingdom, passers by would stop to wish him luck and safety on his journey.' [continue]", + "Bittrik the Unkempt says 'It seemed as if there was an aura of courage sprouting from every step Drornok took, bolstering his esteem, both within and from the citizens of the kingdom. His trek to the wizard tower turned from one of lonliness to that of heartfelt pride and overwhelming support from the lands of Lok. The maniacal wizard Krrovok knew that this hero of Lok would be his undoing; there was no amount of magic he could conjure that would quash the power that Drornok held with him now.' [continue]", + "Bittrik the Unkempt says 'Despite his best efforts, his minions were hardly slowing Drornok down. He wasn't about to give up his fight though, because if this peasant Loknite was to be the end of him, then he would surely be the death of this Loknite. He readied his tower with serpents and gangrenous rats, elementals and festering bats; he summoned forth the mightiest dragonite elemental he could muster, nearly exhausting his mental energies in the process. Then, as he waited for the Hero of Lok to make his way through the tower, he readied two final incantations to bestow upon the faithful champion.' [continue]", + "Bittrik the Unkempt says 'Drornok was careful as he came upon the massive tower. He avoided obvious traps set by the merciless wizard and battled any and all minions that had been laid before him. He twisted the serpents into knots, tossing them aside; rats knew no peril like that which Drornok instilled into them. The elementals crumbled to pieces from the might of his sword, and the bats felt the long corridor of everlasting unlife flow through them. All that lay between Drornok and the wizard now was a hideous beast, sewn of draconic spirit and born of ferocious, unrelenting hatred.' [continue]", + "Bittrik the Unkempt says 'The roar of the beast sent minor chills through the young hero's spine, yet nothing could shake his determination, not even the bone-shattering shrill of an undead dragonite spirit. A great battle was fought between the mighty dragon spirit and Drornok Tok Vo`Lok; the Lokian hero slashed and gouged at the dragon, all the while being pelted with fiery hot dragon breath. The battle raged on and on until the noble and holy prowess of Drornok shone through to defeat the monstrous beast. All that was left for him now was Krrovok klek Tor.' [continue]", + "Bittrik the Unkempt says 'The final steps to the top of the wizard's tower were slow, and they filled him with slight anxiety about his fate. However, as he stepped through the door, he saw nothing more than a weak, fledgling wizard sitting in a corner of the room. Drornok moved toward him, ready for any monster the wizard might throw at him, but when he got near, Krrovok fell to his knees and began chanting in an ancient dialect. It was clear to Drornok that Krrovok was sobbing while chanting, and figured him to be repenting his ways, in hope that he would spare the pitiful wretch's life.' [continue]", + "Bittrik the Unkempt says 'Alas, it was not to be, and the wizard finished his last two incantations, cursing Drornok to share the hatred and contempt for life that he had held for so long. He also cursed him to live out the rest of his days far from the reaches of the Lok kingdom, in a place where he would never be allowed to rule it, where he would never be allowed to lounge in the splendor of having bested the evil Krrovok. As he finished the incantations, he began to laugh hysterically, calling for Drornok to finish the deed that he had been brought up to do for so long.' [continue]", + "Bittrik the Unkempt says 'With one fell swoop, Drornok cleaved the wizards head from his shoulders and only then, in that brief, everlasting moment did he realize what he had done, that he had been cursed for eternity. His heart smoldered and burned within his chest as it turned from noble purity to wretched, black, vile despair. His skin cracked and peeled as he was sucked into the vastness of space, and finally onto the sullen land of storms. Deep within this very mount Grenidor was he set, to live out his life in anguish and without a kingdom to rule over. However, it wasn't long before he came to find an indigenous race of frogs in the new lands.' [continue]", + "Bittrik the Unkempt says 'The frogs were not like the Loknites of his former lands, but he figured that they could be molded and twisted to be his servants, his subjects. Over time, he turned them against any and all who would try to disturb his new kingdom, deep in the mountains of Storms, and found that he was indeed able to rule over a group of beings similar to himself. He would not be stranded for all of eternity in a place without being able to fulfill his destiny, and so it was that those frogs lived and died under his leadership.' [continue]", + "Bittrik the Unkempt says 'That, my friend, is the story of Drornok Tok Vo`Lok and the Kingdom of Lok. Some say it's true, claiming that they've heard the long lost King of Lok brooding deep within the caves of Grenidor, while others think it is nothing but a myth, passed down by great story tellers of yore. Would you care to hear another of my stories? Perhaps you'd like to hear about the cantankerously timid giant? Or would you like to be entranced by the stories of Storms that pervade these mighty lands? If you'd like to hear about the Kingdom of Lok, I can retell that to you as well, just let me know!'", + "", +}; + +function event_timer(e) + -- periodocally check if players have left the zone, then clear their quest status if so + if ( e.timer == "checkreset" ) then + + local mob; + local elist = eq.get_entity_list(); + + for name, id in pairs(stateTable) do + + mob = elist:GetClientByName(name); + + if ( not mob or not mob.valid ) then + stateTable[name] = nil; + entries = entries - 1; + --eq.debug(name.." deleted from "..e.self:GetCleanName().." conversation memory", 3); + end + end + end + if ( entries == 0 ) then + eq.stop_timer(e.timer); + --eq.debug("memory timer stopped for NPC "..e.self:GetCleanName(), 3); + end +end + +function event_say(e) + + local name = e.other:GetName(); + + if ( not stateTable[name] ) then + stateTable[name] = 1; + + if ( entries == 0 ) then + eq.set_timer("checkreset", 15000); + --eq.debug("memory timer started for NPC "..e.self:GetCleanName(), 3); + end + entries = entries + 1; + end + local state = stateTable[name]; + + if ( RESPONSES[state] ~= "" ) then + e.other:Message(0, RESPONSES[state]); + stateTable[name] = state + 1; + else + if ( e.message:findi("kingdom") ) then + state = 13; + e.other:Message(0, RESPONSES[state]); + stateTable[name] = state + 1; + + elseif ( e.message:findi("giant") ) then + state = 3; + e.other:Message(0, RESPONSES[state]); + stateTable[name] = state + 1; + end + end +end diff --git a/postorms/Dolshak_the_Ornery.lua b/postorms/Dolshak_the_Ornery.lua new file mode 100644 index 0000000..a5c8b95 --- /dev/null +++ b/postorms/Dolshak_the_Ornery.lua @@ -0,0 +1,22 @@ +function event_spawn(e) + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(210251) ) then -- Neffiken,_Lord_of_Kelek`Vor + eq.depop_with_timer(); + end +end + +function event_spawn(e) + eq.set_timer("depop1", 900000); + eq.set_timer("depop2", 4200000); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop1"); + else + eq.resume_timer("depop1"); + end +end + +function event_timer(e) + eq.depop_with_timer(); +end diff --git a/postorms/Krelk_the_Drifter.lua b/postorms/Krelk_the_Drifter.lua new file mode 100644 index 0000000..a146e14 --- /dev/null +++ b/postorms/Krelk_the_Drifter.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("does not move his eyes from the blazing fire in front of him. As you watch. you can see the flickering. glowing embers light up his face; the blaze jumps and snaps in his eyes. a sign that Krelk yearns for days long gone. You watch him for what seems like an eternity before you finally snap out of the daze and notice that he took no heed to your presence. It appears he is far too engulfed in the flame to respond."); + end +end diff --git a/postorms/Wembly_the_Forlorn.lua b/postorms/Wembly_the_Forlorn.lua new file mode 100644 index 0000000..c0c71e0 --- /dev/null +++ b/postorms/Wembly_the_Forlorn.lua @@ -0,0 +1,56 @@ +-- Alternate Access: Plane of Tactics + +function event_say(e) + if ( e.other:GetFaction(e.self) <= 4 ) then + if(e.message:findi("hail")) then + e.self:Emote("grumbles under his breath, 'Yes, yes, I see you there. No need for you to shout I can see you just fine! Now, what was I saying? Yes that's right... let me know when you are [done]."); + elseif(e.message:findi("done")) then + e.self:Say("Yes done! Weren't you paying attention? Once you've gathered all the pieces of the [key] bring it to me and I'll put them back together for you."); + elseif(e.message:findi("key")) then + e.self:Say("THE Key, you really are as thick skulled as you look. You [agree to help] me and you aren't even paying attention."); + elseif(e.message:findi("agree to help")) then + e.self:Say("You agree to help? Great! I haven't even told you what I needed yet, or why. It is very noble of you to offer me your assistance. I've been trapped here for a little too long, I washed up on the shore still [tied to the mast] of my ship. Wonder that I even survived the storm."); + elseif(e.message:findi("tied to the mast")) then + e.self:Say("The Diaku Raiders, filthy sort if you ask me. I was out on a shipping run, when Diaku attacked, they pillaged all of my goods, then tied me to the mast and left me floating a sea. Then the storm came and ate my ship, and I woke up here, I swear that I saw some [Diaku] washed up on the shore with me."); + elseif(e.message:findi("Diaku")) then + e.self:Say("The Diaku that attacked me! Pay attention for Karana's sake! You appear to be the fighting sort. You can help me kill the Diaku at their source in [Drunder]."); + elseif(e.message:findi("Drunder")) then + e.self:Say("Drunder! The Fortress of Zek, the Zeks don't trust any one mortal to have free access to the fortress. The Diaku come and go in fours, and four parts are needed for entry. Of course they won't part with them easily. If you find four, and bring me four, I can make the four into one, and with one, you can get into Drunder without three more. Then, with your one, you can kill all of them. I would do it myself, but with my bad knee and all. . ."); + end + else + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29216,item2 = 29217,item3 = 29218,item4 = 29219})) then + + if ( e.other:GetFaction(e.self) <= 4 ) then + + e.self:Say("What's this? Four pieces of a Diaku Emblem? Why ever would you give these to me? Well I think I can get them to fit back together. You know, while you have this, I would be quite happy if you would avenge the loss of my dear ship and kill every Diaku you find? Yes that would be very good indeed. Here is your key, and a key for all your companions as well."); + e.other:Faction(e.self,1609,5); -- Askr the Lost + e.other:Faction(e.self,1618,5); -- Storm Guardians + + --[[ note: this quest (and the others) adding keys to the entire group was added in the April 8 2003 patch + + local group = e.other:GetGroup(); + if ( group and group:GroupCount() > 0 ) then + for i = 0, 5 do + local member = group:GetMember(i):CastToClient(); + + if ( member.valid ) then + member:QuestReward(e.self,{itemid = 29215,exp = 150000}); + end + end + else + ]] + e.other:QuestReward(e.self,{itemid = 29215,exp = 150000}); + --end + else + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + end + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/postorms/a_confused_castaway.lua b/postorms/a_confused_castaway.lua new file mode 100644 index 0000000..1b66591 --- /dev/null +++ b/postorms/a_confused_castaway.lua @@ -0,0 +1,25 @@ +function event_spawn(e) + eq.set_timer("lie", 1000); +end + +function event_timer(e) + if ( e.timer == "lie" ) then + eq.stop_timer(e.timer); + e.self:SetAppearance(3); + end +end + +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Say("Wha... what happened? Where am I? This isn't the cave... And you, who are you? Why are you standing over me with that peculiar look on your face? I didn't do anything regrettable did I?"); + e.self:SetAppearance(0); + + elseif ( e.message:findi("yes") or e.message:findi("you did") ) then + e.self:Say("Oh no, I thought it was just a dream, a nightmare. All I saw was myself as a Srerendi Storm giant, dealing punishment to all interlopers of my domain. Deep down, I couldn't believe that it was me, but on the surface, I could feel the power, feel a force guiding me to be... to be evil. What did you say they called me?"); + + elseif ( e.message:findi("jeplak") ) then + e.self:Say("Right, Jeplak. Obviously I wasn't really him, but he's not far from here. I was merely a distraction for anyone who tried to push he and his tribe out of this place. There is another building behind this one that you might want to check for the real Jeplak. I apologize if I've caused any harm to anyone. Farewell, and good luck."); + eq.depop(); + end +end diff --git a/postorms/a_forgotten_traveler.lua b/postorms/a_forgotten_traveler.lua new file mode 100644 index 0000000..00329ca --- /dev/null +++ b/postorms/a_forgotten_traveler.lua @@ -0,0 +1,99 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.self:GetAppearance() == 3) then + e.other:Message(7,"Whoever this is, they seem to be asleep... or worse. It might be best to leave them alone for the time being."); + else + if(e.self:GetRace() == 1) then -- human + if(e.self:GetGender() == 0) then + e.self:Say("Hello there, stranger. I see you've had the misfortune of winding up stranded like we have here. What's that you say? You're not stranded? Well, that's news to me, for sure! Maybe there's a way out of this wretched place. You'd let us know if there was one, right? Right?!"); + else + e.self:Say("Oh my, I haven't seen you here before. Are you one of the new unfortunate souls that has been shipwrecked? What's that? Oh, I see... you're here on your own accord, not because you are stranded. Well, hopefully you can do something about the storms outside."); + end + elseif(e.self:GetRace() == 2) then -- barbarian + if(e.self:GetGender() == 0) then + e.self:Say("Graar! Who do you think you are sneaking up on me like that?! I'm sorry about that, I'm just a bit agitated with being stuck here like I am. I'm a mighty warrior, I should be out slaying beasts-a-plenty! Ah well, I don't suppose you have any word on the giants out yonder, do you? No? I thought not. I guess it's back to my dilegent cave watching."); + else + e.self:Say("You haven't by chance had any luck outside the cave have you? We've been trying for so long to make some progress, but we just seem to get pushed right back into the cave. Well, if you have any status updates, be sure to let Askr know."); + end + elseif(e.self:GetRace() == 3) then -- erudite + if(e.self:GetGender() == 0) then + e.self:Say("How a scholar like myself came to be in a place like this is dumbfounding. Had I but known, I would never have gotten on that ill-fated sea cruiser. To think that there are not even any scrolls here for me to peruse, I need something before I go MAD!"); + else + e.self:Say("I feel so alone here in these damp, dark caves. My mother always told me that I'd lose myself if I didn't follow the old ways. I guess she was right, because here I am. Maybe if the Storms could be beaten, we would be able to scour this place for some way out. As it is, we're stuck here until someone can do that dirty work."); + end + elseif(e.self:GetRace() == 4) then -- wood elf + if(e.self:GetGender() == 0) then + e.self:Say("I can't imagine that the Storms were put here by Karana. It just doesn't make sense for him to cause so much havoc when he is so peaceful by nature."); + else + e.self:Say("if only I had listened to the warnings. They said that there were storms here and not to come, but I didn't realize that the Storms were so aggressive. They even told me that there were several types of Storms, but I figured that if you've seen one, you've seen them all, right? Sigh..."); + end + elseif(e.self:GetRace() == 5) then -- high elf + if(e.self:GetGender() == 0) then + e.self:Emote("merely glaces at you with solemn eyes and goes back to his sulking."); + else + e.self:Say("My brother was stranded here long ago. I tried to come to find him, but ended up just getting myself lost as well. Now I can't seem to find him; I fear the worst has happened to him."); + end + elseif(e.self:GetRace() == 6) then -- dark elf + if(e.self:GetGender() == 0) then + e.self:Say("What could you possibly be looking at? Hmm?! Mind your own business!"); + else + e.self:Say("The dreams, they come and go, but they're always the same. The eternal storm amidst the Storms; what could it mean? If only I could find out, I might be able to rest peacefully at night."); + end + elseif(e.self:GetRace() == 7) then -- half elf + if(e.self:GetGender() == 0) then + e.self:Say("The Storms of the forest hide a secret. When the Storms have gone from the forest, the secret shall come out from the shadows to make itself known, or so they say."); + else + e.self:Say("There is a mighty tree city not far from here, or so I have heard. I don't know who or what lives there, but there may be an answer as to how to get out of here within those trees."); + end + elseif(e.self:GetRace() == 8) then -- dwarf + if(e.self:GetGender() == 0) then + e.self:Say("Hullo der, lass! Come te rescue us from the evil Storms, have ye?"); + else + e.self:Say("Hullo to ye! Have ye heard the one about the ancient hero, lost te the storms years and years ago? No? Too bad, neither have I."); + end + elseif(e.self:GetRace() == 9) then -- troll + if(e.self:GetGender() == 0) then + e.self:Say("Wy yu luk at me like dat? Me no hab nuthin, leav me alone!"); + else + e.self:Say("Wut yu want?"); + end + elseif(e.self:GetRace() == 10) then -- ogre + if(e.self:GetGender() == 0) then + e.self:Say("Dem Storms are bery bad! Me wud smoosh dem if me could, but me no can. Me thot me was big strong smoosher, but dem Storms are bigger smooshers den me."); + else + e.self:Say("Askr may be puny elfie, but he nice to us, help us find safetee frum the Storms."); + end + elseif(e.self:GetRace() == 11) then -- halfling + if(e.self:GetGender() == 0) then + e.self:Say("I bet you think I'm poor, stranded soul like the rest here? Have I got news for you, chum! I'm here on a crusade for Karana! I assure you, I won't be leaving any time soon!"); + else + e.self:Emote("shys away from you, as though she is not quite sure what you want with her."); + end + elseif(e.self:GetRace() == 12) then -- gnome + if(e.self:GetGender() == 0) then + e.self:Say("You, my friend, are a sight for sore eyes! I haven't seen anyone new in ages, and now... here you are! This brings me so much hope for my future. Now, if I could only figure out what I'm doing wrong with my key making, I might just find a way out of this place."); + elseif(e.self:GetGender() == 1) then + if(e.other:GetGender() == 0) then + e.self:Say("Well hello there, cutie! It's so rare now days to see someone as strong and handsome as you around these parts. Most of the strangers that wash ashore stay in these caves and aren't much of a sight to look at. But you, you're different, and I like that. Take care of yourself, stranger."); + else + e.self:Say("Well, look at you. You must think you're pretty special to be all the way in here trying to usurp my men! I'll have you know that I'm the best at what I do, and no little rat-faced, know-nothing is going to come between me and my men!"); + end + end + elseif(e.self:GetRace() == 128) then -- iksar + if(e.self:GetGender() == 0) then + e.self:Say("I'm not sure how long I'll have to stay down here, but I hope it's not long before someone finds a way out of these caves."); + else + e.self:Say("Have you seen Krelk? He's a drifter, or at least that's what everyone calls him. He's got a truly sad story."); + end + elseif(e.self:GetRace() == 130) then -- vah shir + if(e.self:GetGender() == 0) then + e.self:Say("Someone was saying something there being a new visitor to the caves, but I'm not sure who they were talking about."); + else + e.self:Say("I've heard stories of a master of the mighty thunder that pours forth from the heavens. He plagues the trees with fire and destruction. Of course, I don't know if it's true or not, I haven't left the donfines of this cave since I was marooned here."); + end + else -- recuso + e.self:Say("I'm on lookout for any Storms, best leave me to my work."); + end + end + end +end \ No newline at end of file diff --git a/postorms/a_hurricane_nophtan.lua b/postorms/a_hurricane_nophtan.lua new file mode 100644 index 0000000..b4881d8 --- /dev/null +++ b/postorms/a_hurricane_nophtan.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("froaks."); + end +end diff --git a/postorms/a_storm_battered_traveler.lua b/postorms/a_storm_battered_traveler.lua new file mode 100644 index 0000000..236ab54 --- /dev/null +++ b/postorms/a_storm_battered_traveler.lua @@ -0,0 +1,116 @@ +local onetime + +function event_spawn(e) + onetime = 1; +end + +function event_say(e) + if(e.message:findi("hail")) then + if(e.self:GetAppearance() == 3) then + e.other:Message(7,"Whoever this is, they seem to be asleep... or worse. It might be best to leave them alone for the time being."); + else + if(e.self:GetRace() == 1) then -- human + if(e.self:GetGender() == 0) then + e.self:Say("Hello there, stranger. I see you've had the misfortune of winding up stranded like we have here. What's that you say? You're not stranded? Well, that's news to me, for sure! Maybe there's a way out of this wretched place. You'd let us know if there was one, right? Right?!"); + else + e.self:Say("Oh my, I haven't seen you here before. Are you one of the new unfortunate souls that has been shipwrecked? What's that? Oh, I see... you're here on your own accord, not because you are stranded. Well, hopefully you can do something about the storms outside."); + end + elseif(e.self:GetRace() == 2) then -- barbarian + if(e.self:GetGender() == 0) then + e.self:Say("Graar! Who do you think you are sneaking up on me like that?! I'm sorry about that, I'm just a bit agitated with being stuck here like I am. I'm a mighty warrior, I should be out slaying beasts-a-plenty! Ah well, I don't suppose you have any word on the giants out yonder, do you? No? I thought not. I guess it's back to my dilegent cave watching."); + else + e.self:Say("You haven't by chance had any luck outside the cave have you? We've been trying for so long to make some progress, but we just seem to get pushed right back into the cave. Well, if you have any status updates, be sure to let Askr know."); + end + elseif(e.self:GetRace() == 3) then -- erudite + if(e.self:GetGender() == 0) then + e.self:Say("How a scholar like myself came to be in a place like this is dumbfounding. Had I but known, I would never have gotten on that ill-fated sea cruiser. To think that there are not even any scrolls here for me to peruse, I need something before I go MAD!"); + else + e.self:Say("I feel so alone here in these damp, dark caves. My mother always told me that I'd lose myself if I didn't follow the old ways. I guess she was right, because here I am. Maybe if the Storms could be beaten, we would be able to scour this place for some way out. As it is, we're stuck here until someone can do that dirty work."); + end + elseif(e.self:GetRace() == 4) then -- wood elf + if(e.self:GetGender() == 0) then + e.self:Say("I can't imagine that the Storms were put here by Karana. It just doesn't make sense for him to cause so much havoc when he is so peaceful by nature."); + else + e.self:Say("if only I had listened to the warnings. They said that there were storms here and not to come, but I didn't realize that the Storms were so aggressive. They even told me that there were several types of Storms, but I figured that if you've seen one, you've seen them all, right? Sigh..."); + end + elseif(e.self:GetRace() == 5) then -- high elf + if(e.self:GetGender() == 0) then + e.self:Emote("merely glaces at you with solemn eyes and goes back to his sulking."); + else + e.self:Say("My brother was stranded here long ago. I tried to come to find him, but ended up just getting myself lost as well. Now I can't seem to find him; I fear the worst has happened to him."); + end + elseif(e.self:GetRace() == 6) then -- dark elf + if(e.self:GetGender() == 0) then + e.self:Say("What could you possibly be looking at? Hmm?! Mind your own business!"); + else + e.self:Say("The dreams, they come and go, but they're always the same. The eternal storm amidst the Storms; what could it mean? If only I could find out, I might be able to rest peacefully at night."); + end + elseif(e.self:GetRace() == 7) then -- half elf + if(e.self:GetGender() == 0) then + e.self:Say("The Storms of the forest hide a secret. When the Storms have gone from the forest, the secret shall come out from the shadows to make itself known, or so they say."); + else + e.self:Say("There is a mighty tree city not far from here, or so I have heard. I don't know who or what lives there, but there may be an answer as to how to get out of here within those trees."); + end + elseif(e.self:GetRace() == 8) then -- dwarf + if(e.self:GetGender() == 0) then + e.self:Say("Hullo der, lass! Come te rescue us from the evil Storms, have ye?"); + else + e.self:Say("Hullo to ye! Have ye heard the one about the ancient hero, lost te the storms years and years ago? No? Too bad, neither have I."); + end + elseif(e.self:GetRace() == 9) then -- troll + if(e.self:GetGender() == 0) then + e.self:Say("Wy yu luk at me like dat? Me no hab nuthin, leav me alone!"); + else + e.self:Say("Wut yu want?"); + end + elseif(e.self:GetRace() == 10) then -- ogre + if(e.self:GetGender() == 0) then + e.self:Say("Dem Storms are bery bad! Me wud smoosh dem if me could, but me no can. Me thot me was big strong smoosher, but dem Storms are bigger smooshers den me."); + else + e.self:Say("Askr may be puny elfie, but he nice to us, help us find safetee frum the Storms."); + end + elseif(e.self:GetRace() == 11) then -- halfling + if(e.self:GetGender() == 0) then + e.self:Say("I bet you think I'm poor, stranded soul like the rest here? Have I got news for you, chum! I'm here on a crusade for Karana! I assure you, I won't be leaving any time soon!"); + else + e.self:Emote("shys away from you, as though she is not quite sure what you want with her."); + end + elseif(e.self:GetRace() == 12) then -- gnome + if(e.self:GetGender() == 0) then + e.self:Say("You, my friend, are a sight for sore eyes! I haven't seen anyone new in ages, and now... here you are! This brings me so much hope for my future. Now, if I could only figure out what I'm doing wrong with my key making, I might just find a way out of this place."); + elseif(e.self:GetGender() == 1) then + if(e.other:GetGender() == 0) then + e.self:Say("Well hello there, cutie! It's so rare now days to see someone as strong and handsome as you around these parts. Most of the strangers that wash ashore stay in these caves and aren't much of a sight to look at. But you, you're different, and I like that. Take care of yourself, stranger."); + else + e.self:Say("Well, look at you. You must think you're pretty special to be all the way in here trying to usurp my men! I'll have you know that I'm the best at what I do, and no little rat-faced, know-nothing is going to come between me and my men!"); + end + end + elseif(e.self:GetRace() == 128) then -- iksar + if(e.self:GetGender() == 0) then + e.self:Say("I'm not sure how long I'll have to stay down here, but I hope it's not long before someone finds a way out of these caves."); + else + e.self:Say("Have you seen Krelk? He's a drifter, or at least that's what everyone calls him. He's got a truly sad story."); + end + elseif(e.self:GetRace() == 130) then -- vah shir + if(e.self:GetGender() == 0) then + e.self:Say("Someone was saying something there being a new visitor to the caves, but I'm not sure who they were talking about."); + else + e.self:Say("I've heard stories of a master of the mighty thunder that pours forth from the heavens. He plagues the trees with fire and destruction. Of course, I don't know if it's true or not, I haven't left the donfines of this cave since I was marooned here."); + end + else -- recuso + e.self:Say("I'm on lookout for any Storms, best leave me to my work."); + end + end + end +end + +function event_waypoint_depart(e) + if(e.wp > 0 and e.self:GetWaypointPause() > 0) then + if(onetime == 1) then + onetime = 2; + elseif(onetime == 2 and math.random(100) < 25) then + e.self:PauseWandering(480); + e.self:SetAppearance(3); + end + end +end \ No newline at end of file diff --git a/postorms/a_storm_drenched_nophtan.lua b/postorms/a_storm_drenched_nophtan.lua new file mode 100644 index 0000000..b4881d8 --- /dev/null +++ b/postorms/a_storm_drenched_nophtan.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("froaks."); + end +end diff --git a/postorms/a_tempest_torn_traveler.lua b/postorms/a_tempest_torn_traveler.lua new file mode 100644 index 0000000..00329ca --- /dev/null +++ b/postorms/a_tempest_torn_traveler.lua @@ -0,0 +1,99 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.self:GetAppearance() == 3) then + e.other:Message(7,"Whoever this is, they seem to be asleep... or worse. It might be best to leave them alone for the time being."); + else + if(e.self:GetRace() == 1) then -- human + if(e.self:GetGender() == 0) then + e.self:Say("Hello there, stranger. I see you've had the misfortune of winding up stranded like we have here. What's that you say? You're not stranded? Well, that's news to me, for sure! Maybe there's a way out of this wretched place. You'd let us know if there was one, right? Right?!"); + else + e.self:Say("Oh my, I haven't seen you here before. Are you one of the new unfortunate souls that has been shipwrecked? What's that? Oh, I see... you're here on your own accord, not because you are stranded. Well, hopefully you can do something about the storms outside."); + end + elseif(e.self:GetRace() == 2) then -- barbarian + if(e.self:GetGender() == 0) then + e.self:Say("Graar! Who do you think you are sneaking up on me like that?! I'm sorry about that, I'm just a bit agitated with being stuck here like I am. I'm a mighty warrior, I should be out slaying beasts-a-plenty! Ah well, I don't suppose you have any word on the giants out yonder, do you? No? I thought not. I guess it's back to my dilegent cave watching."); + else + e.self:Say("You haven't by chance had any luck outside the cave have you? We've been trying for so long to make some progress, but we just seem to get pushed right back into the cave. Well, if you have any status updates, be sure to let Askr know."); + end + elseif(e.self:GetRace() == 3) then -- erudite + if(e.self:GetGender() == 0) then + e.self:Say("How a scholar like myself came to be in a place like this is dumbfounding. Had I but known, I would never have gotten on that ill-fated sea cruiser. To think that there are not even any scrolls here for me to peruse, I need something before I go MAD!"); + else + e.self:Say("I feel so alone here in these damp, dark caves. My mother always told me that I'd lose myself if I didn't follow the old ways. I guess she was right, because here I am. Maybe if the Storms could be beaten, we would be able to scour this place for some way out. As it is, we're stuck here until someone can do that dirty work."); + end + elseif(e.self:GetRace() == 4) then -- wood elf + if(e.self:GetGender() == 0) then + e.self:Say("I can't imagine that the Storms were put here by Karana. It just doesn't make sense for him to cause so much havoc when he is so peaceful by nature."); + else + e.self:Say("if only I had listened to the warnings. They said that there were storms here and not to come, but I didn't realize that the Storms were so aggressive. They even told me that there were several types of Storms, but I figured that if you've seen one, you've seen them all, right? Sigh..."); + end + elseif(e.self:GetRace() == 5) then -- high elf + if(e.self:GetGender() == 0) then + e.self:Emote("merely glaces at you with solemn eyes and goes back to his sulking."); + else + e.self:Say("My brother was stranded here long ago. I tried to come to find him, but ended up just getting myself lost as well. Now I can't seem to find him; I fear the worst has happened to him."); + end + elseif(e.self:GetRace() == 6) then -- dark elf + if(e.self:GetGender() == 0) then + e.self:Say("What could you possibly be looking at? Hmm?! Mind your own business!"); + else + e.self:Say("The dreams, they come and go, but they're always the same. The eternal storm amidst the Storms; what could it mean? If only I could find out, I might be able to rest peacefully at night."); + end + elseif(e.self:GetRace() == 7) then -- half elf + if(e.self:GetGender() == 0) then + e.self:Say("The Storms of the forest hide a secret. When the Storms have gone from the forest, the secret shall come out from the shadows to make itself known, or so they say."); + else + e.self:Say("There is a mighty tree city not far from here, or so I have heard. I don't know who or what lives there, but there may be an answer as to how to get out of here within those trees."); + end + elseif(e.self:GetRace() == 8) then -- dwarf + if(e.self:GetGender() == 0) then + e.self:Say("Hullo der, lass! Come te rescue us from the evil Storms, have ye?"); + else + e.self:Say("Hullo to ye! Have ye heard the one about the ancient hero, lost te the storms years and years ago? No? Too bad, neither have I."); + end + elseif(e.self:GetRace() == 9) then -- troll + if(e.self:GetGender() == 0) then + e.self:Say("Wy yu luk at me like dat? Me no hab nuthin, leav me alone!"); + else + e.self:Say("Wut yu want?"); + end + elseif(e.self:GetRace() == 10) then -- ogre + if(e.self:GetGender() == 0) then + e.self:Say("Dem Storms are bery bad! Me wud smoosh dem if me could, but me no can. Me thot me was big strong smoosher, but dem Storms are bigger smooshers den me."); + else + e.self:Say("Askr may be puny elfie, but he nice to us, help us find safetee frum the Storms."); + end + elseif(e.self:GetRace() == 11) then -- halfling + if(e.self:GetGender() == 0) then + e.self:Say("I bet you think I'm poor, stranded soul like the rest here? Have I got news for you, chum! I'm here on a crusade for Karana! I assure you, I won't be leaving any time soon!"); + else + e.self:Emote("shys away from you, as though she is not quite sure what you want with her."); + end + elseif(e.self:GetRace() == 12) then -- gnome + if(e.self:GetGender() == 0) then + e.self:Say("You, my friend, are a sight for sore eyes! I haven't seen anyone new in ages, and now... here you are! This brings me so much hope for my future. Now, if I could only figure out what I'm doing wrong with my key making, I might just find a way out of this place."); + elseif(e.self:GetGender() == 1) then + if(e.other:GetGender() == 0) then + e.self:Say("Well hello there, cutie! It's so rare now days to see someone as strong and handsome as you around these parts. Most of the strangers that wash ashore stay in these caves and aren't much of a sight to look at. But you, you're different, and I like that. Take care of yourself, stranger."); + else + e.self:Say("Well, look at you. You must think you're pretty special to be all the way in here trying to usurp my men! I'll have you know that I'm the best at what I do, and no little rat-faced, know-nothing is going to come between me and my men!"); + end + end + elseif(e.self:GetRace() == 128) then -- iksar + if(e.self:GetGender() == 0) then + e.self:Say("I'm not sure how long I'll have to stay down here, but I hope it's not long before someone finds a way out of these caves."); + else + e.self:Say("Have you seen Krelk? He's a drifter, or at least that's what everyone calls him. He's got a truly sad story."); + end + elseif(e.self:GetRace() == 130) then -- vah shir + if(e.self:GetGender() == 0) then + e.self:Say("Someone was saying something there being a new visitor to the caves, but I'm not sure who they were talking about."); + else + e.self:Say("I've heard stories of a master of the mighty thunder that pours forth from the heavens. He plagues the trees with fire and destruction. Of course, I don't know if it's true or not, I haven't left the donfines of this cave since I was marooned here."); + end + else -- recuso + e.self:Say("I'm on lookout for any Storms, best leave me to my work."); + end + end + end +end \ No newline at end of file diff --git a/postorms/an_abandoned_wanderer.lua b/postorms/an_abandoned_wanderer.lua new file mode 100644 index 0000000..00329ca --- /dev/null +++ b/postorms/an_abandoned_wanderer.lua @@ -0,0 +1,99 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.self:GetAppearance() == 3) then + e.other:Message(7,"Whoever this is, they seem to be asleep... or worse. It might be best to leave them alone for the time being."); + else + if(e.self:GetRace() == 1) then -- human + if(e.self:GetGender() == 0) then + e.self:Say("Hello there, stranger. I see you've had the misfortune of winding up stranded like we have here. What's that you say? You're not stranded? Well, that's news to me, for sure! Maybe there's a way out of this wretched place. You'd let us know if there was one, right? Right?!"); + else + e.self:Say("Oh my, I haven't seen you here before. Are you one of the new unfortunate souls that has been shipwrecked? What's that? Oh, I see... you're here on your own accord, not because you are stranded. Well, hopefully you can do something about the storms outside."); + end + elseif(e.self:GetRace() == 2) then -- barbarian + if(e.self:GetGender() == 0) then + e.self:Say("Graar! Who do you think you are sneaking up on me like that?! I'm sorry about that, I'm just a bit agitated with being stuck here like I am. I'm a mighty warrior, I should be out slaying beasts-a-plenty! Ah well, I don't suppose you have any word on the giants out yonder, do you? No? I thought not. I guess it's back to my dilegent cave watching."); + else + e.self:Say("You haven't by chance had any luck outside the cave have you? We've been trying for so long to make some progress, but we just seem to get pushed right back into the cave. Well, if you have any status updates, be sure to let Askr know."); + end + elseif(e.self:GetRace() == 3) then -- erudite + if(e.self:GetGender() == 0) then + e.self:Say("How a scholar like myself came to be in a place like this is dumbfounding. Had I but known, I would never have gotten on that ill-fated sea cruiser. To think that there are not even any scrolls here for me to peruse, I need something before I go MAD!"); + else + e.self:Say("I feel so alone here in these damp, dark caves. My mother always told me that I'd lose myself if I didn't follow the old ways. I guess she was right, because here I am. Maybe if the Storms could be beaten, we would be able to scour this place for some way out. As it is, we're stuck here until someone can do that dirty work."); + end + elseif(e.self:GetRace() == 4) then -- wood elf + if(e.self:GetGender() == 0) then + e.self:Say("I can't imagine that the Storms were put here by Karana. It just doesn't make sense for him to cause so much havoc when he is so peaceful by nature."); + else + e.self:Say("if only I had listened to the warnings. They said that there were storms here and not to come, but I didn't realize that the Storms were so aggressive. They even told me that there were several types of Storms, but I figured that if you've seen one, you've seen them all, right? Sigh..."); + end + elseif(e.self:GetRace() == 5) then -- high elf + if(e.self:GetGender() == 0) then + e.self:Emote("merely glaces at you with solemn eyes and goes back to his sulking."); + else + e.self:Say("My brother was stranded here long ago. I tried to come to find him, but ended up just getting myself lost as well. Now I can't seem to find him; I fear the worst has happened to him."); + end + elseif(e.self:GetRace() == 6) then -- dark elf + if(e.self:GetGender() == 0) then + e.self:Say("What could you possibly be looking at? Hmm?! Mind your own business!"); + else + e.self:Say("The dreams, they come and go, but they're always the same. The eternal storm amidst the Storms; what could it mean? If only I could find out, I might be able to rest peacefully at night."); + end + elseif(e.self:GetRace() == 7) then -- half elf + if(e.self:GetGender() == 0) then + e.self:Say("The Storms of the forest hide a secret. When the Storms have gone from the forest, the secret shall come out from the shadows to make itself known, or so they say."); + else + e.self:Say("There is a mighty tree city not far from here, or so I have heard. I don't know who or what lives there, but there may be an answer as to how to get out of here within those trees."); + end + elseif(e.self:GetRace() == 8) then -- dwarf + if(e.self:GetGender() == 0) then + e.self:Say("Hullo der, lass! Come te rescue us from the evil Storms, have ye?"); + else + e.self:Say("Hullo to ye! Have ye heard the one about the ancient hero, lost te the storms years and years ago? No? Too bad, neither have I."); + end + elseif(e.self:GetRace() == 9) then -- troll + if(e.self:GetGender() == 0) then + e.self:Say("Wy yu luk at me like dat? Me no hab nuthin, leav me alone!"); + else + e.self:Say("Wut yu want?"); + end + elseif(e.self:GetRace() == 10) then -- ogre + if(e.self:GetGender() == 0) then + e.self:Say("Dem Storms are bery bad! Me wud smoosh dem if me could, but me no can. Me thot me was big strong smoosher, but dem Storms are bigger smooshers den me."); + else + e.self:Say("Askr may be puny elfie, but he nice to us, help us find safetee frum the Storms."); + end + elseif(e.self:GetRace() == 11) then -- halfling + if(e.self:GetGender() == 0) then + e.self:Say("I bet you think I'm poor, stranded soul like the rest here? Have I got news for you, chum! I'm here on a crusade for Karana! I assure you, I won't be leaving any time soon!"); + else + e.self:Emote("shys away from you, as though she is not quite sure what you want with her."); + end + elseif(e.self:GetRace() == 12) then -- gnome + if(e.self:GetGender() == 0) then + e.self:Say("You, my friend, are a sight for sore eyes! I haven't seen anyone new in ages, and now... here you are! This brings me so much hope for my future. Now, if I could only figure out what I'm doing wrong with my key making, I might just find a way out of this place."); + elseif(e.self:GetGender() == 1) then + if(e.other:GetGender() == 0) then + e.self:Say("Well hello there, cutie! It's so rare now days to see someone as strong and handsome as you around these parts. Most of the strangers that wash ashore stay in these caves and aren't much of a sight to look at. But you, you're different, and I like that. Take care of yourself, stranger."); + else + e.self:Say("Well, look at you. You must think you're pretty special to be all the way in here trying to usurp my men! I'll have you know that I'm the best at what I do, and no little rat-faced, know-nothing is going to come between me and my men!"); + end + end + elseif(e.self:GetRace() == 128) then -- iksar + if(e.self:GetGender() == 0) then + e.self:Say("I'm not sure how long I'll have to stay down here, but I hope it's not long before someone finds a way out of these caves."); + else + e.self:Say("Have you seen Krelk? He's a drifter, or at least that's what everyone calls him. He's got a truly sad story."); + end + elseif(e.self:GetRace() == 130) then -- vah shir + if(e.self:GetGender() == 0) then + e.self:Say("Someone was saying something there being a new visitor to the caves, but I'm not sure who they were talking about."); + else + e.self:Say("I've heard stories of a master of the mighty thunder that pours forth from the heavens. He plagues the trees with fire and destruction. Of course, I don't know if it's true or not, I haven't left the donfines of this cave since I was marooned here."); + end + else -- recuso + e.self:Say("I'm on lookout for any Storms, best leave me to my work."); + end + end + end +end \ No newline at end of file diff --git a/postorms/an_aimless_adventurer.lua b/postorms/an_aimless_adventurer.lua new file mode 100644 index 0000000..00329ca --- /dev/null +++ b/postorms/an_aimless_adventurer.lua @@ -0,0 +1,99 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.self:GetAppearance() == 3) then + e.other:Message(7,"Whoever this is, they seem to be asleep... or worse. It might be best to leave them alone for the time being."); + else + if(e.self:GetRace() == 1) then -- human + if(e.self:GetGender() == 0) then + e.self:Say("Hello there, stranger. I see you've had the misfortune of winding up stranded like we have here. What's that you say? You're not stranded? Well, that's news to me, for sure! Maybe there's a way out of this wretched place. You'd let us know if there was one, right? Right?!"); + else + e.self:Say("Oh my, I haven't seen you here before. Are you one of the new unfortunate souls that has been shipwrecked? What's that? Oh, I see... you're here on your own accord, not because you are stranded. Well, hopefully you can do something about the storms outside."); + end + elseif(e.self:GetRace() == 2) then -- barbarian + if(e.self:GetGender() == 0) then + e.self:Say("Graar! Who do you think you are sneaking up on me like that?! I'm sorry about that, I'm just a bit agitated with being stuck here like I am. I'm a mighty warrior, I should be out slaying beasts-a-plenty! Ah well, I don't suppose you have any word on the giants out yonder, do you? No? I thought not. I guess it's back to my dilegent cave watching."); + else + e.self:Say("You haven't by chance had any luck outside the cave have you? We've been trying for so long to make some progress, but we just seem to get pushed right back into the cave. Well, if you have any status updates, be sure to let Askr know."); + end + elseif(e.self:GetRace() == 3) then -- erudite + if(e.self:GetGender() == 0) then + e.self:Say("How a scholar like myself came to be in a place like this is dumbfounding. Had I but known, I would never have gotten on that ill-fated sea cruiser. To think that there are not even any scrolls here for me to peruse, I need something before I go MAD!"); + else + e.self:Say("I feel so alone here in these damp, dark caves. My mother always told me that I'd lose myself if I didn't follow the old ways. I guess she was right, because here I am. Maybe if the Storms could be beaten, we would be able to scour this place for some way out. As it is, we're stuck here until someone can do that dirty work."); + end + elseif(e.self:GetRace() == 4) then -- wood elf + if(e.self:GetGender() == 0) then + e.self:Say("I can't imagine that the Storms were put here by Karana. It just doesn't make sense for him to cause so much havoc when he is so peaceful by nature."); + else + e.self:Say("if only I had listened to the warnings. They said that there were storms here and not to come, but I didn't realize that the Storms were so aggressive. They even told me that there were several types of Storms, but I figured that if you've seen one, you've seen them all, right? Sigh..."); + end + elseif(e.self:GetRace() == 5) then -- high elf + if(e.self:GetGender() == 0) then + e.self:Emote("merely glaces at you with solemn eyes and goes back to his sulking."); + else + e.self:Say("My brother was stranded here long ago. I tried to come to find him, but ended up just getting myself lost as well. Now I can't seem to find him; I fear the worst has happened to him."); + end + elseif(e.self:GetRace() == 6) then -- dark elf + if(e.self:GetGender() == 0) then + e.self:Say("What could you possibly be looking at? Hmm?! Mind your own business!"); + else + e.self:Say("The dreams, they come and go, but they're always the same. The eternal storm amidst the Storms; what could it mean? If only I could find out, I might be able to rest peacefully at night."); + end + elseif(e.self:GetRace() == 7) then -- half elf + if(e.self:GetGender() == 0) then + e.self:Say("The Storms of the forest hide a secret. When the Storms have gone from the forest, the secret shall come out from the shadows to make itself known, or so they say."); + else + e.self:Say("There is a mighty tree city not far from here, or so I have heard. I don't know who or what lives there, but there may be an answer as to how to get out of here within those trees."); + end + elseif(e.self:GetRace() == 8) then -- dwarf + if(e.self:GetGender() == 0) then + e.self:Say("Hullo der, lass! Come te rescue us from the evil Storms, have ye?"); + else + e.self:Say("Hullo to ye! Have ye heard the one about the ancient hero, lost te the storms years and years ago? No? Too bad, neither have I."); + end + elseif(e.self:GetRace() == 9) then -- troll + if(e.self:GetGender() == 0) then + e.self:Say("Wy yu luk at me like dat? Me no hab nuthin, leav me alone!"); + else + e.self:Say("Wut yu want?"); + end + elseif(e.self:GetRace() == 10) then -- ogre + if(e.self:GetGender() == 0) then + e.self:Say("Dem Storms are bery bad! Me wud smoosh dem if me could, but me no can. Me thot me was big strong smoosher, but dem Storms are bigger smooshers den me."); + else + e.self:Say("Askr may be puny elfie, but he nice to us, help us find safetee frum the Storms."); + end + elseif(e.self:GetRace() == 11) then -- halfling + if(e.self:GetGender() == 0) then + e.self:Say("I bet you think I'm poor, stranded soul like the rest here? Have I got news for you, chum! I'm here on a crusade for Karana! I assure you, I won't be leaving any time soon!"); + else + e.self:Emote("shys away from you, as though she is not quite sure what you want with her."); + end + elseif(e.self:GetRace() == 12) then -- gnome + if(e.self:GetGender() == 0) then + e.self:Say("You, my friend, are a sight for sore eyes! I haven't seen anyone new in ages, and now... here you are! This brings me so much hope for my future. Now, if I could only figure out what I'm doing wrong with my key making, I might just find a way out of this place."); + elseif(e.self:GetGender() == 1) then + if(e.other:GetGender() == 0) then + e.self:Say("Well hello there, cutie! It's so rare now days to see someone as strong and handsome as you around these parts. Most of the strangers that wash ashore stay in these caves and aren't much of a sight to look at. But you, you're different, and I like that. Take care of yourself, stranger."); + else + e.self:Say("Well, look at you. You must think you're pretty special to be all the way in here trying to usurp my men! I'll have you know that I'm the best at what I do, and no little rat-faced, know-nothing is going to come between me and my men!"); + end + end + elseif(e.self:GetRace() == 128) then -- iksar + if(e.self:GetGender() == 0) then + e.self:Say("I'm not sure how long I'll have to stay down here, but I hope it's not long before someone finds a way out of these caves."); + else + e.self:Say("Have you seen Krelk? He's a drifter, or at least that's what everyone calls him. He's got a truly sad story."); + end + elseif(e.self:GetRace() == 130) then -- vah shir + if(e.self:GetGender() == 0) then + e.self:Say("Someone was saying something there being a new visitor to the caves, but I'm not sure who they were talking about."); + else + e.self:Say("I've heard stories of a master of the mighty thunder that pours forth from the heavens. He plagues the trees with fire and destruction. Of course, I don't know if it's true or not, I haven't left the donfines of this cave since I was marooned here."); + end + else -- recuso + e.self:Say("I'm on lookout for any Storms, best leave me to my work."); + end + end + end +end \ No newline at end of file diff --git a/postorms/encounters/Drornok.lua b/postorms/encounters/Drornok.lua new file mode 100644 index 0000000..862e80e --- /dev/null +++ b/postorms/encounters/Drornok.lua @@ -0,0 +1,136 @@ +local DRORNOK_TYPE = 210469; -- Drornok_Tok_Vo`Lok +local CAVE_TYPES = { + 210040, -- a_typhoon_amphan + 210047, -- a_tempest_toad + 210046, -- a_hurricane_loktole + 210084, -- a_vacillating_loktole +}; +local ADD_TYPES = { + 210476, -- a_hurricane_loktole + 210473, -- a_tempest_toad + 210474, -- a_typhoon_amphan + 210475, -- a_vacillating_loktole +}; +local SPAWNPOINT_IDS = { + 346427, 346434, 346440, 346445, + 346428, 346429, 346430, 346431, 346432, 346433, 346435, 346436, 346437, 346438, 346439, 346441, 346442, 346443, 346444, 346446, 346447, 346448, + 346449, 346450, 346451, 346452, 346453, 346454, 346455, 346456, 346457, 346458 +}; +local DRORNOK_ADDS = { + { -324, -208, -398.2648 }, + { 80, -424, -401.9691 }, + { 28, 78, -397.0002 }, + { -23, 83, -391.5327 }, + { -269, -7, -396.1164 }, + { -309, -285, -390.9721 }, + { -2, -462, -389.0407 }, + { 152, -376, -390.1432 }, + { -210, 50, -389.4285 }, + { -220, -398, -393.2427 }, + { -153, -461, -379.8 }, + { 232, -255, -389.2242 }, + { 180, -54, -394.2787 }, + { 79, 42, -392.4409 }, + { -312, -83, -400.3886 }, + { 221, -130, -403.1064 }, + { 117, 10, -395.7058 }, + { -150, 83, -400.3603 }, + { 214, -309, -403.1923 }, + { 232, -198, -398.561 }, +}; + +local killed = 0; + +function DeathEvent(e) + + local mySpawnID = e.self:GetSpawnPointID(); + for _, id in ipairs(SPAWNPOINT_IDS) do + if ( id == mySpawnID ) then + killed = killed + 1; -- only count non-script spawns + break; + end + end + + local elist = eq.get_entity_list(); + local mob; + for i, t in ipairs(CAVE_TYPES) do + mob = elist:GetNPCByNPCTypeID(t); + if ( mob.valid and mob:GetID() ~= e.self:GetID() ) then + return; -- don't spawn Drornok unless all these types are dead at same time + end + end + + if ( killed > 31 ) then + killed = 0; + eq.spawn_condition("postorms", 1, 0); -- disable respawns + eq.unique_spawn(DRORNOK_TYPE, 0, 0, -46, -180, -574, 0); + for _, coords in ipairs(DRORNOK_ADDS) do + eq.spawn2(eq.ChooseRandom(CAVE_TYPES[1], CAVE_TYPES[2], CAVE_TYPES[3], CAVE_TYPES[4]), 0, 0, coords[1], coords[2], coords[3], 0); + end + eq.debug("Drornok spawn"); + end +end + +function DrornokDeathEvent(e) + local elist = eq.get_entity_list(); + + for _, id in ipairs(SPAWNPOINT_IDS) do + elist:GetSpawnByID(id):SetTimer(3000000 + math.random(0, 600000)); + end + + eq.spawn_condition("postorms", 1, 1); -- enable respawns + killed = 0; + eq.debug("Drornok killed"); +end + +function DrornokCombatEvent(e) + if ( e.joined ) then + eq.set_timer("adds", 120000); + else + eq.stop_timer("adds"); + end +end + +function DrornokTimerEvent(e) + if ( e.timer == "adds" ) then + for i = 1, 4 do + eq.spawn2(eq.ChooseRandom(ADD_TYPES[1], ADD_TYPES[2], ADD_TYPES[3], ADD_TYPES[4]), 0, 0, e.self:GetX() + math.random(-30, 30), e.self:GetY() + math.random(-30, 30), e.self:GetZ() + 5, 0); + end + end +end + +function AddSpawnEvent(e) + eq.set_timer("depop", 180000); +end + +function AddCombatEvent(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function AddTimerEvent(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_encounter_load(e) + + for _, id in ipairs(CAVE_TYPES) do + eq.register_npc_event("Drornok", Event.death, id, DeathEvent); + end + for _, id in ipairs(ADD_TYPES) do + eq.register_npc_event("Drornok", Event.spawn, id, AddSpawnEvent); + eq.register_npc_event("Drornok", Event.combat, id, AddCombatEvent); + eq.register_npc_event("Drornok", Event.timer, id, AddTimerEvent); + end + + eq.register_npc_event("Drornok", Event.death, DRORNOK_TYPE, DrornokDeathEvent); + eq.register_npc_event("Drornok", Event.combat, DRORNOK_TYPE, DrornokCombatEvent); + eq.register_npc_event("Drornok", Event.timer, DRORNOK_TYPE, DrornokTimerEvent); + + eq.spawn_condition("postorms", 1, 1); -- enable respawns; in case zone went down with Drornok up +end diff --git a/postorms/encounters/Gurebk.lua b/postorms/encounters/Gurebk.lua new file mode 100644 index 0000000..867d58e --- /dev/null +++ b/postorms/encounters/Gurebk.lua @@ -0,0 +1,146 @@ +local GUREBK_TYPE = 210332; -- Gurebk,_Lord_of_Krendic +local ADDS_TYPES = { -- these are level 56 versions; not the same as zone wanderers + 210482, -- a_roving_scorpioco + 210483, -- a_noxious_scorponnis + 210485, -- a_roving_cactore + 210484, -- a_spined_cactoric +}; +local TRASH_GIANT_TYPES = { + 210035, -- a_jotna_fannsk (SK) + 210407, -- a_jotna_fannsk (warrior) + 210022, -- a_jotna_her_megir +}; +local killed = 0; +local adds = 0; +local gurebkActive = false; + +function TrashDeathCompleteEvent(e) + + local elist = eq.get_entity_list(); + + if ( not elist:IsMobSpawnedByNpcTypeID(GUREBK_TYPE) ) then + return; + end + + killed = killed + 1; + if ( killed < 34 ) then + return; + end + + for _, id in ipairs(TRASH_GIANT_TYPES) do + if ( elist:IsMobSpawnedByNpcTypeID(id) ) then + return; + end + end + + local gurebk = elist:GetNPCByNPCTypeID(GUREBK_TYPE); + + if ( gurebk and gurebk.valid ) then + gurebk:SetBodyType(1, false); -- make targetable + gurebk:SetSpecialAbility(24, 0); -- Will Not Aggro off + gurebk:SetSpecialAbility(35, 0); -- No Harm from Players off + eq.set_timer("untarget", 3600000, gurebk); + gurebkActive = true; + adds = 0; + eq.debug("Gurebk active"); + end +end + +-- this is actually how Sony does it; just depops them instantly if they spawn +function TrashSpawnEvent(e) + if ( gurebkActive ) then + eq.depop_with_timer(); + end +end + +function GurebkDeathEvent(e) + gurebkActive = false; + eq.debug("Gurebk killed"); +end + +function GurebkSpawnEvent(e) + gurebkActive = false; + killed = 0; +end + +function GurebkTimerEvent(e) + if ( e.timer == "adds" ) then + + if ( adds < 6 ) then + + local x = e.self:GetX(); + local y = e.self:GetY(); + local z = e.self:GetZ() + 5; + local rng = math.random(4, 6); + local spawned = 0; + + for i = adds+1, 6 do + eq.spawn2(eq.ChooseRandom(ADDS_TYPES[1], ADDS_TYPES[2], ADDS_TYPES[3], ADDS_TYPES[4]), 0, 0, x + math.random(-100, 100), y + math.random(-100, -50), z, 0); + spawned = spawned + 1; + if ( spawned == rng ) then + break; + end + end + adds = adds + spawned; + end + + elseif ( e.timer == "untarget" ) then + eq.stop_timer(e.timer); + e.self:SetBodyType(11, false); -- make untargetable + e.self:SetSpecialAbility(24, 1); -- Will Not Aggro on + e.self:SetSpecialAbility(35, 1); -- No Harm from Players on + killed = 0; + gurebkActive = false; + eq.debug("Gurebk inactive"); + end +end + +function GurebkCombatEvent(e) + if ( e.joined ) then + eq.pause_timer("untarget"); + eq.set_timer("adds", 20000); + else + eq.resume_timer("untarget"); + eq.stop_timer("adds"); + end +end + +function AddSpawnEvent(e) + eq.set_timer("depop", 170000); +end +function AddTimerEvent(e) + if ( e.timer == "depop" ) then + adds = adds - 1; + eq.depop(); + end +end +function AddCombatEvent(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end +function AddDeathEvent(e) + adds = adds - 1; +end + +function event_encounter_load(e) + + for _, id in ipairs(TRASH_GIANT_TYPES) do + eq.register_npc_event("Gurebk", Event.death_complete, id, TrashDeathCompleteEvent); + eq.register_npc_event("Gurebk", Event.spawn, id, TrashSpawnEvent); + end + + eq.register_npc_event("Gurebk", Event.death, GUREBK_TYPE, GurebkDeathEvent); + eq.register_npc_event("Gurebk", Event.spawn, GUREBK_TYPE, GurebkSpawnEvent); + eq.register_npc_event("Gurebk", Event.timer, GUREBK_TYPE, GurebkTimerEvent); + eq.register_npc_event("Gurebk", Event.combat, GUREBK_TYPE, GurebkCombatEvent); + + for _, id in ipairs(ADDS_TYPES) do + eq.register_npc_event("Gurebk", Event.spawn, id, AddSpawnEvent); + eq.register_npc_event("Gurebk", Event.timer, id, AddTimerEvent); + eq.register_npc_event("Gurebk", Event.combat, id, AddCombatEvent); + eq.register_npc_event("Gurebk", Event.death, id, AddDeathEvent); + end +end diff --git a/postorms/encounters/Jeplak.lua b/postorms/encounters/Jeplak.lua new file mode 100644 index 0000000..0ac4f02 --- /dev/null +++ b/postorms/encounters/Jeplak.lua @@ -0,0 +1,262 @@ +local FAKE_JEPLAK_TYPE = 210403; -- Jeplak,_Lord_of_Srerendi +local REAL_JEPLAK_TYPE = 210472; -- Jeplak,_Lord_of_Srerendi +local ADDS_TYPES = { + 210478, -- a_mangled_traveler + 210477, -- a_lost_soul +}; +local CASTAWAY_TYPE = 210461; -- a_confused_castaway +local TRASH_GIANT_TYPES = { + 210099, -- a_hleyta_menn (rogue) + 210419, -- a_hleyta_menn (wizard) note: bridge ones have a different type + 210056, -- a_hleytis_maor +}; + +local FAKE_SPAWN_ID = 346711; +local SPAWNPOINT_IDS1 = { -- spawns that must die for fake Jeplak to become active + 346713, 346719, 346722, 346725, 346728, 346729, 346731, 346732, 346733, 346734, + 346737, 346712, 346715, 346716, 346717, 346718, 346720, 346721, 346723, 346726, + 346727, 346736, 346751 +}; +local SPAWNPOINT_IDS2 = { -- spawns that must die for real Jeplak to become active + 346377, 346379, 346380, 346382, 346383, 346384, 346376, 346378, 346381, 346385, + 346730 +}; + +local killed = 0; +local fakeActive = false; +local realActive = false; + +function CountDead(spawns) + local n = 0; + local allDead = true; + local elist = eq.get_entity_list(); + + for _, id in ipairs(spawns) do + if ( elist:GetSpawnByID(id):GetNPC().valid ) then + allDead = false; + else + n = n + 1; + end + end + + return n, allDead; +end + +function IsCompoundNPC(id) + local elist = eq.get_entity_list(); + + for _, i in ipairs(SPAWNPOINT_IDS1) do + if ( id == i ) then + return 1; + end + end + for _, i in ipairs(SPAWNPOINT_IDS2) do + if ( id == i ) then + return 2; + end + end + return false; +end + +function ActivateJeplak(typeId) + local jeplak = eq.get_entity_list():GetNPCByNPCTypeID(typeId); + + if ( jeplak and jeplak.valid ) then + jeplak:SetBodyType(1, false); -- make targetable + jeplak:SetSpecialAbility(24, 0); -- Will Not Aggro off + jeplak:SetSpecialAbility(35, 0); -- No Harm from Players off + eq.set_timer("untarget", 3600000, jeplak); + + if ( typeId == FAKE_JEPLAK_TYPE ) then + fakeActive = true; + eq.debug("Fake Jeplak active"); + elseif ( typeId == REAL_JEPLAK_TYPE ) then + realActive = true; + eq.debug("Real Jeplak active"); + end + end +end + +function TrashDeathCompleteEvent(e) + + if ( IsCompoundNPC(e.self:GetSpawnPointID()) ) then + killed = killed + 1; + --eq.debug("jeplak guards killed == "..killed, 3); + end + + local elist = eq.get_entity_list(); + local isFakeUp = elist:IsMobSpawnedByNpcTypeID(FAKE_JEPLAK_TYPE); + local isRealUp = elist:IsMobSpawnedByNpcTypeID(REAL_JEPLAK_TYPE); + + if ( not isFakeUp and not isRealUp ) then + return; + end + + if ( isFakeUp and not fakeActive and killed >= 23 ) then + local n, allDead = CountDead(SPAWNPOINT_IDS1); + + if ( allDead ) then + + local spawned = 0; + local spawns = {}; + local mob, x, y, range; + while (spawned < 8) do + x = math.random(248, 442); + y = math.random(-2412, -2364); + range = true; + + for _, m in ipairs(spawns) do + if ( m:CalculateDistance(x, y, m:GetZ()) < 10 ) then + range = false; + break; + end + end + if ( range ) then + mob = eq.spawn2(eq.ChooseRandom(TRASH_GIANT_TYPES[1], TRASH_GIANT_TYPES[2], TRASH_GIANT_TYPES[3]), 0, 0, x, y, -450, 0); + table.insert(spawns, mob); + spawned = spawned + 1; + end + end + + ActivateJeplak(FAKE_JEPLAK_TYPE); + end + + elseif ( isRealUp and not realActive and killed >= 34 ) then + + local n, allDead = CountDead(SPAWNPOINT_IDS2); + if ( allDead ) then + ActivateJeplak(REAL_JEPLAK_TYPE); + end + end +end + +-- this is actually how Sony does it; just depops them instantly if they spawn +function TrashSpawnEvent(e) + + if ( realActive ) then + eq.depop_with_timer(); + return; + + elseif ( fakeActive ) then + + local mySpawnID = e.self:GetSpawnPointID(); + local elist = eq.get_entity_list(); + + for _, id in ipairs(SPAWNPOINT_IDS1) do + if ( id == mySpawnID ) then + eq.depop_with_timer(); + return; + end + end + end +end + +function FakeDeathEvent(e) + eq.unique_spawn(REAL_JEPLAK_TYPE, 0, 0, 348, -3159, -440.5, 0); + eq.debug("Real Jeplak spawn"); + eq.unique_spawn(CASTAWAY_TYPE, 0, 0, 346, -2513, -455.56, 0); + fakeActive = false; + + if ( killed >= 34 ) then + local n, allDead = CountDead(SPAWNPOINT_IDS2); + if ( allDead ) then + ActivateJeplak(REAL_JEPLAK_TYPE); + end + end +end +function RealDeathEvent(e) + realActive = false; +end + +function FakeSpawnEvent(e) + killed = 0; + fakeActive = false; + eq.depop_all(CASTAWAY_TYPE); +end + +function FakeTimerEvent(e) + if ( e.timer == "untarget" ) then + eq.stop_timer(e.timer); + e.self:SetBodyType(11, false); -- make untargetable + e.self:SetSpecialAbility(24, 1); -- Will Not Aggro on + e.self:SetSpecialAbility(35, 1); -- No Harm from Players on + killed = 0; + fakeActive = false; + eq.debug("Fake Jeplak inactive"); + end +end +function RealTimerEvent(e) + if ( e.timer == "adds" ) then + local x = e.self:GetX(); + local y = e.self:GetY(); + local z = e.self:GetZ() + 5; + for i = 2, 8 do + -- he seems to always spawn mobs to the north of him + eq.spawn2(eq.ChooseRandom(ADDS_TYPES[1], ADDS_TYPES[2]), 0, 0, x + math.random(-100, 100), y + math.random(100, 200), z, 128); + end + + elseif ( e.timer == "untarget" ) then + eq.stop_timer(e.timer); + eq.spawn_from_spawn2(FAKE_SPAWN_ID); + killed = 0; + realActive = false; + eq.debug("Real Jeplak despawn"); + eq.depop(); + end +end + +function FakeCombatEvent(e) + if ( e.joined ) then + eq.pause_timer("untarget"); + else + eq.resume_timer("untarget"); + end +end +function RealCombatEvent(e) + if ( e.joined ) then + eq.pause_timer("untarget"); + eq.set_timer("adds", 60000); + else + eq.resume_timer("untarget"); + eq.stop_timer("adds"); + end +end + +function AddsSpawnEvent(e) + eq.set_timer("depop", 57000); +end +function AddsTimerEvent(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end +function AddsCombatEvent(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + + for _, id in ipairs(TRASH_GIANT_TYPES) do + eq.register_npc_event("Jeplak", Event.death_complete, id, TrashDeathCompleteEvent); + eq.register_npc_event("Jeplak", Event.spawn, id, TrashSpawnEvent); + end + + eq.register_npc_event("Jeplak", Event.death, FAKE_JEPLAK_TYPE, FakeDeathEvent); + eq.register_npc_event("Jeplak", Event.spawn, FAKE_JEPLAK_TYPE, FakeSpawnEvent); + eq.register_npc_event("Jeplak", Event.timer, FAKE_JEPLAK_TYPE, FakeTimerEvent); + eq.register_npc_event("Jeplak", Event.combat, FAKE_JEPLAK_TYPE, FakeCombatEvent); + + eq.register_npc_event("Jeplak", Event.death, REAL_JEPLAK_TYPE, RealDeathEvent); + eq.register_npc_event("Jeplak", Event.timer, REAL_JEPLAK_TYPE, RealTimerEvent); + eq.register_npc_event("Jeplak", Event.combat, REAL_JEPLAK_TYPE, RealCombatEvent); + + for _, id in ipairs(ADDS_TYPES) do + eq.register_npc_event("Jeplak", Event.spawn, id, AddsSpawnEvent); + eq.register_npc_event("Jeplak", Event.timer, id, AddsTimerEvent); + eq.register_npc_event("Jeplak", Event.combat, id, AddsCombatEvent); + end +end diff --git a/postorms/encounters/MiniBosses.lua b/postorms/encounters/MiniBosses.lua new file mode 100644 index 0000000..e605ac9 --- /dev/null +++ b/postorms/encounters/MiniBosses.lua @@ -0,0 +1,48 @@ +local MINI_TYPES = { + 210027, -- Zertuken_the_Unyielding + 210033, -- Solnebk_the_Unruly + 210032, -- Pendubk_the_Turbulent + 210028, -- Paruek_the_Strong + 210026, -- Laruken_the_Rigid + 210029, -- Faruek_the_Bold +} +local STORM_TYPE = 210467; -- a_tumultuous_storm + +function MiniTimerEvent(e) + if ( e.timer == "storms" ) then + local x = e.self:GetX() + math.random(-75, 75); + local y = e.self:GetY() + math.random(-75, 75); + local z = e.self:GetZ() + 5; + local rng = math.random(7, 10); + + for i = 1, rng do + eq.spawn2(STORM_TYPE, 0, 0, x, y, z, 0); + end + end +end + +function MiniCombatEvent(e) + if ( e.joined ) then + eq.set_timer("storms", 60000); + else + eq.stop_timer("storms"); + end +end + +function StormSpawnEvent(e) + eq.set_timer("depop", 9000); +end + +function StormTimerEvent(e) + eq.depop(); +end + +function event_encounter_load(e) + + for _, id in ipairs(MINI_TYPES) do + eq.register_npc_event("MiniBosses", Event.timer, id, MiniTimerEvent); + eq.register_npc_event("MiniBosses", Event.combat, id, MiniCombatEvent); + end + eq.register_npc_event("MiniBosses", Event.spawn, STORM_TYPE, StormSpawnEvent); + eq.register_npc_event("MiniBosses", Event.timer, STORM_TYPE, StormTimerEvent); +end diff --git a/postorms/encounters/Neffiken.lua b/postorms/encounters/Neffiken.lua new file mode 100644 index 0000000..8bc0bf0 --- /dev/null +++ b/postorms/encounters/Neffiken.lua @@ -0,0 +1,160 @@ +local NEFFIKEN_TYPE = 210251; -- Neffiken,_Lord_of_Kelek`Vor +local TREE_TYPES = { + 210479, -- a_maligned_ent + 210480, -- a_manipulated_ent + 210481, -- a_restrained_ent +}; +local TRASH_GIANT_TYPES = { + 210038, -- an_irmin_fannsk + 210411, -- an_irmin_fannsk + 210015, -- an_irmin_her_megir +}; +local DOLSHAK_TYPE = 210468; +local DOLSHAK_SPAWNID = 369224; + +local killed = 0; +local trees = 0; +local neffikenActive = false; + +function TrashDeathCompleteEvent(e) + + local elist = eq.get_entity_list(); + + if ( not elist:IsMobSpawnedByNpcTypeID(NEFFIKEN_TYPE) ) then + return; + end + + killed = killed + 1; + if ( killed < 34 ) then + return; + end + + for _, id in ipairs(TRASH_GIANT_TYPES) do + if ( elist:IsMobSpawnedByNpcTypeID(id) ) then + return; + end + end + + local neffiken = elist:GetNPCByNPCTypeID(NEFFIKEN_TYPE); + + if ( neffiken and neffiken.valid ) then + neffiken:SetBodyType(1, false); -- make targetable + neffiken:SetSpecialAbility(24, 0); -- Will Not Aggro off + neffiken:SetSpecialAbility(35, 0); -- No Harm from Players off + eq.set_timer("untarget", 3600000, neffiken); + neffikenActive = true; + trees = 0; + eq.debug("Neffiken active"); + end +end + +-- this is actually how Sony does it; just depops them instantly if they spawn +function TrashSpawnEvent(e) + if ( neffikenActive ) then + eq.depop_with_timer(); + end +end + +function NeffikenDeathEvent(e) + neffikenActive = false; + eq.get_entity_list():GetSpawnByID(DOLSHAK_SPAWNID):SetTimer(math.random(900, 3600) * 1000); + eq.debug("Neffiken killed"); +end + +function NeffikenSpawnEvent(e) + neffikenActive = false; + eq.depop_with_timer(DOLSHAK_TYPE); + killed = 0; +end + +function NeffikenTimerEvent(e) + + if ( e.timer == "trees" ) then + if ( trees < 8 ) then + + local t, dist; + local sx = e.self:GetX(); + local sy = e.self:GetY(); + local sz = e.self:GetZ(); + local x, y; + local rng = math.random(5, 8); + local spawned = 0; + + while trees < 8 do + + x = sx + math.random(-100, 100); + y = sy - math.random(50, 100); + dist = e.self:CalculateDistance(x, y, sz); + + -- the trees seemed to always spawn to the south of him and kinda in a semi-circle-like pattern + if ( dist > 50 and dist < 100 ) then + t = eq.ChooseRandom(TREE_TYPES[1], TREE_TYPES[2], TREE_TYPES[3]); + eq.spawn2(t, 0, 0, x, y, sz + 5, 0); + trees = trees + 1; + spawned = spawned + 1; + if ( spawned == rng ) then + break; + end + end + end + end + + elseif ( e.timer == "untarget" ) then + eq.stop_timer(e.timer); + e.self:SetBodyType(11, false); -- make untargetable + e.self:SetSpecialAbility(24, 1); -- Will Not Aggro on + e.self:SetSpecialAbility(35, 1); -- No Harm from Players on + killed = 0; + neffikenActive = false; + eq.debug("Neffiken inactive"); + end +end + +function NeffikenCombatEvent(e) + if ( e.joined ) then + eq.pause_timer("untarget"); + eq.set_timer("trees", 35000); + else + eq.resume_timer("untarget"); + eq.stop_timer("trees"); + end +end + +function TreeSpawnEvent(e) + eq.set_timer("depop", 170000); +end +function TreeTimerEvent(e) + if ( e.timer == "depop" ) then + trees = trees - 1; + eq.depop(); + end +end +function TreeCombatEvent(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end +function TreeDeathEvent(e) + trees = trees - 1; +end + +function event_encounter_load(e) + + for _, id in ipairs(TRASH_GIANT_TYPES) do + eq.register_npc_event("Neffiken", Event.death_complete, id, TrashDeathCompleteEvent); + eq.register_npc_event("Neffiken", Event.spawn, id, TrashSpawnEvent); + end + for _, id in ipairs(TREE_TYPES) do + eq.register_npc_event("Neffiken", Event.spawn, id, TreeSpawnEvent); + eq.register_npc_event("Neffiken", Event.timer, id, TreeTimerEvent); + eq.register_npc_event("Neffiken", Event.combat, id, TreeCombatEvent); + eq.register_npc_event("Neffiken", Event.death, id, TreeDeathEvent); + end + + eq.register_npc_event("Neffiken", Event.death, NEFFIKEN_TYPE, NeffikenDeathEvent); + eq.register_npc_event("Neffiken", Event.spawn, NEFFIKEN_TYPE, NeffikenSpawnEvent); + eq.register_npc_event("Neffiken", Event.timer, NEFFIKEN_TYPE, NeffikenTimerEvent); + eq.register_npc_event("Neffiken", Event.combat, NEFFIKEN_TYPE, NeffikenCombatEvent); +end diff --git a/postorms/encounters/Relv.lua b/postorms/encounters/Relv.lua new file mode 100644 index 0000000..c9a3816 --- /dev/null +++ b/postorms/encounters/Relv.lua @@ -0,0 +1,381 @@ +local RELV_TYPE = 210090; -- Relv_the_Mysterious +local DECREPIT_TYPE = 210486; -- a_decrepit_ent +local VIVACIOUS_TYPE = 210487; -- a_vivacious_ent +local BLAZING_TYPE = 210459; -- a_blazing_mephit (level 62) +local BURNING_TYPE = 210460; -- a_burning_mephit (level 62) +local MEPHEEKA_TYPE = 210462; -- a_fiery_mepheeka +local FALTO_TYPE = 210470; -- Falto,_Lord_of_Thunder +local ADD1_TYPE = 210488; -- a_blazing_mephit (level 60; boss add spawn) +local ADD2_TYPE = 210489; -- a_burning_mephit (level 60; boss add spawn) + +local groups = 0; +local eventActive = false; +local wave = 0; +-- Instead of using qglobals, tracking conversation status this way instead +-- Needs to reset on zoning which can't be done with qglobals +-- Sony has some sort of temporary character flag that deletes on zone-out +local sayStateTable = {}; -- key is player name, value is conversation state +local hailStateTable = {}; +local entries = 0; + +function MoveGroup(zone, client, dist, x, y, z, h) + local group = client:GetGroup(); + local raid = client:GetRaid(); + + if ( group and group:GroupCount() > 0 ) then + for i = 0, 5 do + local member = group:GetMember(i):CastToClient(); + + if ( member.valid ) then + if ( member:CalculateDistance(client:GetX(), client:GetY(), client:GetZ()) < dist ) then + member:MovePC(zone, x, y, z, h*2); + if ( member:GetPet().valid and not member:GetPet():Charmed() ) then + member:GetPet():GMMove(x, y, z, 0); + end + end + end + end + + elseif ( raid and raid.valid ) then + local raidGroupID = raid:GetGroup(client:GetName()); + local member; + for i = 0, 71 do + member = raid:GetMember(i); + + if ( member and member.valid and raid:GetGroup(member:GetName()) == raidGroupID ) then + + if ( member:CalculateDistance(client:GetX(), client:GetY(), client:GetZ()) < dist ) then + member:MovePC(zone, x, y, z, h*2); + if ( member:GetPet().valid and not member:GetPet():Charmed() ) then + member:GetPet():GMMove(x, y, z, 0); + end + end + end + end + else + client:MovePC(zone, x, y, z, h*2); + if ( client:GetPet().valid and not client:GetPet():Charmed() ) then + client:GetPet():GMMove(x, y, z, 0); + end + end +end + +function IsClientInTrial() + local clientList = eq.get_entity_list():GetClientList(); + + if ( clientList ) then + for client in clientList.entries do + if ( client.valid and client:GetY() > 3000 ) then + if ( not client:GetGM() ) then + return true; + end + end + end + end + return false; +end + +function CheckRemoveFromTrial(limit, x, y, z, h) + local clientList = eq.get_entity_list():GetClientList(); + local n = 0; + + if ( clientList ) then + for client in clientList.entries do + if ( client.valid and client:GetY() > 3000 ) then + if ( not client:GetGM() ) then + n = n + 1; + if ( n > limit ) then + if ( limit == 0 ) then + client:Message(0, "The powerful green aura that had pushed you through to the other side of the brush dims as you and your party are pulled back to Relv the Mysterious."); + end + client:MovePC(210, x, y, z, h); + if ( client:GetPet().valid and not client:GetPet():Charmed() ) then + client:GetPet():GMMove(x, y, z, 0); + end + if ( limit > 0 ) then + eq.debug(client:GetName().." removed from trial because client limit of "..limit.." exceeded"); + end + n = n - 1; + end + end + end + end + end +end + + +function StartEvent() + + eq.unique_spawn(DECREPIT_TYPE, 0, 0, -1017, 6055, -486, 192); + + local x, y; + local z = -437; + + for i = 1, 30 do + x = math.random(-1172, -3); + y = math.random(4932, 6069); + eq.spawn2(eq.ChooseRandom(BLAZING_TYPE, BURNING_TYPE), 16, 0, x, y, z, 0); + end + eventActive = true; +end + +function EndEvent() + groups = 0; + eventActive = false; + eq.debug("Relv event now available"); + eq.depop_all(BLAZING_TYPE); + eq.depop_all(BURNING_TYPE); + eq.depop_all(FALTO_TYPE); + eq.depop_all(MEPHEEKA_TYPE); + eq.depop_all(VIVACIOUS_TYPE); + eq.depop_all(DECREPIT_TYPE); +end + +function MephitDeathEvent(e) + + local x = e.self:GetX(); + local y = e.self:GetY(); + local z = e.self:GetZ() + 5; + + for i = 1, 3 do + eq.spawn2(MEPHEEKA_TYPE, 0, 0, x + math.random(-15, 15), y + math.random(-15, 15), z, 0); + end + + local elist = eq.get_entity_list(); + if ( not elist:IsMobSpawnedByNpcTypeID(BLAZING_TYPE) and not elist:IsMobSpawnedByNpcTypeID(BURNING_TYPE) ) then + eq.unique_spawn(FALTO_TYPE, 0, 0, -574, 5469, -480, 0); + eq.debug("Falto spawned"); + end +end + +function BossTimerEvent(e) + if ( e.timer == "adds" ) then + wave = wave + 1; + local x = e.self:GetX(); + local y = e.self:GetY(); + local z = e.self:GetZ() + 5; + + for i = 1, wave do + eq.spawn2(eq.ChooseRandom(ADD1_TYPE, ADD2_TYPE), 0, 0, x + math.random(-30, 30), y + math.random(-30, 30), z, 0); + end + end +end + +function BossCombatEvent(e) + if ( e.joined ) then + eq.set_timer("adds", 60000); + wave = 0; + else + eq.stop_timer("adds"); + end +end + +function BossDeathEvent(e) + eq.depop_all(DECREPIT_TYPE); + eq.unique_spawn(VIVACIOUS_TYPE, 0, 0, -1017, 6055, -486, 192); + eq.debug("Relv event success"); +end + +function DecrepitSpawnEvent(e) + eq.set_timer("check", 30000); + eq.set_timer("appearance", 1000); + eq.set_timer("event", 10800000); +end + +function DecrepitTimerEvent(e) + + if ( e.timer == "check" ) then + CheckRemoveFromTrial(24, -1795, -2059, -470, 0); + + elseif ( e.timer == "appearance" ) then + eq.stop_timer(e.timer); + e.self:SetAppearance(3); + + elseif ( e.timer == "event" ) then + CheckRemoveFromTrial(0, 1562, 2088, -450, 0); + eq.stop_timer("check"); + eq.debug("Relv event timer expired"); + EndEvent(); + end +end + +function VivaciousSpawnEvent(e) + eq.set_timer("check", 20000); +end + +function VivaciousTimerEvent(e) + if ( e.timer == "check" ) then + if ( not IsClientInTrial() ) then + EndEvent(); + end + end +end + +function RelvSayEvent(e) + + local name = e.other:GetName(); + + local state = sayStateTable[name] or 0; + local hails = hailStateTable[name] or 0; + + if ( e.message:findi("hail") ) then + + hails = hails + 1; + + if ( hails == 1 ) then + e.self:Say("Greetings to you, small one. I see you have made great progress through our fair planar dwelling. Were it not for the dubious undertakings by someone... or something, I would be more than glad to welcome you here. Unfortunately, there have been dangerous tidings afoot. Just look at the trees around you. This destruction is the work of something altogether unseen, at least by me."); + state = 1; + + elseif ( hails == 2 ) then + eq.get_entity_list():MessageClose(e.self, true, 100, 0, "Relv looks at you with a slight hint of hindrance. 'You are an odd individual, truly. What manner of speaking is it to hail me once more, after I have already begun conversing with you? Hmm, considerably odd. May I continue?'"); + + elseif ( hails == 3 ) then + eq.get_entity_list():MessageClose(e.self, true, 100, 0, "Relv sighs. 'I suppose that you are not here to help as I had once hoped. Certainly someone that was here to help would have a deeper vocabulary than that of just 'hail'. In any case friend, if you would like to help or hear my plight, please come back. For now I can see that you are far too busy to assist.'"); + + elseif ( hails == 4 ) then + e.self:Say("I tire of this endless babble! Please remove yourself from my presence if all you plan on doing is repeating the same thing over and over again! I have no need of this kind of harassment, you foul affront to intelligent folk!"); + + elseif ( hails >= 5 ) then + eq.get_entity_list():MessageClose(e.self, true, 100, 0, "Relv merely sighs and ignores you."); + end + + elseif ( state == 1 and (e.message:findi("destruction") or e.message:findi("continue")) ) then + + if ( hails > 1 ) then + eq.get_entity_list():MessageClose(e.self, true, 100, 0, "Relv raises an eyebrow at you somewhat apprehensively, as though he is not entirely sure of your purpose here. 'So you can do more than simply repeat the same thing over and over. Very well, I will continue. There was a time when all the trees were green and alive, though as you can see, that time is no more. I am unsure what it is that has caused the damage, but I do know that whatever it is has caused a great deal of damage and will continue to do so unless someone like yourself has the courage to rid us of it.' [continue]"); + else + eq.get_entity_list():MessageClose(e.self, true, 100, 0, "Relv the Mysterious says 'There was a time when all the trees were green and alive, though as you can see, that time is no more. I am unsure what it is that has caused the damage, but I do know that whatever it is has caused a great deal of damage and will continue to do so unless someone like yourself has the courage to rid us of it.' [continue]"); + end + state = 2; + + elseif ( state > 1 and e.message:findi("continue") ) then + + if ( state == 2 ) then + eq.get_entity_list():MessageClose(e.self, true, 100, 0, "Relv looks about him at the charred trees and sighs. 'If this destruction is not stopped, we may soon not have any forest left, which would cause a great disturbance in the balance of this land. If it were in my power, I would go forth through the brush here to try and stop whatever it is that is causing this. Unfortunately, I cannot leave, as I must protect the rest of the trees here from any beasts that may try to defile these lands further. This is why I must ask for an outsider to help, so that I may send them forth through the brush into the clearing beyond to find the menace and destroy it at the source.' [continue]"); + state = 3; + + elseif ( state == 3 ) then + if ( hails > 1 ) then + e.self:Say("While you have shown yourself so far to be somewhat odd, and perhaps a bit overbearing, I must say that you are the first hope I have had that anyone might aid me in this problem. I have waited patiently for someone to come along to defeat this scourge on the land, and you may just be the one. If you feel you are courageous enough to go forth, please let me know and I will make preparations to assist you through the brush to end whatever suffering the forest is feeling beyond."); + else + e.self:Say("I have waited patiently for someone to come along to defeat this scourge on the land, and you may just be the one. If you feel you are courageous enough to go forth, please let me know and I will make preparations to assist you through the brush to end whatever suffering the forest is feeling beyond."); + end + state = 4; + end + + elseif ( state == 4 and e.message:findi("courageous") ) then + if ( not eventActive and not IsClientInTrial() ) then + e.self:Say("As I had hoped. I regret that I have only enough strength to send four parties through the brush to the other side, and only one party at a time. When each party is ready to move forth, tell me that you are ready and I will make a clearing for you to go through. Be wary, as my magic will only last for three hours before you are pulled back to me, so do whatever you can before that time is up!"); + StartEvent(); + end + + elseif ( e.message:findi("ready") ) then + + if ( not eventActive or groups >= 4 ) then + eq.get_entity_list():MessageClose(e.self, true, 100, 0, "The green aura around Relv has passed, and it appears that he no longer has the power to push another group forth past the brush."); + else + eq.get_entity_list():MessageClose(e.self, true, 100, 0, "A powerfully green aura surrounds Relv as he opens a small rift in the brushes beyond, then sends you and your party forth into the burning forest beyond. "); + MoveGroup(210, e.other, 100, -1087, 6040, -483, 103); + groups = groups + 1; + end + end + + if ( state > 0 ) then + if ( not sayStateTable[name] ) then + if ( entries == 0 ) then + eq.set_timer("checkreset", 20000); + end + entries = entries + 1; + end + sayStateTable[name] = state; + hailStateTable[name] = hails; + end +end + +function RelvTimerEvent(e) + -- periodocally check if players have left the zone, then clear their quest status if so + if ( e.timer == "checkreset" ) then + + local mob; + local elist = eq.get_entity_list(); + + for name, id in pairs(sayStateTable) do + + mob = elist:GetClientByName(name); + + if ( not mob or not mob.valid ) then + sayStateTable[name] = nil; + hailStateTable[name] = nil; + entries = entries - 1; + --eq.debug(name.." deleted from Relv conversation memory", 3); + end + end + end + if ( entries == 0 ) then + eq.stop_timer(e.timer); + --eq.debug("memory timer stopped for Relv", 3); + end +end + +function RelvTradeEvent(e) + local item_lib = require("items"); + + if ( item_lib.check_turn_in(e.self, e.trade, { item1 = 28784 }) ) then -- Lightning Crystals + e.self:Say("So it was a maniacal Lord of Thunder who was terrorizing our fair forests? What would move a being such as he to do something so awful? It matters not any more; all that matters is that you have returned and helped restore our forest to the safe and serene place that it was, at least for now. Let us hope that this type of thing does not occur in the future. Thank you again, friend. Please take this as a token of gratitude from the forest, as well as myself."); + e.other:QuestReward(e.self, 0, 0, 0, 0, 7755, 50000); -- Ruby Pendant with a Gold Chain + end + item_lib.return_items(e.self, e.other, e.trade); +end + +function VivaciousSayEvent(e) + + if ( e.message:findi("hail") ) then + eq.get_entity_list():MessageClose(e.self, true, 100, 0, "The tree is but a weak reflection of a once proud and strong part of nature. With a slow and solemn voice, it speaks to you, 'I thank you for what you have done here today, ridding us of the maniacal ways of the Lord of Thunder. You cannot understand the plight we have been through, nor how much you have truly helped us by this most generous of acts. When you are ready to return to Relv, let me know and I will assist you in getting back through the brush to the other side.'"); + + elseif ( e.message:findi("ready to return") ) then + e.self:Emote("chants an ancient entian dialect that you do not understand and sends you back through the underbrush to meet up again with Relv the Mysterious."); + MoveGroup(210, e.other, 150, 1562, 2088, -450, 28); + end +end + +function AddSpawnEvent(e) + eq.set_timer("depop", 180000); +end +function AddTimerEvent(e) + eq.depop(); +end +function AddCombatEvent(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + + eq.register_npc_event("Relv", Event.death_complete, BLAZING_TYPE, MephitDeathEvent); + eq.register_npc_event("Relv", Event.death_complete, BURNING_TYPE, MephitDeathEvent); + + eq.register_npc_event("Relv", Event.say, RELV_TYPE, RelvSayEvent); + eq.register_npc_event("Relv", Event.trade, RELV_TYPE, RelvTradeEvent); + eq.register_npc_event("Relv", Event.timer, RELV_TYPE, RelvTimerEvent); + + eq.register_npc_event("Relv", Event.death, FALTO_TYPE, BossDeathEvent); + eq.register_npc_event("Relv", Event.timer, FALTO_TYPE, BossTimerEvent); + eq.register_npc_event("Relv", Event.combat, FALTO_TYPE, BossCombatEvent); + + eq.register_npc_event("Relv", Event.spawn, ADD1_TYPE, AddSpawnEvent); + eq.register_npc_event("Relv", Event.spawn, ADD2_TYPE, AddSpawnEvent); + eq.register_npc_event("Relv", Event.timer, ADD1_TYPE, AddTimerEvent); + eq.register_npc_event("Relv", Event.timer, ADD2_TYPE, AddTimerEvent); + eq.register_npc_event("Relv", Event.combat, ADD1_TYPE, AddCombatEvent); + eq.register_npc_event("Relv", Event.combat, ADD2_TYPE, AddCombatEvent); + + eq.register_npc_event("Relv", Event.spawn, DECREPIT_TYPE, DecrepitSpawnEvent); + eq.register_npc_event("Relv", Event.timer, DECREPIT_TYPE, DecrepitTimerEvent); + + eq.register_npc_event("Relv", Event.timer, VIVACIOUS_TYPE, VivaciousTimerEvent); + eq.register_npc_event("Relv", Event.spawn, VIVACIOUS_TYPE, VivaciousSpawnEvent); + eq.register_npc_event("Relv", Event.say, VIVACIOUS_TYPE, VivaciousSayEvent); +end diff --git a/postorms/encounters/StonRuak.lua b/postorms/encounters/StonRuak.lua new file mode 100644 index 0000000..ca34d8d --- /dev/null +++ b/postorms/encounters/StonRuak.lua @@ -0,0 +1,162 @@ +local STONRUAK_TYPE = 210471; -- Ston`Ruak,_Ancient_of_the_Trees +local TOTEM_TYPES = { + 210458, -- an_earthen_spirit + 210463, -- a_Koka`Vor_advisor + 210464, -- a_Koka`Vor_bark_spirit +}; +local TRASH_TYPES = { + 210087, -- a_Koka`Vor_senvar + 210088, -- a_Koka`Vor_krovian +}; +local TRASH2_TYPES = { + 210466, -- a_Koka`Vor_Elder + 210465, -- a_Koka`Vor_Chieftain +}; +local PHASE2_LOCS = { + { -232, 717, -368.5, 107 }, + { 164, 1337, -368.5, 38 }, + { -171, 694, -374, 166 }, + { -174, 622, -374, 231 }, + { -207, 699, -368.5, 127 }, + { 270, 1355, -368.5, 204 }, + { 214, 1434, -368.5, 127 }, + { 211, 1371, -368.5, 219 }, +}; +local killed = 0; +local adds = 0; +local phase2 = false; +local stonruakUp = false; + +function TrashDeathCompleteEvent(e) + + killed = killed + 1; + eq.debug("stonruak guards killed == "..killed); + if ( killed < 38 ) then + return; + end + + local elist = eq.get_entity_list(); + for _, id in ipairs(TRASH_TYPES) do + if ( elist:IsMobSpawnedByNpcTypeID(id) ) then + return; + end + end + + phase2 = true; + local loc; + for i = 1, 8 do + loc = PHASE2_LOCS[i]; + eq.spawn2(eq.ChooseRandom(TRASH2_TYPES[1], TRASH2_TYPES[2]), 0, 0, loc[1], loc[2], loc[3], loc[4]); + end + eq.debug("Stonruak event phase 2 spawned"); +end + +function Trash2DeathCompleteEvent(e) + + local elist = eq.get_entity_list(); + + if ( elist:IsMobSpawnedByNpcTypeID(TRASH2_TYPES[1]) or elist:IsMobSpawnedByNpcTypeID(TRASH2_TYPES[2]) ) then + return; + end + + eq.unique_spawn(STONRUAK_TYPE, 0, 0, -206, 669, -368, 167); + eq.debug("Stonruak spawned"); +end + +-- this is actually how Sony does it; just depops them instantly if they spawn +function TrashSpawnEvent(e) + if ( phase2 or stonruakUp ) then + eq.depop_with_timer(); + end +end + +function StonruakDeathEvent(e) + stonruakUp = false; + eq.debug("Stonruak killed"); +end + +function StonruakSpawnEvent(e) + stonruakUp = true; + killed = 0; + adds = 0; +end + +function StonruakTimerEvent(e) + + if ( e.timer == "adds" ) then + if ( adds < 8 ) then + + local t; + local sx = e.self:GetX(); + local sy = e.self:GetY(); + local sz = e.self:GetZ(); + local x, y; + local rng = math.random(5, 8); + local spawned = 0; + + for i = adds+1, 8 do + + x = sx + math.random(-30, 30); + y = sy - math.random(-30, 30); + + t = eq.ChooseRandom(TOTEM_TYPES[1], TOTEM_TYPES[2], TOTEM_TYPES[3]); + eq.spawn2(t, 0, 0, x, y, sz + 5, 0); + spawned = spawned + 1; + if ( spawned == rng ) then + break; + end + end + adds = adds + spawned; + end + end +end + +function StonruakCombatEvent(e) + if ( e.joined ) then + eq.set_timer("adds", 35000); + else + eq.stop_timer("adds"); + end +end + +function TotemSpawnEvent(e) + eq.set_timer("depop", 170000); +end +function TotemTimerEvent(e) + if ( e.timer == "depop" ) then + adds = adds - 1; + eq.depop(); + end +end +function TotemCombatEvent(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end +function TotemDeathEvent(e) + adds = adds - 1; +end + +function event_encounter_load(e) + + for _, id in ipairs(TRASH_TYPES) do + eq.register_npc_event("StonRuak", Event.death_complete, id, TrashDeathCompleteEvent); + eq.register_npc_event("StonRuak", Event.spawn, id, TrashSpawnEvent); + end + for _, id in ipairs(TRASH2_TYPES) do + eq.register_npc_event("StonRuak", Event.death_complete, id, Trash2DeathCompleteEvent); + end + for _, id in ipairs(TOTEM_TYPES) do + eq.register_npc_event("StonRuak", Event.spawn, id, TotemSpawnEvent); + eq.register_npc_event("StonRuak", Event.timer, id, TotemTimerEvent); + eq.register_npc_event("StonRuak", Event.combat, id, TotemCombatEvent); + eq.register_npc_event("StonRuak", Event.death, id, TotemDeathEvent); + end + + eq.register_npc_event("StonRuak", Event.death, STONRUAK_TYPE, StonruakDeathEvent); + eq.register_npc_event("StonRuak", Event.spawn, STONRUAK_TYPE, StonruakSpawnEvent); + eq.register_npc_event("StonRuak", Event.timer, STONRUAK_TYPE, StonruakTimerEvent); + eq.register_npc_event("StonRuak", Event.combat, STONRUAK_TYPE, StonruakCombatEvent); +end diff --git a/postorms/player.lua b/postorms/player.lua new file mode 100644 index 0000000..96d3147 --- /dev/null +++ b/postorms/player.lua @@ -0,0 +1,27 @@ +function event_click_door(e) + local door_id = e.door:GetDoorID(); + + if ( door_id == 4 ) then + + local qglobals = eq.get_qglobals(e.self); + local karana = tonumber(qglobals.karana or 0); + local mavuin = tonumber(qglobals.mavuin or 0); + + if ( karana >= 3 or qglobals.zebuxoruk ) then + return; + end + + if ( karana < 2 or mavuin < 3 ) then + e.self:Message(13, "The shrine calls forth unto your soul in search of a mystic symbol but finds none, you may not pass forth unto this planar location."); + else + eq.set_global("karana", "3", 5, "F"); + e.self:Message(15, "An aura of soft light gleams around you as the shrine reacts to your Talisman of Thunderous Foyer and sends you forth into the mighty Bastion of Thunder."); + e.self:Message(15, "You have received a character flag!"); + + if ( e.self:HasZoneFlag(209) == false ) then + e.self:SetZoneFlag(209); + end + end + + end +end diff --git a/postorms/script_init.lua b/postorms/script_init.lua new file mode 100644 index 0000000..1c2a66e --- /dev/null +++ b/postorms/script_init.lua @@ -0,0 +1,7 @@ +eq.load_encounter("Drornok"); +eq.load_encounter("Jeplak"); +eq.load_encounter("Gurebk"); +eq.load_encounter("Neffiken"); +eq.load_encounter("StonRuak"); +eq.load_encounter("MiniBosses"); +eq.load_encounter("Relv"); diff --git a/potactics/#Anival_the_Blade.lua b/potactics/#Anival_the_Blade.lua new file mode 100644 index 0000000..1cbafef --- /dev/null +++ b/potactics/#Anival_the_Blade.lua @@ -0,0 +1,37 @@ +function event_spawn(e) + if ( e.self:GetSpawnPointID() == 0 ) then -- 0 means script spawned + eq.set_timer("depop", 360000); + e.self:SetSpecialAbility(49, 1); -- corpse camp + end +end + +function event_timer(e) + + if ( e.timer == "checkhp" ) then + + if ( e.self:GetHPRatio() < 50 ) then + if ( math.random(100) < 25 ) then -- some of these seem to not split? + eq.stop_timer(e.timer); + else + eq.spawn2(214033, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- #Anival_the_Blade + eq.spawn2(214033, 0, 0, e.self:GetX(), e.self:GetY() - 10, e.self:GetZ(), 0):CastToNPC():ClearItemList(); + eq.depop_with_timer(); + end + end + + elseif ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + if ( e.self:GetSpawnPointID() > 0 ) then + eq.set_timer("checkhp", 5000); + end + else + eq.resume_timer("depop"); + eq.stop_timer("checkhp"); + end +end diff --git a/potactics/#Rallos_Zek_.lua b/potactics/#Rallos_Zek_.lua new file mode 100644 index 0000000..df45d45 --- /dev/null +++ b/potactics/#Rallos_Zek_.lua @@ -0,0 +1,87 @@ +local CORPSE_TYPES = { [214007] = 1, [214008] = 1, [214009] = 1, [214010] = 1, [214011] = 1 }; + +function GetCorpse() + local npcList = eq.get_entity_list():GetNPCList(); + + for npc in npcList.entries do + + if ( npc.valid ) then + + if ( CORPSE_TYPES[npc:GetNPCTypeID()] ) then + return npc; + end + end + end +end + +function DepopCorpses() + local npcList = eq.get_entity_list():GetNPCList(); + + for npc in npcList.entries do + + if ( npc.valid ) then + + if ( CORPSE_TYPES[npc:GetNPCTypeID()] ) then + npc:Depop(true); + end + end + end +end + +function GetWraith() + local npcList = eq.get_entity_list():GetNPCList(); + + for npc in npcList.entries do + + if ( npc.valid ) then + + if ( npc:GetNPCTypeID() == 214305 ) then -- level 63 a_War_Wraith + local spawnId = npc:GetSpawnPointID(); + if ( spawnId == 361197 or spawnId == 361205 or 361205 == 361211 ) then -- arena spawns + return npc; + end + end + end + end +end + +function event_spawn(e) + eq.set_timer("corpses", 60000); +end + +function event_timer(e) + if ( e.timer == "corpses" ) then + + local roll = math.random(100); + local corpse, spawn; + + if ( roll < 60 ) then + corpse = GetCorpse(); + if ( corpse and corpse.valid ) then + eq.get_entity_list():MessageClose(corpse, true, 150, 0, "A corpse is renewed by the power of Rallos. It has taken up arms in the eternal battle once more."); + spawn = eq.spawn2(eq.ChooseRandom(214015, 214017, 214021, 214090), 29, 0, corpse:GetX(), corpse:GetY(), corpse:GetZ(), 0); -- a_Gladiator + spawn:CastToNPC():SetWaypointPause(); + eq.set_timer("depop", 300000, spawn); + corpse:Depop(true); + end + + elseif ( roll < 85 ) then + corpse = GetCorpse(); + if ( corpse and corpse.valid ) then + eq.get_entity_list():MessageClose(corpse, true, 150, 0, "A corpse is rent by the power of Zek. It has been found lacking."); + spawn = eq.spawn2(214078, 29, 0, corpse:GetX(), corpse:GetY(), corpse:GetZ(), 0); -- A_tortured_soul + spawn:CastToNPC():SetWaypointPause(); + eq.set_timer("depop", 300000, spawn); + corpse:Depop(true); + end + else + corpse = GetWraith(); + if ( corpse and corpse.valid ) then + eq.get_entity_list():MessageClose(corpse, true, 150, 0, "A War Wraith raises its hands and begins to howl. The bodies of the fallen are torn asunder as the judgement of Zek consumes them."); + end + DepopCorpses(); + end + + eq.set_timer(e.timer, math.random(15, 180) * 1000); + end +end diff --git a/potactics/214026.lua b/potactics/214026.lua new file mode 100644 index 0000000..ecdacf2 --- /dev/null +++ b/potactics/214026.lua @@ -0,0 +1,37 @@ +-- Tallon Zek south wing + +local PLANAR_PROJECTION_TYPE = 214323; + +function event_death_complete(e) + eq.spawn2(PLANAR_PROJECTION_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + eq.signal(PLANAR_PROJECTION_TYPE, e.killer:GetID()); -- e.killer for death_complete is somebody with kill rights, not death blow +end + +function event_spawn(e) + e.self:CastToNPC():SetCastRateDetrimental(75); -- note: Tallon Zek's cast rate should average about 3.5 seconds between each barb +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("shadowstep", 20000); + end +end + +function event_timer(e) + + if ( e.timer == "shadowstep" ) then + + if ( not e.self:IsEngaged() ) then + eq.stop_timer(e.timer); + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + else + e.self:GMMove(math.random(-725, -505), math.random(-2100, -1820), 207.6); + e.self:WipeHateList(); + end + end +end + +function event_death_complete(e) + eq.spawn2(PLANAR_PROJECTION_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + eq.signal(PLANAR_PROJECTION_TYPE, e.killer:GetID()); -- e.killer for death_complete is somebody with kill rights, not death blow +end diff --git a/potactics/214316.lua b/potactics/214316.lua new file mode 100644 index 0000000..2ed7e7b --- /dev/null +++ b/potactics/214316.lua @@ -0,0 +1,47 @@ +-- Vallon Zek (level 73) north wing + +function event_spawn(e) + eq.set_next_hp_event(50); +end + +function event_hp(e) + + if ( e.hp_event == 50 ) then + + local x, y; + local rng = math.random(1, 5); -- so the real one isn't always named 'Vallon_Zek000' + + for i = 1, 5 do + + x = math.random(-645, -565); + y = math.random(1940, 2020); + + if ( i == rng ) then + eq.spawn2(214317, 0, 0, x, y, 204.5, 64); -- real one + else + eq.spawn2(eq.ChooseRandom(214318, 214319), 0, 0, x, y, 204.5, 64); -- fakes + end + end + + eq.signal(214317, 1); + e.self:Emote("fades into the shadows as five figures take shape around you."); + eq.depop_with_timer(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("bounds", 6000); + else + eq.stop_timer("bounds"); + end +end + +function event_timer(e) + + if ( e.timer == "bounds" ) then + if ( e.self:GetY() < 1750 and e.self:GetX() < 0 ) then + e.self:GMMove(-625, 1980, 204.5, 64); + end + end +end diff --git a/potactics/214317.lua b/potactics/214317.lua new file mode 100644 index 0000000..17b90db --- /dev/null +++ b/potactics/214317.lua @@ -0,0 +1,69 @@ +-- Vallon Zek (level 64, 'real one') + +local PLANAR_PROJECTION_TYPE = 214324; + +local wave = 0; + +function event_spawn(e) + eq.set_next_hp_event(50); + eq.set_timer("depop", 120000); +end + +function event_signal(e) + wave = e.signal; +end + +function event_hp(e) + + if ( e.hp_event == 50 ) then + + if ( wave == 4 ) then + return; + end + + local x, y; + local rng = math.random(1, 5); -- so the real one isn't always named 'Vallon_Zek000' + + for i = 1, 5 do + x = math.random(-645, -565); + y = math.random(1940, 2020); + if ( i == rng ) then + eq.spawn2(214317, 0, 0, x, y, 204.5, 64); -- real one + else + eq.spawn2(eq.ChooseRandom(214318, 214319), 0, 0, x, y, 204.5, 64); -- fakes + end + end + + eq.signal(214317, wave + 1); + e.self:Emote("fades into the shadows as five figures take shape around you."); + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("bounds", 6000); + eq.pause_timer("depop"); + else + eq.stop_timer("bounds"); + eq.resume_timer("depop"); + end +end + +function event_timer(e) + + if ( e.timer == "depop" ) then + eq.depop(); + eq.spawn_from_spawn2(369265); + + elseif ( e.timer == "bounds" ) then + if ( e.self:GetY() < 1750 ) then + e.self:GMMove(-625, 1980, 204.5, 64); + end + end +end + +function event_death_complete(e) + eq.spawn2(PLANAR_PROJECTION_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + eq.signal(PLANAR_PROJECTION_TYPE, e.killer:GetID()); -- e.killer for death_complete is somebody with kill rights, not death blow +end diff --git a/potactics/214318.lua b/potactics/214318.lua new file mode 100644 index 0000000..8a0555c --- /dev/null +++ b/potactics/214318.lua @@ -0,0 +1,27 @@ +-- Vallon Zek fake 1 + +function event_spawn(e) + eq.set_timer("depop", 120000); +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("bounds", 6000); + eq.pause_timer("depop"); + else + eq.stop_timer("bounds"); + eq.resume_timer("depop"); + end +end + +function event_timer(e) + + if ( e.timer == "depop" ) then + eq.depop(); + + elseif ( e.timer == "bounds" ) then + if ( e.self:GetY() < 1750 and e.self:GetX() < 0 ) then + e.self:GMMove(-625, 1980, 204.5, 64); + end + end +end diff --git a/potactics/214319.lua b/potactics/214319.lua new file mode 100644 index 0000000..e929918 --- /dev/null +++ b/potactics/214319.lua @@ -0,0 +1,27 @@ +-- Vallon Zek fake 2 + +function event_spawn(e) + eq.set_timer("depop", 120000); +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("bounds", 6000); + eq.pause_timer("depop"); + else + eq.stop_timer("bounds"); + eq.resume_timer("depop"); + end +end + +function event_timer(e) + + if ( e.timer == "depop" ) then + eq.depop(); + + elseif ( e.timer == "bounds" ) then + if ( e.self:GetY() < 1750 and e.self:GetX() < 0 ) then + e.self:GMMove(-625, 1980, 204.5, 64); + end + end +end diff --git a/potactics/214322.lua b/potactics/214322.lua new file mode 100644 index 0000000..1800619 --- /dev/null +++ b/potactics/214322.lua @@ -0,0 +1,83 @@ +-- Rallos Zek Planar Projection + +local FLAG_LIMIT = 72; + +local flags = 0; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + +function event_signal(e) + rid, gid, cid = nil, nil, nil; + local client = eq.get_entity_list():GetClientByID(e.signal); -- the signal # is the entity ID of a client with kill credit + + if ( client.valid ) then + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + end +end + +function event_spawn(e) + flags = 0; + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_say(e) + + if ( ClientCanFlag(e.other) ) then + + if ( e.message:findi("hail") and flags < FLAG_LIMIT ) then + + local qglobals = eq.get_qglobals(e.other); + local zeks = tonumber(qglobals.zeks) or 0; + + if ( zeks == 6 ) then + e.other:Message(0, "Maelin Starpyre's thoughts enter into your own. 'The singed parchment of Rallos lies in his dead hand. Bring it back to me I will translate them using the Cipher of Druzzil.'"); + eq.set_global("zeks", "7", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + flags = flags + 1; + + if ( qglobals.cl_rallos ) then + eq.delete_global("cl_rallos"); + end + elseif ( zeks < 6 and not qglobals.cl_rallos ) then + e.other:Message(0, "The Planar Projection seems to flicker in and out of existence. It seems to be impressed by the defeat of Rallos Zek."); + eq.set_global("cl_rallos", "1", 5, "F"); + e.other:Message(15, "You have received a new checklist flag!"); + flags = flags + 1; + end + end + end +end diff --git a/potactics/214323.lua b/potactics/214323.lua new file mode 100644 index 0000000..4ac2532 --- /dev/null +++ b/potactics/214323.lua @@ -0,0 +1,87 @@ +-- Tallon Zek Planar Projection + +local FLAG_LIMIT = 72; + +local flags = 0; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + +function event_signal(e) + rid, gid, cid = nil, nil, nil; + local client = eq.get_entity_list():GetClientByID(e.signal); -- the signal # is the entity ID of a client with kill credit + + if ( client.valid ) then + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + end +end + +function event_spawn(e) + flags = 0; + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_say(e) + + if ( ClientCanFlag(e.other) ) then + + if ( e.message:findi("hail") and flags < FLAG_LIMIT ) then + + local qglobals = eq.get_qglobals(e.other); + local zeks = tonumber(qglobals.zeks) or 0; + + if ( zeks == 2 or zeks == 3 ) then + e.other:Message(0, "You realize that the image is a projection of Maelin Starpyre's thoughts. His thoughts enter into your own. 'The pack of notes you now possess from Tallon, bring them to me. I would like to more closely study them'"); + if ( zeks == 2 ) then -- no VZ flag + eq.set_global("zeks", "4", 5, "F"); -- 4 means just TZ flagged + elseif ( zeks == 3 ) then -- 3 means has VZ flag; does not have TZ flag + eq.set_global("zeks", "5", 5, "F"); -- 5 means VZ and TZ flagged + end + e.other:Message(15, "You have received a character flag!"); + flags = flags + 1; + + if ( qglobals.cl_tallon ) then + eq.delete_global("cl_tallon"); + end + elseif ( zeks < 2 and not qglobals.cl_tallon ) then + e.other:Message(0, "The Planar Projection seems to flicker in and out of existence. It seems to be impressed by the defeat of Tallon Zek."); + eq.set_global("cl_tallon", "1", 5, "F"); + e.other:Message(15, "You have received a new checklist flag!"); + flags = flags + 1; + end + end + end +end diff --git a/potactics/214324.lua b/potactics/214324.lua new file mode 100644 index 0000000..c19d153 --- /dev/null +++ b/potactics/214324.lua @@ -0,0 +1,87 @@ +-- Vallon Zek Planar Projection + +local FLAG_LIMIT = 72; + +local flags = 0; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + +function event_signal(e) + rid, gid, cid = nil, nil, nil; + local client = eq.get_entity_list():GetClientByID(e.signal); -- the signal # is the entity ID of a client with kill credit + + if ( client.valid ) then + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + end +end + +function event_spawn(e) + flags = 0; + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_say(e) + + if ( ClientCanFlag(e.other) ) then + + if ( e.message:findi("hail") and flags < FLAG_LIMIT ) then + + local qglobals = eq.get_qglobals(e.other); + local zeks = tonumber(qglobals.zeks) or 0; + + if ( zeks == 2 or zeks == 4 ) then + e.other:Message(0, "You realize that the image is a projection of Maelin Starpyre's thoughts. His thoughts enter into your own. 'The pack of notes you now possess from Vallon, bring them to me. I would like to more closely study them'"); + if ( zeks == 2 ) then -- no VZ or TZ flag + eq.set_global("zeks", "3", 5, "F"); -- 3 means just VZ flagged + elseif ( zeks == 4 ) then -- 4 means has TZ flag; does not have VZ flag + eq.set_global("zeks", "5", 5, "F"); -- 5 means VZ and TZ flagged + end + e.other:Message(15, "You have received a character flag!"); + flags = flags + 1; + + if ( qglobals.cl_vallon ) then + eq.delete_global("cl_vallon"); + end + elseif ( zeks < 2 and not qglobals.cl_vallon ) then + e.other:Message(0, "The Planar Projection seems to flicker in and out of existence. It seems to be impressed by the defeat of Vallon Zek."); + eq.set_global("cl_vallon", "1", 5, "F"); + e.other:Message(15, "You have received a new checklist flag!"); + flags = flags + 1; + end + end + end +end diff --git a/potactics/A_tortured_soul.lua b/potactics/A_tortured_soul.lua new file mode 100644 index 0000000..7690c8a --- /dev/null +++ b/potactics/A_tortured_soul.lua @@ -0,0 +1,94 @@ +local SPAWN_LOCS = { + { 683, 941, -217 }, + { 1326, 1928, -326 }, + { 1205, 1973, -337 }, + { -872, 1979, 215 }, + { 732, -549, -9 }, + { 1393, 195, -218 }, + { -456, -1652, 162 }, + { 586, -360, -17 }, + { 795, 657, -302 }, + { -180, -460, 78 }, + { 280, 99, 7 }, + { 679, 569, -9 }, + { -513, 1716, 167 }, + { -199, -404, 68 }, + { -148, -370, 68 }, + { 1245, 442, 122 }, + { -180, -477, 78 }, + { -150, 784, 79 }, + { -248, 1139, 108 }, + { 449, 119, -16 }, + { 320, -180, 170 }, + { 280, 260, 3 }, + { 1196, -351, 122 }, + { 1101, 868, -9 }, + { 511, 220, -13 }, + { -150, 359, 69 }, + { 1218, 352, 122 }, + { -282, 658, 122 }, + { -484, -1643, 162 }, + { -514, 1789, 197 }, + { -231, 961, 78 }, + { -434, -1621, 162 }, + { -265, -644, 122 }, + { -500, -1597, 164 }, + { -798, -2107, 196 }, + { -560, -1530, 162 }, + { 700, -695, -9 }, + { 680, 487, -16 }, + { 700, -754, -9 }, + { 654, -549, -11 }, + { -298, 1190, 108 }, + { -835, -2102, 196 }, + { 1080, -294, 125 }, + { -145, 550, 78 }, + { 500, 10, 170 }, + { 1260, -465, 125 }, + { 1497, -845, -296 }, + { -108, -599, 78 }, + { 1212, 1393, -328 }, + { 1666, 1095, -319 }, + { 1124, -393, -294 }, + { 1530, 2018, -328 }, + { 1205, 1941, -337 }, + { 1232, 1245, -325 }, + { 1205, 2004, -337 }, + { -459, -1582, 162 }, + { -261, -1435, 114 }, + { 1260, -430, 120 }, +}; + +function event_spawn(e) + if ( e.self:GetSpawnPointID() == 0 ) then -- not from a spawngroup; spawned from a pit corpse via script + eq.set_timer("depop", 300000); + else + -- spawngroup ones are moved at spawn time so the spawn loc is effectively randomized + local loc = SPAWN_LOCS[math.random(1, #SPAWN_LOCS)]; + e.self:GMMove(loc[1], loc[2], loc[3], 0, true, true); + eq.set_timer("depop", 600000); + eq.set_timer("check", 50000); + e.self:MoveTo(math.random(440, 935), math.random(-380, 405), -291, -1, true); + end +end + +function event_timer(e) + + if ( e.timer == "check" ) then + if ( e.self:GetZ() < -270 and e.self:GetX() > 440 and e.self:GetY() < 410 ) then + e.self:AssignWaypoints(29); + eq.stop_timer(e.timer); + end + + elseif ( e.timer == "depop" and not e.self:Charmed() and not e.self:IsEngaged() ) then + eq.depop_with_timer(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/potactics/An_Arrow.lua b/potactics/An_Arrow.lua new file mode 100644 index 0000000..812fcdd --- /dev/null +++ b/potactics/An_Arrow.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if ( e.joined ) then + e.self:Emote("screams through the air toward you."); + eq.depop_with_timer(); + end +end diff --git a/potactics/Animated_Decorin_Blade.lua b/potactics/Animated_Decorin_Blade.lua new file mode 100644 index 0000000..9ce51e6 --- /dev/null +++ b/potactics/Animated_Decorin_Blade.lua @@ -0,0 +1,27 @@ +local TAGRIN_TYPE = 214054; + +function event_spawn(e) + eq.set_timer("depop", 120000); +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + + local mob = eq.get_entity_list():GetMobByNpcTypeID(TAGRIN_TYPE); + if ( mob and mob.valid and mob:IsEngaged() ) then + local t = mob:GetHateRandomClient(); + if ( t and t.valid ) then + e.self:AddToHateList(t); + end + end + end +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end diff --git a/potactics/Eriak.lua b/potactics/Eriak.lua new file mode 100644 index 0000000..d75e83e --- /dev/null +++ b/potactics/Eriak.lua @@ -0,0 +1,26 @@ +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + local zeks = tonumber(qglobals.zeks) or 0; + + if ( e.message:findi("hail") ) then + + if ( zeks > 4 ) then + e.self:Emote("grins at you coldly. 'The twins lie bleeding at the feet of Rallos, and the halls of Drunder shiver with uncertainty. But one challenge lies before you. Face the warlord and his two injured acolytes and the power of Drunder is yours for the taking. The Warlord will not fall easily. The weapons of dark courage will not be enough, your weapons will require the power of torment to topple the Warlord."); + else + e.self:Emote("glares at you through blackened eyes of malice. 'Foolish, but brave I suppose. As if that word has any meaning in this place. Prove yourself on the field of blood if you dare.'"); + end + + elseif ( e.message:findi("weapons") and zeks > 4 ) then + e.self:Say("Though your weapons may have been effective against the twins, they will prove of little use against the Warlord. Temper them with the Torment of Saryn and you may yet be able to cleave the armor of the warlord. Insanity is not easily manipulated though. You'll have to suspend it in the blood of zek."); + + elseif ( e.message:findi("blood") and zeks > 4 ) then + e.self:Emote("looks at you silently for a moment. His eyes scan from your feet up to your face and linger there, staring into your eyes. He blinks once, slowly. He then draws a dagger from his waist and throws the iron gauntlet from his left hand to the floor. The dagger drifts across his forearm, and without a sound cuts into his calloused skin. A trickle of dark blood creeps down his arm and drips into a small vial in Eriak's right hand. He hands you the vial, staring through your eyes into your soul without a word."); + e.other:SummonCursorItem(28592); -- A Vial of Black Blood + + elseif ( e.message:findi("dark courage") and zeks > 4 ) then + e.self:Say("Deep in the mines of Narikor, the fallen warriors of the Zekarian brood and scheme of a way to escape the halls of Shame and once again take part in the bloodshed of eternal conflict. The deepest caverns hold an element composed of the essence of warfare. All of the weapons of Drunder are composed of this essence of war. Tempered with the powers of Order, you may be able to forge a weapon that can cleave the armor of Zek. The crystalline essence of Valor will compliment the primal essence of war well. I know little of the methods of the smiths, but Myrist must certainly hold such knowledge. Search New Tanaan for your answer mortals."); + + elseif ( e.message:findi("order") and zeks > 4 ) then + e.self:Say("While the order of the tranquil may be the first to come to your mind, combining the essence of Tranquility with the essence of warfare will prove impossible. There is another slightly less orderly essence that may prove more malleable. The children of Marr cling to order with great passion, but they are sometimes prone to the defense of things they hold dear. You may have better luck with a shard of valor then an aura of tranquility."); + end +end diff --git a/potactics/Frana_Shimi.lua b/potactics/Frana_Shimi.lua new file mode 100644 index 0000000..f579566 --- /dev/null +++ b/potactics/Frana_Shimi.lua @@ -0,0 +1,10 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Emote("shares a stare of blankness as you grab her attention, 'Where are your shackles? How can you move about freely here? Were you sent to check on the new schematics that I have drawn up? They are nearly finished, do you need them now?'"); + + elseif ( e.message:findi("need them") ) then + e.self:Say("Fine. Have them. When you take these to the Zeks perhaps you could mention how hard I worked on them, and my release could be considered. I know that my desire to serve Rallos was once great, but I would like for my soul to finally be at rest."); + e.other:SummonCursorItem(18636); -- Advanced Glazeworking + end +end diff --git a/potactics/Gindan_Blademaster.lua b/potactics/Gindan_Blademaster.lua new file mode 100644 index 0000000..36def03 --- /dev/null +++ b/potactics/Gindan_Blademaster.lua @@ -0,0 +1,37 @@ +function event_spawn(e) + if ( e.self:GetSpawnPointID() == 0 ) then -- 0 means script spawned + eq.set_timer("depop", 360000); + e.self:SetSpecialAbility(49, 1); -- corpse camp + end +end + +function event_timer(e) + + if ( e.timer == "checkhp" ) then + + if ( e.self:GetHPRatio() < 50 ) then + if ( math.random(100) < 25 ) then -- some of these seem to not split? + eq.stop_timer(e.timer); + else + eq.spawn2(214031, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- Gindan_Blademaster + eq.spawn2(214031, 0, 0, e.self:GetX(), e.self:GetY() - 10, e.self:GetZ(), 0); + eq.depop_with_timer(); + end + end + + elseif ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + if ( e.self:GetSpawnPointID() > 0 ) then + eq.set_timer("checkhp", 5000); + end + else + eq.resume_timer("depop"); + eq.stop_timer("checkhp"); + end +end diff --git a/potactics/Gindan_Darkblade.lua b/potactics/Gindan_Darkblade.lua new file mode 100644 index 0000000..aed5fb6 --- /dev/null +++ b/potactics/Gindan_Darkblade.lua @@ -0,0 +1,37 @@ +function event_spawn(e) + if ( e.self:GetSpawnPointID() == 0 ) then -- 0 means script spawned + eq.set_timer("depop", 360000); + e.self:SetSpecialAbility(49, 1); -- corpse camp + end +end + +function event_timer(e) + + if ( e.timer == "checkhp" ) then + + if ( e.self:GetHPRatio() < 50 ) then + if ( math.random(100) < 25 ) then -- some of these seem to not split? + eq.stop_timer(e.timer); + else + eq.spawn2(214032, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- Gindan_Darkblade + eq.spawn2(214032, 0, 0, e.self:GetX(), e.self:GetY() - 10, e.self:GetZ(), 0); + eq.depop_with_timer(); + end + end + + elseif ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + if ( e.self:GetSpawnPointID() > 0 ) then + eq.set_timer("checkhp", 5000); + end + else + eq.resume_timer("depop"); + eq.stop_timer("checkhp"); + end +end diff --git a/potactics/Gindan_Flayer.lua b/potactics/Gindan_Flayer.lua new file mode 100644 index 0000000..942ed5f --- /dev/null +++ b/potactics/Gindan_Flayer.lua @@ -0,0 +1,66 @@ +function event_spawn(e) + if ( e.self:GetSpawnPointID() == 0 ) then -- 0 means script spawned + eq.set_timer("depop", 360000); + e.self:SetSpecialAbility(49, 1); -- corpse camp + end +end + +function event_timer(e) + + if ( e.timer == "checkhp" ) then + + if ( e.self:GetHPRatio() < 50 ) then + if ( math.random(100) < 25 ) then -- some of these seem to not split? + eq.stop_timer(e.timer); + else + eq.spawn2(214084, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- Gindan Flayer + eq.spawn2(214084, 0, 0, e.self:GetX(), e.self:GetY() - 10, e.self:GetZ(), 0); + eq.depop_with_timer(); + end + end + + elseif ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + if ( e.self:GetSpawnPointID() > 0 ) then + eq.set_timer("checkhp", 5000); + end + + -- RZ script anti-cheat to prevent players from casting on third floor mobs from 2nd floor + -- if we're a flayer in RZ area + if ( e.self:GetZ() > 156 and e.self:GetX() > 0 ) then + local t = e.self:GetTarget(); + -- if target is on 2nd floor near the safe room near zone-in + if ( t and t.valid and t:GetZ() < 100 and t:GetX() < 600 ) then + + local types = { 214313, 214320, 214311 }; -- RZ script TZ, VZ, fake RZ + for _, id in ipairs(types) do + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(id) ) then + -- warp mob and player on top of boss + local mob = eq.get_entity_list():GetMobByNpcTypeID(id); + e.self:GMMove(mob:GetX(), mob:GetY(), mob:GetZ(), 0); + if ( t:IsClient() ) then + t:CastToClient():MovePC(214, mob:GetX(), mob:GetY(), mob:GetZ(), 0); + end + break; + end + end + end + end + else + eq.resume_timer("depop"); + end +end + +function event_signal(e) + -- Rallos event spawns. doing this to not have to clone the NPC type + if ( e.signal == e.self:GetID() ) then + eq.set_timer("checkhp", 5000); + eq.stop_timer("depop"); + end +end diff --git a/potactics/Giwin_Mirakon.lua b/potactics/Giwin_Mirakon.lua new file mode 100644 index 0000000..900bff8 --- /dev/null +++ b/potactics/Giwin_Mirakon.lua @@ -0,0 +1,34 @@ +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + local zeks = tonumber(qglobals.zeks) or 0; + + if ( e.message:findi("hail") ) then + + if ( zeks > 1 ) then + e.other:Message(0, "Giwin Mirakon tells you, 'Well then, it took you long enough to get here. The Zeks have grown tired of waiting for your arrival. They have retired to their quarters. I think that you should seek them out, they must have a warm welcome for someone with such a warring spirit! Do not mind the minions of this realm, it is within their nature to challenge any that come within their reach. Press on and find the Zeks!'"); + else + e.other:Message(0, "Giwin Mirakon tells you, 'Who are you to talk to me? Are you a Warrior of Rallos? What are you doing here?! Maybe you should leave before you make me angry.'"); + end + end +end + +function event_trade(e) + + local itemInst, item; + + for i = 1, 4 do + + itemInst = e.trade["item"..i]; + + if ( itemInst and itemInst.valid ) then + item = itemInst:GetItem(); + + e.self:Say("Thanks for the "..itemInst:GetName().." "..e.other:GetCleanName().."."); + + if ( item:NoDrop() == 255 and e.self:CountLoot() < 30 ) then + e.self:RemoveItem(itemInst:GetID()) -- prevent multiples + e.self:AddItem(itemInst:GetID(), itemInst:GetCharges(), true); + end + end + end +end diff --git a/potactics/Glykus_Helmir.lua b/potactics/Glykus_Helmir.lua new file mode 100644 index 0000000..4fca878 --- /dev/null +++ b/potactics/Glykus_Helmir.lua @@ -0,0 +1,177 @@ +local BOAR_SPAWNIDS = { 361349, 361350, 361351, 361352, 361356 }; +local FLEDGLING_TYPE = 214040; -- a_Fledgling_War_Boar +local ENRAGED_TYPE = 214308; -- an_Enraged_War_Boar +local FIERCE_TYPE = 214296; -- a_Fierce_War_Boar +local GREATER_TYPE = 214300; -- a_Greater_War_Boar +local ENCHANTED_TYPE = 214307; -- an_Enchanted_War_Boar + +local boars = {}; +for _, id in ipairs(BOAR_SPAWNIDS) do + boars[id] = 0; +end + +function EvolveBoar(spawnId) + + local entityId = boars[spawnId]; + + if ( entityId and entityId > 0 ) then + + local mob = eq.get_entity_list():GetMobID(entityId); + + if ( mob and mob.valid ) then + + local typeId = mob:GetNPCTypeID(); + local newType; + + if ( typeId == FLEDGLING_TYPE ) then + newType = ENRAGED_TYPE; + elseif ( typeId == ENRAGED_TYPE ) then + newType = FIERCE_TYPE; + elseif ( typeId == FIERCE_TYPE ) then + newType = GREATER_TYPE; + elseif ( typeId == GREATER_TYPE ) then + newType = ENCHANTED_TYPE; + end + + if ( newType ) then + local newMob = eq.spawn2(newType, 0, 0, mob:GetX(), mob:GetY(), mob:GetZ(), mob:GetHeading()); + boars[spawnId] = newMob:GetID(); + newMob:SetRunning(true); + mob:Depop(); + end + end + end +end + +function GetBoarIDs() + local npc; + local elist = eq.get_entity_list(); + + for _, id in ipairs(BOAR_SPAWNIDS) do + + npc = elist:GetSpawnByID(id):GetNPC(); + if ( npc.valid ) then + boars[id] = npc:GetID(); -- fledgling spawned + end + end +end + +function DepopBoars() + eq.debug("Boar depop"); + + local npcList = eq.get_entity_list():GetNPCList(); + local typeId; + + for npc in npcList.entries do + + if ( npc.valid ) then + typeId = npc:GetNPCTypeID() + if ( typeId == ENRAGED_TYPE or typeId == FIERCE_TYPE + or typeId == GREATER_TYPE or typeId == ENCHANTED_TYPE + ) then + if ( npc:GetHP() > 0 ) then -- don't poof corpses + npc:Depop(); + end + end + end + end +end + +function event_combat(e) + if ( e.joined ) then + GetBoarIDs(); + eq.set_timer("evolve", 59000); + eq.set_timer("respawn", 6000); + eq.zone_emote(0, "Glykus Helmir blows a carved boar horn. 'My pets! I enfuse you with the power of Zek. Grow and battle with Glykus!'"); + else + eq.stop_timer("respawn"); + eq.set_timer("poof", 90000); + end +end + +function event_timer(e) + + if ( e.timer == "evolve" ) then + + eq.debug("Evolving boars"); + + local elist = eq.get_entity_list(); + local spawn, mob; + + for spawnId, entityId in pairs(boars) do + + spawn = elist:GetSpawnByID(spawnId); + + -- keep resetting respawn timers to prevent more boars from spawning while some are still alive in evolved forms + if ( not spawn:GetNPC().valid ) then + spawn:SetTimer(1200000); + end + + -- change boar to new form + if ( entityId > 0 ) then + mob = elist:GetMobID(entityId); + + if ( mob and mob.valid ) then + EvolveBoar(spawnId); + end + end + end + + local npcList = eq.get_entity_list():GetNPCList(); + local typeId; + + for npc in npcList.entries do + + if ( npc.valid ) then + typeId = npc:GetNPCTypeID() + if ( typeId == FLEDGLING_TYPE or typeId == ENRAGED_TYPE or typeId == FIERCE_TYPE + or typeId == GREATER_TYPE or typeId == ENCHANTED_TYPE + ) then + npc:MoveTo(e.self:GetX(), e.self:GetY(), e.self:GetZ(), -1, true); + end + end + end + + if ( not e.self:IsEngaged() ) then + eq.stop_timer(e.timer); + end + + elseif ( e.timer == "respawn" ) then + + -- if boar is dead, poofed, or we otherwise lost track of it, spawn a new fledgling one in pen + local elist = eq.get_entity_list(); + + for spawnId, entityId in pairs(boars) do + + spawn = elist:GetSpawnByID(spawnId); + + if ( entityId > 0 ) then + mob = elist:GetMobID(entityId); + + if ( not mob or not mob.valid ) then + spawn:SetTimer(1); + boars[spawnId] = 0; + end + else + spawn:SetTimer(1); + end + end + + elseif ( e.timer == "poof" ) then + eq.stop_timer(e.timer); + + if ( not e.self:IsEngaged() ) then + DepopBoars(); + end + end +end + +function event_signal(e) + if ( e.signal == 1 ) then + GetBoarIDs(); -- pen spawn, record entity ID + end +end + +function event_death_complete(e) + DepopBoars(); +end diff --git a/potactics/Huge_spikes.lua b/potactics/Huge_spikes.lua new file mode 100644 index 0000000..557e8c5 --- /dev/null +++ b/potactics/Huge_spikes.lua @@ -0,0 +1,6 @@ +function event_combat(e) + if ( e.joined ) then + e.self:Emote("explode angrily from the walls."); + eq.depop_with_timer(); + end +end diff --git a/potactics/Stampede_Controller.lua b/potactics/Stampede_Controller.lua new file mode 100644 index 0000000..fb42da0 --- /dev/null +++ b/potactics/Stampede_Controller.lua @@ -0,0 +1,80 @@ +local BOAR1_TYPE = 214301; -- a_Stampeding_Boar (armored) +local BOAR2_TYPE = 214302; -- a_Stampeding_Boar (unarmored) +local PIGLET_TYPE = 214303; -- #a_Stampeding_Piglet + +local SPAWN_LOCS_X = { 1205, 1200, 1210, 1200, 1205, 1200, 1210, 1200, 1210, 1205 }; +local SPAWN_LOCS_Y = { -300, -300, -310, -320, -310, -310, -315, -315, -300, -315 }; + +function SpawnBoars() + local y, npc, pause; + local z = -286.625; + local x2, x3, y2, y3; + + -- spawn 30 boars and 1 piglet from 10 spawnpoints + for j = 1, 4 do + pause = 10 + j * 4; + + for i, x in ipairs(SPAWN_LOCS_X) do + + y = SPAWN_LOCS_Y[i]; + + if ( j == 4 and i > 1 ) then + return; + end + + if ( i == 1 or i == 4 or i == 7 ) then + x2 = math.random(485,750); + y2 = math.random(-330, 300); + + if ( i == 1 and j == 1 ) then + x3 = x2; -- save these for piglet; it needs to run out with wave 1 + y3 = y2; + end + elseif ( i == 10 ) then + x2 = 925; + y2 = 220; + end + + if ( j == 4 ) then + z = -294.75; + pause = 14; + npc = eq.spawn2(PIGLET_TYPE, 0, 0, x, y, z, 0); + x2 = x3; + y2 = y3; + else + z = -286.625; + npc = eq.spawn2(eq.ChooseRandom(BOAR1_TYPE, BOAR2_TYPE), 0, 0, x, y, z, 0); + end + npc = npc:CastToNPC(); + npc:SetRunning(true); + npc:SetWanderType(6); + npc:SetPauseType(1); + npc:AddWaypoint(x, y, z, -1, pause, false); + npc:AddWaypoint(1140, -240, z, -1, 0, false); + npc:AddWaypoint(925, -240, z, -1, 0, false); + npc:AddWaypoint(x2, y2, z, -1, 0, false); + npc:AddWaypoint(925, 220, z, -1, 0, false); + npc:AddWaypoint(1200, 220, z, -1, 0, false); + npc:AddWaypoint(1200, -320, z, -1, 0, false); + end + end +end + +function event_spawn(e) + eq.set_timer("stamp", math.random(40, 120) * 60000); +end + +function event_timer(e) + if ( e.timer == "stamp" ) then + eq.set_timer("stamp", math.random(40, 120) * 60000); + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(214312) ) then -- Rallos_Zek_the_Warlord + eq.zone_emote(0, "You hear the pounding of hooves."); + eq.set_timer("spawn", 15000); + end + + elseif ( e.timer == "spawn" ) then + eq.stop_timer(e.timer); + SpawnBoars(); + end +end diff --git a/potactics/Tagrin_Maldric.lua b/potactics/Tagrin_Maldric.lua new file mode 100644 index 0000000..c04ac2b --- /dev/null +++ b/potactics/Tagrin_Maldric.lua @@ -0,0 +1,99 @@ +local BLADE_TYPE1 = 214310; -- Animated_Decorin_Blade that drops Decorin Ore Shard +local BLADE_TYPE2 = 214326; -- Animated_Decorin_Blade that drops Useless Hunk of Metal +local SPAWN_LOCS = { + { 1260, 2136, -302.65 }, + { 1449, 1734, -305 }, + { 1246, 1775, -307 }, + { 1693, 1955, -305 }, +}; + +local spawnCount = 0; + +function CountBlades() + local npcList = eq.get_entity_list():GetNPCList(); + local count = 0; + + for npc in npcList.entries do + + if ( npc.valid and (npc:GetNPCTypeID() == BLADE_TYPE1 or npc:GetNPCTypeID() == BLADE_TYPE2) ) then + count = count + 1; + end + end + + return count; +end + +function SpawnBlades(n, tagrin) + local loc, mob, tar, typ; + for i = 1, n do + loc = SPAWN_LOCS[math.random(1, 4)]; + + if ( spawnCount > 10 ) then -- these stop dropping shards after a certain number of spawns + typ = BLADE_TYPE2; + else + typ = BLADE_TYPE1; + end + + mob = eq.spawn2(typ, 0, 0, loc[1], loc[2], loc[3], 0); + mob:SetRunning(true); + if ( tagrin:IsEngaged() ) then + tar = tagrin:GetHateRandomClient(); + end + if ( tar and tar.valid ) then + mob:AddToHateList(tar, 20); + end + + spawnCount = spawnCount + 1; + end +end + +function AggroBlades(tagrin) + local npcList = eq.get_entity_list():GetNPCList(); + local tar; + + for npc in npcList.entries do + + if ( npc.valid and (npc:GetNPCTypeID() == BLADE_TYPE1 or npc:GetNPCTypeID() == BLADE_TYPE2) ) then + + if ( tagrin:IsEngaged() ) then + tar = tagrin:GetHateRandom(); + end + if ( tar and tar.valid ) then + npc:AddToHateList(tar, 20); + end + end + end +end + +function event_spawn(e) + spawnCount = 0; +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("tick", 6000); + AggroBlades(e.self); + else + eq.stop_timer("tick"); + end +end + +function event_timer(e) + + if ( e.timer == "tick" ) then + + if ( e.self:GetY() < 1685 ) then + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + e.self:WipeHateList(); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + end + + local blades = CountBlades(); + + if ( blades < 3 ) then + SpawnBlades(3 - blades, e.self); + elseif ( blades < 5 ) then + SpawnBlades(1, e.self); + end + end +end diff --git a/potactics/War_Forge_Assistant.lua b/potactics/War_Forge_Assistant.lua new file mode 100644 index 0000000..55f1d80 --- /dev/null +++ b/potactics/War_Forge_Assistant.lua @@ -0,0 +1,4 @@ +-- War_Forge_Assistant is a warrior class that appear to run on live without any run speed buff. +function event_spawn(e) + e.self:SetRunning(true); +end \ No newline at end of file diff --git a/potactics/a_Fledgling_War_Boar.lua b/potactics/a_Fledgling_War_Boar.lua new file mode 100644 index 0000000..732baed --- /dev/null +++ b/potactics/a_Fledgling_War_Boar.lua @@ -0,0 +1,3 @@ +function event_spawn(e) + eq.signal(214053, 1); -- Glykus_Helmir +end diff --git a/potactics/a_Gladiator.lua b/potactics/a_Gladiator.lua new file mode 100644 index 0000000..7690c8a --- /dev/null +++ b/potactics/a_Gladiator.lua @@ -0,0 +1,94 @@ +local SPAWN_LOCS = { + { 683, 941, -217 }, + { 1326, 1928, -326 }, + { 1205, 1973, -337 }, + { -872, 1979, 215 }, + { 732, -549, -9 }, + { 1393, 195, -218 }, + { -456, -1652, 162 }, + { 586, -360, -17 }, + { 795, 657, -302 }, + { -180, -460, 78 }, + { 280, 99, 7 }, + { 679, 569, -9 }, + { -513, 1716, 167 }, + { -199, -404, 68 }, + { -148, -370, 68 }, + { 1245, 442, 122 }, + { -180, -477, 78 }, + { -150, 784, 79 }, + { -248, 1139, 108 }, + { 449, 119, -16 }, + { 320, -180, 170 }, + { 280, 260, 3 }, + { 1196, -351, 122 }, + { 1101, 868, -9 }, + { 511, 220, -13 }, + { -150, 359, 69 }, + { 1218, 352, 122 }, + { -282, 658, 122 }, + { -484, -1643, 162 }, + { -514, 1789, 197 }, + { -231, 961, 78 }, + { -434, -1621, 162 }, + { -265, -644, 122 }, + { -500, -1597, 164 }, + { -798, -2107, 196 }, + { -560, -1530, 162 }, + { 700, -695, -9 }, + { 680, 487, -16 }, + { 700, -754, -9 }, + { 654, -549, -11 }, + { -298, 1190, 108 }, + { -835, -2102, 196 }, + { 1080, -294, 125 }, + { -145, 550, 78 }, + { 500, 10, 170 }, + { 1260, -465, 125 }, + { 1497, -845, -296 }, + { -108, -599, 78 }, + { 1212, 1393, -328 }, + { 1666, 1095, -319 }, + { 1124, -393, -294 }, + { 1530, 2018, -328 }, + { 1205, 1941, -337 }, + { 1232, 1245, -325 }, + { 1205, 2004, -337 }, + { -459, -1582, 162 }, + { -261, -1435, 114 }, + { 1260, -430, 120 }, +}; + +function event_spawn(e) + if ( e.self:GetSpawnPointID() == 0 ) then -- not from a spawngroup; spawned from a pit corpse via script + eq.set_timer("depop", 300000); + else + -- spawngroup ones are moved at spawn time so the spawn loc is effectively randomized + local loc = SPAWN_LOCS[math.random(1, #SPAWN_LOCS)]; + e.self:GMMove(loc[1], loc[2], loc[3], 0, true, true); + eq.set_timer("depop", 600000); + eq.set_timer("check", 50000); + e.self:MoveTo(math.random(440, 935), math.random(-380, 405), -291, -1, true); + end +end + +function event_timer(e) + + if ( e.timer == "check" ) then + if ( e.self:GetZ() < -270 and e.self:GetX() > 440 and e.self:GetY() < 410 ) then + e.self:AssignWaypoints(29); + eq.stop_timer(e.timer); + end + + elseif ( e.timer == "depop" and not e.self:Charmed() and not e.self:IsEngaged() ) then + eq.depop_with_timer(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/potactics/encounters/Rallos.lua b/potactics/encounters/Rallos.lua new file mode 100644 index 0000000..873a247 --- /dev/null +++ b/potactics/encounters/Rallos.lua @@ -0,0 +1,629 @@ +local CONTROLLER_TYPE = 214104; -- General_Invisible_Man +local UNTARGETABLE_TYPE = 214052; -- #Rallos_Zek_ +local RALLOS_ZEK_TYPE = 214311; -- Rallos_Zek +local WARLORD_TYPE = 214312; -- Rallos_Zek_the_Warlord +local TALLON_TYPE = 214313; -- Tallon_Zek +local VALLON_TYPE = 214320; -- Vallon_Zek (level 73) +local VALLON_SPAWN_TYPE = 214319; -- Vallon_Zek (level 64, no slow mitigation version) +local BOAR_TYPE = 214287; -- A_Chaos_Boar +local WRAITH_TYPE = 214288; -- A_Chaos_Wraith +local BERIK_TYPE = 214056; -- Decorin_Berik +local GRUNHORK_TYPE = 214057; -- Decorin_Grunhork +local FLAYER_TYPE = 214084; -- Gindan_Flayer +local SHADOW_TYPE = 214086; -- Hendin_Shadow_Master +local ELITE_TYPE = 214289; -- A_Decorin_Elite +local PLANAR_PROJECTION_TYPE = 214322; -- A_Planar_Projection +local CORPSE_TYPES = { 214007, 214008, 214009, 214010, 214011 }; + +local UNTARGETABLE_SPAWNID = 361379; +local BERIK_SPAWNID = 361190; +local GRUNHORK_SPAWNID = 361200; +local ARENA_SPAWNIDS = { + 361141, 361347, -- two arena corpses; this will make the remaining five spawn wraiths + 361191, 361192, 361195, 361198, 361199, 361203, 361219, -- initiates + 361197, 361205, 361211, -- wraiths + 361166, 361167, 361202, 361209, 361212, -- boars + 361176, 361196, -- war crows + 361208, 361170, 361173 -- kobolds +}; +local FLOOR_SPAWNS = { + 361366, 361369, 361371, 361372, 361375, 361378, 361382, 361383, 361386, 361388, 361389, 361392, 361394, 361396, 361398, 361187, 361367, + 361368, 361370, 361373, 361374, 361376, 361377, 361380, 361381, 361384, 361385, 361387, 361390, 361391, 361393, 361395, 361397, 361399 +}; + +local phase = 0; +local arenaEmpty = false; +local raidID = 0; +local roomSpawns = {}; +local killerName, killerGName = "", ""; + +function CheckFloorSpawns() + + local npc; + for _, id in ipairs(FLOOR_SPAWNS) do + + npc = eq.get_entity_list():GetSpawnByID(id):GetNPC(); + if ( npc and npc.valid and npc:GetZ() < 118 ) then + npc:BuffFadeAll(); + if ( npc:IsEngaged() ) then + npc:WipeHateList(); + end + npc:GMMove(npc:GetSpawnPointX(), npc:GetSpawnPointY(), npc:GetSpawnPointZ(), npc:GetSpawnPointH()); + end + end +end + +function ControllerTimerEvent(e) + + if ( e.timer == "wraiths" ) then + SpawnPitWave(); + + elseif ( e.timer == "respawn" ) then + RespawnArena(); + + elseif ( e.timer == "poofadds" ) then + + if ( phase ~= 0 ) then + return; + end + + -- doing it this way to avoid making copies of these types + local mob; + local elist = eq.get_entity_list(); + local i = #roomSpawns; + while (i > 0) do + if (roomSpawns[i]) then + mob = elist:GetMobID(roomSpawns[i]); + + if ( not mob or not mob.valid or mob:IsCorpse() ) then + table.remove(roomSpawns, i); + elseif ( not mob:IsEngaged() ) then + --eq.debug("RZ script "..mob:GetName().." depop", 3); + mob:Depop(); + table.remove(roomSpawns, i); + end + end + i = i - 1; + end + if ( #roomSpawns == 0 ) then + eq.stop_timer(e.timer); + --eq.debug("RZ script adds table cleared", 3); + else + return; + end + + elseif ( e.timer == "doors" ) then + + if ( phase == 0 and eq.get_entity_list():IsMobSpawnedByNpcTypeID(UNTARGETABLE_TYPE) ) then + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(BERIK_TYPE) + and not eq.get_entity_list():IsMobSpawnedByNpcTypeID(GRUNHORK_TYPE) + ) then + + phase = 1; + eq.zone_emote(7, "The air of Drunder grows strangely cold as a rumble shakes through the fortress' walls. The Warlord stirs.") + eq.unique_spawn(TALLON_TYPE, 31, 0, 621, -560, 158, 192):SetRunning(true); + eq.unique_spawn(VALLON_TYPE, 30, 0, 594, 581, 158, 192):SetRunning(true); + + eq.get_entity_list():GetSpawnByID(GRUNHORK_SPAWNID):Disable(); + eq.get_entity_list():GetSpawnByID(BERIK_SPAWNID):Disable(); + CheckFloorSpawns(); -- anti-cheat + eq.debug(string.format("PoTactics Rallos Zek Event Phase 1 Started by %s's raid <%s>", killerName, killerGName)); + eq.csr_notice(string.format("PoTactics Rallos Zek Event Phase 1 Started by %s's raid <%s>", killerName, killerGName)); + end + end + + elseif ( e.timer == "brothers_killed" ) then + + if ( phase == 1 and eq.get_entity_list():IsMobSpawnedByNpcTypeID(UNTARGETABLE_TYPE) ) then + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(VALLON_TYPE) + and not eq.get_entity_list():IsMobSpawnedByNpcTypeID(TALLON_TYPE) + ) then + phase = 2; + eq.zone_emote(7, "A tremor rumbles through the halls of Drunder. Terror wells up inside you as you struggle to keep your footing."); + + local mob = eq.get_entity_list():GetMobByNpcTypeID(UNTARGETABLE_TYPE); + eq.unique_spawn(RALLOS_ZEK_TYPE, 0, 0, mob:GetX(), mob:GetY(), mob:GetZ(), mob:GetHeading()); + eq.depop_with_timer(UNTARGETABLE_TYPE); + eq.debug(string.format("PoTactics Rallos Zek Event Phase 2 Started by %s's raid <%s>", killerName, killerGName)); + eq.csr_notice(string.format("PoTactics Rallos Zek Event Phase 2 Started by %s's raid <%s>", killerName, killerGName)); + end + end + CheckFloorSpawns(); -- anti-cheat + + elseif ( e.timer == "brothers_depop" ) then + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(TALLON_TYPE) + and not eq.get_entity_list():IsMobSpawnedByNpcTypeID(VALLON_TYPE) + ) then + eq.signal(CONTROLLER_TYPE, 4); + RespawnDoorGuards(); + end + end + + eq.stop_timer(e.timer); +end + +function ControllerSignalEvent(e) + + if ( e.signal == 1 ) then -- spawn elites in phase 2 + eq.spawn2(ELITE_TYPE, 0, 0, 1060, 581, 124, 192); + eq.spawn2(ELITE_TYPE, 0, 0, 1060, -560, 124, 192); + + elseif ( e.signal == 2 ) then -- spawn wraiths in phase 3 + eq.set_timer("wraiths", 10000); + + elseif ( e.signal == 3 ) then -- RZTW killed + eq.set_timer("respawn", 1800000); + + elseif ( e.signal == 4 ) then -- poof room adds that spawn when the zek brothers reach end waypoints + eq.set_timer("poofadds", 60000); + + elseif ( e.signal == 5 ) then -- 'unlock' doors and spawn zek brothers + eq.set_timer("doors", 3000); + + elseif ( e.signal == 6 ) then -- when zek brother dies; check if both are dead and advance phase + eq.set_timer("brothers_killed", 3000); + + elseif ( e.signal == 7 ) then -- when zek brother poofs. has to be done with timer because if they poof at same time, it fails when checked on depop + eq.set_timer("brothers_depop", 3000); + end +end + +function UntargetableSpawnEvent(e) + phase = 0; +end + +function DoorGuardDeathEvent(e) + eq.signal(CONTROLLER_TYPE, 5); + killerName, killerGName = e.killer:GetName() or "", e.killer:CastToClient():GetGuildName() or ""; +end + +function BrotherDeathEvent(e) + eq.signal(CONTROLLER_TYPE, 6); + killerName, killerGName = e.killer:GetName() or "", e.killer:CastToClient():GetGuildName() or ""; +end + +function SpawnRoomAdd(t, x, y, h) + local mob = eq.spawn2(t, 0, 0, x, y, 178, h); + table.insert(roomSpawns, mob:GetID()); + mob:SetSpecialAbility(49, 1); -- corpse camp + return mob; +end + +function VallonWaypointArrive(e) + if ( e.wp == 3 ) then + local mob; + local t = FLAYER_TYPE; + local y = 108; + local h = 128; + local x = { 384, 355, 277, 246 }; + for i = 1, 4 do + mob = SpawnRoomAdd(t, x[i], y, h); + eq.signal(214084, mob:GetID()); -- signal flayers so they'll split and not depop + end + end +end + +function TallonWaypointArrive(e) + if ( e.wp == 3 ) then + local t = SHADOW_TYPE; + local y = -91; + local h = 0; + local x = { 381, 350, 281, 246 }; + for i = 1, 4 do + SpawnRoomAdd(t, x[i], y, h); + end + end +end + +function BrotherSpawnEvent(e) + eq.set_timer("depop", 1200000); + eq.set_timer("bounds", 5000); + eq.set_next_hp_event(50); -- for Vallon + e.self:CastToNPC():SetCastRateDetrimental(75); -- for Tallon +end + +function BrotherTimerEvent(e) + + if ( e.timer == "bounds" and e.self:GetX() > 820 ) then + e.self:WipeHateList(); + + -- UpdateWaypoint() is not working after they reach their final waypoint, so just doing this + if ( #roomSpawns > 0 ) then + if ( e.self:GetNPCTypeID() == TALLON_TYPE ) then + e.self:GMMove(319, -85, 181.6, 128, true, true); + + else + e.self:GMMove(319, 110, 181.6, 0, true, true); + end + else + e.self:GMMove(380, 6, 190, 192, true, true); + e.self:UpdateWaypoint(3); + end + + elseif ( e.timer == "depop" ) then + eq.signal(CONTROLLER_TYPE, 7); + eq.depop(); + end +end + +function VallonHPEvent(e) + if ( e.hp_event == 50 ) then + -- vallon adds are similar to the other vallon's, so reusing the type + local mob = eq.spawn2(VALLON_SPAWN_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + mob:CastToNPC():SetBaseHP(55000); + mob:Heal(); + mob:SetSpecialAbility(16, 1); -- unsnarable + mob:SetSpecialAbility(12, 1); -- unslowable + mob:SetSpecialAbility(13, 0); -- make mezable + + mob = eq.spawn2(VALLON_SPAWN_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + mob:CastToNPC():SetBaseHP(55000); + mob:Heal(); + mob:SetSpecialAbility(16, 1); -- unsnarable + CheckFloorSpawns(); -- anti-cheat + end +end + +function RespawnDoorGuards() + phase = 0; + raidID = 0; + killerName, killerGName = "", ""; + eq.get_entity_list():GetSpawnByID(GRUNHORK_SPAWNID):Enable(); + eq.get_entity_list():GetSpawnByID(BERIK_SPAWNID):Enable(); + eq.debug("Rallos Zek event reset"); +end + +function RallosSpawnEvent(e) + eq.set_timer("depop", 1170000); + eq.set_timer("bounds", 6000); + eq.set_next_hp_event(98); +end + +function RallosCombatEvent(e) + if ( e.joined ) then + eq.set_timer("elites", 20000); + if ( e.self:GetHPRatio() > 98 ) then + eq.set_next_hp_event(98); + end + else + eq.stop_timer("elites"); + eq.resume_timer("depop"); + end +end + +function RallosTimerEvent(e) + + if ( e.timer == "bounds" ) then + if ( e.self:GetZ() < 115 ) then + + if ( e.self:IsEngaged() ) then + local target = e.self:GetTarget(); + if ( target and target.valid ) then + eq.zone_emote(7, "Rallos begins to laugh, causing the earth to rumble around you. 'Enough of this foolishness! The warlord has better things to do then chase petty mortals all day!'"); + e.self:CastSpell(982, target:GetID()); + end + end + + e.self:GMMove(500, 20, 194.125, 64, true, true); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + e.self:WipeHateList(); + end + + elseif ( e.timer == "elites" ) then + eq.set_timer(e.timer, 50000); + eq.signal(CONTROLLER_TYPE, 1); + + elseif ( e.timer == "depop" ) then + eq.signal(CONTROLLER_TYPE, 4); + eq.spawn_from_spawn2(UNTARGETABLE_SPAWNID); + RespawnDoorGuards(); + RespawnArena(); + eq.depop(); + end +end + +function RallosHPEvent(e) + if ( e.hp_event == 98 ) then + eq.pause_timer("depop"); + eq.set_next_hp_event(75); + CheckFloorSpawns(); -- anti-cheat + + elseif ( e.hp_event == 75 ) then + eq.set_next_hp_event(50); + DespawnArena(); + CheckFloorSpawns(); -- anti-cheat + + elseif ( e.hp_event == 50 ) then + eq.get_entity_list():MessageClose(e.self, true, 200, 0, "Rallos Zek growls, sending shivers up your spine. He lets out a great warcry sending you flying back against the stone walls. He turns and runs out across the platform and jumps into the arena."); + eq.unique_spawn(WARLORD_TYPE, 0, 0, 705, 0, -290, 0); + eq.signal(CONTROLLER_TYPE, 4); + phase = 3; + killerName, killerGName = e.self:GetTarget():GetName() or "", e.self:GetTarget():CastToClient():GetGuildName() or ""; + eq.debug(string.format("PoTactics Rallos Zek Event Phase 3 Started by %s's raid <%s>", killerName, killerGName)); + eq.csr_notice(string.format("PoTactics Rallos Zek Event Phase 3 Started by %s's raid <%s>", killerName, killerGName)); + eq.depop(); + end +end + +function DespawnArena() + if ( arenaEmpty ) then + return; + end + eq.zone_emote(7, "A great cry echoes across the field of blood and through the halls of Drunder. The creatures in the arena flee to avoid the impending doom."); + + local elist = eq.get_entity_list(); + for _, id in ipairs(ARENA_SPAWNIDS) do + elist:GetSpawnByID(id):Disable(); + end + + arenaEmpty = true; +end + +function RespawnArena() + local elist = eq.get_entity_list(); + for _, id in ipairs(ARENA_SPAWNIDS) do + elist:GetSpawnByID(id):Enable(); + end + eq.debug("Arena spawns enabled"); + arenaEmpty = false; +end + +function WarlordSpawnEvent(e) + eq.set_timer("depop", 1200000); + eq.set_timer("bounds", 6000); + raidID = 0; +end + +function WarlordCombatEvent(e) + if ( e.joined ) then + eq.set_timer("twitch", 55000); + eq.pause_timer("depop"); + eq.stop_timer("checkhp"); + else + raidID = 0; + eq.stop_timer("twitch"); + eq.resume_timer("depop"); + if ( e.self:GetHPRatio() < 99 ) then + eq.set_timer("checkhp", 3000); + end + end +end + +function WarlordTimerEvent(e) + + if ( e.timer == "bounds" ) then + if ( e.self:GetX() > 940 or e.self:GetX() < 439 or e.self:GetY() < -400 or e.self:GetY() > 410 or e.self:GetZ() > -250 ) then + + if ( e.self:IsEngaged() ) then + local target = e.self:GetTarget(); + if ( target and target.valid ) then + eq.zone_emote(7, "Rallos begins to laugh, causing the earth to rumble around you. 'Enough of this foolishness! The warlord has better things to do then chase petty mortals all day!'"); + e.self:CastSpell(982, target:GetID()); + end + end + + e.self:GMMove(705, 0, -290, 0, true, true); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + e.self:WipeHateList(); + end + + elseif ( e.timer == "checkhp" ) then + if ( e.self:GetHP() == e.self:GetMaxHP() ) then + eq.stop_timer(e.timer); + eq.depop_all(BOAR_TYPE); + eq.depop_all(WRAITH_TYPE); + end + + elseif ( e.timer == "twitch" ) then + eq.zone_emote(7, "The corpses across the grounds of the arena begin to twitch and spasm as the will of the Warlord brings them to life."); + eq.signal(CONTROLLER_TYPE, 2); + + elseif ( e.timer == "depop" ) then + eq.spawn_from_spawn2(UNTARGETABLE_SPAWNID); + RespawnArena(); + RespawnDoorGuards(); + eq.csr_notice("PoTactics Rallos Zek the Warlord despawned"); + eq.depop(); + end +end + +function WarlordDeathEvent(e) + eq.spawn2(PLANAR_PROJECTION_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + eq.signal(PLANAR_PROJECTION_TYPE, e.killer:GetID()); -- e.killer for death_complete is somebody with kill rights, not death blow + RespawnDoorGuards(); + eq.signal(CONTROLLER_TYPE, 3); + eq.debug(string.format("PoTactics Rallos Zek the Warlord slain by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); + eq.csr_notice(string.format("PoTactics Rallos Zek the Warlord slain by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end + +function WarlordHateListEvent(e) + + if ( e.joined and e.other:IsClient() ) then + + local client = e.other:CastToClient(); + if ( client:GetGM() ) then + return; + end + + local raid = client:GetRaid(); + local id = raid:GetID(); + + -- banish players who are either not in a raid of 20 or more, or not in the raid that pulled RZ + if ( not raid.valid or raid:RaidCount() < 20 ) then + eq.debug("Rallos Zek the Warlord is banishing player "..e.other:GetName().." for not being in a raid of 20 or more"); + client:MovePC(202, 1008, -44, 390, 0); -- PoK Library + + elseif ( raidID ~= 0 and raidID ~= id ) then + eq.debug("Rallos Zek the Warlord is banishing player "..e.other:GetName().." for not being in the raid that pulled him"); + client:MovePC(202, 1008, -44, 390, 0); -- PoK Library + + elseif ( id ~= 0 and raidID == 0 ) then + raidID = id; + eq.debug("Rallos Zek pulled by raid ID "..id); + end + end +end + +function EliteSpawnEvent(e) + eq.set_timer("depop", 1200000); + eq.set_timer("aggro", 10000); + eq.set_timer("check", 10000); +end + +function EliteTimerEvent(e) + if ( e.timer == "aggro" ) then + eq.stop_timer(e.timer); + + local rz = eq.get_entity_list():GetMobByNpcTypeID(RALLOS_ZEK_TYPE); + local t; + if ( not rz or not rz.valid ) then + rz = eq.get_entity_list():GetMobByNpcTypeID(WARLORD_TYPE); -- RZTW sometimes gets elites running to him. happens on Live and AK + end + if ( rz and rz.valid ) then + if ( rz:IsEngaged() ) then + t = rz:GetHateRandomClient(400); -- add random hater from RZ's list to elite's list + end + e.self:SetRunning(true); + e.self:MoveTo(rz:GetX(), rz:GetY(), rz:GetZ(), -1, true); + if ( t and t.valid ) then + e.self:AddToHateList(t, 20); + end + end + + elseif ( e.timer == "check" and phase == 2 ) then + -- if elite pulled downstairs + if ( e.self:GetZ() < 118 ) then + local rz = eq.get_entity_list():GetMobByNpcTypeID(RALLOS_ZEK_TYPE); + if ( rz and rz.valid ) then + e.self:GMMove(rz:GetX(), rz:GetY(), rz:GetZ(), 0); + e.self:WipeHateList(); + end + end + + elseif ( e.timer == "depop" ) then + eq.depop(); + end +end + +function SpawnPitWave() + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(WARLORD_TYPE) ) then + return; + end + + local npcList = eq.get_entity_list():GetNPCList(); + local mob, rng; + local typesMap = {}; + + for _, t in ipairs(CORPSE_TYPES) do + typesMap[t] = 1; + end + + for i = 1, 2 do + mob = eq.spawn2(BOAR_TYPE, 0, 0, 705, 0, -290, 0); + rng = math.random(5, 11); + mob:SetWalkspeed(rng / 10.0); + mob:SetRunspeed(rng / 10.0 * 2.5); + end + + for npc in npcList.entries do + + if ( npc.valid ) then + + if ( typesMap[npc:GetNPCTypeID()] ) then + mob = eq.spawn2(WRAITH_TYPE, 0, 0, npc:GetX(), npc:GetY(), npc:GetZ()+5, math.random(1, 255)); + rng = math.random(5, 11); + mob:SetWalkspeed(rng / 10.0); + mob:SetRunspeed(rng / 10.0 * 2.5); + npc:Depop(true); + end + end + end +end + +function PitAddSpawnEvent(e) + eq.set_timer("depop", 600000); + eq.set_timer("move", 10); + eq.set_timer("bounds", 6000); +end + +function PitAddTimerEvent(e) + + if ( e.timer == "move" and not e.self:IsEngaged() ) then + eq.set_timer(e.timer, 6000); + + local rz = eq.get_entity_list():GetMobByNpcTypeID(WARLORD_TYPE); + if ( rz and rz.valid ) then + e.self:MoveTo(rz:GetX(), rz:GetY(), rz:GetZ(), -1, true); + end + + elseif ( e.timer == "bounds" ) then + + if ( e.self:GetX() > 940 or e.self:GetX() < 439 or e.self:GetY() < -400 or e.self:GetY() > 410 or e.self:GetZ() > -250 ) then + + e.self:GMMove(705, 0, -290, 0); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + e.self:WipeHateList(); + eq.set_timer("move", 10); + end + + elseif ( e.timer == "depop" ) then + eq.depop(); + end +end + +function DepopCombatEvent(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + + eq.register_npc_event("Rallos", Event.timer, CONTROLLER_TYPE, ControllerTimerEvent); + eq.register_npc_event("Rallos", Event.signal, CONTROLLER_TYPE, ControllerSignalEvent); + + eq.register_npc_event("Rallos", Event.spawn, UNTARGETABLE_TYPE, UntargetableSpawnEvent); + + eq.register_npc_event("Rallos", Event.death_complete, BERIK_TYPE, DoorGuardDeathEvent); + eq.register_npc_event("Rallos", Event.death_complete, GRUNHORK_TYPE, DoorGuardDeathEvent); + + eq.register_npc_event("Rallos", Event.death_complete, TALLON_TYPE, BrotherDeathEvent); + eq.register_npc_event("Rallos", Event.death_complete, VALLON_TYPE, BrotherDeathEvent); + eq.register_npc_event("Rallos", Event.spawn, TALLON_TYPE, BrotherSpawnEvent); + eq.register_npc_event("Rallos", Event.timer, TALLON_TYPE, BrotherTimerEvent); + eq.register_npc_event("Rallos", Event.combat, TALLON_TYPE, DepopCombatEvent); + eq.register_npc_event("Rallos", Event.spawn, VALLON_TYPE, BrotherSpawnEvent); + eq.register_npc_event("Rallos", Event.timer, VALLON_TYPE, BrotherTimerEvent); + eq.register_npc_event("Rallos", Event.combat, VALLON_TYPE, DepopCombatEvent); + eq.register_npc_event("Rallos", Event.hp, VALLON_TYPE, VallonHPEvent); + + eq.register_npc_event("Rallos", Event.waypoint_arrive, TALLON_TYPE, TallonWaypointArrive); + eq.register_npc_event("Rallos", Event.waypoint_arrive, VALLON_TYPE, VallonWaypointArrive); + + eq.register_npc_event("Rallos", Event.spawn, RALLOS_ZEK_TYPE, RallosSpawnEvent); + eq.register_npc_event("Rallos", Event.timer, RALLOS_ZEK_TYPE, RallosTimerEvent); + eq.register_npc_event("Rallos", Event.combat, RALLOS_ZEK_TYPE, RallosCombatEvent); + eq.register_npc_event("Rallos", Event.hp, RALLOS_ZEK_TYPE, RallosHPEvent); + + eq.register_npc_event("Rallos", Event.spawn, ELITE_TYPE, EliteSpawnEvent); + eq.register_npc_event("Rallos", Event.timer, ELITE_TYPE, EliteTimerEvent); + eq.register_npc_event("Rallos", Event.combat, ELITE_TYPE, DepopCombatEvent); + + eq.register_npc_event("Rallos", Event.spawn, WARLORD_TYPE, WarlordSpawnEvent); + eq.register_npc_event("Rallos", Event.timer, WARLORD_TYPE, WarlordTimerEvent); + eq.register_npc_event("Rallos", Event.combat, WARLORD_TYPE, WarlordCombatEvent); + eq.register_npc_event("Rallos", Event.hate_list, WARLORD_TYPE, WarlordHateListEvent); + eq.register_npc_event("Rallos", Event.death_complete, WARLORD_TYPE, WarlordDeathEvent); + + eq.register_npc_event("Rallos", Event.spawn, WRAITH_TYPE, PitAddSpawnEvent); + eq.register_npc_event("Rallos", Event.timer, WRAITH_TYPE, PitAddTimerEvent); + eq.register_npc_event("Rallos", Event.combat, WRAITH_TYPE, DepopCombatEvent); + eq.register_npc_event("Rallos", Event.spawn, BOAR_TYPE, PitAddSpawnEvent); + eq.register_npc_event("Rallos", Event.timer, BOAR_TYPE, PitAddTimerEvent); + eq.register_npc_event("Rallos", Event.combat, BOAR_TYPE, DepopCombatEvent); +end diff --git a/potactics/player.lua b/potactics/player.lua new file mode 100644 index 0000000..b29c91f --- /dev/null +++ b/potactics/player.lua @@ -0,0 +1,58 @@ +function event_click_door(e) + local id = e.door:GetDoorID(); + + if ( id >= 14 and id <= 17 ) then -- top floor doors to RZ room + + local elist = eq.get_entity_list(); + if ( e.self:GetGM() + or elist:IsMobSpawnedByNpcTypeID(214311) -- Rallos_Zek + or elist:IsMobSpawnedByNpcTypeID(214312) -- Rallos_Zek_the_Warlord + or elist:IsMobSpawnedByNpcTypeID(214313) -- script Tallon Zek + or elist:IsMobSpawnedByNpcTypeID(214320) -- script Vallon Zek + ) then + e.door:ForceOpen(e.self); + end + + elseif ( id == 2 or id == 3 ) then -- Vallon doors + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(214316) + and not eq.get_entity_list():IsMobSpawnedByNpcTypeID(214317) + ) then + + e.self:MovePC(214, 279, 182, 5, 128*2); + if ( e.self:GetPet().valid and not e.self:GetPet():Charmed() ) then + e.self:GetPet():GMMove(279, 182, 5, 128*2); + end + else + e.self:Message(0, "The doors are held shut by magical forces."); + end + + elseif ( id == 4 or id == 5 ) then -- Tallon doors + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(214026) ) then + + e.self:MovePC(214, 279, 182, 5, 128*2); + if ( e.self:GetPet().valid and not e.self:GetPet():Charmed() ) then + e.self:GetPet():GMMove(279, 182, 5, 128*2); + end + else + e.self:Message(0, "The doors are held shut by magical forces."); + end + + elseif ( id == 24 ) then -- pit teleporter + + local rz = eq.get_entity_list():GetMobByNpcTypeID(214312); -- Rallos_Zek_the_Warlord + if ( rz and rz.valid and rz:IsEngaged() ) then + e.self:MovePC(214, rz:GetX(), rz:GetY(), rz:GetZ(), rz:GetHeading()); + return; + end + + e.self:MovePC(203, -4, -191, -628, 149); -- potranquility + + elseif ( id == 25 and not eq.get_entity_list():IsMobSpawnedByNpcTypeID(214053) ) then -- Glykus_Helmir teleporter + e.self:MovePC(203, -4, -191, -628, 149); -- potranquility + + elseif ( id == 26 and not eq.get_entity_list():IsMobSpawnedByNpcTypeID(214054) ) then -- Tagrin_Maldric teleporter + e.self:MovePC(203, -4, -191, -628, 149); -- potranquility + end +end \ No newline at end of file diff --git a/potactics/script_init.lua b/potactics/script_init.lua new file mode 100644 index 0000000..cdcba2a --- /dev/null +++ b/potactics/script_init.lua @@ -0,0 +1 @@ +eq.load_encounter("Rallos"); diff --git a/potimea/219053.lua b/potimea/219053.lua new file mode 100644 index 0000000..9e82f63 --- /dev/null +++ b/potimea/219053.lua @@ -0,0 +1,267 @@ +-- PoTimeA controller +local POTIMEA_CONTROLLER_TYPE = 219053; +local POTIMEB_CONTROLLER_TYPE = 223077; +local TIMEB_ZONEID = 223; +local TRIAL_TELEPORTS = { + [1] = { -35, 1636, 495, 128 }, -- earth + [2] = { -36, 1352, 495, 128 }, -- air + [3] = { -27, 1103, 495, 128 }, -- undead + [4] = { -51, 857, 495, 128 }, -- water + [5] = { -55, 569, 495, 128 }, -- fire +}; +local PHASE_LOCS = { + [3] = { 800, 1100, 494, 128 }, + [4] = { -401, 0, 348.75, 128 }, + [5] = { -419, 0, 3.75, 128 }, + [6] = { -419, 0, 3.75, 128 }, +}; +local RUN_SPEED_BUFFS = { 220,1922,3185, 424,1554,2002, 874,1340, 169, 278,1776,1921,2517,2524,1330,1750,2007, 717,2605 }; + +local activeRaidID, activeInstanceID, numRaiders, activePhase, quarmState = 0, 0, 0, 0, 0; +local trialRaiders = {}; +local block, playerZoned; + +function Unpacket(s, numberize, returnTable) + local t = {}; + for w in s:gmatch("([^;]+)") do + if ( numberize ) then + w = tonumber(w); + end + table.insert(t, w); + end + if (returnTable) then + return t; + else + return unpack(t); + end +end + +function event_signal(e) + + if ( e.signal == 1 ) then -- new instance started + + local charID, dialNum, raidID, instanceID = Unpacket(e.data, true); + + if ( raidID and instanceID ) then + eq.debug("Plane of Time instance started. Raid ID: "..raidID.."; instanceID: "..instanceID); + activeRaidID = raidID; + activeInstanceID = instanceID; + numRaiders, activePhase, quarmState = 0, 1, 0; + for i = 1, 9 do + trialRaiders[i] = 0; + end + eq.signal(POTIMEB_CONTROLLER_TYPE, 2); -- send confirm + block = false; + eq.stop_timer("unblock"); + --eq.zone_emote(0, "The portal flashes briefly, then glows steadily."); + + -- send instance starter inside + e.signal = 3; + event_signal(e); + return; + end + + elseif ( e.signal == 2 ) then -- instance expired + + activePhase = -1; + eq.set_timer("cooldown", 120000); + eq.signal(POTIMEB_CONTROLLER_TYPE, 2); -- send confirm + eq.debug("Plane of Time instance expired."); + + elseif ( e.signal == 3 ) then -- player clicked dial; sent from dial + + if ( not e.data or block ) then + return; + end + + local charID, dialNum, raidID, instanceID = Unpacket(e.data, true); + local client = eq.get_entity_list():GetClientByCharID(charID); + local charName = client:GetName(); + eq.debug("client clicked dial. charID: "..charID.." ("..charName.."); dialNum: "..dialNum.."; raidID: "..raidID.."; instanceID: "..instanceID); + eq.debug("active raid ID: "..activeRaidID.."; active instance ID: "..activeInstanceID); + + if ( activePhase == -1 ) then + client:Message(0, "The portal glows weakly at first, then somewhat brighter. It appears to be recharging."); + return; + end + + if ( activeRaidID == 0 and activeInstanceID == 0 and activePhase == 0 ) then + -- TimeB is inactive and not cooling down, relay signal + eq.signal(POTIMEB_CONTROLLER_TYPE, 1, 0, e.data..";"..charName); + block = true; -- block signals until the instance is started + eq.set_timer("unblock", 60000); -- in case signals are lost somehow + + elseif ( activeRaidID ~= raidID ) then + -- player is in the wrong raid + -- note: this text is not what Sony used. I don't have a log of what they used so made this up + client:Message(0, "The portal glows momentarily before fading. You see a brief vision of unfamiliar warriors in a great battle against the gods."); + + + elseif ( instanceID > 0 and activeInstanceID ~= instanceID ) then + -- player is saved to an instance that is not the same as the active instance + + local qglobals = eq.get_qglobals(POTIMEB_CONTROLLER_TYPE, 223); + local instanceTimers = qglobals["time_timers_"..instanceID]; + local instanceExpired = true; + if ( instanceTimers ) then + local timers = Unpacket(instanceTimers, true, true); + local now = os.time(); + for _, t in pairs(timers) do + if ( now < (t*100) ) then + instanceExpired = false; + break; + end + end + else + eq.debug(client:GetName().."'s saved instance ("..instanceID..") does not exist. Allowing entry."); + end + + if ( instanceExpired and instanceTimers ) then + eq.debug(client:GetName().."'s saved instance ("..instanceID..") has expired timers. Allowing player to switch instances."); + end + + if ( not instanceExpired ) then + -- player is saved to an instance with timers not expired. deny entry + -- note: this text is not what Sony used. I don't have a log of what they used so made this up + client:Message(0, "The portal glows momentarily before fading. You sense that you are not attuned with whoever first activated it."); + else + -- send player into active instance even though IDs don't match + e.data = charID..";"..dialNum..";"..raidID..";"..activeInstanceID; + event_signal(e); + return; + end + + elseif ( (instanceID == activeInstanceID or instanceID == 0) and raidID == activeRaidID ) then + + local p2reject; + if ( activePhase == 2 ) then + if ( dialNum < 3 ) then + if ( trialRaiders[6] >= 36 ) then + p2reject = true; + end + elseif ( dialNum > 3 ) then + if ( trialRaiders[8] >= 36 ) then + p2reject = true; + end + else + if ( trialRaiders[7] >= 18 ) then + p2reject = true; + end + end + end + + if ( numRaiders >= 60 or (activePhase == 1 and trialRaiders[dialNum] >= 18) or p2reject ) then + client:Message(0, "The energy has been drained from this portal. You must wait before you can use it."); + else + client:Message(0, "The portal glows and the mists of time swirl around you."); + + -- keep track of how many people get in + if ( activePhase == 1 ) then + trialRaiders[dialNum] = trialRaiders[dialNum] + 1; + elseif ( activePhase == 2 ) then + if ( dialNum == 1 or dialNum == 2 ) then + trialRaiders[6] = trialRaiders[6] + 1; + elseif ( dialNum == 3 ) then + trialRaiders[7] = trialRaiders[7] + 1; + elseif ( dialNum == 4 or dialNum == 5 ) then + trialRaiders[8] = trialRaiders[8] + 1; + end + end + + -- remove run speed buffs if quarm engaged + if ( activePhase == 6 and quarmState > 1 and quarmState < 5 ) then + for _, id in ipairs(RUN_SPEED_BUFFS) do + client:BuffFadeBySpellID(id); + end + end + + eq.signal(POTIMEB_CONTROLLER_TYPE, 3, 0, client:CharacterID()..";"..dialNum); + + local loc = TRIAL_TELEPORTS[dialNum]; + if ( PHASE_LOCS[activePhase] ) then + loc = PHASE_LOCS[activePhase]; + end + playerZoned = true; + client:MovePC(TIMEB_ZONEID, loc[1], loc[2], loc[3], loc[4]); + end + end + + elseif ( e.signal == 4 ) then -- zone state update / phase change + + if ( not e.data ) then + return; + end + + activeRaidID, activeInstanceID, activePhase = Unpacket(e.data, true); + + eq.debug("PoTimeB (instance ID "..activeInstanceID.."; raid ID "..activeRaidID..") active phase is now "..activePhase); + eq.signal(POTIMEB_CONTROLLER_TYPE, 2); -- send confirm + block = false; + + elseif ( e.signal == 5 ) then -- periodic player counts + + local oldCount = numRaiders; + local counts = Unpacket(e.data, true, true); + + if ( not playerZoned ) then + -- use PoTimeB numbers if nobody has zoned since last update. doing this because if people zone over right before + -- TimeB reports counts, then they can be off due to zoning delay + trialRaiders = counts; + numRaiders = counts[9]; + else + -- somebody zoned over recently, so use higher of the two values + for i = 1, 9 do + if ( counts[i] > trialRaiders[i] ) then + trialRaiders[i] = counts[i]; + end + end + numRaiders = trialRaiders[9]; + end + playerZoned = false; + + if ( oldCount ~= numRaiders ) then + if ( activePhase == 1 ) then + eq.debug("Active Raiders: "..numRaiders.." -- Earth: "..trialRaiders[1].."; Air: "..trialRaiders[2].."; Undead: "..trialRaiders[3].."; Water: "..trialRaiders[4].."; Fire: "..trialRaiders[5]); + elseif ( activePhase == 2 ) then + eq.debug("Active Raiders: "..numRaiders.." -- Earth+Air: "..trialRaiders[6].."; Undead: "..trialRaiders[7].."; Water+Fire: "..trialRaiders[8]); + else + eq.debug("Active Raiders: "..numRaiders); + end + end + + elseif ( e.signal == 6 ) then -- Quarm state + + if ( not e.data ) then + return; + end + + quarmState = tonumber(e.data) or 0; + + if ( quarmState == 5 ) then + eq.debug("Quarm slain; instance ends in 1 hour"); + else + eq.debug("Quarm state is now "..quarmState); + end + + elseif ( e.signal == 7 ) then -- PoTimeB zone reset + ResetZone(); + eq.debug("PoTimeB script reset"); + end +end + +function event_timer(e) + if ( e.timer == "unblock" ) then + block = false; + --eq.debug("unblocked", 3); + elseif ( e.timer == "cooldown" ) then + ResetZone(); + end + eq.stop_timer(e.timer); +end + +function ResetZone() + activeRaidID, activeInstanceID, numRaiders, activePhase = 0, 0, 0, 0; + for i = 1, 8 do + trialRaiders[i] = 0; + end +end diff --git a/potimea/player.lua b/potimea/player.lua new file mode 100644 index 0000000..9efb0de --- /dev/null +++ b/potimea/player.lua @@ -0,0 +1,42 @@ +local POTIMEA_CONTROLLER_TYPE = 219053; +local POTIMEB_CONTROLLER_TYPE = 223077; +local DIALS = { 2, 4, 1, 5, 3 }; + +local blocks = {}; + +function event_click_door(e) + local door_id = e.door:GetDoorID(); + + if ( door_id >= 8 and door_id <= 12 ) then + + -- prevent spam clicks from sending multiple signals + local now = os.time(); + local charID = e.self:CharacterID(); + if ( blocks[charID] and blocks[charID] > now ) then + return; + end + + local raid = e.self:GetRaid(); + + if ( not e.self:GetGM() and e.self:GetLevel() < 65 ) then + e.self:Message(13, "You lack the will to pass through this portal safely."); + return; + end + if ( not e.self:GetGM() and (not raid.valid or raid:RaidCount() < 7) ) then + e.self:Message(0, "You don't have sufficient power to affect things in the Plane of Time. Gather your forces to increase your strength."); + return; + end + + local qglobals = eq.get_qglobals(e.self); + local instanceID = 0; + if ( qglobals.time_instance ) then + instanceID = tonumber(qglobals.time_instance) or 0; + end + + door_id = door_id - 7; + + eq.signal(POTIMEA_CONTROLLER_TYPE, 3, 0, charID..";"..DIALS[door_id]..";"..raid:GetID()..";"..instanceID); + + blocks[charID] = now + 2; + end +end diff --git a/potimeb/223077.lua b/potimeb/223077.lua new file mode 100644 index 0000000..7225e16 --- /dev/null +++ b/potimeb/223077.lua @@ -0,0 +1,1047 @@ +-- Plane of Time B instance controller + +local MAX_CLIENTS = 60; +local POTIMEA_CONTROLLER_TYPE = 219053; +local POTIMEB_CONTROLLER_TYPE = 223077; +local EVENTS_CONTROLLER = 223078; +local QUARM_TYPE = 223008; + +local EMOTE_STRINGS = { + [1] = "An hourglass appears in the distance, the few remaining sands trickling down. As the last grain falls, multicolored lights erupt from it, surrounding you in a brilliant flash.", + [2] = "Ethereal mists gather at the far wall, causing it fade in and out of focus.", + [3] = "In the distance, an hourglass appears, the grains of sand falling methodically into place. As quickly as the image was formed, it dissipates. You have %s left.", + + [4] = "As the path before you opens up in a swirl of mystical energy, the faded image of an hourglass appears. You have %s.", + [5] = "Solusek Ro says, 'This is absurd, why are we wasting our time and energy on this!? Direct action is needed, now! Banishing Zebuxoruk will not stop the mortals from entering into our planes. Their greed for power will have them soon trampling through our realms!'", + [6] = "Rallos Zek says, 'On this I agree! We must take action and the time is now. I will not have these mortals achieving the powers that we hold.'", + [7] = "Fennin Ro says, 'Calm yourselves, you need to appreciate the situation that is at hand.'", + [8] = "Xegony says, 'Please listen to reason, we are doing what we must. The mortals possess a direct tie to Zebuxoruk. If his stasis is finished their link will dwindle as well as their powers and knowledge.'", + [9] = "Rathe says, 'The knowledge that was given to them by Zebuxoruk will fade from their minds. We must do this now, for if they were able to translate the divine language all existence would unravel. The balance of power in the universe would be destroyed.'", + [10] = "Solusek Ro says, 'This is exactly the point that I am making! So you agree we must show them now that we are the power above them, and not to be questioned!'", + [11] = "Rallos Zek says, 'You must see what he refers to; we must turn to Norrath and show them our power. What they are trying to accomplish cannot be allowed to come to pass.'", + [12] = "Fennin Ro says, 'My son, please understand we must stop this advancement of mortals without halting their existence. The balance of power must be maintained. Without the mortals the balance would fade.'", + [13] = "Solusek Ro says, 'So they have made your decision for you too father. You are all wrong, this will only bring them further into our realms seeking answers! We must take action now. Have at your foolish games, I will not allow them to obtain my power.'", + [14] = "You look up and see a meteor burning through the sky; Solusek returning to his tower to brood over the matters at hand.", + [15] = "Rallos lets out a sigh of frustration that vibrates the ground at your feet.", + [16] = "Rathe says, 'Rallos still your warring heart. This is what must be done. We must place him in a stasis from which he will not be released. Come share your power. We must commence now.'", + [17] = "Xegony says, 'Mithaniel, Karana please record what you see here. With your good nature I am sure that your records will be impartial to any side. We must record this for the ages and learn from our mistake of allowing Zebuxoruk to gain so much power that is easily passed on to mortals.'", + [18] = "With a sudden jolt the wall comes into crystal clear focus.", + + [19] = "A bright aura streaks through the sky. The power of it sends a surge through your body that makes your hair stand on end.", + [20] = "The Triumvirate of Water speaks as one voice. It says, 'Now step up to the chambers. Give a part of yourselves to the bind on Zebuxoruk. Through our power, the bonds on him will never be broken. He will be eternally placed in stasis.'", + [21] = "Saryrn says, 'What of our weakened state. I refuse to return to my realm without the power to rule over my minions.'", + [22] = "Terris Thule says, 'Yes, how can I spread my touch over my lands if I lack so much of myself?'", + [23] = "Cazic Thule says, 'Do not worry daughter, we shall stay here until we are able to recover our strength.'", + [24] = "Rallos Zek says, 'Our armies shall serve us as we regenerate our abilities. We have nothing to fear.'", + [25] = "Bertoxxulous says, 'My soldiers of pestilence shall watch over us. Let us return to our chambers now.'", + [26] = "Innoruuk says, 'Are you enjoying watching this Hammer of the Tribunal? I hope your petty report will show my disdain for the Tribunal having no hand in this.'", + [27] = "The Seventh Hammer says, 'Do not waste your energy Innoruuk. You know they are eternally preoccupied with their trials. Surely even you understand many of these trials exist because of the hate you instill into the population of Norrath.'", + [28] = "Innoruuk says, 'Do not mock me! I shall seek you out after this is done and my power is restored. You will not be so smug after our next meeting.'", + [29] = "With a sudden jolt the wall comes into crystal clear focus.", + + [30] = "Terris Thule says, 'I am certain my warriors will have no problem holding back any intruders, but I have my doubts about the other armies.'", + [31] = "Vallon Zek says, 'Surely you jest. Your armies better than the regiments from our realm?'", + [32] = "Tallon Zek says, 'There is no question that our warriors of War and Tactics will be the backbone of the army.'", + [33] = "Saryrn says, 'It is no matter anyways, no mortal could ever ascend to this place. These precautions are unnecessary. Bringing them here was a waste of time.'", + [34] = "Energy swirls rapidly through the portal causing it to glow brightly with power.", + + [35] = "Rallos Zek says, 'Something is wrong. I feel Tallon and Vallon's spirits have weakened.'", + [36] = "Innoruuk says, 'Don't be a fool, that is just from giving a part of themselves to the bond on Zebuxoruk.'", + [37] = "Cazic Thule says, 'No. It is more than that, I can feel the force of Terris has been drained as well.'", + [38] = "Bertoxxulous says, 'This is not possible, could mortals have reached us here? Call in our armies, we are too weak to fight now.'", + [39] = "Innoruuk says, 'You are all incompetent! I knew you all could not be trusted. If we are defeated in our weakened state, I do not know if we will be able to coalesce again. I will never forgive you all for what has transpired today!'", + [40] = "Rallos Zek says, 'Now is not the time to bicker! We must focus our strength on these puny mortals! Minions of the army, come to our sides. Your gods beckon you, we need you now!'", + [41] = "The sundial across the room begins to glow with an ethereal energy.", + + [42] = "Fennin Ro says, 'Impossible! How could the races of Norrath have traveled this deep into the Planes?!'", + [43] = "Xegony says, 'I regret that it has come to this. They leave us with little choice, however. We must fuse our powers together. Separately we are weakened, together we will halt their advances.'", + [44] = "Triumvirate of Water says, 'Unfortunate as it may be, I agree. We must call upon the beast we swore would never be needed.'", + [45] = "The Rathe says, 'Then let us begin. Let our abilities and powers meld into one. It shall be our final protector and savior. The only thing standing between us and non-existence'", + [46] = "Your head pounds from the amount of raw energy that begins to coalesce throughout the plane. Bright flashes of red, blue, green and brown begin to come into focus on one single point. A large towering beast begins to manifest itself. A horrible creation with all the powers from each elemental realm. Your body begins to shudder by the mere presence of this being.", + [47] = "The sundial across the room begins to glow with an ethereal energy.", + +}; + +local REGIONS = { + [1] = { -500, 1000, 1500, 2000 }, -- earth trial + [2] = { -500, 1000, 1230, 1500 }, -- air + [3] = { -500, 1000, 1000, 1230 }, -- undead + [4] = { -500, 1000, 725, 1000 }, -- water + [5] = { -500, 1000, 400, 725 }, -- fire + [6] = { -500, 1000, 1230, 2000 }, -- earth+air + [7] = { -500, 1000, 1000, 1230 }, -- undead + [8] = { -500, 1000, 400, 1000 }, -- water+fire +}; +local REGION_MAX = { 18, 18, 18, 18, 18, 36, 18, 36 }; +local NUM_BOSSES_PHASE = { 5, 5, 18, 4, 4, 1 }; +local DIALOG_START_STOPS = { [1] = { 5, 18 }, [2] = { 19, 29 }, [3] = { 30, 34 }, [4] = { 35, 41 }, [5] = { 42, 47 } }; + +local zonePhase = 0; +local zoneRaidID = 0; +local zoneInstanceID = 0 +local zoneInstanceData = ""; +local zoneTimers = {}; +local zoneBossTable = {}; +local failTime = 0; +local failWarningMsg; +local validPlayers; -- sequential list of sub-tables containing character ID and os.time() of when they zoned +local bossEngagedTime = 0; +local trialStates = { [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0 }; +local dialog; +local trialSignal, signalTries, confirmSignal, confirmData, pulses; +local lastSavedClientID; + +function Unpacket(s, numberize, returnTable) + local t = {}; + for w in s:gmatch("([^;]+)") do + if ( numberize ) then + w = tonumber(w); + end + table.insert(t, w); + end + if (returnTable) then + return t; + else + return unpack(t); + end +end + +-- only called when client is about to zone over from clicking dial +function AddValidPlayer(charID, dialNum) + for i in ipairs(validPlayers) do + if ( validPlayers[i][1] == charID ) then + validPlayers[i][2] = os.time(); + validPlayers[i][3] = dialNum; + validPlayers[i][4] = true; -- zoned in from dial click? turns false shortly after zoning over + validPlayers[i][5] = bossEngagedTime; -- phase 4-6 raid boss engaged time that is set when CheckValidPlayers() is called after pull + return; + end + end + table.insert(validPlayers, { charID, os.time(), dialNum, true, bossEngagedTime }); +end + +-- sort list so late zoners are at bottom +function SortValidPlayerList() + table.sort(validPlayers, function(a, b) if ( a[2] < b[2] ) then return true; end end ); +end + +-- returns: true/false if player has ever zoned in via dial while inside the active raid +-- true/false if player just zoned in via dial. flips false next time CheckValidPlayers() is called (every 20s) +-- engage time of boss if player was in combat area when CheckValidPlayers() was called while boss was engaged +function IsValidCharID(charID, dialNum) + for _, p in ipairs(validPlayers) do + if ( p[1] == charID ) then + + if ( not dialNum ) then + return true, p[4], p[5]; + else + if ( dialNum == p[3] ) then + return true, p[4], p[5]; + elseif ( dialNum == 6 and (p[3] == 1 or p[3] == 2) ) then + return true, p[4], p[5]; + elseif ( dialNum == 7 and p[3] == 3 ) then + return true, p[4], p[5]; + elseif ( dialNum == 8 and (p[3] == 4 or p[3] == 5) ) then + return true, p[4], p[5]; + end + end + end + end + return false, false, 0; +end + +function KickPlayer(client) + if ( client:Connected() ) then + client:MovePC(219, math.random(-57, -17), math.random(-130, -90), 10, 0); -- Plane of Time A evac loc with some randomness + end +end + +function SetBossKilled(phase, bossNum) + if ( not zoneBossTable[phase] or not zoneBossTable[phase][bossNum] ) then + return false; + end + zoneBossTable[phase][bossNum] = 1; + + local t = 561600; -- 6.5 days + if ( phase == 1 ) then + t = 43200; -- 12 hours + elseif ( phase == 2 or phase == 3 ) then + t = 302400; -- 3.5 days + end + + local timerNum = phase; + if ( phase == 4 ) then + timerNum = bossNum + 3; + elseif ( phase == 5 ) then + timerNum = bossNum + 7; + elseif ( phase == 6 ) then + timerNum = 12; + end + if ( phase > 3 or zoneTimers[timerNum] == 0 ) then -- phase 1-3 start the timer from the frist boss kill + zoneTimers[timerNum] = os.time() + t; + end + + SetInstanceGlobals(); + return true; +end + +-- returns true if phase has bosses up +function CheckPhaseStatus(phase) + local now = os.time(); + local phaseDown = true; + local timerNum; + + for i = 1, #zoneBossTable[phase] do + + timerNum = phase; + if ( phase == 4 ) then + timerNum = i + 3; + elseif ( phase == 5 ) then + timerNum = i + 7; + elseif ( phase == 6 ) then + timerNum = 12; + end + + if ( zoneBossTable[phase][i] == 1 and now > zoneTimers[timerNum] ) then + zoneBossTable[phase][i] = 0; -- boss is now alive + eq.debug("Phase "..phase.." boss "..i.." timer past expiry; respawning"); + phaseDown = false; + zoneTimers[timerNum] = 0; + + elseif ( zoneBossTable[phase][i] == 0 ) then + phaseDown = false; + end + end + return not phaseDown; +end + +-- kill data string is a series of 0s and 1s representing boss kills delimited by semicolons between phases +-- timer data string is a series of integers for the respawn timestamps of phases 1-3 and each god, with last two digits cut off +function SetInstanceVars(killData, timerData) + + local bosses = Unpacket(killData, false, true); + local timers = Unpacket(timerData, true, true); + + if ( not timers or not bosses or not timers[12] or not bosses[6] ) then + return false; + end + + for p = 1, 6 do + if ( #bosses[p] ~= NUM_BOSSES_PHASE[p] ) then + return false; + end + if ( not zoneBossTable[p] ) then + zoneBossTable[p] = {}; + end + for i = 1, NUM_BOSSES_PHASE[p] do + if ( bosses[p]:sub(i, i) == "1" ) then -- "1" == boss killed + zoneBossTable[p][i] = 1; + else + zoneBossTable[p][i] = 0; + end + end + end + + for i = 1, 12 do + if ( not timers[i] ) then + zoneTimers[i] = 0; + else + zoneTimers[i] = timers[i] * 100; + end + end + + validPlayers = {}; + return true; +end + +function SetupNewInstance(controller) + + for p = 1, 6 do + zoneBossTable[p] = {}; + for i = 1, NUM_BOSSES_PHASE[p] do + zoneBossTable[p][i] = 0; + end + end + + for i = 1, 12 do + zoneTimers[i] = 0; + end + + validPlayers = {}; + + -- look for an open instance slot. this will break if there are 999 instance qglobals in use + local qglobals = eq.get_qglobals(controller); + for i = 1, 999 do + if ( not qglobals["time_timers_"..i] and not qglobals["time_kills_"..i] ) then + eq.debug("Using new instance ID "..i); + return i; + else + eq.debug("Instance ID "..i.." already exists", 3); + end + end + return 0; +end + +function SetInstanceGlobals() + + local killsStr, timersStr = "", ""; + + for p = 1, 6 do + for i = 1, NUM_BOSSES_PHASE[p] do + killsStr = killsStr..tostring(zoneBossTable[p][i]) + end + if ( p < 6 ) then + killsStr = killsStr..";"; + end + end + + for i = 1, 12 do + timersStr = timersStr..tostring(math.floor(zoneTimers[i] / 100)); -- cut off last two digits to save space in qglobal + if ( i < 12 ) then + timersStr = timersStr..";"; + end + end + + eq.set_global("time_kills_"..zoneInstanceID, killsStr, 2, "D7"); + eq.set_global("time_timers_"..zoneInstanceID, timersStr, 2, "D7"); +end + +function SavePlayerInstance(client) + eq.target_global("time_instance", tostring(zoneInstanceID), "D7", 0, client:CharacterID(), 0); + + -- set zoned-in-from-dial flag to false. doing this at same time we save player + local charID = client:CharacterID(); + for i, p in ipairs(validPlayers) do + if ( p[1] == charID ) then + p[4] = false; + end + end + lastSavedClientID = charID; + eq.debug(client:GetName().." saved to instance"); +end + +function SetPlayerBossTime(client, t) + local charID = client:CharacterID(); + for i, p in ipairs(validPlayers) do + if ( p[1] == charID ) then + p[5] = t; + end + end +end + +function TryStartTrials() + for i = 1, 5 do + if ( zonePhase == 1 and trialStates[i] == 0 ) then + + local clientList = eq.get_entity_list():GetClientList(); + local x, y; + if ( clientList ) then + + for client in clientList.entries do + + x, y = client:GetX(), client:GetY(); + + if ( trialStates[i] == 0 and not client:GetGM() and x > REGIONS[i][1] and x < REGIONS[i][2] and y > REGIONS[i][3] and y < REGIONS[i][4] ) then + eq.set_timer("trial"..i.."start", 44000); + trialStates[i] = 1; + eq.debug("Trial "..i.." started"); + eq.csr_notice(string.format("PoTime trial %i started by %s <%s>", i, client:GetName(), client:GetGuildName())); + end + end + end + end + end +end + +function CheckValidPlayers() + local data, x, y, charID, isValid, zonedFromDial; + local activeClients = 0; + local trialClients = { 0, 0, 0, 0, 0, 0, 0, 0 }; + local bootList = {}; + + local elist = eq.get_entity_list(); + local clientList = elist:GetClientList(); + local bossID = GetEngagedBossTime(); + + if ( bossEngagedTime == 0 and bossID > 0 ) then + bossEngagedTime = os.time(); + elseif ( bossID == 0 ) then + bossEngagedTime = 0; + end + + if ( clientList ) then + + for client in clientList.entries do + + if ( not client:GetGM() and client.valid and client:GetName() ~= "No name" ) then + x, y = client:GetX(), client:GetY(); + charID = client:CharacterID(); + + if ( x < 500 or y > 500 ) then + -- clients not in the graveyard + + isValid, zonedFromDial = IsValidCharID(charID); + if ( isValid ) then + activeClients = activeClients + 1; + if ( zonedFromDial ) then + SavePlayerInstance(client); + end + SetPlayerBossTime(client, bossEngagedTime); + else + bootList[charID] = true; -- player had not zoned in via dial and is not in GY + eq.debug(client:GetName().." is in combat area but should not be. Kicking them from zone."); + end + end + + if ( zonePhase == 1 ) then + + for i = 1, 5 do + if ( x > REGIONS[i][1] and x < REGIONS[i][2] and y > REGIONS[i][3] and y < REGIONS[i][4] ) then + if ( IsValidCharID(charID, i) ) then + trialClients[i] = trialClients[i] + 1; + else + if ( not bootList[charID] ) then + activeClients = activeClients - 1; + bootList[charID] = true; + eq.debug(client:GetName().." is in the wrong trial. (possible warp hack) Kicking them from zone."); + end + end + end + end + + elseif ( zonePhase == 2 ) then + + for i = 6, 8 do + if ( x > REGIONS[i][1] and x < REGIONS[i][2] and y > REGIONS[i][3] and y < REGIONS[i][4] ) then + if ( IsValidCharID(charID, i) ) then + trialClients[i] = trialClients[i] + 1; + else + if ( not bootList[charID] ) then + activeClients = activeClients - 1; + bootList[charID] = true; + eq.debug(client:GetName().." is in the wrong phase 2 area. (possible warp hack) Kicking them from zone."); + end + end + end + end + + end + end + end + + local c, charID; + if ( activeClients > MAX_CLIENTS ) then + eq.debug("Too many players in combat area detected"); + local overCap = activeClients - MAX_CLIENTS; + local boots = 0; + + SortValidPlayerList(); -- sorted by zone-in time + + for i = #validPlayers, 1, -1 do + charID = validPlayers[i][1]; + + c = elist:GetClientByCharID(charID); + if ( c.valid and not bootList[charID] ) then + bootList[charID] = true; + eq.debug(c:GetName().." booted from zone"); + boots = boots + 1; + activeClients = activeClients - 1; + if ( boots == overCap ) then + break; + end + end + end + end + + for n = 1, 8 do + if ( trialClients[n] > REGION_MAX[n] ) then + eq.debug("Too many players detected in trial #"..n); + SortValidPlayerList(); -- sorted by zone-in time + + for i = #validPlayers, 1, -1 do + charID = validPlayers[i][1]; + + c = elist:GetClientByCharID(charID); + if ( c.valid and not bootList[charID] and trialClients[n] > REGION_MAX[n] ) then + if ( c:GetX() > REGIONS[n][1] and c:GetX() < REGIONS[n][2] and c:GetY() > REGIONS[n][3] and c:GetY() < REGIONS[n][4] ) then + bootList[charID] = true; + eq.debug(c:GetName().." booted from trial region "..n); + activeClients = activeClients - 1; + trialClients[n] = trialClients[n] - 1; + end + end + end + end + end + + for charID in pairs(bootList) do + KickPlayer(elist:GetClientByCharID(charID)); + end + end + return activeClients, trialClients; +end + +function KickRaid() + local clientList = eq.get_entity_list():GetClientList(); + if ( clientList ) then + + for client in clientList.entries do + + if ( not client:GetGM() and (client:GetX() < 500 or client:GetY() > 500) ) then + KickPlayer(client); + end + end + end +end + +function DepopZone() + local npc_list = eq.get_entity_list():GetNPCList(); + + if ( npc_list ) then + for npc in npc_list.entries do + if ( npc.valid and npc:GetNPCTypeID() ~= POTIMEB_CONTROLLER_TYPE and npc:GetNPCTypeID() ~= EVENTS_CONTROLLER ) then + npc:Depop(); + end + end + end +end + +function SetFailWarningTimer() + local timeRemaining = failTime - os.time(); + + if ( timeRemaining < 1801 ) then + eq.stop_timer("fail_warning"); + return; + + elseif ( timeRemaining < 3601 ) then + failWarningMsg = "thirty minutes"; + eq.set_timer("fail_warning", (timeRemaining - 1800)*1000); + else + local hours = math.floor(timeRemaining / 3600); + local seconds = timeRemaining % 3600; + + eq.set_timer("fail_warning", (seconds+1)*1000); + if ( hours == 1 ) then failWarningMsg = "one hour"; + elseif ( hours == 2 ) then failWarningMsg = "two hours"; + elseif ( hours == 3 ) then failWarningMsg = "three hours"; + elseif ( hours == 4 ) then failWarningMsg = "four hours"; + elseif ( hours == 5 ) then failWarningMsg = "five hours"; + elseif ( hours == 6 ) then failWarningMsg = "six hours"; + elseif ( hours == 7 ) then failWarningMsg = "seven hours"; + elseif ( hours == 8 ) then failWarningMsg = "eight hours"; + elseif ( hours == 9 ) then failWarningMsg = "nine hours"; + elseif ( hours == 10 ) then failWarningMsg = "ten hours"; + elseif ( hours == 11 ) then failWarningMsg = "eleven hours"; + else failWarningMsg = ""; eq.debug("Error: hours == "..hours); end + end + failWarningMsg = string.format(EMOTE_STRINGS[3], failWarningMsg); +end + +function DoAdditionalHoursEmote(hours) + local msg; + if ( hours == 1 ) then msg = "one additional hour"; + elseif ( hours == 1.25 ) then msg = "an additional one hour and fifteen minutes"; + elseif ( hours == 2 ) then msg = "two additional hours"; + elseif ( hours == 3 ) then msg = "three additional hours"; + elseif ( hours == 4 ) then msg = "four additional hours"; + else msg = ""; end + + eq.zone_emote(0, string.format(EMOTE_STRINGS[4], msg)); +end + +-- repeat signal until we get a reply but give up after some tries. make sure important signals get received +function SendSignalRequestConfirm(signal, data) + eq.signal(POTIMEA_CONTROLLER_TYPE, signal, 0, data); + eq.set_timer("confirm", 5000); + signalTries = 10; + confirmData = data; + confirmSignal = signal; +end + +function event_signal(e) + + if ( e.signal == 1 ) then -- PoTimeA is requesting to start an instance + + local charID, dialNum, raidID, instanceID, charName = Unpacket(e.data); + charID, dialNum, raidID, instanceID = tonumber(charID), tonumber(dialNum), tonumber(raidID), tonumber(instanceID); + + if ( not dialNum or not charID or not raidID or not instanceID ) then + return + end + eq.debug("Instance start requested; charID "..charID.." ("..(charName or "?")..") clicked dial number "..dialNum.." in raid ID "..raidID.." with instance ID "..instanceID); + + if ( zonePhase == 0 ) then + + if ( instanceID == 0 ) then + eq.debug("zone inactive and player has no instance; creating new instance and notifying PoTimeA"); + instanceID = SetupNewInstance(e.self); + eq.csr_notice("PoTime started using new instance ("..instanceID..") for player ID "..charID.." ("..(charName or "?")..")"); + else + eq.debug("zone inactive and player has previous instance; using previous instance"); + local qglobals = eq.get_qglobals(e.self); + local killData = qglobals["time_kills_"..instanceID]; + local timerData = qglobals["time_timers_"..instanceID]; + if ( not killData or not timerData ) then + instanceID = SetupNewInstance(e.self); + eq.csr_notice("PoTime player's instance expired; creating new one ("..instanceID..") for player ID "..charID.." ("..(charName or "?")..")"); + else + eq.debug("Instance kill data: "..killData); + eq.debug("Instance timer data: "..timerData); + eq.debug("current os.time() is "..os.time()); + if ( not SetInstanceVars(killData, timerData) ) then + eq.debug("Error: Time instance qglobals are corrupted! Instance ID: "..instanceID); + eq.csr_notice("PoTime Error: Instance qglobals are corrupted! Instance ID: "..instanceID); + return; + end + + eq.csr_notice("PoTime started reusing instance ID "..instanceID.." for player ID "..charID.." ("..(charName or "?")..")"); + eq.csr_notice("Instance kills: "..killData); + end + end + zoneInstanceID = instanceID; + if ( zoneInstanceID == 0 ) then + eq.debug("Critical Error: All instance qglobals are in use."); + eq.csr_notice("PoTime Critical Error: All instance qglobals are in use"); + return; + end + zonePhase = 1; + zoneRaidID = raidID; + CheckPhaseStatus(1); + SendSignalRequestConfirm(1, charID..";"..dialNum..";"..raidID..";"..instanceID); -- Tell PoTimeA that we started an instance + SetInstanceGlobals(); + eq.set_timer("phase1", 45000); + eq.set_timer("check_trial_start", 2000); + for i = 1, #trialStates do + trialStates[i] = 0; + end + + elseif ( zonePhase > 0 ) then + eq.debug("Error: Zone already active and PoTimeA requesting new instance. This shouldn't happen. (zone crash?) Sending zone state update"); + SendSignalRequestConfirm(4, zoneRaidID..";"..zoneInstanceID..";"..zonePhase); + end + + elseif ( e.signal == 2 ) then -- confirmation signal from PoTimeA + signalTries = 0; + confirmData = nil; + confirmSignal = 0; + eq.stop_timer("confirm"); + eq.debug("received confirmation signal from PoTimeA"); + + elseif ( e.signal == 3 ) then -- player ID of somebody about to zone over + + if ( not e.data or zonePhase < 1 ) then + return; + end + + local charID, dialNum = Unpacket(e.data, true); + + if ( charID and dialNum ) then + -- keep track of who zoned over via dial and their zone-in time so we can boot the right people when necessary + AddValidPlayer(charID, dialNum); + --eq.debug("character ID "..charID.." about to zone over"); + end + + elseif ( e.signal == 4 ) then -- player clicked a door + + if ( not e.data ) then + return; + end + + local doorID, charID = Unpacket(e.data, true); + DoorClick(doorID, eq.get_entity_list():GetClientByCharID(charID)); + + elseif ( e.signal == 5 ) then -- trial completed + + local trialNum = tonumber(e.data); + if ( not trialNum ) then + return; + end + SetTrialCompleted(trialNum); + + elseif ( e.signal == 6 ) then -- boss killed + + local phase, bossNum = Unpacket(e.data, true); + + if ( not phase or not bossNum ) then + return; + end + + if ( SetBossKilled(phase, bossNum) ) then + + local allDead = true; + for num, killStatus in ipairs(zoneBossTable[phase]) do + if ( killStatus == 0 ) then + allDead = false; + break; + end + end + + if ( phase > 2 and allDead ) then + PhaseDialog(); + end + end + + elseif ( e.signal == 7 ) then -- phase 2 completed + PhaseDialog(); + + elseif ( e.signal == 8 ) then -- player zoned or logged into combat area + + if ( e.data ) then + + local client = eq.get_entity_list():GetClientByID(tonumber(e.data)); + if ( client and client.valid ) then + + if ( zonePhase < 1 ) then + eq.debug(client:GetName().." zoned or logged in to combat area with zone inactive; moving them to graveyard"); + client:MovePC(223, 851, -141, 396, 0); -- graveyard + else + local charID = client:CharacterID(); + local isValid, zonedFromDial, savedEngagedTime = IsValidCharID(charID); + + if ( isValid ) then + if ( not lastSavedClientID or lastSavedClientID ~= charID ) then -- prevent redundant saves. sometimes the 20 second timer saves right before this + SavePlayerInstance(client); + end + + if ( GetEngagedBossTime() > 0 and not zonedFromDial and bossEngagedTime > 0 ) then + + if ( client:FindBuff(756) and client:GetHPRatio() < 25 and client:GetManaRatio() < 5 and client:GetItemHPBonuses() < 100 ) then -- Resurrection Effects + eq.debug(client:GetName().." resurrected in combat"); + return + end + if ( bossEngagedTime > savedEngagedTime ) then + eq.debug(client:GetName().." zoned or logged into combat area while boss engaged and having left zone prior to engagement; moving them to graveyard"); + client:MovePC(223, 851, -141, 396, 0); -- graveyard + else + eq.debug(client:GetName().." non-dial zone-in while boss engaged but has current boss timestamp"); + end + end + else + eq.debug(client:GetName().." zoned or logged into combat area and has not been in the raid; moving them to graveyard"); + client:MovePC(223, 851, -141, 396, 0); -- graveyard + end + end + end + end + + elseif ( e.signal == 9 ) then -- GM commands + + local op, var = Unpacket(e.data, true); + + if ( not op ) then + return; + end + + if ( op == 1 and zonePhase > 0 ) then -- reset zone now + eq.set_timer("fail", 1000); + + elseif ( op == 2 and zonePhase > 0 ) then -- reset zone in 120 seconds + eq.zone_emote(7, "WARNING: Instance is shutting down in two minutes. Players will be removed from the combat area."); + eq.set_timer("fail", 120000); + failTime = os.time() + 120; + + elseif ( op == 3 and var and zonePhase > 0 ) then -- change running instance raid ID + eq.debug("Previous active instance raid ID was "..zoneRaidID); + zoneRaidID = var; + SendSignalRequestConfirm(4, zoneRaidID..";"..zoneInstanceID..";"..zonePhase); + eq.debug("Active instance raid ID is now "..zoneRaidID); + + elseif ( op == 4 and zonePhase == 1 ) then -- force complete phase 1 + if ( failTime < os.time() ) then + eq.stop_timer("phase1"); + SetupPhaseOne(); + end + for i = 1, 5 do + SetTrialCompleted(i); + end + eq.csr_notice("Plane of Time phase 1 skipped by GM"); + + elseif ( op == 5 ) then -- zone status + if ( zonePhase == -1 ) then + eq.debug("zone is cooling down"); + elseif ( zonePhase == 0 ) then + eq.debug("no instance active; zone is available for use"); + else + eq.debug("Zone is active. Instance ID: "..zoneInstanceID.."; Raid ID: "..zoneRaidID.."; Phase: "..zonePhase); + end + end + end +end + +function event_timer(e) + + if ( e.timer == "check_trial_start" ) then + + TryStartTrials(); + return; + + elseif ( e.timer == "pulse" ) then + + if ( failTime >= os.time() ) then + local activeClients, regionCounts = CheckValidPlayers(); + + data = ""; + for i = 1, 8 do + data = data..tostring(regionCounts[i])..";"; + end + data = data..tostring(activeClients); + eq.signal(POTIMEA_CONTROLLER_TYPE, 5, 0, data); + + pulses = pulses + 1; + if ( pulses == 3 ) then + eq.debug(string.format("Instance time remaining: %i minutes; Active clients: %i", math.floor((failTime + 1 - os.time()) / 60), activeClients)); + pulses = 0; + end + + return; + end + + elseif ( e.timer == "dialog" ) then + + eq.zone_emote(0, EMOTE_STRINGS[dialog]); + if ( dialog == DIALOG_START_STOPS[zonePhase][2] ) then + PhaseStart(); + else + dialog = dialog + 1; + return; + end + + elseif ( e.timer == "fail_warning" ) then + eq.zone_emote(0, failWarningMsg); + SetFailWarningTimer(); + return; + + elseif ( e.timer == "confirm" ) then + signalTries = signalTries - 1; + if ( signalTries < 1 ) then + eq.debug("Critical error: no response from PoTimeA sending signal "..confirmSignal.."!"); + else + eq.debug("PoTimeA failed to send signal confirmation"); + eq.signal(POTIMEA_CONTROLLER_TYPE, confirmSignal, 0, confirmData); + return; + end + + elseif ( e.timer == "fail" ) then + eq.zone_emote(0, EMOTE_STRINGS[1]); + eq.set_timer("fail2", 2500); + + elseif ( e.timer == "fail2" ) then + SetInstanceGlobals(); + SendSignalRequestConfirm(2); -- tell potimea that instance expired + eq.debug("notifying PoTimeA of instance expiry"); + zonePhase = -1; -- cooldown + eq.set_timer("cooldown", 60000); + for i = 1, #trialStates do + trialStates[i] = 0; + end + KickRaid(); + DepopZone(); + eq.csr_notice("PoTime running instance expired"); + + elseif ( e.timer == "phase1" ) then + SetupPhaseOne(); + + elseif ( e.timer == "cooldown" ) then + zonePhase = 0; + DepopZone(); + eq.debug("zone now available"); + + elseif ( e.timer:find("^trial") ) then + local _, _, trialNum = e.timer:find("^trial(%d)start$"); + trialNum = tonumber(trialNum); + if ( trialNum ) then + eq.signal(EVENTS_CONTROLLER, tonumber("1"..trialNum.."1"), 0, tostring(zoneBossTable[1][trialNum])); + eq.debug("Trial "..trialNum.." spawned. Boss status == "..tostring(zoneBossTable[1][trialNum])); + end + end + + + eq.stop_timer(e.timer); +end + +function SetTrialCompleted(t) + eq.zone_emote(0, EMOTE_STRINGS[2]); + trialStates[t] = 2; + + if ( zonePhase == 1 and + trialStates[1] == 2 and trialStates[2] == 2 and trialStates[3] == 2 and trialStates[4] == 2 and trialStates[5] == 2 ) then + eq.stop_timer("check_trial_start"); + PhaseDialog(); + end +end + +function GetAdditionalHours(phase) + local hours = 0; + + if ( phase == 2 ) then + hours = 1; + + elseif ( phase == 3 ) then + hours = 1.25; + + elseif ( phase == 4 or phase == 5 ) then + for _, b in ipairs(zoneBossTable[phase]) do + if ( b == 0 ) then + hours = hours + 1; + end + end + + elseif ( phase == 6 ) then + hours = 2; + end + return hours; +end + +function GetNextPhase() + local p = zonePhase + 1; + for i = p, 6 do + if ( CheckPhaseStatus(i) ) then + return i; + end + end + return 0; +end + +-- doesn't handle phase 1 +function PhaseStart() + zonePhase = GetNextPhase(); + if ( zonePhase == 0 ) then + return; + end + SendSignalRequestConfirm(4, zoneRaidID..";"..zoneInstanceID..";"..zonePhase); -- tell potimea that phase has changed + DoAdditionalHoursEmote(GetAdditionalHours(zonePhase)); + + local data = "" + for i, b in ipairs(zoneBossTable[zonePhase]) do + if ( i > 1 ) then + data = data..";"; + end + data = data..b; + end + + eq.signal(EVENTS_CONTROLLER, zonePhase*100+1, 0, data); + eq.csr_notice("PoTime Phase "..zonePhase.." started"); +end + +function PhaseDialog() + local now = os.time(); + + if ( zonePhase == 6 ) then + failTime = now + 3598; + eq.set_timer("fail", (failTime - now)*1000); + eq.stop_timer("fail_warning"); + eq.stop_timer("fail2"); + eq.signal(POTIMEA_CONTROLLER_TYPE, 6, 0, "5"); + eq.debug("Quarm defeated. Remaining instance time set to 1 hour."); + return; + end + if ( failTime <= now ) then + return; + end + local nextPhase = GetNextPhase(); + if ( nextPhase == 0 ) then + eq.debug("Not advancing phase; bosses in remaining phases have not respawned yet"); + return; + else + eq.debug("Phase "..zonePhase.." completed. Next phase is "..nextPhase); + end + + failTime = failTime + 3600*GetAdditionalHours(nextPhase); + eq.set_timer("fail", (failTime - now)*1000); + SetFailWarningTimer(); + + eq.set_timer("dialog", 3000); + dialog = DIALOG_START_STOPS[zonePhase][1]; +end + +function DoorClick(doorID, client) + + if ( zonePhase > 1 ) then + -- Phase 1 earth doors + if ( doorID >= 42 and doorID <= 45 ) then + OpenDoor(42, client); + return; + -- Phase 1 air doors + elseif ( doorID >= 46 and doorID <= 49 ) then + OpenDoor(46, client); + return; + -- Phase 1 undead doors + elseif ( doorID >= 29 and doorID <= 32 ) then + OpenDoor(29, client); + return; + -- Phase 1 water doors + elseif ( doorID >= 25 and doorID <= 28 ) then + OpenDoor(25, client); + return; + -- Phase 1 fire doors + elseif ( doorID >= 5 and doorID <= 8 ) then + OpenDoor(5, client); + return; + end + + if ( zonePhase > 2 ) then + -- Phase 2 earth/air doors + if ( doorID >= 38 and doorID <= 41 ) then + OpenDoor(38, client); + return; + -- Phase 2 undead doors + elseif ( doorID >= 33 and doorID <= 36 ) then + OpenDoor(33, client); + return; + -- Phase 2 water/fire doors + elseif ( doorID >= 13 and doorID <= 16 ) then + OpenDoor(13, client); + return; + end + + local x, y, z, h; + if ( zonePhase > 3 and doorID == 62 ) then -- P3 portal to P4 room + x, y, z, h = -401, 0, 348.75, 64*2; + + elseif ( zonePhase > 4 and doorID == 24 ) then -- P4 room sundial + x, y, z, h = -419, 0, 3.75, 64*2; + + elseif ( zonePhase > 5 and doorID == 51 ) then -- dial to Quarm + x, y, z, h = 251, -1124, 0, 192*2; + eq.signal(QUARM_TYPE, 1); + end + + if ( x ) then + client:MovePC(223, x, y, z, h); + if ( client:GetPet().valid ) then + client:GetPet():GMMove(x, y, z, 0); + end + return; + end + end + end + + client:Message(0, "The wall feels both insubstantial and solid at the same time, almost as if you were not in phase with it."); +end + +function OpenDoor(doorID, client) + local entity_list = eq.get_entity_list(); + + for i = doorID, doorID+3 do + entity_list:FindDoor(i):ForceOpen(client); + end +end + +function GetEngagedBossTime() + local npcList = eq.get_entity_list():GetNPCList(); + for npc in npcList.entries do + if ( npc.valid and npc:GetMaxHP() > 1000000 and npc:IsEngaged() ) then + return npc:GetID(); + end + end + return 0; +end + +function SetupPhaseOne() + zonePhase = 1; + failTime = os.time() + 3601; + eq.set_timer("fail", 3601000); + SetFailWarningTimer(); + eq.set_timer("pulse", 20000); + pulses = 0; +end diff --git a/potimeb/encounters/Phase1Air.lua b/potimeb/encounters/Phase1Air.lua new file mode 100644 index 0000000..09aac38 --- /dev/null +++ b/potimeb/encounters/Phase1Air.lua @@ -0,0 +1,119 @@ +local INSTANCE_CONTROLLER_TYPE = 223077; -- _ +local EVENTS_CONTROLLER_TYPE = 223078; -- _ +local NOBLE1_TYPE = 223038; -- An_Air_Phoenix_Noble (warrior) +local NOBLE2_TYPE = 223039; -- An_Air_Phoenix_Noble (rogue) +local NOBLE3_TYPE = 223040; -- An_Air_Phoenix_Noble (wizard) +local SERVITOR1_TYPE = 223041; -- Servitor_of_Xegony (warrior) +local SERVITOR2_TYPE = 223042; -- Servitor_of_Xegony (rogue) +local SERVITOR3_TYPE = 223043; -- Servitor_of_Xegony (wizard) +local BOSS_TYPE = 223044; -- Neimon_of_Air +local MOBS = { NOBLE1_TYPE, NOBLE2_TYPE, NOBLE3_TYPE, SERVITOR1_TYPE, SERVITOR2_TYPE, SERVITOR3_TYPE, BOSS_TYPE }; +local SHADOW_NAME = "Shadow_of_Neimon"; + +local SERV_LOCS = { + { 60, 1312, 493.753, 192, SERVITOR3_TYPE }, + { 60, 1339, 494.492, 192, SERVITOR2_TYPE }, + { 60, 1378, 493.968, 192, SERVITOR2_TYPE }, + { 60, 1395, 493.753, 192, SERVITOR1_TYPE }, +}; + +local kills, bossStatus; + +function AirSignal(e) + if ( e.signal == 121 ) then -- start trial + kills = 0; + bossStatus = tonumber(e.data); + eq.spawn2(eq.ChooseRandom(NOBLE1_TYPE, NOBLE2_TYPE, NOBLE3_TYPE), 0, 0, -10, 1336, 494.464, 223); + eq.spawn2(eq.ChooseRandom(NOBLE1_TYPE, NOBLE2_TYPE, NOBLE3_TYPE), 0, 0, -10, 1373, 494.06, 160); + eq.spawn2(eq.ChooseRandom(NOBLE1_TYPE, NOBLE2_TYPE, NOBLE3_TYPE), 0, 0, -58, 1336, 494.695, 32); + eq.spawn2(eq.ChooseRandom(NOBLE1_TYPE, NOBLE2_TYPE, NOBLE3_TYPE), 0, 0, -58, 1373, 494.243, 96); + + elseif ( e.signal == 100 ) then -- depopulate zone + eq.depop_all(NOBLE1_TYPE); + eq.depop_all(NOBLE2_TYPE); + eq.depop_all(NOBLE3_TYPE); + eq.depop_all(SERVITOR1_TYPE); + eq.depop_all(SERVITOR2_TYPE); + eq.depop_all(SERVITOR3_TYPE); + eq.depop_all(BOSS_TYPE); + end +end + +function NobleDeathComplete(e) + kills = kills + 1; + local l = SERV_LOCS[kills]; + eq.spawn2(l[5], 0, 0, l[1], l[2], l[3], l[4]); + + if ( kills == 4 ) then + + local npcList = eq.get_entity_list():GetNPCList(); + for npc in npcList.entries do + + if ( npc.valid and (npc:GetNPCTypeID() == SERVITOR1_TYPE or npc:GetNPCTypeID() == SERVITOR2_TYPE or npc:GetNPCTypeID() == SERVITOR3_TYPE) ) then + npc:SetSpecialAbility(24, 0); -- Will Not Aggro off + npc:SetSpecialAbility(25, 0); -- Immune Aggro off + npc:SetSpecialAbility(35, 0); -- No Harm from Players off + npc:SetBodyType(23, false); -- Monster + end + end + + if ( bossStatus == 1 ) then + eq.spawn2(BOSS_TYPE, 0, 0, 68, 1355, 504, 192, SHADOW_NAME); + else + eq.spawn2(BOSS_TYPE, 0, 0, 68, 1355, 504, 192); + end + end +end + +function ServitorDeathComplete(e) + kills = kills + 1; + if ( kills == 9 ) then + eq.signal(INSTANCE_CONTROLLER_TYPE, 5, 0, "2"); -- trial success + end +end + +function BossSpawn(e) + if ( bossStatus == 1 ) then + e.self:ClearItemList(); + end + eq.set_timer("buff", 100); -- CastSpell() refuses to work on spawn, because our code is awesome +end + +function BossTimer(e) + eq.stop_timer(e.timer); + -- CastSpell() is refusing to work using e.self here for some ridiculous reason + local npc = eq.get_entity_list():GetNPCByNPCTypeID(BOSS_TYPE); + npc:CastSpell(3745, npc:GetID()); -- Caustic Aura +end + +function BossDeathComplete(e) + eq.signal(INSTANCE_CONTROLLER_TYPE, 6, 0, "1;2"); + ServitorDeathComplete(e); +end + +function TargetChange(e) + -- if mob aggros on somebody outside the trial, reset + if ( e.other and e.other.valid and (e.other:GetY() > 1500 or e.other:GetY() < 1250 or e.other:GetX() > 100) ) then + eq.debug(e.self:GetName().." is aggro on player outside of trial ("..e.other:GetName()..")"); + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + e.self:WipeHateList(); + e.self:Heal(); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + end +end + +function event_encounter_load(e) + eq.register_npc_event("Phase1Air", Event.signal, EVENTS_CONTROLLER_TYPE, AirSignal); + eq.register_npc_event("Phase1Air", Event.death_complete, NOBLE1_TYPE, NobleDeathComplete); + eq.register_npc_event("Phase1Air", Event.death_complete, NOBLE2_TYPE, NobleDeathComplete); + eq.register_npc_event("Phase1Air", Event.death_complete, NOBLE3_TYPE, NobleDeathComplete); + eq.register_npc_event("Phase1Air", Event.death_complete, SERVITOR1_TYPE, ServitorDeathComplete); + eq.register_npc_event("Phase1Air", Event.death_complete, SERVITOR2_TYPE, ServitorDeathComplete); + eq.register_npc_event("Phase1Air", Event.death_complete, SERVITOR3_TYPE, ServitorDeathComplete); + eq.register_npc_event("Phase1Air", Event.spawn, BOSS_TYPE, BossSpawn); + eq.register_npc_event("Phase1Air", Event.timer, BOSS_TYPE, BossTimer); + eq.register_npc_event("Phase1Air", Event.death_complete, BOSS_TYPE, BossDeathComplete); + for _, id in ipairs(MOBS) do + eq.register_npc_event("Phase1Air", Event.target_change, id, TargetChange); + end +end diff --git a/potimeb/encounters/Phase1Earth.lua b/potimeb/encounters/Phase1Earth.lua new file mode 100644 index 0000000..a33f5b8 --- /dev/null +++ b/potimeb/encounters/Phase1Earth.lua @@ -0,0 +1,95 @@ +local INSTANCE_CONTROLLER_TYPE = 223077; -- _ +local EVENTS_CONTROLLER = 223078; -- _ +local RUBBLE_TYPE = 223030; -- a_pile_of_living_rubble +local ASSASSIN_TYPE = 223031; -- a_rock_shaped_assassin +local BOSS_TYPE = 223032; -- Terlok_of_Earth +local MOBS = { RUBBLE_TYPE, ASSASSIN_TYPE, BOSS_TYPE }; +local SHADOW_NAME = "Shadow_of_Terlok"; + +local spawns, kills, assKills, bossStatus; + +function EarthSignal(e) + if ( e.signal == 111 ) then -- start trial + spawns = 3; + kills = 0; + assKills = 0; + bossStatus = tonumber(e.data); + eq.spawn2(RUBBLE_TYPE, 0, 0, 40, 1642, 495.308, 192); + eq.spawn2(RUBBLE_TYPE, 0, 0, 65, 1608, 496, 192); + eq.spawn2(RUBBLE_TYPE, 0, 0, 65, 1677, 496, 192); + + elseif ( e.signal == 100 ) then -- depopulate zone + eq.depop_all(RUBBLE_TYPE); + eq.depop_all(ASSASSIN_TYPE); + eq.depop_all(BOSS_TYPE); + end +end + +function CheckVictory() + if ( kills == spawns ) then + local elist = eq.get_entity_list(); + + if ( not elist:IsMobSpawnedByNpcTypeID(BOSS_TYPE) and not elist:IsMobSpawnedByNpcTypeID(RUBBLE_TYPE) ) then + eq.signal(INSTANCE_CONTROLLER_TYPE, 5, 0, "1"); -- trial success + end + end +end + +function RubbleDeathComplete(e) + kills = kills + 1; + local rng = math.random(2, 4); + for i = 1, rng do + eq.spawn2(ASSASSIN_TYPE, 0, 0, math.random(-40, 65), math.random(1600, 1680), 496, 0); + end + spawns = spawns + rng; + CheckVictory(); +end + +function AssassinDeathComplete(e) + kills = kills + 1; + assKills = assKills + 1; + if ( assKills == 6 ) then + if ( bossStatus == 1 ) then + eq.spawn2(BOSS_TYPE, 0, 0, 71, 1646, 500, 192, SHADOW_NAME); + else + eq.spawn2(BOSS_TYPE, 0, 0, 71, 1646, 500, 192); + end + spawns = spawns + 1; + end + CheckVictory(); +end + +function BossSpawn(e) + if ( bossStatus == 1 ) then + e.self:ClearItemList(); + end +end + +function BossDeathComplete(e) + eq.signal(INSTANCE_CONTROLLER_TYPE, 6, 0, "1;1"); + + kills = kills + 1; + CheckVictory(); +end + +function TargetChange(e) + -- if mob aggros on somebody outside the trial, reset + if ( e.other and e.other.valid and (e.other:GetY() < 1500 or e.other:GetX() > 100) ) then + eq.debug(e.self:GetName().." is aggro on player outside of trial ("..e.other:GetName()..")"); + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + e.self:WipeHateList(); + e.self:Heal(); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + end +end + +function event_encounter_load(e) + eq.register_npc_event("Phase1Earth", Event.signal, EVENTS_CONTROLLER, EarthSignal); + eq.register_npc_event("Phase1Earth", Event.death_complete, RUBBLE_TYPE, RubbleDeathComplete); + eq.register_npc_event("Phase1Earth", Event.death_complete, ASSASSIN_TYPE, AssassinDeathComplete); + eq.register_npc_event("Phase1Earth", Event.spawn, BOSS_TYPE, BossSpawn); + eq.register_npc_event("Phase1Earth", Event.death_complete, BOSS_TYPE, BossDeathComplete); + for _, id in ipairs(MOBS) do + eq.register_npc_event("Phase1Earth", Event.target_change, id, TargetChange); + end +end diff --git a/potimeb/encounters/Phase1Fire.lua b/potimeb/encounters/Phase1Fire.lua new file mode 100644 index 0000000..9a6f76d --- /dev/null +++ b/potimeb/encounters/Phase1Fire.lua @@ -0,0 +1,153 @@ +local INSTANCE_CONTROLLER_TYPE = 223077; -- _ +local EVENTS_CONTROLLER_TYPE = 223078; -- _ +local FLAME1_TYPE = 223009; -- a_flame_mephit (warrior lvl 64 size 10) +local FLAME2_TYPE = 223010; -- a_flame_mephit (wizard lvl 64 size 10) +local FLAME3_TYPE = 223011; -- a_flame_mephit (boss add) +local INFERNO1_TYPE = 223012; -- an_inferno_mephit (warrior) +local INFERNO2_TYPE = 223013; -- an_inferno_mephit (rogue) +local INFERNO3_TYPE = 223014; -- an_inferno_mephit (shadowknight) +local INFERNO4_TYPE = 223015; -- an_inferno_mephit (wizard) +local INFERNO5_TYPE = 223016; -- an_inferno_mephit (magician) +local INFERNO6_TYPE = 223017; -- an_inferno_mephit (boss add) +local BOSS_TYPE = 223018; -- Kazrok_of_Fire +local MOBS = { FLAME1_TYPE, FLAME2_TYPE, FLAME3_TYPE, INFERNO1_TYPE, INFERNO2_TYPE, INFERNO3_TYPE, INFERNO4_TYPE, INFERNO5_TYPE, INFERNO6_TYPE, BOSS_TYPE }; +local SHADOW_NAME = "Shadow_of_Kazrok"; + +local kills, left, right, middle, bossStatus, addSpawns; + +function FireSignal(e) + if ( e.signal == 151 ) then -- start trial + kills = 0; + addSpawns = 0; + bossStatus = tonumber(e.data); + if ( bossStatus == 1 ) then + eq.spawn2(BOSS_TYPE, 0, 0, 68, 573, 504, 192, SHADOW_NAME); + else + eq.spawn2(BOSS_TYPE, 0, 0, 68, 573, 504, 192); + end + left = eq.spawn2(FLAME2_TYPE, 0, 0, 46, 542, 496, 192):GetID(); + middle = eq.spawn2(FLAME1_TYPE, 0, 0, 46, 571, 496, 192):GetID(); + right = eq.spawn2(FLAME2_TYPE, 0, 0, 46, 604, 496, 192):GetID(); + + elseif ( e.signal == 100 ) then -- depopulate zone + eq.depop_all(FLAME1_TYPE); + eq.depop_all(FLAME2_TYPE); + eq.depop_all(FLAME3_TYPE); + eq.depop_all(INFERNO1_TYPE); + eq.depop_all(INFERNO2_TYPE); + eq.depop_all(INFERNO3_TYPE); + eq.depop_all(INFERNO4_TYPE); + eq.depop_all(INFERNO5_TYPE); + eq.depop_all(INFERNO6_TYPE); + eq.depop_all(BOSS_TYPE); + end +end + +function DeathComplete(e) + + local id = e.self:GetID(); + local x, y; + local Rng = function() return math.random(-45, 70), math.random(540, 610); end + + if ( id == left ) then + x, y = Rng(); + eq.spawn2(INFERNO5_TYPE, 0, 0, x, y, 496, 0); + x, y = Rng(); + eq.spawn2(INFERNO1_TYPE, 0, 0, x, y, 496, 0); + + elseif ( id == middle ) then + x, y = Rng(); + eq.spawn2(INFERNO4_TYPE, 0, 0, x, y, 496, 0); + x, y = Rng(); + eq.spawn2(INFERNO1_TYPE, 0, 0, x, y, 496, 0); + + elseif ( id == right ) then + x, y = Rng(); + eq.spawn2(INFERNO2_TYPE, 0, 0, x, y, 496, 0); + x, y = Rng(); + eq.spawn2(INFERNO3_TYPE, 0, 0, x, y, 496, 0); + end + + kills = kills + 1; + if ( kills == 9 ) then + local npc = eq.get_entity_list():GetNPCByNPCTypeID(BOSS_TYPE); + npc:SetSpecialAbility(24, 0); -- Will Not Aggro off + npc:SetSpecialAbility(25, 0); -- Immune Aggro off + npc:SetSpecialAbility(35, 0); -- No Harm from Players off + npc:SetBodyType(27, false); -- Summoned2 + npc:CastSpell(3741, npc:GetID()); -- Pyrokinetic Aura + + elseif ( kills == 16 ) then + eq.signal(INSTANCE_CONTROLLER_TYPE, 5, 0, "5"); -- trial success + end +end + +function BossSpawn(e) + eq.set_next_hp_event(75); + + if ( bossStatus == 1 ) then + e.self:ClearItemList(); + end +end + +function SpawnAdds() + local x, y, z = math.random(-45, 70), math.random(540, 610), 496; + eq.spawn2(eq.ChooseRandom(FLAME3_TYPE, INFERNO6_TYPE), 0, 0, x, y, z, 0); + eq.spawn2(eq.ChooseRandom(FLAME3_TYPE, INFERNO6_TYPE), 0, 0, x, y, z, 0); + addSpawns = addSpawns + 2; +end + +function BossHP(e) + if ( e.hp_event == 75 ) then + eq.set_next_hp_event(50); + elseif ( e.hp_event == 50 ) then + eq.set_next_hp_event(25); + end + SpawnAdds(); +end + +function BossDeathComplete(e) + -- so GMs killing with large hits don't break the script + if ( addSpawns == 0 ) then + SpawnAdds(); + SpawnAdds(); + SpawnAdds(); + elseif ( addSpawns == 2 ) then + SpawnAdds(); + SpawnAdds(); + elseif ( addSpawns == 4 ) then + SpawnAdds(); + end + eq.signal(INSTANCE_CONTROLLER_TYPE, 6, 0, "1;5"); + DeathComplete(e); +end + +function TargetChange(e) + -- if mob aggros on somebody outside the trial, reset + if ( e.other and e.other.valid and (e.other:GetY() > 750 or e.other:GetX() > 100) ) then + eq.debug(e.self:GetName().." is aggro on player outside of trial ("..e.other:GetName()..")"); + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + e.self:WipeHateList(); + e.self:Heal(); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + end +end + +function event_encounter_load(e) + eq.register_npc_event("Phase1Fire", Event.signal, EVENTS_CONTROLLER_TYPE, FireSignal); + eq.register_npc_event("Phase1Fire", Event.death, FLAME1_TYPE, DeathComplete); + eq.register_npc_event("Phase1Fire", Event.death, FLAME2_TYPE, DeathComplete); + eq.register_npc_event("Phase1Fire", Event.death, FLAME3_TYPE, DeathComplete); + eq.register_npc_event("Phase1Fire", Event.death, INFERNO1_TYPE, DeathComplete); + eq.register_npc_event("Phase1Fire", Event.death, INFERNO2_TYPE, DeathComplete); + eq.register_npc_event("Phase1Fire", Event.death, INFERNO3_TYPE, DeathComplete); + eq.register_npc_event("Phase1Fire", Event.death, INFERNO4_TYPE, DeathComplete); + eq.register_npc_event("Phase1Fire", Event.death, INFERNO5_TYPE, DeathComplete); + eq.register_npc_event("Phase1Fire", Event.death, INFERNO6_TYPE, DeathComplete); + eq.register_npc_event("Phase1Fire", Event.spawn, BOSS_TYPE, BossSpawn); + eq.register_npc_event("Phase1Fire", Event.hp, BOSS_TYPE, BossHP); + eq.register_npc_event("Phase1Fire", Event.death, BOSS_TYPE, BossDeathComplete); + for _, id in ipairs(MOBS) do + eq.register_npc_event("Phase1Fire", Event.target_change, id, TargetChange); + end +end diff --git a/potimeb/encounters/Phase1Undead.lua b/potimeb/encounters/Phase1Undead.lua new file mode 100644 index 0000000..37ab68a --- /dev/null +++ b/potimeb/encounters/Phase1Undead.lua @@ -0,0 +1,119 @@ +local INSTANCE_CONTROLLER_TYPE = 223077; -- _ +local EVENTS_CONTROLLER_TYPE = 223078; -- _ +local WAVE1_TYPE = 223019; -- an_undead_guardian (wave 1 lvl 64) +local WAVE2_1_TYPE = 223020; -- an_undead_guardian (wave 2 warrior lvl 65) +local WAVE2_2_TYPE = 223021; -- an_undead_guardian (wave 2 rogue lvl 65) +local WAVE2_3_TYPE = 223022; -- an_undead_guardian (wave 2 necro lvl 65) +local WAVE2_4_TYPE = 223023; -- an_undead_guardian (wave 2 wizard lvl 65) +local WAVE3_1_TYPE = 223024; -- an_undead_guardian (wave 3 warrior lvl 66) +local WAVE3_2_TYPE = 223025; -- an_undead_guardian (wave 3 monk lvl 66) +local WAVE3_3_TYPE = 223026; -- an_undead_guardian (wave 3 necro lvl 66) +local WAVE3_4_TYPE = 223027; -- an_undead_guardian (wave 3 wizard lvl 66) +local PROTECTOR_TYPE = 223028; -- an_undead_protector (boss wave lvl 66) +local BOSS_TYPE = 223029; -- Rythor_of_the_Undead +local MOBS = { WAVE1_TYPE, WAVE2_1_TYPE, WAVE2_2_TYPE, WAVE2_3_TYPE, WAVE2_4_TYPE, WAVE3_1_TYPE, WAVE3_2_TYPE, WAVE3_3_TYPE, WAVE3_4_TYPE, PROTECTOR_TYPE, BOSS_TYPE }; +local SHADOW_NAME = "Shadow_of_Rythor"; + +local kills, bossStatus; + +function UndeadSignal(e) + if ( e.signal == 131 ) then -- start trial + kills = 0; + bossStatus = tonumber(e.data); + if ( bossStatus == 1 ) then + eq.spawn2(BOSS_TYPE, 0, 0, 68, 1109, 500, 192, SHADOW_NAME); + else + eq.spawn2(BOSS_TYPE, 0, 0, 68, 1109, 500, 192); + end + eq.spawn2(WAVE1_TYPE, 0, 0, 44, 1082, 495, 192); + eq.spawn2(WAVE1_TYPE, 0, 0, 44, 1109, 495, 192); + eq.spawn2(WAVE1_TYPE, 0, 0, 44, 1135, 495, 192); + + elseif ( e.signal == 100 ) then -- depopulate zone + eq.depop_all(WAVE1_TYPE); + eq.depop_all(WAVE2_1_TYPE); + eq.depop_all(WAVE2_2_TYPE); + eq.depop_all(WAVE2_3_TYPE); + eq.depop_all(WAVE2_4_TYPE); + eq.depop_all(WAVE3_1_TYPE); + eq.depop_all(WAVE3_2_TYPE); + eq.depop_all(WAVE3_3_TYPE); + eq.depop_all(WAVE3_4_TYPE); + eq.depop_all(PROTECTOR_TYPE); + eq.depop_all(BOSS_TYPE); + end +end + +function DeathComplete(e) + kills = kills + 1; + if ( kills == 3 ) then + eq.spawn2(PROTECTOR_TYPE, 0, 0, 66, 1082, 500, 192); + eq.spawn2(eq.ChooseRandom(WAVE2_1_TYPE, WAVE2_2_TYPE, WAVE2_3_TYPE, WAVE2_4_TYPE), 0, 0, 7, 1089, 495, 0); + eq.spawn2(eq.ChooseRandom(WAVE2_1_TYPE, WAVE2_2_TYPE, WAVE2_3_TYPE, WAVE2_4_TYPE), 0, 0, 23, 1089, 495, 0); + eq.spawn2(eq.ChooseRandom(WAVE2_1_TYPE, WAVE2_2_TYPE, WAVE2_3_TYPE, WAVE2_4_TYPE), 0, 0, 27, 1140, 495, 128); + eq.spawn2(eq.ChooseRandom(WAVE2_1_TYPE, WAVE2_2_TYPE, WAVE2_3_TYPE, WAVE2_4_TYPE), 0, 0, 17, 1140, 495, 128); + + elseif ( kills == 7 ) then + eq.spawn2(PROTECTOR_TYPE, 0, 0, 66, 1137, 499.6, 192); + eq.spawn2(eq.ChooseRandom(WAVE3_1_TYPE, WAVE3_2_TYPE, WAVE3_3_TYPE, WAVE3_4_TYPE), 0, 0, 22, 1121, 495, 128); + eq.spawn2(eq.ChooseRandom(WAVE3_1_TYPE, WAVE3_2_TYPE, WAVE3_3_TYPE, WAVE3_4_TYPE), 0, 0, 22, 1091, 495, 0); + eq.spawn2(eq.ChooseRandom(WAVE3_1_TYPE, WAVE3_2_TYPE, WAVE3_3_TYPE, WAVE3_4_TYPE), 0, 0, -25, 1091, 495, 0); + eq.spawn2(eq.ChooseRandom(WAVE3_1_TYPE, WAVE3_2_TYPE, WAVE3_3_TYPE, WAVE3_4_TYPE), 0, 0, -25, 1124, 495, 128); + + elseif ( kills == 11 ) then + local npcList = eq.get_entity_list():GetNPCList(); + for npc in npcList.entries do + + if ( npc.valid and (npc:GetNPCTypeID() == PROTECTOR_TYPE or npc:GetNPCTypeID() == BOSS_TYPE) ) then + npc:SetSpecialAbility(24, 0); -- Will Not Aggro off + npc:SetSpecialAbility(25, 0); -- Immune Aggro off + npc:SetSpecialAbility(35, 0); -- No Harm from Players off + npc:SetBodyType(3, false); -- Undead + end + end + + elseif ( kills == 14 ) then + eq.signal(INSTANCE_CONTROLLER_TYPE, 5, 0, "3"); -- trial success + end +end + +function BossSpawn(e) + if ( bossStatus == 1 ) then + e.self:ClearItemList(); + end +end + +function BossDeathComplete(e) + eq.signal(INSTANCE_CONTROLLER_TYPE, 6, 0, "1;3"); + DeathComplete(e); +end + +function TargetChange(e) + -- if mob aggros on somebody outside the trial, reset + if ( e.other and e.other.valid and (e.other:GetY() > 1250 or e.other:GetY() < 1000 or e.other:GetX() > 100) ) then + eq.debug(e.self:GetName().." is aggro on player outside of trial ("..e.other:GetName()..")"); + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + e.self:WipeHateList(); + e.self:Heal(); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + end +end + +function event_encounter_load(e) + eq.register_npc_event("Phase1Undead", Event.signal, EVENTS_CONTROLLER_TYPE, UndeadSignal); + eq.register_npc_event("Phase1Undead", Event.death_complete, WAVE1_TYPE, DeathComplete); + eq.register_npc_event("Phase1Undead", Event.death_complete, WAVE2_1_TYPE, DeathComplete); + eq.register_npc_event("Phase1Undead", Event.death_complete, WAVE2_2_TYPE, DeathComplete); + eq.register_npc_event("Phase1Undead", Event.death_complete, WAVE2_3_TYPE, DeathComplete); + eq.register_npc_event("Phase1Undead", Event.death_complete, WAVE2_4_TYPE, DeathComplete); + eq.register_npc_event("Phase1Undead", Event.death_complete, WAVE3_1_TYPE, DeathComplete); + eq.register_npc_event("Phase1Undead", Event.death_complete, WAVE3_2_TYPE, DeathComplete); + eq.register_npc_event("Phase1Undead", Event.death_complete, WAVE3_3_TYPE, DeathComplete); + eq.register_npc_event("Phase1Undead", Event.death_complete, WAVE3_4_TYPE, DeathComplete); + eq.register_npc_event("Phase1Undead", Event.death_complete, PROTECTOR_TYPE, DeathComplete); + eq.register_npc_event("Phase1Undead", Event.spawn, BOSS_TYPE, BossSpawn); + eq.register_npc_event("Phase1Undead", Event.death_complete, BOSS_TYPE, BossDeathComplete); + for _, id in ipairs(MOBS) do + eq.register_npc_event("Phase1Undead", Event.target_change, id, TargetChange); + end +end diff --git a/potimeb/encounters/Phase1Water.lua b/potimeb/encounters/Phase1Water.lua new file mode 100644 index 0000000..3b76b2e --- /dev/null +++ b/potimeb/encounters/Phase1Water.lua @@ -0,0 +1,124 @@ +local INSTANCE_CONTROLLER_TYPE = 223077; -- _ +local EVENTS_CONTROLLER_TYPE = 223078; -- _ +local GATHERER1_TYPE = 223035; -- a_triloun_gatherer (wizard) +local GATHERER2_TYPE = 223036; -- a_triloun_gatherer (enchanter) +local DEEPWATER1_TYPE = 223033; -- a_deepwater_triloun (monk) +local DEEPWATER2_TYPE = 223034; -- a_deepwater_triloun (rogue) +local BOSS_TYPE = 223037; -- Anar_of_Water +local MOBS = { GATHERER1_TYPE, GATHERER2_TYPE, DEEPWATER1_TYPE, DEEPWATER2_TYPE, BOSS_TYPE }; +local SHADOW_NAME = "Shadow_of_Anar"; + +local kills, bossStatus, addSpawns; + +function WaterSignal(e) + if ( e.signal == 141 ) then -- start trial + kills = 0; + addSpawns = 0; + bossStatus = tonumber(e.data); + if ( bossStatus == 1 ) then + eq.spawn2(BOSS_TYPE, 0, 0, 68, 867, 500, 192, SHADOW_NAME); + else + eq.spawn2(BOSS_TYPE, 0, 0, 68, 867, 500, 192); + end + eq.spawn2(GATHERER1_TYPE, 0, 0, 49, 842, 496, 192); + eq.spawn2(GATHERER2_TYPE, 0, 0, 49, 889, 496, 192); + + elseif ( e.signal == 100 ) then -- depopulate zone + eq.depop_all(GATHERER1_TYPE); + eq.depop_all(GATHERER2_TYPE); + eq.depop_all(DEEPWATER1_TYPE); + eq.depop_all(DEEPWATER2_TYPE); + eq.depop_all(BOSS_TYPE); + end +end + +function DeathComplete(e) + kills = kills + 1; + + if ( kills >= 7 ) then + local elist = eq.get_entity_list(); + + if ( not elist:IsMobSpawnedByNpcTypeID(BOSS_TYPE) and not elist:IsMobSpawnedByNpcTypeID(GATHERER1_TYPE) + and not elist:IsMobSpawnedByNpcTypeID(DEEPWATER1_TYPE) and not elist:IsMobSpawnedByNpcTypeID(GATHERER2_TYPE) + and not elist:IsMobSpawnedByNpcTypeID(DEEPWATER2_TYPE) + ) then + eq.signal(INSTANCE_CONTROLLER_TYPE, 5, 0, "4"); -- trial success + end + end +end + +function BossDeathComplete(e) + -- in case GMs kill boss with large hits, i.e. #damage with large number + if ( addSpawns == 0 ) then + SpawnAdds(e); + SpawnAdds(e); + elseif ( addSpawns == 2 ) then + SpawnAdds(e); + end + eq.signal(INSTANCE_CONTROLLER_TYPE, 6, 0, "1;4"); + DeathComplete(e); +end + +function BossSpawn(e) + eq.set_next_hp_event(90); + if ( bossStatus == 1 ) then + e.self:ClearItemList(); + end +end + +function BossCombat(e) + if ( e.joined ) then + if ( e.self:GetHPRatio() > 91 ) then + eq.set_next_hp_event(90); + e.self:ModifyNPCStat("min_hit", "295"); + e.self:ModifyNPCStat("max_hit", "1150"); + end + end +end + +function SpawnAdds(e) + local x, y, z = e.self:GetX(), e.self:GetY(), e.self:GetZ(); + eq.spawn2(DEEPWATER1_TYPE, 0, 0, x, y, z, 0); + eq.spawn2(DEEPWATER2_TYPE, 0, 0, x, y, z, 0); + addSpawns = addSpawns + 2; +end + +function BossHP(e) + if ( e.hp_event == 90 ) then + eq.set_next_hp_event(45); + elseif ( e.hp_event == 45 ) then + eq.set_next_hp_event(20); + elseif ( e.hp_event == 20 ) then + e.self:Emote("swirls with newfound power, then begins lashing out furiously at those within reach."); + e.self:ModifyNPCStat("min_hit", "350"); + e.self:ModifyNPCStat("max_hit", "1300"); + return; + end + SpawnAdds(e); +end + +function TargetChange(e) + -- if mob aggros on somebody outside the trial, reset + if ( e.other and e.other.valid and (e.other:GetY() > 1000 or e.other:GetY() < 750 or e.other:GetX() > 100) ) then + eq.debug(e.self:GetName().." is aggro on player outside of trial ("..e.other:GetName()..")"); + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + e.self:WipeHateList(); + e.self:Heal(); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + end +end + +function event_encounter_load(e) + eq.register_npc_event("Phase1Water", Event.signal, EVENTS_CONTROLLER_TYPE, WaterSignal); + eq.register_npc_event("Phase1Water", Event.death_complete, GATHERER1_TYPE, DeathComplete); + eq.register_npc_event("Phase1Water", Event.death_complete, GATHERER2_TYPE, DeathComplete); + eq.register_npc_event("Phase1Water", Event.death_complete, DEEPWATER1_TYPE, DeathComplete); + eq.register_npc_event("Phase1Water", Event.death_complete, DEEPWATER2_TYPE, DeathComplete); + eq.register_npc_event("Phase1Water", Event.spawn, BOSS_TYPE, BossSpawn); + eq.register_npc_event("Phase1Water", Event.combat, BOSS_TYPE, BossCombat); + eq.register_npc_event("Phase1Water", Event.hp, BOSS_TYPE, BossHP); + eq.register_npc_event("Phase1Water", Event.death_complete, BOSS_TYPE, BossDeathComplete); + for _, id in ipairs(MOBS) do + eq.register_npc_event("Phase1Water", Event.target_change, id, TargetChange); + end +end diff --git a/potimeb/encounters/Phase2.lua b/potimeb/encounters/Phase2.lua new file mode 100644 index 0000000..961300c --- /dev/null +++ b/potimeb/encounters/Phase2.lua @@ -0,0 +1,439 @@ +local INSTANCE_CONTROLLER_TYPE = 223077; -- _ +local EVENTS_CONTROLLER_TYPE = 223078; -- _ +local WINDSHAPEN_TYPE = 223075; -- Windshapen_Warlord_of_Air +local OVERSEER_TYPE = 223072; -- Earthen_Overseer +local RALTHOS_TYPE = 223076; -- Ralthos_Enrok +local WAR_SHAPEN_TYPE = 223074; -- War_Shapen_Emissary +local GUTRIPPING_TYPE = 223073; -- Gutripping_War_Beast +local UNDEAD_WAVE1_TYPE = 223055; -- an_undead_guardian (lvl 64 100,000 hp) +local UNDEAD_WAVE2_TYPE = 223056; -- an_undead_guardian (lvl 64 110,000 hp) +local UNDEAD_WIZARD_TYPE = 223057; -- an_undead_guardian (lvl 65 wizard 120,000 hp) +local UNDEAD_WAVE3_TYPE = 223058; -- an_undead_guardian (lvl 66 skeleton 100,000 hp) +local UNDEAD_SUMMONED_TYPE = 223059; -- a_summoned_guardian + +local MOBS = { + TOP = { + { 223047, 253, 1459, 493, 144 }, -- An_Elemental_Stonefist (1056 unmez) + { 223048, 300, 1439, 493, 144 }, -- An_Elemental_Stonefist (870) + { 223049, 153, 1654, 493, 189, 157, 1601, 493, 186 }, -- An_Elemental_Stonefist (746) + { 223050, 151, 1684, 493, 189, 153, 1623, 493, 188 }, -- An_Elemental_Stonefist (932 unmez) + { 223045, 275, 1386, 493, 162, 233, 1433, 493, 162, 194, 1594, 493, 196, 199, 1672, 494, 200 }, -- An_Unholy_Rock_Fiend + { 223046, 251, 1413, 493, 162, 194, 1633, 494, 192 }, -- An_Unholy_Rock_Fiend (unmez) + { 223051, 190, 1329, 494, 192, 190, 1383, 494, 192 }, -- Champion_of_Korascian (832) + { 223052, 190, 1358, 494, 192, 190, 1400, 493, 192 }, -- Champion_of_Korascian (1041 unmez) + { 223053, 229, 1557, 493, 219 }, -- Champion_of_Korascian (1180 unmez) + { 223054, 269, 1626, 493, 219 }, -- Champion_of_Korascian (971) + { WINDSHAPEN_TYPE, 438, 1470, 499, 192 }, -- Windshapen_Warlord_of_Air + { OVERSEER_TYPE, 436, 1535, 499, 192 }, -- Earthen_Overseer + }, + MID = { + { UNDEAD_WAVE1_TYPE, 242, 1118, 497, 192, 242, 1101, 497, 192 }, -- an_undead_guardian (lvl 64 100,000 hp) + { UNDEAD_WAVE2_TYPE, 114, 1140, 494, 128, 114, 1060, 494, 0 }, -- an_undead_guardian (lvl 64 110,000 hp) + { UNDEAD_WIZARD_TYPE, 106, 1108, 494, 64 }, -- an_undead_guardian (lvl 65 wizard 120,000 hp) + { UNDEAD_WAVE3_TYPE, 289, 1087, 494, 0, 317, 1087, 494, 0, 317, 1126, 494, 128, 289, 1126, 495, 128 }, -- an_undead_guardian (lvl 66 skeleton 100,000 hp) + { UNDEAD_SUMMONED_TYPE, + 386, 1104, 496, 64, + 406, 1125, 496, 128, + 406, 1084, 496, 0, + 273, 1109, 496, 64, + 157, 1103, 496, 64, + 117, 1071, 496, 0, + 124, 1136, 496, 128, + }, -- a_summoned_guardian + { RALTHOS_TYPE, 439, 1109, 500, 192 }, -- Ralthos_Enrok + }, + BOT = { + { 223060, 130, 885, 496, 192, 126, 835, 496, 192 }, -- A_Crustacean_Champion (unmez) + { 223061, 131, 907, 496, 192, 130, 859, 496, 192 }, -- A_Crustacean_Champion + { 223062, 207, 816, 496, 192 }, -- A_Deepwater_Assassin + { 223063, 232, 875, 494, 192 }, -- A_Deepwater_Assassin (unmez) + { 223064, 212, 637, 496, 192 }, -- A_Ferocious_Warboar + { 223065, 243, 586, 496, 192 }, -- A_Ferocious_Warboar (unmez) + { 223070, 132, 591, 496, 192, 126, 541, 496, 192 }, -- A_Fire_Etched_Doombringer (unmez) + { 223071, 141, 611, 496, 192, 131, 569, 496, 192 }, -- A_Fire_Etched_Doombringer + { 223066, 166, 613, 496, 192, 181, 540, 496, 192 }, -- A_Smoldering_Elemental + { 223067, 174, 579, 496, 192 }, -- A_Smoldering_Elemental (unmez) + { 223068, 173, 826, 496, 192, 181, 895, 496, 192 }, -- A_Watercrafted_Hunter + { 223069, 184, 860, 496, 192 }, -- A_Watercrafted_Hunter (unmez) + { WAR_SHAPEN_TYPE, 109, 865, 500, 192 }, -- War_Shapen_Emissary + { GUTRIPPING_TYPE, 105, 573, 500, 192 }, -- Gutripping_War_Beast + }, +}; +local GRIDS = { + [WINDSHAPEN_TYPE] = { -- Windshapen_Warlord_of_Air + 260, 1586, 499, 55, 146, + 197, 1624, 499, 55, 146, + 115, 1645, 499, -1, 1, + 161, 1635, 499, 193, 9999 + }, + [OVERSEER_TYPE] = { -- Earthen_Overseer + 287, 1453, 496, 64, 146, + 250, 1381, 496, 62, 146, + 123, 1356, 496, -1, 1, + 192, 1356, 496, 193, 9999 + }, + [WAR_SHAPEN_TYPE] = { -- War_Shapen_Emissary + 139, 867, 499, 235, 146, + 193, 866, 499, 97, 146, + 255, 816, 499, 238, 1, + 194, 846, 499, 75, 9999 + }, + [GUTRIPPING_TYPE] = { -- Gutripping_War_Beast + 140, 579, 499, 214, 146, + 169, 588, 499, 88, 146, + 236, 638, 499, 237, 1, + 166, 577, 499, 46, 9999 + }, + [UNDEAD_WAVE1_TYPE] = { -- an_undead_guardian (lvl 64 100,000 hp) + 188, 1122, 497, 192, 20, + 242, 1118, 497, 192, 9999 + }, + [55] = { -- 2nd an_undead_guardian (lvl 64 100,000 hp) + 188, 1088, 497, 192, 20, + 242, 1101, 497, 192, 9999 + }, + [UNDEAD_WAVE2_TYPE] = { -- an_undead_guardian (lvl 64 110,000 hp) + 114, 1120, 497, -1, 0, + 205, 1120, 497, 192, 25, + 114, 1120, 497, -1, 0, + 114, 1140, 497, 128, 9999 + }, + [56] = { -- 2nd an_undead_guardian (lvl 64 110,000 hp) + 114, 1088, 497, -1, 0, + 205, 1088, 497, 192, 25, + 114, 1088, 497, -1, 0, + 114, 1060, 497, 0, 9999 + }, + [UNDEAD_WIZARD_TYPE] = { -- an_undead_guardian (lvl 65 wizard 120,000 hp) + 327, 1110, 498, 192, 25, + 106, 1108, 497, 64, 9999 + }, +}; +local BOSS_NUMS = { + [WINDSHAPEN_TYPE] = 1, + [OVERSEER_TYPE] = 2, + [RALTHOS_TYPE] = 3, + [WAR_SHAPEN_TYPE] = 4, + [GUTRIPPING_TYPE] = 5, +}; + +local ACTIVATES = { + [WINDSHAPEN_TYPE] = { + { 223053, 223054, 21 }, -- Champion_of_Korascian (1180 unmez), Champion_of_Korascian (971) + { 223045, 223046, 23 }, -- An_Unholy_Rock_Fiend, An_Unholy_Rock_Fiend (unmez) + { 223049, 223050, 27 }, -- An_Elemental_Stonefist (746), An_Elemental_Stonefist (932 unmez) + }, + [OVERSEER_TYPE] = { + { 223047, 223048, 27 }, -- -- An_Elemental_Stonefist (1056 unmez), An_Elemental_Stonefist (870) + { 223045, 223046, 23 }, -- An_Unholy_Rock_Fiend, An_Unholy_Rock_Fiend (unmez) + { 223051, 223052, 21 }, -- Champion_of_Korascian (832), Champion_of_Korascian (1041 unmez) + }, + [WAR_SHAPEN_TYPE] = { + { 223060, 223061, 23 }, -- A_Crustacean_Champion (unmez), A_Crustacean_Champion + { 223068, 223069, 27 }, -- A_Watercrafted_Hunter, A_Watercrafted_Hunter (unmez) + { 223062, 223063, 1 }, -- A_Deepwater_Assassin, A_Deepwater_Assassin (unmez) + }, + [GUTRIPPING_TYPE] = { + { 223070, 223071, 23 }, -- A_Fire_Etched_Doombringer (unmez), A_Fire_Etched_Doombringer + { 223066, 223067, 27 }, -- A_Smoldering_Elemental, A_Smoldering_Elemental (unmez) + { 223064, 223065, 21 }, -- A_Ferocious_Warboar, A_Ferocious_Warboar (unmez) + }, +}; +local BOSS_BODYTYPES = { + [WINDSHAPEN_TYPE] = 27, + [OVERSEER_TYPE] = 23, + [WAR_SHAPEN_TYPE] = 23, + [GUTRIPPING_TYPE] = 23, +}; +local SHADOW_NAMES = { + [WINDSHAPEN_TYPE] = "Shadow_of_the_Warlord", + [OVERSEER_TYPE] = "Shadow_of_the_Overseer", + [RALTHOS_TYPE] = "Shadow_of_Ralthos", + [WAR_SHAPEN_TYPE] = "Shadow_of_the_Emissary", + [GUTRIPPING_TYPE] = "Shadow_of_the_War_Beast", +}; + +local kills, undead1, undead2, undead3, shadows, ralthosAdds; + +function SpawnPhase() + + local typ, x, y, z, h, g, mob; + + for region, rt in pairs(MOBS) do + for _, t in pairs(rt) do + + typ = t[1]; + + if ( region ~= "MID" or typ == UNDEAD_WAVE1_TYPE ) then + for i = 2, #t, 4 do + + x, y, z, h = t[i], t[i+1], t[i+2], t[i+3]; + g = GRIDS[typ]; + if ( typ == UNDEAD_WAVE1_TYPE and y < 1110 ) then + g = GRIDS[55]; + end + + if ( BOSS_NUMS[typ] and shadows[BOSS_NUMS[typ]] and shadows[BOSS_NUMS[typ]] == 1 ) then + mob = eq.spawn2(typ, 0, 0, x, y, z, h, SHADOW_NAMES[typ]); + mob:CastToNPC():ClearItemList(); + else + mob = eq.spawn2(typ, 0, 0, x, y, z, h); + end + if ( g ) then + SetGrid(mob:CastToNPC(), g); + end + end + end + end + end +end + +function SetGrid(npc, grid) + local x, y, z, h, p; + npc:SetWanderType(6); + npc:SetPauseType(1); + npc:AddWaypoint(npc:GetX(), npc:GetY(), npc:GetZ(), -1, 0, false); + + for i = 1, #grid, 5 do + x, y, z, h, p = grid[i], grid[i+1], grid[i+2], grid[i+3], grid[i+4]; + npc:AddWaypoint(x, y, z, h, p, false); + end +end + +function ActivateMobs(typ, bodyType) + local npcList = eq.get_entity_list():GetNPCList(); + for npc in npcList.entries do + + if ( npc.valid and npc:GetNPCTypeID() == typ ) then + npc:SetSpecialAbility(24, 0); -- Will Not Aggro off + npc:SetSpecialAbility(25, 0); -- Immune Aggro off + npc:SetSpecialAbility(35, 0); -- No Harm from Players off + npc:SetBodyType(bodyType, false); + end + end + +end + +function Unpacket(s, numberize, returnTable) + local t = {}; + for w in s:gmatch("([^;]+)") do + if ( numberize ) then + w = tonumber(w); + end + table.insert(t, w); + end + if (returnTable) then + return t; + else + return unpack(t); + end +end + +function Phase2Signal(e) + + if ( e.signal == 201 ) then + shadows = Unpacket(e.data, true, true); + SpawnPhase(); + kills, undead1, undead2, undead3, ralthosAdds = 0, 0, 0, 0, 0; + + elseif ( e.signal == 100 ) then -- depopulate zone + + for _, t in pairs(MOBS) do + for _, t2 in pairs(t) do + eq.depop_all(t2[1]); + end + end + end +end + +function BossWaypointArrive(e) + local typ = e.self:GetNPCTypeID(); + + if ( e.wp == 4 ) then + ActivateMobs(typ, BOSS_BODYTYPES[typ]); + e.self:RemoveWaypoints(); + e.self:SaveGuardSpot(); + + elseif ( ACTIVATES[typ] ) then + ActivateMobs(ACTIVATES[typ][e.wp][1], ACTIVATES[typ][e.wp][3]); + ActivateMobs(ACTIVATES[typ][e.wp][2], ACTIVATES[typ][e.wp][3]); + if ( e.wp == 3 ) then + e.self:SetWalkspeed(0.6); + end + end +end + +function SpawnUndeadWave(typ) + + local m; + for i, t in ipairs(MOBS.MID) do + if ( t[1] == typ ) then + m = t; + break; + end + end + + local x, y, z, h, g, mob; + local secondGrid = typ - 223000; + secondGrid = GRIDS[secondGrid]; + + for i = 2, #m, 4 do + x, y, z, h = m[i], m[i+1], m[i+2], m[i+3]; + g = GRIDS[typ]; + if ( i == 6 and secondGrid ) then + g = secondGrid; + end + + if ( BOSS_NUMS[typ] and shadows[BOSS_NUMS[typ]] and shadows[BOSS_NUMS[typ]] == 1 ) then + mob = eq.spawn2(typ, 0, 0, x, y, z, h, SHADOW_NAMES[typ]); + mob:CastToNPC():ClearItemList(); + else + mob = eq.spawn2(typ, 0, 0, x, y, z, h); + end + if ( g ) then + SetGrid(mob:CastToNPC(), g); + end + end + +end + +function CheckEmote(typ) + local tabl; + for _, t in pairs(MOBS) do + for _, t2 in pairs(t) do + if ( t2[1] == typ ) then + tabl = t; + break; + end + end + if ( tabl ) then + break; + end + end + + local found = false; + local elist = eq.get_entity_list(); + + for i, v in pairs(tabl) do + if ( elist:IsMobSpawnedByNpcTypeID(v[1]) ) then + return; + end + end + + eq.zone_emote(0, "Ethereal mists gather at the far wall, causing it fade in and out of focus."); +end + +function DeathComplete(e) + kills = kills + 1; + eq.debug("Phase 2 kills == "..kills, 3); + + local typ = e.self:GetNPCTypeID(); + if ( typ == UNDEAD_WAVE1_TYPE ) then + undead1 = undead1 + 1; + if ( undead1 == 2 ) then + SpawnUndeadWave(UNDEAD_WAVE2_TYPE); + end + + elseif ( typ == UNDEAD_WAVE2_TYPE ) then + undead2 = undead2 + 1; + if ( undead2 == 2 ) then + SpawnUndeadWave(UNDEAD_WAVE3_TYPE); + SpawnUndeadWave(UNDEAD_WIZARD_TYPE); + end + + elseif ( typ == UNDEAD_WAVE3_TYPE or typ == UNDEAD_WIZARD_TYPE ) then + undead3 = undead3 + 1; + if ( undead3 == 5 ) then + SpawnUndeadWave(RALTHOS_TYPE); + end + end + + CheckEmote(typ); + + if ( kills >= 54 ) then + local elist = eq.get_entity_list(); + + for bossType in pairs(BOSS_NUMS) do + if ( elist:IsMobSpawnedByNpcTypeID(bossType) ) then + return; + end + end + eq.signal(INSTANCE_CONTROLLER_TYPE, 7); -- tell controller phase is complete + end +end + +function BossDeathComplete(e) + -- in case GM kills it too fast + if ( e.self:GetNPCTypeID() == RALTHOS_TYPE ) then + if ( ralthosAdds == 0 ) then + SpawnBossAdds(e.self); + SpawnBossAdds(e.self); + elseif ( ralthosAdds == 2 ) then + SpawnBossAdds(e.self); + end + end + eq.signal(INSTANCE_CONTROLLER_TYPE, 6, 0, "2;"..BOSS_NUMS[e.self:GetNPCTypeID()]); + DeathComplete(e); +end + +function RalthosSpawn(e) + eq.set_next_hp_event(75); +end + +function RalthosHP(e) + if ( e.hp_event == 75 ) then + eq.set_next_hp_event(25); + end + SpawnBossAdds(e.self); +end + +function SpawnBossAdds(boss) + + local m; + for i, t in ipairs(MOBS.MID) do + if ( t[1] == UNDEAD_SUMMONED_TYPE ) then + m = t; + break; + end + end + + local spawn = math.random(1, 7); + + if ( boss:GetX() > 355 ) then + spawn = math.random(1, 4); + elseif ( boss:GetX() < 175 ) then + spawn = math.random(4, 7); + end + + local x = m[(spawn-1)*4+2] + math.random(-10, 10); + local y = m[(spawn-1)*4+3] + math.random(-10, 10); + local z = m[(spawn-1)*4+4]; + local h = m[(spawn-1)*4+4]; + + local mob = eq.spawn2(UNDEAD_SUMMONED_TYPE, 0, 0, x, y, z, h); + mob:CastToNPC():MoveTo(boss:GetX(), boss:GetY(), boss:GetZ(), -1, true); + mob = eq.spawn2(UNDEAD_SUMMONED_TYPE, 0, 0, x, y, z, h); + mob:CastToNPC():MoveTo(boss:GetX(), boss:GetY(), boss:GetZ(), -1, true); + ralthosAdds = ralthosAdds + 2; +end + +function event_encounter_load(e) + eq.register_npc_event("Phase2", Event.signal, EVENTS_CONTROLLER_TYPE, Phase2Signal); + eq.register_npc_event("Phase2", Event.waypoint_arrive, WINDSHAPEN_TYPE, BossWaypointArrive); + eq.register_npc_event("Phase2", Event.waypoint_arrive, OVERSEER_TYPE, BossWaypointArrive); + eq.register_npc_event("Phase2", Event.waypoint_arrive, GUTRIPPING_TYPE, BossWaypointArrive); + eq.register_npc_event("Phase2", Event.waypoint_arrive, WAR_SHAPEN_TYPE, BossWaypointArrive); + for _, t in pairs(MOBS) do + for _, t2 in pairs(t) do + eq.register_npc_event("Phase2", Event.death_complete, t2[1], DeathComplete); + end + end + eq.register_npc_event("Phase2", Event.death_complete, WINDSHAPEN_TYPE, BossDeathComplete); + eq.register_npc_event("Phase2", Event.death_complete, OVERSEER_TYPE, BossDeathComplete); + eq.register_npc_event("Phase2", Event.death_complete, RALTHOS_TYPE, BossDeathComplete); + eq.register_npc_event("Phase2", Event.death_complete, GUTRIPPING_TYPE, BossDeathComplete); + eq.register_npc_event("Phase2", Event.death_complete, WAR_SHAPEN_TYPE, BossDeathComplete); + + eq.register_npc_event("Phase2", Event.hp, RALTHOS_TYPE, RalthosHP); + eq.register_npc_event("Phase2", Event.spawn, RALTHOS_TYPE, RalthosSpawn); +end diff --git a/potimeb/encounters/Phase3.lua b/potimeb/encounters/Phase3.lua new file mode 100644 index 0000000..049f33b --- /dev/null +++ b/potimeb/encounters/Phase3.lua @@ -0,0 +1,299 @@ +local BODY_TYPES = { 21, 1, 3, 3, 21, 1, 23, 1, 1, 21, 1, 3, 3, 3, 23, 23 }; +local SHADOW_NAMES = { + "Shadow_of_the_Ferocious_Warboar", "Shadow_of_Blackheart", "Shadow_of_Xeroan", "Shadow_of_Kraksmaal", + "Shadow_of_the_Deadly_Warboar", "Shadow_of_Skullsmash", "Shadow_of_Herlsoakian", "Shadow_of_Sinrunal", + "Shadow_of_Rianit", "Shadow_of_a_Needletusk_Warboar", "Shadow_of_Xerskel", "Shadow_of_Dersool", + "Shadow_of_the_Squad_Leader", "Shadow_of_the_Dark_Knight", "Shadow_of_the_Champion", "Shadow_of_Dreamwarp", + "Shadow_of_the_Avatar", "Shadow_of_the_Guardian", +}; + +local WAVES = { + { 223084, 223083, -- A_Ferocious_Warboar, Deathbringer_Blackheart + 223079, 223081, 223082, 223080, -- a_deceiver_of_zek (69), A_Dark_Guardian_of_the_Warlord (69), A_Pig_of_War, Champion_of_War + 223081, 223079, 223081, 223079, -- A_Dark_Guardian_of_the_Warlord (69), a_deceiver_of_zek (69), A_Dark_Guardian_of_the_Warlord (69), a_deceiver_of_zek (69) + }, + { 223090, 223091, -- Xeroan_Xi`Geruonask, Kraksmaal_Fir`Dethsalsin + 223085, 223087, 223088, 223087, -- Revenant_of_the_Plaguebringer (68), Incantator_of_the_Plaguebringer, Footman_of_the_Plaguebringer, Incantator_of_the_Plaguebringer + 223086, 223089, 223086, 223085, -- Archon_of_the_Plaguebringer, Revenant_of_the_Plaguebringer (70), Archon_of_the_Plaguebringer, Revenant_of_the_Plaguebringer (68) + }, + { 223096, 223097, -- A_Deadly_Warboar, Deathbringer_Skullsmash + 223092, 223094, 223093, 223095, -- a_deceiver_of_zek (70), A_Dark_Guardian_of_the_Warlord (70), A_Zek_Bloodtusk, A_Warlord_of_Zek + 223094, 223092, 223094, 223092, -- A_Dark_Guardian_of_the_Warlord (70), a_deceiver_of_zek (70), A_Dark_Guardian_of_the_Warlord (70), a_deceiver_of_zek (70) + }, + { 223101, 223105, -- Herlsoakian, Sinrunal_Gorgedreal + 223099, 223103, 223135, 223102, -- A_Ferocious_Cube_Phantasmist (67), Vanquisher_of_the_Faceless (68), A_Ferocious_Cube_Formation, Battlemaster_of_the_Faceless + 223104, 223098, 223103, 223100, -- Vanquisher_of_the_Faceless (70), An_Arcane_Cube_Formation, Vanquisher_of_the_Faceless (68), A_Ferocious_Cube_Phantasmist (69) + }, + { 223109, 223108, -- Deathbringer_Rianit, A_Needletusk_Warboar + 223106, 223107, 223106, 223107, -- A_warboar_of_suffering, A_Minion_of_the_Warlord, A_warboar_of_suffering, A_Minion_of_the_Warlord + 223094, 223092, 223107, 223106, -- A_Dark_Guardian_of_the_Warlord (70), a_deceiver_of_zek (70), A_Minion_of_the_Warlord, A_warboar_of_suffering + }, + { 223115, 223116, -- Xerskel_Gerodnsal, Dersool_Fal`Giersnaol + 223111, 223114, 223111, 223110, -- Dark_Priest_of_Innoruuk (68), Nightwalker_of_Hate (female), Dark_Priest_of_Innoruuk (68), Assassin_of_Hate + 223113, 223112, 223110, 223112, -- Nightwalker_of_Hate (male), Dark_Priest_of_Innoruuk (70), Assassin_of_Hate, Dark_Priest_of_Innoruuk (70) + }, + { 223124, 223123, -- Undead_Squad_Leader, Dark_Knight_of_Terris + 223122, 223122, 223122, 223121, -- Knight_of_Nightmare (70), Knight_of_Nightmare (70), Knight_of_Nightmare (70), Knight_of_Nightmare (68), + 223120, 223117, 223119, 223118, -- A_Hobgoblin_Servant (rogue), Undead_Pawn_of_Terris (SK), A_Hobgoblin_Servant (war), Undead_Pawn_of_Terris (war) + }, + { 223132, 223131, -- Champion_of_Torment, Dreamwarp + 223125, 223129, 223127, 223130, -- Templar_of_Saryrn, Cutthroat_of_Saryrn, Thaumathurgist_of_Saryrn, Warbeast_of_Saryrn + 223128, 223126, 223128, 223125, -- Dark_Knight_of_Saryrn, Doombringer_of_Saryrn, Dark_Knight_of_Saryrn, Templar_of_Saryrn + }, + { 223134, 223133 }, -- Avatar_of_the_Elements, Supernatural_Guardian +}; + +local BOSS_LOCS = { + 1230, 910, + 1230, 890, + 1260, 970, + 1260, 950, + 1230, 1330, + 1230, 1310, + 1260, 1270, + 1260, 1250, + 1280, 1030, + 1280, 1010, + 1280, 1210, + 1280, 1190, + 1300, 1150, + 1300, 1130, + 1300, 1090, + 1300, 1070, + 1563, 1110, + 1492, 1110, +}; + +local SPAWN_LOCS = { + 1250, 1135, 1250, 1085, + 1200, 1185, 1200, 1135, 1200, 1085, 1200, 1035, + 1150, 1185, 1150, 1135, 1150, 1085, 1150, 1035, +}; + +local INSTANCE_CONTROLLER_TYPE = 223077; -- _ +local EVENTS_CONTROLLER_TYPE = 223078; -- _ + +local shadows, kills, wave; +local mobsAggro = 0; +local waveIDs; + +function Unpacket(s, numberize, returnTable) + local t = {}; + for w in s:gmatch("([^;]+)") do + if ( numberize ) then + w = tonumber(w); + end + table.insert(t, w); + end + if (returnTable) then + return t; + else + return unpack(t); + end +end + +function Phase3Signal(e) + + if ( e.signal == 301 ) then + shadows = Unpacket(e.data, true, true); + kills = 0; + wave = 0; + SpawnPhase(); + + elseif ( e.signal == 100 ) then -- depopulate zone + + for _, typ in ipairs(BOSSES) do + eq.depop_all(typ); + end + + + end +end + +function SpawnPhase() + local x, y, bossNum; + local z, h = 359.375, 192; + + for wave, waveTable in ipairs(WAVES) do + if ( wave == 9 ) then + break; + end + + -- spawn untargetable bosses + + x = BOSS_LOCS[(wave-1)*4+1]; + y = BOSS_LOCS[(wave-1)*4+2]; + bossNum = (wave-1)*2+1; + + if ( shadows[bossNum] and shadows[bossNum] == 1 ) then + eq.spawn2(waveTable[1], 0, 0, x, y, z, h, SHADOW_NAMES[bossNum]); + else + eq.spawn2(waveTable[1], 0, 0, x, y, z, h); + end + + x = BOSS_LOCS[(wave-1)*4+3]; + y = BOSS_LOCS[(wave-1)*4+4]; + bossNum = bossNum + 1; + + if ( shadows[bossNum] and shadows[bossNum] == 1 ) then + eq.spawn2(waveTable[2], 0, 0, x, y, z, h, SHADOW_NAMES[bossNum]); + else + eq.spawn2(waveTable[2], 0, 0, x, y, z, h); + end + end + SpawnWave(); +end + +function SpawnWave() + wave = wave + 1; + kills = 0; + mobsAggro = 0; + waveIDs = {}; + + if ( wave == 9 ) then + + -- spawn final two rock bosses + + local x = BOSS_LOCS[(wave-1)*4+1]; + local y = BOSS_LOCS[(wave-1)*4+2]; + local z = 386.75; + local h = 192; + local bossNum = (wave-1)*2+1; + + if ( shadows[bossNum] and shadows[bossNum] == 1 ) then + eq.spawn2(WAVES[wave][1], 0, 0, x, y, z, h, SHADOW_NAMES[bossNum]); + else + eq.spawn2(WAVES[wave][1], 0, 0, x, y, z, h); + end + + x = BOSS_LOCS[(wave-1)*4+3]; + y = BOSS_LOCS[(wave-1)*4+4]; + bossNum = bossNum + 1; + + if ( shadows[bossNum] and shadows[bossNum] == 1 ) then + eq.spawn2(WAVES[wave][2], 0, 0, x, y, z, h, SHADOW_NAMES[bossNum]); + else + eq.spawn2(WAVES[wave][2], 0, 0, x, y, z, h); + end + + return; + + elseif ( wave > 9 ) then + return; + end + + local elist = eq.get_entity_list(); + local boss1 = elist:GetNPCByNPCTypeID(WAVES[wave][1]); + local boss2 = elist:GetNPCByNPCTypeID(WAVES[wave][2]); + + boss1:MoveTo(SPAWN_LOCS[1], SPAWN_LOCS[2], 359.375, 192, true); + boss2:MoveTo(SPAWN_LOCS[3], SPAWN_LOCS[4], 359.375, 192, true); + + boss1:SetSpecialAbility(24, 0); -- Will Not Aggro off + boss1:SetSpecialAbility(35, 0); -- No Harm from Players off + boss1:SetBodyType(BODY_TYPES[(wave-1)*2+1], false); + boss1:SetRunning(true); + + boss2:SetSpecialAbility(24, 0); -- Will Not Aggro off + boss2:SetSpecialAbility(35, 0); -- No Harm from Players off + boss2:SetBodyType(BODY_TYPES[(wave-1)*2+2], false); + boss2:SetRunning(true); + + table.insert(waveIDs, boss1:GetID()); + table.insert(waveIDs, boss2:GetID()); + + local mob; + for i = 3, 10 do + mob = eq.spawn2(WAVES[wave][i], 0, 0, SPAWN_LOCS[(i-1)*2+1], SPAWN_LOCS[(i-1)*2+2], 357, 192); + table.insert(waveIDs, mob:GetID()); + end +end + +function DeathComplete(e) + kills = kills + 1; + + if ( kills == 10 ) then + SpawnWave(); + end +end + +function BossDeathComplete(e) + local npcType = e.self:GetNPCTypeID(); + + local bossID; + if ( WAVES[wave][1] == npcType ) then + bossID = (wave-1) * 2 + 1; + elseif ( WAVES[wave][2] == npcType ) then + bossID = (wave-1) * 2 + 2; + else + eq.debug("Error: Boss ID "..npcType.." not found in WAVES table"); + return; + end + + eq.signal(INSTANCE_CONTROLLER_TYPE, 6, 0, "3;"..bossID); + DeathComplete(e); +end + +function MobCombat(e) + if ( e.joined ) then + eq.set_timer("hatelink", 1000); + mobsAggro = mobsAggro + 1; + else + mobsAggro = mobsAggro - 1; + eq.stop_timer("hatelink"); + end +end + +function MobTimer(e) + + if ( e.timer == "hatelink" ) then + -- this prevents kiting all the mobs around and peeling them off one at a time + + if ( mobsAggro > 4 and e.self:GetX() < 1400 ) then + + local elist = eq.get_entity_list(); + local topHater, mob; + local topHate = 0; + + for i, id in ipairs(waveIDs) do + mob = elist:GetMob(id); + if ( mob.valid and mob:IsEngaged() and mob:GetX() < 1375 and not mob:CombatRange(mob:GetTarget()) ) then + if ( mob:GetHateAmount(mob:GetHateTop(), false) > topHate ) then + topHate = mob:GetHateAmount(mob:GetHateTop(), false); + topHater = mob:GetHateTop(); + --eq.debug("top hater == "..topHater:GetName().." with "..topHate.." hate"); + end + end + end + if ( topHate == 0 ) then + return; + end + + for i, id in ipairs(waveIDs) do + mob = elist:GetMob(id); + if ( mob.valid and mob:IsEngaged() and not mob:CombatRange(mob:GetTarget()) ) then + if ( mob:GetHateAmount(mob:GetHateTop(), false) < topHate ) then + mob:SetHate(topHater, topHate); + --eq.debug(mob:GetName().."'s top hater is now "..topHater:GetName()); + end + end + end + end + end +end + +function event_encounter_load(e) + eq.register_npc_event("Phase3", Event.signal, EVENTS_CONTROLLER_TYPE, Phase3Signal); + + for _, waveTable in ipairs(WAVES) do + for i, typ in ipairs(waveTable) do + if ( i > 2 ) then + eq.register_npc_event("Phase3", Event.death_complete, typ, DeathComplete); + else + eq.register_npc_event("Phase3", Event.death_complete, typ, BossDeathComplete); + end + eq.register_npc_event("Phase3", Event.combat, typ, MobCombat); + eq.register_npc_event("Phase3", Event.timer, typ, MobTimer); + end + end +end diff --git a/potimeb/encounters/Phase4.lua b/potimeb/encounters/Phase4.lua new file mode 100644 index 0000000..2cb280f --- /dev/null +++ b/potimeb/encounters/Phase4.lua @@ -0,0 +1,362 @@ +local INSTANCE_CONTROLLER_TYPE = 223077; -- _ +local EVENTS_CONTROLLER_TYPE = 223078; -- _ +local SARYRN_TYPE = 223003; +local TERRIS_TYPE = 223002; +local TALLON_TYPE = 223001; +local VALLON_TYPE = 223000; + +local PHANTASM_TYPE = 223140; -- A_Phantasm_of_Terris +local NIGHTMARE_TYPE = 223143; -- A_Nightmare_Knight_of_Terris +local GUARDIAN_TYPE = 223141; -- A_Summoned_Guardian_of_Terris +local KNIGHT_TYPE = 223142; -- A_Summoned_Knight_of_Terris +local INSANITY_TYPE = 223136; -- A_Mouth_of_Insanity +local DEMENTIA_TYPE = 223137; -- A_Mouth_of_Dementia +local TORMENTOR_TYPE = 223139; -- A_Tormentor +local TWISTED_TYPE = 223138; -- A_Twisted_Tormentor +local FAKE_VALLON_TYPE = 223144; + +local BOSS_NUMS = { SARYRN_TYPE, TERRIS_TYPE, TALLON_TYPE, VALLON_TYPE }; -- table index is the number + +local BOSS_LOCS = { + [SARYRN_TYPE] = { x = -320, y = -316, z = 363.75, h = 30 }, + [TERRIS_TYPE] = { x = -310, y = 307, z = 380.25, h = 96 }, + [TALLON_TYPE] = { x = 405, y = -84, z = 370.625, h = 192 }, + [VALLON_TYPE] = { x = 405, y = 75, z = 370.625, h = 192 }, +}; +local SARYRN_ADD_LOCS = { + { x = -349, y = -230, z = 354.375, h = 64 }, + { x = -219, y = -348, z = 354.375, h = 0 }, + { x = -325, y = -273, z = 357, h = 32 }, + { x = -275, y = -330, z = 357, h = 32 }, +}; +local TERRIS_ADD_LOCS = { + { x = -245, y = 358, z = 353 }, + { x = -359, y = 209, z = 353 }, + { x = -205, y = 271, z = 352 }, + { x = -277, y = 208, z = 352 }, +}; + +local bosses; + +function Unpacket(s, numberize, returnTable) + local t = {}; + for w in s:gmatch("([^;]+)") do + if ( numberize ) then + w = tonumber(w); + end + table.insert(t, w); + end + if (returnTable) then + return t; + else + return unpack(t); + end +end + +function SpawnPhase() + local loc; + + for i = 1, 4 do + if ( bosses[i] == 0 ) then + loc = BOSS_LOCS[BOSS_NUMS[i]]; + eq.spawn2(BOSS_NUMS[i], 0, 0, loc.x, loc.y, loc.z, loc.h); + end + end +end + +function Phase4Signal(e) + + if ( e.signal == 401 ) then + bosses = Unpacket(e.data, true, true); + SpawnPhase(); + end +end + +function SaryrnCombat(e) + if ( e.joined ) then + eq.set_timer("leash", 3000); + eq.stop_timer("check_hp"); + + if ( e.self:GetHPRatio() > 96 ) then + eq.set_next_hp_event(95); + end + else + eq.stop_timer("leash"); + eq.set_timer("check_hp", 3000); + end +end + +function SaryrnHP(e) + if ( e.hp_event == 95 ) then + eq.set_next_hp_event(50); + + SpawnSaryrnAdd(1, INSANITY_TYPE); + SpawnSaryrnAdd(1, INSANITY_TYPE); + SpawnSaryrnAdd(2, DEMENTIA_TYPE); + SpawnSaryrnAdd(2, DEMENTIA_TYPE); + + elseif ( e.hp_event == 50 ) then + eq.set_next_hp_event(10); + + SpawnSaryrnAdd(1, TORMENTOR_TYPE); + SpawnSaryrnAdd(1, TORMENTOR_TYPE); + SpawnSaryrnAdd(2, TWISTED_TYPE); + SpawnSaryrnAdd(2, TWISTED_TYPE); + + elseif ( e.hp_event == 10 ) then + + SpawnSaryrnAdd(1, INSANITY_TYPE); + SpawnSaryrnAdd(2, DEMENTIA_TYPE); + SpawnSaryrnAdd(3, TORMENTOR_TYPE); + SpawnSaryrnAdd(4, TWISTED_TYPE); + end +end + +function SaryrnTimer(e) + if ( e.timer == "leash" ) then + local sx, sy, sz, sh = e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH(); + + if ( (e.self:GetX() - sx) > 140 or (e.self:GetY() - sy) > 140 ) then + e.self:GMMove(sx, sy, sz, sh); + e.self:WipeHateList(); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + end + + elseif ( e.timer == "check_hp" ) then + + if ( e.self:GetHPRatio() > 98 ) then + eq.depop_all(INSANITY_TYPE); + eq.depop_all(DEMENTIA_TYPE); + eq.depop_all(TORMENTOR_TYPE); + eq.depop_all(TWISTED_TYPE); + + eq.stop_timer(e.timer); + end + end +end + +function SpawnSaryrnAdd(loc, typ) + local l = SARYRN_ADD_LOCS[loc]; + local mob = eq.spawn2(typ, 0, 0, l.x, l.y, l.z, l.h); + eq.set_timer("leash", 6000, mob); + MoveToBoss(mob:CastToNPC(), SARYRN_TYPE); +end + +function MoveToBoss(npc, bossType) + local boss = eq.get_entity_list():GetMobByNpcTypeID(bossType); + if ( boss and boss.valid ) then + npc:MoveTo(boss:GetX(), boss:GetY(), boss:GetZ(), -1, true); + else + if ( bossType == TERRIS_TYPE ) then + npc:MoveTo(-205, 200, 350, -1, true); + elseif ( bossType == SARYRN_TYPE ) then + npc:MoveTo(-216, -213, 350, -1, true); + end + end +end + +function SaryrnAddTimer(e) + if ( e.timer == "leash" ) then + local x, y, z, h = BOSS_LOCS[SARYRN_TYPE].x, BOSS_LOCS[SARYRN_TYPE].y, BOSS_LOCS[SARYRN_TYPE].z, BOSS_LOCS[SARYRN_TYPE].h; + + if ( (e.self:GetX() - x) > 200 or (e.self:GetY() - y) > 200 ) then + e.self:GMMove(x, y, z, h); + e.self:WipeHateList(); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + MoveToBoss(e.self, SARYRN_TYPE); + end + end +end + +function TerrisCombat(e) + if ( e.joined ) then + eq.set_timer("leash", 3000); + eq.stop_timer("check_hp"); + + if ( e.self:GetHPRatio() > 91 ) then + eq.set_next_hp_event(90); + end + else + eq.stop_timer("leash"); + eq.set_timer("check_hp", 3000); + end +end + +function TerrisHP(e) + if ( e.hp_event == 90 ) then + eq.set_next_hp_event(50); + + SpawnTerrisAdd(1, GUARDIAN_TYPE); + SpawnTerrisAdd(1, GUARDIAN_TYPE); + SpawnTerrisAdd(2, PHANTASM_TYPE); + SpawnTerrisAdd(2, PHANTASM_TYPE); + + elseif ( e.hp_event == 50 ) then + eq.set_next_hp_event(10); + + SpawnTerrisAdd(1, KNIGHT_TYPE); + SpawnTerrisAdd(1, KNIGHT_TYPE); + SpawnTerrisAdd(2, NIGHTMARE_TYPE); + SpawnTerrisAdd(2, NIGHTMARE_TYPE); + + elseif ( e.hp_event == 10 ) then + SpawnTerrisAdd(1, GUARDIAN_TYPE); + SpawnTerrisAdd(2, PHANTASM_TYPE); + SpawnTerrisAdd(3, KNIGHT_TYPE); + SpawnTerrisAdd(4, NIGHTMARE_TYPE); + end +end + +function TerrisTimer(e) + if ( e.timer == "leash" ) then + local sx, sy, sz, sh = e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH(); + + if ( (e.self:GetX() - sx) > 130 or (sy - e.self:GetY()) > 130 ) then + e.self:GMMove(sx, sy, sz, sh); + e.self:WipeHateList(); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + end + + elseif ( e.timer == "check_hp" ) then + + if ( e.self:GetHPRatio() > 98 ) then + eq.depop_all(GUARDIAN_TYPE); + eq.depop_all(PHANTASM_TYPE); + eq.depop_all(KNIGHT_TYPE); + eq.depop_all(NIGHTMARE_TYPE); + + eq.stop_timer(e.timer); + end + end +end + +function SpawnTerrisAdd(loc, typ) + local l = TERRIS_ADD_LOCS[loc]; + local mob = eq.spawn2(typ, 0, 0, l.x, l.y, l.z, 128); + eq.set_timer("leash", 6000, mob); + MoveToBoss(mob:CastToNPC(), TERRIS_TYPE); +end + +function TerrisAddTimer(e) + if ( e.timer == "leash" ) then + local x, y, z, h = BOSS_LOCS[TERRIS_TYPE].x, BOSS_LOCS[TERRIS_TYPE].y, BOSS_LOCS[TERRIS_TYPE].z, BOSS_LOCS[TERRIS_TYPE].h; + + if ( (e.self:GetX() - x) > 200 or (e.self:GetY() - y) > 200 ) then + e.self:GMMove(x, y, z, h); + e.self:WipeHateList(); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + MoveToBoss(e.self, TERRIS_TYPE); + end + end +end + +function TallonSpawn(e) + e.self:CastToNPC():SetCastRateDetrimental(75); -- note: Tallon Zek's cast rate should average about 3.5 seconds between each barb +end + +function TallonCombat(e) + if ( e.joined ) then + eq.set_timer("leash", 6000); + else + eq.stop_timer("leash"); + end +end + +function BrotherTimer(e) + if ( e.timer == "leash" ) then + if ( e.self:GetX() < 250 ) then + local typ = VALLON_TYPE; + if ( e.self:GetNPCTypeID() == TALLON_TYPE ) then + typ = TALLON_TYPE; + end + local x, y, z, h = BOSS_LOCS[typ].x, BOSS_LOCS[typ].y, BOSS_LOCS[typ].z, BOSS_LOCS[typ].h; + + e.self:GMMove(x, y, z, h); + e.self:WipeHateList(); + if ( e.self:GetNPCTypeID() ~= FAKE_VALLON_TYPE ) then + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + end + end + + elseif ( e.timer == "check_hp" ) then + + if ( e.self:GetHPRatio() > 98 ) then + eq.depop_all(FAKE_VALLON_TYPE); + eq.stop_timer(e.timer); + end + end +end + +function VallonCombat(e) + if ( e.joined ) then + eq.set_timer("leash", 6000); + eq.stop_timer("check_hp"); + + if ( e.self:GetHPRatio() > 90 ) then + eq.set_next_hp_event(50); + end + else + eq.stop_timer("leash"); + eq.set_timer("check_hp", 3000); + end +end + +function VallonHP(e) + local x, y = math.random(287, 375), math.random(-182, 175); + + local mob = eq.spawn2(FAKE_VALLON_TYPE, 0, 0, x, y+20, 365, 0); + eq.set_timer("leash", 6000, mob); + mob:CastToNPC():SetRunning(true); + MoveToBoss(mob:CastToNPC(), VALLON_TYPE); + + mob = eq.spawn2(FAKE_VALLON_TYPE, 0, 0, x, y, 365, 0); + eq.set_timer("leash", 6000, mob); + mob:CastToNPC():SetRunning(true); + MoveToBoss(mob:CastToNPC(), VALLON_TYPE); +end + +function BossDeathComplete(e) + for i, v in ipairs(BOSS_NUMS) do + if ( v == e.self:GetNPCTypeID() ) then + eq.signal(INSTANCE_CONTROLLER_TYPE, 6, 0, "4;"..i); + break; + end + end + eq.debug("PoTime "..e.self:GetCleanName().." slain by "..e.killer:GetName().."'s raid"); + eq.csr_notice(string.format("PoTime %s slain by %s's raid <%s>", e.self:GetCleanName(), e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end + + +function event_encounter_load(e) + eq.register_npc_event("Phase4", Event.signal, EVENTS_CONTROLLER_TYPE, Phase4Signal); + + eq.register_npc_event("Phase4", Event.combat, SARYRN_TYPE, SaryrnCombat); + eq.register_npc_event("Phase4", Event.hp, SARYRN_TYPE, SaryrnHP); + eq.register_npc_event("Phase4", Event.timer, SARYRN_TYPE, SaryrnTimer); + + eq.register_npc_event("Phase4", Event.combat, TERRIS_TYPE, TerrisCombat); + eq.register_npc_event("Phase4", Event.hp, TERRIS_TYPE, TerrisHP); + eq.register_npc_event("Phase4", Event.timer, TERRIS_TYPE, TerrisTimer); + + eq.register_npc_event("Phase4", Event.timer, GUARDIAN_TYPE, TerrisAddTimer); + eq.register_npc_event("Phase4", Event.timer, PHANTASM_TYPE, TerrisAddTimer); + eq.register_npc_event("Phase4", Event.timer, KNIGHT_TYPE, TerrisAddTimer); + eq.register_npc_event("Phase4", Event.timer, NIGHTMARE_TYPE, TerrisAddTimer); + eq.register_npc_event("Phase4", Event.timer, INSANITY_TYPE, SaryrnAddTimer); + eq.register_npc_event("Phase4", Event.timer, DEMENTIA_TYPE, SaryrnAddTimer); + eq.register_npc_event("Phase4", Event.timer, TORMENTOR_TYPE, SaryrnAddTimer); + eq.register_npc_event("Phase4", Event.timer, TWISTED_TYPE, SaryrnAddTimer); + + eq.register_npc_event("Phase4", Event.spawn, TALLON_TYPE, TallonSpawn); + eq.register_npc_event("Phase4", Event.timer, TALLON_TYPE, BrotherTimer); + eq.register_npc_event("Phase4", Event.combat, TALLON_TYPE, TallonCombat); + eq.register_npc_event("Phase4", Event.timer, VALLON_TYPE, BrotherTimer); + eq.register_npc_event("Phase4", Event.timer, FAKE_VALLON_TYPE, BrotherTimer); + eq.register_npc_event("Phase4", Event.combat, VALLON_TYPE, VallonCombat); + eq.register_npc_event("Phase4", Event.hp, VALLON_TYPE, VallonHP); + + eq.register_npc_event("Phase4", Event.death_complete, SARYRN_TYPE, BossDeathComplete); + eq.register_npc_event("Phase4", Event.death_complete, TERRIS_TYPE, BossDeathComplete); + eq.register_npc_event("Phase4", Event.death_complete, TALLON_TYPE, BossDeathComplete); + eq.register_npc_event("Phase4", Event.death_complete, VALLON_TYPE, BossDeathComplete); +end diff --git a/potimeb/encounters/Phase5.lua b/potimeb/encounters/Phase5.lua new file mode 100644 index 0000000..e2a3b71 --- /dev/null +++ b/potimeb/encounters/Phase5.lua @@ -0,0 +1,512 @@ +local INSTANCE_CONTROLLER_TYPE = 223077; -- _ +local EVENTS_CONTROLLER_TYPE = 223078; -- _ +local CAZIC_TYPE = 223004; +local BERTOX_TYPE = 223005; +local RZ_TYPE = 223006; +local INNO_TYPE = 223007; + +local CRYPT_TYPE = 223147; -- Guardian_of_the_Crypt +local PRESTILENCE_TYPE = 223145; -- Guardian_Knight_of_Pestilence +local CASTER_TYPE = 223146; -- A_Firebone_Caster +local AMYGDALAN_TYPE = 223149; -- Amygdalan_knight +local PHOBO_TYPE = 223148; -- phoboplasm +local ABHORRENT_TYPE = 223153; -- an_abhorrent +local CLERIC_TYPE = 223152; -- Cleric_of_Innoruuk +local BRAWLER_TYPE = 223151; -- Decorin_Brawler +local FIERCE_TYPE = 223150; -- A_Fierce_War_Boar + +local BOAR_TYPE = 223155; -- a_summoned_boar +local MINION_TYPE = 223154; -- a_summoned_minion + +local GUARDIAN_TYPE = 223156; -- guardian_of_the_dark_prince +local HATEBRINGER_TYPE = 223157; -- a_hatebringer_of_Innoruuk + +local BOSS_NUMS = { CAZIC_TYPE, BERTOX_TYPE, RZ_TYPE, INNO_TYPE }; -- table index is the number + +local BOSS_LOCS = { + [CAZIC_TYPE] = { x = -255, y = 248, z = 27.501, h = 93 }, + [BERTOX_TYPE] = { x = -303, y = -301, z = 35.626, h = 17 }, + [RZ_TYPE] = { x = 274, y = -279, z = 18.751, h = 217 }, + [INNO_TYPE] = { x = 302, y = 309, z = 25, h = 158 }, +}; +local BOSS_BOX = { [CAZIC_TYPE] = 120, [BERTOX_TYPE] = 120, [RZ_TYPE] = 100, [INNO_TYPE] = 130 }; + +local BERTOX_STATE = { + { mr = 450, fr = 375, cr = 375, pr = 360, dr = 360, accuracy = -50, ac = 200, min_hit = 935, max_hit = 1600 }, + { mr = 350, fr = 300, cr = 300, pr = 275, dr = 275, accuracy = 50, ac = 300, min_hit = 1040, max_hit = 1800 }, + { mr = 250, fr = 200, cr = 200, pr = 180, dr = 180, accuracy = 170, ac = 500, min_hit = 1145, max_hit = 2000 }, + { mr = 150, fr = 150, cr = 150, pr = 130, dr = 130, accuracy = 320, ac = 600, min_hit = 1250, max_hit = 2200 }, + { mr = 200, fr = 175, cr = 175, pr = 160, dr = 160, accuracy = 275, ac = 650, min_hit = 1145, max_hit = 2000 }, + { mr = 250, fr = 200, cr = 200, pr = 180, dr = 180, accuracy = 200, ac = 600, min_hit = 1040, max_hit = 1800 }, + { mr = 300, fr = 250, cr = 250, pr = 230, dr = 230, accuracy = 65, ac = 500, min_hit = 940, max_hit = 1700 }, +}; + +local INNO_ADD_LOCS = { + { x = 211, y = 303 }, -- guardian + { x = 207, y = 232 }, -- guardian + { x = 324, y = 210 }, -- harbinger + { x = 325, y = 268 }, -- harbinger +}; + +local TRASH_LOCS = { + [PHOBO_TYPE] = { + -139, 207, 5.625, + -122, 207, 5.625, + -139, 194, 5.625, + -122, 194, 5.625, + -139, 179, 5.625, + -122, 179, 5.625, + }, + [AMYGDALAN_TYPE] = { + -122, 166, 8.75, + -139, 166, 8.75, + -122, 152, 8.75, + -139, 152, 8.75, + -157, 194, 8.75, + -157, 166, 8.75, + }, + [CRYPT_TYPE] = { + -103, -133, 9.375, + -132, -151, 9.375, + }, + [PRESTILENCE_TYPE] = { + -103, -151, 10, + -120, -115, 10, + -118, -133, 10, + -116, -151, 10, + -132, -133, 10, + }, + [CASTER_TYPE] = { + -146, -115, 10, + -146, -133, 10, + -146, -151, 10, + -161, -133, 10, + -161, -151, 10, + }, + [FIERCE_TYPE] = { + 80, -135, 6.25, + 100, -135, 6.25, + 80, -150, 6.25, + 100, -150, 6.25, + 120, -150, 6.25, + 80, -163, 6.25, + }, + [BRAWLER_TYPE] = { + 100, -163, 7.5, + 80, -175, 7.5, + 100, -175, 7.5, + 120, -175, 7.5, + 80, -186, 7.5, + 100, -186, 7.5, + }, + [CLERIC_TYPE] = { + 120, 83, 4.375, + 120, 103, 4.375, + 139, 83, 4.375, + 139, 103, 4.375, + 139, 121, 4.375, + 158, 83, 4.375, + }, + [ABHORRENT_TYPE] = { + 158, 103, 4.375, + 177, 83, 4.375, + 177, 103, 4.375, + 177, 121, 4.375, + 195, 83, 4.375, + 195, 103, 4.375, + }, +}; + +local TRASH_MASTERS = { + [PHOBO_TYPE] = 1, + [AMYGDALAN_TYPE] = 1, + [CRYPT_TYPE] = 2, + [PRESTILENCE_TYPE] = 2, + [CASTER_TYPE] = 2, + [FIERCE_TYPE] = 3, + [BRAWLER_TYPE] = 3, + [CLERIC_TYPE] = 4, + [ABHORRENT_TYPE] = 4, +}; +local ADD_MASTERS = { + [BOAR_TYPE] = 3, + [MINION_TYPE] = 3, + [GUARDIAN_TYPE] = 4, + [HATEBRINGER_TYPE] = 4, +}; + +local RZ_ADDS_LOC = { x = 262, y = -272, z = 6.25 }; + +local rzState, bertoxState = 1, 1; +local bossState = {}; + +function Unpacket(s, numberize, returnTable) + local t = {}; + for w in s:gmatch("([^;]+)") do + if ( numberize ) then + w = tonumber(w); + end + table.insert(t, w); + end + if ( returnTable ) then + return t; + else + return unpack(t); + end +end + +function SpawnPhase() + local loc, mob; + + rzState, bertoxState = 1, 1; + for i = 1, 4 do + if ( bosses[i] == 0 ) then + loc = BOSS_LOCS[BOSS_NUMS[i]]; + mob = eq.spawn2(BOSS_NUMS[i], 0, 0, loc.x, loc.y, loc.z, loc.h); + bossState[i] = 1; + + for typ, num in pairs(TRASH_MASTERS) do + if ( num == i ) then + + for j = 1, #TRASH_LOCS[typ], 3 do + eq.spawn2(typ, 0, 0, TRASH_LOCS[typ][j], TRASH_LOCS[typ][j+1], TRASH_LOCS[typ][j+2], 0); + end + end + end + else + bossState[i] = 0; + end + end +end + +function Phase5Signal(e) + + if ( e.signal == 501 ) then + bosses = Unpacket(e.data, true, true); + SpawnPhase(); + end +end + +function BossTimer(e) + if ( e.timer == "leash" ) then + local typ = e.self:GetNPCTypeID(); + if ( typ == CAZIC_TYPE or typ == BERTOX_TYPE ) then + return; + end + local box = BOSS_BOX[typ]; + local sx, sy, sz, sh = e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH(); + local xDiff, yDiff = (e.self:GetX() - sx), (e.self:GetY() - sy); + + if ( xDiff > box or xDiff < -box or yDiff > box or yDiff < -box ) then + e.self:GMMove(sx, sy, sz, sh); + e.self:WipeHateList(); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + end + + elseif ( e.timer == "check_hp" ) then + + if ( e.self:GetHPRatio() > 98 ) then + + local typ = e.self:GetNPCTypeID(); + if ( typ == BERTOX_TYPE ) then + bertoxState = 1; + SetBertoxStats(e.self); + + elseif ( typ == RZ_TYPE ) then + eq.depop_all(BOAR_TYPE); + eq.depop_all(MINION_TYPE); + rzState = 1; + SetRallosStats(e.self); + + elseif ( typ == INNO_TYPE ) then + eq.depop_all(GUARDIAN_TYPE); + eq.depop_all(HATEBRINGER_TYPE); + end + eq.stop_timer(e.timer); + end + end +end + +function BossCombat(e) + if ( e.joined ) then + eq.set_timer("leash", 3000); + eq.stop_timer("check_hp"); + + if ( e.self:GetHPRatio() > 92 ) then + eq.set_next_hp_event(91); + end + else + eq.stop_timer("leash"); + eq.set_timer("check_hp", 3000); + end +end + + +function BertoxHP(e) + if ( e.hp_event == 91 ) then + eq.set_next_hp_event(71); + bertoxState = 2; + + elseif ( e.hp_event == 71 ) then + eq.set_next_hp_event(56); + bertoxState = 3; + + elseif ( e.hp_event == 56 ) then + eq.set_next_hp_event(46); + bertoxState = 4; + + elseif ( e.hp_event == 46 ) then + eq.set_next_hp_event(31); + bertoxState = 5; + + elseif ( e.hp_event == 31 ) then + eq.set_next_hp_event(11); + bertoxState = 6; + + elseif ( e.hp_event == 11 ) then + bertoxState = 7; + end + + if ( bertoxState < 5 ) then + eq.get_entity_list():MessageClose(e.self, true, 200, 0, "Blisters and festering sores covering Bertoxxulous's hide burst. A noxious ooze bleeds down his scarred flesh, strengthening his physical body."); + else + e.self:Emote("falters, nearly imperceptibly."); + end + SetBertoxStats(e.self); +end + +function SetBertoxStats(npc) + for stat, value in pairs(BERTOX_STATE[bertoxState]) do + npc:ModifyNPCStat(stat, tostring(value)); + end +end + +function SpawnRallosAdd(boss, typ) + local x, y, z = RZ_ADDS_LOC.x, RZ_ADDS_LOC.y, RZ_ADDS_LOC.z; + local mob = eq.spawn2(typ, 0, 0, x, y, z, 0); + eq.set_timer("leash", 3000, mob); + --mob:CastToNPC():MoveTo(boss:GetX(), boss:GetY(), boss:GetZ(), -1, true); +end + +function RallosHP(e) + if ( e.hp_event == 91 ) then + eq.set_next_hp_event(76); + rzState = 2; + for i = 1, 4 do + SpawnRallosAdd(e.self, eq.ChooseRandom(BOAR_TYPE, MINION_TYPE)); + end + + elseif ( e.hp_event == 76 ) then + eq.set_next_hp_event(51); + rzState = 3; + for i = 1, 4 do + SpawnRallosAdd(e.self, eq.ChooseRandom(BOAR_TYPE, MINION_TYPE)); + end + + elseif ( e.hp_event == 51 ) then + eq.set_next_hp_event(26); + rzState = 4; + for i = 1, 4 do + SpawnRallosAdd(e.self, eq.ChooseRandom(BOAR_TYPE, MINION_TYPE)); + end + + elseif ( e.hp_event == 26 ) then + rzState = 5; + for i = 1, 6 do + SpawnRallosAdd(e.self, eq.ChooseRandom(BOAR_TYPE, MINION_TYPE)); + end + end + + eq.get_entity_list():MessageClose(e.self, true, 200, 0, "Rallos Zek roars a mighty war cry and swings his axe with a vengeance."); + SetRallosStats(e.self); +end + +function SetRallosStats(npc) + if ( rzState == 1 ) then + npc:ModifyNPCStat("special_abilities", "5,0,0"); -- disable flurry + npc:ModifyNPCStat("special_abilities", "4,0,0"); -- disable wild rampage + npc:ModifyNPCStat("special_abilities", "3,1,5,200"); -- rampage 5% + npc:ModifyNPCStat("mr", "250"); + npc:ModifyNPCStat("fr", "170"); + npc:ModifyNPCStat("cr", "170"); + npc:ModifyNPCStat("pr", "155"); + npc:ModifyNPCStat("dr", "155"); + npc:ModifyNPCStat("atk", "-100"); + npc:ModifyNPCStat("ac", "350"); + + elseif ( rzState == 2 ) then + npc:ModifyNPCStat("special_abilities", "5,0,0"); -- disable flurry + npc:ModifyNPCStat("special_abilities", "4,0,0"); -- disable wild rampage + npc:ModifyNPCStat("special_abilities", "3,1,5,200"); -- rampage 5% + npc:ModifyNPCStat("mr", "250"); + npc:ModifyNPCStat("fr", "190"); + npc:ModifyNPCStat("cr", "190"); + npc:ModifyNPCStat("pr", "180"); + npc:ModifyNPCStat("dr", "180"); + npc:ModifyNPCStat("atk", "200"); + npc:ModifyNPCStat("ac", "450"); + + elseif ( rzState == 3 ) then + npc:ModifyNPCStat("special_abilities", "5,0,0"); -- disable flurry + npc:ModifyNPCStat("special_abilities", "4,1,1"); -- wild rampage 1% + npc:ModifyNPCStat("special_abilities", "3,1,5,200"); -- rampage 5% + npc:ModifyNPCStat("mr", "300"); + npc:ModifyNPCStat("fr", "225"); + npc:ModifyNPCStat("cr", "225"); + npc:ModifyNPCStat("pr", "200"); + npc:ModifyNPCStat("dr", "200"); + npc:ModifyNPCStat("atk", "400"); + npc:ModifyNPCStat("ac", "550"); + + elseif ( rzState == 4 ) then + npc:ModifyNPCStat("special_abilities", "5,1,5"); -- flurry 5% + npc:ModifyNPCStat("special_abilities", "4,1,1"); -- wild rampage 1% + npc:ModifyNPCStat("special_abilities", "3,0,0"); -- disable rampage + npc:ModifyNPCStat("mr", "350"); + npc:ModifyNPCStat("fr", "250"); + npc:ModifyNPCStat("cr", "250"); + npc:ModifyNPCStat("pr", "230"); + npc:ModifyNPCStat("dr", "230"); + npc:ModifyNPCStat("atk", "600"); + npc:ModifyNPCStat("ac", "650"); + + elseif ( rzState == 5 ) then + npc:ModifyNPCStat("special_abilities", "5,1,5"); -- flurry 5% + npc:ModifyNPCStat("special_abilities", "4,1,1"); -- wild rampage 1% + npc:ModifyNPCStat("special_abilities", "3,0,0"); -- disable rampage + npc:ModifyNPCStat("mr", "550"); + npc:ModifyNPCStat("fr", "275"); + npc:ModifyNPCStat("cr", "275"); + npc:ModifyNPCStat("pr", "250"); + npc:ModifyNPCStat("dr", "250"); + npc:ModifyNPCStat("atk", "800"); + npc:ModifyNPCStat("ac", "750"); + end +end + +function InnoHP(e) + if ( e.hp_event == 91 ) then + eq.set_next_hp_event(81); + + elseif ( e.hp_event == 81 ) then + eq.set_next_hp_event(21); + SpawnInnoAdd(1, GUARDIAN_TYPE); + SpawnInnoAdd(2, GUARDIAN_TYPE); + SpawnInnoAdd(3, HATEBRINGER_TYPE); + + elseif ( e.hp_event == 21 ) then + SpawnInnoAdd(1, GUARDIAN_TYPE); + SpawnInnoAdd(2, GUARDIAN_TYPE); + SpawnInnoAdd(3, HATEBRINGER_TYPE); + SpawnInnoAdd(4, HATEBRINGER_TYPE); + end +end + +function SpawnInnoAdd(locNum, typ) + local mob = eq.spawn2(typ, 0, 0, INNO_ADD_LOCS[locNum].x, INNO_ADD_LOCS[locNum].y, 7.5, 128); + eq.set_timer("leash", 6000, mob); + local boss = eq.get_entity_list():GetMobByNpcTypeID(INNO_TYPE); + mob:CastToNPC():MoveTo(boss:GetX(), boss:GetY(), boss:GetZ(), 0, true); +end + +function AddTimer(e) + if ( e.timer == "leash" ) then + local masterType = BOSS_NUMS[ADD_MASTERS[e.self:GetNPCTypeID()]]; + local x, y, z, h = BOSS_LOCS[masterType].x, BOSS_LOCS[masterType].y, BOSS_LOCS[masterType].z, BOSS_LOCS[masterType].h; + local xDiff, yDiff = (e.self:GetX() - x), (e.self:GetY() - y); + + if ( xDiff > 200 or xDiff < -200 or yDiff > 200 or yDiff < -200 ) then + e.self:GMMove(x, y, z-10, h); + e.self:WipeHateList(); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + local boss = eq.get_entity_list():GetMobByNpcTypeID(masterType); + e.self:MoveTo(boss:GetX(), boss:GetY(), boss:GetZ(), 0, true); + end + end +end + +function TrashDeathComplete(e) + local killType = e.self:GetNPCTypeID(); + local master = TRASH_MASTERS[killType]; + + if ( bossState[master] == 1 ) then + local elist = eq.get_entity_list(); + + for typ, mast in pairs(TRASH_MASTERS) do + if ( mast == master ) then + if ( elist:IsMobSpawnedByNpcTypeID(typ) ) then + return; + end + end + end + + bossState[master] = 2; + boss = elist:GetNPCByNPCTypeID(BOSS_NUMS[master]); + boss:SetSpecialAbility(24, 0); -- Will Not Aggro off + boss:SetSpecialAbility(35, 0); -- No Harm from Players off + if ( BOSS_NUMS[master] == RZ_TYPE ) then + boss:SetBodyType(19, false); -- Zek + else + boss:SetBodyType(1, false); -- humanoid + end + eq.debug(boss:GetCleanName().." now active"); + end +end + +function BossDeath(e) + local corpseType = e.self:GetNPCTypeID(); + + for i, typ in ipairs(BOSS_NUMS) do + if ( typ == corpseType ) then + + if ( corpseType == RZ_TYPE and (rzState ~= 5 or e.self:GetAC() ~= 750) ) then + eq.debug("Error: Rallos Zek did not power up correctly. Depoping corpse."); + e.self:ClearItemList(); + e.self:Depop(); + eq.depop_all(corpseType); + eq.csr_notice("PoTime error: Rallos Zek did not power up correctly"); + return; + end + + if ( corpseType == BERTOX_TYPE and (bertoxState ~= 7 or e.self:GetAC() ~= 500) ) then + eq.debug("Error: Bertoxxulous did not power up correctly. Depoping corpse."); + e.self:ClearItemList(); + e.self:Depop(); + eq.depop_all(corpseType); + eq.csr_notice("PoTime error: Bertox did not power up correctly"); + return; + end + + eq.signal(INSTANCE_CONTROLLER_TYPE, 6, 0, "5;"..i); + return; + end + end +end + +function BossDeathComplete(e) + eq.csr_notice(string.format("PoTime %s slain by %s's raid <%s>", e.self:GetCleanName(), e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end + +function event_encounter_load(e) + eq.register_npc_event("Phase5", Event.signal, EVENTS_CONTROLLER_TYPE, Phase5Signal); + + for _, typ in pairs(BOSS_NUMS) do + eq.register_npc_event("Phase5", Event.death, typ, BossDeath); + eq.register_npc_event("Phase5", Event.death_complete, typ, BossDeathComplete); + eq.register_npc_event("Phase5", Event.combat, typ, BossCombat); + eq.register_npc_event("Phase5", Event.timer, typ, BossTimer); + end + + for typ in pairs(TRASH_LOCS) do + eq.register_npc_event("Phase5", Event.death_complete, typ, TrashDeathComplete); + end + + eq.register_npc_event("Phase5", Event.hp, BERTOX_TYPE, BertoxHP); + eq.register_npc_event("Phase5", Event.hp, RZ_TYPE, RallosHP); + eq.register_npc_event("Phase5", Event.hp, INNO_TYPE, InnoHP); + + eq.register_npc_event("Phase5", Event.timer, BOAR_TYPE, AddTimer); + eq.register_npc_event("Phase5", Event.timer, MINION_TYPE, AddTimer); + eq.register_npc_event("Phase5", Event.timer, GUARDIAN_TYPE, AddTimer); + eq.register_npc_event("Phase5", Event.timer, HATEBRINGER_TYPE, AddTimer); +end diff --git a/potimeb/encounters/Phase6.lua b/potimeb/encounters/Phase6.lua new file mode 100644 index 0000000..cb3fa15 --- /dev/null +++ b/potimeb/encounters/Phase6.lua @@ -0,0 +1,372 @@ +local POTIMEA_CONTROLLER_TYPE = 219053; +local INSTANCE_CONTROLLER_TYPE = 223077; -- _ +local EVENTS_CONTROLLER_TYPE = 223078; -- _ +local QUARM_TYPE = 223008; +local VORTEX_TYPE = 223158; +local EGG_TYPE = 223161; +local ZEBUXORUK_TYPE = 223159; +local DRUZZIL_TYPE = 223160; +local QUARM_STATE = { + { mr = 300, fr = 400, cr = 300, pr = 280, dr = 250, ac = 400 }, + { mr = 300, fr = 200, cr = 400, pr = 280, dr = 250, ac = 400 }, + { mr = 400, fr = 300, cr = 175, pr = 400, dr = 200, ac = 200 }, + { mr = 200, fr = 200, cr = 200, pr = 200, dr = 400, ac = 1000 }, +}; + +local quarmState, quarmMoved, phaseSpell, spellCount, cascadeSpellOne, cascadeSpellTwo; + +function Phase6Signal(e) + + if ( e.signal == 601 ) then + quarmState = 1; + local quarm = eq.spawn2(QUARM_TYPE, 0, 0, -401, -1106, 22, 64); + SetQuarmStats(quarm:CastToNPC()); + quarmMoved = false; + eq.spawn2(EGG_TYPE, 0, 0, -579, -1119, 60, 64); + eq.signal(POTIMEA_CONTROLLER_TYPE, 6, 0, tostring(quarmState)); + end +end + +function QuarmSignal(e) + if ( not quarmMoved ) then + quarmMoved = true; + e.self:CastToNPC():MoveTo(42, -1126, 32, -1, false); -- not precise loc + end +end + +function QuarmSpawn(e) + eq.set_next_hp_event(math.random(73, 77)); +end + +function QuarmCombat(e) + if ( e.joined ) then + if ( e.self:GetHPRatio() > 96 ) then + eq.set_next_hp_event(math.random(73, 77)); + end + eq.set_timer("aoe", 10000); + eq.set_timer("vortices", 25000); + eq.stop_timer("check_hp"); + else + eq.stop_timer("aoe"); + eq.stop_timer("vortices"); + eq.stop_timer("cascade"); + eq.set_timer("check_hp", 3000); + eq.depop_all(VORTEX_TYPE); + end +end + +function SetQuarmStats(npc) + for stat, value in pairs(QUARM_STATE[quarmState]) do + npc:ModifyNPCStat(stat, tostring(value)); + end +end + +function SpawnVortices(quarm) + + eq.depop_all(VORTEX_TYPE); + + -- spawn two near quarm + local x, y, z = quarm:GetX(), quarm:GetY(), quarm:GetZ(); + local mob; + for i = 1, 2 do + mob = eq.spawn2(VORTEX_TYPE, 0, 0, x + math.random(-75, 75), y + math.random(-75, 75), z, 0); + eq.set_timer("blur", 9000, mob); + end + + -- spawn one on top of a random client. Live doesn't do this + local c = quarm:GetHateRandomClient(600); + if ( c and c.valid ) then + mob = eq.spawn2(VORTEX_TYPE, 0, 0, c:GetX(), c:GetY(), c:GetZ()+10, 0); + eq.set_timer("blur", 9000, mob); + end + + -- spawn vorticies on every ranger shooting from 400-500 range + -- why do this? because archery has CRAZY HUGE range and rangers have a stupidly good advantage on this fight + -- if we don't punish them, people will make raids half full of ranger alts (they still might) + -- the major problem is healers can heal+cure rangers from outside of AoE radius; they can also duck AoEs by running out a short ways + local hl = quarm:GetHateList(); + local clients = {}; + local dist; + for ent in hl.entries do + if ( ent.ent:IsClient() and ent.ent:GetClass() == 4 ) then + dist = quarm:CalculateDistance(ent.ent:GetX(), ent.ent:GetY(), ent.ent:GetZ()); + if ( dist > 400 and dist < 500 ) then + table.insert(clients, ent.ent:CastToClient()); + end + end + end + + if ( #clients > 0 ) then + c = clients[math.random(1, #clients)]; + mob = eq.spawn2(VORTEX_TYPE, 0, 0, c:GetX(), c:GetY(), c:GetZ()+10, 0); + mob:AddToHateList(c, 10000); + eq.set_timer("blur", 9000, mob); + end +end + +function VortexSpawn(e) + local quarm = eq.get_entity_list():GetNPCByNPCTypeID(QUARM_TYPE); + if ( quarm.valid and not e.self:CheckLoSToLoc(-242, -1124, 20) ) then + eq.debug("Vortex spawned outside wall; moving to Quarm", 3); + e.self:GMMove(quarm:GetX(), quarm:GetY(), quarm:GetZ(), 0); + end +end + +function VortexTimer(e) + if ( e.timer == "blur" ) then + + local target = e.self:GetTarget(); + if ( target and target.valid ) then + e.self:RemoveFromHateList(target); + end + + local list = e.self:GetHateList(); + for ent in list.entries do + e.self:SetHate(ent.ent, 1); + end + end +end + +function QuarmHP(e) + if ( e.hp_event > 70 ) then + eq.set_next_hp_event(math.random(48, 52)); + quarmState = 2; + eq.get_entity_list():MessageClose(e.self, true, 500, 0, "Quarm roars in pain as his red head explodes in a shower of flaming ethereal energy!"); + e.self:SendIllusionPacket({race=304,gender=2,texture=254,helmtexture=1,size=70}); + phaseSpell = 2380; -- Drakeen Vortex; this is a revemped ST spell that I modified to mimic Quarm's 3k cold AoE + spellCount = 1; + + elseif ( e.hp_event > 40 ) then + eq.set_next_hp_event(math.random(23, 27)); + quarmState = 3; + eq.get_entity_list():MessageClose(e.self, true, 500, 0, "Quarm roars in pain as his blue head explodes into pure ethereal energy!"); + e.self:SendIllusionPacket({race=304,gender=2,texture=254,helmtexture=2,size=70}); + phaseSpell = 3777; -- Timeforged Airblast III, 18 second AoE stun + spellCount = 1; + + elseif ( e.hp_event > 20 ) then + quarmState = 4; + eq.get_entity_list():MessageClose(e.self, true, 500, 0, "Quarm shakes the cavern with a bellow of pain as the white head explodes into a swirling vortex of ethereal energy!"); + e.self:SendIllusionPacket({race=304,gender=2,texture=254,helmtexture=3,size=70}); + phaseSpell = 3770; -- Venomed Mist with -500 mana/tick DoT + spellCount = 1; + end + SetQuarmStats(e.self); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + eq.set_timer("phase_spell", 4000); + eq.set_timer("aoe", 30000); + eq.stop_timer("cascade"); + eq.signal(POTIMEA_CONTROLLER_TYPE, 6, 0, tostring(quarmState)); + + eq.debug("PoTime Quarm state is now "..quarmState); + eq.csr_notice("PoTime Quarm state is now "..quarmState); +end + +function DoQuarmAOE(quarm) + local rng = math.random(1, 3); + + if ( quarmState == 1 ) then + + if ( rng == 1 ) then + -- AK's Quarm spam casted these spells because they were in place of the real spells and these had no recast timers on them + -- So doing this to kind-of mimic it. Have to do something like this anyway because we only have a few spells we can use + quarm:CastSpell(eq.ChooseRandom(3781, 3779), quarm:GetID()); -- Cinderblast of Time I, Dissention of Water I (250 dmg+atk debuff) + eq.set_timer("cascade", 2000); + spellCount = 9; + cascadeSpellOne = 3781; + cascadeSpellTwo = 3779; + else + quarm:CastSpell(eq.ChooseRandom(3767, 3768), quarm:GetID()); -- Epoch Conviction (curse), Infernal Flames (3k fire damage) + end + + elseif ( quarmState == 2 ) then + + if ( rng == 1 ) then + quarm:CastSpell(eq.ChooseRandom(3780, 3769), quarm:GetID()); -- Dissention of Water II (450 dmg+atk debuff), Glacier Breath (100 dmg+20% snare) + eq.set_timer("cascade", 2000); + spellCount = 9; + cascadeSpellOne = 3780; + cascadeSpellTwo = 3769; + else + quarm:CastSpell(eq.ChooseRandom(3767, 2380), quarm:GetID()); -- Epoch Conviction, Drakeen Vortex (3k cold damage) + end + + elseif ( quarmState == 3 ) then + + if ( rng == 1 ) then + quarm:CastSpell(3775, quarm:GetID()); -- Timeforged Airblast I (6 second stun, somewhat easily resisted) + eq.set_timer("cascade", 2000); + spellCount = 4; + cascadeSpellOne = 3775; + cascadeSpellTwo = 3775; + else + quarm:CastSpell(eq.ChooseRandom(3767, 3772), quarm:GetID()); -- Epoch Conviction, Earthen Collaboration II (poison) + end + + elseif ( quarmState == 4 ) then + + if ( rng == 1 ) then + quarm:SpellFinished(2307, quarm, 10, 0, 0, -300); -- Breath of the Fallen (disease dmg+dot; 8 hr duration) + else + quarm:CastSpell(eq.ChooseRandom(3767, 3771), quarm:GetID()); -- Epoch Conviction, Plagued Earth (disease curable) + end + + end +end + +function QuarmTimer(e) + + if ( e.timer == "check_hp" ) then + if ( e.self:GetHPRatio() > 90 ) then + if ( quarmState > 1 ) then + quarmState = 1; + e.self:SendIllusionPacket({race=304,gender=2,texture=254,helmtexture=0,size=70}); + SetQuarmStats(e.self); + eq.signal(POTIMEA_CONTROLLER_TYPE, 6, 0, tostring(quarmState)); + end + eq.stop_timer(e.timer); + end + + elseif ( e.timer == "vortices" ) then + + SpawnVortices(e.self); + + elseif ( e.timer == "aoe" ) then + + DoQuarmAOE(e.self); + eq.set_timer("aoe", 25000+math.random(0, 8000)); + + elseif ( e.timer == "phase_spell" or e.timer == "cascade" ) then + + if ( e.timer == "phase_spell" ) then + e.self:CastSpell(phaseSpell, e.self:GetID()); + else + e.self:CastSpell(eq.ChooseRandom(cascadeSpellOne, cascadeSpellTwo), e.self:GetID()); + end + + spellCount = spellCount - 1; + if ( spellCount <= 0 ) then + eq.stop_timer(e.timer); + end + end +end + +function QuarmDeath(e) + if ( quarmState ~= 4 or e.self:GetAC() ~= 1000 ) then + eq.debug("Error: Quarm did not power up correctly. Depoping corpse."); + e.self:ClearItemList(); + e.self:Depop(); + eq.depop_all(corpseType); + eq.csr_notice("PoTime error: Quarm did not power up correctly. state == "..quarmState); + end +end + +function QuarmDeathComplete(e) + eq.signal(INSTANCE_CONTROLLER_TYPE, 6, 0, "6;1"); + eq.depop_all(VORTEX_TYPE); + local egg = eq.get_entity_list():GetMobByNpcTypeID(EGG_TYPE); + egg:SetSpecialAbility(35, 0); -- No Harm from Players off + egg:SetBodyType(7, false); -- NoTarget off + eq.csr_notice(string.format("PoTime Quarm slain by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end + +function EggDeathComplete(e) + eq.spawn2(ZEBUXORUK_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); +end + +function ZebuxorukSpawn(e) + e.self:Emote("staggers about and looks at you drowsy, from his weakened state. 'My thanks to you. I am surprised to see you have made it here. We must get back to Norrath. The time has come for me to share my knowledge. Something is coming, a threat to us all, and the sands in the hourglass are thinning. Make haste and take me back the way you came.'"); + eq.set_timer("dialog2", 32000); +end + +function ZebuxorukTimer(e) + eq.stop_timer(e.timer); + + if ( e.timer == "dialog2" ) then + e.self:Say("I am surprised at the gods for taking such drastic measures, though I suppose all of the creations of the Nameless are capable of displaying poor judgment and irrational behavior. These gods are burdened with powers and responsibilities beyond our comprehension, yet at times even they do not understand the eventual effect of their actions. I am compelled to share the knowledge of the gods with the populace of Norrath, so that I might save their creations. They do not realize that if mortality ceases to exist... if they are not worshipped and held aloft by the beliefs of those that they now have grown to fear... they will fall from power and a new age of darkness will wash over existence as they know it. I did not seek to interfere with them or their realms, only to free them from a fate that awaits all of us. It is this fate that now stands ready, greedily gathered on the edge of the void, ready to test the will of all mortals."); + eq.set_timer("move", 28000); + + elseif ( e.timer == "move" ) then + e.self:MoveTo(-295, -1120, 0, 64, true); -- not precise loc + + elseif ( e.timer == "dialog5" ) then + e.self:Say("Druzzil, I have missed you. Wasn't it you that taught me in your own realm to seek knowledge and share it in all forms?"); + end +end + +function ZebuxorukWaypointArrive(e) + -- dialog3 + e.self:Say("If they have taken measures these extreme I must rethink what I have done, and what I will do. If there was this much cause for conc..."); + eq.get_entity_list():MessageClose(e.self, true, 125, 0, "Suddenly in a bright flash a feminine figure appears before you. Your ears ring from the loud burst as she slowly materializes."); + eq.spawn2(DRUZZIL_TYPE, 0, 0, e.self:GetX() + 25, e.self:GetY(), e.self:GetZ(), 192); + eq.set_timer("dialog5", 15000); +end + +function DruzzilSpawn(e) + eq.set_timer("dialog4", 9000); +end + +function DruzzilTimer(e) + eq.stop_timer(e.timer); + + if ( e.timer == "dialog4" ) then + e.self:Emote("speaks with no movement of her mouth. Her thoughts flow through you, calming you as you begin to comprehend what she is trying to communicate to you."); + e.self:Emote("speaks to your mind, 'Zebuxoruk, my student I cannot allow this to happen. If you were to escape from another prison the will and power of the gods will have been compromised.'"); + eq.set_timer("dialog6", 12000); + + elseif ( e.timer == "dialog6" ) then + e.self:Emote("speaks to your mind, 'That I did, but I also taught you not to share your wealth of knowledge if it would affect the fate of others. I cannot allow this to happen. I must set things back to how they were before you and these mortals arrived here, I believe that you cannot understand this and I am sorry.'"); + eq.set_timer("dialog7", 6000); + + elseif ( e.timer == "dialog7" ) then + e.self:Emote("looks upon Zebuxoruk one last time, as a wave of sadness comes across her gentle face."); + eq.set_timer("dialog8", 6000); + + elseif ( e.timer == "dialog8" ) then + e.self:Emote("begins to chant an incantation; mana flows out from her body in all directions. Things begin moving slowly in reverse. You become dizzy from the experience and fall to your knees. As you look up the last thing you can see is Druzzil Ro smiling in your direction. She then waves her arms gracefully and points at you."); + eq.set_timer("dialog9", 6000); + + elseif ( e.timer == "dialog9" ) then + eq.get_entity_list():MessageClose(e.self, true, 500, 0, "There is a brilliant flash and you find yourself displaced through time and space. For a moment you lose touch with yourself. As you wake, you find yourself back in the Plane of Knowledge, moments after talking to Maelin with the information of retrieving the Quintessence of Elements. Druzzil has preserved the timeline, and restored existence back to its normalcy."); + eq.set_timer("port", 2000); + + elseif ( e.timer == "port" ) then + eq.set_timer("depop", 10000); + + local clientList = eq.get_entity_list():GetClientList(); + if ( clientList ) then + for client in clientList.entries do + if ( (client:GetX() < 500 or client:GetY() > 500) and not client:GetGM() ) then + client:MovePC(202, 1007, 6, 390, 64*2); + end + end + end + + elseif ( e.timer == "depop" ) then + eq.depop_all(ZEBUXORUK_TYPE); + eq.depop_all(DRUZZIL_TYPE); + end +end + +function event_encounter_load(e) + eq.register_npc_event("Phase6", Event.signal, EVENTS_CONTROLLER_TYPE, Phase6Signal); + + eq.register_npc_event("Phase6", Event.combat, QUARM_TYPE, QuarmCombat); + eq.register_npc_event("Phase6", Event.hp, QUARM_TYPE, QuarmHP); + eq.register_npc_event("Phase6", Event.timer, QUARM_TYPE, QuarmTimer); + eq.register_npc_event("Phase6", Event.signal, QUARM_TYPE, QuarmSignal); + eq.register_npc_event("Phase6", Event.death, QUARM_TYPE, QuarmDeath); + eq.register_npc_event("Phase6", Event.death_complete, QUARM_TYPE, QuarmDeathComplete); + + eq.register_npc_event("Phase6", Event.timer, VORTEX_TYPE, VortexTimer); + eq.register_npc_event("Phase6", Event.spawn, VORTEX_TYPE, VortexSpawn); + + eq.register_npc_event("Phase6", Event.death_complete, EGG_TYPE, EggDeathComplete); + eq.register_npc_event("Phase6", Event.spawn, ZEBUXORUK_TYPE, ZebuxorukSpawn); + eq.register_npc_event("Phase6", Event.timer, ZEBUXORUK_TYPE, ZebuxorukTimer); + eq.register_npc_event("Phase6", Event.waypoint_arrive, ZEBUXORUK_TYPE, ZebuxorukWaypointArrive); + eq.register_npc_event("Phase6", Event.spawn, DRUZZIL_TYPE, DruzzilSpawn); + eq.register_npc_event("Phase6", Event.timer, DRUZZIL_TYPE, DruzzilTimer); + + eq.signal(POTIMEA_CONTROLLER_TYPE, 7); -- tell PoTimeA that PoTimeB was reset in case zone B crashes +end diff --git a/potimeb/player.lua b/potimeb/player.lua new file mode 100644 index 0000000..2d4e420 --- /dev/null +++ b/potimeb/player.lua @@ -0,0 +1,81 @@ +local POTIMEB_CONTROLLER_TYPE = 223077; +local GOD_TYPES = { + [16] = 223000, -- Vallon + [17] = 223001, -- Tallon + [18] = 223007, -- Innoruuk + [19] = 223004, -- Cazic Thule + [20] = 223006, -- Rallos Zek + [21] = 223005, -- Bertoxxulous + [22] = 223002, -- Terris Thule + [23] = 223003, -- Saryrn +}; +local TELEPORT_LOCS = { + [17] = { 214, -210, 10, -35, 0 }, -- potactics + [18] = { 76, 0, 0, 4, 0 }, -- hateplane + [19] = { 72, 1029, -773, 108, 0 }, -- fearplane + [20] = { 214, -210, 10, -35, 0 }, -- potactics + [21] = { 205, -1750, -1245, -59, 0 }, -- podisease + [22] = { 204, 1668, 282, 212, 0 }, -- ponightmare + [23] = { 207, -341, 1706, -491, 0 }, -- potorment +}; + +function event_enter_zone(e) + if ( not e.self:GetGM() ) then + if ( e.self:GetX() < 500 or e.self:GetY() > 500 ) then + -- client not in graveyard + eq.signal(POTIMEB_CONTROLLER_TYPE, 8, 0, tostring(e.self:GetID())); + end + end +end + +function event_click_door(e) + local door_id = e.door:GetDoorID(); + + -- god portals + if ( door_id >= 17 and door_id <= 23 ) then + + if ( GOD_TYPES[door_id] ) then + local elist = eq.get_entity_list(); + + if ( door_id == 17 ) then + if ( not elist:IsMobSpawnedByNpcTypeID(GOD_TYPES[17]) and not elist:IsMobSpawnedByNpcTypeID(GOD_TYPES[16]) ) then + e.self:MovePC(unpack(TELEPORT_LOCS[door_id])); + return; + end + else + if ( not elist:IsMobSpawnedByNpcTypeID(GOD_TYPES[door_id]) ) then + e.self:MovePC(unpack(TELEPORT_LOCS[door_id])); + return; + end + end + e.self:Message(0, "Faint energy swirls slowly through the portal, but nothing happens."); + end + + -- clock doors and dials + elseif ( door_id < 52 or door_id == 62 ) then + eq.signal(POTIMEB_CONTROLLER_TYPE, 4, 0, door_id..";"..e.self:CharacterID()); + end +end + +function event_say(e) + if ( e.self:GetGM() ) then + if ( e.message == "shutdown instance now" ) then + eq.signal(POTIMEB_CONTROLLER_TYPE, 9, 0, "1"); + + elseif ( e.message == "shutdown instance" ) then + eq.signal(POTIMEB_CONTROLLER_TYPE, 9, 0, "2"); + + elseif ( e.message:find("set raid id to %d+") ) then + local _, _, id = e.message:find("set raid id to (%d+)") + if ( id ) then + eq.signal(POTIMEB_CONTROLLER_TYPE, 9, 0, "3;"..id); + end + + elseif ( e.message == "skip phase 1" ) then + eq.signal(POTIMEB_CONTROLLER_TYPE, 9, 0, "4"); + + elseif ( e.message == "zone status" ) then + eq.signal(POTIMEB_CONTROLLER_TYPE, 9, 0, "5"); + end + end +end diff --git a/potimeb/script_init.lua b/potimeb/script_init.lua new file mode 100644 index 0000000..a13a540 --- /dev/null +++ b/potimeb/script_init.lua @@ -0,0 +1,10 @@ +eq.load_encounter("Phase1Earth"); +eq.load_encounter("Phase1Air"); +eq.load_encounter("Phase1Undead"); +eq.load_encounter("Phase1Water"); +eq.load_encounter("Phase1Fire"); +eq.load_encounter("Phase2"); +eq.load_encounter("Phase3"); +eq.load_encounter("Phase4"); +eq.load_encounter("Phase5"); +eq.load_encounter("Phase6"); diff --git a/potorment/#Argan_Milek.lua b/potorment/#Argan_Milek.lua new file mode 100644 index 0000000..1ee7f2b --- /dev/null +++ b/potorment/#Argan_Milek.lua @@ -0,0 +1,22 @@ +function event_spawn(e) + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(207047) ) then -- A_Horrifying_Vision + eq.depop_with_timer(); + end +end + +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Emote("weakly extends his arms in an effort to ascertain your location, then clutches his eyes and screams, ''Who are you! Back away... leave me alone! Is my current suffering not enough?'"); + + elseif ( e.message:findi("suffering") ) then + e.self:Say("Who are you? Are you here to aid me?"); + + elseif ( e.message:findi("here to aid you") ) then + e.self:Emote("sobs, 'I am so relieved to hear those words! Please help me to escape this place. She has taken my sight and replaced it with loathsome visions of some distant prison. The Foul Mistress mocks the only thing I once felt a kinship to, my art. I cannot scrub these visions from my eyes. I fear that I will never be able to paint again. Can you save what is left of my memories? I can you restore my sight?'"); + + elseif ( e.message:findi("save") and e.message:findi("memories") ) then + e.self:CastSpell(1135, e.other:GetID()); -- Visions of Argan + end +end \ No newline at end of file diff --git a/potorment/#Baraguj_Szuul.lua b/potorment/#Baraguj_Szuul.lua new file mode 100644 index 0000000..a111f01 --- /dev/null +++ b/potorment/#Baraguj_Szuul.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.set_timer("depop", 43200000); +end + +function event_timer(e) + eq.depop(); +end diff --git a/potorment/#Tylis_Newleaf.lua b/potorment/#Tylis_Newleaf.lua new file mode 100644 index 0000000..1f5cad7 --- /dev/null +++ b/potorment/#Tylis_Newleaf.lua @@ -0,0 +1,46 @@ +local FLAG_LIMIT = 72; + +function event_spawn(e) + flags = 0; + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + + if ( e.message:findi("hail") ) then + + if ( qglobals.tylis ) then + + e.other:Message(0, "Tylis Newleaf tells you, 'I must thank you for your kind efforts friends. This place has laid claim to me for far too long. Please take care and offer the dark wench my best. I am off... and I suggest you not stray to far from that route yourselves. Please tell me when you are ready to return and may your blades strike true!'"); + + if ( qglobals.tylis == "1" and flags <= FLAG_LIMIT ) then + eq.set_global("tylis", "2", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + flags = flags + 1; + end + + if ( qglobals.cl_keeper ) then + eq.delete_global("cl_keeper"); + end + + elseif ( not qglobals.cl_keeper ) then + + if ( flags <= FLAG_LIMIT ) then + e.other:Message(0, "Tylis Newleaf tells you, 'I don't recognize you, stranger. Thank you so much for your kind efforts. This place has claimed me for far too long. I will leave now that I have been freed of my torment. However, before I go, please tell me when you're [ready to return] and I will send you out first.'"); + eq.set_global("cl_keeper", "1", 5, "F"); + e.other:Message(15, "You have received a new checklist flag!"); + flags = flags + 1; + end + end + + elseif ( e.message:findi("ready to return") ) then + e.self:CastSpell(1136, e.other:GetID()); -- Torment's Beckon + end +end diff --git a/potorment/A_Horrifying_Vision.lua b/potorment/A_Horrifying_Vision.lua new file mode 100644 index 0000000..f366e16 --- /dev/null +++ b/potorment/A_Horrifying_Vision.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(207322, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- Argan_Milek +end diff --git a/potorment/A_Planar_Projection.lua b/potorment/A_Planar_Projection.lua new file mode 100644 index 0000000..1a39e20 --- /dev/null +++ b/potorment/A_Planar_Projection.lua @@ -0,0 +1,81 @@ +local FLAG_LIMIT = 72; + +local flags = 0; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + +function event_signal(e) + rid, gid, cid = nil, nil, nil; + local client = eq.get_entity_list():GetClientByID(e.signal); -- the signal # is the entity ID of a client with kill credit + + if ( client.valid ) then + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + end +end + +function event_spawn(e) + flags = 0; + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + + if ( ClientCanFlag(e.other) ) then + + if ( e.message:findi("hail") and flags < FLAG_LIMIT and not qglobals.saryrn and not qglobals.cipher ) then + + if ( qglobals.tylis and qglobals.tylis == "2" ) then + + e.other:Message(0, "The Planar Projection's thoughts enter your own. 'You have done well, now receive the knowledge that Saryrn once held!' You look down at your arms to see a set of unintelligible runes being burnt into your arms. The pain is terrible and searing. Suddenly the sensation is gone and the runes slowly fade."); + eq.set_global("saryrn", "1", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + flags = flags + 1; + + if ( qglobals.cl_saryrn ) then + eq.delete_global("cl_saryrn"); + end + + elseif ( not qglobals.cl_saryrn ) then + e.other:Message(0, "The Planar Projection seems to flicker in and out of existence. It seems to be impressed and grateful for the death of Saryrn."); + eq.set_global("cl_saryrn", "1", 5, "F"); + e.other:Message(15, "You have received a new checklist flag!"); + flags = flags + 1; + end + end + end +end diff --git a/potorment/A_blurry_image.lua b/potorment/A_blurry_image.lua new file mode 100644 index 0000000..e85f87a --- /dev/null +++ b/potorment/A_blurry_image.lua @@ -0,0 +1,4 @@ +function event_combat(e) + eq.spawn2(207304, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- A_shadow + eq.depop_with_timer(); +end diff --git a/potorment/A_cloudy_image.lua b/potorment/A_cloudy_image.lua new file mode 100644 index 0000000..e85f87a --- /dev/null +++ b/potorment/A_cloudy_image.lua @@ -0,0 +1,4 @@ +function event_combat(e) + eq.spawn2(207304, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- A_shadow + eq.depop_with_timer(); +end diff --git a/potorment/A_construct_seedling.lua b/potorment/A_construct_seedling.lua new file mode 100644 index 0000000..9285ed0 --- /dev/null +++ b/potorment/A_construct_seedling.lua @@ -0,0 +1,29 @@ +function event_spawn(e) + eq.set_timer("depop", 100000); + eq.set_timer("move", 1); +end + +function event_timer(e) + + if ( e.timer == "move" and not e.self:IsEngaged() ) then + eq.set_timer("move", 6000); + + local boss = eq.get_entity_list():GetMobByNpcTypeID(207003); -- The_Acolyte_of_Affliction + if ( not boss or not boss.valid ) then + eq.depop(); + end + e.self:MoveTo(boss:GetX(), boss:GetY(), boss:GetZ() - 5.5, -1, true); + + elseif ( e.timer == "depop" ) then + eq.depop(); + end + +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end \ No newline at end of file diff --git a/potorment/A_faint_rattle.lua b/potorment/A_faint_rattle.lua new file mode 100644 index 0000000..7dbd053 --- /dev/null +++ b/potorment/A_faint_rattle.lua @@ -0,0 +1,5 @@ +function event_combat(e) + e.self:Emote("of chains draws your attention to a sudden movement in the mist above you!"); + eq.spawn2(207299, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- A_parylyx_hatchling + eq.depop_with_timer(); +end diff --git a/potorment/A_parylyx_hatchling.lua b/potorment/A_parylyx_hatchling.lua new file mode 100644 index 0000000..07066aa --- /dev/null +++ b/potorment/A_parylyx_hatchling.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/potorment/A_parylyx_hookcaster.lua b/potorment/A_parylyx_hookcaster.lua new file mode 100644 index 0000000..07066aa --- /dev/null +++ b/potorment/A_parylyx_hookcaster.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/potorment/A_parylyx_limb_binder.lua b/potorment/A_parylyx_limb_binder.lua new file mode 100644 index 0000000..07066aa --- /dev/null +++ b/potorment/A_parylyx_limb_binder.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/potorment/A_parylyx_painweaver.lua b/potorment/A_parylyx_painweaver.lua new file mode 100644 index 0000000..07066aa --- /dev/null +++ b/potorment/A_parylyx_painweaver.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/potorment/A_parylyx_widow.lua b/potorment/A_parylyx_widow.lua new file mode 100644 index 0000000..07066aa --- /dev/null +++ b/potorment/A_parylyx_widow.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/potorment/A_warm.lua b/potorment/A_warm.lua new file mode 100644 index 0000000..9d31ad0 --- /dev/null +++ b/potorment/A_warm.lua @@ -0,0 +1,4 @@ +function event_combat(e) + e.self:Emote("red mist falls from above. The slick substance has no time to settle before it is hungrily absorbed by every surface."); + eq.depop_with_timer(); +end diff --git a/potorment/An_Unimaginable_Horror.lua b/potorment/An_Unimaginable_Horror.lua new file mode 100644 index 0000000..f0fe7e4 --- /dev/null +++ b/potorment/An_Unimaginable_Horror.lua @@ -0,0 +1,5 @@ +function event_death(e) + eq.depop_with_timer(207028); -- Baraguj_Szuul + eq.unique_spawn(207319, 0, 0, 5, -1041, -26.25, 0); -- #Baraguj_Szuul + eq.spawn2(207321, 0, 0, -805, 962, -1644, 0); -- An_unseen_entity +end diff --git a/potorment/An_acidic_mist.lua b/potorment/An_acidic_mist.lua new file mode 100644 index 0000000..e710166 --- /dev/null +++ b/potorment/An_acidic_mist.lua @@ -0,0 +1,4 @@ +function event_combat(e) + e.self:Emote("squirts from the porous walls that surround you!"); + eq.depop_with_timer(); +end diff --git a/potorment/An_unseen_entity.lua b/potorment/An_unseen_entity.lua new file mode 100644 index 0000000..27982c8 --- /dev/null +++ b/potorment/An_unseen_entity.lua @@ -0,0 +1,13 @@ +function event_spawn(e) + eq.set_timer("depop", 2000000); +end + +function event_timer(e) + eq.depop(); +end + +function event_combat(e) + if ( e.joined ) then + e.self:CastSpell(1133, e.other:GetID()); -- Dimensional Return + end +end diff --git a/potorment/Argan_Milek.lua b/potorment/Argan_Milek.lua new file mode 100644 index 0000000..8064b5f --- /dev/null +++ b/potorment/Argan_Milek.lua @@ -0,0 +1,27 @@ +function event_spawn(e) + eq.set_timer("depop", 1800000); +end + +function event_timer(e) + eq.depop(); +end + +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Say("Friends, you have returned my vision! I wish that I could find the means to thank you enough! Friends, should Druzzil Ro choose to have us meet again on this chaotic canvas of time, I will make this up to you! I am afraid that I must leave at this time. I feel my body waking and I am quite ready to forget the image of this place. I have some information that may help you, and when you are ready, I will return your sight to you."); + + elseif ( e.message:findi("information") ) then + e.self:Say("While I was blind, Druzzil Ro came to me in a vision. In this vision, she walked me to the door of Saryrn's Citadel. When I set my gaze upon the door, I began to make out some sort of picture. The inscription on the door seemed to shift and change, as if it were fluid. At one point, I was able to make out several distinct shapes. These shapes depicted one of those things with the four mouths spitting out four other similar creatures. I think that the things with four mouths are the key to the door. It was then that I asked Druzzil Ro about Saryrn."); + + elseif ( e.message:findi("saryrn") ) then + e.self:Say("Druzzil Ro told me that Saryrn formed this place from her own tortured will. Saryrn was insane as a mortal and found some means of transforming that insanity into something more. Many of the entities that you will find in this place are voices that came to her during the inception of her madness. They will be the key to dissolving her power. Seek out the Avatars of this realm to move into her tower. Now, I must leave. Are you ready to return?"); + + elseif ( e.message:findi("ready") ) then + local client = e.other; + client:MovePC(207, -257, 1711, -481, 0); + if ( client:GetPet().valid and not client:GetPet():Charmed() ) then + client:GetPet():GMMove(207, -257, 1711, -481, 0); + end + end +end \ No newline at end of file diff --git a/potorment/Maareq_the_Prophet.lua b/potorment/Maareq_the_Prophet.lua new file mode 100644 index 0000000..15a145f --- /dev/null +++ b/potorment/Maareq_the_Prophet.lua @@ -0,0 +1,97 @@ +local power = 0; +local state = 0; + +function event_spawn(e) + power = 0; + state = 0; +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("minion", 5000); + eq.stop_timer("revert"); + else + eq.stop_timer("minion"); + eq.stop_timer("upgrade"); + if ( state > 0 ) then + eq.set_timer("revert", 480000); + end + end +end + +function event_timer(e) + + if ( e.timer == "minion" ) then + + local mob = eq.spawn2(207297, 0, 0, -25, 0, 451, 128); -- a_minion_of_Maareq + mob:CastToNPC():MoveTo(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0, true); + + --[[ + -- permarooted in AK's time, so don't need this + if ( e.self:GetZ() < 440 or e.self:GetZ() > 475 ) then + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + end + ]] + + elseif ( e.timer == "upgrade" ) then + eq.stop_timer(e.timer); + + if ( state == 0 ) then + e.self:Emote("raises his arms towards the sky and screams! His exposed skin bulges and writhes, as the creatures that clung to him move beneath its surface."); + e.self:Emote("shouts 'My prophecy was fulfilled for Saryrn. Your fate shall come to fruition as well! I have a special vision for you. Now, step forward like the obedient cattle you are. Let us begin this harvest of pain!'"); + + e.self:ModifyNPCStat("special_abilities", "5,1,25"); -- flurry 25% + e.self:ChangeSize(12); + + elseif ( state == 1 ) then + e.self:Say("Your assault only prolongs the inevitable! I can feel the fear dripping for you. Give into it. Give up while you still have enough energy to suffer properly!"); + eq.get_entity_list():MessageClose(e.self, true, 200, 0, "A horrific roar reverberates throughout the zone! Every surface shakes violently for a moment as the sound rolls past you!"); + + e.self:SetTexture(0); + e.self:SetRace(281); + e.self:SetGender(2); + e.self:ChangeSize(12); + e.self:ModifyNPCStat("special_abilities", "5,0,0"); -- disable flurry + e.self:ModifyNPCStat("special_abilities", "4,1,10"); -- wild/aoe rampage 10% + + elseif ( state == 2 ) then + e.self:Emote("radiates with rage! The ferocity of it's attacks increases dramatically as it's skin begins to bubble and burst in places!"); + e.self:ChangeSize(17); + e.self:ModifyNPCStat("attack_delay", "8"); + end + state = state + 1; + + elseif ( e.timer == "revert" ) then + eq.stop_timer(e.timer); + + e.self:SetTexture(16); + e.self:SetRace(1); + e.self:SetGender(0); + e.self:ChangeSize(7); + e.self:ModifyNPCStat("special_abilities", "5,0,0"); -- disable flurry + e.self:ModifyNPCStat("special_abilities", "4,0,0"); -- disable wild/aoe rampage + e.self:ModifyNPCStat("attack_delay", "12"); + power = 0; + state = 0; + end +end + +function event_signal(e) + if ( e.signal == 1 ) then + power = power + 1; + + if ( (state < 3 and power >= 40) or (state < 2 and power >=20) or (state == 0 and power >= 10) ) then + eq.set_timer("upgrade", 3000); + end + end +end + +function event_death_complete(e) + eq.depop_all(207297); -- a_minion_of_Maareq + + local tylis = eq.get_entity_list():GetMobByNpcTypeID(207014); -- Tylis_Newleaf + if ( tylis and tylis.valid ) then + tylis:SetBodyType(1, false); -- make targetable + end +end diff --git a/potorment/Salczek_the_Fleshgrinder.lua b/potorment/Salczek_the_Fleshgrinder.lua new file mode 100644 index 0000000..4f7bf7c --- /dev/null +++ b/potorment/Salczek_the_Fleshgrinder.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.set_next_hp_event(50); +end + +function event_hp(e) + e.self:ModifyNPCStat("special_abilities", "4,1,20"); -- wild/aoe rampage 20% +end diff --git a/potorment/Saryrn.lua b/potorment/Saryrn.lua new file mode 100644 index 0000000..57a9204 --- /dev/null +++ b/potorment/Saryrn.lua @@ -0,0 +1,117 @@ +local PLANAR_PROJECTION_TYPE = 207317; +local SORROWSONG_TYPEID = 207052; +local SORROWSONG_SPAWNID = 346761; + +local HP_EVENTS = { 99, 90, 80, 70, 60, 50, 40, 30, 25, 20, 10 }; +local SPAWN_LOCS = { + { 78, -69, 505.5, 128 }, + { 79, -7, 455.5, 128 }, + { 21, -37, 455.5, 172 }, + { -49, -37, 455.5, 96 }, + { -54, -120, 455.5, 26 }, +}; + +local event = 1; +local spawns = { 0, 0, 0, 0, 0 }; + +-- spawn the wolf/boarman NPCs on the stairs and under the floor +function Spawn() + local loc; + local elist = eq.get_entity_list(); + + for i = 1, #spawns do + if ( spawns[i] == 0 or not elist:GetMob(spawns[i]).valid ) then + loc = SPAWN_LOCS[i]; + spawns[i] = eq.spawn2( eq.ChooseRandom(207023, 207284, 207024, 207291), 0, 0, loc[1], loc[2], loc[3], loc[4] ):GetID(); + end + end +end + +function Despawn() + local npcList = eq.get_entity_list():GetNPCList(); + + for i = 1, #spawns do + + if ( spawns[i] ~= 0 ) then + + for npc in npcList.entries do + + if ( npc.valid and npc:GetID() == spawns[i] ) then + npc:Depop(); + end + end + + spawns[i] = 0; + end + end +end + +function event_spawn(e) + eq.get_entity_list():GetSpawnByID(SORROWSONG_SPAWNID):SetTimer(1); -- force spawn Sorrowsong + event = 1; + eq.set_next_hp_event(HP_EVENTS[event]); +end + +function event_combat(e) + if ( e.joined ) then + eq.stop_timer("checkup"); + eq.set_timer("bounds", 5000); + else + --eq.get_entity_list():GetSpawnByID(SORROWSONG_SPAWNID):SetTimer(1); -- force spawn Sorrowsong + eq.set_timer("checkhp", 5000); + eq.stop_timer("bounds"); + Despawn(); + end +end + +function event_timer(e) + + if ( e.timer == "bounds" ) then + + if ( e.self:GetZ() < 575 ) then + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + e.self:CastSpell(3230, e.self:GetID()); -- Balance of the Nameless + end + + elseif ( e.timer == "checkhp" ) then + + if ( e.self:GetHPRatio() == 100 ) then + eq.stop_timer(e.timer); + + eq.signal(SORROWSONG_TYPEID, 3); -- revert to untargetable + event = 1; + eq.set_next_hp_event(HP_EVENTS[event]); + end + end +end + +function event_hp(e) + + event = event + 1; + if ( HP_EVENTS[event] ) then + eq.set_next_hp_event(HP_EVENTS[event]); + end + + if ( e.hp_event == 99 ) then + e.self:Say("Sorrowsong, sing for us. We want these wretches to enjoy their stay, don't we?"); + eq.signal(SORROWSONG_TYPEID, 1); -- start silencing + Spawn(); + return; + + elseif ( e.hp_event == 25 ) then + e.self:Say("This filth is proving to be a challenge! Sorrowsong, attack these mortals!"); + eq.signal(SORROWSONG_TYPEID, 2); -- become targable/attack + return; + end + + for i = 1, 3 do + -- spawn a_summoned_servant, a_twisted_spirit + eq.spawn2(eq.ChooseRandom(207306, 207308), 0, 0, math.random(-30, 30), math.random(-105, -55), 580, 0); + end +end + +function event_death_complete(e) + Despawn(); + eq.spawn2(PLANAR_PROJECTION_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + eq.signal(PLANAR_PROJECTION_TYPE, e.killer:GetID()); -- e.killer for death_complete is somebody with kill rights, not death blow +end diff --git a/potorment/Something_dark.lua b/potorment/Something_dark.lua new file mode 100644 index 0000000..4b15294 --- /dev/null +++ b/potorment/Something_dark.lua @@ -0,0 +1,5 @@ +function event_combat(e) + e.self:Emote("and metallic drops from the mist!"); + eq.spawn2(eq.ChooseRandom(207302, 207301), 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- A_parylyx_painweaver, A_parylyx_limb_binder + eq.depop_with_timer(); +end diff --git a/potorment/Sorrowsong.lua b/potorment/Sorrowsong.lua new file mode 100644 index 0000000..cba2d2a --- /dev/null +++ b/potorment/Sorrowsong.lua @@ -0,0 +1,68 @@ +local loc; + +function event_signal(e) + if ( e.signal == 1 ) then + loc = 1; + eq.set_timer("move", 10000); + e.self:CastSpell(3011, e.self:GetID()); -- Sorrow Song + eq.set_timer("song", 5000); + + elseif ( e.signal == 2 ) then + eq.stop_timer("move"); + e.self:SetSpecialAbility(24, 0); -- Will Not Aggro off + e.self:SetSpecialAbility(25, 0); -- Immune to Aggro off + e.self:SetSpecialAbility(35, 0); -- No Harm from Players off + e.self:SetBodyType(21, false); -- Animal + + local boss = eq.get_entity_list():GetMobByNpcTypeID(207001); -- Saryrn + if ( boss and boss.valid ) then + e.self:MoveTo(boss:GetX(), boss:GetY(), boss:GetZ(), -1, true); + end + + elseif ( e.signal == 3 ) then + eq.stop_timer("move"); + e.self:SetSpecialAbility(24, 1); -- Will Not Aggro on + e.self:SetSpecialAbility(25, 1); -- Immune to Aggro on + e.self:SetSpecialAbility(35, 1); -- No Harm from Players on + e.self:SetBodyType(11, false); -- NoTarget + e.self:WipeHateList(); + e.self:MoveTo(1, -1, 580, 128, true); + end +end + +function event_timer(e) + + if ( e.timer == "move" ) then + + if ( loc == 1 ) then + eq.set_timer("move", 20000); + e.self:MoveTo(-62, -134, 580, 0, true); + loc = 2; + elseif ( loc == 2 ) then + eq.set_timer("move", 20000); + e.self:MoveTo(64, -167, 580, 0, true); + loc = 3; + else + eq.set_timer("move", 25000); + e.self:MoveTo(1, -1, 580, 128, true); + loc = 1; + end + + elseif ( e.timer == "song" ) then + eq.stop_timer(e.timer); + e.self:CastSpell(3011, e.self:GetID()); -- Sorrow Song + end +end + +function event_waypoint_arrive(e) + if ( not e.self:IsEngaged() ) then + e.self:CastSpell(3011, e.self:GetID()); -- Sorrow Song + eq.set_timer("song", 5000); + end +end + +function event_combat(e) + if ( not e.joined ) then + e.self:MoveTo(1, -1, 580, 128, true); + end +end diff --git a/potorment/The_Acolyte_of_Affliction.lua b/potorment/The_Acolyte_of_Affliction.lua new file mode 100644 index 0000000..cc088bf --- /dev/null +++ b/potorment/The_Acolyte_of_Affliction.lua @@ -0,0 +1,22 @@ +function event_combat(e) + if ( e.joined ) then + eq.set_timer("adds", 50000); + else + eq.stop_timer("adds"); + end +end + +function event_timer(e) + + if ( e.timer == "adds" ) then + + local x = math.random(5, 10); + for i = 1, x do + eq.spawn2(207295, 0, 0, math.random(-32, 32), math.random(-175, -153), 194, 0); -- A_construct_seedling + end + end +end + +function event_death_complete(e) + eq.depop_all(207295); -- A_construct_seedling +end diff --git a/potorment/The_Keeper_of_Sorrows.lua b/potorment/The_Keeper_of_Sorrows.lua new file mode 100644 index 0000000..4310391 --- /dev/null +++ b/potorment/The_Keeper_of_Sorrows.lua @@ -0,0 +1,4 @@ +function event_death_complete(e) + eq.depop_with_timer(207014); -- Tylis_Newleaf + eq.spawn2(207318, 0, 0, -176, 368, -764.8, 0); -- #Tylis_Newleaf +end diff --git a/potorment/The_shadows.lua b/potorment/The_shadows.lua new file mode 100644 index 0000000..7c7b054 --- /dev/null +++ b/potorment/The_shadows.lua @@ -0,0 +1,10 @@ +function event_combat(e) + e.self:Emote("around you erupt with activity!"); + + local typeid = 207300; -- A_parylyx_hookcaster + if ( math.random(10) == 1 ) then + typeid = 207320; -- A_parylyx_widow + end + eq.spawn2(typeid, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + eq.depop_with_timer(); +end diff --git a/potorment/Tylis_Newleaf.lua b/potorment/Tylis_Newleaf.lua new file mode 100644 index 0000000..a1faf9c --- /dev/null +++ b/potorment/Tylis_Newleaf.lua @@ -0,0 +1,70 @@ +local KEY_ITEM_ID = 22954; -- Screaming Sphere + +function RaidHasKey(client) + local group = client:GetGroup(); + local raid = client:GetRaid(); + + if ( raid and raid.valid ) then + local member; + for i = 0, 71 do + member = raid:GetMember(i); + + if ( member and member.valid ) then + if ( member:KeyRingCheck(KEY_ITEM_ID) or member:HasItem(KEY_ITEM_ID) ) then + return true; + end + end + end + + elseif ( group and group:GroupCount() > 0 ) then + for i = 0, 5 do + local member = group:GetMember(i):CastToClient(); + + if ( member.valid ) then + if ( member:KeyRingCheck(KEY_ITEM_ID) or member:HasItem(KEY_ITEM_ID) ) then + return true; + end + end + end + else + if ( client:KeyRingCheck(KEY_ITEM_ID) or client:HasItem(KEY_ITEM_ID) ) then + return true; + end + end + + return false; +end + +function event_say(e) + + if ( e.message:findi("hail") ) then + + e.self:Emote("doesn't move, but struggles to whisper, '...help ...end this torment ...will you come? I can show you the pain... it moves in the shadows of my mind... will you assist me?'"); + + else + + local qglobals = eq.get_qglobals(e.other); + local noflag = false; + + if ( e.message:findi("will assist you") ) then + + if ( qglobals.tylis and RaidHasKey(e.other) ) then + e.self:Say("Please tell me when you are ready. I do not know if I have enough energy to channel all of you, but I can try. When you are ready, I will channel you into my pain."); + else + noflag = true; + end + + elseif ( e.message:findi("we are ready") ) then + + if ( qglobals.tylis and RaidHasKey(e.other) ) then + e.self:CastSpell(1134, e.other:GetID()); -- Insanity of Tylis + else + noflag = true; + end + end + + if ( noflag ) then + e.other:Message(0, "Tylis Newleaf tells you, 'I sense the desire in you to help, but I don't know if you possess the kind of power needed to release me from my anguish. Please seek out my companion Fahlia and see if she can offer you a way to better yourself before undertaking this task.'"); + end + end +end diff --git a/potorment/You_hear.lua b/potorment/You_hear.lua new file mode 100644 index 0000000..eab90ff --- /dev/null +++ b/potorment/You_hear.lua @@ -0,0 +1,4 @@ +function event_combat(e) + e.self:Emote("a faint hum. A wall of force prevents you from traveling deeper into the viscid darkness that rests at your feet. There must be another route to take you up and into the macabre scene that extends before you."); + eq.depop_with_timer(); +end diff --git a/potorment/a_minion_of_Maareq.lua b/potorment/a_minion_of_Maareq.lua new file mode 100644 index 0000000..14796ed --- /dev/null +++ b/potorment/a_minion_of_Maareq.lua @@ -0,0 +1,23 @@ +function event_spawn(e) + --eq.set_timer("move", 6000); -- Maareq is permarooted in AK's time, so don't need this + eq.set_timer("check", 1000); +end + +function event_timer(e) + + local boss = eq.get_entity_list():GetMobByNpcTypeID(207004); -- Maareq_the_Prophet + if ( not boss or not boss.valid ) then + eq.depop(); + end + + if ( e.timer == "check" ) then + if ( e.self:CalculateDistance(boss:GetX(), boss:GetY(), boss:GetZ()) < 10 ) then + eq.signal(207004, 1); -- Maareq_the_Prophet + e.self:Emote("adheres to Maareq's flesh and is quickly absorbed!"); + eq.depop(); + end + + elseif ( e.timer == "move" ) then + e.self:MoveTo(boss:GetX(), boss:GetY(), boss:GetZ(), -1, true); + end +end \ No newline at end of file diff --git a/potorment/a_summoned_servant.lua b/potorment/a_summoned_servant.lua new file mode 100644 index 0000000..07066aa --- /dev/null +++ b/potorment/a_summoned_servant.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/potorment/a_twisted_spirit.lua b/potorment/a_twisted_spirit.lua new file mode 100644 index 0000000..07066aa --- /dev/null +++ b/potorment/a_twisted_spirit.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/potranquility/A_dense.lua b/potranquility/A_dense.lua new file mode 100644 index 0000000..0c9edac --- /dev/null +++ b/potranquility/A_dense.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 45, xloc + 45, yloc - 45, yloc + 45, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("fog of incense smoke envelopes you as you enter the dark rooms. The low murmur of meditative mantras reverberates throughout the building. The elders are all in a meditative state."); + eq.depop_with_timer(); +end diff --git a/potranquility/Adler_Fuirstel.lua b/potranquility/Adler_Fuirstel.lua new file mode 100644 index 0000000..fa52933 --- /dev/null +++ b/potranquility/Adler_Fuirstel.lua @@ -0,0 +1,29 @@ +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + + if ( e.message:findi("hail") ) then + + if ( not qglobals.fuirstel or qglobals.fuirstel == "1" ) then + e.other:Message(0, "Adler Fuirstel tells you, 'Can you smell it? It is the musk of death and pestilence. It is a smell that I have welcomed for so long, but now it turns my stomach. My brother Milyk and I have come here from Qeynos. We were members of the Bloodsabers but sought higher enlightenment. Upon arriving here Milyk began to channel all of his energy into opening the portal to the Plane of Disease.'"); + + elseif ( qglobals.fuirstel == "2" ) then + e.other:Message(0, "Adler Fuirstel tells you, 'Please you must hurry! Take the ward that surrounds you back to my brother and lift the sickness that has come over him!'"); + + elseif ( qglobals.fuirstel == "3" ) then + e.other:Message(0, "Adler Fuirstel tells you, 'Did you learn how to get into Bertoxxulous lair when you retrieved the ward? In my brothers vision he spoke of a huge metal pipe, that would only be affected by one that carries the knowledge of what lies behind it. Go now into disease and move the rotted pipe that is behind Grummus. There you will find the Lord of Pestilience. I beg of you for the mercy of my brother, and myself, weaken Bertoxxulous to a point that his curse on us can be lifted.'"); + + elseif ( qglobals.fuirstel == "4" or qglobals.fuirstel == "5" ) then + e.other:Message(0, "Adler Fuirstel tells you, 'Your service to me and my brother will never be forgotten. We are concentrating on how to close this portal now. The Lord of Pestilience has made it abundantly clear that he cares not for his followers. Thank you again, and good luck to you in your travels.'"); + end + + elseif ( e.message:findi("plane of disease") ) then + e.other:Message(0, "Adler Fuirstel tells you, 'We sought only the wisdom of Bertoxxulous. When Milyk finished his chant and the portal opened, it began to spew out this vile pestilence you see before you. Milyk caught the brunt of the plague, and his condition worsens. I have been infected as well, and am weak but I will go into the plane to save my brother if I must. The weavers have seen in their tapestries that one holds a ward that will halt the effects of the toxins that the touch of Bertoxxulous brings.'"); + + elseif ( e.message:findi("ward") ) then + e.other:Message(0, "Adler Fuirstel tells you, 'The ward is carried by the one that Bertoxxulous has created to protect the entrance into his den. If you dare travel into this pungent plane and find the ward bring it back. If we can halt the advancing toxins in Milyk's system maybe we can save him.'"); + if ( not qglobals.fuirstel ) then + eq.set_global("fuirstel", "1", 5, "F"); + end + e.other:Message(15, "You have received a character flag!"); + end +end diff --git a/potranquility/Adroha_Jezith.lua b/potranquility/Adroha_Jezith.lua new file mode 100644 index 0000000..d0d746e --- /dev/null +++ b/potranquility/Adroha_Jezith.lua @@ -0,0 +1,31 @@ +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + local thelinFlag = tonumber(qglobals.thelin) or 0; + + if ( thelinFlag <= 2 ) then + + if ( e.message:findi("hail") ) then + e.other:Message(0, "Adroha dabs Thelin's forehead with a cold towel and looks up to you, her gentle features veiled in concern. Her voice is gentle and sweet in its hushed tones as she gently returns to your greetings, 'Poor, poor Thelin. I wonder if he will ever recover from opening the portal to the Nightmare plane. I hope he will recover. That seems to be all we have right now, hope. Perhaps you should move along, traveler, and leave the suffering elders to their rest.'"); + elseif ( e.message:findi("portal") ) then + e.self:Say("The portal lies just outside of this building. It was to be a small dwelling in which the elders could try to understand the nature of Terris-Thule without her direct harm. However when she connected with Thelin the structure began to deteriorate, and none of us dared interfere with it."); + elseif ( e.message:findi("coma") ) then + e.self:Say("My pity onto Thelin. His life on Norrath was a miserable one. As a young man he began to study the workings of fear inspired by Cazic-Thule. The workings had been translated for mortals by Zebuxoruk. Pouring over the texts, Thelin felt his mind being invaded by Cazic. This information was not for mortal usage and the malevolent god stripped him of all his earthly belongings and cursed him to live in [poverty and ruin]."); + elseif( e.message:findi("poverty and ruin") ) then + e.self:Say("Aye, he lived in the streets of Eastern Freeport, begging from those passing through the port. He sat quivering, propped up against a wall with one hand out as he watched the travelers pass by. None of them even gave him a second glance. Several years would pass before a female dwarf would arrive to trade some of her family's armor and weapons. She saw and took pity on Thelin. She knelt down, scratched her beard then began to rummage through her backpack. She then placed a [jeweled dagger] in his hand, smiled and returned to her former business."); + elseif( e.message:findi("jeweled dagger") ) then + e.self:Say("This was the only gift that Thelin had received since the curse. It was beautifully crafted and would likely have fetched a handsome price upon the market. He decided to keep the dagger as it was such a kind gesture. Later that eve, Thelin heard the calling of others that studied Zebuxoruk's workings. He recognized the language they called out in. He approached the men and explained he had studied the writings of Zebuxoruk. One of the shaded figures then began to mutter an incantation. Suddenly, there was a bright flash, lush vegetation and a peaceful breeze surrounded them. They had ascended here, to the [Plane of Tranquility] where they could further study the works without interference from the gods and mortals alike."); + elseif( e.message:findi("Plane of Tranquility") ) then + e.self:Say("Thelin enjoyed it here. He assisted the other followers by using all his mana to open a portal to the Plane of Nightmares, the demi-plane ruled by the child of The Faceless, Terris-Thule. Spent from using all his energies, he went to bed early after his victory had been achieved in this task. As he laid in bed, he looked over the dagger that had been given to him by the female dwarf. He smiled at the new peace he had found here and began to fall asleep. Drifting away into the realm of dreams, his subconscious was assulted by the horrors of a nightmare. He tossed and turned from the visions that came before him. So bad did he writhe in his subconscious torment that he turned on the dagger. He was critically injured, and let out a wrenching scream. We found him and were able to heal his wound enough to keep him alive. However, he still lies in a deep coma seemingly [tortured by nightmares]."); + elseif( e.message:findi("tortured by nightmares") ) then + e.other:Message(0, "Adroha Jezith tells you, 'It is our belief that Terris-Thule is punishing him for allowing entrance into her plane. She seems to have an exceedingly strong tie to him. Since her father has already punished him, she likely found that he was easily tormented by her own powers. Sometimes he talks while tossing and turning. We have taken note of everything he has said. He has said 'I accept your offer Terris-Thule', 'I must find the pieces', and 'It never ends'. You must help him. Go through the portal that he has helped to create. Try to find his planar projection in Terris' plane. Help him wake from this torment. Please, I beg you. I cannot stand to watch him suffer any longer.'"); + if ( thelinFlag == 0 ) then + eq.set_global("thelin", "1", 5, "F"); + end + e.other:Message(15, "You have received a character flag!"); + end + else + if ( e.message:findi("hail") ) then + e.other:Message(0, "Adroha Jezith tells you, 'This is wonderful! Thelin is starting to recover slowly. He still needs to rest here so please try not to bother him too much!'"); + end + end +end diff --git a/potranquility/Aelisian_Taliz.lua b/potranquility/Aelisian_Taliz.lua new file mode 100644 index 0000000..dbb62e2 --- /dev/null +++ b/potranquility/Aelisian_Taliz.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail friend. Please. take your time and have a look around at your leisure. We have something to accommodate any need or suit any requirement a traveler may possess in this unruly time."); + end +end diff --git a/potranquility/Aliia_Tal_Almad.lua b/potranquility/Aliia_Tal_Almad.lua new file mode 100644 index 0000000..0e1bb16 --- /dev/null +++ b/potranquility/Aliia_Tal_Almad.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:CastToNPC():SetNoQuestPause(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:DoAnim(49); + e.self:Emote("gives a soft smile of warm greetings, 'Good day to you, traveler, and may the fates hold you in their highest favor. We are eternally grateful for what you are doing here -- in the planes, I mean. All of your efforts are so important -- more important, I believe, than you realize. Oh, I really should't be discussing this but... these are truly exciting times! To have all of Norrath's adventurers working toward a common goal! To have a greater enemy than your mortal neighbors and to unite against them. Aaah, how I envy you at times -- this newfound collective goal. Oh, forgive me, I ramble on where I should not. If you find yourself in need to replenish your supply stock, then perhaps my inventory would be of some interest to you? Please, search it at your leisure.'"); + end +end diff --git a/potranquility/Apprentice_Daultier.lua b/potranquility/Apprentice_Daultier.lua new file mode 100644 index 0000000..a435568 --- /dev/null +++ b/potranquility/Apprentice_Daultier.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:CastToNPC():SetNoQuestPause(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:DoAnim(64); + e.self:Emote("whispers. 'Please return to the lobby. as not to disturb the elders.'"); + end +end diff --git a/potranquility/Apprentice_Fih-Ylia.lua b/potranquility/Apprentice_Fih-Ylia.lua new file mode 100644 index 0000000..c3ffe41 --- /dev/null +++ b/potranquility/Apprentice_Fih-Ylia.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Can I help you? I'm just finishing up here. but I may be available to assist you if you return [when I'm done]."); + elseif(e.message:findi("when I'm done")) then + e.self:Say("I'm not sure. but I do know that it won't be for a while yet. Are you here to assist with our [purpose]?"); + elseif(e.message:findi("purpose")) then + e.self:Say("The people you will meet on this island are all here in the hopes of discovering a more balanced path. Many of these people have moved beyond the boundaries established by their abstruse cultural beliefs. They may never be able to return to the lands of their birth.' The youth then whispers. 'It is rumored that some of the elders are sought by the gods themselves. They are the truest seekers of balance. Their [knowledge] is what compels us all."); + elseif(e.message:findi("knowledge")) then + e.self:Say("Most of the elders have been researching for decades. The drakes have been studying even longer. The information that you will find here is the culmination of everyone's search for arcane knowledge. This research has produced amazing power. It is their belief that this power will lead them towards the [balance]."); + elseif(e.message:findi("balance")) then + e.self:Say("The elders believe that the fallen god. Zebuxoruk. gave mortals much of the power that they have now. It is the knowledge that he shared with mortals that is sought by the elders. They believe that this information will allow mortals to ascend along the [path] to deification. thus restoring true balance to the world."); + elseif(e.message:findi("path")) then + e.self:Say("If you wish to be a follower of the true path of balance. speak to the elders. There are many duties to be performed here. Assisting the elders is the easiest route to take to earn their trust. They are a quiet bunch. but for good reason. We are performing treasonous acts in the eyes of the gods. After you have earned their trust. the elders are really amazing people to speak to. I would just go look for someone to assist. if I were you."); + end +end diff --git a/potranquility/Bor_Wharhammer.lua b/potranquility/Bor_Wharhammer.lua new file mode 100644 index 0000000..91bb2b8 --- /dev/null +++ b/potranquility/Bor_Wharhammer.lua @@ -0,0 +1,74 @@ +-- Bor_Wharhammer +-- PoP quest armors + +function event_say(e) + e.self:DoAnim(49); -- does this animation regardless of phase + if(e.message:findi("hail")) then + e.self:Say("Greetin's t'ye " .. e.other:GetCleanName() .. "! Isn't the area 'round 'ere so nice an' quiet? Such a departure from me old days; slaving o'er the forge t'create masterpieces! T'be 'onest. at times I do miss the old forge. but after I created me finest breastplate, it seemed as if nothing else I made could ever live up t'it. So I left me home to'wander the land an' see what I could learn o'the world. I 'ave learned quite a bit from the elders 'ere an' the skilled craftspeople in New Tanaan. I 'ave even devised a type o'emblem that will impart the magic o'tranquility into the user t'create planar armors from pieces o'energy found in the planes."); + elseif(e.message:findi("emblem")) then + if (e.other:GetLevel() < 55) then + e.self:Say("Ye look mighty inexperienced t'be in this area. " .. e.other:GetCleanName() .. ". Come an' seek me out when ye 'ave more knowledge o'the planes!"); + else + e.self:Say("Well, the emblems dinnae be easy t'craft but I will gladly give ye one fer the price of 500 platinum pieces. They allow a planes traveler with no craftin' skills t'create many fine pieces o'planar armor in a special, magical kit I also 'ave an' will throw in with the price. The kit acts as a focal point fer the wild magic energy o'the Planes. Ye will only be able t'use each emblem an' kit once when ye create the piece, 'owever I dinnae be goin' anywhere soon! Just venture back when ye need another an' dinnae ferget the coin!"); + end + elseif(e.message:findi("chain")) then + e.self:Say("Ahhhhh " .. e.other:GetCleanName() .. "! Chain armors, while not as sturdy as plate, provide so much more mobility if constructed properly. T'construct a piece o'chain armor, ye need t'combine a chain pattern, an emblem, various amounts of ethereal metal rings an' use one o'those crafty Tanaan smithin' 'ammers all within a furnace touched by Ro. Ethereal metal ring construction is another matter. Ye will need to combine a brick o'ethereal energy, an ethereal temper an' a file within a Tanaan forge. I would seek a skilled craftsperson t'make the rings fer ye; the emblem will enable ye t'craft the final armor piece no matter what yer skill be."); + elseif(e.message:findi("silk")) then + e.self:Say("Har! It be quite funny that we be referin' t'silk as armor, fer the amount o'protection it provides be miniscule at best. The planar armor made from strands o'ether can still be quite useful fer its magical properties, 'owever. Ye will need t'take up a Tanaan embroidery needle, a pattern, an emblem an' various amounts o'ether silk swatches t'create a piece. Craft it all within a sewing kit boilin' with magical energy."); + elseif(e.message:findi("leather")) then + e.self:Say("Leather armor provides little protection due t'the make-up o'the materials. We shall do our best, 'owever, t'see ye make a quality piece. T'do so, ye must combine a pattern, an emblem, various pieces o'cured ethereal energy an' a Tanaan embroidery needle all within a sewing kit boilin' with magical energy. The cured energy may be problematic fer an unskilled craftsman, 'owever. Just sew two silk ethereal swatches together using a Tanaan embroidery needle within a Tanaan loom. I can just imagine yer next question t'be about swatches, aye?"); + elseif(e.message:findi("plate")) then + e.self:Say("Ahhhhh " .. e.other:GetCleanName() .. "! The fine rigid armor that can stop a shaft from piercing yer heart! Too bad it be so cumbersome an' difficult t'move about in. To construct a piece o'plate armor, ye need t'combine a plate mold, an emblem, various amounts o'sheet metal an' use one o'those crafty Tanaan smithin' 'ammers all within a furnace touched by Ro. Ethereal metal sheet construction is another matter. Ye will need t'combine two bricks o'ethereal energy, an ethereal temper an' a Tanaan smithin' 'ammer within a Tanaan forge. I would seek a skilled craftsperson t'make the metal sheets fer ye; the emblem will enable ye t'craft the final armor piece no matter what yer skill be."); + elseif(e.message:findi("swatch")) then + e.self:Say("T'make a swatch, ye need t'combine two strands o'ether along with a curing agent in a Tanaan loom. Ye will need t'seek a skilled brew master t'make the curing agent fer ye. Just 'ave them create it by using two celestial essences, soda an' paeala sap"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetLevel() > 54 and item_lib.check_turn_in(e.self, e.trade, {platinum = 500}, 0)) then -- Must be level 55 or higher + if((e.other:GetClass() >= 1 and e.other:GetClass() <= 5) or (e.other:GetClass() >= 8 and e.other:GetClass() <= 10)) then + e.other:SummonCursorItem(17184); + else + e.other:SummonCursorItem(17185); + end + + if (e.other:GetClass() == 1) then + e.other:SummonCursorItem(16267); -- Mystical Furnace of Ro, Warrior Emblem + elseif (e.other:GetClass() == 2) then + e.other:SummonCursorItem(16271); -- Mystical Furnace of Ro, Cleric Emblem + elseif (e.other:GetClass() == 3) then + e.other:SummonCursorItem(16269); -- Mystical Furnace of Ro, Paladin Emblem + elseif (e.other:GetClass() == 4) then + e.other:SummonCursorItem(16272); -- Mystical Furnace of Ro, Ranger Emblem + elseif (e.other:GetClass() == 5) then + e.other:SummonCursorItem(16270); -- Mystical Furnace of Ro, Shadowknight Emblem + elseif (e.other:GetClass() == 6) then + e.other:SummonCursorItem(16276); -- Druzzil's Mystical Sewing Kit, Druid Emblem + elseif (e.other:GetClass() == 7) then + e.other:SummonCursorItem(16275); -- Druzzil's Mystical Sewing Kit, Monk Emblem + elseif (e.other:GetClass() == 8) then + e.other:SummonCursorItem(16268); -- Mystical Furnace of Ro, Bard Emblem + elseif (e.other:GetClass() == 9) then + e.other:SummonCursorItem(16273); -- Mystical Furnace of Ro, Rogue Emblem + elseif (e.other:GetClass() == 10) then + e.other:SummonCursorItem(16274); -- Mystical Furnace of Ro, Shaman Emblem + elseif (e.other:GetClass() == 11) then + e.other:SummonCursorItem(16278); -- Druzzil's Mystical Sewing Kit, Necromancer Emblem + elseif (e.other:GetClass() == 12) then + e.other:SummonCursorItem(16279); -- Druzzil's Mystical Sewing Kit, Wizard Emblem + elseif (e.other:GetClass() == 13) then + e.other:SummonCursorItem(16280); -- Druzzil's Mystical Sewing Kit, Magician Emblem + elseif (e.other:GetClass() == 14) then + e.other:SummonCursorItem(16281); -- Druzzil's Mystical Sewing Kit, Enchanter Emblem + elseif (e.other:GetClass() == 15) then + e.other:SummonCursorItem(16277); -- Druzzil's Mystical Sewing Kit, Beastlord Emblem + end + e.self:Say("Wonderful! This coin will go towards me fines with the Myrist library. They charge quite a bit fer overdue volumes! 'ere be yer emblem an' a kit in which ye may craft planar armor. The kit only 'as enough magical energy t'craft one piece before the energies expire, be sure ye understand. May the armor ye make with it provide ye with much protection."); + end + item_lib.return_items(e.self, e.other, e.trade) + if(e.other:GetLevel() < 55) then + e.self:Say("Ye look mighty inexperienced t'be in this area. " .. e.other:GetCleanName() .. ". Come an' seek me out when ye 'ave more knowledge o'the planes!"); + end +end diff --git a/potranquility/Cayrin_Smirten.lua b/potranquility/Cayrin_Smirten.lua new file mode 100644 index 0000000..91087b7 --- /dev/null +++ b/potranquility/Cayrin_Smirten.lua @@ -0,0 +1,20 @@ +function event_spawn(e) + e.self:CastToNPC():SetNoQuestPause(true); + eq.set_timer("inifish",math.random(32000)); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Aye, can I help you with something? I'm trying to concentrate on my fishing, so if you don't mind..."); + end +end + +function event_timer(e) + if(e.timer == "inifish") then + eq.stop_timer("inifish"); + eq.set_timer("fish",32000); + e.self:DoAnim(5); + elseif(e.timer == "fish") then + e.self:DoAnim(5); + end +end \ No newline at end of file diff --git a/potranquility/Domri_Gemstriker.lua b/potranquility/Domri_Gemstriker.lua new file mode 100644 index 0000000..a9ea266 --- /dev/null +++ b/potranquility/Domri_Gemstriker.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:CastToNPC():SetNoQuestPause(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:DoAnim(29); + e.self:Emote("gives a hearty smile wave of his callused hand to you, 'Greetings, friend, an' welcome t'tranquility. We 'ave called this place 'ome for a bit of time now -- enough time fer the Elders t'be wastin' themselves away in opening these portals, in any case. Aaaah... What an excitin' time we are in an' I dinnae say that lightly, friend. This time is one as much dedicated t'turmoil as it be to enlightenment and self-learning, ye understand. Unfortunately, the Elders be too weary t'continue their research in opening the portals an' we must remain 'ere t'tend t'their recovery. Tis nothin' t'scoff or regret -- we owe 'em much more than that! In any event, perhaps ye be makin' the Elders' sacrifice worth while, aye? Ye venture into the planes and perhaps ye will find something of what the Elders were lookin' fer? Well, if ye be travelin' t'the planes, then ye be needin' a place t'store unwanted luggage. I be yer man, friend! Ye can certainly trust Dormi Gemstriker!'"); + end +end diff --git a/potranquility/Drogguk_Gearlifter.lua b/potranquility/Drogguk_Gearlifter.lua new file mode 100644 index 0000000..5ccfb6e --- /dev/null +++ b/potranquility/Drogguk_Gearlifter.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("gives a husky grunt as he contiues a slow pace of brushing grains of sand from between the windmill gears. 'Hullo. Drogguk working. Drogguk have no time fer talk. only time fer work. Always only time fer work.'"); + end +end diff --git a/potranquility/Dubbel_Strohbarrel.lua b/potranquility/Dubbel_Strohbarrel.lua new file mode 100644 index 0000000..23638c6 --- /dev/null +++ b/potranquility/Dubbel_Strohbarrel.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Gah! Look at ye sneekin' up on people! Dun ye have somethin' better ye could be doin'? I'm tryin t'keep track o'the inventory. so the last thing I be needin' is a shamblin' pile o'noise like yerself buggin' me! Off wit' ye. now!"); + end +end diff --git a/potranquility/Elder_Clinka.lua b/potranquility/Elder_Clinka.lua new file mode 100644 index 0000000..ffb4597 --- /dev/null +++ b/potranquility/Elder_Clinka.lua @@ -0,0 +1,16 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28291}, 0)) then + e.self:Say("It is a pleasure to meet you. I've heard a great deal about you from the other elders. Please give me a moment to scan over this for you."); + e.self:Emote("scans the schematic for a few seconds, mumbling as she reads, 'This parchment states that you are to place a small shard of concentrated elemental matter into each of the holes in your talisman.' She points a finger to the diagram as she begins to recount what she has learned from it, 'They would then need to be locked into place, as the diagram indicates here.'"); + e.self:Say("If you bring me a fragment or shard of some living creature from each of the elemental planes, I will see if we can make this device work. Place them in this box with your talisman and combine them together before returning the box to me. In the meantime, I will continue to translate this document from its original language."); + e.other:QuestReward(e.self,{itemid = 17279}); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 28297}, 0)) then + e.self:Emote("carefully opens the small box and takes several small tools from the pocket in her robe. Her nimble fingers place the glowing elemental pieces into the appropriate sockets and covers them with several small caps that she must have made while you were away."); + e.self:Say("This device is called the Binden Concerrentia. Its true power will be revealed to you soon. This document describes it as a device that is meant to convert the energy that can be found in true prime elemental matter, into an entirely new form of energy. The schematic states that this energy will 'bind you in the now'. I am not sure what that means, but I believe that you will soon find out."); + e.self:Say("Take care of it and keep it with you at all times. I feel that your journey from this point will only become more dangerous. Perhaps this device will play a role in all of that. Move forward along the path of enlightenment. May the Balance guide your fate."); + e.other:QuestReward(e.self,{itemid = 28296}); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/potranquility/Elder_Fuirstel.lua b/potranquility/Elder_Fuirstel.lua new file mode 100644 index 0000000..29c7e53 --- /dev/null +++ b/potranquility/Elder_Fuirstel.lua @@ -0,0 +1,24 @@ +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + + if ( e.message:findi("hail") ) then + + if ( not qglobals.fuirstel or qglobals.fuirstel == "1" ) then + e.other:Message(0, "Elder Fuirstel groans in agony. His tainted breath surrounds your face."); + + elseif ( qglobals.fuirstel == "2" or qglobals.fuirstel == "3" ) then + e.other:Message(0, "Elder Fuirstel slowly turns towards you. You can feel the heat radiating from his face. The warding that envelopes your body reaches out and begins to surround him. You immediately see improvement in his condition. The pus filled sores covering his face and his burning fever start to vanish. 'Thank you friend. I no longer feel the touch of death on my soul. However I do feel the grasp on Bertoxxulous, his plague is still upon me but not spreading throughout my body. I fear the only way to remove this pox would be to weaken Bertoxxulous enough that his curse would be lifted. I now renounce my faith in Bertoxxulous, please fell this god so that I may continue and learn from my mistakes.'"); + if ( qglobals.fuirstel == "2" ) then + eq.set_global("fuirstel", "3", 5, "F"); + end + e.other:Message(15, "You have received a character flag!"); + + elseif ( qglobals.fuirstel == "4" or qglobals.fuirstel == "5" ) then + e.other:Message(0, "Elder Fuirstel tells you, 'Welcome back friend. I must tell you that my brother and I shall never forget what you have done for us. We have since renounced our following of Bertoxxulous, for in him we only found suffering. We have joined a new following, learning from the gods without their direct influence over us. I shall not keep you though, thank you once again!'"); + if ( qglobals.fuirstel == "4" ) then + eq.set_global("fuirstel", "5", 5, "F"); + end + e.other:Message(15, "You have received a character flag!"); + end + end +end diff --git a/potranquility/Elder_Gelok.lua b/potranquility/Elder_Gelok.lua new file mode 100644 index 0000000..895a053 --- /dev/null +++ b/potranquility/Elder_Gelok.lua @@ -0,0 +1,73 @@ +-- Elder_Gelok +-- Elder Gelok's Supplies +local RanGem; + +function DoRandomGem(e) + RanGem = 0; + -- Change the 10 in the if to change the % chance. + if (math.random(100) <= 15) then + RanGem = eq.ChooseRandom(10028, 10037, 22503, 15981); -- Random gem: Peridot, Diamond, Blue Diamond, Raw Diamond + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there! Welcome in. . . Welcome in. . . Just watch yourself when making your way past my most trusted assistant, Drogguk. While he may have superior strength, his coordination is most inferior. He's dropped many a gear on my toes, but I know he means well. In fact, I was intending to send him on a [serious mission], though I would rather he not go."); + elseif(e.message:findi("serious mission")) then + e.self:Say("You see, this windmill is more than it seems. It's quite a splendid device! It produces energy by converting the wind that rotates the blades into a power that supercharges the windmill's transcentrifugal axles. In simple terms, what it does is creates a portal into the [Plane of Innovation]. What a wonderful place that is! A virtual dream-land for any gnome!"); + elseif(e.message:findi("plane of innovation")) then + e.self:Say("Oh, it is such an amazing place! I ultimately desire to travel there to learn of advanced mechanics. Alas, this windmill requires constant upkeep due the constant surge of power that it propels. The gears are constantly getting sandy and the axles lose their grease almost daily. I'm often in need of [new parts] and that's where Drogguk's assistance would currently be handy, but I simply cannot sacrifice his current duties at this time. Pity, pity."); + elseif(e.message:findi("new parts")) then + e.self:Say("Well, Drogguk used to travel through the portal to acquire items for me from the salvage yard. The last time he went through in search of parts he came back [badly wounded] and that's saying quite a lot! I was quite alarmed, but the elders nursed him to health with amazing haste. I simply cannot imagine placing him in such jeopardy again. He was lucky to return at all by the look of him then!"); + elseif(e.message:findi("badly wounded")) then + e.self:Say("Aye, you can still see some of the scars about his body. He stumbled out of the portal that day, bloody and spouting on about shiny men trying to tear him apart. He said they were speaking of research the whole time. Frightful stuff, really. Well, you look adventurous enough. Why don't you go collect some supplies for me? I fear that Drogguk would not be able to manage another trip to collect the [supplies] I require to maintain this place."); + elseif(e.message:findi("supplies")) then + e.self:Say("Size 12 sprockets are always greatly needed. Any Silicorrosive Grease you find would be a huge help as well. You can never have too much Silicorrosive grease laying around. Also, tri-platinum foil and mini-gyro shields would be good for something or another. Micro-ceramic sleeves are a nice find as well. Got all that? Now, reach around up there in the area of the transcentrifugal axle that isn't working. You'll either be badly wounded or transported to the Plane of Innovation. Take care!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + local firstitem = item_lib.count_handed_item(e.self, e.trade, {28164}); -- Mini-gyro Shields + local seconditem = item_lib.count_handed_item(e.self, e.trade, {28165}); -- Silicorrosive Grease + local thirditem = item_lib.count_handed_item(e.self, e.trade, {28162}); -- Size 12 Sprockets + local forthitem = item_lib.count_handed_item(e.self, e.trade, {28163}); -- Tri-platinum Foil + + if(firstitem > 0) then + repeat + e.self:Emote("tosses the shields into a bag that was hidden deep within his robe, 'A few more of these and I'll be able to start working on something new.'"); + DoRandomGem(e); + e.other:QuestReward(e.self,0,0,0,0,RanGem,300000); -- Confirmed Live Experience + firstitem = firstitem -1; + until firstitem == 0; + end + + if(seconditem > 0) then + repeat + e.self:Emote("inhales deeply and says, 'Aaaah! I love the smell of fresh Silicorrosive grease. It keeps teh sand from bogging down parts and attracts teh ladies all at the same time.'"); + DoRandomGem(e); + e.other:QuestReward(e.self,0,0,0,0,RanGem,1000); -- Confirmed Live Experience + seconditem = seconditem -1; + until seconditem == 0; + end + + if(thirditem > 0) then + repeat + e.self:Emote("examines the object for a moment and then says, 'This is great! The windmill should function for weeks to come due to your hard work. Feel free to bring me any others that you find. A stockpile of parts never hurt anyone!'"); + DoRandomGem(e); + e.other:QuestReward(e.self,0,0,0,0,RanGem,300000); -- Confirmed Live Experience + thirditem = thirditem -1; + until thirditem == 0; + end + + if(forthitem > 0) then + repeat + e.self:Emote("wipes the dust from the surface of the foil before placing it on a crate. 'Excellent find! This will be a great help!' The gnome reaches out and shakes your hand in gratitude."); + DoRandomGem(e); + e.other:QuestReward(e.self,0,0,0,0,RanGem,300000); -- Confirmed Live Experience + forthitem = forthitem -1; + until forthitem == 0; + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/potranquility/Elder_Jal-Amra.lua b/potranquility/Elder_Jal-Amra.lua new file mode 100644 index 0000000..763fe9d --- /dev/null +++ b/potranquility/Elder_Jal-Amra.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("greets you with a nod and quietly says. 'Welcome to our study. Please refrain from venturing in beyond this lobby. The elders are involved in maintaining a deep meditative state. They must not be disturbed. If an elder wishes to speak to you. one of their aids will fetch you.'"); + end +end diff --git a/potranquility/Elder_Poxbourne.lua b/potranquility/Elder_Poxbourne.lua new file mode 100644 index 0000000..4b1b09e --- /dev/null +++ b/potranquility/Elder_Poxbourne.lua @@ -0,0 +1,17 @@ +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + local thelinFlag = tonumber(qglobals.thelin) or 0; + + if ( e.message:findi("hail") ) then + if ( thelinFlag >= 3 ) then + e.other:Message(0, "Thelin tells you, 'I apologize but I cannot stand to greet you. I am still quite weak and recovery will be a long and painful road, though it is a most welcome venture. I want you to know how much I appreciate your bravery in helping me. I am forever in your debt.'"); + if ( thelinFlag == 3 ) then + eq.set_global("thelin", "4", 5, "F"); + end + e.other:Message(15, "You receive a character flag!"); + else + e.other:Message(0, "Adroha gives a soft sigh of woe, 'You won't be getting any response from Thelin. Ever since his injury he has been in a deep [coma] with no sign of ever recovering.'"); + e.other:Message(0, "Thelin tosses and turns violently on the floor, then is still."); + end + end +end diff --git a/potranquility/Elder_Tal_Almad.lua b/potranquility/Elder_Tal_Almad.lua new file mode 100644 index 0000000..57e8a17 --- /dev/null +++ b/potranquility/Elder_Tal_Almad.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome traveler. are you here to meet with someone or are you new to this place?"); + elseif(e.message:findi("new to this place")) then + e.self:Say("Please take some time to look around. but be sure to speak with one of my fellow Elders prior to tampering with anything that may resemble a magical portal. Tampering with the wrong object or in the wrong location on this island may take you to a very different and dangerous plane of existence."); + elseif(e.message:findi("meet with someone")) then + e.self:Say("Well then, if you do not need my assistance, I will continue my work. May you find that which you seek."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28741}, 0)) then -- Locked Tome of Dark Power + e.self:Emote("looks the book over carefully, 'This is a most interesting find indeed. You seek to break the seal that surrounds this tome? This may take some time, please be patient.' As he waves his hand over the lock and mumbles a few syllables, the clasp instantly falls open. With a surprised look he says, 'That was odd, the seal was easier to break then I thought it would be. It's almost. . . Well, it's almost as if the book had a will to be opened. I sense much power inside this tome, you best be careful with it.' He hands the book back to you."); + e.other:QuestReward(e.self,0,0,0,0,28742); -- Unlocked Tome of Dark Power + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/potranquility/Fahlia_Shadyglade.lua b/potranquility/Fahlia_Shadyglade.lua new file mode 100644 index 0000000..2fb0e53 --- /dev/null +++ b/potranquility/Fahlia_Shadyglade.lua @@ -0,0 +1,51 @@ +local REFUSE_TXT = "Fahlia Shadyglade tells you, 'I can see that you may be passionate to help others but now I must ask you to be about your own business. I sense that if you were to try to help you may befall the same fate as poor Tylis. Perhaps you should become more experienced in traveling through the planes before you learn more of his condition.'"; + +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + + if ( e.message:findi("hail") ) then + if ( qglobals.tylis and qglobals.tylis == "2" ) then + e.other:Message(0, "Fahlia Shadyglade tells you, 'This is wonderful! I am so happy that you could help to free Tylis from Saryrn's grasp! Please try not to bother him too much. He will need time to recover.'"); + else + e.other:Message(0, "Fahlia Shadyglade tells you, 'Greetings travelers. Please excuse me but I must attend to Tylis for his condition does not improve.'"); + end + + elseif ( e.message:findi("condition") ) then + + if ( (qglobals.thelin and qglobals.thelin == "4") and (not qglobals.fuirstel or qglobals.fuirstel ~= "5") ) then + e.other:Message(0, "Fahlia Shadyglade tells you, 'I understand that you are passionate to our cause, I have heard that you have recovered Thelin's sanity. You may be powerful enough to enter into the domain of Saryrn, but before I can ask you to help Tylis perhaps you should help one that is in more dire need. Go talk to Adler Fuirstel. His brother has fallen under the curse of a god just like Thelin.'"); + elseif ( qglobals.thelin and qglobals.thelin == "4" and qglobals.fuirstel and qglobals.fuirstel == "5" ) then + e.other:Message(0, "Fahlia Shadyglade tells you, 'It all goes back to when I found him. I had just purchased a new fishing pole in the hopes of finding some time to relax on the shores of the island. As I was walking out of the shop, I heard a distant moan. I walked toward the source and found Tylis lying by the reflecting pool. The pool was different, though. It now had a small [black cube] floating over it. I tried to wake Tylis but was not successful. I then brought him here and have been caring for him since.'"); + else + e.other:Message(0, REFUSE_TXT); + end + + elseif ( e.message:findi("black cube") ) then + + if ( qglobals.thelin and qglobals.thelin == "4" and qglobals.fuirstel and qglobals.fuirstel == "5" ) then + e.other:Message(0, "Fahlia Shadyglade tells you, 'I do not like that cube at all. Just thinking of it brings pain to my mind. Gazing upon it gives the sensation of being slowly rent apart at each limb. I believe that whatever has fallen over Tylis is related to this cursed cube. Other elders claim that it is a portal that will lead into the [Plane of Torment].'"); + else + e.other:Message(0, REFUSE_TXT); + end + + elseif ( e.message:findi("plane of torment") ) then + + if ( qglobals.thelin and qglobals.thelin == "4" and qglobals.fuirstel and qglobals.fuirstel == "5" ) then + e.other:Message(0, "Fahlia Shadyglade tells you, 'It is not a plane that was originally sought to be reached by our elders. It is their belief though that Saryrn, the Mistress of Torment, intends to breed her suffering even into this protected plane of Quellious. I wish I had the strength to go into the Plane of Torment and find out exactly the nature of the current circumstances to have afflicted Tylis, but I cannot leave his side in good conscience.'"); + else + e.other:Message(0, REFUSE_TXT); + end + + elseif ( e.message:findi("will go") ) then + + if ( qglobals.thelin and qglobals.thelin == "4" and qglobals.fuirstel and qglobals.fuirstel == "5" ) then + e.other:Message(0, "Fahlia Shadyglade tells you, 'Wonderful. I did not think that an outsider was one that I could trust to aid me in this. One name that Tylis has mentioned in agony is that of Maareq. I do not know whom this is, but he must be instrumental in Tylis' suffering. You must find Maareq and do what you must to release Tylis from this torture.'"); + if ( not qglobals.tylis ) then + eq.set_global("tylis", "1", 5, "F"); + end + e.other:Message(15, "You have received a character flag!"); + else + e.other:Message(0, REFUSE_TXT); + end + end +end diff --git a/potranquility/Gregory_Maligus.lua b/potranquility/Gregory_Maligus.lua new file mode 100644 index 0000000..2e0521b --- /dev/null +++ b/potranquility/Gregory_Maligus.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:CastToNPC():SetNoQuestPause(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:DoAnim(48); + e.self:Emote("gives a gentle smile and nod in warm greetings, 'The residents of tranquility are quite eager to have your presence among us, my friend. We are hopeful to see what the adventurers of this era are capable of rendering from the Elders' efforts in opening the domains of the gods. Of course, our hopes that the fates will guide you in their graces through these dangerous journeys are always with you. In order to aid you further, the residents of tranquility have gathered a supply of modest, though fair provisions that may come of great use to you as you venture into the divine realms. Do not hesitate to search our wares, friend, for they are at your disposal should you find a need or use of them.'"); + end +end diff --git a/potranquility/Hannis_Silvertip.lua b/potranquility/Hannis_Silvertip.lua new file mode 100644 index 0000000..57ff6a6 --- /dev/null +++ b/potranquility/Hannis_Silvertip.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What are you doing back here? We appreciate people trying to help. but I've got my hands full trying to keep Zurmsa from stepping on Trila as is. I don't need another set of feet tromping around in here. Be on your way. traveler. There's nothing of interest for you here. I'm quite certain."); + end +end diff --git a/potranquility/Hrelic_Reista.lua b/potranquility/Hrelic_Reista.lua new file mode 100644 index 0000000..84189bd --- /dev/null +++ b/potranquility/Hrelic_Reista.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("glances over from his books for a moment. 'Greetings. Have you come to the realm of the tranquil to study as have? The chaotic energy of lightning has caught my interest of late. I've been trying to understand the magics that further refine my control of lightning and [thunder]."); + elseif(e.message:findi("thunder")) then + e.self:Say("The sages of Knowledge have been able to create useful powers by translating some of the ancient scripts found in the planes. I've been doing further research into the Draught of Thunder spell. I believe I can refine the power of the thunder and lightning into a bolt of pure destructive energy. I hear rumors that the giants of Torden have acute control of thunder and lightning. If you bring me one of their lightning spheres and a copy of the Draught of Thunder scroll I may be able to weave them into a new spell."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28445, item2 = 9430})) then -- Spell: Draught of Thunder, Lightning Sphere + e.self:Emote("takes the sphere and the scroll from you and begins to scrawl some rune on the bottom of the parchment. He begins to utter some strange syllables over the parchment and the sphere begins to glow, then it dissolves into floating strands of ethereal energy and begins to scrawl itself across the page. Hrelic hands you the scroll, 'The power of lightning rests in your hands " .. e.other:GetCleanName() .. ". Use this new power wisely.' "); + e.other:QuestReward(e.self,0,0,0,0,1119); -- Spell: Draught of Lightning + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/potranquility/Illian_Rellasp.lua b/potranquility/Illian_Rellasp.lua new file mode 100644 index 0000000..a9ef9e5 --- /dev/null +++ b/potranquility/Illian_Rellasp.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". Come to enjoy the soothing serenity of this place? The quiet waters remind me of the docks in Erudin when I was a child. It is unfortunate that the tranquility of Quellious does not extend further into the world of Norrath. Every Deepwater Knight yearns for the eternal calm of paradise after a life of faithful service to the gods. Perhaps you have heard of one such knight that achieved transcendence. His name was [Inte Akera] and he is one of the greatest Deepwater Knights to ever live."); + end +end diff --git a/potranquility/Iramai_Sacredsoul.lua b/potranquility/Iramai_Sacredsoul.lua new file mode 100644 index 0000000..3ccd2f8 --- /dev/null +++ b/potranquility/Iramai_Sacredsoul.lua @@ -0,0 +1,31 @@ +-- Iramai_Sacredsoul +-- Alternate Access: Plane of Torment + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh, hello. I am sorry, I did not see you approach. I have been giving all of my attention to poor [Phanti] here."); + elseif(e.message:findi("phanti")) then + e.self:Say("A few days ago Phanti started to get very ill, while she was preparing herself for another trip into [Saryrn's domain]. We are not sure exactly was caused her to fall into this malaise, although we do have our [suspicions]."); + elseif(e.message:findi("suspicions")) then + e.self:Say("Torment, the Plane of Pain. She was doing some research on the denizens there, should you [help] us, I could grant you and your companions entry. The key will not do Phanti any good for quite some time."); + elseif(e.message:findi("help")) then + e.self:Say("Recently, the portal from the Plane of Disease has been unusually active. People have been reporting strange sounds from around the portal at night, and a few of our trackers have seen strange, almost rodent like, footprints. Our best guess is that one of the denizens of the Plane of Disease managed to make its way into our plane. If this is true, it may explain the unnaturally quick manifestation of the disease. Perhaps, the bile from one of the rodents will help us learn of the cause, and hopefully a cure."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Hmm, it looks like I will need both the cure and the purified bile in order to heal Phanti."; + + -- Confirmed Live Experience + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29295,item2 = 29302}, 1, text)) then -- Vial of Opaque Fluid, Purified Bubonian Bile + e.self:Say("You've done it! Praise the Tranquil! I can already see Phanti's condition improving. Take these, Phanti is not going to be doing any planar exploration any time soon. She was planning on using them to bring her research party into Torment, make good use of them, and stay safe. Thank you again for your help."); + e.other:QuestReward(e.self,{itemid = 29213,exp = 6250}); + + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29315}, 0)) then + e.self:Emote("pours the bile into a small flask, there is a puff of green smoke, which turns white as it floats into the sky. 'This is good news. It appears that this is the cause for her disease, but I have neither the tools, nor the knowledge to create a cure. There is rumor of an indigo orc who may prove useful to us in this area, but he is imprisoned in the Plane of Justice. Ask him about rare diseases. He was known to have cured many, prior to his imprisonment."); + e.other:QuestReward(e.self,0,0,0,0,29302,50000); -- Purified Bubonian Bile + end + item_lib.return_items(e.self, e.other, e.trade) +end + \ No newline at end of file diff --git a/potranquility/Jasila_Maqul.lua b/potranquility/Jasila_Maqul.lua new file mode 100644 index 0000000..60a2d9c --- /dev/null +++ b/potranquility/Jasila_Maqul.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome friend. Should you need to store any of your belongings or coin. you'll find that this area is quite secure and your precious belongings will remain safe in our care. You'll find Aelisian to be a fair broker if you wish to pick up a little extra clang in your coffers."); + end +end diff --git a/potranquility/Jasir_Amisan.lua b/potranquility/Jasir_Amisan.lua new file mode 100644 index 0000000..658820f --- /dev/null +++ b/potranquility/Jasir_Amisan.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("furrows his brow in slight concern and frustration as he looks around you, 'There are so few of you... so few of you together, collectively. This may not bode well for us.' The erudite gives a soft sigh and focuses their attention solely on you, 'Forgive my mumbling. I'm just somewhat caught off-guard by the scarcity in which the adventurers of the recent eras travel -- so alone, more often than not. Aaah, but I could be seeing things through misguided vision, of course. In any case, you may be in need of supplies to continue your endeavors upon the planes. I have gathered what resources I can during the commotion to overcome us in the recent past. It isn't much, I admit, but perhaps you will find some use of them?'"); + end +end diff --git a/potranquility/Jimlok_Keylifter.lua b/potranquility/Jimlok_Keylifter.lua new file mode 100644 index 0000000..4cef33f --- /dev/null +++ b/potranquility/Jimlok_Keylifter.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met. traveler. Can I be of assistance to you? Can't say as I got much to do at the moment. I'm just attending to a little fishing while I wait on my friend to get back to me. Hopefully he doesn't keep me waiting for too much longer. I can only stand so much of this place."); + elseif(e.message:findi("friend")) then + e.self:Say("This is the situation. My friend Gilor Swiftfoot and I were going to try our hand at breaking into the Plane of Justice. Yeah. yeah. I'm sure you're thinking that's silly and all. but how many people do you know of that can say they've broken out of the Eternal Prison. let alone in? 'None', right? So, we were all ready to go in when I got word that something else needed re-appropriating all quick like. I told Gilor to wait until I got back, but no. He had to run off, eager as always and as patient as a gust of wind. Now, I think he's in [trouble]."); + elseif(e.message:findi("trouble")) then + e.self:Say("People here seem to think that he tried to make the prison break by himself. They've found another way in, so maybe he took that route. I'd like to check on him, but if he isn't in there, I'm liable to get myself in trouble. I think I'd be much better off staying here and waiting for him. If you want to go look for him, I'd be quite grateful. I doubt you have the skills to get far in there. You don't look like the burglarizing type, but I'd even be willing to give you the document that I picked up on my last job if you look for him."); + elseif(e.message:findi("document")) then + e.self:Say("Don't you worry about that unless you bring me some word of Gilor's condition. Trust me, it's a strange and mysterious document. Just the sort of thing you adventuring types love. Find Gilor and it's all yours, I give you my word."); + elseif(e.message:findi("look for him")) then + e.self:Say("Alright, friend, you need to be on the lookout for a gnome about my height, with one bad leg. He's got a bit of a limp, but he's still a hard one to chase down. If you can't find him, be on the lookout for anything that resembles a small bottle. He's got a way with rodents; so if you see some little pest carrying a bottle of some sort, grab him! It will most likely be a message for me. Bring it back immediately. It won't be of any use to you anyway, since you can't read our code. Be quick and good luck!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28277}, 0)) then + e.self:Emote("sighs deeply as he hands you an intricate schematic of some device. The notation on the document is written in a strange language that is completely foreign to you. 'This doesn't bode well for Gilor. He says he's found a secret tunnel and he's going to go in deeper. I guess I'll go in and find him if he doesn't return soon. Well, a deal is a deal. Here is the document that I mentioned."); + e.self:Say("The person that I was supposed to lift it for was a jeweler of sorts, but he mainly dealt in mechanical devices. I wasn't able to track him down to get my coin, so I don't know what you'll do with it. Maybe my cousin Tabben will give you something for it. He's got himself a little tinker's shop in the Jeral section of New Tanaan. Show him the map thingy and see what he says."); + e.other:QuestReward(e.self,0,0,0,0,28278); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/potranquility/Jimmik_Greenstone.lua b/potranquility/Jimmik_Greenstone.lua new file mode 100644 index 0000000..41735f1 --- /dev/null +++ b/potranquility/Jimmik_Greenstone.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:CastToNPC():SetNoQuestPause(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:DoAnim(48); + e.self:Emote("gives a slight nod of his head in respectful greetings, 'You have arrived in our midst during a most exciting and haste-ridden time, my friend. The citizens of Quellious' domain have made excellent preparations to accommodate your presence among us. We can only hope that the wares and services we are able to provide will be sufficient enough to prepare you for the unforeseen future of this course in our collective history. Please, search my wares if you wish. All that I have is at a fair price. My inventory is modest, I admit, but what supplies I can offer may come to be of aid to you throughout your dangerous journeys.'"); + end +end diff --git a/potranquility/Kalin_Reddin.lua b/potranquility/Kalin_Reddin.lua new file mode 100644 index 0000000..b0e96b4 --- /dev/null +++ b/potranquility/Kalin_Reddin.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks more interested in finishing his dinner than talking to you."); + end +end diff --git a/potranquility/Malakar_Ay-Ayat.lua b/potranquility/Malakar_Ay-Ayat.lua new file mode 100644 index 0000000..ce6a953 --- /dev/null +++ b/potranquility/Malakar_Ay-Ayat.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:CastToNPC():SetNoQuestPause(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:DoAnim(70); + e.self:Emote("bows deeply at the waist. his appreciation and unobstructed respect apparent in his motion. 'Welcome. traveler. to the domain of tranquility. The residents of this place are all grateful for your presence. despite many of our members' seemingly sour disposition. Understand that this time is not one of rejoicing for us -- though your presence is a comfort. we are still in a place of uncertainty. In order to benefit and protect you where we are able. the Elders have placed wards upon the portals that link the domains of the gods to this place. If your will and spirit are not yet suited to challenge a specific domain. then you will be informed of such. Do not take offense and know that we do this only to protect all of us. for we do not wish to see you fall to the malignant grasp of the gods as so many of our own.'"); + end +end diff --git a/potranquility/Miak_the_Searedsoul.lua b/potranquility/Miak_the_Searedsoul.lua new file mode 100644 index 0000000..bc7fff3 --- /dev/null +++ b/potranquility/Miak_the_Searedsoul.lua @@ -0,0 +1,36 @@ +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + + if ( e.message:findi("hail") ) then + if ( qglobals.pofire and qglobals.pofire == "2" ) then + e.self:Say("Greetings again. I sense that you have the correct path for the portal to the Plane of Fire. If you simply touch the portal, I will channel it to open to the location in your mind."); + else + e.self:Say("Greetings traveler. I am Miak, guardian of the portal to the greater elemental [Plane of Fire.]"); + end + + elseif ( e.message:findi("plane of fire") ) then + if ( qglobals.pofire and qglobals.pofire == "2" ) then + e.other:Message(0, "Miak the Searedsoul smiles oddly at you, 'I will not say that the Plane of Fire is safe, but entering it will no longer mean your immediate demise... well it may not.'"); + else + e.self:Say("The Plane of Fire is no place for a mortal to go frolicking about. Regardless, to use the portal now would surely mean [your demise.]"); + end + + elseif ( e.message:findi("demise") ) then + if ( qglobals.pofire and qglobals.pofire == "2" ) then + e.self:Say("You are the one that discovered the portal's destination. All you need to do is concentrate on the correct path, the rest will be done by the foci and myself."); + else + e.self:Say("Yes, the end of your mortal existence. Recently the portal seems to have lost its direction. The location the portal sends you to is not safe; the [portal's destination] seems to have moved somehow."); + end + + elseif ( e.message:findi("portal's destination") ) then + if ( qglobals.pofire and qglobals.pofire == "2" ) then + e.self:Say("You are the one that discovered the portal's destination. All you need to do is concentrate on the correct path, the rest will be done by the foci and myself."); + else + e.self:Say("I do not know if I will ever be able to correct the portal's destination, but if you have the true route for the portal in your mind I will be able to channel the portal to the correct location."); + if ( not qglobals.pofire ) then + eq.set_global("pofire", "1", 5, "F"); + end + e.other:Message(15, "You have received a character flag!"); + end + end +end diff --git a/potranquility/Palin_Firefly.lua b/potranquility/Palin_Firefly.lua new file mode 100644 index 0000000..9e6b5d2 --- /dev/null +++ b/potranquility/Palin_Firefly.lua @@ -0,0 +1,20 @@ +function event_spawn(e) + e.self:CastToNPC():SetNoQuestPause(true); + eq.set_timer("inifish",math.random(32000)); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("continues to stare out at the ocean, completely lost in his thoughts."); + end +end + +function event_timer(e) + if(e.timer == "inifish") then + eq.stop_timer("inifish"); + eq.set_timer("fish",32000); + e.self:DoAnim(5); + elseif(e.timer == "fish") then + e.self:DoAnim(5); + end +end \ No newline at end of file diff --git a/potranquility/Parija_Kalamir.lua b/potranquility/Parija_Kalamir.lua new file mode 100644 index 0000000..f5bc4dd --- /dev/null +++ b/potranquility/Parija_Kalamir.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:CastToNPC():SetNoQuestPause(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:DoAnim(48); + e.self:Emote("nods softly, her feline eyes remaining strongly fixated upon yours in a motion of mutual respect, 'Welcome, Ezamnoe. Know that your presence is comforting to the people of tranquility despite our weary natures of the present. Our Elders have slaved for so long that many have become deathly ill -- stricken by unearthly ailments due to their struggles in opening the portals to the divine realms. Many of the deities are not pleased with our presence and they will offer a great resistance to you, should you choose to enter the other divine realms through our established portals. In the event of this occurring, the people of tranquility have gathered supplies as we have been able and offer them to you at a fair price. They may seem modest, but they will prove useful in the long endeavor that awaits you beyond this realm.'"); + end +end diff --git a/potranquility/Paurnil_Goldenleaves.lua b/potranquility/Paurnil_Goldenleaves.lua new file mode 100644 index 0000000..1734b3f --- /dev/null +++ b/potranquility/Paurnil_Goldenleaves.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:CastToNPC():SetNoQuestPause(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:DoAnim(70); + e.self:Emote("gives a solemn bow -- the natural regality of his race shining through his almost divinely graceful movement and unearthly beauty, 'Welcome, traveler, to the realm of tranquility. May peace lull your weary spirit and heart from the horrors that lay beyond in both endeavors past and not yet ventured. I am Paurnil Goldenleaves, a citizen of tranquility and humble servant to all of Norrath's adventurers that pass through this plane. I am one of three who have offered to hold the excess belongings of adventurers whilst they embark upon the dangers that lay in the domain of the gods. Do not hesitate to trust us, " .. e.other:GetCleanName() .. ", for we have little need of earthly possessions and with many of our Elders in a state of immobility from their expenditure of energy, we will not be leaving this place any time soon.'"); + end +end diff --git a/potranquility/Rugresch_Tragguk.lua b/potranquility/Rugresch_Tragguk.lua new file mode 100644 index 0000000..cd0ab81 --- /dev/null +++ b/potranquility/Rugresch_Tragguk.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am Rugresch. I cratch da fur from da skins and other tings dat dey brings me. Da cratchins is wut dey makes da weavin strings from. All day long. cratch. . . cratch. . . cratch. . . but it is wut I do. I needs ta get back ta work. I gots lots more ta do."); + end +end diff --git a/potranquility/Rugurt_Grubdigger.lua b/potranquility/Rugurt_Grubdigger.lua new file mode 100644 index 0000000..7d9e994 --- /dev/null +++ b/potranquility/Rugurt_Grubdigger.lua @@ -0,0 +1,20 @@ +function event_spawn(e) + e.self:CastToNPC():SetNoQuestPause(true); + eq.set_timer("inifish",math.random(32000)); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Huh. what you want? Don' scare off da fishes. less you want me to toss you in with dem."); + end +end + +function event_timer(e) + if(e.timer == "inifish") then + eq.stop_timer("inifish"); + eq.set_timer("fish",32000); + e.self:DoAnim(5); + elseif(e.timer == "fish") then + e.self:DoAnim(5); + end +end \ No newline at end of file diff --git a/potranquility/Saluk_Tramuj.lua b/potranquility/Saluk_Tramuj.lua new file mode 100644 index 0000000..e27de66 --- /dev/null +++ b/potranquility/Saluk_Tramuj.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Excuse me. I am trying to finish my meal."); + end +end diff --git a/potranquility/Samusk_Hariij.lua b/potranquility/Samusk_Hariij.lua new file mode 100644 index 0000000..d4254ac --- /dev/null +++ b/potranquility/Samusk_Hariij.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:CastToNPC():SetNoQuestPause(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:DoAnim(48); + e.self:Emote("nods deeply to Ezamnoe in a formal, almost regal greeting of mutual respect, 'Hail to you, traveler, and may the spirits hold you well in their favor through your endeavors. The residents of Quellious' domain have come together in haste to make efficient accommodations for whatever needs you may have whilst you are among us. Before you venture to the outer domains of the divine, perhaps it would be wise to investigate our inventories. What we hold is modest, though the supplies may prove a necessity in the dangerous climate to surround your current journey.'"); + end +end diff --git a/potranquility/Sarhya_the_Dawnbreeze.lua b/potranquility/Sarhya_the_Dawnbreeze.lua new file mode 100644 index 0000000..400d540 --- /dev/null +++ b/potranquility/Sarhya_the_Dawnbreeze.lua @@ -0,0 +1,21 @@ +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + + if ( e.message:findi("hail") ) then + if ( qglobals.zebuxoruk and qglobals.zebuxoruk == "2" ) then + e.self:Say("It appears that you are ready to travel into the Elemental Planes. Beware many of the gods there have set up wards to protect them against assaults. Most I cannot speak about; however I do have information on the Circle of Protection that guards Xegony, in her [Plane of Air]."); + else + e.self:Say("Well met. I am keeper of the Portal to the [Plane of Air]."); + end + + elseif ( e.message:findi("plane of air") ) then + if ( qglobals.zebuxoruk and qglobals.zebuxoruk == "2" ) then + e.self:Say("Xegony has created four avatars, each one embodies a different aspect of her power, and each of these avatars was created with a portion of her very essence. The story goes, the one who possesses each of these essences may create a key to break Xegony's ward and enter into her inner sanctum. I don't know the truth behind this, as I have neither the power, nor the desire to challenge the Avatars myself. I have fashioned this, which I believe will form the four essences into a key."); + if ( not e.other:HasItem(17888) ) then + e.other:SummonCursorItem(17888); -- Pouch of Swirling Winds + end + else + e.self:Say("The Elemental Planes are not for idle exploration. Return to me when you have a reason to enter and I will consider opening the portal for you."); + end + end +end diff --git a/potranquility/Sariliz_Grizka.lua b/potranquility/Sariliz_Grizka.lua new file mode 100644 index 0000000..dbbc3fc --- /dev/null +++ b/potranquility/Sariliz_Grizka.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("gives a gentle nod in recognition and mutual respect. Her voice then spills forth in an almost whispered hiss. 'Greetings. " .. e.other:GetCleanName() .. ". I would invite you to keep me company while I finish my meal. but I am afraid that I am almost through. There really is not much here that suits my palate. but Zurmsa is at least kind enough to keep the place sstocked with bloodwater for me. Enjoy your meal.'"); + end +end diff --git a/potranquility/Soulbinder_Derith.lua b/potranquility/Soulbinder_Derith.lua new file mode 100644 index 0000000..80c75f8 --- /dev/null +++ b/potranquility/Soulbinder_Derith.lua @@ -0,0 +1,15 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID(),0,1); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/potranquility/Taisika_Cloudfire.lua b/potranquility/Taisika_Cloudfire.lua new file mode 100644 index 0000000..ac3b0df --- /dev/null +++ b/potranquility/Taisika_Cloudfire.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:CastToNPC():SetNoQuestPause(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:DoAnim(48); + e.self:Emote("smiles warmly as she nods in recognition and respectful greetings, 'Good day to you, traveler, and may you know peace among us. We understand the turmoil that you must endure and we are truly regretful that we cannot do more than we already have. The Elders are spent -- many are near death from the energies expended to open these portals. The rest of tranquility's inhabitants must maintain the order of things while our Elders are in recovery so we must rely upon you -- the adventurers, scholars, and heroes of Norrath -- to make use of our portals and render our Elders' sacrifice to not be one in vain. I understand that the planes may offer many unique treasures to you, and you will need a place to store them whilst your endeavors rage onward. If you are in need of a fair, trustworthy place to store your belongings, then know that I shall humbly take such a responsibility and guard your treasures with my life, should it come to it.'"); + end +end diff --git a/potranquility/Trila_Cabbageroll.lua b/potranquility/Trila_Cabbageroll.lua new file mode 100644 index 0000000..05334a9 --- /dev/null +++ b/potranquility/Trila_Cabbageroll.lua @@ -0,0 +1,9 @@ +function event_spawn(e) + e.self:CastToNPC():SetNoQuestPause(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("doesn't seem to notice you. Her concentration is set on trying to reach the tray that rests on the table before her."); + end +end diff --git a/potranquility/Tylis_Newleaf.lua b/potranquility/Tylis_Newleaf.lua new file mode 100644 index 0000000..5c9f46e --- /dev/null +++ b/potranquility/Tylis_Newleaf.lua @@ -0,0 +1,16 @@ +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + + if ( e.message:findi("hail") ) then + + if ( qglobals.saryrn or qglobals.cipher ) then + e.other:Message(0, "Tylis Newleaf tells you, 'You took on and destroyed the Mistress of Torment? Truly impressive! Now that you have found the knowledge that is the cipher, I recall that there was one that I had met once in New Tanaan. He might be able to use it properly. I believe he is now the Grand Librarian of the city. Good luck with all that you seek friends.'"); + + elseif ( qglobals.tylis and qglobals.tylis == "2" ) then + e.other:Message(0, "Tylis Newleaf tells you, 'I wanted to thank you once again for your kind efforts, friend. That place had laid claim to me for far too long. So long that I have seen what Saryrn carries. I believe it to be a cipher between the language of the gods and common tongue. If it is real ultimate power that you seek, you should obtain it from her.'"); + + else + e.other:Message(0, "Tylis Newleaf lies on the floor still quivering in pain. You notice the concern that Fahlia is showing for him."); + end + end +end diff --git a/potranquility/Urgla_Fishbrains.lua b/potranquility/Urgla_Fishbrains.lua new file mode 100644 index 0000000..3cffd0a --- /dev/null +++ b/potranquility/Urgla_Fishbrains.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("gives a rumbling growl that catches you slightly off-guard in memory of the brutish. merciless ogres upon your native world. Urgla narrows an eye at seeing your brief moment of discomfort at her reaction. A crooked smile crosses her almost grotesque maw. as if she were amused. and then she promptly returns to counting boxes without a word."); + end +end diff --git a/potranquility/Weavereader_Aewen.lua b/potranquility/Weavereader_Aewen.lua new file mode 100644 index 0000000..140fc92 --- /dev/null +++ b/potranquility/Weavereader_Aewen.lua @@ -0,0 +1,9 @@ +function event_spawn(e) + e.self:CastToNPC():SetNoQuestPause(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("scans the tapestry that rests before her. Her eyes don't stop their twitching analysis of the material in your address to her."); + end +end diff --git a/potranquility/Weavereader_Dox-Atyr.lua b/potranquility/Weavereader_Dox-Atyr.lua new file mode 100644 index 0000000..208cd53 --- /dev/null +++ b/potranquility/Weavereader_Dox-Atyr.lua @@ -0,0 +1,9 @@ +function event_spawn(e) + e.self:CastToNPC():SetNoQuestPause(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("mumbles an inaudible phrase and continues to stare at the large table in front of him."); + end +end diff --git a/potranquility/Weavereader_Ralmajir.lua b/potranquility/Weavereader_Ralmajir.lua new file mode 100644 index 0000000..0864c73 --- /dev/null +++ b/potranquility/Weavereader_Ralmajir.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You are welcome to observe. but please keep your voice down. We need to maintain a peaceful atmosphere if we are to continue our reading."); + end +end diff --git a/potranquility/Zurmsa_Grulm.lua b/potranquility/Zurmsa_Grulm.lua new file mode 100644 index 0000000..8881cf9 --- /dev/null +++ b/potranquility/Zurmsa_Grulm.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + e.self:CastToNPC():SetNoQuestPause(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:DoAnim(58); + e.self:Emote("was humming as you approached. As you hail her. the humming turns into a surprisingly loud outburst of song! Her arms flail and fish guts fly. as she dances around with troll-like gracefulness!"); + end +end diff --git a/potranquility/player.lua b/potranquility/player.lua new file mode 100644 index 0000000..756f72e --- /dev/null +++ b/potranquility/player.lua @@ -0,0 +1,148 @@ +local level_for_tier_two = 255; -- level thresholds at which a player gains free access to otherwise flag restricted zones +local level_for_tier_three = 255; +local level_for_tier_four = 255; +local level_for_elemental = 255; + +function event_click_door(e) + local qglobals = eq.get_qglobals(e.self); + local door_id = e.door:GetDoorID(); + + -- valor / storms + if(door_id == 16 or door_id == 21) then + if(e.self:GetLevel() >= level_for_tier_two or (qglobals.mavuin and qglobals.mavuin == "3")) then + if(e.self:HasZoneFlag(210) == false or e.self:HasZoneFlag(208) == false) then + e.self:SetZoneFlag(210); + e.self:SetZoneFlag(208); + end + else + e.self:Message(13, "You lack the will to pass through this portal safely."); + end + end + + -- codecay + if(door_id == 12) then + + if ( not e.self:HasZoneFlag(200) ) then + + if ( e.self:GetItemIDAt(0) == 9294 and not e.self:KeyRingCheck(9294) ) then + e.self:KeyRingAdd(9294); + end + + -- zone flag is set by dropping down the Plane of Disease zone-in 'toilet' near Grummus + if ( e.self:GetLevel() >= level_for_tier_three or e.self:KeyRingCheck(9294) ) then + e.self:SetZoneFlag(200); + else + e.self:Message(13, "You lack the will to pass through this portal safely."); + end + end + end + + -- torment + if(door_id == 93) then + if ( e.self:GetItemIDAt(0) == 29213 and not e.self:KeyRingCheck(29213) ) then + e.self:KeyRingAdd(29213); + end + if(e.self:GetLevel() >= level_for_tier_two or (qglobals.fuirstel and qglobals.fuirstel == "5" and qglobals.thelin and qglobals.thelin == "4") or e.self:KeyRingCheck(29213)) then + if(e.self:HasZoneFlag(207) == false) then + e.self:SetZoneFlag(207); + end + else + e.self:Message(13, "You lack the will to pass through this portal safely."); + end + end + + -- bothunder + if(door_id == 48) then + local karana = tonumber(qglobals.karana or 0); + if(e.self:GetLevel() >= level_for_tier_three or karana >= 3 or qglobals.zebuxoruk) then + if(e.self:HasZoneFlag(209) == false) then + e.self:SetZoneFlag(209); + end + else + e.self:Message(13, "You lack the will to pass through this portal safely."); + end + end + + -- hohonora + if(door_id == 23) then + + if ( not e.self:HasZoneFlag(211) ) then + + if ( e.self:GetItemIDAt(0) == 29214 and not e.self:KeyRingCheck(29214) ) then + e.self:KeyRingAdd(29214); + end + + -- zone flag is set by zoning in from PoValor + if ( e.self:GetLevel() >= level_for_tier_three or e.self:KeyRingCheck(29214) ) then + e.self:SetZoneFlag(211); + else + e.self:Message(13, "You lack the will to pass through this portal safely."); + end + end + end + + -- potactics + if(door_id == 24) then + local zeks = tonumber(qglobals.zeks or 0); + if ( e.self:GetItemIDAt(0) == 29215 and not e.self:KeyRingCheck(29215) ) then + e.self:KeyRingAdd(29215); + end + if(e.self:GetLevel() >= level_for_tier_three or zeks >= 2 or e.self:KeyRingCheck(29215)) then + if(e.self:HasZoneFlag(214) == false) then + e.self:SetZoneFlag(214); + end + else + e.self:Message(13, "You lack the will to pass through this portal safely."); + end + end + + -- solrotower + if(door_id == 22) then + local zeks = tonumber(qglobals.zeks or 0); + if(e.self:GetLevel() >= level_for_tier_four or (qglobals.cipher and zeks >= 6)) then + if(e.self:HasZoneFlag(212) == false) then + e.self:SetZoneFlag(212); + end + else + e.self:Message(13, "You lack the will to pass through this portal safely."); + end + end + + -- pofire + if(door_id == 82) then + + if ( not e.self:HasZoneFlag(217) ) then + + -- zone flag is set by falling into Solusek's chamber fire pit under the door + if ( e.self:GetLevel() >= level_for_elemental ) then + e.self:SetZoneFlag(217); + else + e.self:Message(13, "You lack the will to pass through this portal safely."); + end + end + end + + -- powater / poearth / poair + if(door_id == 81 or door_id == 83 or door_id == 84) then + if(e.self:GetLevel() >= level_for_elemental or (qglobals.zebuxoruk and qglobals.zebuxoruk == "2")) then + if(e.self:HasZoneFlag(216) == false or e.self:HasZoneFlag(215) == false or e.self:HasZoneFlag(218) == false) then + e.self:SetZoneFlag(216); + e.self:SetZoneFlag(215); + e.self:SetZoneFlag(218); + end + else + e.self:Message(13, "You lack the will to pass through this portal safely."); + end + end + + -- potimea + if(door_id == 18) then + + if ( e.self:GetGM() or ( e.self:GetLevel() >= 65 and e.self:HasZoneFlag(219) and qglobals.time ) ) then + e.self:Message(0, "The ages begin to tear through your body. You wake to find yourself in another time."); + -- e.self:MovePC(219, 223, 140, 9, 170*2); + else + e.self:Message(13, "You lack the will to pass through this portal safely."); + end + end +end diff --git a/povalor/#A_Wandering_Spirit.lua b/povalor/#A_Wandering_Spirit.lua new file mode 100644 index 0000000..575a332 --- /dev/null +++ b/povalor/#A_Wandering_Spirit.lua @@ -0,0 +1,46 @@ +-- This quest may not be implemented correctly. It's not doable on Live anymore. +-- An Allakhazam comment says that a human version of the spirit spawns when you turn in the amulet+symbol. +-- I have an AK log of this done, and right after the amulet+symbol, he hails the spirit again and goes through the exact same dialog. +-- Whether or not it was a human form or still the suit version which did not disappear, I have no way to know. +-- The log does have the shield+sword turn in, which was turned in after the amulet+symbol, and that text here is accurate. + +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Emote("groans in extreme anguish. '[Help] me.'"); + + elseif ( e.message:findi("help") ) then + e.self:Say("My resting grounds have been desecrated. I now lie awake unable to rest with my fellow brethren. My soul is bound to this area for all of eternity. Until my [belongings] are brought back I cannot rest."); + + elseif ( e.message:findi("belongings") ) then + e.self:Say("Many different things were taken, but I'm mainly concerned with my [amulet] and my family's crescent symbol. Bring these articles back into my possession and I'll return back to my state of rest."); + + elseif ( e.message:findi("amulet") ) then + e.self:Say("The amulet was given to me after passing the Trials many many generations ago. It is a part of every soldier who has passed the trials, it is a part of my very being."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if ( item_lib.check_turn_in(e.self, e.trade, { item1 = 20605, item2 = 20606 }) ) then -- Crescent Symbol of Rhaj, Righteous Amulet of Marr + e.self:Emote("quickly grabs the amulet and crescent symbol before speaking. 'At long last! I can now rest in peace along with my fellow brethren. Thank you "..e.other:GetName()..". May the might of Marr follow you wherever you may go.'"); + e.other:QuestReward(e.self, 0, 0, 0, 0, 0, 250000); + eq.depop(); + + elseif ( item_lib.check_turn_in(e.self, e.trade, { item1 = 20608, item2 = 20607 }) ) then -- Unwavering Shield of Faith, Unwavering Sword of Faith + e.self:Emote("looks at you with great surprise. 'It's been quite some time since I've been without my weaponry. Thank you for returning them to me "..e.other:GetName()..".'"); + e.other:QuestReward(e.self, 0, 0, 0, 0, 0, 500000); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +function event_spawn(e) + eq.set_timer("depop", 100000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end diff --git a/povalor/#Aerin-Dar.lua b/povalor/#Aerin-Dar.lua new file mode 100644 index 0000000..5a162ae --- /dev/null +++ b/povalor/#Aerin-Dar.lua @@ -0,0 +1,94 @@ +local PLANAR_PROJECTION_TYPE = 208207; +local MINION_TYPE = 208175; -- A_Mindless_Minion +local RAHLGON_TYPE = 208176; -- Rahlgon +local SPAWNIDS = { + 347220, 347221, + 347219, 347217, + 347216, 347215, + 347218, 347214, 347213 +}; + +function WakeUp(...) + local npc; + local elist = eq.get_entity_list(); + local i = 1; + local idx = select(i, ...); + while (idx) do + if ( SPAWNIDS[idx] ) then + npc = elist:GetSpawnByID(SPAWNIDS[idx]):GetNPC(); + if ( npc.valid ) then + npc:SetSpecialAbility(24, 0); -- Will Not Aggro off + npc:SetSpecialAbility(35, 0); -- No Harm from Players off + npc:SetBodyType(1, false); -- Humanoid + end + end + i = i + 1; + idx = select(i, ...); + end +end + +function RespawnAdds() + local elist = eq.get_entity_list(); + for _, id in ipairs(SPAWNIDS) do + elist:GetSpawnByID(id):SetTimer(1); + end +end + +function event_death_complete(e) + eq.spawn2(PLANAR_PROJECTION_TYPE, 0, 0, 360, 2528, 39, 0); + eq.signal(PLANAR_PROJECTION_TYPE, e.killer:GetID()); -- e.killer for death_complete is somebody with kill rights, not death blow +end + +function event_spawn(e) + eq.set_next_hp_event(85); + RespawnAdds(); +end + +function event_hp(e) + + if ( e.hp_event == 85 ) then + eq.set_next_hp_event(65); + WakeUp(1, 2); + + elseif ( e.hp_event == 65 ) then + eq.set_next_hp_event(45); + WakeUp(3, 4); + + elseif ( e.hp_event == 45 ) then + eq.set_next_hp_event(25); + WakeUp(5, 6); + + elseif ( e.hp_event == 25 ) then + WakeUp(7, 8, 9); + end +end + +function event_combat(e) + if ( not e.joined and e.self:GetHPRatio() < 86 ) then + eq.set_timer("checkhp", 3000); + end + if ( e.joined ) then + eq.set_timer("boundscheck", 3000); + else + eq.stop_timer("boundscheck"); + end +end + +function event_timer(e) + + if ( e.timer == "boundscheck" ) then + if ( e.self:GetZ() > 120 or e.self:GetY() < 2100 or e.self:GetY() > 2880 ) then + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + end + + elseif ( e.timer == "checkhp" ) then + + if ( e.self:GetHPRatio() == 100 ) then + eq.stop_timer(e.timer); + eq.set_next_hp_event(85); + eq.depop_all(MINION_TYPE); + eq.depop_all(RAHLGON_TYPE); + RespawnAdds(); + end + end +end diff --git a/povalor/A_Planar_Projection.lua b/povalor/A_Planar_Projection.lua new file mode 100644 index 0000000..14d601b --- /dev/null +++ b/povalor/A_Planar_Projection.lua @@ -0,0 +1,71 @@ +local FLAG_LIMIT = 72; + +local flags = 0; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + +function event_signal(e) + rid, gid, cid = nil, nil, nil; + local client = eq.get_entity_list():GetClientByID(e.signal); -- the signal # is the entity ID of a client with kill credit + + if ( client.valid ) then + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + end +end + +function event_spawn(e) + flags = 0; + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + + if ( ClientCanFlag(e.other) ) then + + if ( e.message:findi("hail") ) then + + if ( not qglobals.aerindar and qglobals.mavuin and qglobals.mavuin == "3" and flags < FLAG_LIMIT ) then + e.other:Message(0, "The Planar Projection's thoughts enter your own. 'You have done well. You will now be able to enter the Halls of Honor.'"); + eq.set_global("aerindar", "1", 5, "F"); + -- this projection doesn't give a flag message + --e.other:Message(15, "You have received a character flag!"); + flags = flags + 1; + end + end + end +end diff --git a/povalor/A_Squad_Leader.lua b/povalor/A_Squad_Leader.lua new file mode 100644 index 0000000..bf8a695 --- /dev/null +++ b/povalor/A_Squad_Leader.lua @@ -0,0 +1,6 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Say("We are busy here, please don't distract the troops. There is possibility of battle ahead and they must focus."); + end +end diff --git a/povalor/A_Wandering_Spirit.lua b/povalor/A_Wandering_Spirit.lua new file mode 100644 index 0000000..df58838 --- /dev/null +++ b/povalor/A_Wandering_Spirit.lua @@ -0,0 +1,25 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Emote("groans in extreme anguish. '[Help] me.'"); + + elseif ( e.message:findi("help") ) then + e.self:Say("My resting grounds have been desecrated. I now lie awake unable to rest with my fellow brethren. My soul is bound to this area for all of eternity. Until my [belongings] are brought back I cannot rest."); + + elseif ( e.message:findi("belongings") ) then + e.self:Say("Many different things were taken, but I'm mainly concerned with my [amulet] and my family's crescent symbol. Bring these articles back into my possession and I'll return back to my state of rest."); + + elseif ( e.message:findi("amulet") ) then + e.self:Say("The amulet was given to me after passing the Trials many many generations ago. It is a part of every soldier who has passed the trials, it is a part of my very being."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if ( item_lib.check_turn_in(e.self, e.trade, { item1 = 20605, item2 = 20606 }) ) then -- Crescent Symbol of Rhaj, Righteous Amulet of Marr + e.self:Emote("quickly grabs the amulet and crescent symbol before speaking. 'At long last! I can now rest in peace along with my fellow brethren. Thank you "..e.other:GetName()..". May the might of Marr follow you wherever you may go.'"); + e.other:QuestReward(e.self, 0, 0, 0, 0, 0, 250000); + eq.spawn2(208209, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading() ); -- #A_Wandering_Spirit + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/povalor/Abalin_Goret.lua b/povalor/Abalin_Goret.lua new file mode 100644 index 0000000..fc8af87 --- /dev/null +++ b/povalor/Abalin_Goret.lua @@ -0,0 +1,5 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Hmm? Are you talking to me? Oh, I guess you must be. I am new here and some of the Soldiers still haven't fully accepted me. Give me some time, they will see."); + end +end diff --git a/povalor/Aken_Feldmin.lua b/povalor/Aken_Feldmin.lua new file mode 100644 index 0000000..552e32b --- /dev/null +++ b/povalor/Aken_Feldmin.lua @@ -0,0 +1,12 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Say("We don't want to get into any more trouble than we are already in, go away!"); + end +end + +function event_signal(e) + if ( e.signal == 1 ) then + e.self:Say("Sir! Yes Sir!"); + end +end diff --git a/povalor/An_Apprentice_Cartographer.lua b/povalor/An_Apprentice_Cartographer.lua new file mode 100644 index 0000000..4c1d9c5 --- /dev/null +++ b/povalor/An_Apprentice_Cartographer.lua @@ -0,0 +1,5 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Emote("nods in your direction, recognizing your presence, then returns to his work."); + end +end diff --git a/povalor/Baltron_Werters.lua b/povalor/Baltron_Werters.lua new file mode 100644 index 0000000..4070083 --- /dev/null +++ b/povalor/Baltron_Werters.lua @@ -0,0 +1,5 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Sorry, I am a bit tired. Been working all night."); + end +end diff --git a/povalor/Barry_Karmme.lua b/povalor/Barry_Karmme.lua new file mode 100644 index 0000000..552e32b --- /dev/null +++ b/povalor/Barry_Karmme.lua @@ -0,0 +1,12 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Say("We don't want to get into any more trouble than we are already in, go away!"); + end +end + +function event_signal(e) + if ( e.signal == 1 ) then + e.self:Say("Sir! Yes Sir!"); + end +end diff --git a/povalor/Boluen_Areden.lua b/povalor/Boluen_Areden.lua new file mode 100644 index 0000000..ddb9956 --- /dev/null +++ b/povalor/Boluen_Areden.lua @@ -0,0 +1,5 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Emote("remains silent."); + end +end diff --git a/povalor/Captain_Ryglot_Cupperhide.lua b/povalor/Captain_Ryglot_Cupperhide.lua new file mode 100644 index 0000000..b9ee8a6 --- /dev/null +++ b/povalor/Captain_Ryglot_Cupperhide.lua @@ -0,0 +1,47 @@ +function event_say(e) + + local questState = tonumber(eq.get_qglobals(e.other).pov_orb_quest or 0); + + if ( questState == 6 ) then + + if ( e.message:findi("hail") ) then + e.self:Say("I am very [busy] at the moment. Perhaps you should come back at another time "..e.other:GetName()); + + elseif ( e.message:findi("busy") ) then + e.self:Say("I can't go into any great detail, but the Crystalline Globe was taken from our command structure. Its believed to have been separated into three pieces. Unfortunately, we're having a lot of trouble relocating it. Perhaps you'd like to [help]."); + + elseif ( e.message:findi("help") ) then + e.self:Say("That's good to hear "..e.other:GetName()..". I wish we had more soldiers like yourself willing to help. I'm going to need you to locate the missing pieces of the globe and bring them back to me. After you've acquired the pieces perhaps you'd be able to rally enough people to lend us a hand with another [mission] objective we've been unable to fulfill do to our diminished numbers."); + + elseif ( e.message:findi("mission") ) then + e.self:Say("Well, I can't go into any details as to our main purpose is, but one of our missions was to exterminate the crystalline dragon. However, due to our company being split we are unable to go forward with this part of the operation. It has been placed on hold, pending the outcome of the [war]."); + + elseif ( e.message:findi("war") ) then + e.self:Say("Unfortunately, that is one of the things that I'm unable to speak of at this time. However, if you are [willing] to help rally some people together I may be able to release some more information to you."); + + elseif ( e.message:findi("willing") ) then + e.self:Say("Well, that's good to hear. Bring me back what I've requested and we'll talk then."); + end + else + if ( e.message:findi("hail") ) then + e.self:Say("Please leave. I am extremely busy at the moment."); + end + end +end + +function event_trade(e) + local questState = tonumber(eq.get_qglobals(e.other).pov_orb_quest or 0); + local item_lib = require("items"); + + if ( item_lib.check_turn_in(e.self, e.trade, { item1 = 25796, item2 = 25797, item3 = 25798 }) ) then -- globe pieces + + if ( questState == 6 ) then + e.self:Emote("looks up at you in surprise. 'I can't believe you brought the missing pieces back to me so quickly. I have a team of men who have been looking for these pieces for weeks now. That's quite a feat. Unfortunately, I will be unable to make use of the Crystalline Globe at this time. A message has been dispatched to my platoon asking us to return to the Halls of Honor. It looks as if we'll be joining up with the rest of our company fairly soon. Keep the globe. If you're able to rally enough people together to take on Aerin`Dar then perhaps you'll be able accomplish an objective that our platoon was unable to do. I must go now. Good luck to you "..e.other:GetName()..".'"); + -- Confirmed Live Experience + e.other:QuestReward(e.self, { itemid = 25596, exp = 1 }); -- A Crystalline Globe + else + e.self:Say("Thanks for the gift."); -- This text is a guess. The quest was changed to not eat items well after AK's time, so can't get the real text + end + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/povalor/Ceson_Fallonic.lua b/povalor/Ceson_Fallonic.lua new file mode 100644 index 0000000..be559e7 --- /dev/null +++ b/povalor/Ceson_Fallonic.lua @@ -0,0 +1,6 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Say("Hello, "..e.other:GetName()..". I don't think you should bother the men in the next room. They are extremely busy looking over the tactical maps of this region."); + end +end diff --git a/povalor/Fellon_Garnuckle.lua b/povalor/Fellon_Garnuckle.lua new file mode 100644 index 0000000..fbeea4c --- /dev/null +++ b/povalor/Fellon_Garnuckle.lua @@ -0,0 +1,13 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Emote("looks around skittishly. 'What are you doing here? [SPY]! SPY!'"); + eq.signal(208014, 2); -- Sergeant_Gerrin_Bakeside + + elseif ( e.message:findi("spy") ) then + e.self:Say("They are here. I can see them, no one else can, don't tell the sergeant, I know he won't believe me. None of them believe me, but they are everywhere. I can hear them whispering. Shhh can you [hear them]?"); + + elseif ( e.message:findi("hear them") ) then + e.self:Say("Oh, can you? That is very good, you are wise. Very wise indeed. Keep your eyes out and your ears open. The shadow is close. For the honor of Ducee Lealson."); + end +end diff --git a/povalor/Fenric_Zarign.lua b/povalor/Fenric_Zarign.lua new file mode 100644 index 0000000..80a3016 --- /dev/null +++ b/povalor/Fenric_Zarign.lua @@ -0,0 +1,12 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Say("Well look what the wrulon dragged in? My, aren't you a sad "..e.other:Race().."? Well is there something you want, or are you going to just stand there and look stupid? This tent is for [disciplinary] cases."); + + elseif ( e.message:findi("disciplinary") ) then + e.self:Say("Yes you thick skulled buffoon. Disciplinary cases, we have rules, when those rules are broken the soldier or soldiers responsible see me, and none of these soldiers want to see me. Isn't that right soldiers?"); + eq.signal(208036, 1); -- Genii_Rolfs + eq.signal(208037, 1); -- Aken_Feldmin + eq.signal(208035, 1); -- Barry_Karmme + end +end diff --git a/povalor/Franzik_Wells.lua b/povalor/Franzik_Wells.lua new file mode 100644 index 0000000..f271573 --- /dev/null +++ b/povalor/Franzik_Wells.lua @@ -0,0 +1,5 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Good day. Although I do not mind your presence, I do ask to be left alone, for I am trying to concentrate. Please forgive my lack of gregariousness. Do come another time."); + end +end diff --git a/povalor/Fyking_Baer.lua b/povalor/Fyking_Baer.lua new file mode 100644 index 0000000..a788921 --- /dev/null +++ b/povalor/Fyking_Baer.lua @@ -0,0 +1,20 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Emote("looks bored. 'This isn't what I signed up for! Distributing [weapons]? Bah!"); + + elseif ( e.message:findi("weapons") ) then + e.self:Say("These weapons, fool. I signed up for [Ducee Lealson] for the honor of battle, not to sit in a tent guarding toys."); + + elseif ( e.message:findi("Ducee Lealson") ) then + e.self:Say("We are Ducee Lealson! I don't understand why we would be assigned to this duty, we just returned from a successful campaign. This is a waste of our talents."); + eq.signal(208014, 1); -- Sergeant_Gerrin_Bakeside + end +end + +function event_signal(e) + + if ( e.signal == 1 ) then + e.self:Say("Sorry Sir!"); + end +end diff --git a/povalor/Genii_Rolfs.lua b/povalor/Genii_Rolfs.lua new file mode 100644 index 0000000..552e32b --- /dev/null +++ b/povalor/Genii_Rolfs.lua @@ -0,0 +1,12 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Say("We don't want to get into any more trouble than we are already in, go away!"); + end +end + +function event_signal(e) + if ( e.signal == 1 ) then + e.self:Say("Sir! Yes Sir!"); + end +end diff --git a/povalor/Grenic_Drere.lua b/povalor/Grenic_Drere.lua new file mode 100644 index 0000000..acaaace --- /dev/null +++ b/povalor/Grenic_Drere.lua @@ -0,0 +1,30 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + if ( e.other:KeyRingCheck(29214) or e.other:HasItem(29214) ) then -- Ring of Marr + e.self:Say("I have been waiting for this day for a long time. I knew they would see that I did nothing wrong. I am forever in your debt. Please run ahead to the Halls of Honor and let them know I will be there soon enough."); + else + e.self:Say("Mortals, this far into the planes? Something that I never thought that I would see. Regardless that does not help my situation any does it?'"); + end + + elseif ( e.message:findi("situation") ) then + e.self:Say("Not that it is your business, but this is where I call home. I have lost track of the years that I have spent here. This valley is my home, for I was exiled from [Mithaniel's Temple]. It is not a story that I am proud of and do not wish to share with you. So begone with you."); + + elseif ( e.message:findi("Mithaniel's Temple") ) then + e.self:Say("Only a mortal would be as thick headed to know not when to take their leave. He and his legions call his temple The Halls of Honor. Paladins that have served him well on Norrath have the opportunity to ascend into his ranks. They are in training to make sure that they are always prepared to defend what they believe is the right and honorable thing to do. Mithaniel is an extremely proud being, and will accept any challenge that you may have to offer him. If you are willing to challenge him, I may have some [information] you will find useful."); + + elseif ( e.message:findi("information") ) then + e.self:Say("There are other methods to enter the Halls of Honor than those that are readily apparent, and as a former soldier of Marr I can offer you, and your party, access into the Halls; however as with all such arrangements there must be something [paid] for something earned."); + + elseif ( e.message:findi("paid") ) then + e.self:Say("I was not the only member of my squad that was sent into exile, my brothers in arms, were the impetus for our exile. I was but a mere pawn. They now reside in the Plane of Justice as bodiless shades. Their punishment was too lax for their actions; I want their eternal souls to be mine. Find a smith who will teach you to create a box of souls, weaken the shades, then capture their souls and return all three to me, along with the box. It must be disposed of."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if ( item_lib.check_turn_in(e.self, e.trade, { item1 = 29281, item2 = 29292, item3 = 29293, item4 = 29294 }) ) then -- Box of Souls, Soul Sphrere (Angry), Soul Sphere (Calm), Soul Sphere (Resisting) + e.self:Say("Hmm, this is minor vindication, but vindication nonetheless. I will never again fight with my old compatriots, but now I know the punishment of those responsible for my exile is fitting for their crime. We did have an agreement, and while stripped of my rank I still have my honor. This ring is what all Soldiers of Marr wear to enter the Halls of Honor, it serves no use for me any longer, it is yours now."); + e.other:QuestReward(e.self, 0, 0, 0, 0, 29214, 50000); -- Ring of Marr + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/povalor/Helix_Jeson.lua b/povalor/Helix_Jeson.lua new file mode 100644 index 0000000..e08f439 --- /dev/null +++ b/povalor/Helix_Jeson.lua @@ -0,0 +1,18 @@ +local clientIDs = {}; + +function event_say(e) + + if ( e.message:findi("hail") ) then + + if ( clientIDs[e.other:GetID()] ) then + e.self:Say("You heard the Sergeant. Leave before we are forced to escort you out of the compound."); + else + e.self:Say("I have no time to talk "..e.other:GetName()..". We are extremely busy at the moment."); + end + end +end + +-- don't want to make a qglobal for this; signal sent is entity ID of client who hails the Sergeant +function event_signal(e) + clientIDs[e.signal] = true; +end diff --git a/povalor/Johaan_Landro.lua b/povalor/Johaan_Landro.lua new file mode 100644 index 0000000..394852b --- /dev/null +++ b/povalor/Johaan_Landro.lua @@ -0,0 +1,5 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Fall in line, soldier! Hrmm... You are a soldier, aren't you?"); + end +end diff --git a/povalor/Katizm_Banum.lua b/povalor/Katizm_Banum.lua new file mode 100644 index 0000000..f42837e --- /dev/null +++ b/povalor/Katizm_Banum.lua @@ -0,0 +1,7 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Hail, "..e.other:GetName()..". You can just call me Banum. Just [exploring] are you?"); + elseif ( e.message:findi("exploring") ) then + e.self:Say("Be careful out there, I have heard of the glass playing tricks on people's eyes."); + end +end diff --git a/povalor/Lieutenant_Aiden_Finn.lua b/povalor/Lieutenant_Aiden_Finn.lua new file mode 100644 index 0000000..cf3e5ff --- /dev/null +++ b/povalor/Lieutenant_Aiden_Finn.lua @@ -0,0 +1,6 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Say("We have no time for interruptions. Please leave at once."); + end +end diff --git a/povalor/Master_Sergeant_Aaramis_Daryln.lua b/povalor/Master_Sergeant_Aaramis_Daryln.lua new file mode 100644 index 0000000..652ec91 --- /dev/null +++ b/povalor/Master_Sergeant_Aaramis_Daryln.lua @@ -0,0 +1,45 @@ +function event_say(e) + + local questState = tonumber(eq.get_qglobals(e.other).pov_orb_quest or 0); + + if ( questState == 3 or questState == 4 ) then + + if ( e.message:findi("hail") ) then + e.self:Emote("stands at attention."); + + elseif ( e.message:findi("aid the cause") ) then + e.self:Emote("looks you over and says in a deep voice 'What could you possibly do to aid our cause. Perhaps you think you can slay [Aerin`Dar] himself?' The Master Sergeant begins to laugh uncontrollably.' I suggest you go back to whoever filled your head with this nonsense and stop wasting my time.'"); + + elseif ( e.message:findi("aerin") ) then + e.self:Say("I don't have time to explain the glass dragon to you. Leave before I get angry."); + if ( questState == 3 ) then + eq.set_global("pov_orb_quest", "4", 1, "H6"); + end + end + + elseif ( questState >= 5 ) then + + if ( e.message:findi("hail") ) then + e.self:Say("I heard what you did for Paralin Notion. That's quite a noble feat indeed. Perhaps we can use your help. However, you'll need to talk to the Captain first. After all, I can't have you walking in the [glass lair] without permission."); + + elseif ( e.message:findi("glass lair") ) then + e.self:Say("It's the prison that [Aerin`Dar] has been encased in for many generations."); + + elseif ( e.message:findi("aerin") ) then + e.self:Say("Aerin`Dar is the crystalline dragon who once roamed the Plane of Valor. During a severe rainstorm it was struck down to the very core of its being. The mighty Aerin`Dar fell from the sky and landed in what is now known as the Glassy Wasteland. Planarian larvae began to infest its body eventually turning its pure heart to evil. Our [company] was dispatched to this region of Valor to eliminate the threat."); + + elseif ( e.message:findi("company") ) then + e.self:Say("My squad of men are a part of Che Virtuson. However, we specifically are a part of Ducee Buled. We fall under the command of Captain Ryglot. Our [mission], for the time being, is simple. But we've run into some problems lately."); + + elseif ( e.message:findi("mission") ) then + e.self:Say("Not so fast, "..e.other:GetName()..". You'll have to speak to the Captain about that. I'm not at liberty to divulge that information at this time. That information is classified. I can tell you, but then I'd have to kill you.' Aaramis laughs. 'Go to Captain Ryglot and he'll be able to fill you in with all the details."); + if ( questState == 5 ) then + eq.set_global("pov_orb_quest", "6", 1, "H24"); + end + end + else + if ( e.message:findi("hail") ) then + e.self:Emote("nods in your direction."); + end + end +end diff --git a/povalor/Paralin_Notion.lua b/povalor/Paralin_Notion.lua new file mode 100644 index 0000000..c2c1305 --- /dev/null +++ b/povalor/Paralin_Notion.lua @@ -0,0 +1,86 @@ +function event_say(e) + + local qglobals = eq.get_qglobals(e.other); + local questState = tonumber(qglobals.pov_orb_quest or 0); + + if ( e.other:HasItem(25596) and e.message:findi("hail") ) then -- A Crystalline Globe + e.self:Say("I knew you'd come through for us "..e.other:GetName()..". I knew from the very beginning. The Battalion salutes you."); + return; + end + if ( questState >= 5 ) then + return; + + elseif ( questState == 4 ) then + + if ( e.message:findi("hail") ) then + e.self:Say("I'm sorry the Master Sergeant was unable to help you. Perhaps you should [prove] yourself before you attempt to jump 'into the fire' so to speak."); + + elseif ( e.message:findi("prove") ) then + e.self:Say("We've been running into a lot of problems lately with the razorfiends and the planarian larvae. Many soldiers have been getting sick because of the infestations that they cause. Capture the hearts of a razorfiend, a crystalline spider and a planarian larvae and bring them back to me. Our squad had enough problems capturing this small razorfiend here. This will become your first so called 'Trial' " .. e.other:GetCleanName() .. ". It should be enough to prove your worth."); + end + + elseif ( questState == 2 or questState == 3 ) then + + if ( e.message:findi("hail") ) then + e.self:Say("You're either [brave], or you're [stupid]."); + + elseif ( e.message:findi("brave") ) then + e.self:Say("That you are. Perhaps you'd be interested in helping our [company]."); + + elseif ( e.message:findi("stupid") ) then + + -- was unable to get this response + --e.self:Say(""); + + elseif ( e.message:findi("company") ) then + + e.self:Say("We're a part of the Battalion of Marr. We're soldiers from Che Virtuson. We were dispatched to this part of the Plane of Valor to eliminate an age old target. Unfortunately, due to some recent events our mission has been placed on hold and our [squad] has been asked to remain behind."); + + elseif ( e.message:findi("squad") ) then + + e.self:Say("We are apart of Ducee Tapferson. Our squad is known for our bravery. We were successful in capturing this [razorfiend] earlier today. You've shown some bravery as well my friend and that is the reason I request your [assistance]."); + + elseif ( e.message:findi("assistance") ) then + + e.self:Say("Many of us here are anxious to leave. Many wish to regroup with the rest of our company. Other wish to go back to the Halls to complete the [Trials]."); + + elseif ( e.message:findi("razorfiend") ) then + + e.self:Say("These vile beasts live in the caves west of here."); + + elseif ( e.message:findi("trials") ) then + + e.self:Say("The Trials are overseen by the Heroes of Marr. It's these Trials that allow us to rise in rank. Only those who have passed the trials are able to enter the Temple of Marr. Now if you wish to aid us I must ask you to do a few [things]."); + + elseif ( e.message:findi("things") ) then + + e.self:Say("You must find the Master Sergeant and tell him that you are here to aid the cause."); + eq.set_global("pov_orb_quest", "3", 1, "H6"); + end + else + if ( e.message:findi("hail") ) then + e.self:Emote("nods in your direction."); + end + end +end + +function event_trade(e) + local questState = tonumber(eq.get_qglobals(e.other).pov_orb_quest or 0); + local item_lib = require("items"); + + if ( item_lib.check_turn_in(e.self, e.trade, { item1 = 25597, item2 = 25598, item3 = 25599 }) ) then -- hearts + + if ( questState >= 4 ) then + + e.self:Emote("looks at you with surprise. 'Very good my friend. You've definitely proven yourself. Find the Master Sergeant. He should be able to help you this time.'"); + -- Confirmed Live Experience + e.other:QuestReward(e.self, {exp = 1}); + if ( questState == 4 ) then + eq.set_global("pov_orb_quest", "5", 1, "H24"); + end + else + e.self:Emote("looks at you in disgust and wonders why you did that."); + end + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/povalor/Polarix_Mudder.lua b/povalor/Polarix_Mudder.lua new file mode 100644 index 0000000..1b68d6b --- /dev/null +++ b/povalor/Polarix_Mudder.lua @@ -0,0 +1,6 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Emote("nods briefly before returning back to his post."); + end +end diff --git a/povalor/Rammoc_Mills.lua b/povalor/Rammoc_Mills.lua new file mode 100644 index 0000000..8abc336 --- /dev/null +++ b/povalor/Rammoc_Mills.lua @@ -0,0 +1,5 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Emote("grumbles under his breath."); + end +end diff --git a/povalor/Randle_Cummings.lua b/povalor/Randle_Cummings.lua new file mode 100644 index 0000000..a362919 --- /dev/null +++ b/povalor/Randle_Cummings.lua @@ -0,0 +1,6 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Say("Hello there, "..e.other:GetName()..". If you seek to rest your laurels and stock up on food or water for the upcoming struggles ahead, I can provide you with any basic supplies you may need."); + end +end diff --git a/povalor/Ranin_Tredbul.lua b/povalor/Ranin_Tredbul.lua new file mode 100644 index 0000000..f99910b --- /dev/null +++ b/povalor/Ranin_Tredbul.lua @@ -0,0 +1,5 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Please leave me be."); + end +end diff --git a/povalor/Regalt_Tripedes.lua b/povalor/Regalt_Tripedes.lua new file mode 100644 index 0000000..b3e2d45 --- /dev/null +++ b/povalor/Regalt_Tripedes.lua @@ -0,0 +1,12 @@ +function event_say(e) + + local qglobals = eq.get_qglobals(e.other); + + if ( e.message:findi("hail") ) then + if ( qglobals.aerindar ) then + e.self:Emote("We've heard about your victory "..e.other:GetName()..". Hopefully our lands will begin to purify once more."); + else + e.self:Emote("remains silent."); + end + end +end diff --git a/povalor/Rogbert_Lilwen.lua b/povalor/Rogbert_Lilwen.lua new file mode 100644 index 0000000..cd879d3 --- /dev/null +++ b/povalor/Rogbert_Lilwen.lua @@ -0,0 +1,7 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("You would do well to be wary when venturing out, there are [rumors] about what lies in the Wasteland."); + elseif ( e.message:findi("rumors") ) then + e.self:Say("I am sorry, but I cannot go into detail. Just protect yourself and be prepared for anything."); + end +end diff --git a/povalor/Rydric_Kane.lua b/povalor/Rydric_Kane.lua new file mode 100644 index 0000000..68bf961 --- /dev/null +++ b/povalor/Rydric_Kane.lua @@ -0,0 +1,6 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Say("I suggest that you leave before you find yourself in trouble. We will guard these weapons to the death, be it your death or ours."); + end +end diff --git a/povalor/Rylan_Tragen.lua b/povalor/Rylan_Tragen.lua new file mode 100644 index 0000000..9fbf656 --- /dev/null +++ b/povalor/Rylan_Tragen.lua @@ -0,0 +1,5 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Hail, strange one. Have you come to explore the wasteland? If you have, I wish you good fortune, but that is not a journey I seek to undertake!"); + end +end diff --git a/povalor/Sergeant_Amon_Tillan.lua b/povalor/Sergeant_Amon_Tillan.lua new file mode 100644 index 0000000..196a650 --- /dev/null +++ b/povalor/Sergeant_Amon_Tillan.lua @@ -0,0 +1,7 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + + e.self:Say("Well met, "..e.other:GetName()..". Do you hear the call of honor as these brave soldiers I teach do? You would do well to learn from the lessons of your ancestors, for valor is its own reward."); + end +end diff --git a/povalor/Sergeant_Gerrin_Bakeside.lua b/povalor/Sergeant_Gerrin_Bakeside.lua new file mode 100644 index 0000000..9cbef04 --- /dev/null +++ b/povalor/Sergeant_Gerrin_Bakeside.lua @@ -0,0 +1,23 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Say("Greetings, Soldier. I'm sorry, if you've come for weapons, what you see here is only for use by the army of Marr. Right now we are not accepting new recruits into [Ducee Lealson.]"); + + elseif ( e.message:findi("Ducee Lealson") ) then + e.self:Say("We are Ducee Lealson, Ducee Lealson is Loyalty! Fyking, Fellon, Rydric, and myself are renowned through these areas for our skill in battle. Each man in Ducee Lealson is not only willing to die for his compatriots, but he considers it an [honor.]"); + + elseif ( e.message:findi("honor") ) then + e.self:Say("Yes, we go where the Hand of Honor points us. Live or die, to serve is an honor. We do not fear our own demise, everyone dies, the men of Ducee Lealson die with honor."); + end +end + +function event_signal(e) + + if ( e.signal == 1 ) then + e.self:Say("Enough soldier! You will serve as it is seen fit to have you serve, the honor of Ducee Lealson does not fade once we leave the battlefield. Your father knew that, you would do well to take after him more."); + eq.signal(208069, 1); -- Fyking_Baer + + elseif ( e.signal == 2 ) then + e.self:Say("Fellon! There are no spies, keep your head man!"); + end +end diff --git a/povalor/Sergeant_Johson_Popoah.lua b/povalor/Sergeant_Johson_Popoah.lua new file mode 100644 index 0000000..3dfaf32 --- /dev/null +++ b/povalor/Sergeant_Johson_Popoah.lua @@ -0,0 +1,22 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + + local questState = tonumber(eq.get_qglobals(e.other).pov_orb_quest or 0); + + if ( questState == 0 ) then + e.self:Say("State your business or leave our [compound]."); + if ( questState == 0 ) then + eq.set_global("pov_orb_quest", "1", 1, "H6"); + end + else + e.self:Say("Leave now before there is bloodshed."); + if ( questState == 1 ) then + eq.set_global("pov_orb_quest", "2", 1, "H6"); + end + end + + elseif ( e.message:findi("compound") ) then + e.self:Say("This is the primary command center for Che Virtuson. We fall under the leadership and guidance of Captain Ryglot. I must now ask you to leave."); + end +end diff --git a/povalor/Sergeant_Lusahn_Matthers.lua b/povalor/Sergeant_Lusahn_Matthers.lua new file mode 100644 index 0000000..f60b9bb --- /dev/null +++ b/povalor/Sergeant_Lusahn_Matthers.lua @@ -0,0 +1,9 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Greetings, "..e.other:GetName()..". I have a little time to chat, we are not due in the [field] for a while. What may I help you with?"); + elseif ( e.message:findi("field") ) then + e.self:Say("The Glassy Wastelands. We work hard to keep the [plight] back from the rest of the Forest, but I fear that is a losing battle."); + elseif ( e.message:findi("plight") ) then + e.self:Say("I am afraid that I am not at liberty to go into depth, even with the little that we know. What I can tell you is that the Wasteland is dangerous; the glass manages to hide terrors that few men outside these walls could bear to speak of, much less see. If you choose to journey know that we will offer you little protection."); + end +end diff --git a/povalor/Sergeant_Sikfaun_Bowah.lua b/povalor/Sergeant_Sikfaun_Bowah.lua new file mode 100644 index 0000000..3c49c76 --- /dev/null +++ b/povalor/Sergeant_Sikfaun_Bowah.lua @@ -0,0 +1,7 @@ +function event_say(e) + + if ( e.message:findi("hail") ) then + e.self:Say("Leave immediately."); + eq.signal(208063, e.other:GetID()); -- Helix_Jeson + end +end diff --git a/povalor/Taggart_Hines.lua b/povalor/Taggart_Hines.lua new file mode 100644 index 0000000..89a7dce --- /dev/null +++ b/povalor/Taggart_Hines.lua @@ -0,0 +1,5 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Emote("sizes you up, 'Well met. I hope you are prepared for what you may face outside of this hall, the safety ends outside these walls.'"); + end +end diff --git a/povalor/Xaven_White.lua b/povalor/Xaven_White.lua new file mode 100644 index 0000000..927e1f3 --- /dev/null +++ b/povalor/Xaven_White.lua @@ -0,0 +1,5 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Hello there. Forgive me for staring, but it seems more and more of your kind have been passing through here each day. You sure are a curious "..e.other:Race().."."); + end +end diff --git a/povalor/Zech_Terrun.lua b/povalor/Zech_Terrun.lua new file mode 100644 index 0000000..48a08d0 --- /dev/null +++ b/povalor/Zech_Terrun.lua @@ -0,0 +1,12 @@ +function event_say(e) + + local qglobals = eq.get_qglobals(e.other); + + if ( e.message:findi("hail") ) then + if ( qglobals.aerindar ) then + e.self:Emote("looks at you humbly. 'I heard about your run in with Aerin`Dar. The Battalion of Marr salutes you."); + else + e.self:Emote("stands at attention."); + end + end +end diff --git a/povalor/a_planarian_larvae.lua b/povalor/a_planarian_larvae.lua new file mode 100644 index 0000000..7a10099 --- /dev/null +++ b/povalor/a_planarian_larvae.lua @@ -0,0 +1,62 @@ +-- this will make them randomly move a very short distance from spawn point and 'burrow' (i.e. disappear) occasionally +-- making them go under the world doesn't work so we move them outside the map. looks weird on showeq but otherwise works + +local x, y, z; +local spawnLocs = {}; + +function event_spawn(e) + eq.set_timer("move", 24000 + math.random(1000, 5000)); + spawnLocs[e.self:GetID()] = { x = e.self:GetX(), y = e.self:GetY(), z = e.self:GetZ() } +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("move"); + eq.pause_timer("burrow"); + else + eq.resume_timer("move"); + eq.resume_timer("burrow"); + end +end + +function event_death(e) + spawnLocs[e.self:GetID()] = nil; +end + +function event_timer(e) + if ( e.self:Charmed() ) then + return; + end + + local l = spawnLocs[e.self:GetID()]; + + if ( e.timer == "move" ) then + if ( l.b == 1 ) then + e.self:MoveTo(l.bx + math.random(-1, 1), l.by + math.random(-1, 1), e.self:GetZ(), -1, false); -- move in place briefly so as to appear to 'burrow' + elseif ( math.random(1, 5) == 1 ) then + eq.stop_timer(e.timer); + eq.set_timer("move", 150); + eq.set_timer("burrow", 7000); + l.bx = e.self:GetX(); + l.by = e.self:GetY(); + e.self:MoveTo(l.bx + math.random(-1, 1), l.by + math.random(-1, 1), e.self:GetZ(), -1, false); -- move in place briefly so as to appear to 'burrow' + l.b = 1; + else + e.self:MoveTo(l.x + math.random(-20, 20), l.y + math.random(-20, 20), l.z, -1, true); + end + + elseif ( e.timer == "burrow" ) then + if ( l.b == 1 ) then + eq.stop_timer(e.timer); + eq.stop_timer("move"); + eq.set_timer("burrow", 40000); + e.self:GMMove(3000, 3000, 0, 0, true, true); -- park mob outside map + l.b = 2; + elseif ( l.b == 2 ) then + eq.stop_timer(e.timer); + e.self:GMMove(l.x, l.y, l.z, math.random(0, 255), true, true); -- return to spawn + eq.set_timer("move", 24000 + math.random(1000, 5000)); + l.b = nil; + end + end +end diff --git a/povalor/player.lua b/povalor/player.lua new file mode 100644 index 0000000..f1b6c40 --- /dev/null +++ b/povalor/player.lua @@ -0,0 +1,50 @@ +function event_click_door(e) + local door_id = e.door:GetDoorID(); + local adUp = eq.get_entity_list():IsMobSpawnedByNpcTypeID(208074); -- #Aerin`Dar + + -- HoH zone-in + if ( door_id == 3 ) then + + local qglobals = eq.get_qglobals(e.self); + + if ( qglobals.aerindar and qglobals.aerindar == "2" ) then + return; + end + + if ( not qglobals.aerindar ) then + e.self:Message(13, "You lack the will to pass through this portal safely."); + else + eq.set_global("aerindar", "2", 5, "F"); + e.self:Message(15, "You have received a character flag!"); + + if ( qglobals.cl_aerindar ) then + eq.delete_global("cl_aerindar"); + end + + if ( e.self:HasZoneFlag(211) == false ) then + e.self:SetZoneFlag(211); + end + end + + -- dragon orb teleporter + elseif ( door_id == 6 and adUp ) then + + e.self:MovePC(208, 352, 2172, 33, 0); + if ( e.self:GetPet().valid and not e.self:GetPet():Charmed() ) then + e.self:GetPet():GMMove(352, 2172, 33, 0); + end + + -- switches to open the glass door + elseif ( door_id == 8 or door_id == 9 ) then + + if ( e.self:GetItemIDAt(0) == 25596 ) then -- A Crystalline Globe in cursor + local door = eq.get_entity_list():GetDoorsByDoorID(2); + door:ForceOpen(e.self); + e.door:ForceOpen(e.self); + end + + -- Aerin`Dar's round floor door + elseif ( door_id == 11 and not adUp ) then + e.door:ForceOpen(e.self); + end +end diff --git a/powater/Essence_of_Water.lua b/powater/Essence_of_Water.lua new file mode 100644 index 0000000..6828192 --- /dev/null +++ b/powater/Essence_of_Water.lua @@ -0,0 +1,68 @@ +local FLAG_LIMIT = 72; + +local flags = 0; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + +function event_signal(e) + rid, gid, cid = nil, nil, nil; + local client = eq.get_entity_list():GetClientByID(e.signal); -- the signal # is the entity ID of a client with kill credit + + if ( client.valid ) then + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + end +end + +function event_spawn(e) + eq.set_timer("depop", 1200000); + flags = 0; +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_say(e) + + if ( ClientCanFlag(e.other) and e.message:findi("hail") ) then + + if ( not e.other:HasItem(29163) and not e.other:HasItem(29165) ) then -- Sphere of Coalesced Water, Quintessence of Elements + e.other:SummonCursorItem(29163); -- Item: Sphere of Coalesced Water + flags = flags + 1; + end + + if ( flags >= FLAG_LIMIT ) then + eq.depop(); + end + end +end diff --git a/powater/a_swarm.lua b/powater/a_swarm.lua new file mode 100644 index 0000000..f5c9625 --- /dev/null +++ b/powater/a_swarm.lua @@ -0,0 +1,19 @@ +function event_combat(e) + + if ( e.joined ) then + + local typ; + if ( e.self:GetZ() > -200 ) then + -- a_young_barracuda, a_young_piranha, a_young_sea_turtle, a_young_swordfish, a_little_frog + typ = eq.ChooseRandom(216255, 216252, 216250, 216249, 216264); + else + typ = eq.ChooseRandom(216254, 216253, 216251); -- a_young_deepwater_kraken, a_young_hraquis, a_young_regrua + end + + local roll = math.random(2, 4); + for i = 1, roll do + eq.spawn2(typ, 0, 0, e.self:GetX() + math.random(-5, 5), e.self:GetY() + math.random(-5, 5), e.self:GetZ(), 0); + end + eq.depop_with_timer(); + end +end diff --git a/powater/encounters/Coirnav.lua b/powater/encounters/Coirnav.lua new file mode 100644 index 0000000..0e6e307 --- /dev/null +++ b/powater/encounters/Coirnav.lua @@ -0,0 +1,236 @@ +--[[ +p1.1[Tue Jul 10 22:49:39 2012] Coirnav the Avatar of Water shouts 'Those that violate my domain will pay. I call upon the power imbued to me by Povar! Come forth my minions of vapor and destroy these intruders.' +p1.2[Tue Jul 10 22:52:35 2012] Coirnav the Avatar of Water shouts 'Those that violate my domain will pay. I call upon the power imbued to me by E`ci! Come forth my minions of ice and destroy these intruders.' +p1.3[Tue Jul 10 22:54:33 2012] Coirnav the Avatar of Water shouts 'Those that violate my domain will pay. I call upon the power imbued to me by Tarew Marr! Come forth minions of water and destroy these intruders.' +p2[Tue Jul 10 22:58:06 2012] Coirnav the Avatar of Water shouts 'Fools you have gotten this far but you will not succeed. Pwelon, Nrinda, and Vamuil kill these intruders!' +10m[Tue Jul 10 22:59:26 2012] Coirnav the Avatar of Water is suddenly surrounded by a slight glow. A low constant humming is heard in the background. +12m[Tue Jul 10 23:01:23 2012] Coirnav the Avatar of Water is now glowing noticeably brighter and the constant humming is getting louder. +p3[Tue Jul 10 23:02:43 2012] Coirnav the Avatar of Water shouts 'Defenders of vapor, ice, and water I call thee to my aid. Destroy the defilers of water.' +14m[Tue Jul 10 23:03:21 2012] Coirnav the Avatar of Water glows to brilliant flash of light that suddenly fades. The constant humming suddenly becomes a deafening roar that also mysteriously fades away. +15m[Tue Jul 10 23:04:20 2012] Coirnav the Avatar of Water shouts 'Violaters of this plane be banished from this domain!' + +[Thu Apr 5 21:44:17 2012] The monstrous creature spasms in its last death throes sending shockwaves through the reef. Corinav the Avatar of Water, empowered by the focus of the Triumvirate, has fallen at the hands of the brave adventurers deep within the reef. +]] +local COIRNAV_TYPE = 216048; -- Coirnav_the_Avatar_of_Water +local GUARDIAN_TYPE = 216053; -- Guardian_of_Coirnav +local PWELON_TYPE = 216236; -- Pwelon_of_Vapor +local NRINDA_TYPE = 216245; -- Nrinda_of_Ice +local VAMUIL_TYPE = 216247; -- Vamuil_of_Water +local VAPORFIEND_TYPE = 216257; -- a_triloun_vaporfiend +local VAPORLING_TYPE = 216256; -- a_triloun_vaporling +local ICEFIEND_TYPE = 216260; -- a_hraquis_icefiend +local ICELING_TYPE = 216259; -- a_hraquis_iceling +local WATERFIEND_TYPE = 216258; -- a_regrua_waterfiend +local WATERLING_TYPE = 216265; -- a_regrua_waterling +local PROJECTION_TYPE = 216266; -- Essence_of_Water +local MONSTROUS_TYPE = 216072; -- The_monstrous + +local COIRNAV_SPAWNID = 365647; +local GUARDIAN_SPAWNID = 366321; + +local SPAWN_LOCS = { + { -829,1017,-501 }, + { -846,1062,-535 }, + { -836,1125,-461 }, + { -795,1108,-523 }, + { -802,1119,-501 }, + { -810,1034,-502 }, + { -898,1041,-523 }, + { -847,1148,-535 }, + { -862,1125,-501 }, + { -798,1067,-501 }, + { -824,1018,-523 }, + { -906,1048,-502 }, + { -870,1141,-523 }, + { -824,1152,-502 }, + { -916,1121,-502 }, + { -835,1075,-461 }, + { -861,998,-502 }, + { -863,1100,-535 }, + { -894,1091,-523 }, + { -882,1013,-501 }, + { -837,1145,-523 }, + { -875,1166,-502 }, + { -794,1059,-523 }, + { -884,1145,-535 }, + { -779,1110,-502 }, +}; + +local phase, kills; + +function SpawnWave(wave) + local t; + if ( wave == 1 ) then + t = VAPORFIEND_TYPE; + elseif ( wave == 2 ) then + t = ICEFIEND_TYPE; + elseif ( wave == 3 ) then + t = WATERFIEND_TYPE; + end + + for i = 1, #SPAWN_LOCS do + if ( not wave or wave > 3 ) then + t = eq.ChooseRandom(VAPORLING_TYPE, ICELING_TYPE, WATERLING_TYPE); + end + eq.spawn2(t, 70, 0, SPAWN_LOCS[i][1], SPAWN_LOCS[i][2], SPAWN_LOCS[i][3], 0); + end +end + +function CoirnavSpawn(e) + eq.get_entity_list():GetSpawnByID(GUARDIAN_SPAWNID):Repop(); + phase = 1; + kills = 0; +end + +function CoirnavSignal(e) + if ( e.signal == 1 ) then + e.self:Shout("Those that violate my domain will pay. I call upon the power imbued to me by Povar! Come forth my minions of vapor and destroy these intruders."); + eq.set_timer("phase1.2", 180000); + eq.set_timer("phase1.3", 300000); + eq.set_timer("warning1", 600000); + eq.set_timer("warning2", 720000); + eq.set_timer("warning3", 840000); + eq.set_timer("fail", 900000); + --eq.set_timer("aoe", 30000); + SpawnWave(1); + eq.spawn2(PWELON_TYPE, 0, 0, -860, 1065, -480, 64); + e.self:SetSpecialAbility(24, 0); -- Will Not Aggro off + e.self:SetSpecialAbility(25, 0); -- Immune to Aggro off + + elseif ( e.signal == 2 ) then + eq.depop_all(PWELON_TYPE); + eq.depop_all(NRINDA_TYPE); + eq.depop_all(VAMUIL_TYPE); + --eq.stop_timer("aoe"); + + e.self:Shout("Fools you have gotten this far but you will not succeed. Pwelon, Nrinda, and Vamuil kill these intruders!"); + + eq.spawn2(PWELON_TYPE, 0, 0, -860, 1065, -480, 64):CastToNPC():SetBaseHP(130000); + eq.spawn2(NRINDA_TYPE, 0, 0, -877, 1095, -480, 64):CastToNPC():SetBaseHP(120000); + eq.spawn2(VAMUIL_TYPE, 0, 0, -860, 1120, -480, 64):CastToNPC():SetBaseHP(155000); + + e.self:SetSpecialAbility(35, 0); -- No Harm from Players off + e.self:SetBodyType(1, false); -- Humanoid + phase = 2; + + elseif ( e.signal == 3 ) then + e.self:Shout("Defenders of vapor, ice, and water I call thee to my aid. Destroy the defilers of water."); + e.self:SetBaseHP(250000); + e.self:BuffFadeAll(); + e.self:WipeHateList(); + phase = 3; + SpawnWave(4); + eq.set_timer("phase3wave", 49000); + end +end + +function CoirnavTimer(e) + + if ( e.timer == "aoe" ) then + -- this makes him cast while untargetable/unaggroable, but apparently he should be awake enough to hit people + e.self:CastSpell(3061, e.self:GetID()); -- Curse of the Triumvirate + return; + elseif ( e.timer == "phase3wave" ) then + SpawnWave(4); + return; + end + + eq.stop_timer(e.timer); + + if ( e.timer == "phase1.2" ) then + e.self:Shout("Those that violate my domain will pay. I call upon the power imbued to me by E`ci! Come forth my minions of ice and destroy these intruders."); + SpawnWave(2); + eq.spawn2(NRINDA_TYPE, 0, 0, -877, 1095, -480, 64); + + elseif ( e.timer == "phase1.3" ) then + e.self:Shout("Those that violate my domain will pay. I call upon the power imbued to me by Tarew Marr! Come forth minions of water and destroy these intruders."); + SpawnWave(3); + eq.spawn2(VAMUIL_TYPE, 0, 0, -860, 1120, -480, 64); + + elseif ( e.timer == "warning1" ) then + eq.zone_emote(0, "Coirnav the Avatar of Water is suddenly surrounded by a slight glow. A low constant humming is heard in the background."); + + elseif ( e.timer == "warning2" ) then + eq.zone_emote(0, "Coirnav the Avatar of Water is now glowing noticeably brighter and the constant humming is getting louder."); + + elseif ( e.timer == "warning3" ) then + eq.zone_emote(0, "Coirnav the Avatar of Water glows to brilliant flash of light that suddenly fades. The constant humming suddenly becomes a deafening roar that also mysteriously fades away."); + + elseif ( e.timer == "fail" ) then + e.self:Shout("Violaters of this plane be banished from this domain!"); + e.self:CastSpell(1099, e.self:GetID()); -- Banishment of the Pantheon + eq.signal(MONSTROUS_TYPE, 1, 2000); + end +end + +function GuardianDeathComplete(e) + eq.signal(COIRNAV_TYPE, 1); + eq.csr_notice(string.format("PoWater Coirnav event started by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end + +function AddDeathComplete(e) + kills = kills + 1; + if ( kills >= (#SPAWN_LOCS * 3) ) then + eq.signal(COIRNAV_TYPE, 2); + end +end + +function MiniBossDeathComplete(e) + if ( phase ~= 2 ) then + return; + end + local elist = eq.get_entity_list(); + if ( not elist:IsMobSpawnedByNpcTypeID(PWELON_TYPE) + and not elist:IsMobSpawnedByNpcTypeID(NRINDA_TYPE) + and not elist:IsMobSpawnedByNpcTypeID(VAMUIL_TYPE) + ) then + eq.signal(COIRNAV_TYPE, 3); + end +end + +function CoirnavDeathComplete(e) + eq.depop_all(VAPORLING_TYPE); + eq.depop_all(ICELING_TYPE); + eq.depop_all(WATERLING_TYPE); + eq.zone_emote(0, "The monstrous creature spasms in its last death throes sending shockwaves through the reef. Corinav the Avatar of Water, empowered by the focus of the Triumvirate, has fallen at the hands of the brave adventurers deep within the reef."); + eq.spawn2(PROJECTION_TYPE, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + eq.signal(PROJECTION_TYPE, e.killer:GetID()); -- e.killer for death_complete is somebody with kill rights, not death blow + eq.csr_notice(string.format("PoWater Coirnav slain by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end + +function MonstrousSignal(e) + + if ( e.signal == 1 ) then + + eq.depop_all(VAPORLING_TYPE); + eq.depop_all(ICELING_TYPE); + eq.depop_all(WATERLING_TYPE); + eq.depop_all(VAPORFIEND_TYPE); + eq.depop_all(ICEFIEND_TYPE); + eq.depop_all(WATERFIEND_TYPE); + eq.depop_all(PWELON_TYPE); + eq.depop_all(NRINDA_TYPE); + eq.depop_all(VAMUIL_TYPE); + eq.depop_with_timer(COIRNAV_TYPE); + + if ( phase == 1 ) then + eq.update_spawn_timer(COIRNAV_SPAWNID, 10800000); + end + eq.csr_notice("PoWater Coirnav event failed"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("Coirnav", Event.spawn, COIRNAV_TYPE, CoirnavSpawn); + eq.register_npc_event("Coirnav", Event.timer, COIRNAV_TYPE, CoirnavTimer); + eq.register_npc_event("Coirnav", Event.signal, COIRNAV_TYPE, CoirnavSignal); + eq.register_npc_event("Coirnav", Event.death_complete, COIRNAV_TYPE, CoirnavDeathComplete); + eq.register_npc_event("Coirnav", Event.death_complete, GUARDIAN_TYPE, GuardianDeathComplete); + eq.register_npc_event("Coirnav", Event.death_complete, VAPORFIEND_TYPE, AddDeathComplete); + eq.register_npc_event("Coirnav", Event.death_complete, ICEFIEND_TYPE, AddDeathComplete); + eq.register_npc_event("Coirnav", Event.death_complete, WATERFIEND_TYPE, AddDeathComplete); + eq.register_npc_event("Coirnav", Event.death_complete, PWELON_TYPE, MiniBossDeathComplete); + eq.register_npc_event("Coirnav", Event.death_complete, NRINDA_TYPE, MiniBossDeathComplete); + eq.register_npc_event("Coirnav", Event.death_complete, VAMUIL_TYPE, MiniBossDeathComplete); + eq.register_npc_event("Coirnav", Event.signal, MONSTROUS_TYPE, MonstrousSignal); +end diff --git a/powater/encounters/Fishlords.lua b/powater/encounters/Fishlords.lua new file mode 100644 index 0000000..a173154 --- /dev/null +++ b/powater/encounters/Fishlords.lua @@ -0,0 +1,225 @@ +local LEZOM1_TYPE = 216020; -- Fishlord_Lezom +local LEZOM2_TYPE = 216284; -- Fishlord_Lezom +local CRAIYK1_TYPE = 216019; -- Fishlord_Craiyk +local CRAIYK2_TYPE = 216283; -- Fishlord_Craiyk +local FEROCIOUS_TYPE = 216268; -- a_ferocious_anglerfish +local FIERCE_TYPE = 216270; -- a_fierce_anglerfish +local FURIOUS_TYPE = 216269; -- a_furious_anglerfish +local REEF_TYPE = 216271; -- a_reef_anglerfish + +local SPAWNS = { + [FEROCIOUS_TYPE] = { -- 3, 6 + [5] = { 216273, 3 }, -- a_stringy_anglerfish + [10] = { 216276, 3 }, -- a_dark_anglerfish + [15] = { 216279, 3 }, -- a_prismatic_anglerfish + [25] = { 216267, 3 }, -- a_master_anglerfish + }, + [FIERCE_TYPE] = { -- 1, 4 + [5] = { 216272, 1 }, -- a_hungry_anglerfish + [10] = { 216277, 1 }, -- a_wicked_anglerfish + [15] = { 216280, 1 }, -- a_superior_anglerfish + [25] = { 216281, 1 }, -- a_king_anglerfish + }, + [FURIOUS_TYPE] = { -- 2, 5 + [5] = { 216274, 2 }, -- a_toughened_anglerfish + [10] = { 216275, 2 }, -- a_foul_anglerfish + [15] = { 216278, 2 }, -- a_prime_anglerfish + [25] = { 216282, 2 }, -- a_supreme_anglerfish + }, +}; +local GRIDS = { + [1] = { + { 58, 351, -367, 128, 25 }, + { 67, 352, -360, -1, 0 }, + { 75, 322, -361, -1, 0 }, + { 76, 273, -361, -1, 0 }, + { 94, 217, -359, -1, 60 }, + }, + [2] = { + { 62, 296, -367, 128, 25 }, + { 94, 217, -359, -1, 60 }, + }, + [3] = { + { 143, 52, -367, 0, 25 }, + { 155, 73, -360, -1, 0 }, + { 154, 87, -362, -1, 0 }, + { 145, 109, -362, -1, 0 }, + { 94, 217, -359, -1, 60 }, + }, + [4] = { + { -240, 332, -368, 128, 25 }, + { -247, 327.5, -361, -1, 0 }, + { -251, 276, -362, -1, 0 }, + { -265, 200, -363, -1, 0 }, + { -269, 157, -362, -1, 60 }, + }, + [5] = { + { -250, 235, -368, 128, 25 }, + { -260, 229, -358, -1, 0 }, + { -266, 196, -362, -1, 0 }, + { -269, 157, -362, -1, 60 }, + }, + [6] = { + { -293, 77, -368, 0, 25 }, + { -270, 69, -358, -1, 0 }, + { -269, 157, -362, -1, 60 }, + }, +}; +local LORD_SPAWNIDS = { -- these are the spawnids for the '1' types; '2' types are scripted spawns but using '2' types for keys + [LEZOM2_TYPE] = 365505, + [CRAIYK2_TYPE] = 365489, +}; +local TRASH_SPAWNIDS = { + [LEZOM2_TYPE] = { 369521, 369522, 369523, 369524 }, + [CRAIYK2_TYPE] = { 369525, 369526, 369527, 369528 }, +}; + +local killsTable = { + [LEZOM2_TYPE] = { FEROCIOUS_TYPE = 0, FIERCE_TYPE = 0, FURIOUS_TYPE = 0 }, + [CRAIYK2_TYPE] = { FEROCIOUS_TYPE = 0, FIERCE_TYPE = 0, FURIOUS_TYPE = 0 } +}; + +function FishlordSay(e) + if ( e.message:findi("hail") ) then + e.self:Say("Be like the water "..e.other:GetName()..". The water spirits have fortold of your coming. I am a fishlord, summoner of the dwellers of the deep."); + elseif ( e.message:findi("dwellers") ) then + e.self:Say("These are great creatures that dwell in the nether reaches of this reef. For 100 platinum I will summon them forth."); + end +end + +function FishlordTrade(e) + local item_lib = require("items"); + + if ( item_lib.check_turn_in(e.self, e.trade, {platinum = 100}, 0) ) then + + local npcType = e.self:GetNPCTypeID(); + local x, y, z; + if ( npcType == LEZOM1_TYPE ) then + npcType = LEZOM2_TYPE; + x, y, z = 94, 217, -359; + else + npcType = CRAIYK2_TYPE; + x, y, z = -269, 157, -362; + end + + killsTable[npcType][FEROCIOUS_TYPE] = 0; + killsTable[npcType][FIERCE_TYPE] = 0; + killsTable[npcType][FURIOUS_TYPE] = 0; + + e.self:Say("Very well, I will summon forth the creatures of the deep. They do not like being disturbed so you must protect me from harm. I am very vulnerable when summoning the dwellers of the deep. If death claims me the summoning will be finished. During the course of the summoning many powerful dwellers will appear. You must watch for them."); + eq.spawn2(npcType, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()):CastToNPC():MoveTo(x, y, z, -1, true); + eq.depop_with_timer(); + eq.get_entity_list():GetSpawnByID(LORD_SPAWNIDS[npcType]):Disable(); + end +end + +function ToggleSpawns(t, state) + local elist = eq.get_entity_list(); + + for _, id in ipairs(TRASH_SPAWNIDS[t]) do + if ( state ) then + elist:GetSpawnByID(id):Enable(); + else + elist:GetSpawnByID(id):Disable(false); + end + end +end + +function WaypointArrive(e) + e.self:Say("Listen, oh spirits of water! I summon forth the dwellers of the deep.' He then begins to hum softly closing his eyes and seemingly settling into a deep focus. Suddenly he shouts a mystical chant saying, 'XAX XAX tomae tomae XAX podiggle podiggle XAX AZKHAZKKKY!"); + e.self:SetRunspeed(0.0); + e.self:SetWalkspeed(0.0); + + ToggleSpawns(e.self:GetNPCTypeID(), true); +end + +function TrashDeathComplete(e) + local npcType = e.self:GetNPCTypeID(); + local spawnID = e.self:GetSpawnPointID(); + local lordType = LEZOM2_TYPE; + + for _, id in ipairs(TRASH_SPAWNIDS[CRAIYK2_TYPE]) do + if ( id == spawnID ) then + lordType = CRAIYK2_TYPE; + break; + end + end + + local kills = killsTable[lordType][npcType] + 1; + killsTable[lordType][npcType] = kills; + --eq.debug("kills == "..kills, 3); + + local t = SPAWNS[npcType][kills]; + + if ( t and eq.get_entity_list():IsMobSpawnedByNpcTypeID(lordType) ) then + local gridNum = t[2]; + if ( lordType == CRAIYK2_TYPE ) then + gridNum = gridNum + 3; + end + + local loc = GRIDS[gridNum][1]; + local npc = eq.spawn2(t[1], 0, 0, loc[1], loc[2], loc[3], loc[4]):CastToNPC(); + npc:SetWanderType(6); + npc:SetPauseType(1); + for _, wp in ipairs(GRIDS[gridNum]) do + npc:AddWaypoint(wp[1], wp[2], wp[3], wp[4], wp[5], false); + end + + if ( kills == 25 ) then + eq.get_entity_list():GetMobByNpcTypeID(lordType):Say("I sense a creature of immense power has been summoned forth. My job here is finished. You all have done very well for mortals."); + EndEvent(lordType); + eq.depop(lordType); + else + eq.get_entity_list():GetMobByNpcTypeID(lordType):Say("A dweller of some power comes, prepare yourself."); + end + end +end + +function FishlordDeathComplete(e) + EndEvent(e.self:GetNPCTypeID()); +end + +function EndEvent(typ) + ToggleSpawns(typ, false); + eq.get_entity_list():GetSpawnByID(LORD_SPAWNIDS[typ]):Enable(); + eq.update_spawn_timer(LORD_SPAWNIDS[typ], 1500000); +end + +function TrashSpawn(e) + eq.set_timer("depop", 180000); +end + +function TrashCombat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function TrashTimer(e) + if ( e.timer == "depop" ) then + eq.depop_with_timer(); + end +end + +function event_encounter_load(e) + eq.register_npc_event("Fishlords", Event.say, LEZOM1_TYPE, FishlordSay); + eq.register_npc_event("Fishlords", Event.trade, LEZOM1_TYPE, FishlordTrade); + eq.register_npc_event("Fishlords", Event.say, CRAIYK1_TYPE, FishlordSay); + eq.register_npc_event("Fishlords", Event.trade, CRAIYK1_TYPE, FishlordTrade); + eq.register_npc_event("Fishlords", Event.death_complete, LEZOM2_TYPE, FishlordDeathComplete); + eq.register_npc_event("Fishlords", Event.death_complete, CRAIYK2_TYPE, FishlordDeathComplete); + eq.register_npc_event("Fishlords", Event.waypoint_arrive, LEZOM2_TYPE, WaypointArrive); + eq.register_npc_event("Fishlords", Event.waypoint_arrive, CRAIYK2_TYPE, WaypointArrive); + eq.register_npc_event("Fishlords", Event.death_complete, FEROCIOUS_TYPE, TrashDeathComplete); + eq.register_npc_event("Fishlords", Event.death_complete, FIERCE_TYPE, TrashDeathComplete); + eq.register_npc_event("Fishlords", Event.death_complete, FURIOUS_TYPE, TrashDeathComplete); + + local trash = { FEROCIOUS_TYPE, FIERCE_TYPE, FURIOUS_TYPE, REEF_TYPE }; + for _, id in ipairs(trash) do + eq.register_npc_event("Fishlords", Event.spawn, id, TrashSpawn); + eq.register_npc_event("Fishlords", Event.combat, id, TrashCombat); + eq.register_npc_event("Fishlords", Event.timer, id, TrashTimer); + end +end diff --git a/powater/encounters/Traps.lua b/powater/encounters/Traps.lua new file mode 100644 index 0000000..3730a31 --- /dev/null +++ b/powater/encounters/Traps.lua @@ -0,0 +1,27 @@ +local TYPES = { 216255, 216252, 216250, 216249, 216264, 216254, 216253, 216251 }; + +function MobSpawn(e) + eq.set_timer("depop", 1200000); +end + +function MobCombat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function MobTimer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_encounter_load(e) + for _, id in pairs(TYPES) do + eq.register_npc_event("Traps", Event.spawn, id, MobSpawn); + eq.register_npc_event("Traps", Event.combat, id, MobCombat); + eq.register_npc_event("Traps", Event.timer, id, MobTimer); + end +end diff --git a/powater/script_init.lua b/powater/script_init.lua new file mode 100644 index 0000000..3ee96f9 --- /dev/null +++ b/powater/script_init.lua @@ -0,0 +1,3 @@ +eq.load_encounter("Coirnav"); +eq.load_encounter("Fishlords"); +eq.load_encounter("Traps"); diff --git a/qcat/#Corrupt_Guard_Helminth.lua b/qcat/#Corrupt_Guard_Helminth.lua new file mode 100644 index 0000000..6af6e43 --- /dev/null +++ b/qcat/#Corrupt_Guard_Helminth.lua @@ -0,0 +1,5 @@ +function event_death(e) + eq.unique_spawn(45009,0,0,-130,425,-36,0); -- #a_sepsis_rat + eq.unique_spawn(45010,0,0,-130,455,-36,128); -- #sepsis_rat + eq.unique_spawn(45011,0,0,-270,441,-38,64); -- #Azibelle_Spavin +end \ No newline at end of file diff --git a/qcat/#Guard_Helminth.lua b/qcat/#Guard_Helminth.lua new file mode 100644 index 0000000..4c0616a --- /dev/null +++ b/qcat/#Guard_Helminth.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Who are you and what are you doing here? This place is not safe. You are to leave here immediately! You do not belong here!"); + elseif(e.message:findi("investigator") and e.message:findi("dead")) then + e.self:Say("So he did not make it, that is a shame. I managed to defeat all of the enemies. It was difficult but they were no match for one of my skill. Did Vegalys send you?"); + elseif(e.message:findi("vegalys sent me")) then + e.self:Say("So Vegalys sent you to check on our progress then? I don't believe you. Prove it!"); + elseif(e.message:findi("ready to complete the mission")) then + eq.unique_spawn(45006,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.unique_spawn(45007,0,0,-49,410,-38,128); + eq.unique_spawn(45008,0,0,-49,330,-38,0); + eq.depop(); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2694}, 0)) then + e.self:Say("Well, well! Vegalys did send you after all. Are you [ready to complete the mission]? I am certain I know where Azibelle is hiding."); + e.other:QuestReward(e.self,0,0,0,0,2694); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/qcat/#a_gelatinous_cube.lua b/qcat/#a_gelatinous_cube.lua new file mode 100644 index 0000000..92e4f7e --- /dev/null +++ b/qcat/#a_gelatinous_cube.lua @@ -0,0 +1,7 @@ +function event_waypoint_arrive(e) + if((e.wp > 15 and e.wp < 34) or (e.wp > 50 and e.wp < 70)) then + e.self:SetRunning(true); + else + e.self:SetRunning(false); + end +end diff --git a/qcat/#a_zombie.lua b/qcat/#a_zombie.lua new file mode 100644 index 0000000..3ed8f79 --- /dev/null +++ b/qcat/#a_zombie.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("H...el...p me..."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18804})) then + e.self:Say("kill me... kill...me") + e.other:QuestReward(e.self,0,0,0,0,0,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/qcat/45200.lua b/qcat/45200.lua new file mode 100644 index 0000000..18e8854 --- /dev/null +++ b/qcat/45200.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("squeaks as it wanders."); + end + end +end \ No newline at end of file diff --git a/qcat/Argyn_Shieldstan.lua b/qcat/Argyn_Shieldstan.lua new file mode 100644 index 0000000..983d1f3 --- /dev/null +++ b/qcat/Argyn_Shieldstan.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You have set foot upon the sacred grounds of the Shrine of Bertoxxulous. You had best have business here or this dirt shall become your grave."); + end +end + +--END of FILE Zone:qcat ID:45016 -- Argyn_Shieldstan +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/qcat/Bait_Masterson.lua b/qcat/Bait_Masterson.lua new file mode 100644 index 0000000..88e01dc --- /dev/null +++ b/qcat/Bait_Masterson.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You know.. I took up fishing because it was a nice, quiet activity. Most of all, I took it up to avoid conversing with strangers. Get the picture?!!"); + elseif(e.message:findi("blessing of prexus")) then + e.self:Say("Prexus!!? Aye!! I once followed the ways of the Ocean Lord. I remember those days. So clear and peaceful were they. I shall make a deal with you, my friend. I shall give up fishing if you give me your guild tunic. With such a tunic I shall once again be compelled to follow the peaceful ways of the Ocean Lord."); + elseif(e.message:findi("donate") or e.message:findi("donation")) then + e.self:Say("If I were to donate, it would not be to a temple which follows the Rainkeeper. There is no greater deity than Prexus, the Oceanlord."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13544})) then + e.self:Say("Nice material!! I feel the ways of Prexus enlightening my soul. Unngh!! Enough of this fishing. Here take my broken fishing pole and toss it to the sea. All hail Prexus!!"); + -- Confirmed Live Factions + e.other:Faction(e.self,242,5); -- Faction: Deepwater Knights + e.other:Faction(e.self,266,1); -- Faction: High Council of Erudin + e.other:Faction(e.self,265,-1); -- Faction: Heretics + e.other:QuestReward(e.self,0,0,0,0,13922,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:qcat ID:10139 -- Bait_Masterson +----------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/qcat/Beggar_Wyllin.lua b/qcat/Beggar_Wyllin.lua new file mode 100644 index 0000000..732a97b --- /dev/null +++ b/qcat/Beggar_Wyllin.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then -- no min faction, worked at scowls + e.self:Say("Greetings! This is no place for a person of your standards. I am but a beggar, which is why I live among the sewer rats. It would be best if you were to leave this dangerous place."); + elseif(e.message:findi("rat king")) then + e.self:Say("Rat King? What nonsense do you speak? That is nothing more than a child's faerie tale!"); + end +end \ No newline at end of file diff --git a/qcat/Bruax_Grengar.lua b/qcat/Bruax_Grengar.lua new file mode 100644 index 0000000..dc2fc2b --- /dev/null +++ b/qcat/Bruax_Grengar.lua @@ -0,0 +1,62 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail " .. e.other:GetCleanName() .. ". I am Bruax Grengar, master necromancer of the Bloodsabers. I assist not only young necromancers with their training but also aid all those Bloodsabers who have chosen to practice the [sorcerous arts]. If you a practitioner of a sorcerous art I can give you instructions to obtain an [outfit and robe] that will assist you in your work. Once you have been properly outfitted I will also assist you in acquiring a [Staff of the Bloodsabers]."); + elseif(e.message:findi("sorcerous arts")) then + e.self:Say("I speak of those who practice the sorcerous arts other than necromancy: the arts of Enchantment, Magery, and Wizardry. It is a common misnomer proclaimed by those uneducated to the ways of the Plague Bringer that only Shadowknights and Necromancers serve Bertoxxulous. In fact this temple alone has members from all walks of life, from tailors, scholars, and blacksmiths to warriors and sorcerers."); + elseif(e.message:findi("outfit and robe")) then + e.self:Say("I have prepared this special curing kit for the crafting of an outfit and robe. The materials required for each article of clothing vary. Do you desire to craft a [scourge sorcerer cap], [scourge sorcerer wristband], [scourge sorcerer gloves], [scourge sorcerer boots], [scourge sorcerer sleeves], [scourge sorcerer pantaloons], or [scourge sorcerer robe]?"); + e.other:SummonCursorItem(17125); -- Item: Curing Kit + elseif(e.message:findi("cap")) then + e.self:Say("To craft a Scourge Sorcerer Cap you will require two [silk thread], klicnik drone bile, and a large king snake skin. Once you have the necessary components combine them in your Curing Kit with this Tattered Cap Pattern."); + e.other:SummonCursorItem(19555); -- Item: Tattered Cap Pattern + elseif(e.message:findi("wristband")) then + e.self:Say("To craft a Scourge Sorcerer Wristband you require a [silk thread], klicnik drone bile, and a king snake skin. Once you have the necessary components combine them in your Curing Kit with this Tattered Wristband Pattern."); + e.other:SummonCursorItem(19558); -- Item: Tattered Wristband Pattern + elseif(e.message:findi("glove")) then + e.self:Say("To craft Scourge Sorcerer Gloves you require two [silk thread], klicnik drone bile, two giant field rat whiskers, and a large king snake skin. Once you have the necessary components combine them in your Curing Kit with this Tattered Glove Pattern."); + e.other:SummonCursorItem(19559); -- Item: Tattered Glove Pattern + elseif(e.message:findi("boot")) then + e.self:Say("To craft Scourge Sorcerer Boots you require two [silk thread], klicnik drone bile, and two large king snake skins. Once you have the necessary components combine them in your Curing Kit with this Tattered Boot Pattern."); + e.other:SummonCursorItem(19561); -- Item: Tattered Boot Pattern + elseif(e.message:findi("sleeve")) then + e.self:Say("To craft Scourge Sorcerer Sleeves you require two [silk thread], klicnik warrior bile, and two large king snake skins. Once you have the necessary components combine them in your Curing Kit with this Tattered Sleeves Pattern."); + e.other:SummonCursorItem(19557); -- Item: Tattered Sleeve Pattern + elseif(e.message:findi("pantaloon")) then + e.self:Say("To craft Scourge Sorcerer Pantaloons you require two [silk thread], klicnik warrior bile, and four large king snake skins. Once you have the necessary components combine them in your Curing Kit with this Tattered Leggings Pattern."); + e.other:SummonCursorItem(19560); -- Item: Tattered Pant Pattern + elseif(e.message:findi("robe")) then + e.self:Say("To craft a Scourge Sorcerer Robe you will require three [silk thread], klicnik noble bile, two giant king snake skins, and a giant whiskered bat fur. Once you have the necessary components combine them in your Curing Kit with this Tattered Robe Pattern."); + e.other:SummonCursorItem(11395); -- Item: Tattered Robe Pattern + elseif(e.message:findi("staff of the bloodsabers")) then + e.self:Say("A Staff of the Bloodsabers is a useful implement for young sorcerers dedicated to Bertoxxulous the Plague Lord. I will assist you in the creation of a staff but first you must complete a task for me. The sorcerers of The Order of Three are supporters of Antonius Bayle IV, the haughty ruler of Qeynos. They lend magical aid to the Knights of Thunder and Priests of Life to identify and capture members of the Bloodsabers. A rather troublesome member of The Order of Three, Larkin Tolman, has recently been spotted at a settlement in the Western Plains of Karana. Find this Larkin Tolman and bring me his head."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20204})) then + e.self:Say("Well done. The Bloodsabers have many enemies within the city of Qeynos and its surrounding regions. You must exercise much caution when not within the safety of our temple here in the Qeynos Catacombs. Take this Rough Bloodsaber Staff and when you have gathered a Giant King Snake Skin, two Gnoll Fangs, and a Giant Fire Beetle Eye, return them to me with this staff and I will complete its construction."); + e.other:Faction(e.self,221,10); -- Faction: Bloodsabers + e.other:Faction(e.self,262,-1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,296,1); -- Faction: Opal Dark Briar + e.other:Faction(e.self,341,-2); -- Faction: Priests of Life + e.other:Faction(e.self,230,1); -- Faction: Corrupted Qeynos Guards + e.other:QuestReward(e.self,0,0,0,0,20203,500); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13915, item2 = 20203, item3 = 19946, item4 = 13251})) then + e.self:Emote("smooths the shaft of the staff, fashions a grip from the giant king snake skin, secures the giant fire beetle eye in a metal fixture and attaches it to the top of the staff. 'Here is your Staff of the Bloodsabers young Scourge Sorcerer. Go now and spread the disease!"); + e.other:Faction(e.self,221,5); -- Faction: Bloodsabers + e.other:Faction(e.self,262,-1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,296,1); -- Faction: Opal Dark Briar + e.other:Faction(e.self,341,-1); -- Faction: Priests of Life + e.other:Faction(e.self,230,1); -- Faction: Corrupted Qeynos Guards + e.other:QuestReward(e.self,0,0,0,0,20264,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:qcat ID:45065 -- Bruax_Grengar +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/qcat/Commander_Kane.lua b/qcat/Commander_Kane.lua new file mode 100644 index 0000000..369c590 --- /dev/null +++ b/qcat/Commander_Kane.lua @@ -0,0 +1,48 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Do you know who I am?! I am the Commander of the Qeynos Guard! Do you think I trod through these sewers to speak with you? If so, then you are quite sadly mistaken."); + elseif(e.message:findi("bloodsabers")) then + e.self:Say("Bloodsabers!? You must be new. Your shrine serves me well. You shall all be rewarded once I rule. No doubt you have not come to waste the time of the future emperor. Are you seeking [new information]"); + elseif(e.message:findi("new information")) then + e.self:Say("I have gotten word from Guard McCluskey that the young knights of the Temple of Life and the Hall of Thunder have been holding contests to see who is the fleetest. Every so often, they send a young knight to run the paths of the Plains of Karana and back. Lone young knights are easy targets for experienced Bloodsabers."); + elseif(e.message:findi("shrine of bertoxxulous")) then + e.self:Say("All information about that accursed place is confidential. If you find any information pertaining to the Shrine of Bertoxxulous you must bring it to me immediately."); + elseif(e.message:findi("antonius")) then + e.self:Say("How dare you speak the name of Antonius Bayle around me! Brother he may be, but ruler he is not! We could not possibly have been sired by the same person. The empire of Qeynos would stretch as far as Freeport if I were in control. Emperor Kane... I like the sound of that!"); + elseif(e.message:findi("milea")) then + e.self:Say("Milea Clothspinner is an old flame of mine. She would have made a fine wife. Unfortunately for me, she chose to become a fine warrior."); + elseif(e.message:findi("nerissa")) then + e.self:Say("You keep your eyes off that sweet, innocent girl! She is under my care."); + elseif(e.message:findi("the disease is spreading")) then + e.self:Say("Good to see you, my friend. S'ragg said he would be sending his finest. I pray he is right. Do you feel like [going to Highpass] or [going home]?"); + elseif(e.message:findi("going home")) then + e.self:Say("Just as well. Get the shrine to send me someone of strength. No more cowards!"); + elseif(e.message:findi("going to Highpass")) then + e.self:Say("You will be taking this with you. Give this marked bottle to a man called Barn Bloodstone. He is known to hang around a place called the Golden Rooster. He has a package for me. He will then give you instructions to your next destination. Now, be off! Time is of the essence!"); + e.other:SummonCursorItem(13130); -- Item: Blackburrow Stout + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18808})) then + e.self:Say("Good Work, friend. I still need the other parts. You'd best hope no other gets to them first and returns them to me first. If they do you get no payment."); + e.other:Faction(e.self,273,100,0); -- Faction: Kane Bayle + e.other:Faction(e.self,230,50,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,262,-15,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,219,-10,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,221,15,0); -- Faction: Bloodsabers + e.other:QuestReward(e.self,0,3,3,0,0,500); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18809})) then + e.self:Say("Thank you for your help. Soon Antonius' agents will be exterminated like roaches. May the virus of the Plaguebringer run through your veins."); + e.other:Faction(e.self,273,100,0); -- Faction: Kane Bayle + e.other:Faction(e.self,230,50,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,262,-15,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,219,-10,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,221,15,0); -- Faction: Bloodsabers + e.other:QuestReward(e.self,0,3,3,0,0,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/qcat/Garuc_Anehm.lua b/qcat/Garuc_Anehm.lua new file mode 100644 index 0000000..a9e4cb5 --- /dev/null +++ b/qcat/Garuc_Anehm.lua @@ -0,0 +1,96 @@ +function event_say(e) + if(e.message:findi("Hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then -- not sure of exact faction, responds between 0 and Scowls + e.self:Say("Welcome to the Shrine of Bertoxxulous! You appear to be [new to the shrine]. I do not remember seeing you around."); + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + elseif(e.message:findi("new to the shrine")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("New blood to spread Bertoxxulous' disease? We presently need the help of a [young shadowknight]. There are certain deeds which must be carried out."); + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + elseif(e.message:findi("young shadowknight")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Then let your supreme task be the extermination of the Priests of Life. Know that they threaten the will of our Lord Bertoxxulous. For every fallen paladin and cleric of the Temple of Life. you shall rise within our ranks. So... do you [loathe paladins]?"); + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + elseif(e.message:findi("loathe paladins")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("As do we all. The paladins of Qeynos come from either the Hall of Thunder or the Temple of Life. We have put a bounty upon their heads. Destroy these knights and return either the Order of Thunder or the prayer beads of these inferior men. There has even been a report from [Commander Kane]."); + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + elseif(e.message:findi("commander kane")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Kane Bayle is the Commander of the Qeynos Guard. He has found it advantageous to befriend the Bloodsabers. We share a [common goal]. He assists us in many ways. He has some new information to reveal. Go and tell him you are a Bloodsaber. Do not speak with him while he is [on duty]!"); + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + elseif(e.message:findi("common goal")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Kane Bayle and the leaders of this shrine all wish to overthrow the rule of Antonius Bayle. He, for power, and we for the glory of Bertoxxulous. From this city, our diseased lord shall appear and tread across the land spitting death from his mouth and deforming the land. His glory shall be eternal!"); + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + elseif(e.message:findi("on duty")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Kane is quartered within the gatehouse of Qeynos while on duty. At times he can also be found within this shrine."); + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + -- Requires Indifferent or better Faction + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13134})) then -- Hurrietas Bloody Dress + e.self:Say("Hahaha.. I see you actually killed a respected, well-known citizen of Qeynos. No loss for them, but you are certainly a gain for our shrine. Maybe this shall do you some good. If not now, then surely later. You may need it when the Qeynos Guards hunt you down."); + -- Confirmed Live Factions + e.other:Faction(e.self,221,10); -- Faction: Bloodsabers + e.other:Faction(e.self,262,-1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,296,1); -- Faction: Opal Dark Briar + e.other:Faction(e.self,341,-2); -- Faction: Priests of Life + e.other:Faction(e.self,230,1); -- Faction: Corrupt Qeynos Guards + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(1053,2104, 2106, 2108, 2111, 2112, 13301, 15235),500);--Updated to issue random patchwork armor, or a rat-shaped ring or Invis Vs Undead + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13908})) then -- Busted Prayer Beads (*Trintles Prayer Beads) + e.self:Say("You fool! Brother Trintle was our mole within the Priests of Life. Now you have killed him. For this you shall die!"); + -- Confirmed Live Factions + e.other:Faction(e.self,221,-50); -- Faction: Bloodsabers + e.other:Faction(e.self,262,7); -- Faction: Guards of Qeynos + e.other:Faction(e.self,296,-5); -- Faction: Opal Dark Briar + e.other:Faction(e.self,341,12); -- Faction: Priests of Life + e.other:Faction(e.self,230,-1,0); -- Faction: Corrupt Qeynos Guards + eq.attack(e.other:GetName()) + -- Requires Amiably or better Faction + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13296})) then -- Prayer Beads (*Temple of Life Beads) + e.self:Say("Fine work! One less threat to our shrine. Take this. It shall help you become a greater asset to our shrine. Go forth and spread the disease."); + -- Confirmed Live Factions + e.other:Faction(e.self,221,10); -- Faction: Bloodsabers + e.other:Faction(e.self,262,-1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,296,1); -- Faction: Opal Dark Briar + e.other:Faction(e.self,341,-2); -- Faction: Priests of Life + e.other:Faction(e.self,230,1); -- Faction: Corrupt Qeynos Guards + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(1053,2116,2122,5013,5014,5016,5023,6011,13002,13001,13301,17001),500); -- Item(s): Small Patchwork Tunic (2116), Small Tattered Gloves (2122), Rusty Short Sword (5013), Rusty Axe (5014), Rusty Broad Sword (5016), Rusty Two Handed Sword (5023), Rusty Mace (6011), Torch (13002), Small Lantern (13003), Wrist Pouch (17001), Rat Shaped Ring (13301) + -- Requires Amiably or better Faction + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13287})) then -- Order of Thunder (*Order Of Thunder Medal) + e.self:Say("Fine work! One less threat to our shrine. Take this. It shall help you become a greater asset to our shrine. Go forth and spread the disease."); + -- Confirmed Live Factions + e.other:Faction(e.self,221,10); -- Faction: Bloodsabers + e.other:Faction(e.self,262,-1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,296,1); -- Faction: Opal Dark Briar + e.other:Faction(e.self,341,-2); -- Faction: Priests of Life + e.other:Faction(e.self,230,1); -- Faction: Corrupt Qeynos Guards + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(1053,2116,2122,5013,5014,5016,5023,6011,13002,13001,13301,17001),500); -- Item(s): Small Patchwork Tunic (2116), Small Tattered Gloves (2122), Rusty Short Sword (5013), Rusty Axe (5014), Rusty Broad Sword (5016), Rusty Two Handed Sword (5023), Rusty Mace (6011), Torch (13002), Small Lantern (13003), Wrist Pouch (17001), Rat Shaped Ring (13301) + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:qcat ID:45070 -- Garuc_Anehm +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/qcat/Illie_Roln.lua b/qcat/Illie_Roln.lua new file mode 100644 index 0000000..5b8899b --- /dev/null +++ b/qcat/Illie_Roln.lua @@ -0,0 +1,44 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("A healthy young " .. e.other:Race() .. " you appear to be. The Plague Bringer has not yet blessed you with his greatest of gifts. What can I do for you young one?"); + elseif(e.message:findi("gauntlet")) then + e.self:Say("To assemble scourge warrior gauntlets you will need to obtain two bricks of crude iron and smelt them in a [forge] with a Water Flask and this crude Gauntlet Mold. Once that is done combine the Crude Iron Gauntlets with a Ruined Wolf Pelt and two Gnoll Finger Bones in the Mail Assembly Kit."); + e.other:SummonCursorItem(19633); -- Item: Crude Gauntlets Mold + elseif(e.message:findi("boot")) then + e.self:Say("To assemble scourge warrior boots you will need to obtain two bricks of crude iron and smelt them in a [forge] with a Water Flask and this crude Boot Mold. Once that is done combine the Crude Iron Boots with two Ruined Wolf Pelts, and two Gnoll Foot Bones in the Mail Assembly Kit."); + e.other:SummonCursorItem(19634); -- Item: Crude Boot Mold + elseif(e.message:findi("bracer")) then + e.self:Say("To assemble a scourge warrior bracer you will need to obtain a brick of crude iron and smelt it in a [forge] with a Water Flask and this Crude Bracer Mold. Once that is done, combine the Crude Iron Bracer with a Ruined Wolf Pelt and a Gnoll Ulna Bone in the Mail Assembly Kit."); + e.other:SummonCursorItem(19632); -- Item: Crude Bracer Mold + elseif(e.message:findi("helm")) then + e.self:Say("To assemble a Scourge Warrior Helm you will need to obtain two bricks of crude iron and smelt them in a [forge] with a Water Flask and this Crude Helm Mold. Once that is done combine the Crude Iron Helm with a Ruined Wolf Pelt and a Gnoll Skull in the Mail Assembly Kit."); + e.other:SummonCursorItem(19631); -- Item: Crude Helm Mold + elseif(e.message:findi("greave")) then + e.self:Say("To assemble scourge warrior greaves you will need to obtain two bricks of crude iron and smelt them in a [forge] with a Water Flask and this Crude Greaves Mold. Once that is done combine the Crude Iron Greaves with two Low Quality Wolf Pelts and two Gnoll Tibia in the Mail Assembly Kit."); + e.other:SummonCursorItem(19636); -- Item: Crude Greaves Mold + elseif(e.message:findi("vambrace")) then + e.self:Say("To assemble scourge warrior vambraces you will need to obtain two bricks of crude iron and smelt them in a [forge] with a Water Flask and this Crude Vambrace Mold. Once that is done combine the Crude Iron Vambraces with a Low Quality Wolf Pelt and two Gnoll Humerus Bones in the Mail Assembly Kit."); + e.other:SummonCursorItem(19635); -- Item: Crude Vambrace Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("To assemble a scourge warrior breastplate you will need to obtain four bricks of crude iron and smelt them in a [forge] with a Water Flask and this Crude Breastplate Mold. Once that is done combine the Crude Iron Breastplate with a Medium Quality Wolf Pelt, a Gnoll Sternum, and a Gnoll Ribcage in the Mail Assembly Kit."); + e.other:SummonCursorItem(19637); -- Item: Crude Breastplate Mold + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20205})) then + e.self:Say("Ah, so you are in need of a suit of armor fitting a young scourge warrior of the Bloodsabers. I will assist you. You will use this Mail Assembly Kit to construct the pieces of armor. Each piece will require different materials for its proper construction. Do you seek to assemble [Gauntlets of the Scourge Warrior], [Boots of the Scourge Warrior], a [Bracer of the Scourge Warrior], a [Helm of the Scourge Warrior], [Greaves of the Scourge Warrior], [Vambraces of the Scourge Warrior], or a [Breastplate of the Scourge Warrior]?"); + e.other:QuestReward(e.self,0,0,0,0,17124); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20177, item2 = 19946})) then + e.self:Say("Excellent work. Use this sword to further our mission."); + e.other:QuestReward(e.self,0,0,0,0,20262,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/qcat/Kurne_Rextula.lua b/qcat/Kurne_Rextula.lua new file mode 100644 index 0000000..92b001e --- /dev/null +++ b/qcat/Kurne_Rextula.lua @@ -0,0 +1,65 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the new order of life, the life of service to our diseased Lord, Bertoxxulous. Did you encounter any of my [pets] on the way here? I hope not."); + elseif(e.message:findi("pets")) then + e.self:Say("My pets are the skeleton guardians of these catacombs. Some have been behaving erratically since the arrival of [Drosco]."); + elseif(e.message:findi("drosco")) then + e.self:Say("Drosco used to be a loyal member of our shrine, until we learned the truth. The truth was that he was a mole from the Knights of Thunder. It appears they are assisting the Temple of Life in their pursuit of our eradication. Drosco was apprehended and boiled alive. I turned his boiled body into a zombie to march these halls. Now he must be stopped. He has begun to [compromise the shrine's location]."); + elseif(e.message:findi("compromise")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The problem is, he was strong in Karana's faith. And as sometimes is the case, there is a resonance from his deity. This causes him to wander in and out of our hidden shrine and I believe it also interferes with my control of the other pets. Please find him and destroy him. Bring me back the note I placed upon his body. Go!!"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("While the Bloodsabers appreciate your past contributions to Bertoxxulous and our cause, we do not feel you can be trusted with vital information yet."); + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + elseif(e.message:findi("new task")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I have been working with a man named Lord Grimrot. We are attempting to raise an army of undead in the Plains of Karana. When the time is right, we shall attack from within as well as from beyond the walls of Qeynos. This army needs one more commander. I must find a Bloodsaber to [retrieve the commander]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("While the Bloodsabers appreciate your past contributions to Bertoxxulous and our cause, we do not feel you can be trusted with vital information yet."); + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + elseif (e.message:findi("retrieve the commander")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I have searched for the appropriate man... Sir Lucan of Freeport, Field Marshal Ralem, Marshal Anrey of Rivervale, even Commander Kane Bayle. Any of them would do, but they are either inaccessible or share a common goal with us. So I have decided Trumpy Irontoe is the one. Any former member of the [Irontoe Brigade] has a wealth of military strategies. Kill him and bring me his head. Kane will not be pleased, but, it must be done."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("While the Bloodsabers appreciate your past contributions to Bertoxxulous and our cause, we do not feel you can be trusted with vital information yet."); + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + elseif (e.message:findi("Irontoe Brigade")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The Irontoe Brigade was a legendary military unit hailing from the dwarven city of Kaladim. After a dangerous assault, where more than three quarters of the unit met their bloody fate, the brigade disbanded and left for parts unknown. In Fish's Bar, in Qeynos, you can find one of them, Trumpy Irontoe."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("While the Bloodsabers appreciate your past contributions to Bertoxxulous and our cause, we do not feel you can be trusted with vital information yet."); + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18805})) then + e.self:Say("Good work! You shall rise quickly in our ranks of evil. Let no man stand in your way and never betray the shrine or you to will join our collection of undead. You can also assist me with a [new task]."); + e.other:Faction(e.self,221,10); -- Faction: Bloodsabers + e.other:Faction(e.self,262,-1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,296,1); -- Faction: Opal Dark Briar + e.other:Faction(e.self,341,-2); -- Faction: Priests of Life + e.other:Faction(e.self,230,1); -- Faction: Corrupt Qeynos Guards + e.other:QuestReward(e.self,0,math.random(5),0,0,eq.ChooseRandom(17002,15343),1000); -- Item: Belt Pouch, Spell: Siphon Strength + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12136})) then + e.self:Say("Incredible!! You have slain one of the greatest warriors in Qeynos!! He must have been full of grog. No doubt he drank most of his skill away. Now I shall cast a spell and strip the flesh from his skull and.. Presto!! Take this skull to Lord Grimrot somewhere in the Plains of Karana. He will be in the center of a field of skeletons. If he is not there, wait for his return. He must return eventually."); + e.other:Faction(e.self,221,10); -- Faction: Bloodsabers + e.other:Faction(e.self,262,-1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,296,1); -- Faction: Opal Dark Briar + e.other:Faction(e.self,341,-2); -- Faction: Priests of Life + e.other:Faction(e.self,230,1); -- Faction: Corrupt Qeynos Guards + e.other:QuestReward(e.self,0,0,0,0,12137,1000); -- Item: Dwarf Skull + elseif(e.other:GetFaction(e.self) > 4) then + e.self:Say("I'm... erm, not quite sure what to do with this, but... thanks, I guess."); + end + item_lib.return_items(e.self, e.other, e.trade, false); +end diff --git a/qcat/Lyris_Moonbane.lua b/qcat/Lyris_Moonbane.lua new file mode 100644 index 0000000..080a28a --- /dev/null +++ b/qcat/Lyris_Moonbane.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("assignment")) then + e.self:Say("We have just the thing for your friends back home. It will take some doing, but the pay off will be lovely indeed. In that jar you must combine 4 substances. You'll need two portions of a [goblin..source], one portion of [green river sludge], and one [portion of an experimental nature] that an agent of ours is working on. Bring the mixture back to me and we'll speak again."); + elseif(e.message:findi("goblin source")) then + e.self:Say("The goblins of Antonica are known for their filthy habits and unclean practices. They often carry a menagerie of diseases and conditions. A more concentrated form of this aspect of goblin life cannot be found anywhere else but in the sewers of their citadel in the Sepent Spine. They must have workers who maintain the sewers. Find them and find the substance."); + elseif(e.message:findi("green river sludge")) then + e.self:Say("The ogres of Oggok don't spend much time on sanitation, so naturally their kind harbors many diseases. This is easily apparent in the river that runs near their city, Greenblood. Down at the very bottom of the river is where the ancient plagues have come to rest and hibernate. Once the sludge is mixed in with the other substances, those glorious blessings of Bertoxxulous will most assuredly awaken."); + elseif(e.message:findi("portion of an experimental nature")) then + e.self:Say("We have an agent studying in Freeport. Well, she actually isn't in Freeport proper but rather under it, in the sewers. Her name is Driana Poxsbourne. When you find her, tell her I have sent you for the substance. She will most likely have a task for you to complete before she can give you the fourth portion. Obey her."); + elseif(e.message:findi("deliver")) then + e.self:Say("You'll need to find the source of the kobold water supply and pour the substance into it. Once you do that, the disease will infest whatever living organisms it comes in contact with so do yourself a favor and leave the area quickly. You can then take the empty jar to your master for your reward."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18721})) then -- Blood Stained Note + e.self:Say("So, you wish to to walk with the dead, eh? The army of the Plaguebringer is quietly amassing its diseased soldiers in the shadows and sewers of Norrath. Go to Brother Bruax. He will turn you into something useful, I hope."); + e.other:Faction(e.self,221,100); -- Bloodsabers + e.other:Faction(e.self,262,-15); -- Guards of Qeynos + e.other:Faction(e.self,296,10); -- Opal Dark Briar + e.other:Faction(e.self,341,-25); -- Priest of Life + e.other:Faction(e.self,230,5); -- Corrupt Qeynos Guards + e.other:QuestReward(e.self,0,0,0,0,13552,20); -- Dark Stained Purple Robe* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1792})) then -- Heavy Locked Chest + e.self:Emote("examines the lock on the chest and pulls a black key from a pouch at her hip. The lock clicks open. Her eyes widen as she carefully opens the chest, revealing a pile of platinum coins and a small note. After admiring the coins she takes the note and reads it. The necromancer glances up, then at her spectral pet who then hands you a glass jar. She says, 'Are you ready for your first [assignment], " .. e.other:Race() .. "?"); + e.other:QuestReward(e.self,0,0,0,0,17060); -- Thick Glass Jar + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1795})) then -- Sealed Jar + e.self:Emote("'s eyes light up with childish glee as she takes the jar containing the disgusting and deadly substance. From her pouch she removes a gob of putty and a gem carved into the likeness of a flying insect. After sticking the putty to the lid of the jar, she mashes the carved gem into the putty and hands the jar back to you. She then says, 'This is enchant the substance. You must then [deliver] the substance."); + e.other:QuestReward(e.self,0,0,0,0,1799); -- Harbinger of Bertoxxulous + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qcat/Malka_Rale.lua b/qcat/Malka_Rale.lua new file mode 100644 index 0000000..39f39b5 --- /dev/null +++ b/qcat/Malka_Rale.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Whew! I thought you were one of Hanns' goons. These sewers are a mess, you never know what is going to turn up next. I really wish I could get out of here."); + elseif(e.message:findi("hanns")) then + e.self:Say("Hanns runs the Circle of Unseen Hands. They had an item someone hired me to.. reacquire. I managed to get the item, stealing it right from the heart of the guild hall. The problem is, I had to carve a way out, and left a few extra holes in several of Hanns' people. I have been trapped down here in these stinking catacombs and sewers for too long now, and I do not think I can get out of here without some help."); + elseif(e.message:findi("help")) then + e.self:Say("Ok! I am trusting you. Take this pouch to Vilnius in West Karana. Last word I had from him, he was hanging out near one of the bandit camps. Be careful, since he does not know you. Just give him the pouch, and tell him I was..delayed. While you are doing that, I will be thinking of a way to get out of this slimehole. With any luck, the Circle will learn the pouch is out of Qeynos, and will assume I got away. That means they won't be looking for me here."); + e.other:SummonCursorItem(28014); -- Item: Stanos' Pouch + end +end + +--END of FILE Quest by: Solid11 Zone:qcat ID:45095 -- Malka_Rale +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/qcat/Nomaria_Doseniar.lua b/qcat/Nomaria_Doseniar.lua new file mode 100644 index 0000000..fc348c9 --- /dev/null +++ b/qcat/Nomaria_Doseniar.lua @@ -0,0 +1,37 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then -- need exact faction, only tested 0 (indiff) and scowls + e.self:Say("Welcome! It is good to see our disciples can still outsmart the guards of Qeynos and make it to the Shrine of Bertoxxulous. Our ranks are best filled with disciples such as yourself. We have need of you. Do you wish to serve the Lord of Disease or not?"); + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + elseif(e.message:findi("wish.* serve")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Aye! That is good. Of late, we have heard news of a message that will be sent to the Treefolk of the Jaggedpine. Antonius Bayle will send word to the Jaggedpine that certain requests will be met. We must intercept this message. That is all you need to know. Go and find Antonius Bayle's messenger, Gharin, He should have the message. Get it by any means necessary and return it to me. Go now!"); + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + elseif(e.message:findi("or not")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("We are not in the business of providing safe haven for cowards. Begone, and may your courage be found amongst the dead!"); + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + end +end + +function event_trade(e) + local item_lib =require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18807})) then -- Sealed Letter [Note To Jaggedpine - real] + e.self:Say("Good work, child of the plague. Now take this forged note to Te'Anara of the Jaggedpine Treefolk. Be sure to watch your back, now. The guards of Qeynos surely know who you are by now. They will not stop to ask questions."); + -- confirmed live factions + e.other:Faction(e.self,221,50); -- Bloodsabers + e.other:Faction(e.self,262,-7); -- Guards of Qeynos + e.other:Faction(e.self,296,5); -- Opal Dark Briar + e.other:Faction(e.self,341,-12); -- Priest of Life + e.other:Faction(e.self,230,2); -- Corrupt Qeynos Guards + e.other:QuestReward(e.self,0,math.random(10),0,0,18806,100); -- Sealed Letter [Note To Jaggedpine - fake] + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qcat/Perkon_Malok.lua b/qcat/Perkon_Malok.lua new file mode 100644 index 0000000..4a94722 --- /dev/null +++ b/qcat/Perkon_Malok.lua @@ -0,0 +1,18 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18850})) then --Blood Stained Note + e.other:Faction(e.self,221,100); --Bloodsabers + e.other:Faction(e.self,262,-15); --Guards of Qeynos + e.other:Faction(e.self,296,10); --Opal Dark Briar + e.other:Faction(e.self,341,-25); --Priest of Life + e.other:Faction(e.self,230,5); --Corrupt Qeynos Guards + e.other:QuestReward(e.self,0,0,0,0,13595,20); --Stained Purple Robe* + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/qcat/Reania_Jukle.lua b/qcat/Reania_Jukle.lua new file mode 100644 index 0000000..0928ae4 --- /dev/null +++ b/qcat/Reania_Jukle.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". What can I help you with?"); + elseif(e.message:findi("what is the ink of the dark")) then + e.self:Say("Ink of the Dark, you say? That isn't an everyday item, you know. In fact, I can't remember the last time someone requested it. I have given up keeping any here with me. You are going to need to find your own supply now. Sorry."); + elseif(e.message:findi("find the ink of the dark") or e.message:findi("find your own supply")) then + e.self:Say("The ink is the blood of a dark scribe. Tempt him and give him this vial. He should cooperate."); + e.other:SummonCursorItem(10626); -- Item: Empty Ink Vial + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18851})) then --Blood Stained Note + e.other:Faction(e.self,221,100); --Bloodsabers + e.other:Faction(e.self,262,-15); --Guards of Qeynos + e.other:Faction(e.self,296,10); --Opal Dark Briar + e.other:Faction(e.self,341,-25); --Priest of Life + e.other:Faction(e.self,230,5); --Corrupt Qeynos Guards + e.other:QuestReward(e.self,0,0,0,0,13596,20); --Dirty Purple Robe* + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- EOF Zone: qcat ID: 45082 NPC: Reania_Jukle +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/qcat/Rihtur_Fullome.lua b/qcat/Rihtur_Fullome.lua new file mode 100644 index 0000000..8e5c2ff --- /dev/null +++ b/qcat/Rihtur_Fullome.lua @@ -0,0 +1,44 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then -- not sure of exact faction, responds between 0 and Scowls + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! I hope the trek into our shrine has not scarred you in any way. Our defenses have been increased lately. Many of the citizens have heard rumors about our shrine. I say it is all due to that [soldier]."); + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + elseif(e.message:findi("soldier")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The soldier I refer to is Commander Kane Bayle. The supreme officer himself. Don't get me wrong. I trust Kane. He has quite a black heart. I just don't trust that girl, [Nerissa]."); + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + elseif(e.message:findi("nerissa")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Nerissa Clothspinner. Her sister was a good friend of Kane's. When she left Qeynos to venture into the world, she asked Kane to watch over the girl. Now Kane tries to hide from this child the fact that he is allied with our church. I do not think he has hidden it well. I have told the others. but they do not believe me. I do not care. I have my own [plans]."); + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + elseif(e.message:findi("plan")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Nerissa is well protected by Kane. She will no doubt attempt to inform someone of her suspicions, most likely her sister, Milea. You must find Milea Clothspinner and kill her. No word of our operations must leak out. Return with proof of Milea's death and we shall see to a reward."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("While the Bloodsabers appreciate your past contributions to Bertoxxulous and our cause, we do not feel you can be trusted with vital information yet."); + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13302}, 0)) then + e.self:Say("You have done a truly wicked deed. Good work! Milea was a prestigious member of the Hall of Steel and a friend to the Knights of Truth. It is better that she now fertilizes the flowers of the Plains of Karana. Here. A fitting reward for such a deed."); + e.other:Faction(e.self,221,10); --Bloodsabers + e.other:Faction(e.self,262,-1); --Guards of Qeynos + e.other:Faction(e.self,296,1); --Opal Dark Briar + e.other:Faction(e.self,341,-2); --Priest of Life + e.other:Faction(e.self,230,1); --Corrupt Qeynos Guards + e.other:QuestReward(e.self,{exp = 1000}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qcat/Rocthar_Bekesna.lua b/qcat/Rocthar_Bekesna.lua new file mode 100644 index 0000000..04d6c3e --- /dev/null +++ b/qcat/Rocthar_Bekesna.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I've little time for banter, unless you have come to me for training as a [new warrior] of the Bloodsabers move along."); + elseif(e.message:findi("new warrior")) then + e.self:Say("A warrior want to be is more like it. You've got a lot of work to do if you're going to be a valued member of the temple of Bertoxxulous, the Plague Bringer. That pompous ruler Antonius Bayle IV has this city in a tight grip with the support of our enemies, the temples of Rodcet Nife and Karana. It is not safe for us to walk the streets of Qeynos openly. You must learn to hold your tongue when not within the walls of our temple here in the Qeynos Catacombs. Should the Qeynos Guards discover your devotion to the Plague Bringer they would surely execute you. We have enemies all about and you must [learn to defend] yourself."); + elseif(e.message:findi("learn to defend")) then + e.self:Say("Take this note to Illie Roln. She will help get you outfitted in a suit of armor. Once you have been properly outfitted return to me and I will tell you how you can make yourself useful. I have a [small task] in mind."); + e.other:SummonCursorItem(20205); -- Item: Note to Illie Roln + elseif(e.message:findi("small task")) then + e.self:Say("The Priests of Life and Knights of Thunder often travel the roads from Qeynos carrying messages for the farmers of the Plains of Karana and the Knights of Truth in Freeport on the opposite coast of Antonica. We have recently been sending Bloodsabers to the Plains of Karana in search of a possible location for a new hidden temple should the need arise. One of the messengers of the Knights of Thunder has alerted the peasants of the plains the possibility of a Bloodsaber presence there and is using them to track our motions. Find the messenger, Lukas Hergo, and bring me his head."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18853})) then --Blood Stained Note + e.other:Faction(e.self,221,100); --Bloodsabers + e.other:Faction(e.self,262,-15); --Guards of Qeynos + e.other:Faction(e.self,296,10); --Opal Dark Briar + e.other:Faction(e.self,341,-25); --Priest of Life + e.other:Faction(e.self,230,5); --Corrupt Qeynos Guards + e.other:QuestReward(e.self,0,0,0,0,13598,20); --Ruined Training Tunic* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20175})) then + e.self:Say("Well done " .. e.other:GetCleanName() .. ". Now take this Rusty Scourge Warrior Broadsword to a forge and sharpen it with a sharpening stone. It may take you several attempts if you are unfamiliar with the process. Once that is done take the Tarnished Scourge Warrior Sword and a Giant King Snake Skin to Illie Roln and he will put the finishing touches on the weapon."); + e.other:Faction(e.self,221,10); -- Faction: Bloodsabers + e.other:Faction(e.self,262,-1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,296,-1); -- Faction: Opal Dark Briar + e.other:Faction(e.self,341,-2); -- Faction: Priests of Life + e.other:Faction(e.self,230,1); -- Faction: Corrupt Qeynos Guards + e.other:QuestReward(e.self,0,0,0,0,20176,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qcat/Ronn_Castekin.lua b/qcat/Ronn_Castekin.lua new file mode 100644 index 0000000..1ffde4a --- /dev/null +++ b/qcat/Ronn_Castekin.lua @@ -0,0 +1,11 @@ +function event_death_complete(e) + e.self:Say("Argh!.. Mer.. o..na.. it's.. not.. your fault.. arhhh..."); +end + +function event_waypoint_arrive(e) + if((e.wp > 19 and e.wp < 40) or (e.wp > 100 and e.wp < 120)) then + e.self:SetRunning(true); + else + e.self:SetRunning(false); + end +end diff --git a/qcat/Sragg_Bloodheart.lua b/qcat/Sragg_Bloodheart.lua new file mode 100644 index 0000000..b13399a --- /dev/null +++ b/qcat/Sragg_Bloodheart.lua @@ -0,0 +1,33 @@ +function event_signal(e) + e.self:Say("I will hear no more excuses, Tovax! Enjoy eternal pain and suffering!"); + eq.attack_npc_type(45040); --Tovax Vmar +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18706})) then --Stained Cloth Note + e.self:Say("Ah, another would-be soldier for the army of the Plaguebringer. Unmuz has just lost a few of his men, he'll have plenty of work for you. I'm sure. Begone!"); + e.other:Faction(e.self,221,100); --Bloodsabers + e.other:Faction(e.self,262,-15); --Guards of Qeynos + e.other:Faction(e.self,296,10); --Opal Dark Briar + e.other:Faction(e.self,341,-25); --Priest of Life + e.other:Faction(e.self,230,5); --Corrupt Qeynos Guards + e.other:QuestReward(e.self,0,0,0,0,13598,20); --Ruined Training Tunic* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18802})) then --A Sealed Letter (Letter to Opal) + e.self:Say("What have you brought me, worm? Hmm... This is disappointing. That Tovax has failed us for the last time. Your loyalty to Bertoxxulous and the Bloodsabers has been noted. Now, if you will excuse me a moment..."); + e.other:Faction(e.self,221,50); -- Faction: Bloodsabers + e.other:Faction(e.self,262,-7); -- Faction: Guards of Qeynos + e.other:Faction(e.self,296,5); -- Faction: Opal Dark Briar + e.other:Faction(e.self,341,-12); -- Faction: Priests of Life + e.other:Faction(e.self,230,2); -- Faction: Corrupt Qeynos Guards + e.other:QuestReward(e.self,0,0,0,0,14007,100); -- Potion of Light Healing + eq.unique_spawn(45040,0,0,-321,415,-38,64); -- NPC: Tovax Vmar + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/qcat/Teydar.lua b/qcat/Teydar.lua new file mode 100644 index 0000000..15e45e7 --- /dev/null +++ b/qcat/Teydar.lua @@ -0,0 +1,28 @@ +-- Part of SK Epic 1.0 + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello " .. e.other:GetCleanName() .. ", it's good to see another shadowknight around here. I'm Teydar. I've made it my life to fashion suitable scabbards and sheaths for our order."); + elseif(e.message:findi("decrepit sheath")) then + e.self:Say("The object you desire is very difficult to fashion. Nearly impossible, really. All I can offer to do is try. The real difficulty is the contents that give the sheath its power. They have to be of an almost equal evil. I think some kind of decrepit hide and a drake spine, along with a bar of enchanted platinum, should prove enough to make this item."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if( e.other:GetFactionValue(e.self) >= -88) then -- Faction: True Spirit + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14372, item2 = 14371, item3 = 16507})) then + e.self:Say("I did it! The pieces you got me were perfect! It took a huge effort on my part to craft this, of course. It saddens me that I'm unable to keep one of my best works, but a deal is a deal. There is honor among shadowknights."); + e.other:Faction(e.self,404, 5); -- Faction: True Spirit + e.other:QuestReward(e.self,0,0,0,0,14366); + end + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Quest by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/qcat/Torin_Krentar.lua b/qcat/Torin_Krentar.lua new file mode 100644 index 0000000..e38671a --- /dev/null +++ b/qcat/Torin_Krentar.lua @@ -0,0 +1,46 @@ +-- Bertoxxulous cleric quest armor + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("The dead are watching you young one, yet you are safe under their otherworldly gaze. Is there something I can do for you?"); + elseif(e.message:findi("gauntlet")) then + e.self:Say("To assemble pestilence priest gauntlets you will need to obtain two bricks of crude iron and smelt them in a forge with a Water Flask and this crude Gauntlet Mold. Once that is done combine the Crude Iron Gauntlets with a Large King Snake Skin and two Gnoll Finger Bones in the Mail Assembly Kit."); + e.other:SummonCursorItem(19633); -- Item: Crude Gauntlets Mold + elseif(e.message:findi("boot")) then + e.self:Say("To assemble pestilence priest boots you will need to obtain two bricks of crude iron and smelt them in a forge with a Water Flask and this crude Boot Mold. Once that is done combine the Crude Iron Boots with two Large King Snake Skins, and two Gnoll Foot Bones in the Mail Assembly Kit."); + e.other:SummonCursorItem(19634); -- Item: Crude Boot Mold + elseif(e.message:findi("bracer")) then + e.self:Say("To assemble a pestilence priest bracer you will need to obtain a brick of crude iron and smelt it in a forge with a Water Flask and this Crude Bracer Mold. Once that is done, combine the Crude Iron Bracer with a Large King Snake Skin and a Gnoll Ulna Bone in the Mail Assembly Kit."); + e.other:SummonCursorItem(19632); -- Item: Crude Bracer Mold + elseif(e.message:findi("helm")) then + e.self:Say("To assemble a pestilence priest helm you will need to obtain two bricks of crude iron and smelt them in a forge with a Water Flask and this Crude Helm Mold. Once that is done combine the Crude Iron Helm with a Large King Snake Skin and a Gnoll Skull in the Mail Assembly Kit."); + e.other:SummonCursorItem(19631); -- Item: Crude Helm Mold + elseif(e.message:findi("greaves")) then + e.self:Say("To assemble pestilence priest greaves you will need to obtain two bricks of crude iron and smelt them in a forge with a Water Flask and this Crude Greaves Mold. Once that is done combine the Crude Iron Greaves with two Giant King Snake Skins and two Gnoll Tibia in the Mail Assembly Kit."); + e.other:SummonCursorItem(19636); -- Item: Crude Greaves Mold + elseif(e.message:findi("vambrace")) then + e.self:Say("To assemble pestilence priest vambraces you will need to obtain two bricks of crude iron and smelt them in a forge with a Water Flask and this Crude Vambrace Mold. Once that is done combine the Crude Iron Vambraces with a Giant King Snake Skin and two Gnoll Humerus Bones in the Mail Assembly Kit."); + e.other:SummonCursorItem(19635); -- Item: Crude Vambrace Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("To assemble a pestilence priest breastplate you will need to obtain four bricks of crude iron and smelt them in a forge with a Water Flask and this Crude Breastplate Mold. Once that is done combine the Crude Iron Breastplate with a Giant King Snake Skin, a Gnoll Sternum, and a Gnoll Ribcage in the Mail Assembly Kit."); + e.other:SummonCursorItem(19637); -- Item: Crude Breastplate Mold + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20207})) then + e.self:Say("Well met young disciple of Bertoxxulous. Perhaps one day you shall serve the Plague Lord in his realm, but for now you will serve the Bloodsabers, his mortal agents on Norrath. The armor you seek must be assembled using this Mail Assembly Kit. The materials necessary to construct the armor vary depending on the piece being crafted. Do you wish to craft [Gauntlets] of the Pestilence Priests, [Boots] of the Pestilence Priests, a [Bracer] of the Pestilence Priests, a [Helm] of the Pestilence Priests, [Greaves] of the Pestilence Priests, [Vambraces] of the Pestilence Priests, or a [Breastplate] of the Pestilence Priests?"); + e.other:QuestReward(e.self,0,0,0,0,17124); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20199, item2 = 19946})) then + e.self:Emote("fashions a grip from the giant king snake skin and polishes the mace with a strange dark substance. 'Wield it with pride young priest, may you spread the disease!"); + e.other:Faction(e.self,221,5); -- Faction: Bloodsabers + e.other:Faction(e.self,262,-1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,296,-1); -- Faction: Opal Dark Briar + e.other:Faction(e.self,341,-2); -- Faction: Priests of Life + e.other:Faction(e.self,230,1); -- Faction: Corrupt Qeynos Guards + e.other:QuestReward(e.self,0,0,0,0,20261,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qcat/Tovax_Vmar.lua b/qcat/Tovax_Vmar.lua new file mode 100644 index 0000000..c492365 --- /dev/null +++ b/qcat/Tovax_Vmar.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + eq.set_timer("Tovax",10000); +end + +function event_timer(e) + if(e.timer == "Tovax") then + e.self:Say("Huh? What the... oh, no... S'ragg! PLEASE! NO! Bertoxxulous save me!"); + eq.signal(45091,1); -- NPC: Sragg Bloodheart + eq.stop_timer("Tovax"); + end +end \ No newline at end of file diff --git a/qcat/Trenon_Callust.lua b/qcat/Trenon_Callust.lua new file mode 100644 index 0000000..9dd9708 --- /dev/null +++ b/qcat/Trenon_Callust.lua @@ -0,0 +1,18 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18852})) then --Blood Stained Note + e.other:Faction(e.self,221,100); --Bloodsabers + e.other:Faction(e.self,262,-15); --Guards of Qeynos + e.other:Faction(e.self,296,10); --Opal Dark Briar + e.other:Faction(e.self,341,-25); --Priest of Life + e.other:Faction(e.self,230,5); --Corrupt Qeynos Guards + e.other:QuestReward(e.self,0,0,0,0,13597,20); --Dark Purple Robe* + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/qcat/Unmuz_Tukore.lua b/qcat/Unmuz_Tukore.lua new file mode 100644 index 0000000..aae79ea --- /dev/null +++ b/qcat/Unmuz_Tukore.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Your eyes betray your eagerness and your naivety young one. I am Unmuz Tukore. Scourge Knight of the Bloodsabers. If you have come seeking the [training as a Shadowknight] then I will offer you guidance."); + elseif(e.message:findi("training as a shadowknight")) then + e.self:Say("We Scourge Knights of the Bloodsabers, often refered to as shadowknights by those less knowledgeable of our sect, are gifted by Bertoxxulous with prowess in combat and powers over the spirits and bodies of the dead. It is through discipline, training, and devotion to the Plague Lord that we are granted our powers. You must first equip yourself with a [suit of armor] to defend you in battle from the weapons of our [enemies]."); + elseif(e.message:findi("suit of armor")) then + e.self:Say("Take this note to Wellis Pestule. He will assist you in obtaining your armor. Once you have been properly outfitted return to me. I will allow you to assist me with a [pressing matter]."); + e.other:SummonCursorItem(20206); -- Item: Note to Wellis Pestule + elseif(e.message:findi("pressing matter")) then + e.self:Say("The Knights of Thunder, the order of paladins loyal to Karana, the Storm Lord, have been paying close attention for signs of us Bloodsabers in the streets of Qeynos. By orders of Antonius Bayle known disciples of the Plague Lord are to be executed by the Knights of Thunder. A particular knight, Grennet Stormhands, has recently discovered the loyalties of a Bloodsaber member that held a valuable position among the merchants of Qeynos. Grennet is to be hunted and slain for our loss. Find this Knight of Thunder and bring me his head."); + elseif(e.message:findi("enemies")) then + e.self:Say("The Knights of Thunder and the Priests of Life are our primary foes. and the power behind the throne of Antonius Bayle IV. If it were not for their presence this city would have been claimed in the name of the Plague Lord long ago. Instead we are forced to hide our temple in the catacombs and move through the sewers to avoid the patrols of Qeynos Guards in the streets. Be mindful of your words when not within the walls of this temple. The Qeynos Guards would execute you for your allegiance to the Bloodsabers."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20186})) then + e.self:Say("Excellent, the Knights of Thunder must learn that by beginning an inquisition of the Bloodsabers they are effectively declaring war. Take this Rusty Scourge Knight Saber to a forge and sharpen it with a sharpening stone. It may take you several attempts if you are unfamiliar with the process. Once that is done take the Tarnished Scourge Knight Saber and a Giant King Snake Skin to Wellis Pestule and he will put the finsihing touches on the weapon."); + e.other:Faction(e.self,221,10); -- Faction: Bloodsabers + e.other:Faction(e.self,262,-1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,296,1); -- Faction: Opal Dark Briar + e.other:Faction(e.self,341,-2); -- Faction: Priests of Life + e.other:Faction(e.self,230,1); -- Faction: Corrupt Qeynos Guards + e.other:QuestReward(e.self,0,0,0,0,20187,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:qcat ID:45068 -- Unmuz_Tukore +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/qcat/Vin_Moltor.lua b/qcat/Vin_Moltor.lua new file mode 100644 index 0000000..39510b6 --- /dev/null +++ b/qcat/Vin_Moltor.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Heh?? .. BURRP!.. Leave me be will ya."); + elseif(e.message:findi("paw")) then + e.self:Say("Paw ya say? Yeah.. Yeah .. I got this ratty old thing still. You want it? Its yours for a Bottle of Kalish and hm.. .. How bad you want it? Hm.. Two.. No no.. Three Gold.. Er.. NO! Wait. Pie.. Yes! Rat Ear Pie is what I want.. Three Bottles of Kalish and a Rat Eat Pie. If you want the Paw that is my price."); + elseif(e.message:findi("ring")) then + e.self:Say("Rings? I don't know anything about no rings... My [father] prob'ly sold them or lost them. They could be anywhere."); + elseif(e.message:findi("father")) then + e.self:Say("My father was a drunk and a loser just like me. He traveled all of Antonica, though. He even went to Odus once or twice, I think. He died a long time ago."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "What are you trying to do, cheat me?! I need three bottles of Kalish and a rat ear pie before I'll give up the paw." + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13016, item2 = 13016, item3 = 13016, item4 = 13192},1,text)) then + e.self:Say("Ah. Come to ol'Vin my dear sweet Kalish.. Mmmm.. And Rat Ear Pie.. I am going to eat and drink like a KING! Huh? Oh.. The Paw.. Here you go.. Hope it brings you more luck then it did me.."); + e.other:QuestReward(e.self,0,0,0,0,17014); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if((e.wp > 15 and e.wp < 34) or (e.wp > 50 and e.wp < 70)) then + e.self:SetRunning(true); + else + e.self:SetRunning(false); + end +end diff --git a/qcat/Wellis_Pestule.lua b/qcat/Wellis_Pestule.lua new file mode 100644 index 0000000..d6fdb1d --- /dev/null +++ b/qcat/Wellis_Pestule.lua @@ -0,0 +1,45 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You do not yet bear the sweet aroma of death and decay that the Plague Bringer bestows upon his most faithful servants. What is it that you seek from Wellis?"); + elseif(e.message:findi("gauntlet")) then + e.self:Say("To assemble scourge knight gauntlets you will need to obtain two bricks of crude iron and smelt them in a [forge] with a Water Flask and this crude Gauntlet Mold. Once that is done combine the Crude Iron Gauntlets with a Ruined Wolf Pelt and two Decaying Finger Bones in the Mail Assembly Kit."); + e.other:SummonCursorItem(19633); -- Item: Crude Gauntlets Mold + elseif(e.message:findi("boot")) then + e.self:Say("To assemble scourge knight boots you will need to obtain two bricks of crude iron and smelt them in a [forge] with a Water Flask and this crude Boot Mold. Once that is done combine the Crude Iron Boots with two Ruined Wolf Pelts, and two Decaying Foot Bones in the Mail Assembly Kit."); + e.other:SummonCursorItem(19634); -- Item: Crude Boot Mold + elseif(e.message:findi("bracer")) then + e.self:Say("To assemble a scourge knight bracer you will need to obtain a brick of crude iron and smelt it in a [forge] with a Water Flask and this Crude Bracer Mold. Once that is done, combine the Crude Iron Bracer with a Ruined Wolf Pelt and a Decaying Ulna Bone in the Mail Assembly Kit."); + e.other:SummonCursorItem(19632); -- Item: Crude Bracer Mold + elseif(e.message:findi("helm")) then + e.self:Say("To assemble a scourge knight helm you will need to obtain two bricks of crude iron and smelt them in a [forge] with a Water Flask and this Crude Helm Mold. Once that is done combine the Crude Iron Helm with a Ruined Wolf Pelt and a Decaying Skull in the Mail Assembly Kit."); + e.other:SummonCursorItem(19631); -- Item: Crude Helm Mold + elseif(e.message:findi("greave")) then + e.self:Say("To assemble scourge knight greaves you will need to obtain two bricks of crude iron and smelt them in a [forge] with a Water Flask and this Crude Greaves Mold. Once that is done combine the Crude Iron Greaves with two Low Quality Wolf Pelts and two Decaying Tibia in the Mail Assembly Kit."); + e.other:SummonCursorItem(19636); -- Item: Crude Greaves Mold + elseif(e.message:findi("vambrace")) then + e.self:Say("To assemble scourge knight vambraces you will need to obtain two bricks of crude iron and smelt them in a [forge] with a Water Flask and this Crude Vambrace Mold. Once that is done combine the Crude Iron Vambraces with a Low Quality Wolf Pelt and two Decaying Humerus Bones in the Mail Assembly Kit."); + e.other:SummonCursorItem(19635); -- Item: Crude Vambrace Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("To assemble a scourge knight breastplate you will need to obtain four bricks of crude iron and smelt them in a [forge] with a Water Flask and this Crude Breastplate Mold. Once that is done combine the Crude Iron Breastplate with a Medium Quality Wolf Pelt, a Decaying Sternum, and a Decaying Ribcage in the Mail Assembly Kit."); + e.other:SummonCursorItem(19637); -- Item: Crude Breastplate Mold + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20206})) then + e.self:Say("Welcome to the Bloodsabers young Scourge Knight. I will help prepare you for your spreading of the disease. You must use this Mail Assembly Kit to construct the pieces of your armor. Each piece will require different materials for its construction. Will you craft [Gauntlets of the Scourge Knight], [Boots of the Scourge Knight], a [Bracer of the Scourge Knight], a [Helm of the Scourge Knight], [Greaves of the Scourge Knight], [Vambraces of the Scourge Knight], or a [Breastplate of the Scourge Knight]?"); + e.other:QuestReward(e.self,0,0,0,0,17124); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20188, item2 = 19946})) then + e.self:Emote("Wellis Pestule fashions a grip out of the giant king snake skin, sharpens the edge of the blade to be razor sharp, and polishes the weapon with a strange blood like substance."); + e.self:Say("A fine weapon for a Knight of the Bloodsabers. Go now and spread the Disease!"); + e.other:QuestReward(e.self,0,0,0,0,20260); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/qcat/Xeture_Demiagar.lua b/qcat/Xeture_Demiagar.lua new file mode 100644 index 0000000..f6d4ae1 --- /dev/null +++ b/qcat/Xeture_Demiagar.lua @@ -0,0 +1,50 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("I have much to do here for the defense of our Temple and the appeasing of our patron Bertoxxulous, the Plague Lord. If the Plague Lord has gifted you with the desire to [serve his will] as a priest of the Bloodsabers I will assist in your training. If not, then leave me now and do not interrupt me again."); + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + elseif(e.message:findi("serve his will")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("By spreading the disease, decay, and destructive powers of the Plague Lord you will in turn be gifted with great insight and power. First however you must learn to survive in this city, surrounded by those who would see you destroyed for your faith. Take this note to Torin Krentar. He will instruct you on how to acquire a suit of armor to protect you from the weapons of our [enemies]."); + e.other:SummonCursorItem(20207); -- Item: Note to Torin Krentar + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + elseif(e.message:findi("enemies")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("The self-righteous ruler of this city, Antonius Bayle IV, is backed by the Knights of Thunder, paladins and clerics of the Storm Lord Karana, and the Temple Life, paladins and clerics of the Prime-Healer, Rodcet Nife. Be wary when not within the security of our temple here in the Qeynos Catacombs, should the Qeynos Guards discover you allegiances they would have you executed. Once you have been properly armored return to me and I will give you [further instruction]."); + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + elseif(e.message:findi("further instruction")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("The Priests of Life, those who claim allegiance to the Prime Healer, Rodcet Nife, have proven to be a large obstacle in our conversion of the people of Qeynos to the ways of the Plague Bringer. Lately a Priest of Life by the name of Rolon Banari has been campaigning amongst the beggars and sickly, a social group from which we have gained many converts. Find this meddling priest and bring me his head."); + else + e.self:Say("The lair of the Bloodsabers is no place for you... begone, or be dead!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18716})) then --Tattered Note + e.self:Say("Hmmm. Another rat has found its way to my doorstep, huh? Well, we may have use for you. Go find Rihtur, maybe he has an errand for you."); + e.other:Faction(e.self,221,100); --Bloodsabers + e.other:Faction(e.self,262,-15); --Guards of Qeynos + e.other:Faction(e.self,296,10); --Opal Dark Briar + e.other:Faction(e.self,341,-25); --Priest of Life + e.other:Faction(e.self,230,5); --Corrupt Qeynos Guards + e.other:QuestReward(e.self,0,0,0,0,13598,100); --Ruined Training Tunic* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20197})) then + e.self:Say("You have done well, " .. e.other:GetCleanName() .. ". Take this Rusty Bloodsaber Mace to a forge and clean it up with a Sharpening Stone. It may take you several attempts to get all the rust off if you are not familiar with the process. Once that is done take the Refined Bloodsaber Mace to Torin Krentar with a Giant King Snake Skin and he will put the finishing touches on the weapon."); + e.other:Faction(e.self,221,10); -- Faction: Bloodsabers + e.other:Faction(e.self,262,-1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,296,-1); -- Faction: Opal Dark Briar + e.other:Faction(e.self,341,-2); -- Faction: Priests of Life + e.other:Faction(e.self,230,1); -- Faction: Corrupt Qeynos Guards + e.other:QuestReward(e.self,0,0,0,0,20198); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qcat/Zaen_Kalystir.lua b/qcat/Zaen_Kalystir.lua new file mode 100644 index 0000000..350da91 --- /dev/null +++ b/qcat/Zaen_Kalystir.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Shrine of the Diseased! You will be repaid for your service when your soul crosses the void into Bertoxxulous' waiting arms. Are you available to [do His bidding], or are you [too busy]?"); + elseif(e.message:findi("do His bidding")) then + e.self:Say("That is good. We need you to go and speak with [Commander Kane Bayle] of the Qeynos Militia. You will find him at the gatehouse. Tell him that the disease is spreading. Now go."); + elseif(e.message:findi("Kane")) then + e.self:Say("Commander Kane Bayle is a new member of the Shrine of Bertoxxulous. He will assist us in turning the city of Qeynos from thunder to plague."); + elseif(e.message:findi("too busy")) then + e.self:Say("Then be off and spread the disease."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:qcat ID:45069 -- Zaen_Kalystir +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/qcat/a_dread_corpse.lua b/qcat/a_dread_corpse.lua new file mode 100644 index 0000000..e34551a --- /dev/null +++ b/qcat/a_dread_corpse.lua @@ -0,0 +1,7 @@ +function event_waypoint_arrive(e) + if((e.wp > 19 and e.wp < 40) or (e.wp > 100 and e.wp < 120)) then + e.self:SetRunning(true); + else + e.self:SetRunning(false); + end +end diff --git a/qcat/a_gelatinous_cube.lua b/qcat/a_gelatinous_cube.lua new file mode 100644 index 0000000..d0ebaf4 --- /dev/null +++ b/qcat/a_gelatinous_cube.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("absorbs a discarded item into its corrosive body."); + end + end +end \ No newline at end of file diff --git a/qcat/an_investigator.lua b/qcat/an_investigator.lua new file mode 100644 index 0000000..5599058 --- /dev/null +++ b/qcat/an_investigator.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("coughs and struggles to move. 'There were... too many... too strong.'"); + elseif(e.message:findi("too late")) then + e.self:Emote("gasps clutching a wound and says, 'Their magic was too powerful. Necromancers. Undead. Cursed knights of an unholy god. They left when they thought I was dead. But even now their curses sap the last of my life. I made it as far as I could. If Helminth lives, tell him [I am dead]. Please complete the mission. Bring this Azibelle to justice. Avenge me.'"); + eq.depop_with_timer(); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2694}, 0)) then + e.self:Say("Vegalys sent you. I'm done for. Guard Helminth found a false wall. We stepped through it. We were ambushed. I didn't see where Helminth went. He disappeared. I knew we were overwhelmed. I ran and feigned death but I knew [it was too late]."); + eq.unique_spawn(45005,0,0,-49,378,-39,128); + e.other:QuestReward(e.self,0,0,0,0,2694); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/qey2hh1/Basil.lua b/qey2hh1/Basil.lua new file mode 100644 index 0000000..073ef63 --- /dev/null +++ b/qey2hh1/Basil.lua @@ -0,0 +1,16 @@ +function event_spawn(e) + eq.set_timer(1,1200000); + e.self:SetRunning(true); +end + +function event_timer(e) + eq.depop(); +end + +function event_combat(e) + if(e.joined == true) then + e.self:Say("To the death!!"); + eq.signal(12082,1); + eq.signal(12154,1); -- NPC: Frostbite + end +end diff --git a/qey2hh1/Brenzl_McMannus.lua b/qey2hh1/Brenzl_McMannus.lua new file mode 100644 index 0000000..0df2089 --- /dev/null +++ b/qey2hh1/Brenzl_McMannus.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, traveler! It is good to see new faces in our fishing village. I am Brenzl McMannus. I am quite talented with wood and string. I sell the finest nets and bows in the land. Have a glance.") + elseif(e.message:findi("halas")) then + e.self:Say("Halas is the mighty city of the barbarians of the North. It lies among the Everfrost Peaks.") + elseif(e.message:findi("frostbite")) then + e.self:Say("Frostbite is our trusty wolf. We found him as a pup.") + elseif(e.message:findi("ulrich")) then + e.self:Say("He is my brother and the oldest of my siblings.") + elseif(e.message:findi("misla")) then + e.self:Say("She is my sister.") + elseif(e.message:findi("einhorst")) then + e.self:Say("He is my father. We hail from Halas.") + elseif(e.message:findi("sera")) then + e.self:Say("She is my sister and the youngest of the clan.") + elseif(e.message:findi("lars")) then + e.self:Say("He is my brother.") + elseif(e.message:findi("junth")) then + e.self:Say("He is my brother.") + elseif(e.message:findi("wolves of the north")) then + e.self:Say("The Wolves of the North are the barbarian warriors of Halas. All of us in Clan McMannus are members. Mess with us and you mess with the Wolves of the North.") + elseif(e.message:findi("mother")) then + e.self:Say("Unfortunately, she passed away a year ago. She was killed while defending our dogs from a giant. Do not ask our father, Einhorst, about our mother, Helsa. He does not need to be reminded.") + end +end \ No newline at end of file diff --git a/qey2hh1/Brother_Chintle.lua b/qey2hh1/Brother_Chintle.lua new file mode 100644 index 0000000..78c12fa --- /dev/null +++ b/qey2hh1/Brother_Chintle.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Blessed are the followers of [Rodcet Nife]. Do you [seek the answers to life]?"); + elseif(e.message:findi("rodcet")) then + e.self:Say("He is the preserver of life. Go to Qeynos. Visit the Temple of Life. Join us."); + elseif(e.message:findi("answers")) then + e.self:Say("Take this. I urge you to visit the Temple of Life in Qeynos. The answers can be found therein."); + e.other:SummonCursorItem(18830); + elseif(e.message:findi("oil")) then + e.self:Say("Oh! Do you have the blessed oil? [Brother Estle] has been waiting for it. He shall be here soon or you can find him at a merchant's homestead opposite this side of the path."); + elseif(e.message:findi("bertoxxulous")) then + e.self:Say("You speak of the spawn of all disease. Seek no more knowledge of this evil lord. Know only that his way can lead only to eternal damnation."); + elseif(e.message:findi("trintle")) then + e.self:Say("Brother Trintle is a member of my order, the Priests of Life. I take his watch from time to time. The last I saw of him, he was met by some lady named Nomaria Dosenar. She appeared to be a cleric of some kind, but I have never seen her in Qeynos. Perhaps she is new to the Knights of Thunder."); + elseif(e.message:findi("estle")) then + e.self:Say("Brother Estle spends most of his time at the merchant's homestead opposite this tree. He is one of the young acolytes sent by the Temple of Life to assist the residents of the plains, as am I."); + end +end diff --git a/qey2hh1/Brother_Estle.lua b/qey2hh1/Brother_Estle.lua new file mode 100644 index 0000000..3f969a9 --- /dev/null +++ b/qey2hh1/Brother_Estle.lua @@ -0,0 +1,48 @@ +-- npc - Brother Estle +-- class - all +-- zone - West Karana +-- reward - Spell: Inspire Fear + +function event_waypoint_arrive(e) + if(e.wp == 1) then + e.self:Say("I believe here is where I am to wait for the [blessed oil]."); + elseif(e.wp == 2 or e.wp == 5) then + e.self:Say("Cleanse your souls, sinners! The way of life is found through the [Prime Healer]. Repent and join us!"); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, child of life. The way of the [Prime Healer] shall set you free and cleanse your soul. I hope to see you at [mass]."); + elseif(e.message:findi("prime healer")) then + e.self:Say("Rodcet Nife is the Prime Healer. His way is the path of healing and life. There can be no true life until your soul is healed by healing others. This will take you into the eternal when your time comes."); + elseif(e.message:findi("mass")) then + e.self:Say("Mass is not being held out here as yet. I am waiting for the [blessed oil] from the Temple of Life. You may attend services there."); + elseif(e.message:findi("blessed oil")) then + e.self:Say("The blessed oil is necessary during services. It is blessed by High Priestess Jahnda at the [Temple of Life]. If you are going in that direction, please stop at the temple and remind High Priestess Jahnda that brother Estle is waiting for his blessed oil."); + elseif(e.message:findi("temple of life")) then + e.self:Say("The Temple of Life is the center of worship for the followers of Rodcet Nife. It is located in North Qeynos and is one of the greatest temples ever created. Be sure to visit and attend services."); + elseif(e.message:findi("hayle")) then + e.self:Say("Brother Hayle is a great man. He is known for never losing a convert. He has been trying to convert the local gnolls in the Plains of Karana to the ways of the Prime Healer. I fear he has not been successful."); + elseif(e.message:findi("chintle")) then + e.self:Say("Brother Chintle is my fellow cleric from the Temple of Life. A few of us were sent to the plains to help out the residents."); + elseif(e.message:findi("trintle")) then + e.self:Say("Brother Trintle is my fellow disciple. He is best known for his mission to aid the beggars living in the sewers of Qeynos. He spent a month down there. He came back a new man. He is quite an extraordinary young cleric."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13910})) then + e.self:Say("Thank you. Now I may cleanse the bodies of the new converts and help them enter into a new life. I also have this. It was given to me by a dying gnoll of all things. They belong to Brother Hayle. The gnoll's last words were 'Free him.' Make sure High Priestess Jahnda gets this. Be swift!"); + --confirmed live factions and Experience + e.other:Faction(e.self,341,15,0); -- Faction: Priests of Life + e.other:Faction(e.self,280,4,0); -- Faction: Knights of Thunder + e.other:Faction(e.self,262,7,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,221,-3,0); -- Faction: Bloodsabers + e.other:Faction(e.self,219,2,0); -- Faction: Antonius Bayle + e.other:QuestReward(e.self,{copper = math.random(10),silver = math.random(0,5),itemid = 13911,exp = 800}); -- Item: PrayerBeads + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qey2hh1/Brother_Trintle.lua b/qey2hh1/Brother_Trintle.lua new file mode 100644 index 0000000..d0ab35e --- /dev/null +++ b/qey2hh1/Brother_Trintle.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. May [Rodcet Nife] keep you healthy and watch over you in times of disease."); + elseif(e.message:findi("rodcet") or e.message:findi("prime")) then + e.self:Say("Rodcet Nife is the healer and bringer of all life. Go to the Temple of Life in Qeynos to learn more of his ways."); + elseif(e.message:findi("chintle")) then + e.self:Say("Chintle is nothing more than a naive child. I do not know where he is, nor do I care."); + elseif(e.message:findi("estle")) then + e.self:Say("Brother Estle is your run-of-the-mill follower of Rodcet Nife. He needs to quit preaching so much and truly find himself. Maybe a trip to the Qeynos sewers will change him."); + elseif(e.message:findi("sewer")) then + e.self:Say("What of the sewers? I spent one month down in the Qeynos sewers converting beggars. I truly found myself down there."); + end +end diff --git a/qey2hh1/Chief_Goonda.lua b/qey2hh1/Chief_Goonda.lua new file mode 100644 index 0000000..3e73501 --- /dev/null +++ b/qey2hh1/Chief_Goonda.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Greetings to you, %s. What business do you have with us? We are quite busy with the [enchantment of the stone].",e.other:GetName())); + elseif(e.message:findi("enchantment of the stone")) then --gives this response at indifferent and at ally + e.self:Say("That is none of your concern! I do believe that you should be on your way.") + end +end \ No newline at end of file diff --git a/qey2hh1/Chrislin_Baker.lua b/qey2hh1/Chrislin_Baker.lua new file mode 100644 index 0000000..36459b3 --- /dev/null +++ b/qey2hh1/Chrislin_Baker.lua @@ -0,0 +1,26 @@ +-- white paper portion of enchanter epic quest lead-in + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("slowly lifts her head.'Have you brought any writing materials for me? The last few supplies I had were stolen.'"); + elseif(e.message:findi("writing materials")) then + e.self:Say("A passing illusionist gave me some enchanted writing materials. He said they would help inspire me to capture my mind's images on paper. If you would just be so kind as to bring me plain old paper and a quill from Qeynos, I can get back to writing."); + elseif(e.message:findi("paper")) then + e.self:Say("I don't know who might be selling those these days. Just ask around. I am sure someone will know."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13063,item2 = 13051})) then + e.self:Emote("gives you a hug. 'Thank you so much. I did some cleaning after you left and found this behind a barrel. It may have been left behind by the person who took my materials. You can have it.'"); + e.self:Say("I must go now, I will return later.") + e.other:QuestReward(e.self,0,0,0,0,12100); + eq.unique_spawn(12001,0,0,-11512,763,16,135); -- NPC: Thrackin_Griften + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- EOF Zone: qey2hh1 ID: 12074 NPC: Chrislin_Baker diff --git a/qey2hh1/Cleet_Miller.lua b/qey2hh1/Cleet_Miller.lua new file mode 100644 index 0000000..b414da7 --- /dev/null +++ b/qey2hh1/Cleet_Miller.lua @@ -0,0 +1,10 @@ +function event_waypoint_arrive(e) + if(e.wp == 1) then + e.self:SetRunning(false); + elseif(e.wp == 6) then + e.self:Emote("gathers up a bale of straw"); + eq.create_ground_object(13990,-4632,-3583,23,0,600000); + e.self:SetRunning(true); + end +end + \ No newline at end of file diff --git a/qey2hh1/Cleet_Miller_Jr.lua b/qey2hh1/Cleet_Miller_Jr.lua new file mode 100644 index 0000000..331ab82 --- /dev/null +++ b/qey2hh1/Cleet_Miller_Jr.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("grumbles and looks up at you."); + elseif(e.message:findi("who") or e.message:findi("what")) then + e.self:Say(string.format("Listen, %s, I don't want to be rude, but these fields don't tend to themselves, you know. I don't have time for your little questions. Go talk to Tiny if you are feeling chatty.",e.other:GetName())); + end +end + +function event_waypoint_arrive(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + + if(e.wp == 2 or e.wp == 9) then + e.self:Emote("gathers up a bale of straw"); + eq.create_ground_object(13990,xloc,yloc,zloc,0,600000); + elseif(e.wp == 3 or e.wp == 10) then + e.self:SetRunning(true); + elseif(e.wp == 5 or e.wp == 12) then + e.self:SetRunning(false); + end +end diff --git a/qey2hh1/Draze_Slashyn.lua b/qey2hh1/Draze_Slashyn.lua new file mode 100644 index 0000000..79d8e56 --- /dev/null +++ b/qey2hh1/Draze_Slashyn.lua @@ -0,0 +1,22 @@ +-- ################################### +-- NPC: Draze Slashyn +-- Info: Spawned by quest, Linaya Sowlin +-- Zone: qey2hh1 +-- Quest: Nitrates and the Assassin +-- Loot: Item id 18911 100%, random trash(rusty axe, zone random), and small cash +-- Level: 5 HP: 200 Class: Warrior +-- Spawn Loc: -3400,-8000,23 +-- Author: Andrew80k +-- Converted to Lua by robregen +-- #################################### + +function event_spawn(e) + eq.move_to(-7756,-3726,1); + eq.set_timer("shout",5000) +end + +function event_timer(e) + e.self:Emote("shouts 'Come out of that house, Linaya Sowlin!! I am waiting! It is time for you to die!'") + e.self:Say("I shall chop you down as your people chopped down the beauty of the forests!!") + eq.stop_timer("shout") +end diff --git a/qey2hh1/Einhorst_McMannus.lua b/qey2hh1/Einhorst_McMannus.lua new file mode 100644 index 0000000..3d658b4 --- /dev/null +++ b/qey2hh1/Einhorst_McMannus.lua @@ -0,0 +1,48 @@ +-- ########################################### +-- ## DEVELOPER: KOVOU +-- ## CONVERTED TO LUA BY: robregen +-- ## *** NPC INFORMATION *** +-- ## +-- ## NAME: Einhorst McMannus +-- ## ID: 12091 +-- ## ZONE: qey2hh1 +-- ## +-- ############################################ + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetName() ..". Welcome to the fishing village of Clan McMannus. We sell what we can here. Have a look around but, please do not buy too much. We must save most of our stock for delivery to [our home]."); + elseif(e.message:findi("home")) then + e.self:Say("We come from the frozen walls of [Halas]. We were sent here by the council of elders to set up this village. We support Halas by shipping what we catch and sending them items which cannot be found in Everfrost Peaks. We presently have a shipment of [lion meat] for [delivery] to Halas.") + elseif(e.message:findi("halas")) then + e.self:Say("Halas is the mighty city of the barbarians of the North. It lies among the Everfrost Peaks.") + elseif(e.message:findi("searching for the fugitive")) then + e.self:Say("I see they have sent someone to hunt the scoundrel down. I am afraid I haven't seen the barbarian thief in quite some time. You can search and search for him here in the western plains, but I doubt you shall find him. Good luck."); + elseif(e.message:findi("delivery")) then -- can be done even at dubious + e.self:Say("Oh, yes, the lion meat shipment. Aye, it's here somewhere. Just a moment. Ah! Here you go. Apologize for the delay in this.") + e.other:SummonCursorItem(13961); -- Lion Meat Shipment + elseif(e.message:findi("lion meat")) then + e.self:Say("That would be splendid! Go to Misla and tell her you will deliver the lion meat to Halas. She will instruct you. Thank you, my friend."); + elseif(e.message:findi("frostbite")) then + e.self:Say("Frostbite is our trusty wolf. We found him as a pup.") + elseif(e.message:findi("wolves of the north")) then + e.self:Say("The Wolves of the North are the barbarian warriors of Halas. All of us in Clan McMannus are members. Mess with us and you mess with the Wolves of the North."); + elseif(e.message:findi("helsa")) then + e.self:Say("My wife? She is dead. Crushed by the hands of a foul cyclops. I wish I could find that cyclops. I would pay greatly for his eye. I have slain every giant I could find, but I have not met him. I could still remember that cry of his... BROOON!") + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18831})) then + e.self:Say("Yes. We almost forgot of the shipment of Karana clovers. Here you are, my friend. Back to the north with you. I am sure the Shamans of Justice will need this."); + -- Confirmed Live Factions + e.other:Faction(e.self,320,1,0); -- Wolves of the North + e.other:Faction(e.self,327,1,0); -- Shamen of Justice + e.other:Faction(e.self,328,1,0); -- Merchants of Halas + e.other:Faction(e.self,311,1,0); -- Steel Warriors + e.other:QuestReward(e.self,math.random(9),math.random(9),0,0,13962,1600); -- Karana Clover Shipment + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qey2hh1/Frostbite.lua b/qey2hh1/Frostbite.lua new file mode 100644 index 0000000..5b7395c --- /dev/null +++ b/qey2hh1/Frostbite.lua @@ -0,0 +1,52 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("RUFF RUFF"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12139})) then + e.self:Emote("spits something into your hand."); + -- confirmed live factions + e.other:Faction(e.self,320,2); -- 320 : Faction Wolves of the North + e.other:Faction(e.self,327,1); -- 327 : Faction Shaman of Justice + e.other:Faction(e.self,328,1); -- 328 : Faction Merchant's of Halas + e.other:Faction(e.self,311,1); -- 311 : Faction Steel Warriors + e.other:QuestReward(e.self,0,0,0,0,13383); -- Item: Koalindl Fish + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12226})) then + e.self:Emote("takes a whiff of the sweaty shirt and barks."); + e.other:Ding(); + eq.set_timer("go",15000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + local bad_thief = eq.ChooseRandom(12190,12190,12190,12190,12190,12191); + local random_x = eq.ChooseRandom(-3461,-3902,-4011); + local random_y = eq.ChooseRandom(-1457,-3240,-1362); + + if(e.timer == "go") then + eq.stop_timer("go"); + eq.set_timer("depop",1200000); + eq.unique_spawn(bad_thief,11,0,random_x,random_y,10,0); + e.self:SetRunning(true); + local mobtypeID = eq.get_entity_list():GetMobByNpcTypeID(bad_thief); + + if(mobtypeID) then + local follow_mob = mobtypeID:GetID(); + eq.follow(follow_mob); + end + elseif(e.timer == "depop") then + eq.depop_with_timer(); + end +end + +function event_signal(e) + eq.stop_follow(); + e.self:SetRunning(false); + eq.move_to(-2236,-3532,34,110); + eq.stop_timer("depop"); +end diff --git a/qey2hh1/Furball_Miller.lua b/qey2hh1/Furball_Miller.lua new file mode 100644 index 0000000..ad752d1 --- /dev/null +++ b/qey2hh1/Furball_Miller.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(" Hiya! My name is Furball Miller. I work here on my father's farm. Of course. he is not my real [father] but he is the one who raisd me from a pup. I hope to go back to [Blackburrow] some day and try to get them to stop all the senseless fighting with the humans of Qeynos."); + elseif(e.message:findi("blackburrow")) then + e.self:Say("Blackburrow is home to a clan of gnolls called the Sabertooths. It is where I am from but I really don't ever remember being there. Pa tells me the gnolls there are always fighting with the humans of Qeynos. I wish they would stop and realize that humans and gnolls are not as different as they like to think. "); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 4) then + e.self:Emote("gathers up a bale of straw"); + eq.create_ground_object(13990,-5677,-2363,0,0,600000); + end +end + +-- END of FILE Zone:qey2hh1 ID:1610 -- Furball_Miller \ No newline at end of file diff --git a/qey2hh1/Gindlin_Toxfodder.lua b/qey2hh1/Gindlin_Toxfodder.lua new file mode 100644 index 0000000..c714db2 --- /dev/null +++ b/qey2hh1/Gindlin_Toxfodder.lua @@ -0,0 +1,20 @@ +-- Gindlin's Poison + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Enough with the formalities. I don't make it to these parts often and I only plan on being here a couple days. My time is precious. You must be a rogue in search of the [death juice]."); + elseif(e.message:findi("death juice")) then + e.self:Say("Spider venom. You can't mix it yourself. If you want, I can do it. I'll need two spider venom sacs from the giant spiders. There should be some around these plains. I also demand a fee of 20 gold pieces, oh yeah!... I have been banished from Qeynos... I also want a bottle of my favorite brew, Crow's special brew, purchased from Crow himself in North Qeynos."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You did hear me, didn't you? I want two spider venom sacs, a bottle of Crow's special brew and 20 gold pieces."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14018, item2 = 14018, item3 = 13799, gold = 20},1,text)) then + e.self:Say("Here. I could care less what you do with this. Hopefully you'll lay some on the Circle of Unseen Hands."); + e.other:QuestReward(e.self,0,0,0,0,14015,500); -- Item: Spider Venom + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qey2hh1/Gomo_Limerin.lua b/qey2hh1/Gomo_Limerin.lua new file mode 100644 index 0000000..ec8922d --- /dev/null +++ b/qey2hh1/Gomo_Limerin.lua @@ -0,0 +1,15 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("No time to talk!! I must be on my way. I am in a race with the paladins from the Temple of Life."); + end +end + +function event_death(e) + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(840); +end diff --git a/qey2hh1/Grebin_Sneztop.lua b/qey2hh1/Grebin_Sneztop.lua new file mode 100644 index 0000000..da025ca --- /dev/null +++ b/qey2hh1/Grebin_Sneztop.lua @@ -0,0 +1,15 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("No time to talk!! I must be off. The grains of sand are falling and I must prove that we paladins from the Temple of Thunder are the quickest."); + end +end + +function event_death(e) + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(840); +end diff --git a/qey2hh1/GuardTrig.lua b/qey2hh1/GuardTrig.lua new file mode 100644 index 0000000..d250001 --- /dev/null +++ b/qey2hh1/GuardTrig.lua @@ -0,0 +1,4 @@ +function event_spawn(e) + eq.signal(12090,1); -- Guard_McCluskey + eq.signal(12147,1); -- Guard_Donlan +end diff --git a/qey2hh1/Guard_Donlan.lua b/qey2hh1/Guard_Donlan.lua new file mode 100644 index 0000000..be6adc3 --- /dev/null +++ b/qey2hh1/Guard_Donlan.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome, traveler. Have I informed you about the [travel tax]?"); + elseif(e.message:findi("travel tax")) then + e.self:Say("The travel tax is a fee of one gold for the privilege of using the highways of Karana. Oh! You know what? You must've used the roads to get here! I guess you owe me 1 gold!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Time to push our weight around. Ahhh. There is nothing better than being a Qeynos Guard."); + eq.start(19) + end +end + +function event_waypoint_arrive(e) + if(e.wp == 1) then + e.self:Say("You know the routine. You give me sixty percent of the McMannus profit and you can continue living. Unless, of course, the McMannus family can take on the entire Qeynos Guard..?"); + eq.signal(12095,1); -- NPC: Sera_McMannus + elseif(e.wp == 2) then + eq.stop(); + eq.move_to(-2042,-2912,44,164,true); + end +end \ No newline at end of file diff --git a/qey2hh1/Guard_McCluskey.lua b/qey2hh1/Guard_McCluskey.lua new file mode 100644 index 0000000..e150bfc --- /dev/null +++ b/qey2hh1/Guard_McCluskey.lua @@ -0,0 +1,22 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Time to push our weight around. Ahhh. There is nothing better than being a Qeynos Guard."); + eq.start(18) + elseif(e.signal == 2) then + e.self:Say("Ha! You do that and see what happens. No one will miss another untalented, voiceless bard!"); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 1) then + e.self:Say("Hello again, Ms. Storyswapper! Did I ever tell you about the new song tax that was attached to last week's bard tax? You'd best pay up or I will be forced to lock you up in the dungeon."); + eq.signal(12100,1); -- NPC: Misty_Storyswapper + elseif(e.wp == 2) then + eq.stop(); + eq.move_to(-2026,-2926,44,223,true); + end +end diff --git a/qey2hh1/Habastash_Gikin.lua b/qey2hh1/Habastash_Gikin.lua new file mode 100644 index 0000000..da025ca --- /dev/null +++ b/qey2hh1/Habastash_Gikin.lua @@ -0,0 +1,15 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("No time to talk!! I must be off. The grains of sand are falling and I must prove that we paladins from the Temple of Thunder are the quickest."); + end +end + +function event_death(e) + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(840); +end diff --git a/qey2hh1/Henina_Miller.lua b/qey2hh1/Henina_Miller.lua new file mode 100644 index 0000000..e78400b --- /dev/null +++ b/qey2hh1/Henina_Miller.lua @@ -0,0 +1,37 @@ +-- Gathering Grain + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Greetings, %s. Welcome to the Miller Farmstead. [Cleet] and I have lived out here on the plains of Karana for thirty years now. We grow the finest grains in all of Norrath. Admire the grains all you like, but steer clear of those [scarecrows].",e.other:GetName())); + elseif(e.message:findi("cleet")) then + e.self:Say("Cleet is my husband. He is a hard worker and provides for the [kids] and me."); + elseif(e.message:findi("kids")) then + e.self:Say("We have five children. [Cleet Junior] is our youngest and the only one born of my womb. [Furball] is second youngest. [Chanda] is a little bit older than him and [Baobob] is a few years older than her. [Tiny] is our oldest."); + elseif(e.message:findi("junior")) then + e.self:Say("Cleet Junior is a bit of a problem. He just was not meant to be a farmer. Cleet wants the boy, being our only child to actually have Miller blood, to take over the farm when he is gone but Cleet Junior is more interested in adventure."); + elseif(e.message:findi("furball")) then + e.self:Say("We adopted Furball after [Tiny] found him dying in our field. We couldn't very well send him back to that awful Blackburrow place! Those gnolls kill their young who come back to the clan after being defeated in battle. Furball doesn't even remember that place and his home is here now."); + elseif(e.message:findi("tiny")) then + e.self:Say("Tiny is our adopted son. [Cleet] rescued him from a bunch of hooligans who were trying to kill him like they did his momma. Cleet is quite a heroic man. We took Tiny in and raised him as a Miller. We are quite proud of him. I just wish folks would not pester him like they do. It is not his fault he was born an ogre."); + elseif(e.message:findi("scarecrow")) then + e.self:Say("Yep, those scarecrows are snarky. I've told Cleet more than a few times that I'd like to cook their heads into a pie, but he won't let me get near them. Oh, there was a recipe book that the Hutchison's gave us as a gift that described how to bake five different wisp lightstones into a scarecrow head to make it glow. Ah well."); + elseif(e.message:findi("chanda") or e.message:findi("baobob")) then + e.self:Say("We adopted Chanda and Baobob at the same time. They're blood kin, ya know! Tiny found them sleeping in the field one day. Baobob told us how their folks had been killed, so we took them in as part of our growing family. They have left the farm, though, to pursue careers as tanners. I miss them sometimes. They don't visit often enough."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13990})) then -- Sack of Hay + e.self:Say("Thank you so much. Tiny gets quite tired doing this by himself. Here you go."); + e.other:Faction(e.self,345,1); -- Faction: Karana Residents + e.other:Faction(e.self,262,1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,341,1); -- Faction: Priests of Life + e.other:Faction(e.self,280,1); -- Faction: Knights of Thunder + e.other:QuestReward(e.self,math.random(5),0,0,0,0,100); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE zone: ID:12026 -- Henina_Miller.pl diff --git a/qey2hh1/Innkeep_Danin.lua b/qey2hh1/Innkeep_Danin.lua new file mode 100644 index 0000000..5b25817 --- /dev/null +++ b/qey2hh1/Innkeep_Danin.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Welcome to my shop %s. You'll be happy to hear that I'm fully stocked. It's nice that things are back to normal now that the plague is over.",e.other:GetName())); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("Ah, praise Karana! These muffins look good enough to eat, har har har! Here is your payment and you have my deepest gratitude. We have to stick together in these times of turmoil you know."); + e.other:Faction(e.self,291,2,0); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,223,-1,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,219,1,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,229,1,0); -- Faction: Coalition of Tradefolk + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("Ah finally, fresh bread! All right let me get this on the shelves right away. Here is your payment."); + e.other:Faction(e.self,291,4,0); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,223,-1,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,219,1,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,229,1,0); -- Faction: Coalition of Tradefolk + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qey2hh1/Innkeep_Rislarn.lua b/qey2hh1/Innkeep_Rislarn.lua new file mode 100644 index 0000000..5b25817 --- /dev/null +++ b/qey2hh1/Innkeep_Rislarn.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Welcome to my shop %s. You'll be happy to hear that I'm fully stocked. It's nice that things are back to normal now that the plague is over.",e.other:GetName())); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("Ah, praise Karana! These muffins look good enough to eat, har har har! Here is your payment and you have my deepest gratitude. We have to stick together in these times of turmoil you know."); + e.other:Faction(e.self,291,2,0); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,223,-1,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,219,1,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,229,1,0); -- Faction: Coalition of Tradefolk + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("Ah finally, fresh bread! All right let me get this on the shelves right away. Here is your payment."); + e.other:Faction(e.self,291,4,0); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,223,-1,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,219,1,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,229,1,0); -- Faction: Coalition of Tradefolk + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qey2hh1/Junth_McMannus.lua b/qey2hh1/Junth_McMannus.lua new file mode 100644 index 0000000..2c9e1d9 --- /dev/null +++ b/qey2hh1/Junth_McMannus.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good to meet you.") + elseif(e.message:findi("halas")) then + e.self:Say("Halas is the mighty city of the barbarians of the North. It lies among the Everfrost Peaks.") + elseif(e.message:findi("frostbite")) then + e.self:Say("Frostbite is our trusty wolf. We found him as a pup.") + elseif(e.message:findi("ulrich")) then + e.self:Say("He is my brother and the oldest of my siblings.") + elseif(e.message:findi("misla")) then + e.self:Say("She is my sister.") + elseif(e.message:findi("einhorst")) then + e.self:Say("He is my father. We hail from Halas.") + elseif(e.message:findi("sera")) then + e.self:Say("She is my sister and the youngest of the clan.") + elseif(e.message:findi("brenzl")) then + e.self:Say("He is my brother and a fine bowyer and net maker.") + elseif(e.message:findi("lars")) then + e.self:Say("He is my brother.") + elseif(e.message:findi("wolves of the north")) then + e.self:Say("The Wolves of the North are the barbarian warriors of Halas. All of us in Clan McMannus are members. Mess with us and you mess with the Wolves of the North.") + elseif(e.message:findi("mother")) then + e.self:Say("Unfortunately, she passed away a year ago. She was killed while defending our dogs from a giant. Do not ask our father, Einhorst, about our mother, Helsa. He does not need to be reminded.") + end +end \ No newline at end of file diff --git a/qey2hh1/Kobot_Dellin.lua b/qey2hh1/Kobot_Dellin.lua new file mode 100644 index 0000000..ec8922d --- /dev/null +++ b/qey2hh1/Kobot_Dellin.lua @@ -0,0 +1,15 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("No time to talk!! I must be on my way. I am in a race with the paladins from the Temple of Life."); + end +end + +function event_death(e) + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(840); +end diff --git a/qey2hh1/Konia_Swiftfoot.lua b/qey2hh1/Konia_Swiftfoot.lua new file mode 100644 index 0000000..e3a4366 --- /dev/null +++ b/qey2hh1/Konia_Swiftfoot.lua @@ -0,0 +1,35 @@ +-- Zone: West Karana +-- Short Name: qey2hh1 +-- Zone ID: 12 +-- +-- NPC Name: Konia Swiftfoot +-- NPC ID: 12117 +-- Quest Status: Finished +-- + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Hello there, %s. I am hosting a relay running contest. Would you like to participate?",e.other:GetName())); + elseif(e.message:findi("like to participate")) then + e.self:Say("Great! The prize will be this silly old music sheet. Let me know when you are ready and I will pass you the torch and tell you where the next stop is."); + elseif(e.message:findi("ready")) then + e.self:Say("Here you go. Run with this torch as fast as you can to the Misty Thicket and hand this torch off to Fajio Knejo. He will tell you where to go from there. Hurry! You do not have much time!"); + e.other:SummonCursorItem(20532); -- Item: Torch of Misty + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20379})) then + e.self:Say("Excellent! You are quite a runner. Here is half of the sheet music. I decided to keep the other half because it has this wonderful signature. I think it might be quite valuable. It is probably worth as much as an instrument the great Mahlin used."); + e.other:QuestReward(e.self,0,0,0,0,20376,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20366})) then + e.self:Say("Mahlin's bongos! Here, take the other half of the sheet music. I can't really make out what the signature was, anyway."); + e.other:QuestReward(e.self,0,0,0,0,20383,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:qey2hh1 ID:12117 -- Konia Swiftfoot + diff --git a/qey2hh1/Kyle_Rinlin.lua b/qey2hh1/Kyle_Rinlin.lua new file mode 100644 index 0000000..da025ca --- /dev/null +++ b/qey2hh1/Kyle_Rinlin.lua @@ -0,0 +1,15 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("No time to talk!! I must be off. The grains of sand are falling and I must prove that we paladins from the Temple of Thunder are the quickest."); + end +end + +function event_death(e) + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(840); +end diff --git a/qey2hh1/Lander_Billkin.lua b/qey2hh1/Lander_Billkin.lua new file mode 100644 index 0000000..ec8922d --- /dev/null +++ b/qey2hh1/Lander_Billkin.lua @@ -0,0 +1,15 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("No time to talk!! I must be on my way. I am in a race with the paladins from the Temple of Life."); + end +end + +function event_death(e) + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(840); +end diff --git a/qey2hh1/Lars_McMannus.lua b/qey2hh1/Lars_McMannus.lua new file mode 100644 index 0000000..0843bba --- /dev/null +++ b/qey2hh1/Lars_McMannus.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. The name's Lars McMannus of Clan McMannus.") + elseif(e.message:findi("halas")) then + e.self:Say("Halas is the mighty city of the barbarians of the North. It lies among the Everfrost Peaks.") + elseif(e.message:findi("frostbite")) then + e.self:Say("Frostbite is our trusty wolf. We found him as a pup.") + elseif(e.message:findi("ulrich")) then + e.self:Say("He is my brother and the oldest of my siblings.") + elseif(e.message:findi("misla")) then + e.self:Say("She is my sister.") + elseif(e.message:findi("einhorst")) then + e.self:Say("He is my father. We hail from Halas.") + elseif(e.message:findi("sera")) then + e.self:Say("She is my sister and the youngest of the clan.") + elseif(e.message:findi("brenzl")) then + e.self:Say("He is my brother and a fine bowyer and net maker.") + elseif(e.message:findi("junth")) then + e.self:Say("He is my brother.") + elseif(e.message:findi("wolves of the north")) then + e.self:Say("The Wolves of the North are the barbarian warriors of Halas. All of us in Clan McMannus are members. Mess with us and you mess with the Wolves of the North.") + elseif(e.message:findi("mother")) then + e.self:Say("Unfortunately, she passed away a year ago. She was killed while defending our dogs from a giant. Do not ask our father, Einhorst, about our mother, Helsa. He does not need to be reminded.") + end +end \ No newline at end of file diff --git a/qey2hh1/Lempeck_Hargrin.lua b/qey2hh1/Lempeck_Hargrin.lua new file mode 100644 index 0000000..cc62118 --- /dev/null +++ b/qey2hh1/Lempeck_Hargrin.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Gree.. .. tings. How are you? Don't get too close to me. I've [come down] with something bad."); + elseif(e.message:findi("come down")) then + e.self:Say("Ever since that wolf bit me on the way to Qeynos I have been feeling ill. My strength is all gone and I... I... I need the [potion]."); + elseif(e.message:findi("potion")) then + e.self:Say("I have been informed that the potions of the Temple of Life will help me. The [potion is my last chance] - that is what Astaed Wemor of the temple told me."); + + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13954})) then -- Prime Healer Potion (Good) + e.self:Say("Thank you!! I felt the madness nearing my brain, but now I feel much better. Please take this as thanks - it is all I have to donate to Astaed Wemor. Be sure he gets it. I shall thank Rodcet Nife every day for sending help."); + -- confirmed live factions + e.other:Faction(e.self,341,1,0); -- Faction: Priests of Life + e.other:Faction(e.self,280,1,0); -- Faction: Knights of Thunder + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,221,-1,0); -- Faction: Bloodsabers + e.other:Faction(e.self,219,1,0); -- Faction: Antonius Bayle + e.other:QuestReward(e.self,0,0,0,0,13970,50000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13955})) then -- Prime Healer Potion (Bad) + e.self:Say("Please let this help... nnnnghhh!... I fear it is too late... Aaaarrrgh!... I... I will... KILL YOU!"); + eq.attack(e.other:GetName()); + -- confirmed live factions + e.other:Faction(e.self,341,10,0); -- Faction: Priests of Life + e.other:Faction(e.self,280,3,0); -- Faction: Knights of Thunder + e.other:Faction(e.self,262,5,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,221,-2,0); -- Faction: Bloodsabers + e.other:Faction(e.self,219,1,0); -- Faction: Antonius Bayle + e.other:QuestReward(e.self,0,0,0,0,0,50000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qey2hh1/Linaya_Sowlin.lua b/qey2hh1/Linaya_Sowlin.lua new file mode 100644 index 0000000..1eef6e2 --- /dev/null +++ b/qey2hh1/Linaya_Sowlin.lua @@ -0,0 +1,37 @@ +-- #################################### +-- # NPC: Linaya Sowlin +-- # Loc: -7655 -3745 +-- # Zone: qey2hh1 +-- # Quest: Nitrates and the Assassin (Qrg) +-- # Author: Andrew80k +-- # Converted to Lua: robregen +-- #################################### + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings! It is always nice to meet another traveler. The roads of the Plains of Karana are heavily trodden, but sparsely patrolled. Be careful of bandits and especially of giants. I have seen a few since my [move from the Jaggedpine]."); + elseif(e.message:findi("note")) then + e.self:Say("The note spoke of the [Unkempt Druids]. I did not get a chance to read it all, only a glimpse. Perhaps the man still has the note. Too bad. I am sure Gerael Woodone of the druids of Surefall Glade should look at it."); + elseif(e.message:findi("unkempt druids")) then + e.self:Say("The Unkempt Druids are a crazed group of druids and rangers. I learned of them when I was in the Jaggedpine. They are a secret group and aim to keep it that way. They would kill anyone who learned of their whereabouts."); + elseif(e.message:findi("move from the jaggedpine")) then + e.self:Say("I inherited this farmhouse from my late uncle so I left the Jaggedpine to live here. The Jaggedpine is a beautiful forest but I believe my skills as a druid may come in handy as a farmer."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13945})) then + e.self:Say("Oh thank Tunare you showed up when you did. I was at a nearby merchant house when a fellow dropped a [note] and I picked it up and read it. It talked of the [Unkempt Druids] and before I could read on, the man swiped it from my hands. I ran for dear life, for surely he would kill me for reading the note. I think I lost him in the woods but I am not sure. Please stay with me a while to be sure."); + -- confirmed live factions + e.other:Faction(e.self,272,10,0); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,2,0); -- Protector of the Pine + e.other:Faction(e.self,343,1,0); -- QRG Protected Animals + e.other:Faction(e.self,324,-2,0); -- Unkempt Druids + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:QuestReward(e.self,math.random(10),math.random(10),math.random(5),0,0,2000); + eq.unique_spawn(12181,0,0,-8000,-3400,23,102.9); -- NPC: Draze_Slashyn + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qey2hh1/Maldin_the_Old.lua b/qey2hh1/Maldin_the_Old.lua new file mode 100644 index 0000000..69c64f9 --- /dev/null +++ b/qey2hh1/Maldin_the_Old.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("follower of karana")) then + e.self:Say("Yes. I am a follower of Karana, the Rainkeeper. It is He who keeps the plains fertile."); + elseif(e.message:findi("blessing")) then + e.self:Say("Of the things I desire, I can think of nothing I wish for more than the blessings of Karana. By drinking from the temple chalice of a Karana cleric I can attain this."); + elseif(e.message:findi("karana bandit")) then + e.self:Say("The Karana bandits are rogues who operate in the plains. I have heard there are bounties for the bandits. Within the Temple of Thunder in Qeynos, Cleric Gehna offers one for bandit spectacles and Paladin Chesgard offers one for bandit sashes."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12103})) then + e.self:Say("May the Rainkeeper keep you safe. I thank you. Here is the empty chalice. By the way, inform your superior that the operations of the [Karana bandits] are getting closer to Qeynos."); + -- Confirmed Live Faction + e.other:Faction(e.self,345,5,0); -- Faction: Karana Residents + e.other:Faction(e.self,280,1,0); -- Faction: Knights of Thunder + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,341,1,0); -- Faction: Priests of Life + e.other:QuestReward(e.self,0,0,0,0,12104,2000); -- Item: An Empty Chalice + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qey2hh1/Maligar.lua b/qey2hh1/Maligar.lua new file mode 100644 index 0000000..c82fcfd --- /dev/null +++ b/qey2hh1/Maligar.lua @@ -0,0 +1,14 @@ +-- maligar and his enraged doppleganger + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20368},0)) then + e.self:Say("Hmmm. What's this? A note from that silly bard Baenar? I wasn't aware that those of his kind could write, much less read.' Maligar lets out a deep laugh. 'I see you do not share my sense of humor. Let's read it, shall we? Oh, no! She's dead? I knew that already, you fool. It was by my hand she died! Ooops! Did I let that slip out? Silly me. I guess I will have to kill you now!"); + eq.spawn2(12173,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- EOF zone: qey2hh1 ID: 12076 NPC: Maligar diff --git a/qey2hh1/Minda.lua b/qey2hh1/Minda.lua new file mode 100644 index 0000000..3af172f --- /dev/null +++ b/qey2hh1/Minda.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. Nice to make your acquaintance. Be careful in the plains. There are many creatures. Just stay close to the guard towers."); + elseif(e.message:findi("follower of karana")) then + e.self:Say("Yes. I am a follower of Karana, the Rainkeeper. It is He who keeps the plains fertile."); + elseif(e.message:findi("blessing")) then + e.self:Say("Of the things I desire, I can think of nothing I wish for more than the blessings of Karana. By drinking from the temple chalice of a Karana cleric I can attain this."); + elseif(e.message:findi("karana bandit")) then + e.self:Say("The Karana bandits are rogues who operate in the plains. I have heard there are bounties for the bandits. Within the Temple of Thunder in Qeynos, Cleric Gehna offers one for bandit spectacles and Paladin Chesgard offers one for bandit sashes."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12103})) then + e.self:Say("May the Rainkeeper keep you safe. I thank you. Here is the empty chalice. By the way, inform your superior that the operations of the [Karana bandits] are getting closer to Qeynos."); + -- Confirmed Live Faction + e.other:Faction(e.self,345,5,0); -- Faction: Karana Residents + e.other:Faction(e.self,280,1,0); -- Faction: Knights of Thunder + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,341,1,0); -- Faction: Priests of Life + e.other:QuestReward(e.self,0,0,0,0,12104,2000); -- Item: An Empty Chalice + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qey2hh1/Minya_Coldtoes.lua b/qey2hh1/Minya_Coldtoes.lua new file mode 100644 index 0000000..ba7840f --- /dev/null +++ b/qey2hh1/Minya_Coldtoes.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("follower of Karana")) then + e.self:Say("Yes. I am a follower of Karana, the Rainkeeper. It is He who keeps the plains fertile."); + elseif(e.message:findi("blanket")) then + e.self:Say("With the frequent rains, I find my only need is a blanket to keep me warm during the long cold nights. Thank Karana the temple has begun to send young paladins to deliver extra blankets."); + elseif(e.message:findi("karana bandit")) then + e.self:Say("The Karana bandits are rogues who operate in the plains. I have heard there are bounties for the bandits. Within the Temple of Thunder in Qeynos, Cleric Gehna offers one for bandit spectacles and Paladin Chesgard offers one for bandit sashes."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12102})) then + e.self:Say("Thank you, protector of Karana. This will be handy when the cold rushes into the valley. Allow me to offer you some provisions for your journey. And, might I add, the [Karana bandits] have begun to operate much closer to Qeynos."); + e.other:Faction(e.self,345,5,0); -- Faction: Karana Residents + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,341,1,0); -- Faction: Priests of Life + e.other:Faction(e.self,280,1,0); -- Faction: Knights of Thunder + e.other:Faction(e.self,223,-1,0); -- Faction: Circle of Unseen Hands + e.other:QuestReward(e.self,math.random(20),0,0,0,0,2000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qey2hh1/Misla_McMannus.lua b/qey2hh1/Misla_McMannus.lua new file mode 100644 index 0000000..f71aa8f --- /dev/null +++ b/qey2hh1/Misla_McMannus.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. You look a mite scrawny. You should purchase some fishcakes. They will add muscle to your frame.") + elseif(e.message:findi("lion meat")) then + e.self:Say("Very well, then. Here you go. Be sure to deliver this to Teria O'Danos. She will be one of the first people you meet in Halas."); + e.other:SummonCursorItem(13961); -- Lion Meat Shipment + elseif(e.message:findi("halas")) then + e.self:Say("Halas is the mighty city of the barbarians of the North. It lies among the Everfrost Peaks.") + elseif(e.message:findi("frostbite")) then + e.self:Say("Frostbite is our trusty wolf. We found him as a pup.") + elseif(e.message:findi("ulrich")) then + e.self:Say("He is my brother and the oldest of my siblings.") + elseif(e.message:findi("sera")) then + e.self:Say("She is my sister and the youngest of the clan.") + elseif(e.message:findi("einhorst")) then + e.self:Say("He is my father. We hail from Halas.") + elseif(e.message:findi("lars")) then + e.self:Say("He is my brother.") + elseif(e.message:findi("brenzl")) then + e.self:Say("He is my brother and a fine bowyer and net maker.") + elseif(e.message:findi("junth")) then + e.self:Say("He is my brother.") + elseif(e.message:findi("wolves of the north")) then + e.self:Say("The Wolves of the North are the barbarian warriors of Halas. All of us in Clan McMannus are members. Mess with us and you mess with the Wolves of the North.") + end +end + +-- END of FILE Zone:qey2hh1 ID:3563 -- Misla_McMannus \ No newline at end of file diff --git a/qey2hh1/Mistrana_Two_Notes.lua b/qey2hh1/Mistrana_Two_Notes.lua new file mode 100644 index 0000000..74bc6d9 --- /dev/null +++ b/qey2hh1/Mistrana_Two_Notes.lua @@ -0,0 +1,14 @@ +--Quest Name: Bard Mail Quest + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Hail, %s - Are you [interested] in helping the League of Antonican Bards by delivering some [mail]?",e.other:GetName())); + elseif(e.message:findi("mail") and not e.message:findi("deliver") and not e.message:findi("Qeynos")) then + e.self:Say("The League of Antonican Bards has a courier system made up of travelers and adventurers. We pay good gold to anyone who will take messages from bards such as myself to one of our more central offices. Are you [interested]?"); + elseif(e.message:findi("interested")) then + e.self:Say("I have messages that need to go to - well, right now I have one that needs to go to Qeynos. Will you [deliver] mail to [Qeynos] for me?"); + elseif(e.message:findi("deliver") or e.message:findi("Qeynos")) then + e.self:Say("Take this letter to Tralyn Marsinger in Qeynos. You can find him at the bard guild hall. I am sure he will compensate you for your troubles."); + e.other:SummonCursorItem(18150); -- Item: A Bardic Letter (Qeynos) + end +end diff --git a/qey2hh1/Misty_Storyswapper.lua b/qey2hh1/Misty_Storyswapper.lua new file mode 100644 index 0000000..5c557f4 --- /dev/null +++ b/qey2hh1/Misty_Storyswapper.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Nice to meet you. " .. e.other:GetCleanName() .. ". If you are a fellow bard. I must inform you that you will make no profit around here. Not with Guard McCluskey around."); + elseif(e.message:findi("Guard McCluskey")) then + e.self:Say("I will tell you no more. I do not wish to end up boxed and buried. Just stay away from Guard McCluskey. He is no honorable man."); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("This cannot be true! I will report this to Commander Kane Bayle himself!"); + eq.signal(12090,2); -- Guard_McCluskey + end +end + +-- END of FILE Zone:qey2hh1 ID:3574 -- Misty_Storyswapper \ No newline at end of file diff --git a/qey2hh1/Paglan.lua b/qey2hh1/Paglan.lua new file mode 100644 index 0000000..14a2136 --- /dev/null +++ b/qey2hh1/Paglan.lua @@ -0,0 +1,16 @@ +function event_spawn(e) + eq.set_timer(1,1200000); + e.self:SetRunning(true); +end + +function event_timer(e) + eq.depop(); +end + +function event_combat(e) + if(e.joined == true) then + e.self:Say("The time fer talk is over. Raise yer guard!!"); + eq.signal(12082,1); + eq.signal(12154,1); -- NPC: Frostbite + end +end diff --git a/qey2hh1/Parcil_Vinder.lua b/qey2hh1/Parcil_Vinder.lua new file mode 100644 index 0000000..ec8922d --- /dev/null +++ b/qey2hh1/Parcil_Vinder.lua @@ -0,0 +1,15 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("No time to talk!! I must be on my way. I am in a race with the paladins from the Temple of Life."); + end +end + +function event_death(e) + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(840); +end diff --git a/qey2hh1/Quegin_Hadder.lua b/qey2hh1/Quegin_Hadder.lua new file mode 100644 index 0000000..da025ca --- /dev/null +++ b/qey2hh1/Quegin_Hadder.lua @@ -0,0 +1,15 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("No time to talk!! I must be off. The grains of sand are falling and I must prove that we paladins from the Temple of Thunder are the quickest."); + end +end + +function event_death(e) + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(840); +end diff --git a/qey2hh1/Renux_Herkanor.lua b/qey2hh1/Renux_Herkanor.lua new file mode 100644 index 0000000..cccdef7 --- /dev/null +++ b/qey2hh1/Renux_Herkanor.lua @@ -0,0 +1,37 @@ +-- Grandmaster Assassin's Seal +-- NPC Name: Renux Herkanor + +function event_say(e) + if(e.other:GetFaction(e.self) < 3 and e.other:GetSkill(56) > 250) then + if(e.message:findi("hail")) then + e.self:Say("Master Hanns is going to kill me! I let that dark assassin look at his prized poison collection and he lifted it all when I wasn't looking! He even snatched his Grandmaster's Vial! Master Hanns was so furious he grabbed one of his old blades from his collection and jabbed it at the wall so hard it shattered! I really need some help replacing all that was [ruined] or I have a feeling Master Hanns is going to send me on a suicide mission!"); + elseif(e.message:findi("ruined")) then + e.self:Say("Fantastic! I need to replace all those old poisons, the vial and that old scareling blade. I think the bottles had the following written on them Bane, Burn, Essence, Sloth, Rage, Swiftness, Disorientation, and Dimethyl. Please hurry!"); + e.other:SummonCursorItem(17148); -- Item: Unfilled Box + end + else + e.self:Say("Go away! We don't have time for the likes of you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 3) then + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 24072})) then + e.self:Say("Great! Looks like everything is here! Hopefully Master Hanns won't send me to Steamfront now, I have a really bad feeling about that assignment. Here take this Seal, it was dropped by that dark stranger. It glows with a dark power I just don't understand. Be wary of further sightings of that dark assassin."); + e.other:Faction(e.self,223,5); -- Circle Of Unseen Hands + e.other:Faction(e.self,291,-1); -- Merchants of Qeynos + e.other:Faction(e.self,230,1); -- Corrupt Qeynos Guards + e.other:Faction(e.self,5004,-1); -- Guards of Qeynos + e.other:Faction(e.self,273,1); -- Kane Bayle + e.other:QuestReward(e.self,0,0,0,0,24073,200000); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) + else + e.self:Say("Go away! We don't have time for the likes of you."); + end +end + +-- END of FILE zone: ID:12 -- Renux_Herkanor.pl diff --git a/qey2hh1/Rongol.lua b/qey2hh1/Rongol.lua new file mode 100644 index 0000000..6fead0b --- /dev/null +++ b/qey2hh1/Rongol.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Great!! I have fifty acres to seed and now I have visitors stopping by to waste my time!!"); + elseif(e.message:findi("follower of Karana")) then + e.self:Say("Yes. I am a follower of Karana, the Rainkeeper. It is He who keeps the plains fertile."); + elseif(e.message:findi("blanket")) then + e.self:Say("With the frequent rains, I find my only need is a blanket to keep me warm during the long cold nights. Thank Karana the temple has begun to send young paladins to deliver extra blankets."); + elseif(e.message:findi("karana bandits")) then + e.self:Say("The Karana bandits are rogues who operate in the plains. I have heard there are bounties for the bandits. Within the Temple of Thunder in Qeynos, Cleric Gehna offers one for bandit spectacles and Paladin Chesgard offers one for bandit sashes."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12102})) then + e.self:Say("Thank you, protector of Karana. This will be handy when the cold rushes into the valley. Allow me to offer you some provisions for your journey. And, might I add, the [Karana bandits] have begun to operate much closer to Qeynos."); + e.other:Faction(e.self,345,5,0); -- Faction: Karana Residents + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,341,1,0); -- Faction: Priests of Life + e.other:Faction(e.self,280,1,0); -- Faction: Knights of Thunder + e.other:QuestReward(e.self,math.random(20),0,0,0,0,2000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qey2hh1/Ronly_Jogmill.lua b/qey2hh1/Ronly_Jogmill.lua new file mode 100644 index 0000000..ec8922d --- /dev/null +++ b/qey2hh1/Ronly_Jogmill.lua @@ -0,0 +1,15 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("No time to talk!! I must be on my way. I am in a race with the paladins from the Temple of Life."); + end +end + +function event_death(e) + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(840); +end diff --git a/qey2hh1/Ryshon_Hunsti.lua b/qey2hh1/Ryshon_Hunsti.lua new file mode 100644 index 0000000..511fbc7 --- /dev/null +++ b/qey2hh1/Ryshon_Hunsti.lua @@ -0,0 +1,19 @@ +-- Part of Ghoulbane quest + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Hello, %s. What brings you to the Karanas? Do you seek [enlightenment]?",e.other:GetName())); + elseif(e.message:findi("enlightenment")) then + e.self:Say("Ahh, i could see by the look in your eyes that you are looking for something more than just enlightenment. Perhaps you are looking for a [sword] crafted by a noble man."); + elseif(e.message:findi("looking for a sword")) then + e.self:Say("It is not just a sword friend. It is much more than that. This sword carries with it special [power], something unlike anything else within this realm."); + elseif(e.message:findi("power")) then + e.self:Say("It is an instrument fashioned together by a noble man. It is said to be blessed by the gods themselves. Only a man who comes from nobility may wield it. Do you seek the [sword of nobility]?"); + elseif(e.message:findi("sword of nobility")) then + e.self:Say("I see. Then take this note to Kanthuk Ogrebane. I've been told he can be found fishing not far from the dwarven city."); + e.other:SummonCursorItem(2416); -- Item: Note to Kanthuk + end +end + +-- Quest edited by mystic414 +-- Converted to Lua by robregen \ No newline at end of file diff --git a/qey2hh1/Sera_McMannus.lua b/qey2hh1/Sera_McMannus.lua new file mode 100644 index 0000000..3c67195 --- /dev/null +++ b/qey2hh1/Sera_McMannus.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well, let's not just stand here gawking! Please purchase something or move on.") + elseif(e.message:findi("halas")) then + e.self:Say("Halas is the mighty city of the barbarians of the North. It lies among the Everfrost Peaks.") + elseif(e.message:findi("frostbite")) then + e.self:Say("Frostbite is our trusty wolf. We found him as a pup.") + elseif(e.message:findi("ulrich")) then + e.self:Say("He is my brother and the oldest of my siblings.") + elseif(e.message:findi("misla")) then + e.self:Say("She is my sister.") + elseif(e.message:findi("einhorst")) then + e.self:Say("He is my father. We hail from Halas.") + elseif(e.message:findi("lars")) then + e.self:Say("He is my brother.") + elseif(e.message:findi("brenzl")) then + e.self:Say("He is my brother and a fine bowyer and net maker.") + elseif(e.message:findi("junth")) then + e.self:Say("He is my brother.") + elseif(e.message:findi("wolves of the north")) then + e.self:Say("The Wolves of the North are the barbarian warriors of Halas. All of us in Clan McMannus are members. Mess with us and you mess with the Wolves of the North.") + elseif(e.message:findi("mother")) then + e.self:Say("Unfortunately, she passed away a year ago. She was killed while defending our dogs from a giant. Do not ask our father, Einhorst, about our mother, Helsa. He does not need to be reminded.") + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("I never knew Antonius Bayle to be such a tyrant. This cannot be his law!"); + end +end diff --git a/qey2hh1/Tolony_Marle.lua b/qey2hh1/Tolony_Marle.lua new file mode 100644 index 0000000..da025ca --- /dev/null +++ b/qey2hh1/Tolony_Marle.lua @@ -0,0 +1,15 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("No time to talk!! I must be off. The grains of sand are falling and I must prove that we paladins from the Temple of Thunder are the quickest."); + end +end + +function event_death(e) + local sp = e.self:GetSpawnPointID(); + local spawn = eq.get_entity_list():GetSpawnByID(sp); + spawn:SetRespawnTimer(840); +end diff --git a/qey2hh1/Tukk.lua b/qey2hh1/Tukk.lua new file mode 100644 index 0000000..befaa72 --- /dev/null +++ b/qey2hh1/Tukk.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Great!! I have fifty acres to seed and now I have visitors stopping by to waste my time!!"); + elseif(e.message:findi("follower of Karana")) then + e.self:Say("Yes. I am a follower of Karana, the Rainkeeper. It is He who keeps the plains fertile."); + elseif(e.message:findi("blanket")) then + e.self:Say(string.format("With the frequent rains, I find my only need is a blanket to keep me warm during the long cold nights. Thank Karana the temple has begun to send young %s to deliver extra blankets.",e.other:Class())); + elseif(e.message:findi("karana bandits")) then + e.self:Say("The Karana bandits are rogues who operate in the plains. I have heard there are bounties for the bandits. Within the Temple of Thunder in Qeynos, Cleric Gehna offers one for bandit spectacles and Paladin Chesgard offers one for bandit sashes."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12102})) then + e.self:Say("Thank you, protector of Karana. This will be handy when the cold rushes into the valley. Allow me to offer you some provisions for your journey. And, might I add, the [Karana bandits] have begun to operate much closer to Qeynos."); + e.other:Faction(e.self,345,5,0); -- Faction: Karana Residents + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,341,1,0); -- Faction: Priests of Life + e.other:Faction(e.self,280,1,0); -- Faction: Knights of Thunder + e.other:QuestReward(e.self,math.random(20),0,0,0,0,2000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qey2hh1/Ulrich_McMannus.lua b/qey2hh1/Ulrich_McMannus.lua new file mode 100644 index 0000000..4ccce70 --- /dev/null +++ b/qey2hh1/Ulrich_McMannus.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the village of McMannus. We sell many goods. Feel free to look around - just keep your hands to yourself and mind [Frostbite]. Good day."); + elseif(e.message:findi("frostbite")) then + e.self:Say("Frostbite is my trusty pet and dearest friend. I trained him since he was nothing more than a pup. He can sniff out any danger with his keen sense of smell. He is quite good at [tracking prey].") + elseif(e.message:findi("searching for the fugitive")) then + e.self:Say("Searching for someone, eh? You will most likely never find them on the plains. This is a vast area. I could have Frostbite help you search. He is quite good at [tracking prey]."); + elseif(e.message:findi("tracking prey")) then + e.self:Say("Frostbite can track down anyone, be they man or beast. All one needs to do is obtain a SWEATY piece of clothing recently worn by the one you seek."); + elseif(e.message:findi("halas")) then + e.self:Say("Halas is the mighty city of the barbarians of the North. It lies among the Everfrost Peaks.") + elseif(e.message:findi("junth")) then + e.self:Say("He is my brother.") + elseif(e.message:findi("misla")) then + e.self:Say("She is my sister.") + elseif(e.message:findi("einhorst")) then + e.self:Say("He is my father. We hail from Halas.") + elseif(e.message:findi("sera")) then + e.self:Say("She is my sister and the youngest of the clan.") + elseif(e.message:findi("brenzl")) then + e.self:Say("He is my brother and a fine bowyer and net maker.") + elseif(e.message:findi("lars")) then + e.self:Say("He is my brother.") + elseif(e.message:findi("wolves of the north")) then + e.self:Say("The Wolves of the North are the barbarian warriors of Halas. All of us in Clan McMannus are members. Mess with us and you mess with the Wolves of the North.") + end +end + +-- END of FILE Zone:qey2hh1 ID:5187 -- Ulrich_McMannus \ No newline at end of file diff --git a/qey2hh1/Vilnius_the_Small.lua b/qey2hh1/Vilnius_the_Small.lua new file mode 100644 index 0000000..2671928 --- /dev/null +++ b/qey2hh1/Vilnius_the_Small.lua @@ -0,0 +1,44 @@ +-- Rogue Epic NPC -- Vilnius_the_Small + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("" .. e.other:GetCleanName() .. ", just because I am short don't mean I can't bounce your " .. e.other:Race() .. " rump all over these hills. Now, do you have something for me, or are you just in search of a rump bouncing?"); + elseif(e.message:findi("rump")) then + e.self:Say("My pleasure to oblige you then. Shall I start on the left side or the right side?"); + eq.attack(e.other:GetName()); + elseif(e.message:findi("stanos")) then + e.self:Say("If you need to ask that question, you do not need to know the answer. At least not from me."); + elseif(e.message:findi("who.* you")) then + e.self:Say("Vilnius, as I have told you. And yes, I am not as large as most of my kin. But that is a blessing, because my brain is bigger than that of an $race. I am a Facilitator. I.. facilitate.. jobs. You want something somebody else has, I can arrange for you to have it.. even if that something is their life. That is why I am here now, waiting on something to turn up in my hands before I pass it on to my client. Though I am a bit tired of waiting. My hired help seem to be delayed."); + elseif(e.message:findi("malka")) then + e.self:Say("Malka Rale works for me from time to time. One of the best thieves I have ever met, and damn handy with a blade. She is long overdue to meet me here. I'm afraid she may have run into trouble in Qeynos."); + elseif(e.message:findi("delayed")) then + e.self:Say("Yes, delayed. She has always been prompt in the past, but she is several days overdue, and I know for a fact she completed the job. I am beginning to wonder if something happened to her. I would go check, but I run the risk of missing her if she shows up here."); + elseif(e.message:findi("job")) then + e.self:Say("I need a few more items for a collector. They are rare and valuable, but I will pay you well for your trouble. I need the sword owned by the king of the Frogloks, the sword my distant cousin Karg is so proud of, and the matched set of Painbringer and Fleshripper, held by the kobolds. Return those to me quickly, and we will take it from there, eh?"); + elseif(e.message:findi("help")) then + e.self:Say("Oh, really? So you are willing to wade into Qeynos to track Malka down, or to find out what happened to her? Willing to take up the job if she failed? Willing to risk the wrath of the entire Circle of Unseen Hands? Wonderful, I do so appreciate enthusiasm! Send Malka back to me, or deliver the pouch she was hired to steal, either one. If that works out, maybe we can do more business, I am always looking for new people to help me... Facilitate."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "looks at you impatiently, expecting more."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28014})) then -- Stanos' Pouch + e.self:Say("Ah, very nice. Very nice indeed. Good work, and I hope Malka is able to make it out, good help is hard to find. But in the meantime, I am without an acquisition expert. Do you want the job?"); + e.other:QuestReward(e.self,0,0,0,0,0,1500); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5411,item2 = 5410,item3 = 5401,item4 = 5308},1,nil,text)) then -- Fleshripper, Painbringer, Mithril Two-Handed Sword, Gigantic Zweihander + e.self:Say("Very good, though how you managed to lug around all these oversized blades amazes me. I feel we can do business now, and Malka still has not shown up. Take this dagger. I had an old client who didn't, um.. pay.. so this was extracted from him. Right after it was inserted in him. For your next job, I need a collection of robes. The Robe of the Ishva, some Shining Metallic robes, an Oracle robe, and a Robe of the Kedge. I am not even sure where all these come from, but they are on my list here, and Rokyl is one of my best clients, so I figure that is your job."); + e.other:QuestReward(e.self,0,0,100,20,7506,3000); -- Jagged Diamond Dagger + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1357,item2 = 1253,item3 = 1354,item4 = 1360},1,nil,text)) then -- Robe of the Ishva, Robe of the Kedge, Robe of the Oracle, Shining Mettalic Robes + e.self:Say("You do good work, " .. e.other:Race() .. ". Here is another trinket for your trouble, you should be able to make use of it. Malka still hasn't made it back yet, and I have one more order to fill, if you're willing. This one should be easy. My sword collector has decided he wants rapiers now, of all things. He has asked for an Eyerazzia, a Martune Rapier, a Burning Rapier, and a well balanced rapier."); + e.other:QuestReward(e.self,0,0,200,15,7505,3000); -- Cazic Quill + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 7041,item2 = 7509,item3 = 7508,item4 = 7020},1,nil,text)) then -- Burning Rapier, Martune Rapier, Eyerazzia, Well-Balanced Rapier + e.self:Say("You never cease to amaze me! I never thought you " .. e.other:Race() .. " types could be so good at this sort of work. I have been stuck here and haven't any more trinkets to give you, but perhaps you could take this pouch to its new owner, since I do not have the time to deliver it myself. He will pay you in full, and you can just keep what he gives you, how does that sound? The owner is a man named Stanos Herkanor, and he or his friend Anson are supposed to meet me in Highpass this evening. Do not waste too much time getting there, he is a secretive man, and I can not guarantee he will be around long. Good luck, and maybe we will meet again. It is always a pleasure working with another professional such as yourself!"); + e.other:QuestReward(e.self,0,0,300,10,28014,3000); -- Stanos' Pouch + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:qey2hh1 ID:12019 -- Vilnius_the_Small \ No newline at end of file diff --git a/qey2hh1/Yiz_Pon.lua b/qey2hh1/Yiz_Pon.lua new file mode 100644 index 0000000..18fd100 --- /dev/null +++ b/qey2hh1/Yiz_Pon.lua @@ -0,0 +1,33 @@ +-- Hollow Skull + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Argh... The [beasts] are on my tail. They will find me soon... I gave them the [skull] and still they pursue me!"); + elseif(e.message:findi("skull")) then + e.self:Say("The skull of Wun Toque! I have found it. And have learned the location of its eyes! But now the [beasts] have it and I must flee..."); + elseif(e.message:findi("beasts")) then + e.self:Say("Here... No time left... Take this please... My brother [Hyrill] is staying in [Freeport]. Please... Ugh... Must keep moving..."); + e.other:SummonCursorItem(18010); -- Item: Torn Parchment + eq.unique_spawn(12005,0,0,-15467,1118,21,0):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(12006),1); + eq.set_timer("assassin",60000); + elseif(e.message:findi("hyrill") or e.message:findi("freeport")) then + e.self:Say("There is no time... must keep moving... ugh."); + end +end + +function event_timer(e) + if(e.timer == "assassin") then + eq.stop_timer("assassin"); + e.self:Say("Leave me be! I have friends all over the Commonlands who will avenge me!"); + eq.depop_with_timer(); + end +end + +function event_combat(e) + if(e.joined and eq.get_entity_list():IsMobSpawnedByNpcTypeID(12005)) then + eq.get_entity_list():GetMobByNpcTypeID(12005):Say("You cannot escape the claws of Splitpaw!"); + e.self:Say("He has found me! Help meeeeeee!"); + end +end + +-- END of FILE zone: ID:12167 -- Yiz_Pon.pl \ No newline at end of file diff --git a/qey2hh1/a_wandering_spirit.lua b/qey2hh1/a_wandering_spirit.lua new file mode 100644 index 0000000..b02adb1 --- /dev/null +++ b/qey2hh1/a_wandering_spirit.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stops and flashes brightly for a moment. It seems to be regarding you with interest."); + eq.pause(30); + elseif(e.other:GetFactionValue(e.self) >= 300) then + if(e.message:findi("shield of falsehood")) then + e.self:Say(string.format("Yes, I have taken Marr's Promise along with Woe and Envy and fashioned them together to create the Shield of Falsehood. Wield this in defense of possession and the weakness that comes with hoarding treasure instead of using it to accomplish your goals. May it serve you well, %s.",e.other:Race())); + e.other:SummonCursorItem(1679); + elseif(e.message:findi("last path")) then + e.self:Say("You have trusted us along the paths we have set before you. You have been known to be patient and await the right moment. And now, you have learned the wisdom to act in our best interest. However, one last path awaits, to determine if you have the ability to act out what must be done. There are many troubles about the world we try to rub out but none is more serious than the curse on what the wasichu call the Emerald Jungle. Go there and find one of our spirits. Show them the gem you have been given and follow the path they set you on."); + e.other:SummonCursorItem(1668); + end + end +end + +function event_trade(e) + local qglobals = eq.get_qglobals(e.self,e.other); + local item_lib = require("items"); + local text = "You are close to passing the test, keep up the good work."; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1667})) then -- Part of Shaman Epic 1.0 + e.self:Say("Oh, it is you, shaman! Good! You must hurry before it's too late. Go now to the Mountains they call Rathe and find them! They need your help quickly! They will know you when they see you and instruct you on how you can help, but you must hurry!"); + e.other:Faction(e.self,404,100,0); -- Faction: True Spirit + e.other:QuestReward(e.self,0,0,0,0,0,1000); + elseif(e.other:GetFactionValue(e.self) >= 200 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1675,item2 = 1676,item3 = 1677},1,text)) then -- Part of Shaman Epic 1.0 + e.self:Emote("nods somberly and takes the items. After a moment, he says, 'It is unfortunate that it came to this, but nothing else was to be done. Both paragons had lost sight of their virtures to protect the items given to them. The mere protection of these material belongings was not as important to Mithaniel Marr or Bertoxulous as it was that they act with righteousness in their minds and purpose in their hearts. You saw this and acted accordingly. For that, we will reward you with the three treasures made into one to ward off the falsehood of possession, the [Shield of Falsehood]. You have walked the path and now, as your final test, we must set you along one [last path].'"); + e.other:Faction(e.self,404,100,0); -- Faction: True Spirit + e.other:QuestReward(e.self,0,0,0,0,0,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1669,item2 = 1670})) then -- Part of Shaman Epic 1.0 + e.self:Say("This is a sad day. You have failed and strayed from the path set before you. Please try to live as close to the spirits as you are able, though this is the closest you will ever get."); + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1669})) then -- Part of Shaman Epic 1.0 + e.self:Say("This is a sad day. You have failed and strayed from the path set before you. Please try to live as close to the spirits as you are able, though this is the closest you will ever get."); + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1670})) then -- Part of Shaman Epic 1.0 + e.self:Say("This is a sad day. You have failed and strayed from the path set before you. Please try to live as close to the spirits as you are able, though this is the closest you will ever get."); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Submitted by: Jim Mills (Gilmore Girls`Is`Awesome`XOXO) +-- converted to lua by: robregen diff --git a/qeynos/#D-mitrious_Irska.lua b/qeynos/#D-mitrious_Irska.lua new file mode 100644 index 0000000..07f1231 --- /dev/null +++ b/qeynos/#D-mitrious_Irska.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("shall we continue")) then + e.self:Say("Now that the scepter has been properly modified for the task, you must keep it safe for now. Your next task will be to seek out two more components, for the original components and the spells describing how they were forged are lost forever -- destroyed by Urwenae's second and final pupil who went mad while attempting to fulfill his duty. The Essence of Storms must be retrieved, and there is only one place within the whole of Norrath's prime or astral realms that it can be found -- the Plane of Sky. There is a being known as The Storm Mistress who dwells there. Seek her out and retrieve the Essence of Storms from her ethereal being. Do not worry yourself over what seems to be a gruesome murder and thieving, for she will coalesce again as all immortal, planar beings do in time. The second item that you must retrieve is the Cloudy Azure Sphere, which lies in the hands of [Priestess Auraia] in the depths of Kedge Keep."); + elseif(e.message:findi("priestess auraia")) then + e.self:Say("Auraia was once a priestess of the Prime Healer. Upon her travels throughout the world of Norrath, she stumbled blindly into the castle grounds of Mistmoore. Fortunately, it was during the daylight hours and she did not need to wander far before discovering the error of their ways. Quickly, she attempted to turn back, fearfully respecting the wish for privacy that is heavily guarded and ferociously enforced by the vampire lord's undead servants. As she made her way out of the castle grounds and returned to the boundaries of the Lesser Faydark forest, Auraia happened upon a recently discarded azure sphere. She had no idea what the sphere was intended for - at first likely thinking it the lost toy of some Koada'Dal or gnomish child. However, she was intrigued by it and threw it in her pack for a later inquiry and inspection. Eventually, Auraia heard tales of the ancient underwater city known as Kedge Keep from her Koada'Dal hosts in Felwithe. The intrigue was too much for this young adventurer to bear and so"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9233,item2 = 9234})) then -- Scepter of Storms and Scroll of the Tempest Eye + e.self:Say("The Scepter of Storms. . . but how could this be? You have spoken with Shayna, yes? I see that she has found one to retrieve the stolen tome. But what is even more intriguing is the acquisition of the scepter itself. I am impressed and these items represent your deeds better than any arrogant boasting that I hear day in and day out from the other youths of the order. Aaaah and yes, you have the scroll! Well then, we cannot let an opportunity like this slip through our fingers, now can we?'' The mage quickly eyes the scroll before closing his eyes and beginning an arcane chant. The scroll in his hand begins to smolder, although the page is not damaged. A glowing silver image of a swirling storm seems to reflect off the surface of the parchment. Then, the scepter begins to slightly chime and runes begin to magically imbed themselves into the scepter's base. The mage opens his eyes and extends the scepter to you, ''Now then, [shall we continue]?"); + e.other:Faction(e.self,1597,5); -- Residents of Jaggedpine + e.other:Faction(e.self,272,2); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,2); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,17170,2000); -- Scepter of Storms (container) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 9236,item2 = 9235})) then -- Cloudy Azure Sphere and Essence of the Storm + e.self:Emote("studies both items intently, muttering softly to himself at an inaudible tone. Eventually, the mage closes his eyes and begins to chant, the melodic weave of arcane words causing the essence to shimmer with the brilliance of an electrical storm. Slowly, he brings both hands together, sealing the ethereal essence within the magical sphere -- a union that forces a loud boom, the voice of thunder, to echo throughout the hall. D'mitrious opens his eyes and examines the completed orb and nods to himself, 'This should be sufficient. Take it and place it within the scepter. When the two enchanted items are united, the Orb of the Storm Caller will be forged.'"); + e.other:Faction(e.self,1597,10); -- Residents of Jaggedpine + e.other:Faction(e.self,272,5); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,5); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,9237,5000); -- Orb of Storms + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/#Donally_Stultz.lua b/qeynos/#Donally_Stultz.lua new file mode 100644 index 0000000..23528b7 --- /dev/null +++ b/qeynos/#Donally_Stultz.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + eq.set_timer("depop",1800000); +end + +function event_say(e) + if(e.message:findi("bloodsaber")) then + e.self:Say("Of course I'm a Bloodsaber, you fool! I've just returned from the Plains of Karana where I was reveling in the glory of the Plaguebringer. Now then, since I see that this foolish investigator is with you, I suppose you want me to sign a confession document or something like that? Well, let's have it then!"); + eq.set_timer("depop",90000); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2344})) then + e.self:Emote("crumples the document into a ball, throws it to the ground and spits in your face, yelling, 'You are a fool if you really believe I would sign such a thing. Prepare to die!'"); + eq.attack(e.other:GetName()); + eq.set_timer("depop",300000); + end + item_lib.return_items(e.self, e.other, e.trade, e.text) +end + +function event_timer(e) + if(e.timer == "depop") then + e.self:Say("You aren't bringing me in alive and since I don't feel like dying today, I'm outta here!"); + eq.depop(); + end +end diff --git a/qeynos/#Guard_Sylus.lua b/qeynos/#Guard_Sylus.lua new file mode 100644 index 0000000..efcc383 --- /dev/null +++ b/qeynos/#Guard_Sylus.lua @@ -0,0 +1,6 @@ +function event_waypoint_arrive(e) + if(e.wp == 4) then + e.self:Say("Come along, prisoner."); + eq.signal(1183,1); -- NPC: #Riley_Shplots + end +end diff --git a/qeynos/#Lanhern_Firepride.lua b/qeynos/#Lanhern_Firepride.lua new file mode 100644 index 0000000..77e3547 --- /dev/null +++ b/qeynos/#Lanhern_Firepride.lua @@ -0,0 +1,38 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Why, hello there!! What is a powerful adventurer such as yourself doing in a dive like this? I hope it is buying little ol' me a drink...?"); + elseif(e.message:findi("donation.* temple.* thunder") or e.message:findi("donate.* temple.* thunder")) then + e.self:Say("Yes, yes, yes. We will talk about donations, but first, how about [offering a lonely woman a drink]?"); + elseif(e.message:findi("offer.* drink") or e.message:findi("Ogre Swill")) then + e.self:Say("I would love a drink. I prefer Ogre Swill. Just don't [ask what my sign is] or call me [beautiful]."); + elseif(e.message:findi("sign") or e.message:findi("beautiful")) then + e.self:Say("How original. Why don't you take a long walk off the short Qeynos Pier?"); + elseif(e.message:findi("superior armor")) then + e.self:Say("Our forge skills were acquired from the armor lords of Kaladim, as were our [drinking skills]."); + elseif(e.message:findi("drinking skill")) then + e.self:Say("I learned the love of ale from the dwarves of Kaladim. Maybe someday I sall see you in the backroom at Fish's. If I do, don't forget to buy me an Ogre Swill."); + elseif(e.message:findi("husband") or e.message:findi("ton")) then + e.self:Say("My husband is quite adept in the art of smithing. We set up shop here but a season ago. We hope to one day be as successful as [Brohan] Ironforge."); + elseif(e.message:findi("brohan")) then + e.self:Say("Brohan Ironforge is the owner of Ironforge's in the northern part of Qeynos. He seems to be a good man with good skills. He also has the honor of siring the most handsome man in Qeynos. [Dren] is certainly quite an exceptional man."); + elseif(e.message:findi("dren")) then + e.self:Say("Dren Ironforge is only the most eligible bachelor in Qeynos! Not only has he graced this city with his good looks and charm, he will someday inherit the Ironforge Estate. What a catch he would be!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Mmmm. Ahh... That was delicious. How about another?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13038,item2= 13038,item3 = 13038,item4 = 13038},1,text)) then + e.self:Say("Mmmm... Thank you. Here is a little dona... dona... mmmoney for your generosity."); + -- Confirmed Live Factions + e.other:Faction(e.self,291,1); -- Merchants of Qeynos + e.other:Faction(e.self,223,-1); -- Circle Of Unseen Hands + e.other:Faction(e.self,219,1); -- Antonius Bayle + e.other:Faction(e.self,229,1); -- Coalition of Tradefolk + e.other:Faction(e.self,262,1); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,13291,500); -- Donation (Lore #2) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/#Riley_Shplots.lua b/qeynos/#Riley_Shplots.lua new file mode 100644 index 0000000..ca39f1d --- /dev/null +++ b/qeynos/#Riley_Shplots.lua @@ -0,0 +1,31 @@ +function event_spawn(e) + eq.set_timer("depop",1800000); +end + +function event_say(e) + if(e.message:findi("bloodsaber")) then + e.self:Emote("shakes visibly and says, 'Oh, no. I knew this would happen one day. Please don't hurt me! I had very little to do with this plague, though it is quite a nice one, you must admit. I was just a courier. I'll come quietly. I don't want any trouble. My small contribution to the glory of Bertoxxulous has already been given but I certainly don't want to go to meet him just yet!'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2344})) then + e.other:QuestReward(e.self,{itemid = 2369}); -- Item: Rileys Confession + eq.set_global("invest_badge","second_suspect",3,"F"); + eq.unique_spawn(1201,0,0,-414,-11,-25,0); -- NPC: #Willie_Garrote + end + item_lib.return_items(e.self, e.other, e.trade, e.text) +end + +function event_signal(e) + if(e.signal == 1) then + eq.start(65); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end diff --git a/qeynos/#Willie_Garrote.lua b/qeynos/#Willie_Garrote.lua new file mode 100644 index 0000000..ab23c71 --- /dev/null +++ b/qeynos/#Willie_Garrote.lua @@ -0,0 +1,45 @@ +function event_spawn(e) + eq.set_timer("depop",1800000); +end + +function event_say(e) + if(e.message:findi("bloodsaber")) then + e.self:Say("A Bloodsaber? Of course I'm not, don't be ridiculous!"); + eq.signal(1031,1,5000); -- NPC: an_investigator + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2344})) then + e.self:Say("Here's your confession. I hope you choke on it!"); + e.other:QuestReward(e.self,{itemid = 2394}); -- Item: Willies Confession + eq.set_global("invest_badge","third_suspect",3,"F"); + eq.unique_spawn(1197,0,0,55,-341,-16,0); -- NPC: #Donally_Stultz + eq.set_timer("depop",300000); -- reset time for guard to escort him before depopping + end + item_lib.return_items(e.self, e.other, e.trade, e.text) +end + +function event_timer(e) + if(e.timer == "depop") then + e.self:Say("I'm outta here!"); + eq.stop_timer("depop"); + eq.depop(); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Emote("begins to perspire and says, 'Umm... Well, I don't know. It just started following me around. You know, like a puppy. I didn't actually RAISE it. Really. Come on!'"); + eq.signal(1031,2,5000); -- NPC: an_investigator + elseif(e.signal == 2) then + e.self:Say("You really believe that I would do that sort of thing? Undead scare me to death! Really, they do! You folks can not be serious about this, can you? Give me a break already!"); + eq.signal(1031,3,5000); -- NPC: an_investigator + elseif(e.signal == 3) then + e.self:Say("All right! Fine! I admit I've raised a few servants in my time. I hold no love for Antonius Bayle and frankly, I tire of keeping to the shadows and crawling through the blasted sewers as a second class citizen in my home town! I'll sign your blasted document but know that this is only the tip of the shark's fin you see sticking out of the water. The next and last thing you'll see are its teeth before you are consumed!"); + eq.set_timer("depop",90000); -- reset timer to 1 minutes to trade for document + elseif(e.signal == 4) then + eq.start(67); + end +end \ No newline at end of file diff --git a/qeynos/1005.lua b/qeynos/1005.lua new file mode 100644 index 0000000..2d8491f --- /dev/null +++ b/qeynos/1005.lua @@ -0,0 +1,3 @@ +function event_signal(e) + eq.depop(); +end \ No newline at end of file diff --git a/qeynos/1196.lua b/qeynos/1196.lua new file mode 100644 index 0000000..cde4bb3 --- /dev/null +++ b/qeynos/1196.lua @@ -0,0 +1,4 @@ +function event_spawn(e) + eq.spawn_condition("qeynos",3,0); + eq.spawn_condition("qeynos",4,0); +end \ No newline at end of file diff --git a/qeynos/Anehan_Treol.lua b/qeynos/Anehan_Treol.lua new file mode 100644 index 0000000..58c3ac2 --- /dev/null +++ b/qeynos/Anehan_Treol.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ah.. Hello there.. " .. e.other:GetCleanName() .. ", was it? Yes, right, " .. e.other:GetCleanName() .. ". Anyhow, my name's Anehan Treol, member of the League of Antonican Bards. Feel free to visit our humble guild house here in South Qeynos. It's called the Wind Spirit's Song and we often put on free shows there. I think you'd enjoy it. Anyway, nice chatting with you, and I hope to see you again soon."); + end +end + +function event_trade(e) + local item_lib =require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18021})) then + e.self:Say("Oh, report time already again? Yeah, here ya go, " .. e.other:GetCleanName() .. ". Be careful around here at night, I've been seeing some rough looking characters lurking about."); + e.other:Faction(e.self,284,10,0); -- Faction: League of Antonican Bards + e.other:Faction(e.self,281,1,0); -- Faction: Knights of Truth + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,304,-1,0); -- Faction: Ring of Scale + e.other:Faction(e.self,285,-1,0); -- Faction: Mayong Mistmoore + e.other:QuestReward(e.self,0,0,0,0,18022,200); -- Item: Anehans Report + end + item_lib.return_items(e.self, e.other, e.trade, e.text) +end diff --git a/qeynos/Barthal.lua b/qeynos/Barthal.lua new file mode 100644 index 0000000..6ca6acf --- /dev/null +++ b/qeynos/Barthal.lua @@ -0,0 +1,31 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks up a discarded item from the ground and says, 'Don't people have enough respect for our grand city to not throw things onto the streets?!"); + end + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! We've got the best prices in town.. No need to shop around.. Heh, heh. I think I'll make that my new slogan!"); + elseif(e.message:findi("donate") or e.message:findi("donation")) then + e.self:Say("Please do not request donations or handouts. I have no extra money. If I did I would rent a shop."); + end +end + +function event_signal(e) + if(e.signal == 1) then + eq.stop(); + e.self:MerchantCloseShop(); + elseif(e.signal == 2) then + eq.start(61); + e.self:MerchantOpenShop(); + elseif(e.signal == 3) then + e.self:Say("Heh.. Why don't you try Freeport.. or Erudin.. ANYwhere but here!"); + end +end diff --git a/qeynos/Bassanio_Weekin.lua b/qeynos/Bassanio_Weekin.lua new file mode 100644 index 0000000..e5454ba --- /dev/null +++ b/qeynos/Bassanio_Weekin.lua @@ -0,0 +1,29 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks up a discarded item from the ground and says, 'Don't people have enough respect for our grand city to not throw things onto the streets?!"); + end + end +end + +function event_signal(e) + if(e.signal == 1) then + eq.stop(); + e.self:MerchantCloseShop(); + elseif(e.signal == 2) then + eq.start(58); + e.self:MerchantOpenShop(); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Go to the taverns if you're looking for talk."); + elseif(e.message:findi("donate") or e.message:findi("donation")) then + e.self:Say("There shall be no donation from me. I have to look after myself first!"); + end +end diff --git a/qeynos/Behroe_Dlexon.lua b/qeynos/Behroe_Dlexon.lua new file mode 100644 index 0000000..d428285 --- /dev/null +++ b/qeynos/Behroe_Dlexon.lua @@ -0,0 +1,55 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -200) then -- verified faction amount + e.self:Say("Ah, greetings, " .. e.other:GetCleanName() .. "! How are you this evening? Hopefully, you are faring much better than I.. I'm stuck on the night watch here, and never get to see my lovely [Aenia]. Ah.. she is so sweet.. I wrote her this beautiful [ballad], but I fear she may never hear it."); + else + e.self:Say("The League of Antonican Bards is very displeased with your recent actions. And I don't particularly care for you, or your stench, either!"); + end + elseif(e.message:findi("aenia")) then + if(e.other:GetFactionValue(e.self) >= 50) then + e.self:Say("Aenia lives in North Qeynos in a little blue house near the Temple of Life with her overprotective father. Last time he caught me there, he nearly killed me!"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The League of Antonican Bards recognizes your past deeds, and appreciates what you have done for them. But, you must prove your dedication some more... I will say this, you are on the right track to earning our trust, friend."); + else + e.self:Say("The League of Antonican Bards is very displeased with your recent actions. And I don't particularly care for you, or your stench, either!"); + end + elseif(e.message:findi("ballad")) then + if(e.other:GetFactionValue(e.self) >= 50) then + e.self:Say("I wrote this little song for my dearest Aenia, but I can't sing it to her because I'm stuck here on watch duty. You have a nice voice, " .. e.other:GetCleanName() .. ", maybe you could go and sing my song to her for me, huh? Just make sure you don't sing to Aenia when her father's around, 'cause like I said, he's already tried to kill me for seeing her."); + e.other:SummonCursorItem(18026); -- Item: The Thornless Rose + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The League of Antonican Bards recognizes your past deeds, and appreciates what you have done for them. But, you must prove your dedication some more... I will say this, you are on the right track to earning our trust, friend."); + else + e.self:Say("The League of Antonican Bards is very displeased with your recent actions. And I don't particularly care for you, or your stench, either!"); + end + end +end + +function event_trade(e) + local item_lib =require("items"); + + if(e.other:GetFactionValue(e.self) >= 50 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18027})) then + e.self:Say("Ah, thank you, kind " .. e.other:GetCleanName() .. ". You've made two foolish lovebirds very happy. Please, take this.. Though it is not much, it will help keep you warm on those chilly Karana nights. It is very good to have a friend such as yourself, and I will one day repay you for your kindness and generosity."); + -- confirmed live factions + e.other:Faction(e.self,284,8,0); -- Faction: League of Antonican Bards + e.other:Faction(e.self,281,1,0); -- Faction: Knights of Truth + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,304,-1,0); -- Faction: Ring of Scale + e.other:Faction(e.self,285,-1,0); -- Faction: Mayong Mistmoore + e.other:QuestReward(e.self,0,0,0,0,1055,250) -- Shawl of the Wind Spirit + elseif(e.other:GetFactionValue(e.self) >= 50 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18021})) then + e.self:Emote("yawns and says, 'Oh, report time already again? Yeah, here ya go, " .. e.other:GetCleanName() .. ". Be careful around here at night, I've been seeing some rough looking characters lurking about."); + -- confirmed live factions + e.other:Faction(e.self,284,10,0); -- Faction: League of Antonican Bards + e.other:Faction(e.self,281,1,0); -- Faction: Knights of Truth + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,304,-1,0); -- Faction: Ring of Scale + e.other:Faction(e.self,285,-1,0); -- Faction: Mayong Mistmoore + e.other:QuestReward(e.self,0,0,0,0,18023,250); -- Item: Behroes Report + end + item_lib.return_items(e.self, e.other, e.trade, e.text) +end + +function event_death_complete(e) + e.self:Say("Your actions will not go unnoticed! The League of Antonican Bards has many members all over this continent."); +end diff --git a/qeynos/Belious_Naliedin.lua b/qeynos/Belious_Naliedin.lua new file mode 100644 index 0000000..271c33c --- /dev/null +++ b/qeynos/Belious_Naliedin.lua @@ -0,0 +1,59 @@ +function event_signal(e) + e.self:Say("Sure. Go Ahead and play it now, while the stage is clear."); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome, my name is Belious Naliedin of the League of Antonican Bards. A few years ago, I had finally saved up the money, and I bought this place. I settled in, and have been [working] here ever since."); + elseif(e.message:findi("working")) then + e.self:Say("Ah, this is my shop. I am a musician, well known for my ability both in tuning, and [building instruments.]"); + elseif(e.message:findi("building")) then + e.self:Say("Young bards are often not the wealthiest people in Norrath, and oftentimes, they have nothing to accompany their beautiful voices when they sing. If young bards are able to locate, and bring to me the [various parts] to assemble a lute with, I provide the labor for free."); + elseif(e.message:findi("parts")) then + e.self:Say("If you are able to find an unfinished lute body, an unfinished lute neck, a box of lute strings, and a set of fine lute tuners I will be able to craft for you one of the best sounding lutes that you have ever heard in your young life, and it will be yours, free of charge. It has long been my desire to help out any young men and women who wish to explore the bardic arts."); + elseif(e.message:findi("bard")) then + e.self:Say("A famous bard, you say? Why you must be seeking none other than the great Baenar Swiftsong! He is not here as you can see. Mayhap you seek an audience with him? He is a busy man and has not the time to speak with everyone who wishes to preoccupy his time with useless prattle! You are many and he is but one! Leave him be, I beg of you, to continue his songwriting in peace."); + elseif(e.message:findi("audience")) then + e.self:Emote("laughs briefly. 'Ah! In order to gain an audience with him, you must have a letter of introduction from me, otherwise he will not give you the time of day.'"); + elseif(e.message:findi("introduction")) then + e.self:Emote("looks around. 'Well, you want a letter of introduction, eh? I think that fifty shiny platinum pieces sounds like a good introduction to me, my friend.'"); + elseif(e.message:findi("carson") or e.message:findi("highpass")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Well, we all know that Carson McCabe runs Highpass Hold, the main passage to Eastern Antonica. Rumor has it that he has some big internal power struggle going on right now."); + else + e.self:Say("The League of Antonican Bards is very displeased with your recent actions. And I don't particularly care for you, or your stench, either!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18717})) then -- Tattered Note + e.self:Say("Good day friend, and welcome to the Wind Spirit's Song. Thank you for joining our cause. Go speak with Jusean Evanesque; I'm sure you'll fit in well."); + e.other:Faction(e.self,284,100,0); -- League of Antonican Bards + e.other:Faction(e.self,281,15,0); -- Knights of Truth + e.other:Faction(e.self,262,15,0); -- Guards of Qeynos + e.other:Faction(e.self,304,-5,0); -- Ring of Scale + e.other:Faction(e.self,285,-5,0); -- Mayong Mistmoore + e.other:QuestReward(e.self,0,0,0,0,13502,100); -- #Brown Tunic* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20374})) then + e.self:Say("A famous bard, you say? Why you must be seeking none other than the great Baenar Swiftsong! He is not here as you can see. Mayhap you seek an audience with him? He is a busy man and has not the time to speak with everyone who wishes to preoccupy his time with useless prattle! You are many and he is but one! Leave him be, I beg of you, to continue his songwriting in peace."); + e.other:QuestReward(e.self,0,0,0,0,0,100); + elseif(item_lib.check_turn_in(e.self, e.trade, {platinum = 50})) then + e.self:Say("Ah! Here is that letter of introduction I was looking for! Baenar likes to frequent a serene fountain in the southern Karanas. He finds the peace there accommodating to his work. He may even sing a tale for you if the mood strikes him."); + e.other:QuestReward(e.self,0,0,0,0,20373,100); -- Item: Letter of Introduction + elseif(e.other:GetFaction(e.self) <= 4 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13775, item2 = 13776, item3 = 13777, item4 = 13778})) then -- requires amiably faction + e.self:Say("Ok, great. See, assembling these isn't that hard. Add a few special touches, and there you go. Another beautiful Naliedin lute is born, and ears everywhere rejoice."); + -- Confirmed Live Factions + e.other:Faction(e.self,284,250,0); -- League of Antonican Bards + e.other:Faction(e.self,281,37,0); -- Knights of Truth + e.other:Faction(e.self,262,37,0); -- Guards of Qeynos + e.other:Faction(e.self,304,-12,0); -- Ring of Scale + e.other:Faction(e.self,285,-12,0); -- Mayong Mistmoore + e.other:QuestReward(e.self,0,0,0,0,13105,20000); -- Item: Custom Naliedin Lute + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:qeynos ID:1133 -- Belious_Naliedin diff --git a/qeynos/Bisdlo_Ravtahm.lua b/qeynos/Bisdlo_Ravtahm.lua new file mode 100644 index 0000000..7c8e868 --- /dev/null +++ b/qeynos/Bisdlo_Ravtahm.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("karana")) then + e.self:Say("Karana, the Rainkeeper, is the provider of the storms. If it were not for the storms of Karana, life would not flourish. All should pay tribute to the Rainkeeper."); + elseif(e.message:findi("bertoxxulous")) then + e.self:Say("Bertoxxulous, the Plaguebringer, is the Lord of Disease. It is he who smites Norrath with his diseases and imperfections. Those who follow him are called [Bloodsabers]."); + elseif(e.message:findi("bloodsaber")) then + e.self:Say("It is rumored that there is a shrine in the great city of Qeynos which pays homage to the Plaguebringer, Bertoxxulous. The members of this vile church of the damned are called the Bloodsabers. They are dreaded shadowknights, necromancers and evil clerics. It is our duty to destroy all who dare to pray to such a deity. Join our fight. Speak more of this matter with Chesgard Sydwend."); + elseif(e.message:findi("healer")) then + e.self:Say("If you need to be healed, I suggest you speak with the Priests of Life. You can find them in the Temple of Life on the other side of Qeynos. The only service you can pay for here is holy armor. Daedet Losaren charges followers of Karana for that blessing."); + end +end diff --git a/qeynos/Brin_Stolunger.lua b/qeynos/Brin_Stolunger.lua new file mode 100644 index 0000000..fae13fd --- /dev/null +++ b/qeynos/Brin_Stolunger.lua @@ -0,0 +1,46 @@ +function event_say(e) + + if(e.message:findi("Hail")) then + e.self:Say("What? What?!! Are we a [young steel warrior].. Or another [spectator] for the Arena?"); + elseif(e.message:findi("spectator")) then + e.self:Say("As I thought!! You shall be better off upon the ramparts of the arena. It would be dreadful to see a fine citizen injured in the arena."); + elseif(e.message:findi("young steel warrior")) then + if(e.other:GetFaction(e.self) <= 4) then -- requires amiably + e.self:Say("I say!! Good show!! I see the look of the warrior in you. Some day you may be as great as Brin Stolunger. Ha!! Still, you are surely wet behind the ears. You will need to polish your skills. Take this sack. Return it to me when you have filled it with 5 bat wings and 5 snake scales. Be sure you combine the contents of the bag before you give it back to me. Now, be off!!"); + e.other:SummonCursorItem(17935); -- Empty Arena Sack + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("The Steel Warriors have no cause to dislike you, but you have yet to truly prove your worth to this guild."); + else + e.self:Say("Your head shall look grand mounted on the wall of the Steel Warriors Arena!!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) <= 4) then -- requires amiably + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13399})) then -- Full Arena Sack + e.self:Say("Jolly good!! You are clearly on your way to being a fine addition to the Steel Warriors. Now you must take this message to the person noted. All shall be explained."); + -- Confirmed Live Factions + e.other:Faction(e.self,311,10,0); -- Steel Warriors + e.other:Faction(e.self,262,2,0); -- Guards of Qeynos + e.other:Faction(e.self,230,-1,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,330,-1,0); -- Freeport Militia + e.other:Faction(e.self,281,2,0); -- Knights of Truth + e.other:QuestReward(e.self,0,0,0,0,18893,10000); -- A Sealed Letter - lore: Note to Axe Broadsmith + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18895})) then -- Letter of Recommendation - lore: Letter of Recommendation from Axe + e.self:Say("So I see you have performed the test of undead. Good show. Now it is time you truly tested your mettle. Take this note to Grahan Rothkar. He can be found beneath the arena in the pens. May you live to join our brotherhood."); + -- Confirmed Live Factions + e.other:Faction(e.self,311,10,0); -- Steel Warriors + e.other:Faction(e.self,262,2,0); -- Guards of Qeynos + e.other:Faction(e.self,230,-1,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,330,-1,0); -- Freeport Militia + e.other:Faction(e.self,281,2,0); -- Knights of Truth + e.other:QuestReward(e.self,math.random(10),0,0,0,18894,20000); -- A Sealed Letter - lore: Letter to Grahan Rothkar + end + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- end -- quests/qeynos/Brin_Stolunger diff --git a/qeynos/Bruno_Barstomper.lua b/qeynos/Bruno_Barstomper.lua new file mode 100644 index 0000000..1f614bf --- /dev/null +++ b/qeynos/Bruno_Barstomper.lua @@ -0,0 +1,15 @@ +function event_signal(e) + e.self:Say("Yeah, Yeah. I hope you fall in, you little creep."); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". Welcome to Fish's Ale. Have fun but watch your step. We get a rough crowd in here and I would hate to have to bust your head in if you started trouble."); + elseif(e.message:findi("trumpy")) then + e.self:Say("Trumpy? That little chunk of troll dung is around here most of the time. Try looking under the tables."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand"))then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + end +end diff --git a/qeynos/Byjan_Timbokker.lua b/qeynos/Byjan_Timbokker.lua new file mode 100644 index 0000000..445e75f --- /dev/null +++ b/qeynos/Byjan_Timbokker.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks up a discarded item from the ground and says, 'Don't people have enough respect for our grand city to not throw things onto the streets?!"); + end + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings! Please do not ask me to donate to the Knights of Truth or the Priests of Life. I have enough gold going to the city of Qeynos with all these new taxes!"); + end +end \ No newline at end of file diff --git a/qeynos/Caleah_Herblender.lua b/qeynos/Caleah_Herblender.lua new file mode 100644 index 0000000..102303b --- /dev/null +++ b/qeynos/Caleah_Herblender.lua @@ -0,0 +1,51 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, and welcome to my humble little shop. I sell and trade various goods for my fellow wizards of the Order of Three. My assistants, Hanlore and Drawna, specialize in magicians' and enchanters' goods and would be glad to help you, too."); + elseif(e.message:findi("bat fur") or e.message:findi("rat whiskers") or e.message:findi("beetle eye") or e.message:findi("experiment")) then + if(e.other:GetFactionValue(e.self) >= 50) then -- requires mid indifferent + if(e.message:findi("bat fur") or e.message:findi("rat whiskers") or e.message:findi("beetle eye")) then + e.self:Say("You can probably find some outside the city gates... in the hills and plains.") + elseif(e.message:findi("experiment")) then + e.self:Say("I need someone to gather up the three ingredients for a new spell I'm working on. I need some [rat whiskers], a [fire beetle eye], and a patch of [bat fur]. Thanks for helping me, young " .. e.other:GetCleanName() .. "."); + end + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Though the Order of Three appreciates your past efforts and deeds greatly, we do not feel we can trust you with such an important assignment just yet."); + else + e.self:Say("The Order of Three has been monitoring your recent activities, and we are appalled by you and your actions! Now, begone!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "All right. Remember, I need all three ingredients to test this spell out. Keep up the good work, " .. e.other:GetCleanName() .. "."; + + if(e.other:GetFactionValue(e.self) >= 50 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13071, item2 = 13069, item3 = 10307},1,text)) then -- requires mid indifferent + e.self:Say("Hmm. Good job, " .. e.other:GetCleanName() .. ", let's give this a try. Flame and fire. Heat and spark. Touch of Ro, light this dark! Ahh. It stills needs a little work, I guess. Thanks for your help, here's a little something for your effort."); + -- Confirmed Live Faction + e.other:Faction(e.self,342,5,0); + e.other:Faction(e.self,262,1,0); + e.other:Faction(e.self,221,-1,0); + e.other:Faction(e.self,296,-1,0); + -- Confirmed Live Experience + e.other:QuestReward(e.self,math.random(10),0,0,0,0,300); + end + local returned = item_lib.return_items(e.self, e.other, e.trade, false) + if ( returned ) then + e.self:Say("Though the Order of Three appreciates your past efforts and deeds greatly, we do not feel we can trust you with such an important assignment just yet."); + end +end + +function event_spawn(e) + eq.set_timer("repeat",350000); + end + +function event_timer(e) + e.self:Say("Drawna.. Are we all out of bat fur again?"); + eq.signal(1051,1); -- NPC: Drawna_Opimsor +end + +function event_signal(e) + e.self:Say("Hmmm.. Let's see if we can find someone to help replenish our stock of [rat whiskers] and [bat fur]. I need these items for a new little [experiment] I'm working on."); +end + diff --git a/qeynos/Captain_Rohand.lua b/qeynos/Captain_Rohand.lua new file mode 100644 index 0000000..3a41a54 --- /dev/null +++ b/qeynos/Captain_Rohand.lua @@ -0,0 +1,65 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, friend, and welcome to the Mermaid's Lure. Here, we sell fishing supplies and some imported goods from far-off lands. And, if you've got a few minutes, I could even tell you a [story] or two."); + elseif(e.message:findi("story")) then + e.self:Say("Stories? Stories? I saw more adventure before I was ten years tall than you'll see in your whole miserable existence. I've been everywhere, [Odus], [Faydwer], [Kunark]. . . You name it, and I can tell ya a little something 'bout it. . . If you buy me a sip of brandy, of course!"); + elseif(e.message:findi("odus")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You haven't lived until you've seen Odus. Erud was the first human to cross the sea, and he founded the great city of Erudin. The trade routes from here to Odus are busy and prosperous, but can also be very dangerous."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("faydwer")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I call Faydwer the home of the little people. They say the continent was named by the high elves when they landed on its shores long ago. I've even heard tales of an ancient elven vampire who lives there. . . Just another Felwithe legend, I'll bet!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("kunark")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Even I can't tell you much about that continent. Kunark is a tough place, populated by even tougher creatures. I hear the high elves of Faydwer have been trying for years to establish a small port on Kunark's hostile shores."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("antonica")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Antonica? You're standing on it! This is the largest continent on all of Norrath, as well as the most populated. We humans rule over most of Antonica, from this beautiful city to Everfrost, to Highpass and all the way to Freeport."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("tax")) then -- triggers without starting quest + e.other:Faction(e.self,291,-1,0); -- Faction: Merchants of Qeynos + e.self:Say("Argh! You curvy sea goblin! Taxes, you say?! Peh! I got your taxes right here! I sure don't get the services those taxes are supposed to provide! You can tell them ol' Captain Rohand said so!"); + e.other:SummonCursorItem(13177); -- Item: Rohands Tax Payment + end +end + +function event_trade(e) + local brandy = 0; + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13034, item2 = 13034, item3 = 13034, item4 = 13034}, 0)) then + brandy = 4; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13034, item2 = 13034, item3 = 13034}, 0)) then + brandy = 3; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13034, item2 = 13034}, 0)) then + brandy = 2; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13034}, 0)) then + brandy = 1; + end + + if(brandy > 0) then + repeat + e.self:Say("Yeah, this is just what I've been craving!"); + e.other:Faction(e.self,291,25,0); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,223,-5,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,219,3,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,229,2,0); -- Faction: Coalition of Tradefolk + e.other:Faction(e.self,262,5,0); -- Faction: Guards of Qeynos + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,0,10); + brandy = brandy - 1; + until brandy == 0 + end + item_lib.return_items(e.self, e.other, e.trade, e.text) + end diff --git a/qeynos/Captain_Tillin.lua b/qeynos/Captain_Tillin.lua new file mode 100644 index 0000000..dbe9a2f --- /dev/null +++ b/qeynos/Captain_Tillin.lua @@ -0,0 +1,68 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! Spend your time wisely in the city of Qeynos. Do not let your mind wander to thoughts of bravado or crime. My guards can easily put to rest any outbreaks. Good day to you, citizen!"); + elseif(e.message:findi("executioner")) then + e.self:Say("The executioner is quite an exceptional person. [Field Marshall Ralem] happened upon her while on a secret operation in Everfrost Peaks. They fought side by side against some creature the locals named Iceberg. The creature escaped. Ralem was grateful and eventually recruited her when she decided to separate from the guards of Halas."); + elseif(e.message:findi("field marshall ralem")) then + e.self:Say("Field Marshall Ralem Christof is in charge of a brigade of roving rangers, druids and warriors. He hails from the Jaggedpine. He is quite an exceptional ranger. No one is ever really sure where he is. His brigade is constantly on the move."); + end +end + +function event_signal(e) + e.self:Say("Ah. Good. You have arrived. [Executioner], could you please visit McNeal Jocub at Fish's Tavern. He has violated our laws and the sentence is death."); + eq.signal(1202); +end + +function event_trade(e) + local fang = 0; + + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13915, item2 = 13915, item3 = 13915, item4 = 13915}, 0)) then -- Gnoll Fang + fang = 4; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13915, item2 = 13915, item3 = 13915}, 0)) then + fang = 3; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13915, item2 = 13915}, 0)) then + fang = 2; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13915}, 0)) then + fang = 1; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18815}, 0)) then + e.self:Say("I heard you were on your way. I have called for the state [executioner]. She should be on her way now. She will deal with our friend, McNeal Jocub. Thank you for your help, citizen."); + e.other:Faction(e.self,262,40,0); -- Guards of Qeynos + e.other:Faction(e.self,219,6,0); -- Antonius Bayle + e.other:Faction(e.self,230,-6,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,223,-10,0); -- Circle of Unseen Hands + e.other:Faction(e.self,291,4,0); -- Merchants of Qeynos + e.other:QuestReward(e.self,math.random(10),math.random(9),math.random(5),0,13305,500); + eq.spawn2(1202,62,0,-412,75,-24,0); -- NPC: Executioner + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18912}, 0)) then + e.self:Say("So, an assassin has been sent to Qeynos! I shall have my guards keep an eye out for any suspicious looking visitors. As for you... you should speak with the Surefall Glade ambassador. Ambassador Gash is staying at the Lion's Mane Inn here in South Qeynos. Inform him that [an assassin has been sent to kill] him. Do not let the assassin near him!"); + -- confirmed live factions + e.other:Faction(e.self,262,5,0); -- Guards of Qeynos + e.other:Faction(e.self,219,1,0); -- Antonius Bayle + e.other:Faction(e.self,230,-1,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,223,-1,0); -- Circle of Unseen Hands + e.other:Faction(e.self,291,1,0); -- Merchants of Qeynos + e.other:QuestReward(e.self,math.random(10),math.random(9),math.random(5),0,0,500); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 8280}, 0)) then + e.self:Emote("scans the report with a furrowed brow. 'So the threat is worse then we had anticipated. The intelligence we have gathere is true. We have little time, return to Sergeant Caelin and give him these orders. Time is of the essence. Hurry now, these people are in grave danger and something must be done to stop this!"); + e.other:QuestReward(e.self,0,0,0,0,8287); + end + + if(fang > 0) then + repeat + e.self:Say("Very good! One less gnoll the people of Qeynos need to fear. Here is your bounty as promised."); + -- confirmed live factions + e.other:Faction(e.self,262,3); -- Guards of Qeynos + e.other:Faction(e.self,219,1); -- Antonius Bayle + e.other:Faction(e.self,230,-1); -- Corrupt Qeynos Guards + e.other:Faction(e.self,223,-1); -- Circle of Unseen Hands + e.other:Faction(e.self,291,1); -- Merchants of Qeynos + e.other:QuestReward(e.self,0,0,0,0,10070,4500); + fang = fang - 1; + until fang == 0 + end + + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:qeynos ID:1077 -- Captain_Tillin diff --git a/qeynos/Cassius_Messus.lua b/qeynos/Cassius_Messus.lua new file mode 100644 index 0000000..42f6c5c --- /dev/null +++ b/qeynos/Cassius_Messus.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail! What do think of [Lisera]? She aint' much to look at, but soon she will be singing again."); + elseif(e.message:findi("Lisera")) then + e.self:Say("Lisera is my lute. She sounds horrible. I need to get her tuned by a master tuner, but the League's Master Tuner is in the Plains of Karana for a while. If only.. hey!! You look like a fellow bard... You [interested in the job]?"); + elseif(e.message:findi("interested in the job")) then + if(e.other:GetFaction(e.self) <= 4) then -- requires amiably + e.self:Say("Great!! Here. Take Lisera to Vhalen Nostrolo. He is in the plains near the well, composing. He must tune it for me. Be very careful! Lisera is all I've got. If you complete this task and return with good news. I shall be glad to pass along an extra songsheet for a tune entitled 'Hymn of Restoration.'"); + e.other:SummonCursorItem(13114); -- Lisera Lute + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("I will share this with you when you find some way to better serve the League of Antonican Bards."); + else + e.self:Say("Flee at once, fool! As a member of the League of Antonican Bards I have heard songs of your vile ways!"); + end + elseif(e.message:findi("donate") or e.message:findi("donation")) then + e.self:Say("As a member of the League of Antonican Bards I am obligated to give all donations to this guild."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade,{item1 = 18803})) then + e.self:Say("Thank you! I am in your debt. Here is the songsheet as I promised. I shall sing of you one day."); + e.other:Faction(e.self,284,10,0); -- League of Antonican Bards + e.other:Faction(e.self,281,1,0); -- Knights of Truth + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:Faction(e.self,304,-1,0); -- Ring of scale + e.other:Faction(e.self,230,-1,0); -- Mayong Mistmoore + e.other:QuestReward(e.self,math.random(10),math.random(10),math.random(10),0,15007,100); -- Song: Hymn of Restoration + end + item_lib.return_items(e.self, e.other, e.trade, e.text) +end diff --git a/qeynos/Chesgard_Sydwen.lua b/qeynos/Chesgard_Sydwen.lua new file mode 100644 index 0000000..0b85bfa --- /dev/null +++ b/qeynos/Chesgard_Sydwen.lua @@ -0,0 +1,65 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("hail")) then + e.self:Say('May [Karana] guide you. Are you a [citizen of Qeynos] or a [visitor]?'); + elseif(e.message:findi("citizen of qeynos")) then + e.self:Say("Then I would urge you to attend daily services in the Temple of Thunder. You are a [member of Thunder] are you not? Or maybe I am mistaken and you are just [lost]."); + elseif(e.message:findi("lost") or e.message:findi("visitor")) then + e.self:Say("Then study and spread the words of Karana the Rainkeeper. May all the storms in your heart be controlled by the Rainkeeper. You are young to the world just as [Cheslin] is."); + elseif(e.message:findi("member of thunder")) then + if(fac <= 4) then + e.self:Say("I welcome you. Karana cares for all of His flock. He bestows a touch of His power upon the souls of the Clerics and Paladins of our temple. We look after His flock. Speaking of which, I require the assistance of a young paladin to [deliver provisions to needy members]."); + elseif(fac == 5) then + e.self:Say("Well, friend, the Temple of Thunder has recognized and appreciates your past deeds for us. But this matter is of vital importance to us and we need more proof of your devotion to our cause."); + else + e.self:Say("You have proven yourself not only an enemy of the Knights of Thunder, but an enemy of Karana himself. Now leave, sewer rat!"); + end + elseif(e.message:findi("karana bandit")) then + e.self:Say("In the Plains of Karana can be found the [Karana Bandits]. They plague our followers and dare to use the name of the Rainkeeper as title. For this, Karana commands their deaths. I have a bounty for every returned Bandit Sash, collectible by members only. For clerics, Gehna has a bounty on Binder Spectacles."); + elseif(e.message:findi("cheslin")) then + e.self:Say("My son, Cheslin, is currently in training to be a Qeynos Guard. I fear it was not his calling. He is not quite in our realm of reality. He spent too many years of playing games of warriors and dragons. He will be doing his first patrols in Qeynos Hills this week. If you are near there, I would appreciate it if you would watch and see him safely through his first patrols. Tell him I sent you."); + elseif(e.message:findi("deliver provisions to needy members")) then + if(fac <= 4) then + e.self:Say("Good show!! Here you are, young knight. Take these blankets to any resident who desires warmth. Ask them if they are followers of Karana, then ask if they require temple blankets. Be careful, the plains are quite dangerous for a young knight."); + e.other:SummonCursorItem(12102); -- Item: Temple Blankets + elseif(fac == 5) then + e.self:Say("Well, friend, the Temple of Thunder has recognized and appreciates your past deeds for us. But this matter is of vital importance to us and we need more proof of your devotion to our cause."); + else + e.self:Say("You have proven yourself not only an enemy of the Knights of Thunder, but an enemy of Karana himself. Now leave, sewer rat!"); + end + elseif(e.message:findi("Karana") or e.message:findi("Rainkeeper")) then + e.self:Say("Karana, the Rainkeeper, is the provider of the storms. If it were not for the storms of Karana, life would not flourish. All should pay tribute to the Rainkeeper."); + elseif(e.message:findi("Bertoxxulous")) then + e.self:Say("Bertoxxulous, the Plaguebringer, is the Lord of Disease. It is he who smites Norrath with his diseases and imperfections. Those who follow him are called [Bloodsabers]."); + elseif(e.message:findi("Bloodsabers")) then + e.self:Say("It is rumored that there is a shrine in the great city of Qeynos which pays homage to the Plaguebringer, Bertoxxulous. The members of this vile church of the damned are called the Bloodsabers. They are dreaded shadowknights, necromancers and evil clerics. It is our duty to destroy all who dare to pray to such a deity. Join our fight. Speak more of this matter with Chesgard Sydwend."); + elseif(e.message:findi("heal")) then + e.self:Say("If you need to be healed, I suggest you speak with the Priests of Life. You can find them in the Temple of Life on the other side of Qeynos. The only service you can pay for here is holy armor. Daedet Losaren charges followers of Karana for that blessing."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12100})) then + e.self:Say("Good work " .. e.other:Class() .. ". The Karana Bandits have been plaguing the Rainkeepers flock for some time. Take this as a small reward for your devotion. Continue the fight against the Karana Bandits. Ahh... I wish [Cheslin] was equally as skilled."); + -- random bronze item reward + -- Confirmed Live Factions + e.other:Faction(e.self,280,20,0); -- Knights of Thunder + e.other:Faction(e.self,221,-20,0); -- Blood Sabers + e.other:Faction(e.self,341,15,0); -- Priests of Life + e.other:Faction(e.self,262,15,0); -- Guards of Qeynos + e.other:QuestReward(e.self,math.random(10),math.random(10),math.random(10),math.random(2),eq.ChooseRandom(7012,7013,7014,7015,7016,5026,5027,5028,5029,5030,5031,5032,5033,5034,5035,5036,5037,6019,6021,6022,6023,6024,9002),6200); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18839})) then + e.self:Say("Hmmph!! My son is living in a fantasy world. Still, you have done well. Take this as a token of appreciation. It is not much, but it may come in handy."); + -- Backpack, Cast-Iron Warhammer, Raw-hide Gorget, Small Raw-hide Mask, Buckler + -- Confirmed Live Factions + e.other:Faction(e.self,280,10,0); -- Knights of Thunder + e.other:Faction(e.self,221,-10,0); -- Blood Sabers + e.other:Faction(e.self,341,7,0); -- Priests of Life + e.other:Faction(e.self,262,7,0); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(17005,6041,2139,2150,9001),1500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Daedet_Losaren.lua b/qeynos/Daedet_Losaren.lua new file mode 100644 index 0000000..c19c6c3 --- /dev/null +++ b/qeynos/Daedet_Losaren.lua @@ -0,0 +1,78 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + if(e.message:findi("hail")) then + e.self:Say("Welcome, " .. e.other:GetCleanName() .. ". I am Deadet Losaren, faithful priest of Karana. You appear to be in search of [guidance] or perhaps you are merely a [visitor to the temple of thunder] wishing the blessing of [holy armor]?"); + elseif(e.message:findi("guidance")) then + if(fac < 5) then + e.self:Say("So it is guidance you seek. You will begin on the bottom rung. There is much more to our temple than the bashing of foes. We will need you to [collect donations]."); + elseif(fac == 5) then + e.self:Say("Well, friend, the Temple of Thunder has recognized and appreciates your past deeds for us. But this matter is of vital importance to us and we need more proof of your devotion to our cause."); + elseif(fac > 5) then + e.self:Say("You have proven yourself not only an enemy of the Knights of Thunder, but an enemy of Karana himself. Now leave, sewer rat!"); + end + elseif(e.message:findi("collect donation")) then + if(fac < 5) then + e.self:Say("Then you are a new acolyte. Take this Chest of Faith into Qeynos and Qeynos Hills. Find me six residents will to donate to the Temple of Thunder. Combine these donations within the Chest of Faith and return it to me. Do so and I shall reward you with the spell 'Ward Undead.' Now go and spread the Word of Karana."); + e.other:SummonCursorItem(17925); -- Chest of Faith (container) + elseif(fac == 5) then + e.self:Say("Well, friend, the Temple of Thunder has recognized and appreciates your past deeds for us. But this matter is of vital importance to us and we need more proof of your devotion to our cause."); + elseif(fac > 5) then + e.self:Say("You have proven yourself not only an enemy of the Knights of Thunder, but an enemy of Karana himself. Now leave, sewer rat!"); + end + elseif(e.message:findi("visitor to the temple of thunder")) then + e.self:Say("Then feel free to look around and speak with the priests and paladins of Thunder. May you find ways to serve the Rainkeeper."); + elseif(e.message:findi("holy armor")) then + e.self:Say("Holy Armor? I offer the blessing of Holy Armor to members in good standing of the Knights of Thunder. I must charge ten gold for the service. [Components] are expensive these days!"); + elseif(e.message:findi("components")) then + e.self:Say("Components are required for my daily tribute to the Rainkeeper. It is he whose power flows from my body. I require a faithful acolyte to [gather the required items]."); + elseif(e.message:findi("gather the required items")) then + if(fac < 5) then + e.self:Say("Very noble of you. Take this chest. I will require it to be filled with flame beetle eyes. Four normal beetles and four [Kerra Isle beetles]. Combine these items within the chest and return it to me. I shall reward you with the protection of Holy Armor."); + e.other:SummonCursorItem(17934); -- Beetle Eye Chest (container) + elseif(fac == 5) then + e.self:Say("Well, friend, the Temple of Thunder has recognized and appreciates your past deeds for us. But this matter is of vital importance to us and we need more proof of your devotion to our cause."); + elseif(fac > 5) then + e.self:Say("You have proven yourself not only an enemy of the Knights of Thunder, but an enemy of Karana himself. Now leave, sewer rat!"); + end + elseif(e.message:findi("Kerra Isle beetles")) then + e.self:Say("Kerra Isle beetles are normally found in the vicinity of the Kerra catpeople. They can be found in Kerra Ridge, but a closer and perhaps safer location would be on the island between Antonica and Odus. The outcast catpeople of that island are far less dangerous."); + elseif(e.message:findi("karana") or e.message:findi("Rainkeeper")) then + e.self:Say("Karana, the Rainkeeper, is the provider of the storms. If it were not for the storms of Karana, life would not flourish. All should pay tribute to the Rainkeeper."); + elseif(e.message:findi("Bertoxxulous")) then + e.self:Say("Bertoxxulous, the Plaguebringer, is the Lord of Disease. It is he who smites Norrath with his diseases and imperfections. Those who follow him are called [Bloodsabers]."); + elseif(e.message:findi("Bloodsabers")) then + e.self:Say("It is rumored that there is a shrine in the great city of Qeynos which pays homage to the Plaguebringer, Bertoxxulous. The members of this vile church of the damned are called the Bloodsabers. They are dreaded shadowknights, necromancers and evil clerics. It is our duty to destroy all who dare to pray to such a deity. Join our fight. Speak more of this matter with Chesgard Sydwend."); + elseif(e.message:findi("drosco")) then + e.self:Say("Have you knowledge of Sir Drosco? He is a Knight of Thunder and reports to Sir Wolten. He has been missing for quite some time. I believe Sir Wolten has begun a search for him."); + elseif(e.message:findi("healer")) then + e.self:Say("If you need to be healed, I suggest you speak with the Priests of Life. You can find them in the Temple of Life on the other side of Qeynos. The only service you can pay for here is holy armor. Daedet Losaren charges followers of Karana for that blessing."); + end + + +end + +function event_trade(e) + local fac = e.other:GetFaction(e.self); + local item_lib =require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {gold = 20}) and (fac < 5)) then + e.self:Say("This should help you remain safe."); + e.other:SelfCast(11); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13395})) then -- Beetle Eye Chest (closed) + e.self:Say("You have done well. Karana is pleased. I cannot say the same for the cat people. I now bestow upon you the knowledge of Holy Armor. Study the words and soon the power shall be bestowed upon you by the greatness that is the Rainkeeper."); + -- Confirmed Live Factions + e.other:Faction(e.self,280,10,0); -- Knights of Thunder + e.other:Faction(e.self,221,-10,0); -- Bloodsabers + e.other:Faction(e.self,341,7,0); -- Priest of Life + e.other:Faction(e.self,262,7,0); -- Guards of Qeynos + e.other:QuestReward(e.self,math.random(20),0,0,0,15011,200); -- spell:holy armor + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13289})) then -- Chest of Faith (closed) + e.self:Say("You have done supremely well, my young acolyte of Thunder. For your great service to the Temple of Thunder. Now go and cast the storm into the populace of Antonica."); + -- Confirmed Live Factions + e.other:Faction(e.self,280,10,0); -- Knights of Thunder + e.other:Faction(e.self,221,-10,0); -- Bloodsabers + e.other:Faction(e.self,341,7,0); -- Priest of Life + e.other:Faction(e.self,262,7,0); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,15218,200); -- spell:ward undead + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Daenor_Casthopur.lua b/qeynos/Daenor_Casthopur.lua new file mode 100644 index 0000000..5bc0a10 --- /dev/null +++ b/qeynos/Daenor_Casthopur.lua @@ -0,0 +1,18 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + if(e.message:findi("hail")) then + e.self:Say("Ah, hello there, " .. e.other:GetCleanName() .. ", and welcome to the Hall of Sorcery! I'm Daenor, a wizard of the Order of Three. I can help you practice your skills and learn some new ones."); + elseif(e.message:findi("neclo")) then + if(fac < 6) then -- requires indifferent + e.self:Say("Neclo Rheslar is an old friend of mine. Right now, he's out working in the Qeynos Hills. In fact, if you have some free time, you should go out and meet him. Here, if you go, take this note to him for me. Thanks, friend."); + e.other:SummonCursorItem(18823); -- Item: Note to Neclo + else + e.self:Say("The Order of Three has been monitoring your recent activities, and we are appalled by you and your actions! Now, begone!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Danaria_Hollin.lua b/qeynos/Danaria_Hollin.lua new file mode 100644 index 0000000..2df3366 --- /dev/null +++ b/qeynos/Danaria_Hollin.lua @@ -0,0 +1,43 @@ +function event_waypoint_arrive(e) + if(e.wp == 5) then + e.self:Say("I would like an Erudian tart, please."); + eq.signal(1110,1); -- NPC: Karn_Tassen + elseif(e.wp == 8) then + e.self:Say("Time in the pub shall keep them from advancing to the next level of the mind. When will they learn?"); + elseif(e.wp == 26) then + e.self:Say("A magnificent piece of workmanship! The clock, too."); + end +end + +function event_signal(e) + e.self:Say("Just get me the tart and put your eyes back in your sockets or I'll pry them out for good!"); +end + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then -- need exact faction + e.self:Say("Greetings! Nice to meet someone with manners. I do not see how you people stand to live in this madhouse of ruffians. I would have left weeks ago if I were not waiting for a delivery. Oh, well. Nice to have met you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("delivery")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I am in Qeynos to meet up with a fellow Erudite coming from Freeport. He is two weeks late and I fear the worst. I shall need to hire some lackey to go to Freeport to find him."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("find")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Yes, that might work. Please go to Freeport and find him. His name is Palatos Kynarn. Tell him that Danaria has sent you for the painting. And be quick about it! Thank you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("donate") or e.message:findi("donation")) then + e.self:Say("Why would I donate to such an inferior group of brutes? Go away! You will find no pity here."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/qeynos/Den_Magason.lua b/qeynos/Den_Magason.lua new file mode 100644 index 0000000..e4f4807 --- /dev/null +++ b/qeynos/Den_Magason.lua @@ -0,0 +1,75 @@ +function event_waypoint_arrive(e) + if(e.wp == 16 or e.wp == 43 or e.wp == 70) then + e.self:Say("Psst.. Hey, you there.. Yeah, you.. You need some [blank scroll sheets].. I just got a special shipment of things in.. Come on, it's just what you're looking for.. I know you."); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Oh, hey there.. How ya doing? My name's Den. I work for ol' [Rohand] here, unloading the [shipments] that come in from overseas."); + else + e.self:Say("Wha'? Another talking rat? Your reputation with the merchants in this town has put a price on your head... begone, before I decide to collect!"); + end + elseif(e.message:findi("rohand")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Ol' Captain Rohand is the owner of the Mermaid's Lure. He trades goods with sailors and sea [merchants]. I think that old man was even born at sea.. And he's got more stories than fish have scales."); + else + e.self:Say("Wha'? Another talking rat? Your reputation with the merchants in this town has put a price on your head... begone, before I decide to collect!"); + end + elseif(e.message:findi("shipments") or e.message:findi("merchants")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Yeah.. We get merchants and traders with goods from here to [Odus]."); + else + e.self:Say("Wha'? Another talking rat? Your reputation with the merchants in this town has put a price on your head... begone, before I decide to collect!"); + end + elseif(e.message:findi("blank scroll sheets")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Blank scroll sheets, huh? You know, there seems to be a shortage of these around here lately. But, hey friend, ol' Denny-boy here would never steer you wrong. I'll sell you some for 2 gold. I know, I'm too kind."); + else + e.self:Say("Wha'? Another talking rat? Your reputation with the merchants in this town has put a price on your head... begone, before I decide to collect!"); + end + elseif(e.message:findi("Odus")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Odus? I've never been there, but I hear it's a long journey."); + else + e.self:Say("Wha'? Another talking rat? Your reputation with the merchants in this town has put a price on your head... begone, before I decide to collect!"); + end + end +end + +function event_trade(e) + local item_lib =require("items"); + local text = "Ok, good job, but I still need the other ones, too. Get the rest of them, so I can ship them all to Odus."; + + if(item_lib.check_turn_in(e.self, e.trade, {gold = 2})) then + e.self:Say("Yeah, well, these are pretty hard to come by. In fact, these came all the way from Odus. Enjoy, and tell your buddies."); + -- Confirmed Live Factions + e.other:Faction(e.self,223,1,0); -- Circle of Unseen Hands + e.other:Faction(e.self,291,-1,0); -- Merchants of Qeynos + e.other:Faction(e.self,230,1,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,262,-1,0); -- Guards of Qeynos + e.other:Faction(e.self,273,1,0); -- Kane Bayle + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,18006,100); -- Item: Blank Scroll Sheets + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13784})) then + e.self:Say("All right, I'll make sure this gets put on the next boat to Erudin. But now, I need a favor of you. Since I'm stuck here working the docks all day, I need someone to run out to Qeynos Hills and bring me back various pelts and skins. I got a customer in Odus who is trying to get a new shop started, and he needs some samples. Bring me back some snake scales, a high quality bear skin, a high quality wolf skin, and some bat fur. Make sure the quality is good, I can't send him rags."); + -- Confirmed Live Factions + e.other:Faction(e.self,223,10,0); -- Circle of Unseen Hands + e.other:Faction(e.self,291,-1,0); -- Merchants of Qeynos + e.other:Faction(e.self,230,1,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,262,-1,0); -- Guards of Qeynos + e.other:Faction(e.self,273,1,0); -- Kane Bayle + e.other:QuestReward(e.self,0,0,0,0,0,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13070, item2 = 13752, item3 = 13755, item4 = 13069},1,text)) then -- Snake Scales, High Quality Bear Skin, High Quality Wolf Skin, Bat Fur + e.self:Say("Great... Hopefully he will like these samples, and order a lot more from me. Here's some gold for your efforts. Also, could you pass this note on to Ghil next time you talk to him? Thanks again."); + -- Confirmed Live Factions + e.other:Faction(e.self,223,20,0); -- Circle of Unseen Hands + e.other:Faction(e.self,291,-3,0); -- Merchants of Qeynos + e.other:Faction(e.self,230,3,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,262,-3,0); -- Guards of Qeynos + e.other:Faction(e.self,273,3,0); -- Kane Bayle + e.other:QuestReward(e.self,0,math.random(10),0,0,18796,50000); -- Note for Ghil + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Dionna.lua b/qeynos/Dionna.lua new file mode 100644 index 0000000..208ff90 --- /dev/null +++ b/qeynos/Dionna.lua @@ -0,0 +1,14 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13708})) then -- Note From Fabian + e.self:Say("Ah, well, Fabian said to give you this. It really is a good piece. Good luck!"); + e.other:Faction(e.self,284, 1,0); -- Faction: League of Antonican Bards + e.other:Faction(e.self,281, 1,0); -- Faction: Knights of Truth + e.other:Faction(e.self,262, 1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,304, -1,0); -- Faction: Ring of Scale + e.other:Faction(e.self,285, -1,0); -- Faction: Mayong Mistmoore + e.other:QuestReward(e.self,0,0,0,0,11010,5000); -- Placeholder Scroll, real reward Cloak of Hazy Memories was added after 2012 + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Drawna_Opimsor.lua b/qeynos/Drawna_Opimsor.lua new file mode 100644 index 0000000..245f53c --- /dev/null +++ b/qeynos/Drawna_Opimsor.lua @@ -0,0 +1,4 @@ +function event_signal(e) + e.self:Say("Yeah, it seems hard to come by lately. We're all out of rat whiskers."); + eq.signal(1118,1); -- NPC: Caleah_Herblender +end diff --git a/qeynos/Earron_Huntlan.lua b/qeynos/Earron_Huntlan.lua new file mode 100644 index 0000000..b06836c --- /dev/null +++ b/qeynos/Earron_Huntlan.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, thirsty adventurer! Please help yourself to the free salty snacks. We are here to serve you at the Lion's Main Tavern. Allow yourself to indulge from our wide selection oof fine spirits."); + elseif(e.message:findi("kwint")) then + if(e.other:GetFaction(e.self) <= 5) then -- requires indifferent faction + e.self:Say("Kwint? Gave you the line about being my brother, huh? That boy sends me more customers, I tells ya! I give him one free drink for every person he gets to come in. Hey, could you do me a favor and take this voucher to him when you are done drinking? Thanks."); + e.other:SummonCursorItem(18821); -- Item: A Scrap of Parchment + else + e.self:Say("Oh look, a talking lump of refuse. How novel!"); + end + end +end + +function event_trade(e) + local item_lib =require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18821})) then + e.self:Say("What the..? This voucher was for Kwint, not you! I will find someone more trustworthy to take it to him."); + -- Confirmed Live Factions + e.other:Faction(e.self,291,-25,0); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,223,5,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,219,-3,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,229,-2,0); -- Faction: Coalition of Tradefolk + e.other:Faction(e.self,262,-5,0); -- Faction: Guards of Qeynos + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Ebon_Strongbear.lua b/qeynos/Ebon_Strongbear.lua new file mode 100644 index 0000000..4ba68d0 --- /dev/null +++ b/qeynos/Ebon_Strongbear.lua @@ -0,0 +1,63 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome. I am the champion of the Steel Warriors. There are none who can challenge me. I guide this brotherhood of Steel Warriors. From Qeynos to the trade city of Freeport, the ways of the Steel Warriors are taught. I welcome all [young Steel Warriors]."); + elseif(e.message:findi("young steel warrior")) then + e.self:Say("Then listen well to the words of the trainers of this arena. Learn to aid our friends such as the Knights of Thunder, the Priests of Life, the rangers and druids of Surefall Glade, the monks of the Silent Fist Clan and always support the Qeynos Guards for many of our brothers have entered their ranks. Oh yes.. You can also trust the bards of this city, after all, they do perform at all of our major events. If you are a [new recruit] I have some tasks for you to complete."); + elseif(e.message:findi("I am a new recruit")) then + e.self:Say("I am always pleased to see new blood ready to serve the Steel Warriors. All new recruits are asked to go through training that I personally oversee. These training exercises will test both your mind body and spirit because they are not easily completed. If you are [ready to begin] I will explain to you how the tests work and present you with your Steel Warriors Assembly Kit."); + elseif(e.message:findi("ready to begin")) then + e.other:SummonCursorItem(17268); -- Item: Steel Warriors Assembly Kit + e.self:Say("Here is your Steel Warriors Assembly Kit. In this kit you will combine numerous [magical items] that can be infused in certain quantities to create an armor material. These armor materials can then be placed in a forge along with the correct mold to fashion a piece of Battlemasters Platemail Armor."); + elseif(e.message:findi("What magical items")) then + e.self:Say("The items you will need for your armor materials will be collected throughout the Qeynos area. You will find items that you need by hunting and by talking to local merchants. Once you are ready to begin collecting the items for an armor material you must simply tell me what piece you [want] to craft. I can provide you with the recipes and armor molds for Battlemasters Platemail [Helm], [Bracers], [Armguards], [Boots], [Greaves], [Gauntlets] and [Breastplate]."); + elseif(e.message:findi("helm")) then + e.other:SummonCursorItem(22610); -- creates Item ID: 27460, final combine produces Item ID 27358 + e.self:Say("To create your helm material you will need to combine 2 Bricks of Crude Iron, 1 Giant Whiskered Bat Eye, 1 Snake Scales and 1 Brandy in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Helm of the Battlemaster."); + elseif(e.message:findi("bracer")) then + e.other:SummonCursorItem(22611); -- creates item ID: 27461, final combine produces Item ID 27359 + e.self:Say("To create your bracer material you will need to combine 1 Brick of Crude Iron, 1 King Snake Poison Sac, 1 Gray Wolf Fang and 1 Rat Eye in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Bracer of the Battlemaster."); + elseif(e.message:findi("armguard")) then + e.other:SummonCursorItem(22613); -- creates item ID: 27460, final combine produces Item ID 27360 + e.self:Say("To create your armguards material you will need to combine 2 Bricks of Crude Iron, 2 Rabid Grizzly Skins, 1 Giant Bat Wing and 1 Mistletoe in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Armguards of the Battlemaster."); + elseif(e.message:findi("boot")) then + e.other:SummonCursorItem(22612); -- creates item ID: 27463, final combine produces Item ID 27361 + e.self:Say("To create your boot material you will need to combine 3 Bricks of Crude Iron, 1 Gnoll Backbone and 2 Ruined Blackburrow Gnoll Pelt in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Boots of the Battlemaster."); + elseif(e.message:findi("greave")) then + e.other:SummonCursorItem(22614); -- creates item ID: 27464, final combine produces Item ID 27362 + e.self:Say("To create your greaves material you will need to combine 4 Bricks of Crude Iron, 1 Giant Fire Beetle Brain, 1 Lion Tail, 1 Bottle and 1 Young Plains Cat Scalp in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Greaves of the Battlemaster."); + elseif(e.message:findi("gauntlet")) then + e.other:SummonCursorItem(22615); -- creates item ID: 27465, final combine produces Item ID 27363 + e.self:Say("To create your gauntlet material you will need to combine 3 Bricks of Crude Iron, 1 Spider Legs, 1 Brown Bear Paw, and 2 Mist Wolf Pelts in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Gauntlets of the Battlemaster."); + elseif(e.message:findi("breastplate")) then + e.other:SummonCursorItem(22616); -- creates item ID: 27466, final combine produces Item ID 27364 + e.self:Say("To create your breastplate material you will need to combine 5 Bricks of Crude Iron, 1 Thick Grizzly Bear Skin, 1 Woven Spider Silk, 1 Burned Out Lightstone, 1 Matted Lion Pelt and 1 Golden Bandit Tooth in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Breastplate of the Battlemaster. Once you have completed your breastplate and finished your armor please return to me for I have an [important mission] that I can only trust one of my finest warriors such as yourself with."); + elseif(e.message:findi("important mission")) then + e.self:Say("I have heard word that the corrupt guards are up to it again and this time one has gone too far. Guard Beris has stolen my sisters coinpurse by claiming it was due for city tax. This is not true because my family is held in high regard here and we always pay our taxes promptly. This was simply a ploy to steal money and I do not take kindly to that. I must ask that you retrieve my sisters coinpurse from Beris, he can usually be found in the hills fishing on his off-duty time. Bring me whatever you can from him along with 3 perfect gnoll skins and I will reward you with a finely refined blade for your trouble."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18707})) then -- Recruitment Flyer + e.self:Say("Welcome to the Hall of Steel, our swords are strong, and our warriors stronger. Here is our guild tunic. Brin Stolunger is in charge of our new recruits. Go see him, and he'll teach the basics. You look like you'll make a fine addition to our guild."); + e.other:Faction(e.self,311,100,0); -- Steel Warriors + e.other:Faction(e.self,262,20,0); -- Guard of Qeynos + e.other:Faction(e.self,230,-15,0); -- Corrupted Qeynos Guard + e.other:Faction(e.self,330,-15,0); -- The Freeport Militia + e.other:Faction(e.self,281,20,0); -- Knight of Truth + e.other:QuestReward(e.self,{itemid = 13572,exp = 20}); -- Dirty Training Tunic* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 27421,item2 = 27421, item3 = 27421,item4 = 27422})) then + e.self:Say("I knew he would still have it, such an unintelligent one Beris is. As I promised I have crafted you a blade for your trouble. I hope you will promptly stain it with the blood of the gnolls. You have done well " .. e.other:GetCleanName() .. ", good luck to you."); + -- Confirmed Live Experience and Faction + e.other:Faction(e.self,311,10,0); -- Steel Warriors + e.other:Faction(e.self,262,2,0); -- Guard of Qeynos + e.other:Faction(e.self,230,-1,0); -- Corrupted Qeynos Guard + e.other:Faction(e.self,330,-1,0); -- The Freeport Militia + e.other:Faction(e.self,281,2,0); -- Knight of Truth + e.other:QuestReward(e.self,{itemid = 27492,exp = 500}); -- Item: Warsword of the Battlemaster + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:qeynos ID:1138 -- Ebon_Strongbear diff --git a/qeynos/Edvard_Tommels.lua b/qeynos/Edvard_Tommels.lua new file mode 100644 index 0000000..bd5c3d6 --- /dev/null +++ b/qeynos/Edvard_Tommels.lua @@ -0,0 +1,52 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". Thank you for stopping by. Had you heard I was looking for any and all information regarding the Tesch Val incursion? Perhaps you have come to help me gather knowledge? I seek the [Tesch Val scrolls]!"); + e.self:DoAnim(70); -- bowing + elseif(e.message:findi("scrolls")) then + e.self:Say("Oh good! I can add them to my collection. We are preparing to make books you know. Bring me any of the scrolls you find in the old Splitpaw lair, and I would be happy to reward you handsomely."); + end +end + +function event_trade(e) + local item_lib =require("items"); + + -- Verified Live faction and experience. questsay and item reward seems to be random with each item turn in. + local scroll = 0; + local Volone = item_lib.count_handed_item(e.self, e.trade, {18504}); + local Voltwo = item_lib.count_handed_item(e.self, e.trade, {18505}); + local Volthree = item_lib.count_handed_item(e.self, e.trade, {18506}); + local Volfour = item_lib.count_handed_item(e.self, e.trade, {18507}); + + if(Volone == 1) then + scroll = scroll + 1; + Volone = 0; + end + if(Voltwo == 1) then + scroll = scroll + 1; + Voltwo = 0; + end + if(Volthree == 1) then + scroll = scroll + 1; + Volthree = 0; + end + if(Volfour == 1) then + scroll = scroll + 1; + Volfour = 0; + end + + if(scroll > 0) then + repeat + if(math.random(100) < 50) then + e.self:Say("Why thank you, " .. e.other:GetCleanName() .. ". If you do happen to come across any more of these, please bring them to me."); + end + if(math.random(100) < 50 and not e.other:HasItem(12076)) then + e.other:QuestReward(e.self,{itemid = 12076}); + end + e.other:Faction(e.self,121,2,0); -- Faction: Qeynos Citizens + e.other:QuestReward(e.self,math.random(0,15),math.random(0,8),math.random(0,8),math.random(0,2),0,5000); + scroll = scroll - 1; + until scroll == 0; + end + + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Endric.lua b/qeynos/Endric.lua new file mode 100644 index 0000000..2e7ef3a --- /dev/null +++ b/qeynos/Endric.lua @@ -0,0 +1,32 @@ +function event_spawn(e) + eq.set_timer("clean",6200000); +end + +function event_timer(e) + e.self:Say("Clean the [aqueducts] they tell me! Peh. I don't care how much they pay me, I am not climbing into that filth."); +end + +function event_say(e) + if(e.message:findi("aqueducts")) then + e.self:Say("Aye, the aqueducts are a horrible place. I have heard rumors of horrible [beasts] who live under the city in the water and just the other day, a child playing in the water just up and disappeared!"); + elseif(e.message:findi("beasts")) then + e.self:Say("I know nothing of what or where they may be, just rumors, friend. However, should you foolishly choose to enter the waters to brave the possibilities and return with some evidence of the [child's] fate, I would be most appreciative."); + elseif(e.message:findi("child")) then + e.self:Say("The daughter of one of our own guardsmen is missing. He has offered me a reward for any information about her disappearance. So, if you find out anything, let me know and I will cut you in on the reward."); + end +end + +function event_trade(e) + local item_lib =require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13713})) then + e.self:Say("Yes, I do believe this was the child's dress. Here, take this as your share of the reward. Her father will be heartbroken.."); + -- Confirmed Live Factions + e.other:Faction(e.self,262,2,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,219,1,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,230,-1,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,223,-1,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,291,1,0); -- Faction: Merchants of Qeynos + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10018,10018,10320),5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Eracon_Krengon.lua b/qeynos/Eracon_Krengon.lua new file mode 100644 index 0000000..28c59cf --- /dev/null +++ b/qeynos/Eracon_Krengon.lua @@ -0,0 +1,8 @@ +function event_trade(e) + local item_lib =require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12620})) then + e.self:Say("Tis good that Jinkus sent you with this poster. There has been talk of a Northman fugitive in the city. Take this list back to Jinkus so that our brethren in Halas are aware of the many criminals who have fled Qeynos and are still at large."); + e.other:QuestReward(e.self,0,0,0,0,12622,500); -- Item: List of Qeynos Most Wanted + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Eve_Marsinger.lua b/qeynos/Eve_Marsinger.lua new file mode 100644 index 0000000..e095b0f --- /dev/null +++ b/qeynos/Eve_Marsinger.lua @@ -0,0 +1,38 @@ +--Quest Name: Bard Mail Quest + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". Are you [interested] in helping the League of Antonican Bards by delivering some [mail]?"); + elseif(e.message:findi("interested")) then + e.self:Say("I have messages that need to go to - well, right now I have one that needs to go to Highpass. Will you [deliver] mail to [Highpass] for me?"); + elseif(e.message:findi("agents")) then + e.self:Say("Sivina Lutewhisper, Marton Stringsinger, Ticar Lorestring and Mistrana Two-Notes all report to my husband, Tralyn."); + elseif(e.message:findi("mail")) then + e.self:Say("The League of Antonican Bards has a courier system made up of travelers, adventurers and [agents]. We pay good gold to anyone who will take messages from bards such as myself to one of our more distant offices. Are you [interested]?"); + elseif(e.message:findi("deliver") or e.message:findi("highpass")) then + e.self:Say("Take this pouch to Lislia Goldtune in Highpass. You can find her at the entrance to HighKeep. I am sure she will compensate you for your troubles."); + e.other:SummonCursorItem(18152); -- Item: A Pouch of Mail (Highpass) + elseif(e.message:findi("marton stringsinger")) then + e.self:Say("Marton Stringsinger lives with the barbarians in the city of Halas."); + elseif(e.message:findi("sivina lutewhisper")) then + e.self:Say("Sivina Lutewhisper lives with the rangers in Surefall Glade."); + elseif(e.message:findi("ticar lorestring")) then + e.self:Say("Ticar Lorestring sings for the people of the city of Erudin."); + elseif(e.message:findi("mistrana.* note")) then + e.self:Say("Mistrana Two-Notes is currently visiting with the McMannus tribe in the Karanas."); + end +end + +function event_trade(e) + local item_lib =require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18165})) then + e.self:Say("Incoming mail - very good! Please take this gold for your troubles."); + e.other:Faction(e.self,284,5,0); -- Faction: League of Antonican Bards + e.other:Faction(e.self,281,1,0); -- Faction: Knights of Truth + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,304,-1,0); -- Faction: Ring of Scale + e.other:Faction(e.self,285,-1,0); -- Faction: Mayong Mistmoore + e.other:QuestReward(e.self,0,0,math.random(8,15),0,0,1550); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Executioner.lua b/qeynos/Executioner.lua new file mode 100644 index 0000000..fb8879b --- /dev/null +++ b/qeynos/Executioner.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I have no time to talk, citizen. Please, step aside!"); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 14) then + e.self:Say("Sir. You called for me?"); + eq.signal(1068,1); -- NPC: Captain_Tillin + elseif(e.wp == 40) then + e.self:Say("McNeal Jocub? You have been found guilty of crimes against the city of Qeynos."); + elseif(e.wp == 41) then + eq.signal(1099,1); -- NPC: McNeal_Jocub + end +end + +function event_signal(e) + e.self:Say("Aye sir!"); +end diff --git a/qeynos/Faren.lua b/qeynos/Faren.lua new file mode 100644 index 0000000..049ffeb --- /dev/null +++ b/qeynos/Faren.lua @@ -0,0 +1,47 @@ +function event_spawn(e) + eq.set_timer("fishing",300000); +end + +function event_timer(e) + e.self:Say("Whoo!!! I think I got a [bite]! Darn.. Seaweed."); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh.. Hiya, I'm just out here fishing, since I can't find a job. I hope this [bait] I just bought catches me a big ol' fish."); + elseif(e.message:findi("bait")) then + e.self:Say("I use Captain Rohand's Secret Recipe Super Magic Catch-A-Lot brand bait. I bought my pole from Sneed's up by the north pond."); + elseif(e.message:findi("tacklebox")) then + e.self:Say("Oh. That mean [dwarf], Trumpy, just knocked my tacklebox into the water. Could you please get it for me? I can't swim."); + elseif(e.message:findi("dwarf")) then + e.self:Say("His name is Trumpy. He is one of those [Irontoes] I think. I've seen him hanging out in the Fish's Ale. I don't know why he likes to torment me."); + elseif(e.message:findi("irontoe")) then + e.self:Say("Ah! The Irontoes are a rough bunch of dwarves from Kaladim. The seem to get quite drunk on a frequent basis."); + elseif(e.message:findi("kane"))then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand"))then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Oh, hi, Beren. Not too good so far. That [dwarf] keeps bothering me, too."); + eq.signal(1090,2); -- NPC: Guard_Beren + end +end + +function event_trade(e) + local item_lib =require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13702})) then + e.self:Say("Thank you so much! If you want some free advice, steer clear of those [Irontoes]! They are nothing but trouble. Here, It's not much but I must thank you somehow."); + -- Confirmed Live Factions + e.other:Faction(e.self,262,10); -- Guards of Qeynos + e.other:Faction(e.self,219,1); -- Antonius Bayle + e.other:Faction(e.self,230,-1); -- Corrupt Qeynos Guards + e.other:Faction(e.self,223,-2); -- Circle Of Unseen Hands + e.other:Faction(e.self,291,1); -- Merchants of Qeynos + e.other:QuestReward(e.self,math.random(20),0,0,0,13129,200); -- Hurrieta's Tunic + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Fhara_Semhart.lua b/qeynos/Fhara_Semhart.lua new file mode 100644 index 0000000..17c83d9 --- /dev/null +++ b/qeynos/Fhara_Semhart.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("tax")) then -- triggers without starting quest + e.other:Faction(e.self,291,-1,0); -- Faction: Merchants of Qeynos + e.self:Say("Taxes? How can I afford more taxes? You tax us poor merchants right out of Qeynos. Freeport is looking better and better every day."); + e.other:SummonCursorItem(13175); -- Item: Semharts Tax Payment + end +end diff --git a/qeynos/Fish_Ranamer.lua b/qeynos/Fish_Ranamer.lua new file mode 100644 index 0000000..b56787a --- /dev/null +++ b/qeynos/Fish_Ranamer.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! Welcome to Fish's Ale. I am Fish Ranamer, owner of the joint. Come in and have some brew but don't be startin' no trouble or Bruno will bust you open!"); + elseif(e.message:findi("tax")) then -- triggers without starting quest + e.other:Faction(e.self,291,-1,0); -- Faction: Merchants of Qeynos + e.self:Say("Taxes?! Taxes?! Tax me right out of business is what you folks are doing! Take your taxes and get out of my pub! Unless, of course, you care to buy some drinks...?"); + e.other:SummonCursorItem(13178); -- Item: Ranamers Tax Payment + end +end diff --git a/qeynos/Gahlith_Wrannstad.lua b/qeynos/Gahlith_Wrannstad.lua new file mode 100644 index 0000000..867a0aa --- /dev/null +++ b/qeynos/Gahlith_Wrannstad.lua @@ -0,0 +1,15 @@ +function event_trade(e) + + local item_lib =require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18718})) then -- Tattered Note + e.self:Say("Greetings, I am Gahlith, Master of the Wizard's Order of the Hall of Sorcery. Here, we have devoted our lives and souls to the study of the arcane. My apprentice Kazlo Naedra shall tutor you and teach you the fundamentals of sorcery."); + e.other:Faction(e.self,342,100,0); -- Order of Three + e.other:Faction(e.self,221,-25,0); -- Bloodsabers + e.other:Faction(e.self,262,15,0); -- Guards of Qeynos + e.other:Faction(e.self,296,-15,0); -- Opal Dark Briar + e.other:QuestReward(e.self,0,0,0,0,13508,20); -- Blue Training Robe* + end + item_lib.return_items(e.self, e.other, e.trade) + +end diff --git a/qeynos/Gahna_Salbeen.lua b/qeynos/Gahna_Salbeen.lua new file mode 100644 index 0000000..d791043 --- /dev/null +++ b/qeynos/Gahna_Salbeen.lua @@ -0,0 +1,29 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks up a discarded item from the ground and says, 'Don't people have enough respect for our grand city to not throw things onto the streets?!"); + end + end +end + +function event_signal(e) + if(e.signal == 1) then + eq.stop(); + e.self:MerchantCloseShop(); + elseif(e.signal == 2) then + eq.start(57); + e.self:MerchantOpenShop(); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. This is a grand city. I plan to make much profit here."); + elseif(e.message:findi("donate") or e.message:findi("donation")) then + e.self:Say("Qeynos is the place where I will make a fortune. In order to do that, I must hoard all my coins and not donate to ancient religions."); + end +end diff --git a/qeynos/Gash_Flockwalker.lua b/qeynos/Gash_Flockwalker.lua new file mode 100644 index 0000000..1f5dd77 --- /dev/null +++ b/qeynos/Gash_Flockwalker.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day to you. Your city of stone walls is quite magnificent. Still, the glory of Surefall Glade puts this city to shame."); + elseif(e.message:findi("assassin")) then + e.self:Say("What!!? Must be an Unkempt Druid Assassin nearby!! Find him and slay him. I am sure he stands to make a FORTUNE! I believe the assassin may be carrying some sort of [black wood chip]."); + eq.unique_spawn(1179,0,0,-100,222,3,128); -- Spawn Raffel_Minnmorn + elseif(e.message:findi("black wood chip")) then + e.self:Say("That is the mark of an Unkempt Druid. Long ago there was a tree in Norrath we called the Great Tunarbos. Legend says it spawned all the woodlands of Norrath. Many centuries ago, long before the Combine Era, the Great Tunarbos was burned to the ground by unknown means. The ancient rangers kept what little of the great tree they could find. To make it short, all Unkempt Druids now carry burned wood chips to represent the great tree. They are not real. Take any black wood chips to Gerael Woodone in Surefall Glade."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 17) then + e.self:Say("Even the beauty of the ocean pales in comparison to the towering pines of Surefall Glade."); + elseif(e.wp == 27) then + e.self:Say("I have had a tree sap from Surefall Glade which tastes better than this ale."); + end +end diff --git a/qeynos/Gehna_Solbenya.lua b/qeynos/Gehna_Solbenya.lua new file mode 100644 index 0000000..478fea4 --- /dev/null +++ b/qeynos/Gehna_Solbenya.lua @@ -0,0 +1,52 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings and blessings to you, " .. e.other:GetCleanName() .. ". Karana offers you his protection and guidance. All who accept the offer shall find safe haven within our Temple of Thunder, If you are a cleric of Karana, you must have a [desire to serve Karana]'s flock."); + elseif(e.message:findi("blessings to the flock") or e.message:findi("serve karana") or e.message:findi("hunt bandit binders")) then + if(e.other:GetFaction(e.self) <= 4) then -- requires amiably + if(e.message:findi("serve karana")) then + e.self:Say("If you are a young acolyte, you may [deliver blessings to the flock] and if you are a skilled cleric, we need you to [hunt bandit binders]."); + elseif(e.message:findi("hunt bandit binders")) then + e.self:Say("Go to the Plains of Karana and seek out the Karana Bandits. Among them can be found their bandit binders. They are healers of sorts. Which evil deity granted them this power is unknown to us. Each carries a binder spectacle. I shall reward clerics for every two returned spectacles. Perhaps a new power may even be bestowed."); + elseif(e.message:findi("blessings to the flock")) then + e.self:Say("Then go to the Plains of Karana. It is there that the blessings are needed. Ask every resident of the plains if they are followers of Karana. If they are, then ask them if they [require Karana's blessings]. Let them drink from this temple chalice. Return the empty chalice to me and you shall never go thirsty again."); + e.other:SummonCursorItem(12103); -- Item: A Full Chalice + end + elseif(fac == 5) then + e.self:Say("Well, friend, the Temple of Thunder has recognized and appreciates your past deeds for us. But this matter is of vital importance to us and we need more proof of your devotion to our cause."); + else + e.self:Say("You have proven yourself not only an enemy of the Knights of Thunder, but an enemy of Karana himself. Now leave, sewer rat!"); + end + elseif(e.message:findi("karana") or e.message:findi("rainkeeper")) then + e.self:Say("Karana, the Rainkeeper, is the provider of the storms. If it were not for the storms of Karana, life would not flourish. All should pay tribute to the Rainkeeper.") + elseif(e.message:findi("bertoxxulous")) then + e.self:Say("Bertoxxulous, the Plaguebringer, is the Lord of Disease. It is he who smites Norrath with his diseases and imperfections. Those who follow him are called [Bloodsabers]."); + elseif(e.message:findi("bloodsaber")) then + e.self:Say("It is rumored that there is a shrine in the great city of Qeynos which pays homage to the Plaguebringer, Bertoxxulous. The members of this vile church of the damned are called the Bloodsabers. They are dreaded shadowknights, necromancers and evil clerics. It is our duty to destroy all who dare to pray to such a deity. Join our fight. Speak more of this matter with Chesgard Sydwend."); + elseif(e.message:findi("heal")) then + e.self:Say("If you need to be healed, I suggest you speak with the Priests of Life. You can find them in the Temple of Life on the other side of Qeynos. The only service you can pay for here is holy armor. Daedet Losaren charges followers of Karana for that blessing."); + end +end + +function event_trade(e) + local item_lib =require("items"); + local text = "The bounty will not be paid until two spectacles are received."; + + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12104})) then + e.self:Say("You have done a good service for the flock of Karana. Study the words upon this scroll and soon Karana shall keep you from thirst."); + -- Confirmed Live Faction + e.other:Faction(e.self,280,10,0); -- Faction: Knights of Thunder + e.other:Faction(e.self,221,-10,0); -- Faction: Bloodsabers + e.other:Faction(e.self,341,7,0); -- Faction: Priests of Life + e.other:Faction(e.self,262,7,0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,math.random(20),math.random(20),0,0,eq.ChooseRandom(15210,15207,15201),2000); + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12101,item2 = 12101},1,text)) then -- spectacle + e.self:Say("Excellent work. These foul men have no right to be proficient in the ways of healing. Here then is your bounty. Use it in your continued war against the Karana bandits."); + -- Confirmed Live Faction + e.other:Faction(e.self,280,20,0); -- Faction: Knights of Thunder + e.other:Faction(e.self,221,-20,0); -- Faction: Bloodsabers + e.other:Faction(e.self,341,15,0); -- Faction: Priests of Life + e.other:Faction(e.self,262,15,0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,0,math.random(10),math.random(20),0,eq.ChooseRandom(15226,15219),20000); -- Spell: Endure Disease or Spell: Center + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Gharin.lua b/qeynos/Gharin.lua new file mode 100644 index 0000000..41ddc28 --- /dev/null +++ b/qeynos/Gharin.lua @@ -0,0 +1,49 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then -- requires indifferent + e.self:Say("Good day! I see they have good stock for the future armies of Qeynos. I, myself, wish to be a soldier one day instead of doing this [job]."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("job")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I am a [messenger] for Antonius Bayle. Not big enough to fight, but light enough to run all the way to the [Jaggedpine] tomorrow morning. I sort of wish I did not have to go. I'd rather be at the Lion's Mane."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("messenger") or e.message:findi("Jaggedpine")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I will be taking a private note to the head druid of the Jaggedpine Treefolk. Matter of fact, I am carrying the note right now. But enough about that, if it were not for the mission tomorrow, I could be doing something at the [Lion's Mane]."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("lion.* mane")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Ahh. The Lion's Mane. If I were there, I would be enjoying a stein of Crow's [special brew]. They are expecting their first shipment of the brew. I believe if I had a few or more of those lagers, I would be very ill. I would probably have to have someone else deliver the note for me. Still, I wish I had one of those fine brews."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("special brew")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Crow's special brew is one of the finest lagers anywhere. It used to be sold only at Crow's bar, but apparently Crow is allowing it into other bars. For a hefty price, too, I assume. This deal is good for decent citizens considering that the other two bars in Qeynos cater to pretty rough crowds."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib =require("items"); + local text = "Oh! That's tasty. I guess I could handle a few more."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13799,item2 = 13799,item3 = 13799,item4 = 13799},1,text)) then + e.self:Say("Oohhh! My head. Stop the pub from spinning. I cannot make it to the Jaggedpine feeling like this. Please take this note to Te'Anara of the Treefolk. Here is a little silver for the favor. Thanks. Ooohhhh.."); + e.other:Faction(e.self,262,50,0); -- confirmed live factions + e.other:Faction(e.self,219,7,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,230,-7,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,223,-12,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,291,5,0); -- Faction: Merchants of Qeynos + e.other:QuestReward(e.self,0,1,0,0,18807,250); -- Item: A Sealed Letter + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Ghul_Rustem.lua b/qeynos/Ghul_Rustem.lua new file mode 100644 index 0000000..3a10fe3 --- /dev/null +++ b/qeynos/Ghul_Rustem.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("'Yes? What?' Ghul fingers the hilt of the dagger that sits in his belt. 'I'm a very busy man. I have [thoughts] upon my mind.'"); + elseif(e.message:findi("thoughts")) then + e.self:Say("'Fools, all of them.' Ghul snarls and spits upon the floor. 'I used to be a master smith, long before cursed Ironforge became Antonius Bayle's favorite. Well, I'll show them. My new master has given me much [work] to do.'") + elseif(e.message:findi("work")) then + e.self:Say("Nothing to concern you, little one. You'll see. When the day for war comes, my [armor] will be upon every man, mark my words.") + elseif(e.message:findi("armor")) then + e.self:Say("You are no doubt familiar with the traditional Qeynos... paper armor that everyone flaunts as if it were real steel. Real armor is made with a special [method], not that these fools would appreciate such things.") + elseif(e.message:findi("method")) then + e.self:Say("'You are a craftsman? Interesting, my master may have use for you in the times to come.' Ghul's eyes twinkle, his mouth twisted into an unsettling half-smile. 'Enchanted chain jointing, royal temper, a plate mold, leather padding and [infused rings] are used. It is in the rings that the real power lies. One can also mark the armor by [imbuing], as you will have guessed no doubt.'") + elseif(e.message:findi("infused rings")) then + e.self:Say("Take velium rings - they are strong. Then, using a hammer, double their strength with an enchanted large brick of high quality ore. Of course, for this fusing to take place, you will require a... [special something].") + elseif(e.message:findi("imbuing")) then + e.self:Say("Ignorant cretin! Imbuing is the process of marking an armor touched by the Heavens, by inclusion of the appropriate blessed gem! I can even imbue with the mark of the [Dragonqueen]!") + elseif(e.message:findi("special something")) then + e.self:Say("Hah! The secret of the master shall not be passed along to the likes of you, trustless one! You would turn tail and scurry off to Antonius with such information! Celestial Temper is not for the...' Ghul sneers, '...normal.'") + elseif(e.message:findi("Dragonqueen")) then + e.self:Say("She that rended the lands and split the sky! Veeshan herself! From the lands of her kin it is said that one can still find small crystals of her kind. Take four of these, one of each variety, and combine them within a kiln in order to produce Veeshan's imbued gem.") + elseif(e.message:findi("kane"))then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand"))then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + end +end \ No newline at end of file diff --git a/qeynos/Ginleen_Harltop.lua b/qeynos/Ginleen_Harltop.lua new file mode 100644 index 0000000..d250089 --- /dev/null +++ b/qeynos/Ginleen_Harltop.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail! Keep all combat to the center of the ring. So says [Ebon Strongbear]."); + elseif(e.message:findi("ebon strongbear")) then + e.self:Say("Ebon Strongbear is the current champion of the Steel Warriors. As champion, he rules over the Steel Warriors."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:qeynos ID:1144 -- Ginleen_Harltop \ No newline at end of file diff --git a/qeynos/Golden_Maiden.lua b/qeynos/Golden_Maiden.lua new file mode 100644 index 0000000..dd44ea7 --- /dev/null +++ b/qeynos/Golden_Maiden.lua @@ -0,0 +1,29 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Boat spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + if(e.wp == 12) then + eq.debug("Boat to Erudsxing has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.spawn_condition("qeynos",3,0); + eq.spawn_condition("qeynos",4,0); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(98,-2190,-464,-22,64); + end, + function(ent) + if(ent:GetBoatID() == 773) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/qeynos/Grahan_Rothkar.lua b/qeynos/Grahan_Rothkar.lua new file mode 100644 index 0000000..e913abf --- /dev/null +++ b/qeynos/Grahan_Rothkar.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! What business do you have in the pens of the Qeynos Arena? Have you a report of the [escaped catman]?"); + elseif(e.message:findi("escaped catman")) then + e.self:Say("We had a catman imprisoned here for use in future gladiator battles. He escaped. In the process, he bit off my assistant's hand which held the key to pen number seven. I now seek to hire a warrior to [retrieve key seven]."); + elseif(e.message:findi("retrieve key seven") or e.message:findi("second escaped gladiator")) then + if(e.other:GetFaction(e.self) <= 4) then -- requires amiably + if(e.message:findi("retrieve key seven")) then + e.self:Say("Hmmm. You seem a bit young, but I shall give you a chance. Seek out the catman named Nomala. He most likely returned to [Kerra Isle]. He is not very powerful, but his people are surely watching over him. Retrieve the key for me and be rewarded."); + elseif(e.message:findi("second escaped gladiator")) then + e.self:Say("It appears our prize gladiator has escaped. He is a minotaur hero!! Trained by our best. He took down five of our greatest warriors during his escape. Rumor has it he fled to his homeland in the Steamfont Mountains. They say he is an outcast and does not live with his people. He appears during times of great need to champion the minotaurs. Return his shackles to me and glory is yours!!"); + end + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("The Steel Warriors have no cause to dislike you, but you have yet to truly prove your worth to this guild."); + else + e.self:Say("Your head shall look grand mounted on the wall of the Steel Warriors Arena!!"); + end + elseif(e.message:findi("kerra isle")) then + e.self:Say("Kerra Isle is a dangerous place. The Kerra are not a friendly race. There is an island between Erudin and Qeynos which is inhabited by a more docile tribe of Kerra. I hear they took some of their Kerra beetles along with them to the island, too."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) <= 4 and item_lib.check_turn_in(e.self, e.trade, {item1 = 20031})) then -- requires amiably + e.self:Say("I thank you. I must admit I had my doubts, but you have proven yourself a true warrior. I salute you. You can be of some assistance to me.It see ms as though there has been a [second escaped gladiator] and I have a reward waiting for a human warrior."); + -- Confirmed Live Factions and Experience + e.other:Faction(e.self,311,10,0); -- Steel Warriors + e.other:Faction(e.self,262,2,0); -- Guards of Qeynos + e.other:Faction(e.self,230,-1,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,330,-1,0); -- Freeport Militia + e.other:Faction(e.self,281,2,0); -- Knights of Truth + e.other:QuestReward(e.self,math.random(10),math.random(10),0,0,eq.ChooseRandom(5013,5014,5015,5016,5019,5020,5021,5022,5023,5024,5025),2550); -- random rusty weapon + elseif(e.other:GetFaction(e.self) <= 4 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12188})) then -- requires amiably + e.self:Say("You are a true Steel Warrior!! Now you shall wear my hero bracers. I designed them for my greatest gladiators and you have shown yourself mighty enough to wear them."); + -- Confirmed Live Factions and Experience + e.other:Faction(e.self,311,75); -- Steel Warriors + e.other:Faction(e.self,262,15); -- Guards of Qeynos + e.other:Faction(e.self,230,-11); -- Corrupt Qeynos Guards + e.other:Faction(e.self,330,-11); -- Freeport Militia + e.other:Faction(e.self,281,15); -- Knights of Truth + e.other:QuestReward(e.self,0,0,0,2,12189,640800); -- Item: Hero Bracers + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13398})) then + e.self:Say("I salute you. You have done well and crossed into the brotherhood of the Steel Warriors. Welcome. Take this. It is the mark of a Steel Warrior. Live the way of the warrior."); + -- Confirmed Live Factions + e.other:Faction(e.self,311,25,0); -- Steel Warriors + e.other:Faction(e.self,262,5,0); -- Guards of Qeynos + e.other:Faction(e.self,230,-3,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,330,-3,0); -- Freeport Militia + e.other:Faction(e.self,281,5,0); -- Knights of Truth + e.other:QuestReward(e.self,0,0,0,0,13229,10000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18894})) then + e.self:Say("So you are ready to encounter your final test. I wish you well, young warrior. Take this key to the pen on the left along the wall with three doors. There you shall meet your final challenge. Return with proof of victory. Exit before it is at an end and I shall not help you."); + eq.unique_spawn(1005,0,0,-520,-120,-24.5); -- NPC: a_young_lion + eq.set_timer("86",120000); + -- Confirmed Live Factions + e.other:Faction(e.self,311,5,0); -- Steel Warriors + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:Faction(e.self,230,-1,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,330,-1,0); -- Freeport Militia + e.other:Faction(e.self,281,1,0); -- Knights of Truth + e.other:QuestReward(e.self,0,0,0,0,20029,2000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + if(e.timer == "86") then + eq.signal(1005,1); -- NPC: a_young_lion + eq.stop_timer("86"); + end +end + +-- quests/qeynos/Grahan_Rothkar.pl diff --git a/qeynos/Guard_Augos.lua b/qeynos/Guard_Augos.lua new file mode 100644 index 0000000..dd1f069 --- /dev/null +++ b/qeynos/Guard_Augos.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Yeah, my name is Augos... Listen up! Kane says I don't have to talk to none of you peons if I don't feel like it. I DON'T feel like it. So unless you want trouble, get a move on!"); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("north qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end + diff --git a/qeynos/Guard_Beren.lua b/qeynos/Guard_Beren.lua new file mode 100644 index 0000000..c891185 --- /dev/null +++ b/qeynos/Guard_Beren.lua @@ -0,0 +1,58 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What do you want? Are you friends with that lousy [dwarf]?! You had better not be unless you want to spend the rest of the week bleeding!"); + elseif(e.message:findi("dwarf")) then + e.self:Say("That dwarf, Trumpy, who Corshin here thinks is a friend of Commander Bayle's, keeps pestering my poor brother Faren. I have had just about enough of him and [his kind]."); + elseif(e.message:findi("faren")) then + e.self:Say("My brother Faren is a fine fisherman just like our father was. He fishes out there on the East Dock just about every day."); + elseif(e.message:findi("his kind")) then + e.self:Say("You know... thieves, drunks and murderers. Decent folk just don't have a chance anymore."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("north qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 5) then + e.self:Say("How are they biting, little brother?"); + eq.signal(1159,1); -- NPC: Faren + end +end + +function event_signal(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + if(e.signal == 1 and xloc == -145 and yloc == -247) then + e.self:Say("Yes, sir!"); + elseif(e.signal == 2) then + e.self:Say("Don't you worry about him! I will take care of [Trumpy] Irontoe once and for all!"); + elseif(e.signal == 5 and xloc == -145 and yloc == -247) then + e.self:Say("Heh, Speak for yourself, Corshin. That one looks like a troublemaker to me."); + end +end diff --git a/qeynos/Guard_Calik.lua b/qeynos/Guard_Calik.lua new file mode 100644 index 0000000..83c0219 --- /dev/null +++ b/qeynos/Guard_Calik.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! Have you tested your mettle on the Grounds of Fate yet? They are here in South Qeynos and there is always someone there looking for a challenging opponent. Beware, though, once you are on the arena floor you are fair game to anyone who wishes to have your head on their pike."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("north qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end diff --git a/qeynos/Guard_Corshin.lua b/qeynos/Guard_Corshin.lua new file mode 100644 index 0000000..8c21714 --- /dev/null +++ b/qeynos/Guard_Corshin.lua @@ -0,0 +1,44 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! Guard Corshin Kiniss, at your service. You should be careful in Qeynos after dark. We have had several [bodies] wash up under the docks over the past few weeks. We wouldn't want anything to happen to you."); + eq.signal(1090,5); -- NPC: Guard_Beren + elseif(e.message:findi("bodies")) then + e.self:Say("We think the bodies are washing out of the aqueducts beneath Qeynos. It is a dangerous place to go and Commander Bayle refuses to send regular patrols down there."); + elseif(e.message:findi("trumpy")) then + e.self:Say("Trumpy? Shhh! Don't mention his name too loudly. I saw him talking to Commander Bayle, so it is probably best to leave him alone."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("north qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Yes, sir!"); + end +end diff --git a/qeynos/Guard_Cyrillian.lua b/qeynos/Guard_Cyrillian.lua new file mode 100644 index 0000000..c546e37 --- /dev/null +++ b/qeynos/Guard_Cyrillian.lua @@ -0,0 +1,47 @@ +function event_signal(e) + e.self:Say("Hey! Quit pestering Mezzt! Can't you see he has no tongue? And before you ask, it is none of your business what happened to him. Bug off!"); +end + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 50) then -- requires mid indifferent + e.self:Say("Hey, " .. e.other:GetCleanName() .. ". Heh, heh. Keep up the good work. Commander Bayle needs all the patriots he can get. He says the time is near, now that the Shrine of Bertoxxulous in the aqueducts is complete."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("north qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end + +function event_signal(e) + e.self:Say("Yes, sir!"); +end diff --git a/qeynos/Guard_Dunix.lua b/qeynos/Guard_Dunix.lua new file mode 100644 index 0000000..786fc55 --- /dev/null +++ b/qeynos/Guard_Dunix.lua @@ -0,0 +1,37 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetName() ..". Have you seen the fine clock in Merchant's Square? It was a gift from the gnomes of Ak'Anon to Antonius Bayle and the people of Qeynos."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("north qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end + +function event_signal(e) + e.self:Say("Yes, sir!"); +end diff --git a/qeynos/Guard_Forbly.lua b/qeynos/Guard_Forbly.lua new file mode 100644 index 0000000..605ec57 --- /dev/null +++ b/qeynos/Guard_Forbly.lua @@ -0,0 +1,37 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ahoy, " .. e.other:GetCleanName() .. "! My name is Forbly Taxx. My father was a sailor and we settled here in Qeynos. I love the sea air. I don't know why anyone would ever want to leave."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("north qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end + +function event_signal(e) + e.self:Say("Yes, sir!"); +end diff --git a/qeynos/Guard_Jerith.lua b/qeynos/Guard_Jerith.lua new file mode 100644 index 0000000..ddd8144 --- /dev/null +++ b/qeynos/Guard_Jerith.lua @@ -0,0 +1,37 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Um, sorry, " .. e.other:GetCleanName() .. ". I don't wish to be rude, but I must not be distracted while I am at my post. Commander Bayle trusted me with this watch and I will not let him down."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("north qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end + +function event_signal(e) + e.self:Say("Yes, sir!"); +end diff --git a/qeynos/Guard_Kwint.lua b/qeynos/Guard_Kwint.lua new file mode 100644 index 0000000..a488afe --- /dev/null +++ b/qeynos/Guard_Kwint.lua @@ -0,0 +1,54 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -500) then -- might be slightly off, tested at -300 and scowls, determined it's within that range + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! Are you new to Qeynos? If you are, I highly recommend stopping by the Lion's Mane Tavern for the best ale in Antonica. Oh, did I mention that my brother Earron is the master brewer there? Tell him [Kwint sent] you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("north qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end + +function event_trade(e) + local item_lib =require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18821})) then + e.self:Say("Hey. Thanks! Sorry about that 'he's my brother' bit but I am sure you had a good time at the Lion's Mane anyway. I sure didn't lie to you about the quality of the ale there."); + -- Confirmed Live Factions + e.other:Faction(e.self,262,5,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,219,1,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,223,-1,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,230,-1,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,291,1,0); -- Faction: Merchants of Qeynos + e.other:QuestReward(e.self,0,0,0,0,0,800); + e.other:GiveCash(8,0,0,0); + end + item_lib.return_items(e.self, e.other, e.trade, e.text) +end diff --git a/qeynos/Guard_Lasen.lua b/qeynos/Guard_Lasen.lua new file mode 100644 index 0000000..a3ff842 --- /dev/null +++ b/qeynos/Guard_Lasen.lua @@ -0,0 +1,53 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "! Whew! I sure get parched out here on patrol. Even when it rains I can't help but build up a [thirst] defending the good people of Qeynos."); + elseif(e.message:findi("drink") or e.message:findi("thirst")) then + e.self:Say("Well, I have a bit of a belly sickness so the only thing I can drink is normal water. I can't even keep down the stuff our local magicians summon and call water. If you would bring me a water flask, I would be most grateful."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("north qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end + +function event_trade(e) + local item_lib =require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13006})) then + e.self:Say("Oh, thank you so much!' Lasen brings the drink to his lips and ravenously drinks the bottle's entire contents, ' Aaaaah. Here, please take this reward for your kindness. Also take my advice, do not go exploring beneath Qeynos unless you bring friends. I have seen too many like you enter the aqueducts alone, never to return."); + e.other:SendSound(141); + e.other:Faction(e.self,262,1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,219,1); -- Faction: Antonius Bayle + e.other:Faction(e.self,223,-1); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,230,-1); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,291,1); -- Faction: Merchants of Qeynos + e.other:GiveCash(math.random(5),0,0,0); + end + local returned = item_lib.return_items(e.self, e.other, e.trade, false) + if ( returned ) then + e.self:Say("Thank you, I guess. But did you not hear what it is I am thirsty for?"); + end +end diff --git a/qeynos/Guard_Mezzt.lua b/qeynos/Guard_Mezzt.lua new file mode 100644 index 0000000..f74bb9d --- /dev/null +++ b/qeynos/Guard_Mezzt.lua @@ -0,0 +1,38 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Haawwwl. Whasnsuud grurffnunnnsuuuss."); + eq.signal(1006,1); -- Guard Cyrillian + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("north qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end + +function event_signal(e) + e.self:Say("Yes, sir!"); +end diff --git a/qeynos/Guard_Naret.lua b/qeynos/Guard_Naret.lua new file mode 100644 index 0000000..bb844c9 --- /dev/null +++ b/qeynos/Guard_Naret.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! How's the life of an adventurer treating you? If you need some extra income, you might visit Captain Tillin at the Grounds of Fate. He is recruiting volunteers to help defend the city from the gnolls to the north."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("north qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end diff --git a/qeynos/Guard_Oleph.lua b/qeynos/Guard_Oleph.lua new file mode 100644 index 0000000..df5ea60 --- /dev/null +++ b/qeynos/Guard_Oleph.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh good. Another fine example of why I am growing to hate this city. If Commander Bayle were running things here, we would not have to put up with weaklings like you walking our streets."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("north qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end + diff --git a/qeynos/Guard_Perin.lua b/qeynos/Guard_Perin.lua new file mode 100644 index 0000000..ac63544 --- /dev/null +++ b/qeynos/Guard_Perin.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail! My name is Perin. If you had any smarts at all you would be careful who you talk to around here."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("north qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end diff --git a/qeynos/Guard_Phaeton.lua b/qeynos/Guard_Phaeton.lua new file mode 100644 index 0000000..7a4eb25 --- /dev/null +++ b/qeynos/Guard_Phaeton.lua @@ -0,0 +1,37 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! What brings you to the docks? Come to visit ol' Captain Rohand and do some fishing? I plan on doing that when I can get a day off."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("north qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end + +function event_signal(e) + e.self:Say("Yes, sir!"); +end diff --git a/qeynos/Guard_Quedal.lua b/qeynos/Guard_Quedal.lua new file mode 100644 index 0000000..66f1779 --- /dev/null +++ b/qeynos/Guard_Quedal.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(" Heh? " .. e.other:GetCleanName() .. "? Nevah hoid o' ya. Beat it. I got woik ta do."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("north qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end + diff --git a/qeynos/Guard_Relam.lua b/qeynos/Guard_Relam.lua new file mode 100644 index 0000000..25dd4d4 --- /dev/null +++ b/qeynos/Guard_Relam.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met, " .. e.other:GetCleanName() .. ". My name is Relam Yenn and I have sworn to uphold the laws of Qeynos. As long as you stay out of trouble, we will get along fine."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("north qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end + diff --git a/qeynos/Guard_Sylus.lua b/qeynos/Guard_Sylus.lua new file mode 100644 index 0000000..f3bd42c --- /dev/null +++ b/qeynos/Guard_Sylus.lua @@ -0,0 +1,6 @@ +function event_waypoint_arrive(e) + if(e.wp == 4) then + e.self:Say("Come along, fiend. We haven't far to go."); + eq.signal(1201,4); -- NPC: #Willie_Garrote + end +end \ No newline at end of file diff --git a/qeynos/Guard_Tyrak.lua b/qeynos/Guard_Tyrak.lua new file mode 100644 index 0000000..13edd3d --- /dev/null +++ b/qeynos/Guard_Tyrak.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Heh. Me name's Tyrak. Guardin' is what I do. But I likes when I gets to bash faces, too."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("north qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end + diff --git a/qeynos/Guard_Urius.lua b/qeynos/Guard_Urius.lua new file mode 100644 index 0000000..59128a8 --- /dev/null +++ b/qeynos/Guard_Urius.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "! Be sure you watch your purse when walking around Qeynos at night. There seem to be a lot more thieves operating here than there used to be. We guards are doing our best to keep you safe, though."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("north qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end diff --git a/qeynos/Guard_Wenbie.lua b/qeynos/Guard_Wenbie.lua new file mode 100644 index 0000000..26a9d44 --- /dev/null +++ b/qeynos/Guard_Wenbie.lua @@ -0,0 +1,71 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -500) then -- might be slightly off, tested at -300 and scowls, determined it's within that range + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". What brings you to Qeynos? Must be the mighty fine muffins over at [Voleen's Bakery]. I just love those muffins!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("bakery")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("Oh, it will be easier for us both if I just show you where it is. Follow me. But be quick about it, because I have to get back to my patrol."); + eq.move_to(-230,-183,2,90,false); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("north qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end + +function event_trade(e) + local muffin = 0; + local item_lib =require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13014,item2 = 13014,item3 = 13014,item4 = 13014}, 0)) then + muffin = 4; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13014,item2 = 13014,item3 = 13014}, 0)) then + muffin = 3; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13014,item2 = 13014}, 0)) then + muffin = 2; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13014}, 0)) then + muffin = 1; + end + if(muffin > 0) then + repeat + e.self:Say("Oh, thank you so much. I do get hungry on patrol. Here, please take this reward for your kindness."); + e.other:Faction(e.self,262,1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,219,1); -- Faction: Antonius Bayle + e.other:Faction(e.self,291,1); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,230,-1); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,223,-1); -- Faction: Circle of Unseen Hands + e.other:QuestReward(e.self,0,0,0,0,0,75); + muffin = muffin - 1; + until muffin == 0 + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Hansl_Bigroon.lua b/qeynos/Hansl_Bigroon.lua new file mode 100644 index 0000000..bf81627 --- /dev/null +++ b/qeynos/Hansl_Bigroon.lua @@ -0,0 +1,47 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "! Are you a [citizen of Qeynos] or are you a [traveler of sorts]?"); + elseif(e.message:findi("traveler of sorts")) then + e.self:Say("Ah, yes! Traveling can be truly dangerous. Have you ever [been to Erudin] or do you [not care for that place]?"); + elseif(e.message:findi("not care for that place")) then + e.self:Say("Then you would not care to hear about my grand plan."); + elseif(e.message:findi("erudin")) then + e.self:Say("The trip to Erudin takes far too long. I have been designing a [titanic bridge] which will shorten the trip. Well, I cannot take full credit, most of the plans are being designed by [three great engineers]."); + elseif(e.message:findi("three great engineers")) then + e.self:Say("They are some of the finest engineers in all of Norrath. Young, they may be, but as smart as the wisest architects I have ever met. That reminds me.. I must have a [list of the engineers] somewhere.. where is it?"); + elseif(e.message:findi("list of the engineers")) then + e.self:Say("Do not concern yourself with the list. It is of no concern to you. I do not even have it. It is tucked away safely at home."); + elseif(e.message:findi("citizen of qeynos")) then + e.self:Say("Then you are aware of how few ships come and go to the continent of Erudin. The port authority is even planning to tax all passage aboard the ships. You will be happy to know that a few other engineers and I are designing a [titanic bridge]."); + elseif(e.message:findi("titanic bridge")) then + e.self:Say("My grand plan has always been to erect a bridge which would span the distance between Qeynos and Odus. It would bypass the city of Erudin. Antonius Bayle would take full control of the bridge and its adjacent territories. This has had some opposition in Erudin, but for the most part, they just believe it is impossible to build such a bridge."); + elseif(e.message:findi("donation.* temple.* thunder") or e.message:findi("donate.* temple.* thunder")) then + e.self:Say("I would be pleased to help out such a noble organization. Here you are, my good friend. See you at weekly services!"); + e.other:SummonCursorItem(13290); -- donation (donation 1) + end +end + +function event_waypoint_depart(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + if(e.wp == 0) then + e.self:Emote("drops something as he walks away. He doesn't seems to notice."); + eq.set_proximity(xloc - 10,xloc + 10,yloc - 10,yloc +10); + elseif(e.wp == 13) then + eq.clear_proximity(); + eq.stop_timer("repeat"); + elseif(e.wp == 36) then + e.self:Emote("picks up a discarded item from the ground and says 'Don't people have enough respect for our grand city to not throw things onto the streets?!'"); + eq.set_timer("repeat",320000); + end +end + +function event_enter(e) + e.other:Message(15,"A note on the ground catches your eye."); + e.other:SummonCursorItem(18835); -- Item: A Sealed List + eq.clear_proximity(); +end + +function event_timer(e) + e.self:Say("picks up a discarded item from the ground and says 'Don't people have enough respect for our grand city to not throw things onto the streets?!'"); +end diff --git a/qeynos/Heidi_Grainsifter.lua b/qeynos/Heidi_Grainsifter.lua new file mode 100644 index 0000000..7483e14 --- /dev/null +++ b/qeynos/Heidi_Grainsifter.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("kane"))then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand"))then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + end +end diff --git a/qeynos/Iala_Lenard.lua b/qeynos/Iala_Lenard.lua new file mode 100644 index 0000000..b2598cd --- /dev/null +++ b/qeynos/Iala_Lenard.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks up a discarded item from the ground and says, 'Don't people have enough respect for our grand city to not throw things onto the streets?!"); + end + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to my humble establishment! I specialize in cloth, but lately I have begun to dabble in silk, the finest material I have ever used."); + elseif(e.message:findi("donate") or e.message:findi("donation")) then + e.self:Say("Hold on! Once I hear the word 'donate,' that is where the conversation ends."); + end +end diff --git a/qeynos/Indaria.lua b/qeynos/Indaria.lua new file mode 100644 index 0000000..adeca3c --- /dev/null +++ b/qeynos/Indaria.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hello, have you seen my daughter?"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("daughter")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Yes, my daughter. She went to play near the aqueducts with her doll and now she is gone. If only there was some sign of her.."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib =require("items"); + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13712})) then + e.self:Emote("tries to keep her composure. She hands you a silver locket with great effort, and then bursts into tears."); + -- Confirmed Live Factions + e.other:Faction(e.self,262,2,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,219,1,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,230,-1,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,223,-1,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,291,1,0); -- Faction: Merchants of Qeynos + e.other:QuestReward(e.self,0,0,0,0,1316,27440); -- Item: Velvet Choker + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Joffrey_Clay.lua b/qeynos/Joffrey_Clay.lua new file mode 100644 index 0000000..2add90e --- /dev/null +++ b/qeynos/Joffrey_Clay.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, friend. My name is Joffrey. I'm trying to learn to play the [flute]. I'm also working on a new song I learned while I was visiting [Kelethin]."); + elseif(e.message:findi("kelethin")) then + e.self:Say("I just got back from a trip to Faydwer. I was over there studying the lore of Tunare, in the beautiful elven city of Kelethin. I highly recommend visiting there as soon as you get a chance."); + elseif(e.message:findi("flute")) then + e.self:Say("You like my flute? Jusean made it for me. His father was a master instrument craftsman, and Jusean learned his technique very well."); + elseif(e.message:findi("Jusean")) then + e.self:Say("He should be around here somewhere. He's kinda lazy, so I imagine he wouldn't stray too far."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 1) then + e.self:Say("Belious, I'm working on this new tune I learned on my last trip to Kelethin. It's about Tunare. If you have a free ear, would you care to take a listen?"); + eq.signal(1125,1); -- NPC: Belious_Naliedin + elseif(e.wp == 2) then + e.self:Say("Ahem. Tunare and the Pact, sung by Joffrey Clay."); + e.self:DoAnim(58); + e.self:Say("La da di, la di da.. la da di. la di da.."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:qeynos ID:1131 -- Joffrey_Clay \ No newline at end of file diff --git a/qeynos/Juegile_Sohgohm.lua b/qeynos/Juegile_Sohgohm.lua new file mode 100644 index 0000000..bfbece5 --- /dev/null +++ b/qeynos/Juegile_Sohgohm.lua @@ -0,0 +1,58 @@ +-- Arcane Order armor quests + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Why hello there " .. e.other:GetCleanName() .. "! Its not often that I get many visitors to our sacred hall here. I am Juegile Sohgohm, Master Elementalist of the Order of Three. I have studied in these hallowed halls for all of my days. In my spare time I also pride myself as being a mentor for all of our new apprentices. If you are a young [Magician, Wizard or Enchanter] and you hail from the Order of Three house I might have some work for you."); + elseif(e.message:findi("young magician")) then + e.self:Say("Excellent, you must have certainly heard of the [training exercises] all new recruits must undergo."); + elseif(e.message:findi("young wizard")) then + e.self:Say("Excellent, you must have certainly heard of the [training exercises] all new recruits must undergo."); + elseif(e.message:findi("young enchanter")) then + e.self:Say("Excellent, you must have certainly heard of the [training exercises] all new recruits must undergo."); + elseif(e.message:findi("training exercise")) then + e.self:Say("The training exercises that I have prepared for my recruits are very necessary for the development of ones intellectual and hunting abilities. You will be presented with a Beginners Sewing Kit first, that will be used to combine a number of different [magical items] to create an infused armor material. Your material can then be combined in a loom with a pattern that I will present you with to create assorted pieces of Arcane Order Armor."); + elseif(e.message:findi("magical item")) then + e.self:Say("The items that are required for your armor materials will come from all areas of Qeynos, including some of our merchants. When you are ready to collect the items for a specific armor piece please tell me what armor piece you [want] to craft. I can provide you with the material recipes and applicable patterns for Arcane Order [Caps], [Bracers], [Sleeves], [Sandals], [Trousers], [Gloves] and [Robes]."); + e.other:SummonCursorItem(17271); -- Item: Beginners Sewing Kit + elseif(e.message:findi("glove")) then + e.self:Say("To create your glove material you will need to combine 3 Woven Spider Silks, 1 Shadow Wolf Paw, 1 Puma Skin and 1 Giant Fire Beetle Eye in your assembly kit. Once you have created the proper material take it to a loom along with this pattern to fashion your very own Gloves of the Arcane Order."); + e.other:SummonCursorItem(22588); -- Item: An Enchanted Gloves Pattern + elseif(e.message:findi("sandal")) then + e.self:Say("To create your boot material you will need to combine 3 Woven Spider Silks, 1 Gnoll Jawbone, 2 Gnoll Pup Scalps, and Cloth Sandals in your assembly kit. Once you have created the proper material take it to a loom along with this pattern to fashion your very own Sandals of the Arcane Order."); + e.other:SummonCursorItem(22585); -- Item: An Enchanted Sandals Pattern + elseif(e.message:findi("bracer")) then + e.self:Say("To create your bracer material you will need to combine 1 Woven Spider Silk, 2 Snake Eggs, 1 Large Myotis Bat Ear and a Cloth Wristband in your assembly kit. Once you have created the proper material take it to a loom along with this pattern to fashion your very own Bracer of the Arcane Order."); + e.other:SummonCursorItem(22584); -- Item: An Enchanted Bracer Pattern + elseif(e.message:findi("cap")) then + e.self:Say("To create your cap material you will need to combine 2 Woven Spider Silks, 1 Rabid Wolf Hide, 1 Fire Beetle Leg and a Cloth Cap in your assembly kit. Once you have created the proper material take it to a loom along with this pattern to fashion your very own Cap of the Arcane Order."); + e.other:SummonCursorItem(22583); -- Item: An Enchanted Cap Pattern + elseif(e.message:findi("trouser")) then + e.self:Say("To create your trouser material you will need to combine 4 Woven Spider Silks, 1 Giant Fire Beetle Carapace, 1 Spider Legs and 1 Matted Lion Pelt in your assembly kit. Once you have created the proper material take it to a loom along with this pattern to fashion your very own Trousers of the Arcane Order."); + e.other:SummonCursorItem(22587); -- Item: An Enchanted Trousers Pattern + elseif(e.message:findi("sleeve")) then + e.self:Say("To create your sleeves material you will need to combine 2 Woven Spider Silks, 2 Giant Whiskered Bat Eyes, and Cloth Sleeves in your assembly kit. Once you have created the proper material take it to a loom along with this pattern to fashion your very own Sleeves of the Arcane Order."); + e.other:SummonCursorItem(22586); -- Item: An Enchanted Sleeves Pattern + elseif(e.message:findi("robe")) then + e.self:Say("To create your robe material you will need to combine 5 Woven Spider Silks, 1 Medium Quality Bear Skin, 1 Bandit Sash, 1 Giant Fire Beetle Leg, 1 Golden Bandit Tooth and 1 Cloth Shirt in your assembly kit. Once you have created the proper material take it to a loom along with this pattern to fashion your very own Robe of the Arcane Order. I have one more [task] for you to complete young Conlara, so please come see me after you have completed your robe."); + e.other:SummonCursorItem(22589); -- Item: An Enchanted Robe Pattern + elseif(e.message:findi("task")) then + e.self:Say("I have heard word that there are numerous gnolls in the hills terrorizing a good friend of mine Rephas. I need you to go to the hills and assist my friend Rephas. Rephas had 3 pages of research he was studying and they were stolen by these gnolls. I need you to retrieve these pages and bring them to Rephas. He will then give you a completed book to return to me. Bring me back the completed book from Rephas and I will surely reward you for your efforts."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 27431})) then + e.self:Say("I knew I could rely on Rephas to finish this research for me. We both know that this would not have been possible without your help young " .. e.other:GetCleanName() .. " . Please take this dagger as a symbol of your dedication to the Order of Three. Your good deeds will surely be known throughout our guildhouse. Good luck to you!"); + -- Confirmed Live Experience and Faction + e.other:Faction(e.self,342,10); -- Faction: Order of Three + e.other:Faction(e.self,221,-2); -- Faction: Bloodsabers + e.other:Faction(e.self,262,1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,296,-1); -- Faction: Opal Dark Briar + e.other:QuestReward(e.self,{itemid = 27495,exp = 500}); -- Item: Dagger of Arcane Order + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- EOF zone: qeynos ID: 3037 name: Juegile_Sohgohm diff --git a/qeynos/Jusean_Evanesque.lua b/qeynos/Jusean_Evanesque.lua new file mode 100644 index 0000000..8b3739d --- /dev/null +++ b/qeynos/Jusean_Evanesque.lua @@ -0,0 +1,80 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -200) then -- verified faction amount + e.self:Say("Why, hello there, " .. e.other:GetCleanName() .. "! I am Jusean, loyal member of the League of Antonican Bards. You look like the reliable sort, maybe you could help me out for a bit, huh? It's about time for our field agents to turn in their [watch reports], and I need someone to go pick them up for me."); + else + e.self:Say("The League of Antonican Bards is very displeased with your recent actions. And I don't particularly care for you, or your stench, either!"); + end + elseif(e.message:findi("watch report")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("We always have someone stationed on watch duty at the two main entries to the city to keep an eye on what is happening around Qeynos. We have [Anehan and Behroe] down at the docks, and [Leanon and Quinon] working the North Gate."); + else + e.self:Say("The League of Antonican Bards is very displeased with your recent actions. And I don't particularly care for you, or your stench, either!"); + end + elseif(e.message:findi("anehan and behroe")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("Here, if you take this to Anehan or Behroe down at the docks, and then return their report to me as soon as you can, I will give you a small reward."); + e.other:SummonCursorItem(18021); -- Item: Juseans Report Request + else + e.self:Say("The League of Antonican Bards is very displeased with your recent actions. And I don't particularly care for you, or your stench, either!"); + end + elseif(e.message:findi("leanon and quinon")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("Leanon is in charge of the day shift at the North Gates of Qeynos, and Quinon is stationed there during the night. Please take this to either of them, have them fill it out, and then return it to me as soon as you can."); + e.other:SummonCursorItem(18020); -- Item: Juseans Report Request + else + e.self:Say("The League of Antonican Bards is very displeased with your recent actions. And I don't particularly care for you, or your stench, either!"); + end + elseif(e.message:findi("father")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("My father Heltin disappeared while on a voyage aboard the Sea King. A group of troll pirates attacked and boarded the ship. Ginleen Harltop and the steel warriors traveling with them managed to fight them off, but took many casualties. My father was one of the bodies that was not accounted for. They found his song book floating in the water near the boat. The red water soaked through it's pages told more of the story then I ever care to know."); + else + e.self:Say("The League of Antonican Bards is very displeased with your recent actions. And I don't particularly care for you, or your stench, either!"); + end + end +end + +function event_waypoint_arrive(e) + if(e.wp == 3) then + e.self:Emote("growls, revealing his fangs."); + end +end + + +function event_trade(e) + local item_lib = require("items"); + local item_check = 0; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18023})) then + e.self:Say("Good job. I hope Behroe wasn't sleeping on the job again when you talked to him. Hmm, the docks seem to be a hotbed of activity after the sun goes down. Thanks for your quick work, " .. e.other:GetCleanName() .. ", here's a little cash for your efforts."); + item_check = 1; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18024})) then + e.self:Say("Ah, very good. I'll make sure to note Leanon's report in our journals. Here's a little something for your troubles, " .. e.other:GetCleanName() .. "."); + item_check = 2; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18022})) then + e.self:Say("Ok, good work, " .. e.other:GetCleanName() .. ". I'll make sure to note the day's activities in our journal. Here's a little something for your efforts."); + item_check = 1; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18025})) then + e.self:Say("Hmm... interesting... good work, " .. e.other:GetCleanName() .. ", thank you for your help."); + item_check = 2; + end + + -- live confirmed text + faction + if(item_check == 1 or item_check == 2) then + + if(item_check == 1) then + e.other:Faction(e.self,284,25,0); -- league of antonican bards + e.other:Faction(e.self,281,3,0); -- knights of truth + e.other:Faction(e.self,262,3,0); -- guards of qeynos + elseif(item_check == 2) then + e.other:Faction(e.self,284,10,0); -- league of antonican bards + e.other:Faction(e.self,281,1,0); -- knights of truth + e.other:Faction(e.self,262,1,0); -- guards of qeynos + end + + e.other:Faction(e.self,304,-1,0); -- ring of scale + e.other:Faction(e.self,285,-1,0); -- mayong mistmoore + e.other:QuestReward(e.self,math.random(10),0,0,0,0,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Karn_Tassen.lua b/qeynos/Karn_Tassen.lua new file mode 100644 index 0000000..00410c6 --- /dev/null +++ b/qeynos/Karn_Tassen.lua @@ -0,0 +1,37 @@ +function event_signal(e) + e.self:Say("Ooh yeah! So would I, honey."); + eq.signal(1066,1); -- NPC: Danaria_Hollin +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello " .. e.other:GetCleanName() .. "! Welcome to our humble little bakery. We just got a fresh shipment of supplies in, have a look around!"); + elseif(e.message:findi("kane"))then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand"))then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("Hey, thanks kid! You are one top notch baker! Here's some coin for your trouble."); + e.other:Faction(e.self,291,2,0); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,223,-1,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,219,1,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,229,1,0); -- Faction: Coalition of Tradefolk + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("Ah finally, fresh bread! All right let me get this on the shelves right away. Here is your payment."); + e.other:Faction(e.self,291,4,0); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,223,-1,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,219,1,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,229,1,0); -- Faction: Coalition of Tradefolk + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Kasine_Paegra.lua b/qeynos/Kasine_Paegra.lua new file mode 100644 index 0000000..b6a4807 --- /dev/null +++ b/qeynos/Kasine_Paegra.lua @@ -0,0 +1,55 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("May the blessings of the Rainkeeper protect you in your travels. I am Kasine Paegra, keeper of the [Order of Thunder] medallions."); + else + e.self:Say("You have proven yourself not only an enemy of the Knights of Thunder, but an enemy of Karana himself. Now leave, sewer rat!"); + end + elseif(e.message:findi("order of thunder")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Order of Thunder is the medal awarded to a Knight of Thunder who has proven himself superior to the average warrior. All knights and priests of Thunder have one, save for the youngest members. Along with the medal comes great respect. You might say the wearer becomes more charismatic. Should you find one, please return it to Kasine Paegra, unless told otherwise."); + else + e.self:Say("You have proven yourself not only an enemy of the Knights of Thunder, but an enemy of Karana himself. Now leave, sewer rat!"); + end + elseif(e.message:findi("karana")) then + e.self:Say("Karana, the Rainkeeper, is the provider of the storms. If it were not for the storms of Karana, life would not flourish. All should pay tribute to the Rainkeeper."); + elseif(e.message:findi("enchant")) then + if(e.other:GetFactionValue(e.self) >= 900) then + e.self:Say("If you wish the power of the Rainkeeper to once again whine upon your weapon, you must hand me Bonethunder and 500 Gold Coins."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Well, friend, the Temple of Thunder has recognized and appreciates your past deeds for us. But this matter is of vital importance to us and we need more proof of your devotion to our cause."); + else + e.self:Say("You have proven yourself not only an enemy of the Knights of Thunder, but an enemy of Karana himself. Now leave, sewer rat!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I am ordered to only enchant the spell when I have both Bonethunder and 500 gold coins."; + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13287}, 0)) then --Order of Thunder (WK Paladin) + e.self:Say("You are a very honorable person. You have returned an Order of Thunder which you truly do not need. I give you the protection of the Rainkeeper to watch over you. May it keep you from harm. Go and serve."); + -- Confirmed Live Experience and Faction + e.self:CastSpell(11,e.other:GetID()); -- holy armor + e.other:Faction(e.self,280,10); --Knights of Thunder + e.other:Faction(e.self,221,-10); --BloodSabers + e.other:Faction(e.self,341,7); --Priest of Life + e.other:Faction(e.self,262,7); --Guards of Qeynos + e.other:QuestReward(e.self,{exp = 1000}); + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13288}, 0)) then --Order of Thunder (Drosco) + e.self:Say("You have returned an Order of Thunder which has been drained of all its power. I wonder how this could have happened. No doubt evil is behind this. Thank you for its return. I give you the blessings of Karana. Go and serve the Rainkeeper."); + e.self:CastSpell(200,e.other:GetID()); -- minor healing + e.other:Faction(e.self,280,20); --Knights of Thunder + e.other:Faction(e.self,221,-20); --BloodSabers + e.other:Faction(e.self,341,15); --Priest of Life + e.other:Faction(e.self,262,15); --Guards of Qeynos + e.other:QuestReward(e.self,{exp = 1000}); + elseif(e.other:GetFactionValue(e.self) >= 900 and item_lib.check_turn_in(e.self, e.trade, {item1 = 6358, gold = 500},1,text)) then -- useless recharge quest, item doesn't have charges anymore -- Bonethunder Staff + e.self:Say("The Rainkeeper has bestowed this weapon with power once more. Take it and defend our temple."); + e.other:QuestReward(e.self,0,0,0,0,6358,0); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:qeynos ID:1054 -- Kasine_Paegra \ No newline at end of file diff --git a/qeynos/Kazlo_Naedra.lua b/qeynos/Kazlo_Naedra.lua new file mode 100644 index 0000000..188de41 --- /dev/null +++ b/qeynos/Kazlo_Naedra.lua @@ -0,0 +1,36 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". I'm Kazlo Naedra of the Order of Three. We always seem to be running out of [supplies] around here, which is, of course, very distracting to our studies."); + elseif(e.message:findi("blank scroll sheets")) then + e.self:Say("These blank sheets seem harder to find every month. All the local merchants are out of them. Hopefully, one of the merchants out in Surefall will have some."); + elseif(e.message:findi("supplies")) then + if(fac < 5) then + e.self:Say("Yes, we're almost out of [blank scroll sheets]. Gahlith will be very upset, unless I can replenish our inventory soon."); + else + e.self:Say("The Order of Three has been monitoring your recent activities, and we are appalled by you and your actions! Now, begone!"); + end + end +end + +function event_trade(e) + local item_lib =require("items"); + + -- Confirmed Live Experience + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18006})) then + e.self:Say("Good work, " .. e.other:GetCleanName() .. "! Here's a little something for your troubles. Your quick work and loyalty will be noted by the Order of Three."); + e.other:Faction(e.self,342,5,0); -- Faction: Order of Three + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,221,-1,0); -- Faction: Bloodsabers + e.other:Faction(e.self,296,-1,0); -- Faction: Opal Dark Briar + e.other:QuestReward(e.self,math.random(10),0,0,0,0,200); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if(e.wp == 10) then + e.self:Say("Hey guys, you got any blank scroll sheets for sale? Or know where I could get some around here?"); + eq.signal(1115,3); -- NPC: Barthal + end +end diff --git a/qeynos/Kinloc_Flamepaw.lua b/qeynos/Kinloc_Flamepaw.lua new file mode 100644 index 0000000..e33c437 --- /dev/null +++ b/qeynos/Kinloc_Flamepaw.lua @@ -0,0 +1,12 @@ +function event_trade(e) + local item_lib =require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18719})) then -- Tattered Note + e.self:Say("Welcome to the Order of Three. I am Kinloc, Guild Master of the Magicians. This tunic of the Order is for you, wear it with honour. Study hard and master your skills, and you will become an important part of our Order. Yestura shall help introduce you to the ways of magic."); + e.other:Faction(e.self,342,100,0); -- Order of Three + e.other:Faction(e.self,221,-25,0); -- Bloodsabers + e.other:Faction(e.self,262,15,0); -- Guards of Qeynos + e.other:Faction(e.self,296,-15,0); -- Opal Dark Briar + e.other:QuestReward(e.self,0,0,0,0,13543,20); -- Used Blue Robe* + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Klieb_Torne.lua b/qeynos/Klieb_Torne.lua new file mode 100644 index 0000000..b52e93c --- /dev/null +++ b/qeynos/Klieb_Torne.lua @@ -0,0 +1,29 @@ +function event_spawn(e) + eq.set_timer("paw",600000); +end + +function event_timer(e) + e.self:Say("Can you believe that? That guy actually thinks he is going to find the [Paw of Opolla!]! Bwah ha ha ha!"); + eq.signal(1072,1); -- NPC: Micc_Koter +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey, " .. e.other:GetCleanName() .. "! Do I know you from somewhere? Highpass? Nah, you ain't who I thought you were. If I were you I would just keep my trap shut and buy some drinks."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("paw of opolla")) then + e.self:Say("Heh? Why don't you mind your own business bub?! Buzz off!"); + eq.signal(1072,2); -- NPC: Micc_Koter + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + -- e.self:FaceTarget(e.other:GetMobByNpcTypeID(1072)); + e.self:Say("Shut your hole, Micc, you dirty son of a kobold!"); +end \ No newline at end of file diff --git a/qeynos/Lanhern_Firepride.lua b/qeynos/Lanhern_Firepride.lua new file mode 100644 index 0000000..3f7c85b --- /dev/null +++ b/qeynos/Lanhern_Firepride.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day, traveler! You look as though you are in need of [superior armor]. We here at Firepride's specialize in armor. My [husband], Ton, knows his way around the anvil."); + elseif(e.message:findi("superior armor")) then + e.self:Say("Our forge skills were acquired from the armor lords of Kaladim, as were our [drinking skills]."); + elseif(e.message:findi("drinking skill")) then + e.self:Say("I learned the love of ale from the dwarves of Kaladim. Maybe someday I sall see you in the backroom at Fish's. If I do, don't forget to buy me an Ogre Swill."); + elseif(e.message:findi("husband") or e.message:findi("ton")) then + e.self:Say("My husband is quite adept in the art of smithing. We set up shop here but a season ago. We hope to one day be as successful as [Brohan] Ironforge."); + elseif(e.message:findi("brohan")) then + e.self:Say("Brohan Ironforge is the owner of Ironforge's in the northern part of Qeynos. He seems to be a good man with good skills. He also has the honor of siring the most handsome man in Qeynos. [Dren] is certainly quite an exceptional man."); + elseif(e.message:findi("dren")) then + e.self:Say("Dren Ironforge is only the most eligible bachelor in Qeynos! Not only has he graced this city with his good looks and charm, he will someday inherit the Ironforge Estate. What a catch he would be!"); + elseif(e.message:findi("donation.* temple.* thunder") or e.message:findi("donate.* temple.* thunder")) then + e.self:Say("I would love to donate to the Temple of Thunder, but I am afraid my husband is not fond of them. Meet me at Fish's at night and then I will have something to donate."); + end +end diff --git a/qeynos/Largon_Welsh.lua b/qeynos/Largon_Welsh.lua new file mode 100644 index 0000000..8fb04b3 --- /dev/null +++ b/qeynos/Largon_Welsh.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Grab a pole and start fishing. You never know what you will catch. Rohan is offering a reward for some fish. Dead or alive!"); + elseif(e.message:findi("donate") or e.message:findi("donation")) then + e.self:Say("Donate!? I think not. Go ask [Bait Masterson]. He has made a bundle from selling his daily catch."); + elseif(e.message:findi("Masterson")) then + e.self:Say("Masterson? Lately, I hear he has been spending a lot of time fishing in the catacombs underneath Qeynos. Must be at night when his wife is asleep. Ha!"); + end +end \ No newline at end of file diff --git a/qeynos/Lieutenant_Arathur.lua b/qeynos/Lieutenant_Arathur.lua new file mode 100644 index 0000000..7a9e8f0 --- /dev/null +++ b/qeynos/Lieutenant_Arathur.lua @@ -0,0 +1,43 @@ +function event_waypoint_arrive(e) + if(e.wp == 12) then + e.self:Say("Guard, stand up straight!"); + eq.signal(1002,1); -- NPC: Guard_Jerith + eq.signal(1181,1); -- NPC: Guard_Dunix + elseif(e.wp == 28) then + e.self:Say("Guard, stand up straight!"); + eq.signal(1090,1); -- NPC: Guard_Beren + eq.signal(1091,1); -- NPC: Guard_Corshin + elseif(e.wp == 38) then + e.self:Say("Guard, stand up straight!"); + eq.signal(1001,1); -- NPC: Guard_Mezzt + eq.signal(1189,1); -- NPC: Guard_Phaeton + eq.signal(1006,1); -- NPC: Guard_Cyrillian + eq.signal(1174,1); -- NPC: Guard_Forbly + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! Lieutenant Arathur Swelnik at your service. I take great pride in keeping Qeynos safe and proper. I also try to bring the word of [Mithaniel Marr] to the people of this fine city."); + elseif(e.message:findi("marr")) then + e.self:Say("Mithaniel Marr is the Lord of Valor and my personal source of power and inspiration. You see, I was orphaned as a small child and raised by the Priests of Marr in [Freeport]. I have dedicated my life to protecting the innocent. I now use the glorious powers that my faith in the Truthbringer has provided to help bring honor to the city of Qeynos."); + elseif(e.message:findi("freeport"))then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Freeport is the city of my birth. It is not what it once was, though. Thugs and bandits patrol its streets. My comrades in the Knights of Truth have managed to protect the northern parts of the city but I fear they are outnumbered and will soon have to flee Freeport altogether. If it were not for my sworn duty here, I would join their noble [crusade]."); + else + e.self:Say("Hurmp! You have not proven yourself loyal to Qeynos. Begone!"); + end + elseif(e.message:findi("crusade"))then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The Knights of Truth fight a never-ending battle against the corrupt and vicious Freeport Milita. If you are going to Freeport, you might want to meet up with Knight Rolius and let him know you are a friend of Arathur. They can always use another able body."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("While you are a fine and loyal citizen, I simply cannot trust you with that information as yet."); + else + e.self:Say("Hurmp! You have not proven yourself loyal to Qeynos. Begone!"); + end + elseif(e.message:findi("kane"))then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand"))then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + end +end \ No newline at end of file diff --git a/qeynos/Lomarc.lua b/qeynos/Lomarc.lua new file mode 100644 index 0000000..5c83922 --- /dev/null +++ b/qeynos/Lomarc.lua @@ -0,0 +1,64 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Say("I'm sure I have a few contacts who would be very pleased with this find."); + end + end +end + +function event_waypoint_arrive(e) + if(e.wp == 16 or e.wp == 43 or e.wp == 70) then + e.self:Say("Psst.. Hey, you there.. Yeah, you.. You need some [blank scroll sheets].. I just got a special shipment of things in.. Come on, it's just what you're looking for.. I know you."); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("Do I know you? Don't stick your nose where it don't belong. It might just get cut off."); + else + e.self:Say("To a wanderer of the Karanas such as myself, you are as insignificant as the dirt I walk on."); + end + elseif(e.message:findi("blank") or e.message:findi("scroll") or e.message:findi("sheet")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("Blank scroll sheets, huh? You know, there seems to be a shortage of these around here lately. But, hey friend, ol' Denny-boy here would never steer you wrong. I'll sell you some for 2 gold. I know, I'm too kind."); + else + e.self:Say("To a wanderer of the Karanas such as myself, you are as insignificant as the dirt I walk on."); + end + elseif(e.message:findi("bandit") or e.message:findi("associate")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("My associates? Let's just say they run a small trading operation between here and [Highpass]."); + else + e.self:Say("To a wanderer of the Karanas such as myself, you are as insignificant as the dirt I walk on."); + end + elseif(e.message:findi("highpass") or e.message:findi("highkeep")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("Highpass Hold... it's a good day's journey from here... And if I were you, I wouldn't travel it alone or at night."); + else + e.self:Say("To a wanderer of the Karanas such as myself, you are as insignificant as the dirt I walk on."); + end + end +end + +function event_trade(e) + local item_lib =require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {gold = 2})) then + e.self:Say("Yeah, well, these are pretty hard to come by. In fact, these came all the way from Odus. Enjoy, and tell your buddies."); + -- Confirmed Live Factions + e.other:Faction(e.self,223,1,0); -- Circle of Unseen Hands + e.other:Faction(e.self,291,-1,0); -- Merchants of Qeynos + e.other:Faction(e.self,230,1,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,262,-1,0); -- Guards of Qeynos + e.other:Faction(e.self,273,1,0); -- Kane Bayle + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,18006,100); -- Item: Blank Scroll Sheets + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18793})) then -- Should drop 13716 - Kerran Doll on death + e.self:Say("What the heck is this?!? No money at all? You'll pay for this, you back-stabbing knave!"); + eq.attack(e.other:GetName()); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Lord_Mrallon.lua b/qeynos/Lord_Mrallon.lua new file mode 100644 index 0000000..72e354d --- /dev/null +++ b/qeynos/Lord_Mrallon.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("tale")) then + if(e.other:GetFaction(e.self) < 3) then + e.self:Say("Nyrein Shadowstorm spent much of her life defending the Jaggedpine from within its confines. However, duty would sometimes deem that she trek beyond the forests to assure its protection. In the peak years of her life, she spent much time wandering the whole of Norrath in pursuit of one villain that had betrayed the entire order. We are not certain why or how this one, who at one time was Nyrein's most trusted of companions and second to only her within the order, fell to the temptations and corruption of The Faceless -- but we do know that Nyrein defeated him on the battlefield. He fled to the Plane of Fear and with him went the very essence of the Tempest Guard that remains caged within his corrupted, violent spirit. Find the Tempest Reaver and retrieve the Essence of the Tempest Guard, which you must then seal within the Hollowed Tempest Stone to create the Tempest's Guard Stone. Once you have this sacred stone, return it to Lady Deira."); + elseif(e.other:GetFaction(e.self) < 6) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 3 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8919, item2 = 8951})) then + e.self:Say("Aaaah, yet another warrior brave enough to face their own faults and honorable enough to strive for a proof of their worth and devotion to The Rainkeeper. Your kind is too few and far too rare, but do not think that your trials are at their end. I have forged the necessary Hollowed Tempest Stone -- yes, young warrior, I am indeed one well versed in the ways of the Tempest Guard for at one time I myself held such a rank in a time before the closing of the Jaggedpine. Aaaah, but enough reminiscing for one day -- your trial is the matter at hand. Within the Hollowed Tempest Stone you must combine the Essence of the Tempest Guard, which you will find only through great peril. The Tempest Reaver, who resides in the realm of Cazic-Thule himself, holds the essence. The [tale] regarding its presence there is indeed one to be heard if you wish to fully understand your task."); + e.other:Faction(e.self,280,10); -- Faction: Knights of Thunder + e.other:Faction(e.self,221,-10); -- Faction: Bloodsabers + e.other:Faction(e.self,341,7); -- Faction: Priests of Life + e.other:Faction(e.self,262,7); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,17089,1000); -- Hollow Tempest Stone + end + item_lib.return_items(e.self, e.other, e.trade, e.text) +end diff --git a/qeynos/Madame_Serena.lua b/qeynos/Madame_Serena.lua new file mode 100644 index 0000000..1985cdb --- /dev/null +++ b/qeynos/Madame_Serena.lua @@ -0,0 +1,60 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + if(e.message:findi("follow")) then + if(e.message:findi("bristlebane")) then + e.self:Say("To be like the king of thieves is the path on which you stray. Go to Crow's after sundown. It is better than in day."); + elseif(e.message:findi("Bertoxxulous")) then + e.self:Say("The catacombs contain safe haven for you and me. It is our place. To you, I tell no lie."); + elseif(e.message:findi("brell")) then + e.self:Say("The place of true power is usually beneath your feet. Stay in this city and a rare enemy you just may meet."); + elseif(e.message:findi("cazic") or e.message:findi("thule")) then + e.self:Say("You will find an acquaintance who is elvish and dark. Be forewarned that in this city it is best not to bark."); + elseif(e.message:findi("innoruuk")) then + if(fac < 5) then + e.self:Say("To hate is your way. Just as the father of the dark race. To Nektulos is where you should head at good pace."); + else + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + end + + elseif(e.message:findi("karana")) then + e.self:Say("You will be very safe in this city of thunder. Travel to the catacombs for easy plunder."); + elseif(e.message:findi("marr")) then + if(e.message:findi("erollisi")) then + e.self:Say("To be strong in the ways of love is truly the only way. Go into Karana's Paw and enjoy your day."); + elseif(e.message:findi("mithaniel")) then + e.self:Say("As is your god you are one of true valor from which you cannot part. Go forth into the catacombs and say hail Mister Bloodheart."); + else + e.self:Say("Which Marr? Come on, work with me here!"); + end + + elseif(e.message:findi("prexus")) then + e.self:Say("He created the Kedge freaks which are now gone from this land. Go deep into the caves of the Jaggedpine and someone will take your hand."); + elseif(e.message:findi("quellious")) then + e.self:Say("The tranquility and peace of the child lies in your heart. By fighting the opal elves you shall be doing your part."); + elseif(e.message:findi("rodcet nife")) then + e.self:Say("The power of healing is brought forth in your mass. Go past the gates and tell Zutros you are from Highpass."); + elseif(e.message:findi("tribunal")) then + e.self:Say("The tranquility and peace of the child lies in your heart. By fighting the opal elves you shall be doing your part."); + elseif(e.message:findi("tunare")) then + e.self:Say("From the mother of all elves you find comfort and peace. Walk the fields of Karana where troubles shall cease."); + elseif(e.message:findi("veeshan")) then + e.self:Say("The blood of the mother of all wyrms runs deep in great cities. Be aware that you are not alone in this town of no pity."); + elseif(e.message:findi("zek")) then + e.self:Say("To die in battle is the true and only way. Go into Blackburrow and join the fray."); + elseif(e.message:findi("ro")) then + e.self:Say("To set foot upon his land would set your body ablaze. Go far north of Freeport to find the eye in days."); + end + + end + +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {gold = 50})) then + e.self:Say("Fifty gold? You must want a rune of fortune. If you want another one, give fifty gold to Mizr N'Mar in the Neriak library."); + e.other:QuestReward(e.self,0,0,0,0,10530,10); -- Rune of Fortune (top) + end + + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Mar_Sedder.lua b/qeynos/Mar_Sedder.lua new file mode 100644 index 0000000..a90f9b0 --- /dev/null +++ b/qeynos/Mar_Sedder.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". What brings you to the Tin Soldier? We have the finest in previously owned weapons and armor. Feel free to browse."); + elseif(e.message:findi("tax")) then + e.other:Faction(e.self,291,-1,0); -- Faction: Merchants of Qeynos + e.self:Say("Here are the taxes, " .. e.other:GetCleanName() .. ". Boy, you call the guards and they take their time to show up but be a few days late on your taxes and they send the goons after you. Sheesh!"); + e.other:SummonCursorItem(13171); -- Item: Sedders Tax Payment + end +end diff --git a/qeynos/Marlin_Bizmite.lua b/qeynos/Marlin_Bizmite.lua new file mode 100644 index 0000000..e37a5d0 --- /dev/null +++ b/qeynos/Marlin_Bizmite.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, fellow fisherman. You must be a fisherman. You have the stench of one. If you are not, might I suggest this new pastime I have heard of? A bath!!"); + elseif(e.message:findi("prexus")) then + e.self:Say("Oh no!! Not another Prexus freak!! Listen up aqua man, if you think a man named Marlin has any chance of giving up fishing, you have got another thing coming. Go night diving in the north pond, you might find some bait for your Prexus blessing."); + elseif(e.message:findi("donation.* temple.* thunder") or e.message:findi("donate.* temple.* thunder")) then + e.self:Say("Please! Can't you pester the Ironforges? They are the richest family in Qeynos."); + end + +end diff --git a/qeynos/McNeal_Jocub.lua b/qeynos/McNeal_Jocub.lua new file mode 100644 index 0000000..7d54c35 --- /dev/null +++ b/qeynos/McNeal_Jocub.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good ta see ya! Now start showin' these poodlewalkers how a real fish drinks!"); + elseif(e.message:findi("low")) then + e.self:Say("This is going to sound crazy, but my main supplier of [Blackburrow Stout] is one of the brewers themselves. I have run too low on the fine brew and need someone to [pick up my shipment]."); + elseif(e.message:findi("pick up.* shipment")) then + e.self:Say("Take this note to the Qeynos Hills. Somewhere there, you shall find a gnoll at night called Gnasher. Give him the note. Now, get moving!"); + e.other:SummonCursorItem(18800); -- Item: A tattered note + elseif(e.message:findi("blackburrow stout")) then + e.self:Say("Keep it down!! So you've heard of Blackburrow Stout? We sell it here in Fish's Backroom. If the Qeynos Guards knew, well.. it wouldn't be such a good thing. The stout is illegal, It's made by the gnolls. It is one of the finest brews you will ever taste. If you want any.. slide me a [moonstone]."); + elseif(e.message:findi("moonstone")) then + e.self:Say("Looking for moonstones, are we? The only way I know of getting a moonstone is to hunt gnolls for Captain Tillin of the Qeynos Guards."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 5) then + e.self:Say("Blast!! We are running [low]!!"); + end +end + +function event_signal(e) + local rando = math.random(2); + e.self:Say("You shall never take me alive!!"); + if(rando == 1) then + eq.attack_npc_type(1202); + end +end + +function event_trade(e) + local moonstone = 0; + local item_lib =require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13131})) then + e.self:Say("Good work, pal. Here's a little dough to spend, just don't spend it at any other bar."); + e.other:Faction(e.self,345,30,0); -- Faction: Karana Residents + e.other:Faction(e.self,262,7,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,341,4,0); -- Faction: Priests of Life + e.other:Faction(e.self,280,9,0); -- Faction: Knights of Thunder + e.other:QuestReward(e.self,math.random(12),math.random(5),0,0); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10070,item2 = 10070,item3 = 10070,item4 = 10070}, 0)) then + moonstone = 4; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10070,item2 = 10070,item3 = 10070}, 0)) then + moonstone = 3; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10070,item2 = 10070}, 0)) then + moonstone = 2; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10070}, 0)) then + moonstone = 1; + end + if(moonstone > 0) then + repeat + e.self:Say("Here you go then. Don't go tellin' no Guards where that came from, I would hate to rid myself of a good paying customer."); + e.other:Faction(e.self,345,1); -- Faction: Karana Residents + e.other:Faction(e.self,262,1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,341,1); -- Faction: Priests of Life + e.other:Faction(e.self,280,1); -- Faction: Knights of Thunder + e.other:QuestReward(e.self,0,0,0,0,13107,100); -- Item: Black Burrow Stout + moonstone = moonstone - 1; + until moonstone == 0 + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Meera_Lylon.lua b/qeynos/Meera_Lylon.lua new file mode 100644 index 0000000..70f796a --- /dev/null +++ b/qeynos/Meera_Lylon.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks up a discarded item from the ground and says, 'Don't people have enough respect for our grand city to not throw things onto the streets?!"); + end + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. I am afraid I cannot tell you much about my merchandise. I was hired by Ton to look after the shop at night. I can tell you that you would find a better deal during the daytime hours. Ton instructs me to charge more for nighttime service."); + end +end diff --git a/qeynos/Menkes_Tabolet.lua b/qeynos/Menkes_Tabolet.lua new file mode 100644 index 0000000..257dcf5 --- /dev/null +++ b/qeynos/Menkes_Tabolet.lua @@ -0,0 +1,89 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -300) then -- this is within 100 faction of being completely accurate, tested at -400 and -200, -400 was too low and -200 worked + e.self:Say("Greetings, fine citizen of Qeynos, what can I make for you today? How about a genuine, handmade [rat fur cap]? Or maybe a lovely [rat pelt cape]? Maybe you'd like a necklace? For a small fee. I can make a nice [snake fang necklace] or a [lucky rat's foot necklace]."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("rat fur cap")) then + if(e.other:GetFactionValue(e.self) >= -300) then + e.self:Say("Rat fur cap? You're in luck, that happens to be my specialty, " .. e.other:GetCleanName() .. ". Just bring me 2 pieces of rat fur and 3 gold, and I'll make one up for you while you wait."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("rat pelt cape")) then + if(e.other:GetFactionValue(e.self) >= -300) then + e.self:Say("The rat pelt cape.. that happens to be my specialty! I must say, it would be the perfect choice to go with that outfit you have on. All I need are 3 rat pelts, those big ol' rats out in the hills work great for these capes, and 4 gold. I must say, at these prices, everyone in Qeynos will be wearing one in a matter of weeks."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("snake fang necklace")) then + if(e.other:GetFactionValue(e.self) >= -300) then + e.self:Say("Hey, great choice.. the snake fang necklace just happens to be my specialty, " .. e.other:GetCleanName() .. "! Just bring me 3 snake fangs, and 2 gold. With one of these around your neck, you're sure to be the center of attention down at Crow's.. or anywhere else you fill your mug."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("lucky rat")) then + if(e.other:GetFactionValue(e.self) >= -300) then + e.self:Say("Now that is exactly what you need my friend, a lucky rat's foot necklace.. and, it just happens to be my specialty! Just bring me one rat's foot, some rat whiskers, and I won't even charge you any gold. Just buy me a honey mead, and you'll be the luckiest rat dodger this side of Highpass."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("kane"))then + if(e.other:GetFactionValue(e.self) >= -300) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("circle.* unseen hand"))then + if(e.other:GetFactionValue(e.self) >= -300) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_waypoint_arrive(e) + if(e.wp == 6) then + e.self:Say("Get your rat fur caps here! Get your snakes fang necklaces here! Special discount prices.. this week only."); + elseif(e.wp == 9) then + e.self:Say("Custom made rat pelt capes.. cheap, cheap, cheap!"); + elseif(e.wp == 12) then + e.self:Say("Feeling a bit unlucky lately? Gnoll pups always picking on you? Fire beetles attacking you when you aren't looking? what you need is a lucky rat's foot necklace! Satisfaction guaranteed!"); + elseif(e.wp == 17) then + e.self:Say("Get your rat fur caps here! Get your snake fang necklaces here! Special discount prices.. This week only."); + elseif(e.wp == 23) then + e.self:Say("Feeling a bit unlucky lately? Gnoll pups always picking on you? Fire beetles attacking you when you aren't looking? what you need is a lucky rat's foot necklace! Satisfaction guaranteed!"); + elseif(e.wp == 27) then + e.self:Say("Menkes' discount fashions and jewelry, now open for business.. custom made hats, to fit any size head."); + end + +end + +function event_trade(e) + local item_lib =require("items"); + local text1 = "Yea, this is good, but remember, I need 3 gold and 2 pieces of rat fur to make a cap for you."; + local text2 = "That's part of it, now get me the rest and you'll be walking off in a brand new cape, my friend."; + local text3 = "Hey, I'm giving you a great deal here.. Get the rest of items for this already. I'm sure we both have important things to do."; + local text4 = "Oh yea.. this will be the finest snake fang necklace I've ever made."; + + if(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13064,item2 = 13064, gold = 3},1,text1)) then -- hand-ins worked at -400 faction low dubious, didn't work at scowls + e.self:Say("Hey. look at this. some of my best work, if I do say so myself. Enjoy, and tell your friends"); + e.other:Faction(e.self,121,2); -- Qeynos Citizen + e.other:QuestReward(e.self,0,0,0,0,1050,200); -- rat fur cap + elseif(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13054,item2 = 13054,item3 = 13054,gold = 4},1,text2)) then + e.self:Say("This cape turned out great. It'll sure help keep you warm on those cold and stormy nights out in the Karanas."); + e.other:Faction(e.self,121,5); -- Qeynos Citizen + e.other:QuestReward(e.self,0,0,0,0,1051,200); -- rat pelt cape + elseif(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13067,item2 = 13067,item3 = 13067,gold = 2},1,text4)) then + e.self:Say("Hey, hey.. with this little baby, you will be the talk of the town tonight!"); + e.other:Faction(e.self,121,5); -- Qeynos Citizen + e.other:QuestReward(e.self,0,0,0,0,1052,200); -- Snake fang necklace + elseif(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13065,item2 = 13071,item3 = 13033},1,text3)) then + e.self:Say("Now this here has got to be one of my best works.. I dare you to find someone who can make a higher quality necklace than this one! Enjoy, my good friend!"); + e.other:Faction(e.self,121,5); -- Qeynos Citizen + e.other:QuestReward(e.self,0,0,0,0,1053,200); -- rat's foot necklace + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Mespha_Tevalian.lua b/qeynos/Mespha_Tevalian.lua new file mode 100644 index 0000000..5e9691e --- /dev/null +++ b/qeynos/Mespha_Tevalian.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings.. I am Mespha Tevalian, Master Enchantress of the Hall of Sorcery and the Order of Three. Here, we all study the three circles of magic, and lend our services to citizens of Qeynos. Rumors of an underground group calling themselves the Bloodsabers have recently been spreading throughout the city. It is our duty to help local guards protect Qeynos' citizens from this new evil."); + end +end + +function event_trade(e) + local item_lib =require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18720})) then -- Tattered Note + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". Welcome to the Hall of Sorcery. You have much to learn. Wear this tunic and represent us well. See my apprentice, Unsar Koldhagon, he will get you started and help you with your studies."); + e.other:Faction(e.self,342,100,0); -- Order of Three + e.other:Faction(e.self,221,-25,0); -- Bloodsabers + e.other:Faction(e.self,262,15,0); -- Guards of Qeynos + e.other:Faction(e.self,296,-15,0); -- Opal Dark Briar + e.other:QuestReward(e.self,0,0,0,0,13542,20); -- Faded Blue Robe* + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Micc_Koter.lua b/qeynos/Micc_Koter.lua new file mode 100644 index 0000000..f2848a4 --- /dev/null +++ b/qeynos/Micc_Koter.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh, hello, " .. e.other:GetCleanName() .. ". Don't mind my associate Klieb over there. He gets quite grumpy when he drinks. We are relatively new here ourselves but have made some fast friends in Qeynos. This is a city of opportunity."); + elseif(e.message:findi("paw of opolla")) then + e.self:Say("Some guy, don't know who he was, was in here claiming he had a lead where to find some information on the Paw of Opolla. I don't know anything about it except it is supposed to be the paw of some old gnoll bitch and have some magic powers. Buy me a Brandy and I might tell you where he was going."); + elseif(e.message:findi("ranger")) then + e.self:Say("Beats me. Try going to the north near Surefall Glade. That is where those goodie goodies tend to hang out."); + elseif(e.message:findi("gnoll")) then + e.self:Say("A gnoll is a stupid dog that walks upright. They are dirty and stinky and hate humans. Just like my pal Klieb here. Heh!"); + eq.signal(1071,1); -- NPC: Klieb_Torne + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Hey... Better get me another one... I can't quite remember... Heh heh..."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13034,item2 = 13034},1,text)) then + e.self:Say("Oh yes. Now I remember.. Ha ha.. He said he was going into the Plains of Karana to look for some gnoll lover by the name of Caninel. He said Caninel knew something about the location of the Paw of Opolla. It sounds like a bunch of rat crap to me , I never heard of no one named Caninel. But off he went.. Heck , finding one person in the Plains of Karana without a [ ranger ] to guide you is like looking for a clean spot on ol'Klieb here. Ha ha!!"); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Ha ha ha ha!"); + elseif(e.signal == 2) then + e.self:Say("Lighten up, will ya, Klieb? You act like a dang [gnoll] sometimes.."); + end +end diff --git a/qeynos/Miltiades_Tal-Azroth.lua b/qeynos/Miltiades_Tal-Azroth.lua new file mode 100644 index 0000000..b488891 --- /dev/null +++ b/qeynos/Miltiades_Tal-Azroth.lua @@ -0,0 +1,54 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings and salutations " .. e.other:GetCleanName() .. ". I am Miltiades Tal`Azroth Crusader of Karana. I have spent all of my years here in Qeynos and gathered infinite knowledge from my teachers on my path to enlightenment. I have also started training new recruits to help them find their calling as a Holy Warrior of Karana. If you are a [Paladin of Karana] I might have some tasks for you to complete."); + elseif(e.message:findi("paladin of karana")) then + e.self:Say("That is excellent news " .. e.other:GetCleanName() .. ". As a Knight in training of Karana I would like to offer you a series of [tests] what will test your devotion to yourself and your god."); + elseif(e.message:findi("test")) then + e.self:Say("I have put together a series of tests that will enable our new recruits to create their own armor. You will use a Rainkeepers Assembly Kit to combine assorted items that you will collect from both the hunting areas surround Qeynos and the city itself. Combining these magical items in your kit will create a material that you will place in a forge along with molds that I will present to you to create your armor. Are you ready to start [fashioning your materials]?"); + elseif(e.message:findi("fashioning your materials")) then + e.self:Say("Excellent " .. e.other:GetCleanName() .. ". Please take this Rainkeepers Assembly Kit. Now for your materials you will fashion you will obviously need to know what items are used for what armor materials. Simply tell me what armor piece you [want] to create and I will present you with the recipe for that specific armor material. I can present you with the molds and recipes necessary for creating Rainkeeper [Helm], [Bracers], [Armguards], [Boots], [Greaves], [Gauntlets] and [Breastplate]."); + e.other:SummonCursorItem(17264); -- Item: Rainkeepers Assembly Kit + elseif(e.message:findi("armguard")) then + e.self:Say("Here is your Rainkeepers Armguards Mold. To create your armguard material you will need to combine 2 Bricks of Crude Iron, 1 Snake Fang and 1 Burned Out Lightstone and 1 Fishing Bait in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Armguards of the Rainkeeper."); + e.other:SummonCursorItem(22613); -- Item: An Enchanted Armguard Mold + elseif(e.message:findi("boot")) then + e.self:Say("Here is your Rainkeepers Boot Mold. To create your boot material you will need to combine 3 Bricks of Crude Iron, 1 Patch of Gnoll Fur, 1 Giant Snake Fang and 1 Bandage in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Boots of the Rainkeeper."); + e.other:SummonCursorItem(22612); -- Item: An Enchanted Boot Mold + elseif(e.message:findi("bracer")) then + e.self:Say("Here is your Rainkeepers Bracer Mold. To create your bracer material you will need to combine 1 Brick of Crude Iron, 2 Gnoll Pup Scalps, 1 Patch of Gnoll Fur and 1 Water Flask in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Bracer of the Rainkeeper."); + e.other:SummonCursorItem(22611); -- Item: An Enchanted Bracer Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("Here is your Rainkeepers Breastplate Mold. To create your breastplate material you will need to combine 5 Bricks of Crude Iron, 1 Coyote Skull, 1 Golden Bandit Tooth, 1 Young Plains Cat Scalp, 1 Diseased Wolf Pelt and 1 Lightstone in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Breastplate of the Rainkeeper. Please come back to see me after you have created your breastplate because I have one [final favor] to ask of you."); + e.other:SummonCursorItem(22616); -- Item: An Enchanted Breastplate Mold + elseif(e.message:findi("gauntlet")) then + e.self:Say("Here is your Rainkeepers Gauntlets Mold. To create your gauntlet material you will need to combine 3 Bricks of Crude Iron, 1 Chunk of Meat, 1 Shadow Wolf Paw, and 2 Giant Fire Beetle Eyes in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Gauntlets of the Rainkeeper."); + e.other:SummonCursorItem(22615); -- Item: An Enchanted Gauntlet Mold + elseif(e.message:findi("greave")) then + e.self:Say("Here is your Rainkeepers Greaves Mold. To create your greaves material you will need to combine 4 Bricks of Crude Iron, 2 Ruined Lion Skins, 1 Spider Legs and 1 Bottle in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Greaves of the Rainkeeper."); + e.other:SummonCursorItem(22614); -- Item: An Enchanted Greaves Mold + elseif(e.message:findi("helm")) then + e.self:Say("Here is your Rainkeepers Helm Mold. To create your helm material you will need to combine 2 Bricks of Crude Iron, 1 Patch of Gnoll Fur, 1 Large Snake Skin and 1 Fish Wine in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Helm of the Rainkeeper."); + e.other:SummonCursorItem(22610); -- Item: An Enchanted Helm Mold + elseif(e.message:findi("final favor")) then + e.self:Say("In the past I have sent some of my finest messengers to Qeynos Hills to deliver messages to the Sayers about current events in Qeynos. However the last few I have sent did not return so I began to look into what might have happened when I received word that the Bloodsabers had claimed responsibility for the slayings. I must ask that you bring me the head of a certain Bloodsaber who I think is [responsible] for the slayings."); + elseif(e.message:findi("responsible")) then + e.self:Say("I have reason to believe that Tovax Vmar is behind this, a dreaded necromancer that has been known to prowl the hills. Having Tovax dead will surely send a message to the Bloodsabers to tread lightly for their days are numbered. If you are able to find Tovax return to me his necklace along with 2 Enchanted Wisp Globes and I will reward you with a weapon suitable for a true knight of Karana."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 27414, item2 =27415, item3 = 27415})) then + e.self:Say("Your dedication to your house amazes me " .. e.other:GetCleanName() .. ". Please take this blade as a symbol of your loyalty to your faith."); + -- Confirmed Live Experience and Faction + e.other:Faction(e.self,280,10,0); -- Faction: Knights of Thunder + e.other:Faction(e.self,221,-10,0); -- Faction: Bloodsabers + e.other:Faction(e.self,341,7,0); -- Faction: Priests of Life + e.other:Faction(e.self,262,7,0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,{itemid = 27488,exp = 500}); -- Item: Rainkeepers Defender Blade + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:qeynos ID:1018 -- Miltiades_Tal`Azroth diff --git a/qeynos/Moran_Smith.lua b/qeynos/Moran_Smith.lua new file mode 100644 index 0000000..2f66617 --- /dev/null +++ b/qeynos/Moran_Smith.lua @@ -0,0 +1,36 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); + e.self:SetRunning(true); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks up a discarded item from the ground and says, 'Don't people have enough respect for our grand city to not throw things onto the streets?!"); + end + end +end + +function event_signal(e) + if(e.signal == 1) then + eq.stop(); + e.self:MerchantCloseShop(); + elseif(e.signal == 2) then + eq.start(60); + e.self:MerchantOpenShop(); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings!! Moran here. I just love this city. I traveled from Freeport to Qeynos to stay far from the [Freeport Militia]."); + elseif(e.message:findi("freeport militia")) then + e.self:Say("The Freeport Militia are nothing more than thugs. I have seen them lay waste to more than a dozen adventurers at once. For no reason other than to flex their muscles!"); + elseif(e.message:findi("kane"))then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand"))then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("donate") or e.message:findi("donation")) then + e.self:Say("I am sorry. I have no extra currency to donate."); + end +end diff --git a/qeynos/Morty_Prysmith.lua b/qeynos/Morty_Prysmith.lua new file mode 100644 index 0000000..d0493fb --- /dev/null +++ b/qeynos/Morty_Prysmith.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings to you, " .. e.other:GetCleanName() .. ". Try the Ogre Swills in this place. They get it to just the right consistency! You could stick a dagger in it and it would stand straight up!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Nesiff_Tallaherd.lua b/qeynos/Nesiff_Tallaherd.lua new file mode 100644 index 0000000..1e2435b --- /dev/null +++ b/qeynos/Nesiff_Tallaherd.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "! Nesiff Tallaherd, owner and operator of Nesiff's Wooden Weapons, at your service. I am the finest woodworker in all of Qeynos. Even the Qeynos Guard uses my arrows, thanks to [Guard Weleth]."); + elseif(e.message:findi("guard weleth")) then + e.self:Say("Guard Weleth is like a son to me. He is responsible for purchasing supplies for the Qeynos Guard. He buys arrows from me. He is usually stationed near the North Gate."); + elseif(e.message:findi("tax")) then + e.other:Faction(e.self,291,-1,0); -- Faction: Merchants of Qeynos + e.self:Say("Tax time again already?? It seems like I just paid yesterday.. High taxes and low sales mean I won't be able to stay in business much longer. Good thing ol' Weleth is taking care of me. Here are my taxes."); + e.other:SummonCursorItem(13173); -- Item: Tallaherds Tax Payment + end +end + +function event_trade(e) + local item_lib =require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13925})) then -- Crate of Defective Arrows + e.self:Say("Oh dear. I hope my mistake will not bring too much grief down on poor Weleth. He was told not to order arrows from me after the last time I fouled up their shipment. But Weleth knew I needed the account to stay in business. Could you please rush this new invoice to him right away? Thank you."); + -- confirmed live factions + e.other:Faction(e.self,291,5,0); -- Merchants of Qeynos + e.other:Faction(e.self,223,-1,0); -- Circle Of Unseen Hands + e.other:Faction(e.self,219,1,0); -- Antonius Bayle + e.other:Faction(e.self,229,1,0); -- Coalition of Tradefolk + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,18824,250); -- Slip of Parchment + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18012})) then + e.self:Say("Oh. Vesteri sent you? Here you go. I hope Te'Anara likes it."); + -- confirmed live factions + e.other:Faction(e.self,291,1,0); -- Merchants of Qeynos + e.other:Faction(e.self,223,-1,0); -- Circle Of Unseen Hands + e.other:Faction(e.self,219,1,0); -- Antonius Bayle + e.other:Faction(e.self,229,1,0); -- Coalition of Tradefolk + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,13864,250); -- Item: Wooden Statue + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Nindle_Hogster.lua b/qeynos/Nindle_Hogster.lua new file mode 100644 index 0000000..d876349 --- /dev/null +++ b/qeynos/Nindle_Hogster.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello! You should take up fishing. It really relieves the stress that accompanies heavy adventuring."); + elseif(e.message:findi("donate") or e.message:findi("donation")) then + e.self:Say("First someone asks me to donate to Prexus and now this. Don't you people have better things to do than beg from us hard working citizens?"); + elseif(e.message:findi("prexus") or e.message:findi("donation")) then + e.self:Say("Prexus!? I should have figured you for one of those Prexus fanatics. Why don't you go take a dip in the harbor?! I hear the sharks are hungry. You should take a trip to the aqueducts. You might find a fellow Prexus praiser named Bait Masterson. He loves to sneak down there at night."); + end +end diff --git a/qeynos/Nostahla_Westfend.lua b/qeynos/Nostahla_Westfend.lua new file mode 100644 index 0000000..1ff8e55 --- /dev/null +++ b/qeynos/Nostahla_Westfend.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings.. I am Nostahla Westfend, understudy of Gahlith, and Second Master Wizard of the Order of Three."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 3) then + eq.set_anim(1121,1); + elseif(e.wp == 4) then + eq.set_anim(1121,0); + elseif(e.wp == 16) then + e.self:Say("Gahlith, I'm going down to the docks to see if Ghul has anything new from overseas today. I'll be back in a little while."); + end +end diff --git a/qeynos/Nug_Rellash.lua b/qeynos/Nug_Rellash.lua new file mode 100644 index 0000000..1b9d1d4 --- /dev/null +++ b/qeynos/Nug_Rellash.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". I am Nug Rellash, assistant brewer and barkeep at the Lion's Mane Tavern. Come in and enjoy the drinks."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18821}, 0)) then -- Scrap of Parchment + e.self:Say("Let's see here... That is good for one free ale. Here you go. Enjoy it!"); + e.other:Faction(e.self,291,-5); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,223,1); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,219,-1); -- Faction: Antonius Bayle + e.other:Faction(e.self,229,-1); -- Faction: Coalition of Tradefolk + e.other:Faction(e.self,262,-1); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,13049,0); -- Item: Free Ale + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/qeynos/Rabley_Trumend.lua b/qeynos/Rabley_Trumend.lua new file mode 100644 index 0000000..c12600d --- /dev/null +++ b/qeynos/Rabley_Trumend.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Buy something!! This is no tavern! I am not selling conversation!"); + elseif(e.message:findi("donate") or e.message:findi("donation")) then + e.self:Say("You must be kidding! As a merchant I pay enough in taxes. There is nothing LEFT to donate!"); + end +end diff --git a/qeynos/Raffel_Minnmorn.lua b/qeynos/Raffel_Minnmorn.lua new file mode 100644 index 0000000..e19624c --- /dev/null +++ b/qeynos/Raffel_Minnmorn.lua @@ -0,0 +1,22 @@ +function event_spawn(e) + eq.set_timer("talk",600000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, friend. I am visiting from the plains. I hope to make a FORTUNE here in Qeynos."); + elseif(e.message:findi("Flockwalker")) then + e.self:Say("Gash Flockwalker is a druid from Surefall Glade. I have a special delivery for him."); + elseif(e.message:findi("special delivery")) then + e.self:Say("I shall chop you down as your people chopped down the beauty of the forests!!"); + eq.attack(e.other:GetName()); + end +end + +function event_timer(e) + if(e.timer == "talk") then + e.self:Say("Pardon me. Have you seen a man named Gash Flockwalker? He hails from Surefall Glade."); + eq.stop_timer("talk"); + eq.signal(1104,2); -- NPC: Tasya_Huntlan + end +end diff --git a/qeynos/Raffy_Conticede.lua b/qeynos/Raffy_Conticede.lua new file mode 100644 index 0000000..7c8e868 --- /dev/null +++ b/qeynos/Raffy_Conticede.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("karana")) then + e.self:Say("Karana, the Rainkeeper, is the provider of the storms. If it were not for the storms of Karana, life would not flourish. All should pay tribute to the Rainkeeper."); + elseif(e.message:findi("bertoxxulous")) then + e.self:Say("Bertoxxulous, the Plaguebringer, is the Lord of Disease. It is he who smites Norrath with his diseases and imperfections. Those who follow him are called [Bloodsabers]."); + elseif(e.message:findi("bloodsaber")) then + e.self:Say("It is rumored that there is a shrine in the great city of Qeynos which pays homage to the Plaguebringer, Bertoxxulous. The members of this vile church of the damned are called the Bloodsabers. They are dreaded shadowknights, necromancers and evil clerics. It is our duty to destroy all who dare to pray to such a deity. Join our fight. Speak more of this matter with Chesgard Sydwend."); + elseif(e.message:findi("healer")) then + e.self:Say("If you need to be healed, I suggest you speak with the Priests of Life. You can find them in the Temple of Life on the other side of Qeynos. The only service you can pay for here is holy armor. Daedet Losaren charges followers of Karana for that blessing."); + end +end diff --git a/qeynos/Raz_The_Rat_Misk.lua b/qeynos/Raz_The_Rat_Misk.lua new file mode 100644 index 0000000..a711a54 --- /dev/null +++ b/qeynos/Raz_The_Rat_Misk.lua @@ -0,0 +1,44 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -500) then -- requires dubious + e.self:Say("Spare 3 gold so I can get a decent meal for once, master?"); + else + e.self:Say("Beat it. You ain't part of the Circle."); + end + elseif(e.message:findi("favor")) then + if(e.other:GetFactionValue(e.self) >= -100) then -- requires apprehensive faction + e.self:Say("I found this pouch and do not know whose it is. I would be more than willing to part with it for 5 gold, since the owner would probably reward you more."); + else + e.self:Say("Beat it. You ain't part of the Circle."); + end + end + +end + +function event_trade(e) + local item_lib =require("items"); + + -- Confirmed Live Experience + if(e.other:GetFactionValue(e.self) >= -100) then -- requires apprehensive faction + if(item_lib.check_turn_in(e.self, e.trade, {gold = 5})) then + e.self:Say("Very good, master! Best of luck in locating the proper owner. Maybe try giving it to ol' Crow in North Qeynos. Everyone knows if you need to fence.. er.. find something in Qeynos, Crow is your man. He always seems to know who's missing what. I am off to get some food."); + -- Confirmed Live Faction + e.other:Faction(e.self,223,2,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,291,-1,0); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,230,1,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,262,-1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,273,1,0); -- Faction: Kane Bayle + e.other:QuestReward(e.self,0,0,0,0,17600); + elseif(item_lib.check_turn_in(e.self, e.trade, {gold = 3})) then + e.self:Say("Thank you, kind master. I don't wish to trouble you further but I do have another [favor] to ask.."); + -- Confirmed Live Faction + e.other:Faction(e.self,223,1,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,291,-1,0); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,230,1,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,262,-1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,273,1,0); -- Faction: Kane Bayle + e.other:QuestReward(e.self,0,0,0,0,0,1); + end + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Renic_Losaren.lua b/qeynos/Renic_Losaren.lua new file mode 100644 index 0000000..c50c3ca --- /dev/null +++ b/qeynos/Renic_Losaren.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome, " .. e.other:GetCleanName() .. ". Please feel at ease here in the Temple of Thunder. We, the Knights of Thunder, are here to guide and serve."); + elseif(e.message:findi("karana") or e.message:findi("rainkeeper")) then + e.self:Say("Karana, the Rainkeeper, is the provider of the storms. If it were not for the storms of Karana, life would not flourish. All should pay tribute to the Rainkeeper.") + elseif(e.message:findi("bertoxxulous")) then + e.self:Say("Bertoxxulous, the Plaguebringer, is the Lord of Disease. It is he who smites Norrath with his diseases and imperfections. Those who follow him are called [Bloodsabers]."); + elseif(e.message:findi("bloodsaber")) then + e.self:Say("It is rumored that there is a shrine in the great city of Qeynos which pays homage to the Plaguebringer, Bertoxxulous. The members of this vile church of the damned are called the Bloodsabers. They are dreaded shadowknights, necromancers and evil clerics. It is our duty to destroy all who dare to pray to such a deity. Join our fight. Speak more of this matter with Chesgard Sydwend."); + elseif(e.message:findi("heal")) then + e.self:Say("If you need to be healed, I suggest you speak with the Priests of Life. You can find them in the Temple of Life on the other side of Qeynos. The only service you can pay for here is holy armor. Daedet Losaren charges followers of Karana for that blessing."); + end +end + +function event_trade(e) + local item_lib =require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18715})) then -- Tattered Note + e.self:Say("Welcome, friend, to the Temple of Thunder. Here, you can practice your skills and learn the ways of Karana. Take this tunic and wear it with pride, for you are now a Priest of Thunder. Guild Trainer Daedet Losaren will begin your tutoring, see him when you are ready."); + e.other:Faction(e.self,280,100,0); -- Knight of Thunder + e.other:Faction(e.self,221,-100,0); -- Bloodsabers + e.other:Faction(e.self,341,75,0); -- Priest of Life + e.other:Faction(e.self,262,75,0); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,13505,100); -- Old Gray Tunic* + end + + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Rucio_Divella.lua b/qeynos/Rucio_Divella.lua new file mode 100644 index 0000000..c8cf8d1 --- /dev/null +++ b/qeynos/Rucio_Divella.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, fellow citizen! Welcome to the Office of the People. What can I do for you?"); + end +end \ No newline at end of file diff --git a/qeynos/Runethar_Hamest.lua b/qeynos/Runethar_Hamest.lua new file mode 100644 index 0000000..65f6745 --- /dev/null +++ b/qeynos/Runethar_Hamest.lua @@ -0,0 +1,74 @@ +function event_signal(e) + e.self:Say("Hire one soon, Wolten. We need to get in touch with Drosco!"); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Temple of Thunder. We are home to paladins and clerics who follow the ways of Karana. Do you [need guidance] or are you [already a follower of Karana]?"); + elseif(e.message:findi("need guidance")) then + e.self:Say("Then go forth into the church and speak with Gehna Solbenya. She will assist you."); + elseif(e.message:findi("follower of karana") or e.message:findi("wish to assist")) then + if(e.other:GetFaction(e.self) <= 4) then + if(e.message:findi("follower of karana")) then + e.self:Say("So you are one with our cause? This is good. Be aware that there are forces at work which not even the Qeynos Guard can keep at bay. We are here to spread the words of Karana and smite those who should try to end His children. We and Antonius Bayle shall work together in our destruction of evil. He requests our aid. Do you also [wish to assist Lord Bayle]?"); + elseif(e.message:findi("wish to assist")) then + e.self:Say("Then we command you to assist the Qeynos Guard with the destruction of Blackburrow. Report to Captain Tillin of Qeynos Guard and speak with him of the [gnolls of Blackburrow]. I believe he is at the arena. My loyal friend, if you have earned your Thunder Staff, I urge you to [retrieve the Bayle list]."); + end + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("Well, friend, the Temple of Thunder has recognized and appreciates your past deeds for us. But this matter is of vital importance to us and we need more proof of your devotion to our cause."); + else + e.self:Say("You have proven yourself not only an enemy of the Knights of Thunder, but an enemy of Karana himself. Now leave, sewer rat!"); + end + elseif(e.message:findi("retrieve the Bayle list")) then + if(e.other:GetFactionValue(e.self) >= 900) then + e.self:Say("The Temple of Thunder was asked by Antonius Bayle to retrieve a list. He does not trust his own militia of late. He asked me to send a knight to the Jaggedpine to find a man named Frenway Marthank. When you find him, you are to tell him that [Toe needs the Bayle List]. Return the Bayle List and your Thunder Staff to me and I shall provide a fine reward. Be aware that the shadowknights of Bertoxxulous are also after the list. Be careful!"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Well, friend, the Temple of Thunder has recognized and appreciates your past deeds for us. But this matter is of vital importance to us and we need more proof of your devotion to our cause."); + else + e.self:Say("You have proven yourself not only an enemy of the Knights of Thunder, but an enemy of Karana himself. Now leave, sewer rat!"); + end + elseif(e.message:findi("honored member")) then + if(e.other:GetFactionValue(e.self) >= 50) then + e.self:Say("Yes. The light of righteousness shines from within you."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Well, friend, the Temple of Thunder has recognized and appreciates your past deeds for us. But this matter is of vital importance to us and we need more proof of your devotion to our cause."); + else + e.self:Say("You have proven yourself not only an enemy of the Knights of Thunder, but an enemy of Karana himself. Now leave, sewer rat!"); + end + elseif(e.message:findi("drosco")) then + e.self:Say("Have you knowledge of Sir Drosco? He is a Knight of Thunder and reports to Sir Wolten. He has been missing for quite some time. I believe Sir Wolten has begun a search for him."); + elseif(e.message:findi("karana")) then + e.self:Say("Karana, the Rainkeeper, is the provider of the storms. If it were not for the storms of Karana, life would not flourish. All should pay tribute to the Rainkeeper."); + elseif(e.message:findi("bertoxxulous")) then + e.self:Say("Bertoxxulous, the Plaguebringer, is the Lord of Disease. It is he who smites Norrath with his diseases and imperfections. Those who follow him are called [Bloodsabers]."); + elseif(e.message:findi("bloodsaber")) then + e.self:Say("It is rumored that there is a shrine in the great city of Qeynos which pays homage to the Plaguebringer, Bertoxxulous. The members of this vile church of the damned are called the Bloodsabers. They are dreaded shadowknights, necromancers and evil clerics. It is our duty to destroy all who dare to pray to such a deity. Join our fight. Speak more of this matter with Chesgard Sydwend."); + elseif(e.message:findi("healer")) then + e.self:Say("If you need to be healed, I suggest you speak with the Priests of Life. You can find them in the Temple of Life on the other side of Qeynos. The only service you can pay for here is holy armor. Daedet Losaren charges followers of Karana for that blessing."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I thank you, but before I reward you I must have both the Bayle List II and your Thunder Staff."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18710},0)) then + e.self:Say("Greetings, fellow knight of Karana, and welcome to the Temple of Thunder! Here, wear this tunic and help our crusade. Wolten Grafe is my assistant, he will get you started and teach you the ways of the Rainkeeper."); + e.other:Faction(e.self,280,100,0); -- Faction: Knights of Thunder + e.other:Faction(e.self,221,-100,0); -- Faction: Bloodsabers + e.other:Faction(e.self,341,75,0); -- Faction: Priests of Life + e.other:Faction(e.self,262,75,0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,13505,100); -- Old Gray Tunic* + elseif(e.other:GetFaction(e.self) < 3 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18809,item2 = 6357},1,text)) then + e.self:Say("Antonius Bayle will be pleased. The Temple is also pleased. Here is the enchanted staff we call Bonethunder. Should you find the enchantment gone, just ask Kasine to [enchant Bonethunder]. We need more disciples like you! Go forth to tell the world of the Rainkeeper."); + e.other:Faction(e.self,280,-50,0); -- Faction: Knights of Thunder + e.other:Faction(e.self,221,50,0); -- Faction: Bloodsabers + e.other:Faction(e.self,341,-37,0); -- Faction: Priests of Life + e.other:Faction(e.self,262,-37,0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,6358,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:qeynos ID:1136 -- Runethar_Hamest + diff --git a/qeynos/Sansa_Nusk.lua b/qeynos/Sansa_Nusk.lua new file mode 100644 index 0000000..818e2ce --- /dev/null +++ b/qeynos/Sansa_Nusk.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello.. Welcome to the Wind Spirit's Song. I'm Sansa, and I help out the local bards here."); + elseif(e.message:findi("fabian")) then + e.self:Say("Ahh - jolly Fabian. He is one of our best customers! That is, of course, due to the fact that he has the heaviest fingers of any bard I know. Anyhow, down to business. I assume he sent you for a new set of strings. Unfortunately, I have not been able to procure any of the special - uhh - things needed to make his strings lately."); + elseif(e.message:findi("special things")) then + e.self:Say("Uhh - ummm - uhhh - Fabian does not know this, but his strings are - uh - made of - uh - troll guts."); + elseif(e.message:findi("troll guts")) then + e.self:Say("Well, Fabian likes the thick resonance that only troll gut strings can provide. Trouble is, trolls are scarce around these parts,thank the gods, but Fabian breaks his strings as fast as I find suppliers. Trolls sometimes wander the Karanas in search of food but that is so rare, to see one there. Anyhow, if you find one out in the Karanas, bring me his gut along with 10 gold for materials and I can make the strings to take to Fabian."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13703,platinum = 1})) then + e.self:Say("I am not even going to bother asking where you got that. Just take this set I already made and hurry them back to Fabian."); + e.other:Faction(e.self,284,2,0); -- Faction: League of Antonican Bards + e.other:Faction(e.self,281,1,0); -- Faction: Knights of Truth + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,304,-1,0); -- Faction: Ring of Scale + e.other:Faction(e.self,285,-1,0); -- Faction: Mayong Mistmoore + e.other:QuestReward(e.self,0,0,0,0,13709,100); + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/qeynos/Sea_King.lua b/qeynos/Sea_King.lua new file mode 100644 index 0000000..09a9232 --- /dev/null +++ b/qeynos/Sea_King.lua @@ -0,0 +1,29 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Boat spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + if(e.wp == 12) then + eq.debug("Boat to Erudsxing has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.spawn_condition("qeynos",3,0); + eq.spawn_condition("qeynos",4,0); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(98,-2190,-464,-22,64); + end, + function(ent) + if(ent:GetBoatID() == 772) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/qeynos/Solani_Dayadil.lua b/qeynos/Solani_Dayadil.lua new file mode 100644 index 0000000..a044d12 --- /dev/null +++ b/qeynos/Solani_Dayadil.lua @@ -0,0 +1,32 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); + e.self:SetRunning(true); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks up a discarded item from the ground and says, 'Don't people have enough respect for our grand city to not throw things onto the streets?!"); + end + end +end + +function event_signal(e) + if(e.signal == 1) then + eq.stop(); + e.self:MerchantCloseShop(); + elseif(e.signal == 2) then + eq.start(59); + e.self:MerchantOpenShop(); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("If you are a fellow merchant. I must warn you of the inevitable tax increase. Antonius Bayle is soon to make a [deal] with the people of Surefall Glade."); + elseif(e.message:findi("deal")) then + e.self:Say("Bayle is soon to sign a law which will raise the taxes on all bear hides. This is to keep the purchase of the hides to a minimum. All this to keep the treehuggers happy!!"); + elseif(e.message:findi("donate") or e.message:findi("donation")) then + e.self:Say("Did you not hear about the [deal] with Surefall Glade?! I will have little money to EAT, let alone donate to another person's cause!"); + end +end diff --git a/qeynos/Sollari_Bekines.lua b/qeynos/Sollari_Bekines.lua new file mode 100644 index 0000000..8526dba --- /dev/null +++ b/qeynos/Sollari_Bekines.lua @@ -0,0 +1,51 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, there! I am Sollari Bekines of the League of Antonican Bards. I am at your service to train you as best I can. There have been a number of young bards entering our concert halls lately seeking guidance. If you are a [young bard in search of training]. I might have some work for you."); + elseif(e.message:findi("young bard in search of training")) then + e.self:Say("You need to look no further then. I can surely provide you with the knowledge you will need to make it in this world as a songweaver. The exercises that you will need to complete will test your gathering and fighting skills. Once you have completed your training you will be outfitted with a suit of your very own armor! When you are [ready to begin] I will explain to you how the training will work."); + elseif(e.message:findi("begin")) then + e.self:Say("Here is your Wind Spirits Assembly Kit. In this kit you will collect a different items that will be combined in certain quantities to create infused armor materials. These armor materials that you create can then be taken to a forge along with the applicable armor mold to fashion together a piece of Wind Spirits Armor. When you would like to craft an armor piece you must simply tell me what piece you [want] to craft. I will then provide you with the recipe and mold necessary for creating Wind Spirits [Helms], [Bracers], [Armguards], [Boots], [Greaves], [Gauntlets] and [Breastplates]."); + e.other:SummonCursorItem(17269); -- Item: Wind Spirits Assembly Kit + elseif(e.message:findi("helm")) then + e.self:Say("To create your helm material you will need to combine 2 Bricks of Crude Iron, 1 Coyote Skull, 1 Bat Fur and 1 Honey Mead in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Wind Spirits Helm."); + e.other:SummonCursorItem(22610); -- Item: An Enchanted Helm Mold + elseif(e.message:findi("bracer")) then + e.self:Say("To create your bracer material you will need to combine 1 Brick of Crude Iron, 1 Gnoll Backbone, 1 Gnoll Scoutsmans Documents and 1 Throwing Spear in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Wind Spirits Bracer."); + e.other:SummonCursorItem(22611); -- Item: An Enchanted Bracer Mold + elseif(e.message:findi("armguard")) then + e.self:Say("To create your armguards material you will need to combine 2 Bricks of Crude Iron, 2 Ruined Wolf Pelts, 1 Diseased Wolf Pelt and 1 Arrow in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Wind Spirits Armguards."); + e.other:SummonCursorItem(22613); -- Item: An Enchanted Armguard Mold + elseif(e.message:findi("boot")) then + e.self:Say("To create your boot material you will need to combine 3 Bricks of Crude Iron, 1 Brown Bear Femur and 2 Blackburrow Gnoll Pelts in your assembly kit, Once you have created the proper material take it to a forge along with this mold to fashion your very own Wind Spirits Boots."); + e.other:SummonCursorItem(22612); -- Item: An Enchanted Boot Mold + elseif(e.message:findi("greave")) then + e.self:Say("To create your greaves material you will need to combine 4 Bricks of Crude Iron, 1 Giant Spider Egg Sack, 1 Black Wolf Tooth, 1 Bottle and 1 Young Puma Skin in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Wind Spirits Greaves."); + e.other:SummonCursorItem(22614); -- Item: An Enchanted Greaves Mold + elseif(e.message:findi("gauntlet")) then + e.self:Say("To create your gauntlet material you will need to combine 3 Bricks of Crude Iron, 1 Giant Fire Beetle Carapace, 1 Lion Tooth, and 2 Spider Legs in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Wind Spirits Gauntlets."); + e.other:SummonCursorItem(22615); -- Item: An Enchanted Gauntlet Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("To create your breastplate material you will need to combine 5 Bricks of Crude Iron, 1 Low Quality Bear Skin, 1 Woven Spider Silk, 1 Lock of Scarecrow Straw, 1 Matted Lion Pelt and 1 Bandit Sash in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Wind Spirits Breastplate. When you are finished with your Breastplate and have completed your armor set please come see me for one [final exercise]."); + e.other:SummonCursorItem(22616); -- Item: An Enchanted Breastplate Mold + elseif(e.message:findi("final exercise")) then + e.self:Say("I need your help with ridding the hills of some of the most vile creatures, the gnolls of course! My resident alchemist has instructed me that he needs some items from these furballs for a antidote he is working on. I need you to bring me 2 Vials of Gnoll Blood and 2 Gnoll Pelvises. Once you have returned with these items I will reward you with a weapon worthy of the finest Qeynos Songweaver. I look forward to seeing you soon."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 27423, item2 = 27423, item3 = 27424,item4 = 27424})) then + e.self:Say("I will get this to my friend at once so that he can finish his antidote. I appreciate all you have done for me and you have surely proven yourself as a worth songweaver! Please take this blade I have forged for all graduates of my tests. May it lead you to unforeseen treasures and guard you always."); + -- Confirmed Live Experience and Factions. + e.other:Faction(e.self,284,10,0); -- league of antonican bards + e.other:Faction(e.self,281,1,0); -- knights of truth + e.other:Faction(e.self,262,1,0); -- guards of qeynos + e.other:Faction(e.self,304,-1,0); -- ring of scale + e.other:Faction(e.self,285,-1,0); -- mayong mistmoore + e.other:QuestReward(e.self,{itemid = 27493,exp = 500}); -- Item: Wind Spirits Longsword + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:qeynos ID:1050 -- Sollari_Bekines diff --git a/qeynos/Soulbinder_Novalu.lua b/qeynos/Soulbinder_Novalu.lua new file mode 100644 index 0000000..ed8a567 --- /dev/null +++ b/qeynos/Soulbinder_Novalu.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID(),0,1); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/qeynos/Sunsa_Jocub.lua b/qeynos/Sunsa_Jocub.lua new file mode 100644 index 0000000..4e6aeed --- /dev/null +++ b/qeynos/Sunsa_Jocub.lua @@ -0,0 +1,4 @@ +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Tabure_Ahendle.lua b/qeynos/Tabure_Ahendle.lua new file mode 100644 index 0000000..3ab7b99 --- /dev/null +++ b/qeynos/Tabure_Ahendle.lua @@ -0,0 +1,65 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What have we here? Perhaps a future Ebon Strongbear? A [member of the Steel Warriors]? If the way of the warrior is not to your liking, might I suggest joining the League of Antonican Bards? The only damage you might take there is a sore throat! HAHAHA!"); + elseif(e.message:findi("steel warrior")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("A warrior, you say? I have never met you. You must be from the [bunker] or perhaps just a new recruit. You should test your skills with Brin Stolunger. When you have done that, then, maybe you could [assist] me."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Steel Warriors have no cause to dislike you, but you have yet to truly prove your worth to this guild."); + else + e.self:Say("Your head shall look grand mounted on the wall of the Steel Warriors Arena!!"); + end + elseif(e.message:findi("assist")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("So, you think you be of assistance to me? Let me test your skill. Travel to Erudin and seek out the beasts which are called Kobolds. I have never seen one and would very much like to have four Kobold Hides with which to make a rug. To do so would earn you some barely used rawhide armor - maybe even a shield."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Steel Warriors have no cause to dislike you, but you have yet to truly prove your worth to this guild."); + else + e.self:Say("Your head shall look grand mounted on the wall of the Steel Warriors Arena!!"); + end + elseif(e.message:findi("dangerous task")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("A ship sank while returning from Odus. On this ship was my squire, Tombor. He sank to the bottom and there he still lies. With him went a map. I would very much like you to search for this sunken ship. Return the map to me. I am sure it is still in the rotting hands of Tombor."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Steel Warriors have no cause to dislike you, but you have yet to truly prove your worth to this guild."); + else + e.self:Say("Your head shall look grand mounted on the wall of the Steel Warriors Arena!!"); + end + elseif(e.message:findi("bunker")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Far to the eastern coast of Antonica lies the great trade city of Freeport. It is there that our second chapter of Steel Warriors has built the arena called the bunker."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Steel Warriors have no cause to dislike you, but you have yet to truly prove your worth to this guild."); + else + e.self:Say("Your head shall look grand mounted on the wall of the Steel Warriors Arena!!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I believe I stated that I need four kobold hides to make a rug."; + + if(e.other:GetFaction(e.self) <= 4 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13423})) then -- requires amiably + e.self:Say("The map!! It is all blurred. The ink has run. I shall never be able to decipher it now. Still, I owe you for completion of your mission. May these be of assistance. It is always good for a warrior to be well supplied."); + -- Confirmed Live Faction + e.other:Faction(e.self,311,5,0); -- Faction: Steel Warriors + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,230,-1,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,330,-1,0); -- Faction: The Freeport Militia + e.other:Faction(e.self,281,1,0); -- Faction: Knights of Truth + e.other:QuestReward(e.self,math.random(10),math.random(5),0,0,eq.ChooseRandom(5082,9001,5024),5000); + elseif(e.other:GetFaction(e.self) <= 4 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13424, item2 =13424, item3 = 13424,item4 = 13424},1,text)) then + e.self:Say("Incredible!! Such grand tones. It shall make a fine rug. You have shown me that you cannot always judge a book by its cover. You are quite skilled. Would you like to perform a [dangerous task] for me?"); + -- Confirmed Live Faction + e.other:Faction(e.self,311,20,0); -- Faction: Steel Warriors + e.other:Faction(e.self,262,4,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,230,-3,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,330,-3,0); -- Faction: The Freeport Militia + e.other:Faction(e.self,281,4,0); -- Faction: Knights of Truth + e.other:QuestReward(e.self,math.random(10),math.random(5),0,0,eq.ChooseRandom(2140,2147,9002),5000); -- Item(s): Raw-hide Tunic (2140), Raw-hide Leggings (2147), Round Shield (9002) + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:qeynos ID:1098 -- Tabure_Ahendle diff --git a/qeynos/Talym_Shoontar.lua b/qeynos/Talym_Shoontar.lua new file mode 100644 index 0000000..a3deeda --- /dev/null +++ b/qeynos/Talym_Shoontar.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("How are you, friend? It is a good day to be alive in Antonica! If you should happen to visit Surefall Glade, say hello to Hager Sureshot for me."); + elseif(e.message:findi("hager")) then + e.self:Say("Hager Sureshot is that know-nothing ranger in charge of the Protectors of the Pine. He thinks he can protect all of Surefall Glade. He is wrong."); + elseif(e.message:findi("poach")) then + e.self:Say("Excuse me! I am a HUNTER. A hunter of profit, not glory. Have you come to [collect the bounty] on my head? For your sake, the answer had better be [no]."); + elseif(e.message:findi("collect")) then + e.self:Say("Then do your best, whelp! I need the practice. I hope for your sake that my gypsy friends are not nearby."); + elseif(e.message:findi("no")) then + e.self:Say("Too bad. I heard there is a new market for skins of your kind."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Tasya_Huntlan.lua b/qeynos/Tasya_Huntlan.lua new file mode 100644 index 0000000..f5f1182 --- /dev/null +++ b/qeynos/Tasya_Huntlan.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! Are you just visiting Qeynos? We have plenty of rooms available or, if your throat is parched, you can always visit Earron in our pub."); + elseif(e.message:findi("tax")) then -- triggers without starting quest + e.other:Faction(e.self,291,-1,0); -- Faction: Merchants of Qeynos + e.self:Say("Taxes? Oh, that time again huh? Here you are. Give Vicus our best. I hear he is under the weather."); + e.other:SummonCursorItem(13176); -- Item: Huntlans Tax Payment + end +end + +function event_signal(e) + if(e.signal == 2) then + e.self:Say("Yes. He is staying here at the Lion's Mane Inn, but it is against regulations to give out room numbers. I can tell you that he loves to see the sun rise over the ocean."); + end +end diff --git a/qeynos/Ton_Firepride.lua b/qeynos/Ton_Firepride.lua new file mode 100644 index 0000000..216873a --- /dev/null +++ b/qeynos/Ton_Firepride.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, adventurer! A mighty warrior such as yourself deserves only the finest in armor and we here at Firepride's were trained by the finest dwarven smiths. We shall be branching out and crafting [other items] soon, also."); + elseif(e.message:findi("other items")) then + e.self:Say("Well, soon I shall be showing my fantastic art in weapons making. I would hate to have the good people of Qeynos continue purchasing inferior weapons from that so-called blacksmith at [Ironforge Estates]."); + elseif(e.message:findi("ironforge estate")) then + e.self:Say("The Ironforge family has called Qeynos their own for far too long. He was never trained in the dwarven techniques as I was. He will not be cornering the weapons market very much longer."); + elseif(e.message:findi("tax")) then + e.other:Faction(e.self,230,-1); -- Faction: Corrupt Qeynos Guards + e.self:Say("Oh I see, Vicus has got some other sap to do his work. Fine. Here are your stinking taxes. If Kane were in charge, things would be different around here."); + e.other:SummonCursorItem(13170); -- Item: Fireprides Tax Payment + elseif(e.message:findi("lanhern")) then + e.self:Say("Lanhern is a good woman, but she is not wise in the ways of the world. It is best she stays that way."); + elseif(e.message:findi("donate") or e.message:findi("donation")) then + e.self:Say("Away from me, fool! The Knights of Thunder are no friends of mine. They persist in forging their own armor! What?! Are not the talents of Ton Firepride to their liking?!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13129})) then + e.self:Say("Ha! This is great. Here's your money, murderer! Hope the guards don't find you. Now get lost! Take the tunic. Maybe Garuc will reward you for such a vile deed. I sure don't want to keep it around here."); + -- Confirmed Live Factions + e.other:Faction(e.self,230,20,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,262,-3,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,273,3,0); -- Faction: Kane Bayle + e.other:Faction(e.self,223,2,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,221,3,0); -- Faction: Bloodsabers + e.other:QuestReward(e.self, math.random(10), math.random(10), math.random(3),0,13134,400); + end + item_lib.return_items(e.self, e.other, e.trade) +end + + diff --git a/qeynos/Tralyn_Marsinger.lua b/qeynos/Tralyn_Marsinger.lua new file mode 100644 index 0000000..bd1a730 --- /dev/null +++ b/qeynos/Tralyn_Marsinger.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". If you are interested in helping the League of Antonican Bards by delivering some mail then you should talk to my wife, Eve."); + elseif(e.message:findi("mail")) then + e.self:Say("The League of Antonican Bards has a courier system made up of travelers, adventurers and [agents]. We pay good gold to anyone who will take messages from bards such as myself to one of our more distant offices. Are you [interested]?"); + elseif(e.message:findi("agent")) then + e.self:Say("Sivina Lutewhisper, Marton Stringsinger, Ticar Lorestring and Mistrana Two-Notes all report to me."); + elseif(e.message:findi("marton stringsinger")) then + e.self:Say("Marton Stringsinger lives with the barbarians in the city of Halas."); + elseif(e.message:findi("sivina lutewhisper")) then + e.self:Say("Sivina Lutewhisper lives with the rangers in Surefall Glade."); + elseif(e.message:findi("ticar lorestring")) then + e.self:Say("Ticar Lorestring sings for the people of the city of Erudin."); + elseif(e.message:findi("mistrana.* note")) then + e.self:Say("Mistrana Two-Notes is currently visiting with the McMannus tribe in the Karanas."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18150}) or item_lib.check_turn_in(e.self, e.trade, {item1 = 18151}) or item_lib.check_turn_in(e.self, e.trade, {item1 = 18153}) or item_lib.check_turn_in(e.self, e.trade, {item1 = 18154})) then + e.self:Say("Incoming mail - very good! Please take this gold for your troubles."); + -- Confirmed Live Faction + e.other:Faction(e.self,284,5,0); -- Faction: League of Antonican Bards + e.other:Faction(e.self,281,1,0); -- Faction: Knights of Truth + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,304,-1,0); -- Faction: Ring of Scale + e.other:Faction(e.self,285,-1,0); -- Faction: Mayong Mistmoore + e.other:QuestReward(e.self,0,0,math.random(8,12),0,0,1550); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Trumpy_Irontoe.lua b/qeynos/Trumpy_Irontoe.lua new file mode 100644 index 0000000..aafe280 --- /dev/null +++ b/qeynos/Trumpy_Irontoe.lua @@ -0,0 +1,52 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + if(e.message:findi("hail")) then + e.self:Say("Heh? What's yer name? " .. e.other:GetCleanName() .. "? Never heard of ya. Now quit breathin' on me and buy us some [drinks]!"); + elseif(e.message:findi("drink") or e.message:findi("mead")) then + e.self:Say(" Yeah. Gimme a.. er.. honey mead."); + elseif(e.message:findi("dragon")) then + e.self:Say("What? Dragon? That was a joke, ya zombie! Sheesh! I miss [Kaladim].."); + elseif(e.message:findi("kaladim")) then + e.self:Say("Heh? Kaladim, you say? It's a long way from here, I tell you.. Home to us dwarves it is. I miss it sometimes though.. Its tough being a swashbuckling dwarf with my rugged good looks when all the other dwarves are so envious. Cripes, " .. e.other:GetCleanName() .. "... You got me all misty-eyed now.. Peh! Buy me a honey mead, will ya?"); + elseif(e.message:findi("skippy")) then + e.self:Say("Skippy? You mean that fish farmer? Heh heh heh. What a moron. And his brother [Beren] has the nerve to actually threaten ME!?.. Burp.. Bah. Remind me to tell [Kane] about that steaming pile of gnoll dung."); + elseif(e.message:findi("beren")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Don't even mention that weakling's name. He.. burp.. Keeps threatening me. ME! Trumpy IRONTOE!!! Peh! That useless son of a goblin had better wise up and realize that in this burg if you ain't with [Kane], you are against him. And if you are against him.. burp.. you ain't nothing but a corpse."); + else + e.self:Say("Heh. Well, well, what have we here? Seems you don't want to be part of Kane's new Qeynos huh? Well... You keep bugging me and the only thing you'll be a part of is the bottom of my boot!"); + end + elseif(e.message:findi("kane")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Ah.. burp.. that piece of cr.. eh? Oh its you.. Kane runs this burg.. or at least he will.. if [Sragg] can get his act together."); + else + e.self:Say("Heh. Well, well, what have we here? Seems you don't want to be part of Kane's new Qeynos huh? Well... You keep bugging me and the only thing you'll be a part of is the bottom of my boot!"); + end + elseif(e.message:findi("sragg")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Where did you hear that name?!? Not from me! I didn't say nothing about Sragg or those Bloodsabers or their dang temple in the sewers! Get away from me ya hobgoblins! I don't wants no trouble!"); + else + e.self:Say("Heh. Well, well, what have we here? Seems you don't want to be part of Kane's new Qeynos huh? Well... You keep bugging me and the only thing you'll be a part of is the bottom of my boot!"); + end + else + e.self:Say("You had better just be... ... minding your own business if you know what is good for you. Gnollbreath. We Irontoes are a proud and strong bunch of dwarves from [Kaladim]. We crush weaklings like you. "); + end +end + +function event_trade(e) + + local item_lib = require("items"); + local text = "Beh! Thanks, Skippy. Why don't ya buy yourself one? And.. .. .. get me another!"; + + if(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13033, item2 = 13033, item3 = 13033, item4 = 13033},1,text)) then + e.self:Say("BWAH hah hah! I knew you wasn't the loser you.. .. .. appear to be! I will have to tell [Kane].. .. all about you. Maybe get you in the gang!"); + -- Confirmed Live Factions + e.other:Faction(e.self,223,1,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,291,-1,0); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,230,1,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,262,-1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,273,1,0); -- Faction: Kane Bayle + e.other:QuestReward(e.self,0,0,0,0,0,200); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Unsar_Koldhagon.lua b/qeynos/Unsar_Koldhagon.lua new file mode 100644 index 0000000..e918892 --- /dev/null +++ b/qeynos/Unsar_Koldhagon.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", I am Unsar, student of Mespha. I am working on a spell. . . I call it [Unsar's Glory]. Great name, huh?"); + elseif(e.message:findi("unsar's glory")) then + e.self:Say("Ah, Unsar's Glory. . . Mind you, I haven't perfected it yet, but bring me some [rat whiskers], [snake scales], and two [bat wings], and I'll show you how it works."); + elseif(e.message:findi("snake scales") or e.message:findi("rat whiskers") or e.message:findi("bat wings")) then + e.self:Say("They seem to be very plentiful right outside the city gates."); + end +end + +function event_trade(e) + local item_lib =require("items"); + local text = "Thanks, but remember, I need all four items to show you the spell."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13071,item2 = 13070,item3 = 13068,item4 = 13068},1,text)) then + e.self:Say("All right, check this out. . . Maybe one day you'll be good enough to do this, too"); + -- Confirmed Live Faction + e.other:Faction(e.self,342,5,0); -- Faction: Order of Three + e.other:Faction(e.self,221,-1,0); -- Faction: Bloodsabers + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,296,-1,0); -- Faction: Opal Dark Briar + e.other:QuestReward(e.self,0,0,0,0,0,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Vansted_Rohenga.lua b/qeynos/Vansted_Rohenga.lua new file mode 100644 index 0000000..4bb64d8 --- /dev/null +++ b/qeynos/Vansted_Rohenga.lua @@ -0,0 +1,56 @@ +function event_say(e) + + if(e.message:findi("hail")) then + e.self:Say("Pleased to meet you " .. e.other:GetCleanName() .. ". I am Vansted Rohenga High Priest of Karana. I have spent all of my years studying the ways of the Cleric in our wonderful Temple of Thunder. We receive many new recruits every day and it is my duty to place them in my [training program]."); + elseif(e.message:findi("training program")) then + e.self:Say("Well all young clerics of Karana are brought up from their first day of training to know and respect their practice. I have developed a number of exercises that will enable a young cleric to make a set of their own armor by means of collecting certain items and making [enchanted armor materials] out of them."); + elseif(e.message:findi("enchanted armor materials")) then + e.self:Say("Recently we have discovered that combing certain items in certain quantities using a magical assembly kit can forge together an armor material. These armor materials are used with specific armor molds to create a piece of enchanted Stormhealer Armor. If you would like to [begin forging armor materials] I will present you with your Stormhealers Assembly Kit."); + elseif(e.message:findi("begin forging armor materials")) then + e.self:Say("Excellent " .. e.other:GetCleanName() .. ", please take this Stormhealers Assembly Kit. It is in this kit that you will combine certain items together into materials necessary for crafting your armor. I can present you with the material recipes and armor molds for Stormhealer [Helms], [Bracers], [Armguards], [Boots], [Greaves], [Gauntlets] and [Breastplates]. When you are ready to gather the items for an armor piece simply tell me what piece you [want] to craft. Once you have created a specific material take it to a forge along with the applicable mold to create your armor piece."); + e.other:SummonCursorItem(17265); -- Item: Stormhealers Assembly Kit + elseif(e.message:findi("helms")) then + e.self:Say("Here is your Stormhealers Helm Mold. To create your helm material you will need to combine 2 Bricks of Crude Iron, 1 Field Rat Ribcage, 1 Rat Tooth and 1 Honey Mead in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Helm of the Stormhealer."); + e.other:SummonCursorItem(22610); -- Item: An Enchanted Helm Mold + elseif(e.message:findi("bracers")) then + e.self:Say("Here is your Stormhealers Bracer Mold. To create your bracer material you will need to combine 1 Brick of Crude Iron, 1 Field Rat Skull, 1 Coyote Skull and 1 Grapes in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Bracer of the Stormhealer."); + e.other:SummonCursorItem(22611); -- Item: An Enchanted Bracer Mold + elseif(e.message:findi("armguard")) then + e.self:Say("Here is your Stormhealers Armguard Mold. To create your armguards material you will need to combine 2 Bricks of Crude Iron, 2 Whiskered Bat Fangs, and 1 Torch in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Armguards of the Stormhealer."); + e.other:SummonCursorItem(22613); -- Item: An Enchanted Armguard Mold + elseif(e.message:findi("boot")) then + e.self:Say("Here is your Stormhealers Boot Mold. To create your boot material you will need to combine 3 Bricks of Crude Iron, 1 Ruined Blackburrow Gnoll Pelt, 2 Gnoll Fangs in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Boot of the Stormhealer."); + e.other:SummonCursorItem(22612); -- Item: An Enchanted Boot Mold + elseif(e.message:findi("greave")) then + e.self:Say("Here is your Stormhealers Greaves Mold. To create your greaves material you will need to combine 5 Bricks of Crude Iron, 1 Giant Fire Beetle Brain, 1 Shadow Wolf Paw, 1 Bottle and 1 Raw Bamboo in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Greaves of the Stormhealer."); + e.other:SummonCursorItem(22614); -- Item: An Enchanted Greaves Mold + elseif(e.message:findi("gauntlet")) then + e.self:Say("Here is your Stormhealers Gauntlet Mold. To create your gauntlet material you will need to combine 3 Bricks of Crude Iron, 1 Puma Skin, 1 Bear Meat, and 1 Bandit Sash in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Gauntlets of the Stormhealer."); + e.other:SummonCursorItem(22615); -- Item: An Enchanted Gauntlet Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("Here is your Stormhealers Breastplate Mold. To create your breastplate material you will need to combine 5 Bricks of Crude Iron, 1 Young Plains Cat Scalp, 1 Low Quality Bear Skin, 1 Water Flask 1 Lock of Scarecrow Straw and 1 Giant Fire Beetle Carapace in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Breastplate of the Stormhealer. Please come back to see me after you have completed your breastplate. I have a [final favor] to ask of you."); + e.other:SummonCursorItem(22616); -- Item: An Enchanted Breastplate Mold + elseif(e.message:findi("favor")) then + e.self:Say("I thank you for returning to assist me in this very important task. It has come to my attention that the gnolls of Blackburrow are planning an attack on Qeynos sometime in the near future. Although I know that these hairballs posses no actual fighting skills, they can present a problem for the defenders of our city just due to sheer numbers. I need you to infiltrate Blackburrow and retrieve some [important documents] for me."); + elseif(e.message:findi("important document")) then + e.self:Say("There is a believed to be a gnoll tactician somewhere in the gnoll camp of Blackburrow. I need you to bring whatever battle plans he may be in possession of so that I can position my troops accordingly. Return to me with whatever battle plans you can find along with 2 Gnoll Backbones and I will surely reward you for your dedication."); + end + +end + +function event_trade(e) + + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 27416,item2 = 27405,item3 = 27405})) then + e.self:Say("These are exactly what I was looking for " .. e.other:GetCleanName() .. "! I am very proud to have one as noble as yourself amongst our ranks! Please take this mace as a token of my appreciation. I bid you farewell, and safe travels."); + -- Confirmed Live Experience and Faction + e.other:Faction(e.self,280,10,0); -- Faction: Knights of Thunder + e.other:Faction(e.self,221,-10,0); -- Faction: Bloodsabers + e.other:Faction(e.self,341,7,0); -- Faction: Priests of Life + e.other:Faction(e.self,262,7,0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,{itemid = 27489,exp = 500}); + end + item_lib.return_items(e.self, e.other, e.trade) + +end diff --git a/qeynos/Vicus_Nonad.lua b/qeynos/Vicus_Nonad.lua new file mode 100644 index 0000000..17ea436 --- /dev/null +++ b/qeynos/Vicus_Nonad.lua @@ -0,0 +1,48 @@ +function event_spawn(e) + eq.set_timer("cough",350000); +end + +function event_timer(e) + if(e.timer == "cough") then + e.self:Emote("coughs and wheezes."); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". My name is Vicus Nonad. I am the official tax collector for the fine city of Qeynos. I serve the will of Antonius Bayle, our glorious leader. Please excuse my [cough]. "); + elseif(e.message:findi("cough")) then + e.self:Say("Oh, I am sorry, but it seems I have fallen a bit ill. I was caught out in the rain the other day and my chills have gotten the best of me. If only someone would [help] me with today's [collections].. "); + elseif(e.message:findi("help.* collection")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Oh thank you so much .. Here is the official collection box. Please collect from each merchant on the [list]. Then bring me back the combined total of all your collections."); + e.other:SummonCursorItem(17012); -- Item: Tax Collection Box + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("list")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Oh. I am sorry.. I forgot to give it to you. Here you go. Be sure to give that back when your job is finished. "); + e.other:SummonCursorItem(18009); -- Item: List of Debtors + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Very good work. But I need both the full tax collection box and the list of debtors. You did get the [list] from me before you left, right? "; + + if(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13181,item2 = 18009},1,text)) then + e.self:Say(" Great! Thank you so much. Here is a small gratuity for a job well done. Thank you again. Antonius Bayle and the People of Qeynos appreciate all yo have done."); + -- Confirmed Live Factions and Experience + e.other:Faction(e.self,219,10,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,262,10,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,304,-5,0); -- Faction: Ring of Scale + e.other:Faction(e.self,273,-10,0); -- Faction: Kane Bayle + e.other:Faction(e.self,291,10,0); -- Faction: Merchants of Qeynos + e.other:QuestReward(e.self,{silver = math.random(0,5),gold = math.random(0,2),itemid = eq.ChooseRandom(13053,10010,10018,10017,10015),exp = 1000}); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Voleen_Tassen.lua b/qeynos/Voleen_Tassen.lua new file mode 100644 index 0000000..d4053ac --- /dev/null +++ b/qeynos/Voleen_Tassen.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh, it's so nice to see you again " .. e.other:GetCleanName() .. ". Why don't you have a look around and buy something nice for yourself today?"); + elseif(e.message:findi("tax")) then -- triggers without starting quest + e.other:Faction(e.self,291,-1,0); -- Faction: Merchants of Qeynos + e.self:Say("Oh dear. We had forgotten about those pesky taxes. Here you go, " .. e.other:GetCleanName() .. ". Sorry you had to come collect them. We will try to be on time from now on."); + e.other:SummonCursorItem(13179); -- Item: Tassens Tax Payment + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1839}, 0)) then -- Full Muffin Crate + e.self:Say("Oh my! Smell those muffins, fresh from the oven and ready to serve! They look delicious dear. Here is some money for your trouble."); + e.other:Faction(e.self,291,2,0); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,223,-1,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,219,1,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,229,1,0); -- Faction: Coalition of Tradefolk + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,{gold = math.random(5,8), exp = 500}) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1838}, 0)) then -- Bag of Bread Loaves + e.self:Say("Ah finally, fresh bread! All right let me get this on the shelves right away. Here is your payment."); + e.other:Faction(e.self,291,4,0); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,223,-1,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,219,1,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,229,1,0); -- Faction: Coalition of Tradefolk + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,{gold = math.random(5,8), platinum = math.random(1,2), exp = 500}) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Wolten_Grafe.lua b/qeynos/Wolten_Grafe.lua new file mode 100644 index 0000000..b59dd6f --- /dev/null +++ b/qeynos/Wolten_Grafe.lua @@ -0,0 +1,86 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, noble " .. e.other:GetCleanName() .. ". Remember to spread the words of Karana throughout the faraway lands on which you shall tread. We of the Temple of Thunder are looking for new members - good people who [wish to join our cause]. Let the call go out!"); + elseif(e.message:findi("join the cause")) then + e.self:Say("That IS good news! If you walk the righteous path of the Rainkeeper, Karana, then you are truly noble. I have need of someone like that. I must find someone to perform a [dangerous mission] or perhaps you would rather [seek out the Rat King] or [crush the undead]."); + elseif(e.message:findi("crush the undead")) then + if(e.other:GetFactionValue(e.self) >= -500) then -- need exact faction, it's between -375 and Scowls + e.self:Say("Those who passed generations ago have had their bones exhumed and enchanted. Some evil force plagues this land with these evil skeletons. You will fight for us and crush the skeletons. Take this box and fill it with the bones of those creatures. We will not allow them to rise again and you shall earn our respect. Go forth and fight for Karana!"); + e.other:SummonCursorItem(17941); -- Box for bones + else + e.self:Say("You have proven yourself not only an enemy of the Knights of Thunder, but an enemy of Karana himself. Now leave, sewer rat!"); + end + elseif(e.message:findi("dangerous mission")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("You must go into the catacombs and find a man named Drosco Finlayer. Pass him this note. He has been deep undercover in the Shrine of Bertoxxulous and will have directions to that vile place. To do this will surely show your allegiance to this temple."); + e.other:SummonCursorItem(18804); -- Item: A Tattered Note + else + e.self:Say("You have proven yourself not only an enemy of the Knights of Thunder, but an enemy of Karana himself. Now leave, sewer rat!"); + end + elseif(e.message:findi("seek out the Rat King")) then + e.self:Say("Under this city lie the catacombs of Qeynos. Somewhere down there lurks the Rat King. None have truly seen him, but we know of him. It is he who plagues us with the recent infestation of rats. Why? Who knows? We need a brave member to [hunt the Rat King]."); + elseif(e.message:findi("hunt the Rat King")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("You are truly brave, young knight. Go to the catacombs. Find the Rat King. Bring me his head as proof of your noble deed. He must be stopped. Beware of his allies. May Karana watch over you."); + else + e.self:Say("You have proven yourself not only an enemy of the Knights of Thunder, but an enemy of Karana himself. Now leave, sewer rat!"); + end + elseif(e.message:findi("Bertoxxulous")) then + e.self:Say("Bertoxxulous, the Plaguebringer, is the Lord of Disease. It is he who smites Norrath with his diseases and imperfections. Those who follow him are called [Bloodsabers]."); + elseif(e.message:findi("Bloodsabers")) then + e.self:Say("It is rumored that there is a shrine in the great city of Qeynos which pays homage to the Plaguebringer, Bertoxxulous. The members of this vile church of the damned are called the Bloodsabers. They are dreaded shadowknights, necromancers and evil clerics. It is our duty to destroy all who dare to pray to such a deity. Join our fight. Speak more of this matter with Chesgard Sydwend."); + elseif(e.message:findi("karana")) then + e.self:Say("Karana, the Rainkeeper, is the provider of the storms. If it were not for the storms of Karana, life would not flourish. All should pay tribute to the Rainkeeper."); + elseif(e.message:findi("healer")) then + e.self:Say("If you need to be healed, I suggest you speak with the Priests of Life. You can find them in the Temple of Life on the other side of Qeynos. The only service you can pay for here is holy armor. Daedet Losaren charges followers of Karana for that blessing."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 4) then + e.self:Say("Your Excellency, we need to recruit a newcomer to find and infiltrate the Shrine of Bertoxxulous. The Shrine's eyes are watching all our moves."); + eq.signal(1128,1); -- NPC: Runethar_Hamest + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13882})) then -- A box of bones + e.self:Say("You have done well. Let it be known to all that you fight for the Rainkeeper. Go and continue the battle."); + -- Confirmed Live Factions + e.other:Faction(e.self,280,10,0); -- Knights of Thunder + e.other:Faction(e.self,221,-10,0); -- Bloodsabers + e.other:Faction(e.self,341,7,0); -- Preists of Life + e.other:Faction(e.self,262,7,0); -- Guards of Qeynos + e.other:QuestReward(e.self,math.random(10),math.random(5),0,0,eq.ChooseRandom(13006,13007),3050); -- Item: Water Flask, Ration ; exp data confirmed. + elseif(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18805})) then + e.self:Say("This is terrible news. It is good you did not find your grave in the catacombs. You completed your mission regardless of the odds of survival. The temple thanks you. We shall still require your service, Knight of Thunder. Events have transpired which put all agents of righteousness in danger. We cannot explain all as yet. Take this note to Freeport. You will give it to Eestyana Naestra at the Hall of Truth. Beware, now. The Shrine of Bertoxxulous now knows of your allegiance. Give me any other item."); + -- Confirmed Live Factions + e.other:Faction(e.self,280,50,0); -- Knights of Thunder + e.other:Faction(e.self,221,-50,0); -- Bloodsabers + e.other:Faction(e.self,341,37,0); -- Preists of Life + e.other:Faction(e.self,262,37,0); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,math.random(10),0,18822,500); -- Item: A Note ID's as: Note to hall of truth + elseif(e.other:GetFactionValue(e.self) >= -400 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13396})) then -- Rat Kings Head -- confirmed faction with lower than -300, wouldn't give quest but accepted human head + e.self:Say("We have finally destroyed the Rat King. You have performed a great service to Qeynos. Here is a small reward. Please continue with the work of the Rainkeeper."); + -- Confirmed Live Factions + e.other:Faction(e.self,280,50,0); -- Knights of Thunder + e.other:Faction(e.self,221,-50,0); -- Bloodsabers + e.other:Faction(e.self,341,37,0); -- Preists of Life + e.other:Faction(e.self,262,37,0); -- Guards of Qeynos + e.other:QuestReward(e.self,7,5,0,0,eq.ChooseRandom(2112, 2106, 2111, 2104, 2108),500); -- Item(s): Patchwork Boots (2112) + elseif(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13288})) then -- Order of Thunder + e.self:Say("Ahh. Drosco's Order of Thunder. You are truly an honorable knight. Many vile people would pay greatly for this medal. I thank you for its return. I shall honor you by rewarding you with a thunder staff. Meant for young clerics and paladins of this temple. Never let it leave your side."); + -- Confirmed Live Factions + e.other:Faction(e.self,280,50,0); -- Knights of Thunder + e.other:Faction(e.self,221,-50,0); -- Bloodsabers + e.other:Faction(e.self,341,37,0); -- Preists of Life + e.other:Faction(e.self,262,37,0); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,math.random(10),0,6357,2000); -- Thunder Staff. + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:qeynos ID:1043 -- Wolten_Grafe + diff --git a/qeynos/Wrin_Liltin.lua b/qeynos/Wrin_Liltin.lua new file mode 100644 index 0000000..beec0f5 --- /dev/null +++ b/qeynos/Wrin_Liltin.lua @@ -0,0 +1,22 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks up a discarded item from the ground and says, 'Don't people have enough respect for our grand city to not throw things onto the streets?!"); + end + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("How are you doing this fine day? I am sure you are an adventurer and I know adventurers are weighed down by excessive platinum coins. Why not purchase something?"); + end +end + +function event_trade(e) + local item_lib =require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Wylin_Dodmil.lua b/qeynos/Wylin_Dodmil.lua new file mode 100644 index 0000000..24a0303 --- /dev/null +++ b/qeynos/Wylin_Dodmil.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Excuse me, but you should not be down in the pens. There are very dangerous creatures kept here. For the gladiator games, you know."); + end +end + +function event_trade(e) + local item_lib =require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Xantomo_Salmor.lua b/qeynos/Xantomo_Salmor.lua new file mode 100644 index 0000000..941338f --- /dev/null +++ b/qeynos/Xantomo_Salmor.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail and well met " .. e.other:GetCleanName() .. ". Are you inquiring as to the legendary happenings I might have heard of in passing? I will tell you the tale if you are [interested] in hearing it."); + elseif(e.message:findi("interested")) then + e.self:Say("So be it. Sit back and enjoy the tale of twelve adventurous folk who traveled far to meet their fellows. The fellows that will soon be mentioned had faith in themselves individually, but soon learned that their faith in the sum of their individual parts would be key to their victory. Shall I [go on]?"); + elseif(e.message:findi("go on")) then + e.self:Say("You had me worried there with that blank stare on your face. Well, to make a long story short, the group of twelve heard there was adventure to be had. They packed and left their respective cities and set out to find their companions. One by one, they joined together until all were united once again. Many tales were told and memories revisited. Time was short though, and adventure soon found them. A grizzled and ancient being appeared before them. Do you know [what it said]?"); + elseif(e.message:findi("say")) then + e.self:Say("The being presented the fellowship with a challenge. Many beings had received this challenge as well, and all set off to complete the challenge. Their knowledge of Norrath was put to the test against the many others of differing faiths. Soon, the fellowship realized the completion of their challenge. They had triumphed against the odds yet again, succeeding where many others had failed. Their reward was very simple. The ancient being pulled from thin air, a silver, glowing scroll. This scroll was entrusted to few, but I myself have a copy. Do you care to hear me read it aloud?"); + end +end diff --git a/qeynos/Yakem_Oreslinger.lua b/qeynos/Yakem_Oreslinger.lua new file mode 100644 index 0000000..6e979f6 --- /dev/null +++ b/qeynos/Yakem_Oreslinger.lua @@ -0,0 +1,27 @@ +--Quest: Restock High Quality Ore (South Qeynos) + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings friend " .. e.other:GetCleanName() .. "! I am a provider of the highest quality steel ore known to Norrath! This ore is in such demand that I often run low and find it difficult to restock my supplies. If you're [looking for a job] I will gladly pay you for some of your time."); + elseif(e.message:findi("looking")) then + e.self:Say("I need you to take this crate and fill it with either Small Bracks of Unrefined Ore or Large Bricks of Unrefined Ore then return it to me so that I may refine it and sell it. The unrefined ore that I require is often mined by the goblins in the ruins of Permafrost Keep."); + e.other:SummonCursorItem(17814); --Empty Ore Crate + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10952})) then --Small Shipment of High Quality Ore + e.other:Faction(e.self,121,4); -- Qeynos Citizen + e.self:Say("Thank you! I will prepare the ore for sale and be open for business again momentarily. Here is your payment for your services."); + e.other:QuestReward(e.self,0,0,0,14,0,5000); + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10953})) then --Large Shipment of High Quality Ore + e.self:Say("Thank you! I will prepare the ore for sale and be open for business again momentarily. Here is your payment for your services."); + e.other:Faction(e.self,121,4); -- Qeynos Citizen + e.other:QuestReward(e.self,0,0,0,44,0,3500); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/Zamel.lua b/qeynos/Zamel.lua new file mode 100644 index 0000000..744e6a5 --- /dev/null +++ b/qeynos/Zamel.lua @@ -0,0 +1,40 @@ +function event_spawn(e) + eq.set_timer("help",300000); +end + +function event_timer(e) + local endicRandom = 0; + if(e.timer == "help") then + endicRandom = math.random(100); + if(endicRandom < 16) then + e.self:Say("Clean the [aqueducts] they tell me. Peh, they don't pay me enough to climb into that filth!"); + end + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, good " .. e.other:GetCleanName() .. ". My name is Zamel and I have the much coveted duty of pulling sludge up out of the pools and [aqueducts] of Qeynos.."); + elseif(e.message:findi("aqueducts")) then + e.self:Say("Aye, the aqueducts are a horrible place. I have heard rumors of horrible [beasts] who live under the city in the water and just the other day, a child playing in the water just up and disappeared!"); + elseif(e.message:findi("beasts")) then + e.self:Say("I know nothing of what or where they may be, just rumors, friend. However, should you foolishly choose to enter the waters to brave the possibilities and return with some evidence of the [child's] fate, I would be most appreciative."); + elseif(e.message:findi("child")) then + e.self:Say("The daughter of one of our own guardsmen is missing. He has offered me a reward for any information about her disappearance. So, if you find out anything, let me know and I will cut you in on the reward."); + end +end + +function event_trade(e) + local item_lib =require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13713})) then + e.self:Say("Yes, I do believe this was the child's dress. Here, take this as your share of the reward. Her father will be heartbroken.."); + -- Confirmed Live Factions + e.other:Faction(e.self,262,2,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,219,1,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,230,-1,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,223,-1,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,291,1,0); -- Faction: Merchants of Qeynos + e.other:QuestReward(e.self,0,math.random(10),0,0,eq.ChooseRandom(10018,10018,10320),5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos/a_sewer_rat.lua b/qeynos/a_sewer_rat.lua new file mode 100644 index 0000000..c3d9b1c --- /dev/null +++ b/qeynos/a_sewer_rat.lua @@ -0,0 +1,12 @@ +function event_spawn(e) + e.self:SetRunning(true); + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("squeaks as it wanders."); + end + end +end diff --git a/qeynos/an_investigator.lua b/qeynos/an_investigator.lua new file mode 100644 index 0000000..150f004 --- /dev/null +++ b/qeynos/an_investigator.lua @@ -0,0 +1,75 @@ +function event_say(e) + local qglobals = eq.get_qglobals(e.self); + + if(e.message:findi("hail")) then + e.self:Emote("raises one eyebrow and looks at you with suspicion before returning his watchful eye to the many people going about their business in the city."); + elseif(e.message:findi("first suspect") and qglobals.invest_badge == "first_suspect") then + e.self:Say("The first suspect was last seen near the shop called Fireprides."); + elseif(e.message:findi("follow me")) then + e.self:Say("Right, let's get going."); + eq.follow(e.other:GetID()); + elseif(e.message:findi("confession")) then + e.self:Say("Here you are."); + e.other:SummonCursorItem(2344); -- Item: Confession Document + elseif(e.message:findi("summon a guard") and e.other:HasItem(2394) == true) then + e.self:Say("Guards! Take this man away."); + eq.unique_spawn(1314,66,0,-413,50,-24,0); -- NPC: Guard_Sylus + elseif(e.message:findi("summon a guard") and e.other:HasItem(2369) == true) then + e.self:Say("Guards! Take this man away."); + eq.unique_spawn(1182,64,0,-246,145,3,0); -- NPC: #Guard_Sylus + elseif(e.message:findi("summon a guard") and (e.other:HasItem(2369) == false or e.other:HasItem(2394) == false)) then + e.self:Say("Let us interrogate the suspects before summoning any guards."); + elseif(e.message:findi("second suspect") and qglobals.invest_badge == "second_suspect") then + e.self:Say("The second suspect was sighted below the Grounds of Fate."); + elseif(e.message:findi("third suspect") and qglobals.invest_badge == "third_suspect") then + e.self:Say("The last suspect has been known to hang around that low life known as Raz the Rat."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18289})) then + e.self:Say("Very well, let's get to work. I assume you have read the briefing and committed it to memory. This is how you will be tested. I shall play the part of student and you shall play the master who directs me. I promise I won't make it easy on you either, we want only the best. We'll see how you do and then I'll decide if you are worthy to wear the badge or not."); + eq.follow(e.other:GetID()); + eq.set_timer("depop",1800000); + eq.unique_spawn(1183,0,0,-324,200,6,120); -- NPC: #Riley_Shplots + eq.set_global("invest_badge","first_suspect",3,"F"); + elseif(item_lib.check_turn_in(e.self, e.trade,{item1 = 2369,item2 = 2394,item3 = 2279})) then + eq.stop_follow(); + e.self:Say("You have done our city a great service and helped to bring several criminals to justice this day! Wear this Investigator's Badge with pride! Speak again with Vegalys Keldrane, he may have information about [advancing further] in rank."); + e.other:Faction(e.self,219,5,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,262,5,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,304,-2,0); -- Faction: Ring of Scale + e.other:Faction(e.self,273,-5,0); -- Faction: Kane Bayle + e.other:Faction(e.self,291,5,0); -- Faction: Merchants of Qeynos + e.other:QuestReward(e.self,0,0,0,0,2386,2000); -- Item: Investigators Badge + eq.delete_global("invest_badge"); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade, e.text) +end + +function event_timer(e) + if(e.timer == "depop") then + e.self:Say("Our time has run out. You have failed."); + eq.depop_with_timer(); + eq.delete_global("invest_badge"); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("We have several witnesses that have signed affidavits swearing to the fact that they had witnessed you raising an undead servant in the hills outside the city several nights past. Do you deny this?"); + eq.signal(1201,1,5000); -- NPC: #Willie_Garrote + elseif(e.signal == 2) then + e.self:Say("I find that difficult to believe. We have further statements that say you were seen drawing the life force from a rat before this undead servant of yours tore it apart. The evidence against you is irrefutable. I suggest you cooperate now. It will be better for you in the long run."); + eq.signal(1201,2,5000); -- NPC: #Willie_Garrote + elseif(e.signal == 3) then + e.self:Say("We are deadly serious, sir. We know who you are and where your allegiances lie. We are also aware that you are simply a misguided pawn in this terrible plot. I suggest you take advantage of this offer, sign the confession document and allow yourself to be taken into custody. The court may not be so lenient should it come to a trial."); + eq.signal(1201,3,5000); -- NPC: #Willie_Garrote + end +end + +function event_death_complete(e) + eq.delete_global("invest_badge"); +end diff --git a/qeynos/campday.lua b/qeynos/campday.lua new file mode 100644 index 0000000..8b77bf5 --- /dev/null +++ b/qeynos/campday.lua @@ -0,0 +1,12 @@ +function event_spawn(e) + eq.set_timer("stop",5000); +end + +function event_timer(e) + eq.signal(1095,2); -- NPC: Bassanio_Weekin + eq.signal(1120,2); -- NPC: Gahna_Salbeen + eq.signal(1115,2); -- NPC: Barthal + eq.signal(1078,2); -- NPC: Moran_Smith + eq.signal(1094,2); -- NPC: Solani_Dayadil + eq.stop_timer("stop"); +end \ No newline at end of file diff --git a/qeynos/campnight.lua b/qeynos/campnight.lua new file mode 100644 index 0000000..c32b308 --- /dev/null +++ b/qeynos/campnight.lua @@ -0,0 +1,12 @@ +function event_spawn(e) + eq.set_timer("stop",5000); +end + +function event_timer(e) + eq.signal(1095,1); -- NPC: Bassanio_Weekin + eq.signal(1120,1); -- NPC: Gahna_Salbeen + eq.signal(1115,1); -- NPC: Barthal + eq.signal(1078,1); -- NPC: Moran_Smith + eq.signal(1094,1); -- NPC: Solani_Dayadil + eq.stop_timer("stop"); +end \ No newline at end of file diff --git a/qeynos/encounters/trumpy.lua b/qeynos/encounters/trumpy.lua new file mode 100644 index 0000000..899b1c6 --- /dev/null +++ b/qeynos/encounters/trumpy.lua @@ -0,0 +1,136 @@ +local ThreadManager = require("thread_manager"); +local trumpy = nil; + +-- First conversation with Sunsa the waitress +function SunsaConversation() + trumpy:Say("Time to drain the [dragon].. if ya know what I mean.. Bwah ha ha ha."); + ThreadManager:Wait(0.65); + + local sunsa = eq.get_entity_list():GetMobByNpcTypeID(1074); + if(sunsa.valid) then + sunsa:Say("Trumpy, you are one sick little man!"); + end +end + +-- Second conversation with Bruno the bouncer +function BrunoConversation() + local bruno = eq.get_entity_list():GetMobByNpcTypeID(1075); + if(bruno.null) then + return; + end + + trumpy:Say("Outta my way, ya big lummox!"); + ThreadManager:Wait(0.65); + + bruno = eq.get_entity_list():GetMobByNpcTypeID(1075); + if(bruno.null) then + return; + end + + bruno:Say("Yeah, Yeah. I hope you fall in, you little creep."); +end + +-- Third conversation with Guard Beren and Corshin +function GuardBerenConversationOne() + local beren = eq.get_entity_list():GetMobByNpcTypeID(1090); + if(beren.valid and beren:GetX() == -145 and beren:GetY() == -247) then + trumpy:Say(" Heh heh.. Enjoy that one, boys!"); + ThreadManager:Wait(0.65); + + beren = eq.get_entity_list():GetMobByNpcTypeID(1090); + beren:Say("Curse you, [Trumpy]!!!"); + ThreadManager:Wait(0.65); + + local corshin = eq.get_entity_list():GetMobByNpcTypeID(1091); + if(corshin.valid) then + corshin:Say("Shhhhh. What are you, crazy?! I saw Kane talking to him yesterday. I sure don't want to find you washed up under the docks because of that little gnoll dropping."); + end + end +end + +-- Fourth conversation with Faren on the docks +function FarenConversation() + --Every ThreadManager:Wait is a chance for Faren to disappear. + --As uncommon as that might be in reality we will check for him every step of the way. + local faren = eq.get_entity_list():GetMobByNpcTypeID(1159); + if(faren.null) then + return; + end + + trumpy:Say("Hey, Fishboy! You dropped something! Bwah ha ha ha!"); + ThreadManager:Wait(0.65); + + faren = eq.get_entity_list():GetMobByNpcTypeID(1159); + if(faren.null) then + return; + end + + faren:Say("Huh? What? My [tacklebox]? You know I can't swim, you rotten [dwarf]!"); + ThreadManager:Wait(0.65); + + faren = eq.get_entity_list():GetMobByNpcTypeID(1159); + if(faren.null) then + return; + end + + trumpy:Say("Better start learning, [Skippy]."); + ThreadManager:Wait(10.0); + + faren = eq.get_entity_list():GetMobByNpcTypeID(1159); + if(faren.null) then + return; + end + + faren:Say("My name is not Skippy."); +end + +-- Final return conversation with Guard Beren +function GuardBerenConversationTwo() + trumpy:Say("Heh. What a loser!"); + ThreadManager:Wait(0.65); + local beren = eq.get_entity_list():GetMobByNpcTypeID(1090); + if(beren.valid and beren:GetX() == -145 and beren:GetY() == -247) then + beren:Say("If you ever talk that way about my [brother] again, I will throw your butt into the dungeon. I don't care who you know!"); + ThreadManager:Wait(0.65); + + trumpy:Say("Peh! What have you been eating? Your brother's bait? You are lucky I don't have time to give you the beating you so richly deserve."); + end +end + +function TrumpyWaypoint(e) + trumpy = e.self; + if(e.wp == 2) then + ThreadManager:Create("SunsaConversation", SunsaConversation); + elseif(e.wp == 4) then + ThreadManager:Create("BrunoConversation", BrunoConversation); + elseif(e.wp == 7) then + ThreadManager:Create("GuardBerenConversationOne", GuardBerenConversationOne); + elseif(e.wp == 11) then + e.self:DoAnim(1); + elseif(e.wp == 12) then + ThreadManager:Create("FarenConversation", FarenConversation); + elseif(e.wp == 17) then + ThreadManager:Create("GuardBerenConversationTwo", GuardBerenConversationTwo); + end +end + +function TrumpyHeartbeat(e) + --trumpy isn't guaranteed to still "be there" every time heartbeat happens, so we reacquire each heartbeat + trumpy = e.self; + ThreadManager:GarbageCollect(); + ThreadManager:Resume("SunsaConversation"); + ThreadManager:Resume("BrunoConversation"); + ThreadManager:Resume("GuardBerenConversationOne"); + ThreadManager:Resume("FarenConversation"); + ThreadManager:Resume("GuardBerenConversationTwo"); +end + +function TrumpySpawn(e) + eq.set_timer("trumpy_hb", 100); +end + +function event_encounter_load(e) + eq.register_npc_event("trumpy", Event.waypoint_arrive, 1042, TrumpyWaypoint); + eq.register_npc_event("trumpy", Event.timer, 1042, TrumpyHeartbeat); + eq.register_npc_event("trumpy", Event.spawn, 1042, TrumpySpawn); +end diff --git a/qeynos/player.lua b/qeynos/player.lua new file mode 100644 index 0000000..2482245 --- /dev/null +++ b/qeynos/player.lua @@ -0,0 +1,20 @@ +function event_enter_zone(e) + if(e.self:GetBoatID() == 772 or e.self:GetBoatID() == 773) then + eq.signal(1138,1); -- NPC: Gash_Flockwalker + else + eq.signal(1138,2); -- NPC: Gash_Flockwalker + end +end + +function event_board_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug(" At: " .. hour .. ":" .. minute .. " BoatID: " .. e.boat_id .. " was boarded. Its name is: " .. e.self:GetBoatName() .. ".", 1); +end + +function event_leave_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + eq.debug(" At: " .. hour .. ":00 I left BoatID: " .. e.boat_id .. ".", 1); +end \ No newline at end of file diff --git a/qeynos/script_init.lua b/qeynos/script_init.lua new file mode 100644 index 0000000..b4a76bc --- /dev/null +++ b/qeynos/script_init.lua @@ -0,0 +1,2 @@ +eq.load_encounter("trumpy"); + diff --git a/qeynos2/Aenia_Ghenson.lua b/qeynos2/Aenia_Ghenson.lua new file mode 100644 index 0000000..80a10a5 --- /dev/null +++ b/qeynos2/Aenia_Ghenson.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Why, hello there! I'm Aenia, daughter of Dranom. It's such a bore just sitting around here all day and night. My father is soooooo overprotective! He never lets me go out and have any fun at all. And he's so mean to my poor [boyfriend]!"); + elseif(e.message:findi("boyfriend")) then + e.self:Say("My boyfriend's name is Behroe Dlexon. He is so dreamy.. .. But, I haven't been able to see him lately. He works nights down at the docks, and with my father here all day, we just can't seem to get together. Oh, how I wish I could speak with him.."); + elseif(e.message:findi("oh glistening crimson rose, you would be such a catch. oh beautiful thornless rose, your essence has no match")) then + if(e.other:GetFaction(e.self) > 5) then -- must be at least indifferent + e.self:Say("Heh.. With all you've done, I'm surprised you're still alive."); + else + e.self:Say("Oh.. My Behroe is so sweet. Oh, how I long to see him. Please, oh please, kind " .. e.other:GetCleanName() .. ", can you do me but one favor? Here, quickly, before my father returns. Take this letter to my love, Behroe. I have no money to offer you, but as you are a friend of his, so are you a friend of mine, and I will not forget your good deeds, " .. e.other:GetCleanName() .. ". Thank you and be safe."); + e.other:SummonCursorItem(18027); -- Item: Letter to Behroe + end + end +end diff --git a/qeynos2/Astaed_Wemor.lua b/qeynos2/Astaed_Wemor.lua new file mode 100644 index 0000000..e2424fa --- /dev/null +++ b/qeynos2/Astaed_Wemor.lua @@ -0,0 +1,71 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("hail")) then + e.self:Say("Greetings. I am Astaed Wemor of the Paladins of the Temple of Life. We are the defenders of the all-giving Prime Healer. Are you [here to pray] or are you [here to assist the temple]?"); + elseif(e.message:findi("here to pray")) then + e.self:Say("Then pray long and silently, " .. e.other:GetCleanName() .. ". Fill your soul with the breath of life."); + elseif(e.message:findi("assist the temple")) then + e.self:Say("Good. There are a few in the congregation who require assistance. Will you be [traveling afar] or are you [staying close to Qeynos]?"); + elseif(e.message:findi("traveling afar")) then + if(e.other:GetFactionValue(e.self) >= 150) then + e.self:Say("Then outfit yourself well. We will require you to visit Rivervale, the village of the halflings. There you shall find an herb merchant named Kizzie Mintopp. She has an ingredient we require. Tell her you are from the Temple of Life"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I do not dislike you, but I cannot fully trust one who has yet to prove his service to the Prime Healer. Perhaps you can assist us in ridding the land of diseased animals. Priestess Caulria will accept all pelts from rabid beasts."); + else + e.self:Say("Foolish person! The word is out amongst the followers of the Prime Healer not to trust you."); + end + elseif(e.message:findi("staying close to qeynos")) then + if(e.other:GetFactionValue(e.self) >= 150) then + e.self:Say("Then you can help with one of our distraught members. The priests have noticed that Nerissa Clothspinner has been a little down lately. Go console her and ask her how she is doing. She is a sweet girl and the temple is worried about her."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I do not dislike you, but I cannot fully trust one who has yet to prove his service to the Prime Healer. Perhaps you can assist us in ridding the land of diseased animals. Priestess Caulria will accept all pelts from rabid beasts."); + else + e.self:Say("Foolish person! The word is out amongst the followers of the Prime Healer not to trust you."); + end + elseif(e.message:findi("Lempeck Hargrin")) then + e.self:Say("Have you run into poor, sick Lempeck? He has been ill for quite some time. I have promised to deliver a secret healing potion which might help. Perhaps you can be of assistance and retrieve the potion for me... That is, if you don't mind [traveling afar]."); + elseif(e.message:findi("bertoxxulous") or e.message:findi("plaguebringer")) then + e.self:Say("The beast of the plague. Bertoxxulous is the foe who spits disease upon the land and mutates the perfection which is life. He shall soon meet his fate at the hands of Rodcet Nife and as for his followers, the Bloodsabers, they shall meet their doom by the hand of the Temple of Life."); + elseif(e.message:findi("rodcet")) then + e.self:Say("The river of life which flows through us all originates from the power of Rodcet Nife, the Prime Healer. He maintains the flow and if any ailment should block its path, the Temple of Life does whatever is necessary to keep the river running. If this calls for the death of another being, then so be it. Let one river die so that all may flow freely."); + elseif(e.message:findi("heal")) then + e.self:Say("I cannot help you with your request. You must speak with Brother Tonmerk Plorsin."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18862})) then + e.self:Say("So you have helped Nerissa. That is good. Here, then, is a small reward. May you find it useful. Keep fighting the good fight!"); + -- confirmed live faction + e.other:Faction(e.self,341,5,0); -- Faction: Priests of Life + e.other:Faction(e.self,280,1,0); -- Faction: Knights of Thunder + e.other:Faction(e.self,262,2,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,221,-1,0); -- Faction: Bloodsabers + e.other:Faction(e.self,219,1,0); -- Faction: Antonius Bayle + e.other:QuestReward(e.self,0,math.random(15),math.random(10),0,eq.ChooseRandom(6022,6023,6024,6025),4000); + elseif(e.other:GetFactionValue(e.self) >= 150 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13952})) then + e.self:Say("I pray to Rodcet Nife that you have made it back in time. Let's add a small amount of this honey jum to this and.. here is the potion. This potion must be taken to a sick member of the congregation. The man is Lempeck Hargrin. He lives in the west plains of Karana between the river and the crop fields. He is in dire need of this potion. He has an odd disease. We have tried everything to cure him and this is his last chance. Run to him."); + -- confirmed live faction + e.other:Faction(e.self,341,20,0); -- Faction: Priests of Life + e.other:Faction(e.self,280,6,0); -- Faction: Knights of Thunder + e.other:Faction(e.self,262,10,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,221,-5,0); -- Faction: Bloodsabers + e.other:Faction(e.self,219,3,0); -- Faction: Antonius Bayle + e.other:QuestReward(e.self,0,math.random(10),0,0,eq.ChooseRandom(13954,13955),1000); -- either good or bad Prime Healer Potion + elseif(e.other:GetFactionValue(e.self) >= 150 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13970})) then + e.self:Say("It is good to know that we saved Lempeck. He has given us his scythe as a donation to the temple. We shall find a use for it. As for your fine work at preserving the life of another, I reward you with the Shining Star of Life. Should you ever desire more strength in battle, call upon it to give you strength, but let it be known that at battle's end, you shall feel weaker than before you called upon the power. Just for a short time. When the power is drained, go to our temple storehouse and ask Whysia to [recharge the Shining Star of Life]. Go and serve life."); + -- confirmed live faction + e.other:Faction(e.self,341,20,0); -- Faction: Priests of Life + e.other:Faction(e.self,280,6,0); -- Faction: Knights of Thunder + e.other:Faction(e.self,262,10,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,221,-5,0); -- Faction: Bloodsabers + e.other:Faction(e.self,219,3,0); -- Faction: Antonius Bayle + e.other:QuestReward(e.self,0,math.random(10),math.random(10),0,6356,1000); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:qeynos2 ID:2094 -- Astaed_Wemor diff --git a/qeynos2/Brohan_Ironforge.lua b/qeynos2/Brohan_Ironforge.lua new file mode 100644 index 0000000..3597975 --- /dev/null +++ b/qeynos2/Brohan_Ironforge.lua @@ -0,0 +1,37 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Please, leave me be alone. I have such [sorrow] in my heart... I wish to be alone with my thoughts."); + elseif(e.message:findi("sorrow")) then + e.self:Say("My [daughter] [Tayla] has left and I fear she will not return. If only I could find someone... Hey, would you like to [do a favor] for an old man or are you [too busy]?"); + elseif(e.message:findi("daughter")) then + e.self:Say("Tayla is my oldest and youngest daughter. Unlike the rest she is of a different mother. She is part elven. She appears to be physicaly younger than the rest, but she has spent more years as my daughter than all the others. Tayla is from my first marriage to [Weleana]."); + elseif(e.message:findi("tayla")) then + e.self:Say("My daughters have informed me that Tayla has runaway to live with the elves of Kelethin. Apparently life among the human citizens of Qeynos was not very kind to her. I wish her well, but I wish I knew she was safe."); + elseif(e.message:findi("hurrieta")) then + e.self:Say("Hurrieta is a good woman. She has a bit repulsed that I once was married to a wood elf. She got over that I believe. We had four children together. The children seem quite accepting of Tayla, even though she is a half elf."); + elseif(e.message:findi("favor")) then + e.self:Say("Good. Please find my daughter, Tayla Ironforge. Bring me proof that she is safe. She was last seen near Nektulos. I am a fine blacksmith and I shall give you a worthy gift if you do this for me."); + elseif(e.message:findi("too busy")) then + e.self:Say("I understand. Adventurers have nothing more to worry about than themselves."); + elseif(e.message:findi("weleana")) then + e.self:Say("Weleana was my first wife. She was the most beautiful creature I have ever seen. We had a daughter, Tayla. We were quite happy. Unfortunately, on one of her frequent trips to the Jaggedpine, she was attacked by a bear of enormous strength and even with all her talent as a ranger, she was mauled to death. I thought I would never love again, but I was wrong. I met [Hurrieta]."); + elseif(e.message:findi("ton")) then + e.self:Say("That man Ton Firepride is quite the braggart. He believes he's the finest of all blacksmiths."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18863})) then -- Sealed Letter + e.self:Say("Oh! thank you! Now I know she is safe. My sweet Tayla. Here is your reward, as promised. A hero such as yourself deserves a weapon with which to uphold your noble values."); + -- Confirmed Live Factions + e.other:Faction(e.self,291,50); -- Merchants of Qeynos + e.other:Faction(e.self,223,-10); -- Circle of Unseen Hands + e.other:Faction(e.self,219,7); -- Antonius Bayle + e.other:Faction(e.self,229,5); -- Coalition of Tradefolk + e.other:Faction(e.self,262,10); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(5303,5304,5305,5313,6303,6311,6312,7300,7301,7311,7499),1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos2/Camlend_Serbold.lua b/qeynos2/Camlend_Serbold.lua new file mode 100644 index 0000000..9bd53b4 --- /dev/null +++ b/qeynos2/Camlend_Serbold.lua @@ -0,0 +1,54 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("hail")) then + e.self:Say("I say, good to meet you, " .. e.other:GetCleanName() .. "! I am Camlend Serbold. Some call me Serbold the Great. I am the leader of the righteous order of paladins which serves the Temple of Life. Together with the clerics of this temple, we defend the will of the great [Rodcet Nife] and smite all who dare to oppose us."); + elseif(e.message:findi("rodcet")) then + e.self:Say("Do you feel your heart beating within your chest? It is Rodcet Nife, the Prime Healer, whose breath keeps it in perfect rhythm. If you do not pray to His glory then I assure you, someday when your heart begins to slow, you shall be crying out loud to Rodcet Nife."); + elseif(e.message:findi("bloodsaber")) then + e.self:Say("So you have heard the name of the Bloodsabers?! They are the followers of Bertoxxulous. We have heard rumors of their existence within the city. We have yet to find any of his followers inside the walls of Qeynos. As for beyond the walls, there are some..."); + elseif(e.message:findi("bertox")) then + e.self:Say("You'd best whisper that vile name within these walls! The Lord of Disease has no place in our temple. His hand has reached far enough into our lands. We must cut it off!"); + elseif(e.message:findi("lord grimrot")) then + e.self:Say("You have heard of Lord Grimrot? He is a shadowknight working with the Bloodsabers. We have word he is trying to build an army of undead. Only a powerful knight can rid the lands of Grimrot. So, did you come here to [defend life]?"); + elseif(e.message:findi("linarius")) then + e.self:Say("Captain Linarius Graffe is the captain of the tower guards outside Qeynos. He is headquartered in a bridge keep in the Plains of Karana. He often informs the local guild of any activity which may be of concern to us."); + elseif(e.message:findi("defend life")) then + if(e.other:GetFactionValue(e.self) >= 1000) then -- high warmly + e.self:Say("Then go to the Plains of Karana. Somewhere there, Lord Grimrot is hatching his little plan for the Bloodsabers. Bring me his evil scythe and his heart. It is said that upon his death, his soul will be absorbed into this weapon of darkness. Do this and be rewarded."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Temple of Life smiles upon you, friend... but such a delicate matter can only be entrusted to our most loyal members."); + else + e.self:Say("Your mere presence disgusts me. Please remove yourself from my sight. Until you change yourself and your ways, you are unwelcome in the Temple of Life."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local fac = e.other:GetFaction(e.self); + local text = "We must have both Lord Grimrot's scythe, Pestilence, and his misshapen heart."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18711},0)) then -- Tattered Note + e.self:Say("Welcome to the Temple of Life. You have much to learn and we have much work to do. Pain, hurt, disease and death lurk everywhere, our job is seemingly endless, but none is more gratifying. Here is our guild tunic, represent us well. Davloran Girionlis will help you to get started."); + e.other:Faction(e.self,341,100,0); -- Priest of Life + e.other:Faction(e.self,280,30,0); -- Knight of Thunder + e.other:Faction(e.self,262,50,0); -- Guards of Qeynos + e.other:Faction(e.self,221,-25,0); -- Bloodsabers + e.other:Faction(e.self,219,15,0); -- Antonius Bayle + e.other:QuestReward(e.self,0,0,0,0,13506,100); -- Faded Tunic* + -- Require kindly or greater faction + elseif(e.other:GetFactionValue(e.self) >= 1000 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13324,item2 = 13325},1,text)) then -- Pestilence Scythe ID: 13324 # Decaying Heart ID: 13325 -- high warmly + e.self:Say("We thank you for your service. With Lord Grimrot's evil soul trapped in this scythe, all but the truly evil shadowknights would be able to wield it. I would like to present you with this as a token of our appreciation. Your devotion to life is supreme. Go now, and serve life."); + -- confirmed live factions + e.other:Faction(e.self,341,5,0); -- Priest of Life + e.other:Faction(e.self,280,1,0); -- Knight of Thunder + e.other:Faction(e.self,262,2,0); -- Guards of Qeynos + e.other:Faction(e.self,221,-1,0); -- Bloodsabers + e.other:Faction(e.self,219,1,0); -- Antonius Bayle + e.other:QuestReward(e.self,0,0,0,math.random(5),12238,1000); -- Aegis of Life ID: 12238 + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:qeynos2 ID:2092 -- Camlend_Serbold diff --git a/qeynos2/Corporal_Lancot.lua b/qeynos2/Corporal_Lancot.lua new file mode 100644 index 0000000..f9642ef --- /dev/null +++ b/qeynos2/Corporal_Lancot.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "! Welcome to the fine city of Qeynos! If you wish to join our fight against the evil gnolls of Blackburrow, be sure to talk to Captain Tillin in the Hall of Steel."); + end +end diff --git a/qeynos2/Crow.lua b/qeynos2/Crow.lua new file mode 100644 index 0000000..94f642a --- /dev/null +++ b/qeynos2/Crow.lua @@ -0,0 +1,60 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("Welcome to Crow's! If you're thirsty, we have a fine selection of brews and ales."); + else + e.self:Say("Heh... With all you've done, I'm surprised you're still alive."); + end + elseif(e.message:findi("brew")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("It's my own personal recipe, and it's the best ale this side of the Serpent's Spine. Been having trouble keeping up with the demand for it, though. Especially with those little Irontoe drunkards running around."); + else + e.self:Say("Heh... With all you've done, I'm surprised you're still alive."); + end + elseif(e.message:findi("kane")) then + e.self:Say("Yeah, I need someone to run over to Kane's for me. I need to find out how many cases of [Crow's special brew] he needs for next week."); + end +end + +function event_trade(e) + + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 17600})) then + e.self:Say("What are you? The Rat's new bag man? Peh, he is useless. That bum drinks any gold he gets. Here ya go, kid!"); + -- Confirmed Live Factions + e.other:Faction(e.self,223,2,0); -- +Circle of Unseen Hands + e.other:Faction(e.self,291,-1,0); -- -Merchants of Qeynos + e.other:Faction(e.self,230,1,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,262,-1,0); -- -Guards of Qeynos + e.other:Faction(e.self,273,1,0); -- Kane Bayle + e.other:QuestReward(e.self,0,0,math.random(8),0,13901,250); + end + + item_lib.return_items(e.self, e.other, e.trade) + +end + +function event_signal(e) + + if(e.signal == 1) then + e.self:Say("You ok Sabs?"); + eq.signal(2083, 2); -- NPC: Sabnie_Blagard + elseif(e.signal == 2) then + e.self:Say("'Testing one two three four'"); + eq.signal(2083,5); -- NPC: Sabnie_Blagard + elseif(e.signal == 3) then + e.self:Say("Excellent. To think that he thought he could stroll in here from Highpass and take over my action. He will learn the hard way what happens to merchants who think they can operate here without our support and protection."); + + local sabs = eq.get_entity_list():GetMobByNpcTypeID(2083); -- NPC: Sabnie_Blagard + if ( sabs.valid ) then + e.self:FaceTarget(sabs); + end + + elseif(e.signal == 4) then + e.self:Say("Anything you say, my love."); + elseif(e.signal == 5) then + e.self:Say("Bwah! Ha! Ha! I love it when he does that! HA HA HA! You are too much, Flynn!"); + end + +end diff --git a/qeynos2/Davloran_Girionlis.lua b/qeynos2/Davloran_Girionlis.lua new file mode 100644 index 0000000..880d929 --- /dev/null +++ b/qeynos2/Davloran_Girionlis.lua @@ -0,0 +1,54 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day " .. e.other:GetCleanName() .. ". I am Davloran Girionlis Holy Knight in service to the Prime Healer Rodcet Nife. I pride myself on being responsible for ridding my homeland of unimaginable evil during my fighting days. Nowadays I just like to train new Temple of Life paladin [recruits]."); + elseif(e.message:findi("recruit")) then + e.self:Say("We have a number of new recruits entering our guild hall every single day. For this reason I have developed a set of exercises that test the hunting and gathering skils of all young paladins. If you are a [Paladin of Rodcet] I might be able to present these tests to you as well."); + elseif(e.message:findi("paladin of rodcet")) then + e.self:Say("Fantastic " .. e.other:GetCleanName() .. ", let me explain to you how the exercises work. You will combine a number of magical items that you will gather from our city and in the training areas and combine them in a Lightbringers Assembly Kit. Certain items used in certain quantities will combine into a specific armor material. These materials can then be taken with the appropriate mold to a forge and be combined together to create a piece of Lightbringers Armor. I can present you with the material recipes along with the correct armor molds for each armor piece once you are [ready to begin your exercises]."); + elseif(e.message:findi("ready to begin")) then + e.self:Say("Very well " .. e.other:GetCleanName() .. ". Please take this Lightbringers Assembly Kit. When you are ready to gather the items for a specific armor piece you must only tell me what piece you want to craft. I can provide you with the recipes and armor molds for Lightbringers Platemail [Helms], [Bracers], [Armguards], [Boots], [Greaves], [Gauntlets] and [Breastplates]."); + e.other:SummonCursorItem(17266); -- Item: Lightbringers Assembly Kit + elseif(e.message:findi("helm")) then + e.self:Say("To create your helm material you will need to combine 2 Bricks of Crude Iron, 1 Whiskered Bat Backbone, 1 Chunk of Meat and 1 Ale in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Helm of the Lightbringer."); + e.other:SummonCursorItem(22610); -- Item: An Enchanted Helm Mold + elseif(e.message:findi("bracer")) then + e.self:Say("To create your bracer material you will need to combine 1 Bricks of Crude Iron, 1 Skeleton Tibia, 1 Gnoll Pup Scalp and 1 Ale in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Bracer of the Lightbringer."); + e.other:SummonCursorItem(22611); -- Item: An Enchanted Bracer Mold + elseif(e.message:findi("armguard")) then + e.self:Say("To create your armguards material you will need to combine 2 Bricks of Crude Iron, 2 Fire Beetle Carapaces, 1 Gnoll Jawbone and 1 Raw Bamboo in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Armguards of the Lightbringer."); + e.other:SummonCursorItem(22613); -- Item: An Enchanted Armguard Mold + elseif(e.message:findi("boot")) then + e.self:Say("To create your boot material you will need to combine 3 Bricks of Crude Iron, 1 Wisp Essence, 2 Rat Eyes in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Boots of the Lightbringer."); + e.other:SummonCursorItem(22612); -- Item: An Enchanted Boot Mold + elseif(e.message:findi("greave")) then + e.self:Say("To create your greaves material you will need to combine 4 Bricks of Crude Iron, 1 Lion Tail, 1 Ruined Cat Pelt, 1 Bottle and 1 Lightstone in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Greaves of the Lightbringer."); + e.other:SummonCursorItem(22614); -- Item: An Enchanted Greaves Mold + elseif(e.message:findi("gauntlet")) then + e.self:Say("To create your gauntlet material you will need to combine 3 Bricks of Crude Iron, 1 Black Wolf Tooth, 1 Mist Wolf Pelt, and 2 Spider Legs in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Gauntlets of the Lightbringer."); + e.other:SummonCursorItem(22615); -- Item: An Enchanted Gauntlet Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("To create your breastplate material you will need to combine 5 Bricks of Crude Iron, 1 Rat Eyes, 1 Fire Beetle Eye, 1 Golden Bandit Tooth, 1 Medium Quality Bear Skin and 1 Severed Gnoll Foot in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Breastplate of the Lightbringer. Please come back to see me after you have completed your breastplate. I have a [job] that I can only entrust to one of my finest knights in training."); + e.other:SummonCursorItem(22616); -- Item: An Enchanted Breastplate Mold + elseif(e.message:findi("job")) then + e.self:Say("I have been working for quite some time at my blacksmithing skills in my spare time. My initial interest was to make armor for our new recruits. However. after I discovered these armor recipes there has been more of a need for weaponry rather then armor. I have began to construct weapons suitable for all those that pass the training exercises but I have run short on supplies. I need someone to [gather the necessary supplies] for me."); + elseif(e.message:findi("necessary supplies")) then + e.self:Say("That's great news " .. e.other:GetCleanName() .. ", I applaud your willingness to help me gather these items. I would go get them myself but I must always be available here should any of the other newcomers need my help. Please collect 2 Flawless Gnoll Hides and 2 Wisp Essences for me and I will do my best to fashion you a weapon together for your trouble."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 27399,item2 = 27399,item3 = 27417,item4 = 27417})) then + e.self:Say("These are exactly what I needed! Its for sure that I have a lot to learn about Smithing but low and behold I was able to create this fine blade out of my remaining materials. Please carry it with you as a symbol of my gratitude. Rodcet smiles down upon you young " .. e.other:GetCleanName() .. ", you have done well."); + -- Confirmed Live Experience and Faction + e.other:Faction(e.self,280,10); -- Faction: Knights of Thunder + e.other:Faction(e.self,221,-10); -- Faction: Bloodsabers + e.other:Faction(e.self,341,7); -- Faction: Priests of Life + e.other:Faction(e.self,262,7); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,{itemid = 27490,exp = 500}); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:qeynos2 ID:2033 -- Davloran_Girionlis diff --git a/qeynos2/Dranom_Ghenson.lua b/qeynos2/Dranom_Ghenson.lua new file mode 100644 index 0000000..ac49f39 --- /dev/null +++ b/qeynos2/Dranom_Ghenson.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ". My name's Dranom Ghenson. My daughter, Aenia, and I moved out here from Freeport about a year ago. That dump of a city is just horrible! I feel that Qeynos is a much safer place for [Aenia] and myself to set up our shop. I only have a few things to sell right now, but hopefully business will pick up soon."); + elseif(e.message:findi("aenia")) then + e.self:Say("Aenia is my beautiful daughter. Many so-called men have tried to win her hand in marriage, but none of them have been able to live up to my standards. My daughter shall have a nobleman or a wealthy merchant... certainly not some lowly bard, like that Behroe she's been seeing. If I ever catch him, or one of his cronies, around my daughter again, I'll bash their good-for-nothing heads in."); + end +end diff --git a/qeynos2/Dren_Ironforge.lua b/qeynos2/Dren_Ironforge.lua new file mode 100644 index 0000000..06f4880 --- /dev/null +++ b/qeynos2/Dren_Ironforge.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Ironforge's. We are the makers of all things fine. Would you care to view my [wares], or have you come to learn the fine art of crafting [Antonian Weapons]?"); + elseif(e.message:findi("Antonian Weapons")) then + e.self:Say("I teach the process of crafting [Antonian javelins] and [Antonian long swords], weapons of superb craftsmanship used by the greatest knights and the personal guards of Antonius Bayle! You'll find nothing like them in all of Norrath since they can only be forged here in Qeynos at the Royal Qeynos forge."); + elseif(e.message:findi("Antonian javelins")) then + e.self:Say("The Antonian javelin is crafted from a medium quality sheet of metal, a flask of water, and a javelin mold. They are light and precise, perfect for use in battle or in competitions of skill."); + elseif(e.message:findi("Antonian long swords")) then + e.self:Say("Your standard Antonian long sword is crafted from a folded sheet of metal, a long blade mold, a hilt mold, pommel mold, and a flask of water. The finest of the Antonian long swords are crafted from an enchanted folded sheet of metal, long blade mold, hilt mold, pommel mold, royal temper and either a ruby or an emerald forged into the weapon at the time of its creation."); + elseif(e.message:findi("wares")) then + e.self:Say("The various molds that I have for sale are used in the smithing of weapons. Simply use the necessary molds with a sheet of metal, a forge, and a water flask. Weapons with hilts and pommels will also need molds for those pieces and weapons such as pole-arms and axes require an oak shaft."); + elseif(e.message:findi("lanhern")) then + e.self:Say("She is the daughter of that armor maker in south Qeynos. A bit on the homely side, if you ask me."); + end +end diff --git a/qeynos2/Enic_Ruklin.lua b/qeynos2/Enic_Ruklin.lua new file mode 100644 index 0000000..ef8dad6 --- /dev/null +++ b/qeynos2/Enic_Ruklin.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail! These are the sacred grounds of the Temple of Life. Please do not cause any disturbances while on our grounds. I would hate to have to hurt you. In the name of Rodcet Nife, of course. Now excuse me, I have a [problem] to attend to."); + elseif(e.message:findi("problem")) then + e.self:Say("I have been charged with the duty of protecting the [Pool of Jahnda] and its fish. Now it seems as though a beast by the name of [Frostbite] has slurped up another one of the sacred fish, the [Koalindl]. If I do not get the little corpse of this fish back, I could be in trouble. Any respected member of this temple who aids me will be rewarded greatly."); + elseif(e.message:findi("pool of jahnda")) then + e.self:Say("The Pool of Jahnda is not meant for public use. It is a sacred pool created for the [Koalindl]. They say that, every so often, the Prime Healer visits our plane in the guise of a Koalindl. He swims in our pool."); + elseif(e.message:findi("koalindl")) then + e.self:Say("The fish called Koalindl were a gift to Priestess Jahnda from the Prime Healer. They come from the plane of health. To kill one Koalindl is to bring the wrath of Rodcet Nife and the Priests of Life down upon you."); + elseif(e.message:findi("frostbite")) then + e.self:Say("Frostbite is a dog. He belongs to some barbarian who visits the city every so often. I know not where they are from. I cannot see them coming from Halas. Their visits are too frequent."); + elseif(e.message:findi("donation.* temple.* thunder") or e.message:findi("donate.* temple.* thunder")) then + e.self:Say("I would be glad to help you out. The Knights of Thunder are a respected order."); + e.other:SummonCursorItem(13292); -- Item: A Donation + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13383})) then -- requires amiably + e.self:Say("Thank you my friend! Every Koalindl must be accounted for, even the dead. Rodcet Nife shall be pleased and I shall reward you. Nothing much. Just a token of gratitude."); + -- Confirmed Live Factions + e.other:Faction(e.self,341,100); -- Priest of Life + e.other:Faction(e.self,280,30); -- Knight of Thunder + e.other:Faction(e.self,262,50); -- Guards of Qeynos + e.other:Faction(e.self,221,-25); -- Bloodsabers + e.other:Faction(e.self,219,15); -- Antonius Bayle + e.other:QuestReward(e.self,0,0,math.random(20),0,eq.ChooseRandom(13297,13296),1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos2/Faldor_Hendrys.lua b/qeynos2/Faldor_Hendrys.lua new file mode 100644 index 0000000..81c8ccb --- /dev/null +++ b/qeynos2/Faldor_Hendrys.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What do you want?! Can't you see I am busy drinking here? You don't even look like you belong here. You can have my seat when I am good and ready to leave, which won't be for a while yet. If I were you, I would get lost before I got myself hurt."); + elseif(e.message:findi("tunare") or e.message:findi("stormhammer") or e.message:findi("eye")) then + e.self:Say("Listen, buddy! I do NOT know what you are babbling about! If you know what's good for you, then you'd best leave."); + end +end diff --git a/qeynos2/Felodius_Sworddancer.lua b/qeynos2/Felodius_Sworddancer.lua new file mode 100644 index 0000000..cad6389 --- /dev/null +++ b/qeynos2/Felodius_Sworddancer.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". I am Felodius Sworddancer. A travelling historian and storyteller. Would you care to hear a [story]?"); + elseif(e.message:findi("story")) then + e.self:Say("I could treat you to a story about an ogre legend! Or perhaps you would like to hear a story about the [gnome] who cried kobold?"); + elseif(e.message:findi("gnome")) then + e.self:Say("Once upon a time, there was a young gnome boy. His job was to repair the clockworks outside Ak'Anon and tell the guards if there was any trouble from kobolds. Well, one day, the boy decided to play a prank on the guards. He decided it would be fun to watch the guards, in full plate armor, run from the gates of Ak'Anon to the valley that led to the Faydark [forest]."); + elseif(e.message:findi("forest")) then + e.self:Say("The boy cried out as loud as he could, running to the guard. Kobolds! Kobolds! They are dragging off a girl into the forest! The guard sprinted off in the direction of the forest, looking to destroy the kobold menace. The boy jogged after him, laughing the whole time. When the guard arrived there were, of course, no kobolds. He trudged back to Ak'Anon waiting for some [excitement]."); + elseif(e.message:findi("excitement")) then + e.self:Say("The next day, the boy claimed that kobolds were attacking one of the local farms. The guards all ran to save the farm and of course, no kobolds, and no sign of a battle. Angered by another prank the guards cursed the boy and went back to their stations at the [entrance] to Ak'Anon."); + elseif(e.message:findi("entrance")) then + e.self:Say("The following day, the boy was fixing a small clockwork just out of view of the guards. A vicious kobold sprang at him and ripped into him with its big claws. The boy screamed and cried! Kobolds! Kobolds! But the guards did not come, they had grown tired of the boy's pranks the kobolds had a fine meal that night. The end."); + end +end diff --git a/qeynos2/Filian_Weagleross.lua b/qeynos2/Filian_Weagleross.lua new file mode 100644 index 0000000..e7cec03 --- /dev/null +++ b/qeynos2/Filian_Weagleross.lua @@ -0,0 +1,43 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Pleased to meet you " .. e.other:GetCleanName() .. ". I am Filian Weagleross High Priest of the glorious Rodcet Nife! I have recently taken upon some very [important duties] here in our temple so if your business is not urgent please excuse me."); + elseif(e.message:findi("important duties")) then + e.self:Say("My important duties are training the new recruits of our temple. It can be quite perilious for a new adventurer in our world today as I am sure you will soon find out. The Temple of Life is dedicated to ensuring that once our young ones leave our home to venture out into Norrath they are ready for whatever might present itself. If you are a [young cleric of Rodcet] then we can begin your training at once."); + elseif(e.message:findi("young cleric of rodcet")) then + e.self:Say("Your training will be very important to your development as a Cleric of Rodcet Nife so I do hope you will remain focused at all times. Your exercises will take you all over your hunting area and our city to specific [magical items]."); + elseif(e.message:findi("magical item")) then + e.self:Say("The magical items you need to collect will be necessary for creating your magical armor will be placed in this Prime Healers Mail Kit that will create armor materials.When you are ready to collect the items necessary for creating a piece of armor all you must do is tell me what armor piece you [want] to craft. I can present you with the recipes and armor molds for Prime Healer Initiate [Helms]. [Bracers]. [Armguards]. [Boots]. [Greaves]. [Gauntlets] and [Breastplates]."); + e.other:SummonCursorItem(17267); -- Item: Prime Healers Assembly Kit + elseif(e.message:findi("helm")) then + e.self:Say("To create your helm material you will need to combine 2 Bricks of Crude of Iron Ore, 1 Piece of Rat Fur and 1 Chunk of Meat in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Helm of the Prime Healer Initiate."); + e.other:SummonCursorItem(22610); -- Item: An Enchanted Helm Mold + elseif(e.message:findi("bracer")) then + e.self:Say("To create your bracer material you will need to combine 1 Brick of Crude of Iron Ore, 1 Brown Bear Femur and 1 Giant Rat Ear in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Bracer of the Prime Healer Initiate."); + e.other:SummonCursorItem(22611); -- Item: An Enchanted Bracer Mold + elseif(e.message:findi("armguard")) then + e.self:Say("To create your armguards material you will need to combine 2 Bricks of Crude of Iron Ore, 2 King Snake Scales, 1 Rat Whiskers and 1 Large Myotis Bat Ear in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Armguards of the Prime Healer Initiate."); + e.other:SummonCursorItem(22613); -- Item: An Enchanted Armguard Mold + elseif(e.message:findi("boot")) then + e.self:Say("To create your boot material you will need to combine 3 Bricks of Crude of Iron Ore, 1 Severed Gnoll Foot, 2 King Snake Jawbones and 1 Large Myotis Bat Wing in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Boot of the Prime Healer Initiate."); + e.other:SummonCursorItem(22612); -- Item: An Enchanted Boot Mold + elseif(e.message:findi("greave")) then + e.self:Say("To create your greaves material you will need to combine 4 Bricks of Crude of Iron Ore, 1 Bear Meat, 1 Giant Fire Beetle Leg and 1 Young Plains Scalp in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Greaves of the Prime Healer Initiate."); + e.other:SummonCursorItem(22614); -- Item: An Enchanted Greaves Mold + elseif(e.message:findi("gauntlet")) then + e.self:Say("To create your gauntlet material you will need to combine 3 Bricks of Crude of Iron Ore, 1 Spider Legs, 1 Lion Tooth, 1 Wolf Meat and 1 Bandit Sash in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Gauntlets of the Prime Healer Initiate ."); + e.other:SummonCursorItem(22615); -- Item: An Enchanted Gauntlet Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("To create your breastplate material you will need to combine 5 Bricks of Crude of Iron Ore, 1 High Quality Cat Pelt, 1 Golden Bandit Tooth, 1 Shadow Wolf Paw, 1 Matted Lion Pelt and 1 Lock of Scarecrow Straw in your assembly kit. Once you have created the proper material take it to a forge along with this mold to fashion your very own Breastplate of the Prime Healer Initiate. When you have completed your armor I have a [delivery] for you to make."); + e.other:SummonCursorItem(22616); -- Item: An Enchanted Breastplate Mold + elseif(e.message:findi("what delivery")) then + e.self:Say("As we speak I have a recruit much like yourself scouting in Blackburrow to monitor the Gnolls that reside there. They have been stockpiling supplies and many fear it is for an upcoming attack. Please deliver this bag of rations to him and return to me with his report along with 1 Perfect Gnoll Skin and 2 Severed Gnoll Paws and you shall be rewarded for your efforts."); + e.other:SummonCursorItem(27498); -- Item: Bag of Rations + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:qeynos2 ID:2032 -- Filian_Weagleross diff --git a/qeynos2/Fippy_Darkpaw.lua b/qeynos2/Fippy_Darkpaw.lua new file mode 100644 index 0000000..57d9652 --- /dev/null +++ b/qeynos2/Fippy_Darkpaw.lua @@ -0,0 +1,3 @@ +function event_spawn(e) + e.self:SetRunning(true); +end \ No newline at end of file diff --git a/qeynos2/Flynn_Merrington.lua b/qeynos2/Flynn_Merrington.lua new file mode 100644 index 0000000..fd2086a --- /dev/null +++ b/qeynos2/Flynn_Merrington.lua @@ -0,0 +1,39 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Oh look.. another gnoll pup. This bar is too rough for the likes of you. Why don't you try Fish's. We don't need any more regulars here, chump!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("mira sayer's tax")) then + e.self:Say("Ha! Yeah, I took their tax money. What are you going to do about it, little gnoll pup? Tell you want.. I will cut you a deal. You tell me you are a [gnoll loving weakling who isn't fit to comb my feet] and I will give you that merchant's tax money."); + elseif(e.message:findi("gnoll loving weakling who isn't fit to comb my feet")) then + e.other:Faction(e.self,223,-1); -- Faction: Circle of Unseen Hands + e.self:Say("BWAH! HA HA HA! Did you all hear that?! " .. e.other:GetCleanName() .. " is a gnoll loving weakling who isn't fit to comb my feet! BWAH HA HA! MY FEET! HA HA HA! Oh.. too rich.. Heh.. HA HA HA! Oh.. Heh heh heh"); + e.other:SummonCursorItem(13174); -- Item: Sayers Tax Payment + eq.signal(2083,6); -- NPC: Sabnie_Blagard + eq.signal(2063,5); -- NPC: Crow + eq.signal(2040,1); -- NPC: Moodoro_Finharn + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13122})) then + e.self:Say("Well, now... That's cutting out the middle man. Thanks, chum! Now, beat it!"); + -- Confirmed Live Factions + e.other:Faction(e.self,223,-20,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,291,3,0); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,230,-3,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,262,3,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,273,-2,0); -- Faction: Kane Bayle + e.other:QuestReward(e.self,0,0,0,0,13123,20000); -- Item: Label of Erud's Tonic + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + e.self:Say("HA! You Erudites never could handle your liquor. Go feed the fish."); + eq.signal(2040,1); -- NPC: Moodoro_Finharn +end diff --git a/qeynos2/Gerault_Takenmaul.lua b/qeynos2/Gerault_Takenmaul.lua new file mode 100644 index 0000000..877b00c --- /dev/null +++ b/qeynos2/Gerault_Takenmaul.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. Please feel free to browse. We make the finest boots in all of Antonica."); + elseif(e.message:findi("treant wood")) then + e.self:Say("Looking for Treant material? I do not work with such material. Ask Rodgar. I believe he is upstairs."); + elseif(e.message:findi("donate") or e.message:findi("donation")) then + e.self:Say("No. I haven't the coins to spare. Perhaps you should ask Rodgar. He works here."); + end +end diff --git a/qeynos2/Ghil_Starn.lua b/qeynos2/Ghil_Starn.lua new file mode 100644 index 0000000..c0fc6e2 --- /dev/null +++ b/qeynos2/Ghil_Starn.lua @@ -0,0 +1,43 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I'm Ghil... I used to run a small business before I hooked up with [Hanns]. Together, we muscled our competition out of Qeynos. But I'm getting too old for the rough stuff anymore, so I just lay low down here and peddle my goods. Anyway, I gotta get back to work and pack up this shipment for ol' [Denny-boy]."); + elseif(e.message:findi("den")) then + if(e.other:GetFaction(e.self) <= 5) then -- requires indifferent faction + e.self:Say("Den Magason works for ol' [Captain Rohand] down at the Qeynos docks. I need to find someone to take a [package] to him, so it can be shipped to Erudin."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("Hanns")) then + if(e.other:GetFaction(e.self) <= 5) then -- requires indifferent faction + e.self:Say("Hanns is one of the most ruthless cutthroats I've ever met... Glad that I work for him, and not on the other side of his blade."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("captain rohand")) then + e.self:Say("Captain Rohand runs the Mermaid's Lure and trades goods with the sea merchants from Odus."); + elseif(e.message:findi("package")) then + if(e.other:GetFaction(e.self) <= 5) then -- requires indifferent faction + e.self:Say("I need someone to take this package to Den. He'll make sure it goes out on the next ship to Odus. I owe him a small favor, too.. So when you meet up with him, I need you to do whatever you can to help him out. Do a good job."); + e.other:SummonCursorItem(13784); -- Package for Den + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib =require("items"); + if(e.other:GetFaction(e.self) <= 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18796})) then + e.self:Say("Ah, good job, " .. e.other:GetCleanName() .. ". It's good to know that I can trust you to get the job done. Here, take this for your efforts. This is a pair of gloves that we hand out to some of our more trusted members. Keep up the good work."); + -- Confirmed Live Factions + e.other:Faction(e.self,223,100,0); -- Circle of Unseen Hands + e.other:Faction(e.self,291,-15,0); -- Merchants of Qeynos + e.other:Faction(e.self,230,15,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,262,-15,0); -- Guards of Qeynos + e.other:Faction(e.self,273,10,0); -- Kane Bayle + e.other:QuestReward(e.self,0,0,0,0,1049,50000); -- Item: Brown Leather Gloves + end + item_lib.return_items(e.self, e.other, e.trade) +end + + diff --git a/qeynos2/Grarrax_Darkpaw.lua b/qeynos2/Grarrax_Darkpaw.lua new file mode 100644 index 0000000..57d9652 --- /dev/null +++ b/qeynos2/Grarrax_Darkpaw.lua @@ -0,0 +1,3 @@ +function event_spawn(e) + e.self:SetRunning(true); +end \ No newline at end of file diff --git a/qeynos2/Guard_Aerryn.lua b/qeynos2/Guard_Aerryn.lua new file mode 100644 index 0000000..aca4288 --- /dev/null +++ b/qeynos2/Guard_Aerryn.lua @@ -0,0 +1,48 @@ +function event_waypoint_arrive(e) + if(e.wp == 18) then + e.self:Say("Have you noticed anything strange about Commander Bayle lately? I saw him talking to that trouble-making Irontoe the other day and one night late last week, when I was on patrol, I saw him sneaking into Crow's"); + eq.signal(2094,1); -- NPC: Guard_Hezlan + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! I am sorry but I do not have time to chat, as I must get back to my patrol. May the [Prime Healer] walk with you!"); + elseif(e.message:findi("prime healer")) then + e.self:Say("I am a follower of Rodcet Nife, the Prime Healer. He visited Qeynos when it was just a small village and left us the fine temple dedicated to him in what is now North Qeynos. He gives us all the strength we need to combat the [disease of evil that is spreading] across Norrath."); + elseif(e.message:findi("disease of evil that is spreading")) then + e.self:Say("The Priests of Life think that followers of Bertoxxulous, the Plaguebringer, are working here in Qeynos. They have found several bodies washed up under the docks bloated with pus and filth. Each body bore the tattoo of a [bloody saber] on its forehead."); + elseif(e.message:findi("bloody saber")) then + e.self:Say("The tattoo is rumored to be the mark of a group of necromancers, shadowknights and clerics loyal to Bertoxxulous who are called the Bloodsabers. They have been active on the Plains of Karana and some think they have a hidden shrine somewhere within Qeynos itself."); + elseif(e.message:findi("blackburrow") or e.message:findi("gnoll")) then + e.self:Say("I know some of the Priests of Life don't agree with our campaign against the Sabertooths of Blackburrow, but I have to do my sworn duty as a guard of this fine city. I believe those filthy gnolls are infected with all sorts of vile diseases. I hope to Rodcet that I am right."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("south qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end diff --git a/qeynos2/Guard_Buce.lua b/qeynos2/Guard_Buce.lua new file mode 100644 index 0000000..9e47ba0 --- /dev/null +++ b/qeynos2/Guard_Buce.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, citizen! While I have taken an oath to protect you. that does not mean I have to waste my breath talking to you."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("south qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end diff --git a/qeynos2/Guard_Deregan.lua b/qeynos2/Guard_Deregan.lua new file mode 100644 index 0000000..1bb8a65 --- /dev/null +++ b/qeynos2/Guard_Deregan.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". I am Deregan. I used to be an adventurer much like yourself. Of course I was not as frail and childlike as you appear to be."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("south qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end diff --git a/qeynos2/Guard_Drath.lua b/qeynos2/Guard_Drath.lua new file mode 100644 index 0000000..a92def5 --- /dev/null +++ b/qeynos2/Guard_Drath.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". If you are not busy, we can always use help keeping the beetle population under control in front of the gates. But be careful, we have had sightings of a large queen beetle out there."); + elseif(e.message:findi("queen") or e.message:findi("beetle")) then + e.self:Say("Oh the guards here have nicknamed her Queen Klicnik. She is big but won't bother you unless she sees you attacking her young. Then she spits flaming beetle juice all over and young adventurers die."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("south qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end diff --git a/qeynos2/Guard_Elron.lua b/qeynos2/Guard_Elron.lua new file mode 100644 index 0000000..db039cd --- /dev/null +++ b/qeynos2/Guard_Elron.lua @@ -0,0 +1,51 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. I am sorry but I can't concentrate on my post and talk to you at the same time. Especially when I should be out searching for [Lucie].. Please excuse me."); + elseif(e.message:findi("lucie")) then + e.self:Say("Lucie is my only daughter. Her mother was killed by gnolls a little over a year ago, now Lucie is missing. Ton Firepride said he saw her playing in the south pond. I have told her a million times to stay out of the aqueducts.. She never listens.. Now I spend every free moment searching for my little girl, if only I could find some clue to her fate. Well, I need to get back to work. Fare well, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("south qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13713})) then + e.self:Say("Oh dear.. no.. no.. I warned her about the aqueducts.. I warned her.. I coudn't watch her every minute of the day, could I? Oh Lucie.. Why didn't you listen to me? Here, take this. It belonged to her mother. She always said that in times of need, it gave her courage to go on.. Thank you so much for your efforts."); + -- Confirmed Live Factions + e.other:Faction(e.self,262,5,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,219,1,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,230,-1,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,223,-1,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,291,1,0); -- Faction: Merchants of Qeynos + e.other:QuestReward(e.self,0,math.random(10),0,0,13188,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos2/Guard_Erabb.lua b/qeynos2/Guard_Erabb.lua new file mode 100644 index 0000000..74858a7 --- /dev/null +++ b/qeynos2/Guard_Erabb.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". Shh.. Come here. I am worried. I am new to this job but already I get the feeling something is wrong. I have seen one of the lieutenants talking to a suspected necromancer. It appeared they were old friends. Something dark is growing in Qeynos. Be careful!"); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("south qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end diff --git a/qeynos2/Guard_Furithane.lua b/qeynos2/Guard_Furithane.lua new file mode 100644 index 0000000..e417423 --- /dev/null +++ b/qeynos2/Guard_Furithane.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". You'd better not be in Qeynos to start trouble. Commander Kane has little patience for ruffians. If he were in charge of Qeynos, things would be much better."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the finest soldier I have ever known. He is the commanding officer of the entire Qeynos Militia and the younger brother of our so called ruler, Antonius Bayle."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("south qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end diff --git a/qeynos2/Guard_Gehnus.lua b/qeynos2/Guard_Gehnus.lua new file mode 100644 index 0000000..e18595b --- /dev/null +++ b/qeynos2/Guard_Gehnus.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! Good to see ya! Welcome to Qeynos! My name is Gehnus Torris. If you are looking to do some trading. I would steer clear of that Tubal fellow. He is from Highpass Hold and they are well known for taking advantage of travelers."); + elseif(e.message:findi("saber") or e.message:findi("gnoll") or e.message:findi("blackburrow"))then + e.self:Say("Ah those Sabertooths of Blackburrow... They keep trying to run us out of these hills. You would think that after so many years they would give up. If there is one good thing you can say about those bags of fur it's that they never quit. We never tire of trying to make them, though. If you want to join the fight, talk to Captain Tillin in South Qeynos."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("south qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end diff --git a/qeynos2/Guard_Ginton.lua b/qeynos2/Guard_Ginton.lua new file mode 100644 index 0000000..0df1da0 --- /dev/null +++ b/qeynos2/Guard_Ginton.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". My name is Ginton Firepride. My pop owns a smithy in South Qeynos if you're looking for some new equipment."); + elseif(e.message:findi("gnoll")) then + e.self:Say("Blast those dogs! The Sabertooths is what they call themselves around here. They have a nest, or whatever you call it, up there east of Surefall Glade. We can always use help here, keeping those dirty gnolls away from our fine city. Talk to Captain Tillin in South Qeynos and tell him you want to join the fight."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("south qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 18) then + e.self:Say("Have you noticed anything strange about Commander Bayle lately? I saw him talking to that trouble-making Irontoe the other day and one night late last week, when I was on patrol, I saw him sneaking into Crow's"); + eq.signal(2094,1); -- NPC: Guard_Hezlan + end +end diff --git a/qeynos2/Guard_Hezlan.lua b/qeynos2/Guard_Hezlan.lua new file mode 100644 index 0000000..869cd04 --- /dev/null +++ b/qeynos2/Guard_Hezlan.lua @@ -0,0 +1,38 @@ + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". My name is Hezlan Nur and I am a member of the Qeynos Guard, serving the will of Antonius Bayle. Anything or anyone trying to get into Qeynos has to go through me first. Heh! I sure love it when those dirty Sabertooths try, though! Nothing is as gratifying as the death wail of a gnoll."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("south qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end + +function event_signal(e) + e.self:Say("It isn't safe to be asking that kind of question. I just mind my business and do my job. You would, too, if you knew what was good for you."); +end diff --git a/qeynos2/Guard_Imkar.lua b/qeynos2/Guard_Imkar.lua new file mode 100644 index 0000000..dfd7eec --- /dev/null +++ b/qeynos2/Guard_Imkar.lua @@ -0,0 +1,37 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". My name is Imkar and I am kind of new at this job but I can give you some advice. Be careful here in Qeynos. There are many [dark forces] at work here that are best left undisturbed."); + elseif(e.message:findi("dark force")) then + e.self:Say("I really don't know yet. I just know that chills shoot up and down my spine when I pass certain places on my patrol. My mother was a gypsy and told me I had the 'gift of sense.' I think the chills are part of that gift. Just be careful. Especially near the entrances to the aqueducts below the city."); + elseif(e.message:findi("gnoll")) then + e.self:Say("Blast those dogs! The Sabertooths is what they call themselves around here. They have a nest, or whatever you call it, up there east of Surefall Glade. We can always use help here, keeping those dirty gnolls away from our fine city. Talk to Captain Tillin in South Qeynos and tell him you want to join the fight."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("south qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end diff --git a/qeynos2/Guard_Liben.lua b/qeynos2/Guard_Liben.lua new file mode 100644 index 0000000..41f55a6 --- /dev/null +++ b/qeynos2/Guard_Liben.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ". Guard Liben at your service. You can walk the streets of Qeynos and feel safe knowing that we guards are here to protect you. Just be careful not to fall in with the [wrong crowd]."); + elseif(e.message:findi("wrong crowd")) then + e.self:Say("Oh you know. the Circle. The Circle of Unseen Hands is what they call themselves. They are a bunch of thieves and murderers. Just stay clear of them. if you know what's good for you."); + elseif(e.message:findi("gnoll")) then + e.self:Say("Blast those dogs! The Sabertooths is what they call themselves around here. They have a nest, or whatever you call it, up there east of Surefall Glade. We can always use help here, keeping those dirty gnolls away from our fine city. Talk to Captain Tillin in South Qeynos and tell him you want to join the fight."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Bayle is our leader. In spite of rumors you might hear, he is a great and loyal soldier. He would gladly lay down his life for any one of us and we would do the same for him."); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("south qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end diff --git a/qeynos2/Guard_Obyn.lua b/qeynos2/Guard_Obyn.lua new file mode 100644 index 0000000..6ddcbdd --- /dev/null +++ b/qeynos2/Guard_Obyn.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ". Obyn is my name. Are you from Qeynos? I was born here myself. It's the best city in all of Norrath, if you ask me. Well I'd better get back to guarding."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("south qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end diff --git a/qeynos2/Guard_Rashik.lua b/qeynos2/Guard_Rashik.lua new file mode 100644 index 0000000..273bb31 --- /dev/null +++ b/qeynos2/Guard_Rashik.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. " My name is Rashik Hiccs and I would like to welcome you to Qeynos on behalf of all the guards. If you get into trouble, just find one of us and we will help you out."); + elseif(e.message:findi("gnoll")) then + e.self:Say("Blast those dogs! The Sabertooths is what they call themselves around here. They have a nest, or whatever you call it, up there east of Surefall Glade. We can always use help here, keeping those dirty gnolls away from our fine city. Talk to Captain Tillin in South Qeynos and tell him you want to join the fight."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("south qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end diff --git a/qeynos2/Guard_Shorm.lua b/qeynos2/Guard_Shorm.lua new file mode 100644 index 0000000..b8ca824 --- /dev/null +++ b/qeynos2/Guard_Shorm.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What do you want with bothering Shorm? I have no time for the likes of you, " .. e.other:GetCleanName() .. "! Clear my path or meet my blade!"); + elseif(e.message:findi("gnoll")) then + e.self:Say("Heh? What would someone like you want to know about gnolls for? You just leave them to us and mind your own business!"); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("south qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end diff --git a/qeynos2/Guard_Simkin.lua b/qeynos2/Guard_Simkin.lua new file mode 100644 index 0000000..b89cb4b --- /dev/null +++ b/qeynos2/Guard_Simkin.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Heh? " .. e.other:GetCleanName() .. ", huh? What do you want? Can't you see I am a busy man, guarding and protecting you weaklings.. er.. citizens? You better just move along before something happens to you!"); + elseif(e.message:findi("gnoll")) then + e.self:Say("Blast those dogs! The Sabertooths is what they call themselves around here. They have a nest, or whatever you call it, up there east of Surefall Glade. We can always use help here, keeping those dirty gnolls away from our fine city. Talk to Captain Tillin in South Qeynos and tell him you want to join the fight."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("south qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end diff --git a/qeynos2/Guard_Treitan.lua b/qeynos2/Guard_Treitan.lua new file mode 100644 index 0000000..a0344c3 --- /dev/null +++ b/qeynos2/Guard_Treitan.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail! Please leave here immediately. This no place for the common citizen."); + elseif(e.message:findi("kane"))then + e.self:Say("Commander Kane is a religious man. He is attending services. Now, run along!"); + elseif(e.message:findi("sabertooth") or e.message:findi("blackburrow") or e.message:findi("gnoll")) then + e.self:Say("Blast those dogs! The Sabertooths is what they call themselves around here. They have a nest, or whatever you call it, up there east of Surefall Glade. We can always use help here, keeping those dirty gnolls away from our fine city. Talk to Captain Tillin in South Qeynos and tell him you want to join the fight."); + end +end diff --git a/qeynos2/Guard_Vaskif.lua b/qeynos2/Guard_Vaskif.lua new file mode 100644 index 0000000..9ae12c6 --- /dev/null +++ b/qeynos2/Guard_Vaskif.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good evening to you, " .. e.other:GetCleanName() .. ". Beware. We have had reports of the undead prowling about on the plains just north of there. Evil is growing here in Qeynos. I can sense it."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("south qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end diff --git a/qeynos2/Guard_Wefnin.lua b/qeynos2/Guard_Wefnin.lua new file mode 100644 index 0000000..7525cf5 --- /dev/null +++ b/qeynos2/Guard_Wefnin.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". If you are looking for the way to South Qeynos, the passage through the city wall south of the cobbler's shop leads to the Merchant's Square near the Clock of Ak'Anon."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end diff --git a/qeynos2/Guard_Weleth.lua b/qeynos2/Guard_Weleth.lua new file mode 100644 index 0000000..24e73a8 --- /dev/null +++ b/qeynos2/Guard_Weleth.lua @@ -0,0 +1,78 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". My name is Weleth Nagoh. In addition to my patrol, I am in charge of keeping the guardhouse stocked with supplies. I must get back to my duties. Farewell."); + elseif(e.message:findi("nesiff")) then + e.self:Say("Nesiff Tallaherd owns the wooden weapons shop in Merchant's Square in South Qeynos."); + elseif(e.message:findi("arrows")) then + if(e.other:GetFactionValue(e.self) >= 50) then + e.self:Say("Oh, thank you! Here is the crate. Make sure [Nesiff] sends me back a new invoice. [Lieutenant Dagarok] would have my head if he found out this happened again!"); + e.other:SummonCursorItem(13925); -- Crate of Defective Arrows + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("While I do realize you are a loyal citizen, I cannot help you with that... yet."); + else + e.self:Say("I do not trust or like you, so be on your way, " .. e.other:GetCleanName() .. "."); + end + elseif(e.message:findi("crate")) then + e.self:Say("Oh, we just received a shipment of arrows from [Nesiff] in South Qeynos. The arrows in this box are missing their fletchings and I can't leave my patrol to take them back."); + elseif(e.message:findi("Lieutenant Dagarok")) then + e.self:Say("Lieutenant Dagarok is the officer in charge of all of North Qeynos. He is difficult to get along with and I [do not trust him]."); + elseif(e.message:findi("do not trust him")) then + if(e.other:GetFaction(e.self) > 5) then + e.self:Say("I don't feel comfortable talking to you about that."); + elseif(e.other:GetFaction(e.self) > 3) then + e.self:Say("While I do realize you are a loyal citizen, I cannot help you with that... yet."); + else + e.self:Say("Late one night not long ago, after I was off duty, I witnessed Lieutenant Dagarok and a few others slay someone they claimed was a suspected necromancer. I had met their victim the day before and I know he was an innocent paladin from Freeport. What really shocked me was that Dagarok was bathed in an evil green glow as their victim crumpled to the ground. I don't know who to trust any more!"); + end + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("south qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 50 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18824})) then -- Slip of Parchment + e.self:Say("Thank you so much for the favor. Please be careful here in Qeynos. I have come to suspect that even some of my fellow guards are not to be trusted - Lieutenant Dagarok, for one."); + -- confirmed live factions + e.other:Faction(e.self,262,25,0); -- Guards of Qeynos + e.other:Faction(e.self,219,3,0); -- Antonius Bayle + e.other:Faction(e.self,223,-3,0); -- Circle Of Unseen Hands + e.other:Faction(e.self,230,-6,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,291,2,0); -- Merchants of Qeynos + e.other:QuestReward(e.self,math.random(10),math.random(5),0,0,0,250); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if(e.wp == 8) then + e.self:Say("Argh. Not again. This whole crate needs to be returned!"); + end +end diff --git a/qeynos2/Hanns_Krieghor.lua b/qeynos2/Hanns_Krieghor.lua new file mode 100644 index 0000000..c40ca49 --- /dev/null +++ b/qeynos2/Hanns_Krieghor.lua @@ -0,0 +1,54 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Yes, I just got some new information from Prak this evening. He says they found out the spy is working for some bandit in the Karanas named Rujahn Tahslek. You used to work out there. do you recognize the name?"); + eq.signal(2085,2); -- NPC: Zannsin_Resdinet + elseif(e.signal == 2) then + e.self:Say("Hmmff.. Anyway, send someone to Prak. I want this job done quickly. Let's show these pathetic bandits that they've been nosing around in the wrong places."); + eq.signal(2085,3); -- NPC: Zannsin_Resdinet + elseif(e.signal == 3) then + e.self:Say("Lomarc is already back. He sent word that the guards are on to him, so he's laying low for a bit. He also said the cost for delivery just went up, because he had to pay off the owner of the Mermaid's Lure."); + eq.signal(2033,1); -- NPC: Renux_Herkanor + elseif(e.signal == 4) then + e.self:Say("Finally, the rat comes out of his hole! Send some men, no no, go yourself, and track him down. Then kill him. I don't care who sees you, or who gets in your way. Finish the job. And bring me whatever you find on his carcass. I'm sure he took some valuables from us when he escaped. And don't worry about Malka, she will keep until you finish Stanos, then she is yours. Shame to waste such talent, but you don't steal from the Circle and live."); + eq.signal(2033,2); -- NPC: Renux_Herkanor + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("My name is Hanns.. Do as I say, and we shall get along just fine."); + elseif(e.message:findi("knargon")) then + e.self:Say("That little weasel is scurrying around here somewhere, I suppose."); + elseif(e.message:findi("carson has a mole in the highpass")) then + e.self:Say("Arrgg, that Carson can't control anything. Sometimes he's practically useless. Go tell Zannsin that [I want him to send some of his men to Prak in Highpass], to help Carson get back on track."); + elseif(e.message:findi("stanos")) then + e.self:Say("Stanos Herkanor? That bastard should be long dead by now. if you see him, you hightail it back and let me know at once. Do I make myself clear, " .. e.other:GetCleanName() .. "? Do not speak to him, do not attack him, just return here and inform me. And that is ALL you need to know about Stanos."); + e.self:DoAnim(60); -- glare animation + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18708})) then -- Napkin From Crow's + e.self:Say("Lucky thing you weren't followed. or you'd be breathing through holes in your back right now. Go find Knargon, maybe you can help run the next [shipment]. Remember, we keep our business quiet, so watch yourself, sewer crawler."); + e.other:Faction(e.self,223,100,0); -- Circle of Unseen Hands + e.other:Faction(e.self,291,-15,0); -- Merchants of Qeynos + e.other:Faction(e.self,230,15,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,262,-15,0); -- Guards of Qeynos + e.other:Faction(e.self,273,10,0); -- Kane Bayle + e.other:QuestReward(e.self,0,0,0,0,13501,20); -- Second Hand Tunic* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 28058})) then + e.self:Say("YES! The bastard is dead, finally. I would have loved to do the work myself, but this will suffice. Here, take this, you have proven yourself a true friend of the Circle!"); + -- Confirmed Live Factions + e.other:Faction(e.self,223,200,0); -- Circle of Unseen Hands + e.other:Faction(e.self,291,-30,0); -- Merchants of Qeynos + e.other:Faction(e.self,230,30,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,262,-30,0); -- Guards of Qeynos + e.other:Faction(e.self,273,20,0); -- Kane Bayle + e.other:QuestReward(e.self,0,0,0,0,7501,50000); -- Item: Fanged Skull Stiletto + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- Submitted by Jim Mills diff --git a/qeynos2/Hurrieta_Ironforge.lua b/qeynos2/Hurrieta_Ironforge.lua new file mode 100644 index 0000000..21a9c54 --- /dev/null +++ b/qeynos2/Hurrieta_Ironforge.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What are you doing back here?! I cannot stand it when the [children] allow their friends to run rampant on our estate. Please leave!"); + elseif(e.message:findi("children")) then + e.self:Say("My dear sweet children are working in the storefronts. Well, all of them except for [Tayla]."); + elseif(e.message:findi("tayla")) then + e.self:Say("Tayla! She is no Ironforge."); + elseif(e.message:findi("weleana")) then + e.self:Say("Waleana is a stain on Brohan's life. A horrid elf. She is gone now and Brohan has moved onto better things and more sanity."); + elseif(e.message:findi("brohan")) then + e.self:Say("Oh! You are here to see Brohan. My husband is upstairs. Feel free to pay him a visit, considering you have already set foot on our estate."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 22) then + e.self:Say("My roses are growing quite well."); + end +end diff --git a/qeynos2/Jaylia_the_Faithful.lua b/qeynos2/Jaylia_the_Faithful.lua new file mode 100644 index 0000000..896865f --- /dev/null +++ b/qeynos2/Jaylia_the_Faithful.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Jaylia the Faithful, daughter of Raiston and Launa Lightmist. I was born in Qeynos while it was under the rule of Antonius Bayle III. My parents were both paladins of [Rodcet Nife] and protectors of the city. They saw to it that I learned the ways of the [Holy Knights]."); + elseif(e.message:findi("holy knights")) then + e.self:Say("My parents provided me with a vast amount of knowledge. I was taught the ways of the Holy Knights at the Temple of Thunder and the Temple of Life. After the death of my father, I was sent to [Freeport] to study the holy ways of the Knights of Truth."); + elseif(e.message:findi("freeport")) then + e.self:Say("Freeport is a trade city to the east of Qeynos. A few years after going to Freeport, I received an urgent message from Qeynos. My mother had taken ill and I was needed in Qeynos immediately. When I returned home, it was too late. My mother had passed away due to a plague created by [heretics]."); + elseif(e.message:findi("heretics")) then + e.self:Say("Many years ago, after the Erudite heretics completed the construction of Old Paineel, they began practicing with unique forms of diseases. These dangerous experiments were not confined within the walls of the dark city. They expanded their research to the animals in the plains of Karana. The resident high priests were forced to come up with a cure each time a new plague surfaced. Years later, after I started studying the art of curing, my mother was stricken by one of these deadly creations."); + elseif(e.message:findi("rodcet nife")) then + e.self:Say("Rodcet Nife is The Prime Healer. It was he who sent me to take my place in the [Realm of Heroes]."); + elseif(e.message:findi("realm of heroes")) then + e.self:Say("The Realm of Heroes is a place for those who have proven themselves worthy of being in the presence of the gods beyond Norrath. My [act of faithfulness] destined me to walk amongst the other Heroes in the Realm. Many of us have journeyed back to Norrath to seek out heroes who are deemed worthy of the same."); + elseif(e.message:findi("plan")) then + e.self:Say("A group of warriors were sent out into the fields to kill each animal that was infected with the disease in an effort to keep it from spreading any further. The few remaining [healthy priests] were sent out to maintain the warriors' health. The priests became ill and had to return. The warriors became infected themselves and struggled to perform their duties."); + elseif(e.message:findi("healthy priests")) then + e.self:Say("With the exception of the High Priests who were too old to make such a journey. I was one of the only healthy priests who remained. I traveled out into the fields where the warriors were and cured them as fast as I could. As I worked my way across the plains, I began to feel a bit dizzy and realized that I had been stricken with the plague, yet I [refused] to waste my energy on myself."); + elseif(e.message:findi("refused")) then + e.self:Say("At that moment, I reached my hands up into the air and shouted, 'Rodcet Nife. Prime Healer of all! Give me the strength to go on. Too many have suffered. These brave warriors have fallen. My mother has joined you. Please, allow me to go on so that I may assist the [remaining brave souls] before I, too, join you!'"); + elseif(e.message:findi("remaining brave soul")) then + e.self:Say("I continued on toward the remaining warriors. Again, I cured them as quickly as I could. The tide of the battle slowly turned and the warriors began to defeat the remaining infected animals. There were bodies of fallen heroes and slain infected creatures as far as the eye could see. I knew then that my [end] was near."); + elseif(e.message:findi("end")) then + e.self:Say("I stood silently with my arms to my sides and looked out across the plains. I raised my hands into the air once more and simply said. 'I am ready now.' I then fell to the ground and was raised to the Realm of Heroes, newly christened 'Jaylia the Faithful.'"); + end +end diff --git a/qeynos2/Jracol_Brestiage.lua b/qeynos2/Jracol_Brestiage.lua new file mode 100644 index 0000000..ebcb5d4 --- /dev/null +++ b/qeynos2/Jracol_Brestiage.lua @@ -0,0 +1,51 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Say("Look what I found! I hear there's a good market for these back in Highpass.. lucky me!"); + end + end +end + + +local proof = 0; + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("You'd better run along, if ya know what's best for ya!"); + else + e.self:Say("Carson hates you, and I hate you... I'd kill you where you stand, but I just polished my dagger last night."); + end + elseif(e.message:findi("lovely night for a stroll")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Yes, it is a lovely night for a walk, especially with a good friend. Tell me, are you a [friend]?"); + else + e.self:Say("Carson hates you, and I hate you... I'd kill you where you stand, but I just polished my dagger last night."); + end + elseif(e.message:findi("friend")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("My memory is a bit fuzzy. If you are a friend, prove it to me."); + else + e.self:Say("Carson hates you, and I hate you... I'd kill you where you stand, but I just polished my dagger last night."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13903})) then -- Bent Card -- no faction requirement + e.self:Say("'Ah, good, it seems we have much in common after all. Take this back to the Circle, before the city guards come nosing around over here."); + e.other:Faction(e.self,329,5,0); -- Carson McCabe + e.other:Faction(e.self,336,3,0); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,304,-1,0); -- Ring of Scale + e.other:Faction(e.self,332,5,0); -- Highpass Guards + e.other:Faction(e.self,331,5,0); -- Merchants of Highpass + e.other:QuestReward(e.self,0,0,0,0,18722,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos2/Kane_Bayle.lua b/qeynos2/Kane_Bayle.lua new file mode 100644 index 0000000..7260a8d --- /dev/null +++ b/qeynos2/Kane_Bayle.lua @@ -0,0 +1,46 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, citizen! I am afraid you are not allowed in this building. You will have to leave. Good day to you."); + elseif(e.message:findi("donation.* temple.* thunder") or e.message:findi("donate.* temple.* thunder")) then + e.self:Say("Why, of course! I would love to contibute to your esteemed organiztion. I would just hate to see the Knights of Thunder crumble. What would ever happen to Qeynos if their noble order were gone?! Perish the thought!"); + e.other:SummonCursorItem(13293); -- Item: A Donation + elseif(e.message:findi("shrine of bertoxxulous")) then + e.self:Say("All information about that accursed place is confidential. If you find any information pertaining to the Shrine of Bertoxxulous you must bring it to me immediately."); + elseif(e.message:findi("milea")) then + e.self:Say("Milea Clothspinner is an old flame of mine. She would have made a fine wife. Unfortunately for me, she chose to become a fine warrior."); + elseif(e.message:findi("nerissa")) then + e.self:Say("You keep your eyes off that sweet, innocent girl! She is under my care."); + elseif(e.message:findi("bloodsaber")) then + e.self:Say("Bloodsabers!? What nonsense are you spouting? I have never heard of such a thing! Begone!"); + elseif(e.message:findi("the disease is spreading")) then + e.self:Say("Good to see you, my friend. S'ragg said he would be sending his finest. I pray he is right. Do you feel like [going to Highpass] or [going home]?"); + elseif(e.message:findi("going home")) then + e.self:Say("Just as well. Get the shrine to send me someone of strength. No more cowards!"); + elseif(e.message:findi("going to Highpass")) then + e.self:Say("You will be taking this with you. Give this marked bottle to a man called Barn Bloodstone. He is known to hang around a place called the Golden Rooster. He has a package for me. He will then give you instructions to your next destination. Now, be off! Time is of the essence!"); + e.other:SummonCursorItem(13130); -- Item: Blackburrow Stout + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18808})) then + e.self:Say("Good Work, friend. I still need the other parts. You'd best hope no other gets to them first and returns them to me first. If they do you get no payment."); + e.other:Faction(e.self,273,100,0); -- Faction: Kane Bayle + e.other:Faction(e.self,230,50,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,262,-15,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,219,-10,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,221,15,0); -- Faction: Bloodsabers + e.other:QuestReward(e.self,0,3,3,0,0,500); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18809})) then + e.self:Say("Thank you for your help. Soon Antonius' agents will be exterminated like roaches. May the virus of the Plaguebringer run through your veins."); + e.other:Faction(e.self,273,100,0); -- Faction: Kane Bayle + e.other:Faction(e.self,230,50,0); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,262,-15,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,219,-10,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,221,15,0); -- Faction: Bloodsabers + e.other:QuestReward(e.self,0,3,3,0,0,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos2/Knargon_Lanenda.lua b/qeynos2/Knargon_Lanenda.lua new file mode 100644 index 0000000..f03d61a --- /dev/null +++ b/qeynos2/Knargon_Lanenda.lua @@ -0,0 +1,79 @@ +function event_waypoint_arrive(e) + if(e.wp == 2) then + e.self:Say("Hey Pelshia, how's business?"); + eq.signal(2073,1); -- NPC: Pelshia_Thuxpire + elseif(e.wp == 7) then + e.self:Say("And what about you, gorgeous? Looking as delightful as ever, I must say."); + elseif(e.wp == 18) then + e.self:Say("So, yeah, that Pelshia, she's all over me. And Renux, too. She was giving me the look, man. I'm telling ya. Zan, all the ladies want a piece of the Knargman."); + eq.signal(2085,1); -- NPC: Zannsin_Resdinet + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("How about you and I go take a stroll under the docks tonight?"); + eq.signal(2073,2); -- NPC: Pelshia_Thuxpire + end +end + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("Hey.. What's up? My name's Knargon Lanenda. I just came over here from [Freeport] a couple of months ago. I used to run a big business importing goods from [Faydwer]. If you've been to [Freeport]. I'm sure you've heard of me."); + else + e.self:Say("Heh... With all you've done, I'm surprised you're still alive."); + end + elseif(e.message:findi("freeport") or e.message:findi("faydwer") or e.message:findi("highpass")) then + e.self:Say("It's a long way from here. . .which is a good thing for me."); + elseif(e.message:findi("jracol")) then + e.self:Say("I don't know why [Carson] likes that guy ... he's certainly been nothing but trouble for me."); + elseif(e.message:findi("carson")) then + e.self:Say("Carson McCabe? He runs that sham of a fortress called [Highpass Hold]. We've been dealing with him for a few years, now. But, lately he seems to be losing control of his business. [Hanns] will whip him into shape pretty soon though, I bet."); + elseif(e.message:findi("shipment")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("We have a small shipment of goods coming in later tonight. The [courier] will be waiting outside the city gates. Casually tell the courier [Lovely night for a stroll], and give him this old card as proof that you work for us. Make certain that you are not followed, and return the shipment to me."); + e.other:SummonCursorItem(13903); -- Bent Playing Card + else + e.self:Say("Heh... With all you've done, I'm surprised you're still alive."); + end + elseif(e.message:findi("courier")) then + e.self:Say("The courier that usually runs [McCabe]'s shipment, is that good for nothing J'Racol. I don't trust his kind."); + elseif(e.message:findi("Hanns")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("He is genuinely dangerous. If you think otherwise, you won't be thinking for long."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Circle has recognized your deeds and contributions, but I think you need to prove your worth to us a little more."); + else + e.self:Say("Heh... With all you've done, I'm surprised you're still alive."); + end + elseif(e.message:findi("renux") or e.message:findi("pelshia")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Ain't she a little vixen?! She wants me, I can tell."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Circle has recognized your deeds and contributions, but I think you need to prove your worth to us a little more."); + else + e.self:Say("Heh... With all you've done, I'm surprised you're still alive."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18722})) then -- Sealed Note For Knargon + e.self:Say("Hmm. Carson better deal with his little 'problem' soon, it's costing us a lot of money. Hanns is gonna skin us all when he hears this. Go tell Hanns that [Carson has a mole in the Highpass] guards, and see what he wants us to do."); + e.other:Faction(e.self,223,5,0); -- Circle of Unseen Hands + e.other:Faction(e.self,291,-1,0); -- Merchants of Qeynos + e.other:Faction(e.self,230,1,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,262,-1,0); -- Guards of Qeynos + e.other:Faction(e.self,273,1,0); -- Kane Bayle + e.other:QuestReward(e.self,0,0,0,0,0,250); + end + local returned = item_lib.return_items(e.self, e.other, e.trade, false) + if ( returned ) then + e.self:Say("I'm... erm, not quite sure what to do with this, but... thanks, I guess."); + end +end + +--END of FILE Zone:qeynos2 ID:2063 -- Knargon_Lanenda diff --git a/qeynos2/Lashun_Novashine.lua b/qeynos2/Lashun_Novashine.lua new file mode 100644 index 0000000..a120816 --- /dev/null +++ b/qeynos2/Lashun_Novashine.lua @@ -0,0 +1,64 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met, " .. e.other:GetCleanName() .. ". My name is Lashun Novashine and I am a humble priest of [Rodcet Nife], the Prime Healer. I wish to spread His word to every corner of Norrath. My job gets more difficult each day with so many so willing to take lives rather than preserve them."); + elseif(e.message:findi("rodcet nife") or e.message:findi("prime healer")) then + e.self:Say("Rodcet Nife is the Prime Healer. It is He who protects the health and well-being of the people of Norrath. The Temple of Life in North Qeynos is dedicated to His glory. I am but one of His loyal clerics who seek to cure all disease and heal all wounds."); + elseif(e.message:findi("heal") or e.message:findi("cure")) then + e.self:Say("Rodcet wills us to cure and heal all who seek it. But He asks that you pay a price in return. I can cure diseases with a small donation of 2 gold pieces. I can also heal your wounds, but as proof of your desire to rid Norrath of the evil of Bertoxxulous and as an offering to the Prime Healer, you must bring me 2 bone chips from the undead that roam these hills."); + elseif(e.message:findi("bertoxxulous") or e.message:findi("bloodsabers")) then + e.self:Say("Bertoxxulous is the fiend who rules the Plane of Disease. His followers are the Temple of Life's greatest foes. We believe a sect of his disciples known as the Bloodsabers are at this moment planning to make Qeynos a breeding ground for all sorts of terrible plagues."); + elseif(e.message:findi("temple") or e.message:findi("life")) then + e.self:Say("The lost shall find salvation in the Temple of Life! Follow me if you wish. I was just on my way back there."); -- TODO Travel to Ironforge House + eq.move_to(0,0,4,0,false); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 13 or e.wp == 14 or e.wp == 15) then + e.self:Shout("Cease this endless conflict and seek salvation in the Temple of Life! The glory of Rodcet Nife awaits you!"); + elseif(e.wp == 57) then + e.self:Say("Greetings, people of Qeynos! Are you lost? Has the chaotic life of an adventurer left you empty and alone? Seek redemption in the glorious light of the Prime Healer. Only through Rodcet Nife and the Temple of Life will you find true health and salvation."); + end +end + +function event_trade(e) + local item_lib = require("items"); + -- experience reward verified through live data + + if(item_lib.check_turn_in(e.self, e.trade, {gold = 2}, 0)) then + e.self:Say("Thank you for the donation to the Temple of Life. May Rodcet Nife cleanse your body of all ills."); + e.self:CastSpell(213,e.other:GetID()); -- Cure Disease + -- Confirmed Live Factions + e.other:Faction(e.self,341,1,0); -- Priests of Life + e.other:Faction(e.self,280,1,0); -- Knights of Thunder + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:Faction(e.self,221,-1,0); -- Bloodsabers + e.other:Faction(e.self,219,1,0); -- Antonius Bayle + e.other:QuestReward(e.self,0,0,0,0,0,1); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13073,item2 = 13073,item3 = 13073,item4 = 13073}, 0)) then -- 4 Bone Chips + local times = 2 + repeat + e.self:Say("Very well, young one. May the light of the Prime Healer wash away your scars."); + e.self:CastSpell(200,e.other:GetID()); -- Minor Healing + -- Confirmed Live Factions + e.other:Faction(e.self,341,1,0); -- Priests of Life + e.other:Faction(e.self,280,1,0); -- Knights of Thunder + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:Faction(e.self,221,-1,0); -- Bloodsabers + e.other:Faction(e.self,219,1,0); -- Antonius Bayle + e.other:QuestReward(e.self,0,0,0,0,0,25); + times = times - 1 + until times <= 0 + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13073,item2 = 13073}, 0)) then + e.self:Say("Very well, young one. May the light of the Prime Healer wash away your scars."); -- 2 Bone Chips + e.self:CastSpell(200,e.other:GetID()); -- Minor Healing + -- Confirmed Live Factions + e.other:Faction(e.self,341,1,0); -- Priests of Life + e.other:Faction(e.self,280,1,0); -- Knights of Thunder + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:Faction(e.self,221,-1,0); -- Bloodsabers + e.other:Faction(e.self,219,1,0); -- Antonius Bayle + e.other:QuestReward(e.self,0,0,0,0,0,25); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos2/Leanon_Ruksey.lua b/qeynos2/Leanon_Ruksey.lua new file mode 100644 index 0000000..2a7bbd1 --- /dev/null +++ b/qeynos2/Leanon_Ruksey.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ah, good day, friend. My name's Leanon Ruksey, loyal member of the League of Antonican Bards. Qeynos Chapter, of course. It's part of my job to keep up with the goings-on of the city, who's coming and going and all that. So we usually keep a man here and one at the docks. Anyway, nice chatting with you. Be careful out there!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18020})) then + e.self:Say("Ah, hello there, " .. e.other:GetCleanName() .. ". It's such a fine day out, wouldn't you say? Ah, reports are due in. Very well, here you go. Say hello to the fellows back at the Wind Spirit's Song for me. May you have many safe travels, my friend."); + e.other:Faction(e.self,284,10,0); -- live confirmed text + faction + e.other:Faction(e.self,281,1,0); -- Faction: Knights of Truth + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,304,-1,0); -- Faction: Ring of Scale + e.other:Faction(e.self,285,-1,0); -- Faction: Mayong Mistmoore + e.other:QuestReward(e.self,0,0,0,0,18024,200); -- Item: Leanons Report + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos2/Lieutenant_Dagarok.lua b/qeynos2/Lieutenant_Dagarok.lua new file mode 100644 index 0000000..7dc5fd6 --- /dev/null +++ b/qeynos2/Lieutenant_Dagarok.lua @@ -0,0 +1,51 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("How dare you disturb me! You people need to just mind your pathetic lives and leave the rest to us. Leave me now!"); + elseif(e.message:findi("weleth"))then + e.self:Say("Guard Weleth? What is there to tell about that coward? He is inept and derelict in his duties. If Commander Kane were in charge, soldiers like him would be chopped up and fed to the beetles."); + elseif(e.message:findi("weapon")) then + e.self:Say("This city has been blessed with the craftsmanship of the Ironforges. Their weapons are supreme. Their shop can be found near the Temple of Life in North Qeynos. You may also try the local warrior guild."); + elseif(e.message:findi("order of the three")) then + e.self:Say("The Order of Three consists of the three positive circles of the arcane known as magic, enchantment and wizardry. This guild keeps very busy in its hall near the arena. All in Qeynos respect their powers."); + elseif(e.message:findi("monk guild")) then + e.self:Say("In North Qeynos sits the house of the Silent Fist Clan. These monks are welcome in Qeynos and often assist in training the Qeynos Guard in hand to hand combat."); + elseif(e.message:findi("bank")) then + e.self:Say("Qeynos Hold in South Qeynos is just across from the arena. You know, over the bridge behind Firepride's."); + elseif(e.message:findi("port") or e.message:findi("dock")) then + e.self:Say("The port of Qeynos is located in South Qeynos. From here one may catch the ship to Erudin."); + elseif(e.message:findi("kane")) then + e.self:Say("Commander Kane Bayle is the commander of all the Qeynos Guard. He is second only to his brother, Antonius Bayle. His post is in the guard house at the city gates. Mind you, do not bother him, he has a bit of a temper."); + elseif(e.message:findi("circle.* unseen hand")) then + e.self:Say("The Circle of the Unseen Hand? I have heard nothing of them. Are they some sort of performing magic troupe?"); + elseif(e.message:findi("paladin guild") or e.message:findi("cleric guild")) then + e.self:Say("Within Qeynos are the Knights of Thunder and the Priests of Life. Both of these orders consist of clerics and paladins and are respected by all. The Hall of Thunder lies in South Qeynos and the Temple of Life is in North Qeynos."); + elseif(e.message:findi("necromancer guild") or e.message:findi("shadowknight guild")) then + e.self:Say("What gibberish are you spouting? There is not, nor will there ever be, such an organization as that within a hundred miles of Qeynos, not with the Qeynos Guard on patrol. Next you will be inquiring of a rogue guild! Really!"); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("I believe you shall find the Protectors of the Pine and Jaggedpine Treefolk in the hollow of Surefall Glade."); + elseif(e.message:findi("jaggedpine treefolk")) then + e.self:Say("In Surefall Glade there are druids called the Jaggedpine Treefolk. These men and women often assist our army during times of war."); + elseif(e.message:findi("linarius")) then + e.self:Say("The Qeynos Tower Guards of the hills and plains are commanded by Captain Linarius Graffe. He often has much to report. He is posted in a keep which spans a river. I believe it is in the northern Plains of Karana."); + elseif(e.message:findi("south qeynos")) then + e.self:Say("The passages to North Qeynos can be found near the bard's guild or next to the Clock of Ak'Anon."); + elseif(e.message:findi("inn") or e.message:findi("rest")) then + e.self:Say("If you need a place to rest, I highly recommend the Lion's Mane Inn and Tavern. Poor adventurers all huddle together in one of the backrooms of Fish's."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18824})) then -- Slip of Parchment + e.self:Say("What is this? Hmmm. It seems Weleth has a problem with following orders. I will deal with him. Good work in bringing this to my attention. Our job here would be much more difficult without the help of loyal citizens like yourself. Take this as a token of Commander Kane's appreciation."); + -- confirmed live factions + e.other:Faction(e.self,230, 25,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,262, -3,0); -- Guards of Qeynos + e.other:Faction(e.self,273, 3,0); -- Kane Bayle + e.other:Faction(e.self,223, 2,0); -- Circle Of Unseen Hands + e.other:Faction(e.self,221, 3,0); -- Bloodsabers + e.other:QuestReward(e.self,math.random(16),math.random(8),0,0,0,250); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos2/LuSun.lua b/qeynos2/LuSun.lua new file mode 100644 index 0000000..1d79da4 --- /dev/null +++ b/qeynos2/LuSun.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ah.. Greetings.. I am Lu'Sun, Guild Master of the Silent Fist Clan. Here, our goal is to train our body, mind, and soul to the peak of perfection."); + elseif(e.message:findi("tomer")) then + e.self:Say("Tomer? I think Seta needs someone to go find him.. Go ask her."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18712})) then -- Note with Fist Insignia + e.self:Say("Greetings, and welcome to the Silent Fist Clan. Don our guild tunic, purge your mind and soul, and begin your lifelong devotion to the Clan. Brother Esrinap will introduce you to our lifestyle and begin your training. Be sound, allow your spirit to open up and guide you."); + e.other:Faction(e.self,309,100,0); -- Silent Fist Clan + e.other:Faction(e.self,262,15,0); -- Guards of Qeynos + e.other:Faction(e.self,361,15,0); -- Ashen Order + e.other:QuestReward(e.self,0,0,0,0,13507,20); -- Torn Cloth Tunic* + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:qeynos2 ID:2077 -- LuSun diff --git a/qeynos2/Moodoro_Finharn.lua b/qeynos2/Moodoro_Finharn.lua new file mode 100644 index 0000000..ac19d0f --- /dev/null +++ b/qeynos2/Moodoro_Finharn.lua @@ -0,0 +1,63 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then -- requires indifferent + e.self:Say("Greetings, fellow traveler! I gotta tell ya. I love this town. Especially Crow's. Although the crowd seems a bit shadier than other places of the sort."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("testament of vanear")) then + e.self:Say("So you have heard that good old Moodoro has knowledge of the Testament of Vanear. I care little for that book. Of course I have it!! If you want it, I will sell it to you for two gold pieces."); + elseif(e.message:findi("ran")) then + e.self:Say("Ran Flamespinner is a librarian in Highpass Hold."); + elseif(e.message:findi("page 34")) then + e.self:Say("So, you know I have page 34. Pretty smart of me to tear the most important page out before someone else tried, eh? If you really want it, then sit down and deal in. Ante is 4 gold. I will give you one card. If it is a jester, then I will give you the page. Let's do it."); + elseif(e.message:findi("tonic")) then + e.self:Say("I need some of Erud's tonic water. There is a merchant in Erudin who sells it."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 6) then + e.self:Say(".. I don't feel so well."); + eq.signal(2091,1,1); -- NPC: Flynn_Merrington + elseif(e.wp == 14) then + eq.set_anim(2040,1); + e.self:Say("Ooooh.. Bllaughhh.. Ooh.. I need some tonic."); + end +end + +function event_signal(e) + + if(e.signal == 1) then + e.self:Say("HA! HA! HA! Oh... HA! HA! HA! How pitiful! HA! HA!"); + end + +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13118})) then + e.self:Say("Oh thank the maker you have returned. Here is a little something in return"); + -- Confirmed Live Faction + e.other:Faction(e.self,233,20,0); -- Faction: Crimson Hands + e.other:Faction(e.self,266,2,0); -- Faction: High Council of Erudin + e.other:Faction(e.self,265,-3,0); -- Faction: Heretics + e.other:Faction(e.self,267,2,0); -- Faction: High Guard of Erudin + e.other:QuestReward(e.self,math.random(10),0,0,0,0,20000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13994})) then + e.self:Say("Lucky you. We were hoping to really clean you out. Here you go. Take the page. Even together, the book is nothing more than fiction."); + e.other:QuestReward(e.self,0,0,0,0,13836); -- Item: Page 34 of a Book + elseif(item_lib.check_turn_in(e.self, e.trade, {gold = 4})) then + e.self:Say("Well, what do you have?!!"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(13994,13993,13992,13995)); + elseif(item_lib.check_turn_in(e.self, e.trade, {gold = 2})) then + e.self:Say("HA!! I hope you enjoy the book. It is missing pages 30 and 34. It is nothing more than garbage without them. A rogue ripped them from their bindings and sold them to [Ran]."); + e.other:QuestReward(e.self,0,0,0,0,17918); -- Item: Testament of Vanear + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_death_complete(e) + e.self:Emote(string.format("'s corpse says 'I'll get you back %s!'",e.other:GetCleanName())); +end diff --git a/qeynos2/Nax_Ghruna.lua b/qeynos2/Nax_Ghruna.lua new file mode 100644 index 0000000..2532c3c --- /dev/null +++ b/qeynos2/Nax_Ghruna.lua @@ -0,0 +1,12 @@ +function event_say(e) + if(e.message:findi("stanos")) then + e.self:Say("Come over here, bub. Listen to me, and don't say a word. That name is one that can get you killed. Hanns wants Stanos dead, Renux wants to please Hanns, and everyone else wants to keep their spinal column intact, you know? So, " .. e.other:GetCleanName() .. ", now you can speak. Where did you hear that name, or did you actually see Stanos somewhere?"); + elseif(e.message:findi("highpass")) then + e.self:Say("Good, you are smarter than you look, " .. e.other:GetCleanName() .. ". Forget the whole affair. It's old family business anyway, and you should know better than to get mixed up in family spats; they can be deadly."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos2/Nerissa_Clothspinner.lua b/qeynos2/Nerissa_Clothspinner.lua new file mode 100644 index 0000000..a1e083f --- /dev/null +++ b/qeynos2/Nerissa_Clothspinner.lua @@ -0,0 +1,63 @@ +function event_waypoint_arrive(e) + if(e.wp == 17) then + e.self:Say("When will my sister show up? I need her!"); + elseif(e.wp == 27) then + e.self:MerchantOpenShop(); + elseif(e.wp == 28) then + e.self:MerchantCloseShop(); + elseif(e.wp == 43) then + e.self:Say("Bartender! Some water, please."); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day to you! Be careful in the city of Qeynos. [Rumors] of corruption may be true. Believe me. I wish my [sister] were here to help."); + elseif(e.message:findi("sister")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("My sister is in the Karanas. She is a warrior. Her name is Milea. I really need her. Would you please deliver a note to her? You look able-bodied enough for the job."); + else + e.self:Say("I do not trust you. I heard word that you are not a good person. Mend your ways and then I may trust you with such talk."); + end + elseif(e.message:findi("deliver a note")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Here you go then, brave adventurer. Godspeed to you."); + e.other:SummonCursorItem(18801); -- Item: A Tattered Note + else + e.self:Say("I do not trust you. I heard word that you are not a good person. Mend your ways and then I may trust you with such talk."); + end + elseif(e.message:findi("rumors")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I have heard that a few of the Qeynos merchants and guards are not very happy with the current state of the city. Taxes are too high and many of the guards have been sent to the outlands, leaving Qeynos vulnerable to attack. I do not feel the same way, but I fear these few may become many. I [fear for my life]."); + else + e.self:Say("I do not trust you. I heard word that you are not a good person. Mend your ways and then I may trust you with such talk."); + end + elseif(e.message:findi("fear")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("During a late night stroll by the pond in north Qeynos I spied a guard carrying a very large carpet on his shoulders. He approached the pond's edge and unrolled the carpet, the body of another guard rolled out and began to moan. The other guard grabbed for a long spear like weapon from his back. He drove the weapon into the man and pushed him into the pond. I screamed. He turned to me and I ran. I do not think he gave chase, too bad, he would not like to run into my [guardian] at home. I told my guardian and we both went to the pond and saw no body. He believes I was drinking too much wine. I do not drink. Now I fear for my life when I am in the streets of Qeynos."); + else + e.self:Say("I do not trust you. I heard word that you are not a good person. Mend your ways and then I may trust you with such talk."); + end + elseif(e.message:findi("guardian")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("When my big sister left Qeynos for adventure, she left me in the hands of her old time friend Kane Bayle. Yes, the commander of the Qeynos Guards is my guardian. You would think I would be safe. Every time I tell him the rumors I hear he just ignores me. He is too busy I guess."); + else + e.self:Say("I do not trust you. I heard word that you are not a good person. Mend your ways and then I may trust you with such talk."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13302})) then --Monogrammed Cloth + e.self:Say("Thank you my friend. I understand that Astaed Wemor of the Temple of Life has been concerned for my well being. Take him this note. I am sure he will reward you for easing my troubled mind.. If you are a respected member."); + e.other:Faction(e.self,291, 15, 0); -- confirmed live factions + e.other:Faction(e.self,223, -3, 0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,219, 2, 0); -- Faction: Antonius Bayle + e.other:Faction(e.self,229, 1, 0); -- Faction: Coalition of Tradefolk + e.other:Faction(e.self,262, 3, 0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,0,math.random(10),0,0,18862,3000); -- Item: A tattered note + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos2/Nixx_Darkpaw.lua b/qeynos2/Nixx_Darkpaw.lua new file mode 100644 index 0000000..57d9652 --- /dev/null +++ b/qeynos2/Nixx_Darkpaw.lua @@ -0,0 +1,3 @@ +function event_spawn(e) + e.self:SetRunning(true); +end \ No newline at end of file diff --git a/qeynos2/Nomsoe_Jusagta.lua b/qeynos2/Nomsoe_Jusagta.lua new file mode 100644 index 0000000..37ce753 --- /dev/null +++ b/qeynos2/Nomsoe_Jusagta.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings and welcome to the Temple of Life! The healing of the world shall begin within. Let me know if you have seen a [new disciple of life]. I have a task which needs to be attended to."); + elseif(e.message:findi("disciple of life")) then + e.self:Say("It is good to meet a new follower of the Prime Healer. Remember that we must defend all life. Disease and poison are the enemies. Within Qeynos we work hand in hand with other guilds. I seek an acolyte to [deliver a flask]."); + elseif(e.message:findi("deliver a flask")) then -- no faction requirements, tested + e.self:Say("Our allies, the Knights of Thunder, have requested that we aid their followers in the Plains of Karana. We have a few young acolytes working there now. Take this blessed oil to Brother Estle. Follow the path to the plains. He shall be waiting for you by a tree alongside the path."); + e.other:SummonCursorItem(13910); -- Item: Blessed Oil Flask + elseif(e.message:findi("bertoxxulous") or e.message:findi("plaguebringer")) then + e.self:Say("He is the wicked one. The breath of disease which blows across the land. We are sworn to stop any who call him lord."); + elseif(e.message:findi("trintle")) then + e.self:Say("What is all this about Brother Trintle?! I was not the one to recruit him. Speak with Suuspa Clanim."); + elseif(e.message:findi("prime healer")) then + e.self:Say("He is the reason we are standing here talking. He is the lord of all life giving energy. This is His temple and we are His servants."); + elseif(e.message:findi("heal")) then + e.self:Say("I cannot help you with your request. You must speak with Brother Tonmerk Plorsin."); + end +end diff --git a/qeynos2/Pelshia_Thuxpire.lua b/qeynos2/Pelshia_Thuxpire.lua new file mode 100644 index 0000000..fdc317d --- /dev/null +++ b/qeynos2/Pelshia_Thuxpire.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Heya.. If you see anything you like, I'm sure we can make a deal."); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Um, just fine, Knargon. What do you want now, huh?"); + eq.signal(2072,1); -- NPC: Knargon_Lanenda + elseif(e.signal == 2) then + e.self:Say("How about you go, and I'll catch up with you... never?"); + end +end diff --git a/qeynos2/Phin_Esrinap.lua b/qeynos2/Phin_Esrinap.lua new file mode 100644 index 0000000..4cae0de --- /dev/null +++ b/qeynos2/Phin_Esrinap.lua @@ -0,0 +1,98 @@ +function event_spawn(e) + eq.set_timer("konem",4100000); +end + +function event_timer(e) + e.self:Say("I can't believe that lazy [Konem] has been gone for over two days. That's the last time I send that guy out for me."); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, my name is Phin. Practice, practice, practice.. That's my motto. It is my responsibility to train our members, and help them to advance their skills and abilities. I also reward our members with colored [Headbands] for completing certain tasks."); + elseif(e.message:findi("white headband")) then + if(e.other:GetFactionValue(e.self) >= 150) then + e.self:Say("That is our training headband.. Beginning students can earn this by slaying four [gnoll] pups, and bringing their scalps back to me."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I have been watching you, and appreciate the help you've given to the brothers and sisters of the Silent Fist. But, I feel that such a vital matter should be left to one of our more trusted members."); + else + e.self:Say("Your previous actions disgust me. Our guild will have nothing to do with the likes of you. Now, please, leave us be!"); + end + elseif(e.message:findi("yellow headband")) then + if(e.other:GetFactionValue(e.self) >= 175) then + e.self:Say("This is awarded to our students for helping clear out the evil that inhabits the old ruins of the Qeynos Hills. Just bring me back three putrid rib bones as proof of your good deeds and turn in your [training headband], and then I will give you the yellow headband."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I have been watching you, and appreciate the help you've given to the brothers and sisters of the Silent Fist. But, I feel that such a vital matter should be left to one of our more trusted members."); + else + e.self:Say("Your previous actions disgust me. Our guild will have nothing to do with the likes of you. Now, please, leave us be!"); + end + elseif(e.message:findi("orange headband")) then + if(e.other:GetFactionValue(e.self) >= 225) then + e.self:Say("This is a difficult award to obtain. The city of Qeynos is, as you know, under constant attack by the gnolls of Blackburrow. The Silent Fist Clan rewards its members who venture deep into this gnoll stronghold and bring swift justice to these vile creatures. Please return two Blackburrow gnoll pelts - make sure they aren't ruined - and a Blackburrow gnoll skin as proof of your noble actions. Also, turn in your [yellow headband], and then I shall give you the orange one. Good luck."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I have been watching you, and appreciate the help you've given to the brothers and sisters of the Silent Fist. But, I feel that such a vital matter should be left to one of our more trusted members."); + else + e.self:Say("Your previous actions disgust me. Our guild will have nothing to do with the likes of you. Now, please, leave us be!"); + end + elseif(e.message:findi("Headband")) then + e.self:Say("Yes, I give the [White, Yellow, and Orange Headbands] to our newer members, and Togahn gives out [Red, Purple, and Blue Headbands] to our elder members."); + elseif(e.message:findi("Tomer Instogle")) then + e.self:Say("Tomer? I think Seta needs someone to go find him... Go ask her."); + elseif(e.message:findi("Konem")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Ah yes, Konem. I had him run an errand out to Surefall Glade over two days ago, and he still hasn't returned. Knowing Konem, he probably found a nice shady tree to take a nap under. If you happen to pass by him, could you please take him this note? Thanks, " .. e.other:GetCleanName() .. ", and be safe."); + e.other:SummonCursorItem(18921); -- Item: Message to Konem + else + e.self:Say("Your previous actions disgust me. Our guild will have nothing to do with the likes of you. Now, please, leave us be!"); + end + elseif(e.message:findi("gnoll")) then + e.self:Say("Those vile creatures are constantly attacking our city.. and often killing innocent citizens. It is our duty to help defend Qeynos from their vicious raids."); + elseif(e.message:findi("black headband")) then + e.self:Say("The black headband is one of the highest honors of the Silent Fist Clan. Only [Lu'Sun] gives those out."); + elseif(e.message:findi("lusun")) then + e.self:Say("Ahhh, Lu'Sun is a master of many skills. He has traveled all of Norrath, studying various techniques and disciplines. Now, he runs this small guild and passes on his knowledge to those willing to devote their lives to our cause."); + elseif(e.message:findi("red") or e.message:findi("purple") or e.message:findi("blue")) then + e.self:Say("Togahn gives out the red, purple, and blue headbands... go ask him what you need to do to earn one."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "Good.. the more of these vile dogs we slay, the safer the citizens of Qeynos will be."; + local text2 = "Ahh.. Good. I feel that your hard work and training will soon be rewarded.. and the yellow headband shall soon be yours."; + local text3 = "Good work, " .. e.other:GetCleanName() .. ". You are well on your way toward earning the orange headband."; + + -- Note from Konem, Grathins Invoice ID-18922 + if(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18922})) then + e.self:Say("Oh this is not good. Too many innocent traders have been getting robbed lately by those vile bandits out in the Karanas. Something must be done soon. Anyway, thank you for delivering the message... you did very well, young " .. e.other:GetCleanName() .. ". Here's a little something to quench your thirst from all that running around."); + -- Confirmed Live Factions + e.other:Faction(e.self,309,5,0); -- Faction: Silent Fist Clan + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,361,1,0); -- Faction: Ashen Order + e.other:QuestReward(e.self,0,0,0,0,13006,1500); -- Water Flask + -- White Headband ID-10110 requires four Gnoll Pup Scalp ID-13789 + elseif(e.other:GetFactionValue(e.self) >= 150 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13789,item2 = 13789, item3 = 13789,item4 = 13789},1,text1)) then + e.self:Say("Good job, " .. e.other:GetCleanName() .. ", keep up the good work! Here is your white training headband. Wear it with honor, and make Lu'Sun proud."); + e.other:Faction(e.self,309,25,0); -- Faction: Silent Fist Clan + e.other:Faction(e.self,262,3,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,361,1,0); -- Faction: Ashen Order + e.other:QuestReward(e.self,0,0,0,0,10110,100); -- Item: White Headband + -- Yellow Headband ID-10111 requires three Putrid Rib Bone ID-13722 and the White Headband ID-10110 + elseif(e.other:GetFactionValue(e.self) >= 175 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13722,item2 = 13722, item3 = 13722,item4 = 10110},1,text2)) then + e.self:Say("Good work.. and, as promised, here is your reward. It is an honor to present this yellow headband to " .. e.other:GetCleanName() .. ", for recent acts of courage and heroism, on behalf of the Silent Fist Clan."); + e.other:Faction(e.self,309,50,0); -- Faction: Silent Fist Clan + e.other:Faction(e.self,262,7,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,361,2,0); -- Faction: Ashen Order + e.other:QuestReward(e.self,0,0,0,0,10111,200); -- Item: Yellow Headband + -- Orange Headband ID-10112 requires two Blackburrow Gnoll Pelt ID-13027, one Blackburrow Gnoll Skin ID-13028 and the Yellow Headband ID-10111 + elseif(e.other:GetFactionValue(e.self) >= 225 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13027,item2 = 13027, item3 = 13028,item4 = 10111},1,text3)) then + e.self:Say("It is an honor to present the orange headband of the Silent Fist Clan to one of our finest members, " .. e.other:GetCleanName() .. " the mighty!"); + e.other:Faction(e.self,309,50,0); -- Faction: Silent Fist Clan + e.other:Faction(e.self,262,7,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,361,2,0); -- Faction: Ashen Order + e.other:QuestReward(e.self,0,0,0,0,10112,300); -- Item: Orange Headband + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:qeynos2 NPC:Phin_Esrinap + diff --git a/qeynos2/Priestess_Caulria.lua b/qeynos2/Priestess_Caulria.lua new file mode 100644 index 0000000..18c0659 --- /dev/null +++ b/qeynos2/Priestess_Caulria.lua @@ -0,0 +1,59 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("hail")) then + e.self:Say("Welcome to the holy Temple of Life. Your presence shows an interest in our ways. We are the followers of the [Prime Healer] and would gladly open our arms to any who [serve Rodcet Nife]. Do we not all owe our lives to the sustaining force of the Prime Healer?"); + elseif(e.message:findi("serve the prime healer") or e.message:findi("serve rodcet nife")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Then you are commanded by the Prime Healer to go into the surrounding terrirories of Qeynos and destroy any rabid creatures you may encounter. There will not be an outbreak of disease within reach of the Temple of Life, see to it! Bring me pelts of any rabid beast as proof of your good deed."); + else + e.self:Say("Your mere presence disgusts me. Please remove yourself from my sight. Until you change yourself and your ways, you are unwelcome in the Temple of Life."); + end + elseif(e.message:findi("fleshy orb")) then + e.self:Say("I do not know what you are talking about. Let me see it."); + elseif(e.message:findi("prime healer") or e.message:findi("rodcet nife")) then + e.self:Say("The Prime Healer is Rodcet Nife. The one whose power flows through your body. He is the air that you breathe. To serve Him is to serve every living creature. Do you wish to [serve the Prime Healer] or do you [need more time for contemplation]?"); + elseif(e.message:findi("bertoxxulous") or e.message:findi("plaguebringer")) then + e.self:Say("You speak the name of the Lord of Disease. The Plaguebringer. Dinithn'al. [Bertoxxulous], the evil one. It is he who has brought disease unto this world and it is he whom we oppose. We will not allow him or his followers to taint the beauty of life."); + elseif(e.message:findi("heal")) then + e.self:Say("I cannot help you with your request. You must speak with Brother Tonmerk Plorsin."); + elseif(e.message:findi("contemplation")) then + e.self:Say("I understand. Sometimes a person can be filled with the lies of so many other false deities that he cannot see the truth when it lies in front of him."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13949})) then + e.self:Say("I see you have rid our land of a beast tainted with the blood of Bertoxxulous. The Prime Healer shall look favorably upon your soul. Here is our thanks and just in case the beast may have bitten you..."); + e.self:CastSpell(96,e.other:GetID()); -- Spell: Counteract Disease + -- Confirmed Live Factions + e.other:Faction(e.self,341,5,0); -- Priests of Life + e.other:Faction(e.self,280,1,0); -- Knights of Thunder + e.other:Faction(e.self,262,2,0); -- Guards of Qeynos + e.other:Faction(e.self,221,-1,0); -- Bloodsabers + e.other:Faction(e.self,219,1,0); -- Antonius Bayle + e.other:QuestReward(e.self,0,0,0,0,0,15000); + elseif(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13298})) then + e.self:Say("Oh dear. The disease has spread to the realm of the Treefolk. It must have been difficult to kill such a large and rabid beast. Here. Take one of my personal scrolls as thanks for such a brave act of devotion. I pray you can use it. If not, then perhaps one of your fellow adventurers can."); + e.self:CastSpell(96,e.other:GetID()); -- Spell: Counteract Disease + -- Confirmed Live Factions + e.other:Faction(e.self,341,20,0); -- Priests of Life + e.other:Faction(e.self,280,6,0); -- Knights of Thunder + e.other:Faction(e.self,262,10,0); -- Guards of Qeynos + e.other:Faction(e.self,221,-5,0); -- Bloodsabers + e.other:Faction(e.self,219,3,0); -- Antonius Bayle + e.other:QuestReward(e.self,0,0,math.random(10),1,15226,20000); -- Item: Spell: Endure Disease + elseif(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13950})) then + e.self:Say("This is odd. This could explain the increase in the number of beasts within the lands surrounding Qeynos. You must take this to Freeport. Here. You must speak with Lorme Tredore. Show him this pellet. You had best gear up for the trip. Freeport is very far away. Here is some gold. Outfit yourself at our expense."); + -- Confirmed Live Factions + e.other:Faction(e.self,341,10,0); -- Priests of Life + e.other:Faction(e.self,280,3,0); -- Knights of Thunder + e.other:Faction(e.self,262,5,0); -- Guards of Qeynos + e.other:Faction(e.self,221,-2,0); -- Bloodsabers + e.other:Faction(e.self,219,1,0); -- Antonius Bayle + e.other:QuestReward(e.self,0,0,math.random(20),1,13951,20000); -- Item: Fleshy Orb + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos2/Priestess_Jahnda.lua b/qeynos2/Priestess_Jahnda.lua new file mode 100644 index 0000000..745418d --- /dev/null +++ b/qeynos2/Priestess_Jahnda.lua @@ -0,0 +1,57 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Temple of Life, where the will of Rodcet Nife, the Prime Healer, is carried out. I am the High Priestess Jahnda. If you require any training in our ways, please talk to any of our priests or any of the paladins of the Temple of Life."); + elseif(e.message:findi("blessed oil")) then + e.self:Say("I do not distribute the blessed oil of life. Please speak with Nomsoe Jusagta. Tell Nomsoe that Brother Estle needs the blessed oil."); + elseif(e.message:findi("hayle mool")) then + e.self:Say("Brother Hayle Mool is one of our finest clerics. He could convert anyone to the ways of Rodcet Nife. Recently, he has been out in the [Plains of Karana] trying to befriend the [Splitpaw clan]. I pray he has not become their prisoner or even worse, their dinner."); + elseif(e.message:findi("paw")) then + e.self:Say("Paw is a gnoll burrow. It is said to be located somewhere in the Plains of Karana. The gnolls of this burrow is rarely seen. The fur of these gnolls is white, unlike their brothers in Blackburrow."); + elseif(e.message:findi("bertoxxulous") or e.message:findi("plaguebringer")) then + e.self:Say("Bertoxxulous is the evil Lord of Disease. It is he who demeans life with his wicked maladies. It is said there are some who follow this monster. They are called the [Bloodsabers]."); + elseif(e.message:findi("bloodsaber")) then + e.self:Say("So you too have heard the rumors of the Bloodsabers? These are followers of the lord of disease, Bertoxxulous. It is our belief that they have begun to spread disease among the animals of Qeynos Hills. We have yet to confirm their existence. Please speak with Suuspa Clanim and the others."); + elseif(e.message:findi("rodcet")) then + e.self:Say("The Prime Healer, the giver of all life. Rodcet Nife is the power which flows through every living being, be he good or evil. It is in honor of Him that the Temple of Life was constructed. It is for Him that we devote our lives to the extermination of all who would taint the glory of life."); + elseif(e.message:findi("heal")) then + e.self:Say("I cannot help you with your request. You must speak with Brother Tonmerk Plorsin."); + elseif(e.message:findi("honored member")) then + if(e.other:GetFactionValue(e.self) >= 50) then + e.self:Say("Yes. The light of righteousness shines from within you."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Temple of Life smiles upon you, friend... but such a delicate matter can only be entrusted to our most loyal members.") + else + e.self:Say("Your mere presence disgusts me. Please remove yourself from my sight. Until you change yourself and your ways, you are unwelcome in the Temple of Life."); + end + end +end + +function event_trade(e) + local item_lib =require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18714}, 0)) then -- Tattered Note + e.self:Say("Welcome to the Temple of Life. I am Jahnda. the High Priestess of the Clerics of Nife. Wear this tunic with pride and carry out the will of Nife. Please. see Tonmerk Plorsin or Nomsoe Jusagta. They will help get you started spreading the will of The Prime Healer."); + e.other:Faction(e.self,341,100,0); -- Priest of Life + e.other:Faction(e.self,280,30,0); -- Knight of Thunder + e.other:Faction(e.self,262,50,0); -- Guards of Qeynos + e.other:Faction(e.self,221,-25,0); -- Bloodsabers + e.other:Faction(e.self,219,15,0); -- Antonius Bayle + e.other:QuestReward(e.self,0,0,0,0,13506,100); -- Faded Tunic* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13724}, 0)) then + e.self:Say("Excellent! Rodcet smiles upon us this day! Here, please take this pouch of evidence to Jahnda in the Temple of Life. She will know what we must do. I will remain here to keep an eye out for the minions of Bertoxxlous. Also, accept this small reward as a token of my appreciation of your efforts to rid Norrath of the influence of the Plaguebringer."); + -- Confirmed Live Factions + e.other:Faction(e.self,341,50); -- Priest of Life + e.other:Faction(e.self,280,15); -- Knight of Thunder + e.other:Faction(e.self,262,25); -- Guards of Qeynos + e.other:Faction(e.self,221,-12); -- Bloodsabers + e.other:Faction(e.self,219,7); -- Antonius Bayle + if(math.random(100) > 5) then + e.other:QuestReward(e.self,math.random(0,10),math.random(0,10),math.random(0,10),0,eq.ChooseRandom(14007,14003),4000); + else + e.other:QuestReward(e.self,math.random(0,10),math.random(0,10),math.random(0,10),0,eq.ChooseRandom(13723,13720),4000); + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13911}, 0)) then -- PrayerBeads + e.self:Say("Oh my word!! This is terrible news. This belongs to Hayle Mool. He has been captured by the Splitpaw Clan while in Karana. You must go to his aid. We cannot do so at this time. Here. Be sure to hand him this summons. I will need to speak with him."); + e.other:QuestReward(e.self,0,0,0,0,18927); -- Temple Summons + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos2/Quinon_Hulleaf.lua b/qeynos2/Quinon_Hulleaf.lua new file mode 100644 index 0000000..5c2a3d0 --- /dev/null +++ b/qeynos2/Quinon_Hulleaf.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Eh?... ... Ah good evening to you, too, " .. e.other:GetCleanName() .. ". I'd be careful outside the city gates tonight if I were you... I've heard rumors of evil people and undead wandering the hills recently."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + -- live confirmed text + faction + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18020})) then + e.self:Say("Ah, hey, " .. e.other:GetCleanName() .. "... ... Here ya go... ... Please excuse my yawning, but this working nights has really drained the energy out of me. Though, it does... ... get interesting around here sometimes, which helps to keep me awake. Anyway, be safe, " .. e.other:GetCleanName() .. ", and I'll see you later."); + e.other:Faction(e.self,284,10,0); -- Faction: League of Antonican Bards + e.other:Faction(e.self,281,1,0); -- Faction: Knights of Truth + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:Faction(e.self,304,-1,0); -- Faction: Ring of Scale + e.other:Faction(e.self,285,-1,0); -- Faction: Mayong Mistmoore + e.other:QuestReward(e.self,0,0,0,0,18025,200); -- Item: Quinons Report + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos2/Reldin_Harkolis.lua b/qeynos2/Reldin_Harkolis.lua new file mode 100644 index 0000000..fa87896 --- /dev/null +++ b/qeynos2/Reldin_Harkolis.lua @@ -0,0 +1,53 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail " .. e.other:GetCleanName() .. ". Know that only within these few passageways and rooms whose borders are marked by the symbol of the Circle of Unseen Hands can we speak freely of our organization and its undertakings. Neither the streets of the city above nor the sewers and catacombs are free of ears that would harm the Circle of Unseen Hands should they hear of our [secrets]."); + elseif(e.message:findi("secret")) then + e.self:Say("The Circle has many secrets some of which only Hans may know. Our agents are all about, mingling among the common law abiding folk and working in all manner of profession. At one time we had a significant number of the Qeynos Guard allied to our organization but the loyal soldiers of Antonius Bayle IV has discovered and punished many of them. The ones that remain are hesitant at best to continue their association with us. You will need to exercise much caution within this city as you learn the ropes. I will help get you outfitted in some [gear] that you will find useful in our line of work."); + elseif(e.message:findi("gear")) then + e.self:Say("Take this Curing Kit. With it you can assemble an outfit of light, flexible, and sturdy yet inconspicuous leather clothing to protect you from the perils of your job. The materials required will depend on the piece of clothing you desire to craft. Do you plan on crafting Sturdy Workmans [Gloves], Sturdy Workmans [Boots], a Sturdy Workmans [Bracer], a Sturdy Workmans [Cap], Sturdy Workmans [Leggings], Sturdy Workmans [Sleeves], or a Sturdy Workmans [Tunic]? Once you are suitably outfitted return to me and I will inform you of your [next job]."); + e.other:SummonCursorItem(17125); -- Item: Curing Kit + elseif(e.message:findi("boot")) then + e.self:Say("To craft Sturdy Workmans Boots you require two [silk thread], two ruined wolf pelts, two giant field rat whiskers, and a large king snake skin. Once you have the necessary components combine them in your Curing Kit with this Tattered Boot Pattern."); + e.other:SummonCursorItem(19561); -- Item: Tattered Boot Pattern + elseif(e.message:findi("bracer")) then + e.self:Say("To craft an Sturdy Workmans Bracer you require a [silk thread], a ruined wolf pelt, and a giant field rat whiskers. Once you have the necessary components combine them in your Curing Kit with this Tattered Wristband Pattern."); + e.other:SummonCursorItem(19558); -- Item: Tattered Wristband Pattern + elseif(e.message:findi("cap")) then + e.self:Say("To craft a Sturdy Workmans Cap you require two [silk thread], a ruined wolf pelt, a large myotis bat fur, and a large king snake skin. Once you have the necessary components combine them in your Curing Kit with this Tattered Coif Pattern."); + e.other:SummonCursorItem(19555); -- Item: Tattered Cap Pattern + elseif(e.message:findi("glove")) then + e.self:Say("To craft Sturdy Workmans Gloves you require two [silk thread], a ruined wolf pelt, two giant field rat whiskers, and a large king snake skin. Once you have the necessary components combine them in your Curing Kit with this Tattered Glove Pattern."); + e.other:SummonCursorItem(19559); -- Item: Tattered Glove Pattern + elseif(e.message:findi("legging")) then + e.self:Say("To craft Sturdy Workmans Leggings you require three [silk thread], a low quality wolf pelt, two large myotis bat furs, and a giant king snake skin. Once you have the necessary components combine them in your Curing Kit with this Tattered Pant Pattern."); + e.other:SummonCursorItem(19560); -- Item: Tattered Pant Pattern + elseif(e.message:findi("sleeve")) then + e.self:Say("To craft Sturdy Workmans Sleeves you require two [silk thread], a low quality wolf pelt, two large myotis bat furs, and a giant king snake skin. Once you have the necessary components combine them in your Curing Kit with this Tattered Sleeves Pattern."); + e.other:SummonCursorItem(19557); -- Item: Tattered Sleeve Pattern + elseif(e.message:findi("tunic")) then + e.self:Say("To craft a Sturdy Workmans Tunic you require four [silk thread], a medium quality wolf pelt, a giant myotis bat fur, and a giant king snake skin. Once you have the necessary components combine them in your Curing Kit with this Tattered Tunic Pattern."); + e.other:SummonCursorItem(19556); -- Item: Tattered Tunic Pattern + elseif(e.message:findi("next job")) then + e.self:Say("A message between two of our agents was recently intercepted by a Qeynos Guardsman. The message is encoded in thieves cant but should the guards eventually decode it we would expect trouble. Guard Gregor, the guard who currently is in possession of the message is out patrolling somewhere in the West Karanas. Find this guard and recover the message. Bring it back to me when you have done so."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19942})) then + e.self:Say("Excellent! It is fortunate you recovered this message in time. Take this Rusty Unseen Hands Dagger to a forge and sharpen it with a sharpening stone. It may take you several attempts if you are unfamiliar with the process. Once that is accomplished bring me the sharpened dagger, a gnoll fang, and a large king snake skin and I will put the finishing touches on the weapon for you."); + -- Confirmed Live Experience and Faction + e.other:Faction(e.self,223,10,0); -- Circle of Unseen Hands + e.other:Faction(e.self,291,-1,0); -- Merchants of Qeynos + e.other:Faction(e.self,230,1,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,262,-1,0); -- Guards of Qeynos + e.other:Faction(e.self,273,1,0); -- Kane Bayle + e.other:QuestReward(e.self,{itemid = 19943,exp = 1000}); -- rusty unseen hands dagger + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19944,item2 = 13915,item3 = 19945})) then + e.self:Emote("fashions a grip out of the large king snake skin, fastens the gnoll fang to the heel of the hilt, and polishes the blade with a faintly glowing polish. 'Herei syour new weapon young rogue.'"); + -- Confirmed Live Experience + e.other:QuestReward(e.self,{itemid = 20266,exp = 1000}); -- Dagger of Unseen Hands + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos2/Rendallen_Ironforge.lua b/qeynos2/Rendallen_Ironforge.lua new file mode 100644 index 0000000..1481e4a --- /dev/null +++ b/qeynos2/Rendallen_Ironforge.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings and welcome to Ironforge Weapons! Be sure to purchase Ironforge weapons, they are assured not to break during combat."); + end +end diff --git a/qeynos2/Renux_Herkanor.lua b/qeynos2/Renux_Herkanor.lua new file mode 100644 index 0000000..69b1407 --- /dev/null +++ b/qeynos2/Renux_Herkanor.lua @@ -0,0 +1,64 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You need something, or are you just browsing?"); + elseif(e.message:findi("knargon")) then + e.self:Say("Heh. Knargon is one of our expendables. And if he keeps up his trash, he'll find my dagger in his back... whether Hanns likes it or not."); + elseif(e.message:findi("who.* carson")) then + e.self:Say("Hmm. Maybe you should ask someone else and quit annoying me."); + elseif(e.message:findi("about stanos")) then + e.self:Say("What? I see it is time to make my choices. Forget you mentioned that name, " .. e.other:GetCleanName() .. ". Leave me."); + e.self:DoAnim(12); + elseif(e.message:findi("Lomarc")) then + if(e.other:GetFactionValue(e.self) >= 50) then -- mid indifferent to start + e.self:Say("Lomarc? He's a small time smuggler who runs from here to Odus. He got sloppy on his last run, and now the guards are on to him. We need to have someone [meet him behind the Mermaid's Lure] tonight to pick up a package."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Circle has recognized your deeds and contributions, but I think you need to prove your worth to us a little more."); + else + e.self:Say("Heh... With all you've done, I'm surprised you're still alive."); + end + elseif(e.message:findi("him.* mermaid")) then + if(e.other:GetFactionValue(e.self) >= 50) then + e.self:Say("Hmm, you think you can handle it? Eh, Lomarc is nothing but a two-bit smuggler anyway. Take this payment to him for the package, and don't let him give you any grief. Got it?"); + e.other:SummonCursorItem(18793); -- Item: Lomarc's Payment + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Circle has recognized your deeds and contributions, but I think you need to prove your worth to us a little more."); + else + e.self:Say("Heh... With all you've done, I'm surprised you're still alive."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFactionValue(e.self) >= 40 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13716})) then -- Kerran Doll + e.self:Say("Yes, I see you aim to please. I hope you gave Lomarc the payment he deserved? Heh, that punk had no idea of the value of this shipment. The emerald inside this doll will fetch a pretty penny from those greedy merchants."); + -- Confirmed Live Factions + e.other:Faction(e.self,223,30,0); -- Circle of Unseen Hands + e.other:Faction(e.self,291,-4,0); -- Merchants of Qeynos + e.other:Faction(e.self,230,4,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,262,-4,0); -- Guards of Qeynos + e.other:Faction(e.self,273,4,0); -- Kane Bayle + e.other:QuestReward(e.self,0,0,0,0,0,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if(e.wp == 3) then + e.self:Say("When is Lomarc getting back from Odus? He was supposed to be back three nights ago. Have you heard anything?"); + eq.signal(2074,3); -- NPC: Hanns_Krieghor + elseif(e.wp == 4) then + e.self:Say("Hanns, you are not going to want to hear this, but one of our boys in Donovan's gang swears he saw Stanos in the Karanas a week ago. And we still haven't cornered Malka Rale."); + eq.signal(2074, 4); -- NPC: Hanns_Krieghor + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Ok, I'll send someone out to meet [Lomarc] behind the [Mermaid's Lure] tonight."); + elseif(e.signal == 2) then + e.self:Say("Very well, Father is as good as dead. Did I ever mention that I really hate family reunions? . I am gone!"); + end +end + +-- END of FILE Zone:qeynos2 ID:2020 -- Renux_Herkanor diff --git a/qeynos2/Rineval_Talyas.lua b/qeynos2/Rineval_Talyas.lua new file mode 100644 index 0000000..cd9cdca --- /dev/null +++ b/qeynos2/Rineval_Talyas.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("scribe")) then + e.self:Emote("looks at " .. e.other:GetCleanName() .. " strangely. 'Who told you this?'"); + elseif(e.message:findi("Karn")) then + e.self:Say("'I see. If a scribe is what you seek, then bring me the torn books of fire and ice. A donation of 1000 platinum is needed as well. The donation will be offered as a blessing to the gods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19071,item2 = 19070, platinum = 1000})) then + e.other:QuestReward(e.self,0,0,0,0,18302); -- Item: Book of Scale + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos2/Rodgar_the_Tall.lua b/qeynos2/Rodgar_the_Tall.lua new file mode 100644 index 0000000..323370c --- /dev/null +++ b/qeynos2/Rodgar_the_Tall.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "! You look like you could use some new footwear."); + elseif(e.message:findi("treant wood")) then + e.self:Say("What is all this talk of Treant Wood? I can get you some. In about two months, I shall have a new stock. Perhaps I may have some to trade... if you do me a [favor]..."); + elseif(e.message:findi("favor")) then + e.self:Say("I will be glad to part with some Treant Wood for an Odus Pearl from the waters surrounding Erudin. On second thought... make that four Odus Pearls."); + elseif(e.message:findi("donate") or e.message:findi("donation")) then + e.self:Say("Donate!? Ha! With the taxes imposed by Antonius Bayle, I have no coins to donate to ANY guild!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You know the deal!! Four Odus Pearls and you get the Treant Wood."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13878,item2 = 13878,item3 = 13878,item4 = 13878},1,text)) then -- Pearl of Odus + e.self:Say("Wonderful!! I am sure that was a lot safer than battling a treant."); + -- Confirmed Live Factions + e.other:Faction(e.self,291,2,0); -- +Merchants of Qeynos + e.other:Faction(e.self,223,-1,0); -- -Circle Of Unseen Hands + e.other:Faction(e.self,219,1,0); -- +Antonius Bayle + e.other:Faction(e.self,229,1,0); -- +Coalition of Tradefolk + e.other:Faction(e.self,262,1,0); -- +Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,13824,2000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos2/Roesager_Thusten.lua b/qeynos2/Roesager_Thusten.lua new file mode 100644 index 0000000..6bb18aa --- /dev/null +++ b/qeynos2/Roesager_Thusten.lua @@ -0,0 +1,60 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! My name is Roesager Thusten. Paladin of Life. I am a loyal servant of the Prime Healer and I seek to destroy all who wish to bring death and disease to the land of Norrath."); + elseif(e.message:findi("prime")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("Rodcet Nife is the Prime Healer. It is He who gives us the power to resist the decay and death that Bertoxxulous has released upon Norrath. The Temple of Life is dedicated to His honor."); + else + e.self:Say("Your mere presence disgusts me. Please remove yourself from my sight. Until you change yourself and your ways, you are unwelcome in the Temple of Life."); + end + elseif(e.message:findi("disease")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("The Plaguebringers are followers of the disease lord, Bertoxxulous. We believe a sect of them now operates in Qeynos, be we need proof before we can act."); + else + e.self:Say("Your mere presence disgusts me. Please remove yourself from my sight. Until you change yourself and your ways, you are unwelcome in the Temple of Life."); + end + elseif(e.message:findi("Bertoxxulous")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("Bertoxxulous is a vile creature who rules the Plane of Disease. His filthy followers are spreading their stain across all of Norrath. We fear they are already here in Qeynos."); + else + e.self:Say("Your mere presence disgusts me. Please remove yourself from my sight. Until you change yourself and your ways, you are unwelcome in the Temple of Life."); + end + elseif(e.message:findi("proof")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("Someone reported seeing a Plaguebringer roaming about in the hills near Qeynos. We have long suspected that their dark influence was spreading. I am searching for proof that they are now here in Qeynos. If you find anything, please bring it to me at the Temple of Life."); + else + e.self:Say("Your mere presence disgusts me. Please remove yourself from my sight. Until you change yourself and your ways, you are unwelcome in the Temple of Life."); + end + elseif(e.message:findi("temple of life")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("The Temple of Life, dedicated to the glory of the Prime Healer, is in the heart of North Qeynos. Enter the glowing disks above the Pool of Jahnda and you will magically appear inside the temple."); + else + e.self:Say("Your mere presence disgusts me. Please remove yourself from my sight. Until you change yourself and your ways, you are unwelcome in the Temple of Life."); + end + elseif(e.message:findi("niclaus")) then + if(e.other:GetFactionValue(e.self) >= 200) then + e.self:Say("Niclaus Ressinn? Have you seen him? He is one of our paladins who was sent out to investigate the undead sightings in Qeynos Hills. I have a message from Jahnda for him, but I must continue my own search here in Qeynos. Could you take this to Niclaus? Your help would be appreciated."); + e.other:SummonCursorItem(18970); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The Temple of Life smiles upon you, friend... but such a delicate matter can only be entrusted to our most loyal members."); + else + e.self:Say("Your mere presence disgusts me. Please remove yourself from my sight. Until you change yourself and your ways, you are unwelcome in the Temple of Life."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18802}, 0)) then -- A Sealed Letter (Letter to Opal) + e.self:Say("Rodcet be praised!! This is what we have been searching for! On behalf of the Temple of Life, let me thank you and offer you this small reward for your aid in our war against the Plaguebringer."); + e.other:Faction(e.self,341,50,0); -- Priest of Life + e.other:Faction(e.self,280,15,0); -- Knight of Thunder + e.other:Faction(e.self,262,25,0); -- Guards of Qeynos + e.other:Faction(e.self,221,-12,0); -- Bloodsabers + e.other:Faction(e.self,219,7,0); -- Antonius Bayle + e.other:QuestReward(e.self,0,0,0,0,14007,100); -- Potion of Light Healing + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone:qeynos2 ID:2049 -- Roesager_Thusten \ No newline at end of file diff --git a/qeynos2/Sabnie_Blagard.lua b/qeynos2/Sabnie_Blagard.lua new file mode 100644 index 0000000..54171ba --- /dev/null +++ b/qeynos2/Sabnie_Blagard.lua @@ -0,0 +1,45 @@ +function event_say(e) + + if(e.message:findi("hail")) then + e.self:Say("Greetings. thirsty traveler! I recommend trying Crow's special brew. It's the brew that put Qeynos on the map!"); + end + +end + +function event_waypoint_arrive(e) + + if(e.wp == 10) then + e.self:Say("Did someone order an ale up here?"); + eq.signal(2062,1); -- NPC: Tubal_Weaver + elseif(e.wp == 18) then + e.self:Say("Tubal doesn't suspect a thing.. the poor sap."); + eq.signal(2063,3); -- NPC: Crow + end + +end + +function event_signal(e) + + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + + if(e.signal == 1 and xloc == 368 and yloc == 82) then + e.self:Say("Um, sure. Be right.. um.. up."); + eq.signal(2063,1); -- NPC: Crow + elseif(e.signal == 2) then + e.self:Say("Yes. Fine. That guy just gives me the creeps is all."); + eq.signal(2063,2); -- NPC: Crow + elseif(e.signal == 3) then + e.self:Say("No. No. He is clueless. I've missed you so."); + eq.signal(2062,2); -- NPC: Tubal_Weaver + elseif(e.signal == 4) then + e.self:Say("Please be careful. I don't know what I would do if anything happened to you."); + eq.signal(2062,3); -- NPC: Tubal_Weaver + elseif(e.signal == 5) then + e.self:Say("No! um.. no. That's ok. He's just a little weird, that's all. Nothing to worry about."); + eq.signal(2063,4); -- NPC: Crow + elseif(e.signal == 6) then + e.self:Say("Hee hee hee! Oh.. how sad! HEE HEE HEE HEE HEE!"); + end + +end diff --git a/qeynos2/Seta_Bakindo.lua b/qeynos2/Seta_Bakindo.lua new file mode 100644 index 0000000..f8b51d5 --- /dev/null +++ b/qeynos2/Seta_Bakindo.lua @@ -0,0 +1,60 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ah... Welcome friend. I am Master Seta, of the Silent Fist Clan. We know that true strength lies inside your soul. Once you have found and mastered it, your fists will be deadlier than any blade. I am also currently in charge of training our new recruits. If you are new monk of the Silent Fist I have some [tests] for you to complete."); + elseif(e.message:findi("what test")) then + e.self:Say("I pride myself on passing some of the finest monks in all of the lands through my testing halls. I mainly attribute this fact to my training program that all young monks must undergo. When you are [ready to begin the tests] I will present you with your Silent Fist Assembly Kit and explain to you how the tests work."); + elseif(e.message:findi("ready") or e.message:findi("begin")) then + e.self:Say("Be mindful of your surroundings " .. e.other:GetCleanName() .. ", it is here in Qeynos and in the adventuring areas surround it that you will find all the necessary items for creating Armor of the Silent Fist. You will place a number of items in this kit to create infused armor materials. These magical armor materials can then be combined in a loom with a magical pattern to create different Armor of the Silent Fist pieces. When you are ready to collect the items for a specific armor piece please tell me what armor piece you want to craft. I can present you with the patterns for Silent Fist [Cap], [Bracers], [Sleeves], [Sandals], [Trousers], [Gloves] and [Robes]."); + e.other:SummonCursorItem(17270); -- Silent Fist Assembly Kit ID-17270 + elseif(e.message:findi("cap")) then + e.self:Say("To create your cap material you will need to combine 2 Woven Spider Silks, 1 Skeleton Tibia, 1 Field Rat Skull and a Cloth Cap in your assembly kit. Once you have created the proper material take it to a loom along with this pattern to fashion your very own Cap of the Silent Fist."); + e.other:SummonCursorItem(22583); -- An Enchanted Cap Pattern ID-22583 + elseif(e.message:findi("bracer")) then + e.self:Say("To create your bracer material you will need to combine 1 Woven Spider Silk, 2 Rat Whiskers, 1 Gnoll Jawbone and a Cloth Wristband in your assembly kit. Once you have created the proper material take it to a loom along with this pattern to fashion your very own Bracer of the Silent Fist."); + e.other:SummonCursorItem(22584); -- An Enchanted Bracer Pattern ID-22584 + elseif(e.message:findi("sleeve")) then + e.self:Say("To create your sleeves material you will need to combine 2 Woven Spider Silks, 2 Rabid Wolf Hides, and Cloth Sleeves in your assembly kit. Once you have created the proper material take it to a loom along with this pattern to fashion your very own Sleeves of the Silent Fist."); + e.other:SummonCursorItem(22586); -- An Enchanted Sleeves Pattern ID-22586 + elseif(e.message:findi("sandal")) then + e.self:Say("To create your boot material you will need to combine 3 Woven Spider Silks, 1 Severed Gnoll Foot, 1 Gnoll Backbone, 1 Bone Chip and Cloth Sandals in your assembly kit. Once you have created the proper material take it to a loom along with this pattern to fashion your very own Sandals of the Silent Fist."); + e.other:SummonCursorItem(22585); -- An Enchanted Sandals Pattern ID-22585 + elseif(e.message:findi("trouser")) then + e.self:Say("To create your trouser material you will need to combine 4 Woven Spider Silks, 1 Bandit Sash, 1 Matted Lion Pelt and 1 Giant Spider Egg Sack in your assembly kit. Once you have created the proper material take it to a loom along with this pattern to fashion your very own Trousers of the Silent Fist."); + e.other:SummonCursorItem(22587); -- An Enchanted Trousers Pattern ID-22587 + elseif(e.message:findi("glove")) then + e.self:Say("To create your glove material you will need to combine 3 Woven Spider Silks, 1 Giant Fire Beetle Eye, 1 Chunk of Meat, 1 Ale and 1 Young Puma Skin in your assembly kit. Once you have created the proper material take it to a loom along with this pattern to fashion your very own Gloves of the Silent Fist."); + e.other:SummonCursorItem(22588); -- An Enchanted Gloves Pattern ID-22588 + elseif(e.message:findi("robe")) then + e.self:Say("To create your robe material you will need to combine 5 Woven Spider Silks, 1 High Quality Cat Pelt, 1 Shadow Wolf Paw, 1 Severed Gnoll Foot, 1 Matted Lion Pelt and 1 Cloth Shirt in your assembly kit. Once you have created the proper material take it to a loom along with this pattern to fashion your very own Robe of the Silent Fist. Please come see me after you have completed your robe. I need to see you for some help with a [problem] our clan has been having."); + e.other:SummonCursorItem(22589); -- An Enchanted Robe Pattern ID-22589 + elseif(e.message:findi("problem")) then + e.self:Say("There have been numerous muggings lately in Qeynos by corrupt guards. These guards are sworn to protect, server and uphold law in the city but all the do is break the law ten fold themselves. These corrupt individuals must be stopped. I have a [Silent Fist clan member] that I feel may be in trouble."); + elseif(e.message:findi("silent fist clan member")) then + e.self:Say("Konem Matse is my friend and mentor, he resides in Qeynos Hills providing security for the Sayers there. Lately though I have heard reports of guards demanding he pay them tax or else. This tax they speak of does not exist. I need you to go to the hills and help Konem. Rid the lands of these corrupt guards and bring me their heads as proof. I will also need 1 High Quality Gnoll Fur for a tailoring project I have been working on. Return to me with these items and you will be rewarded for your troubles."); + elseif(e.message:findi("who is tomer")) then + e.self:Say("Oh, Tomer? We haven't heard from him in days, I'm really starting to worry. . . We need to have someone go [find him]."); + elseif(e.message:findi("find him")) then + if(e.other:GetFaction(e.self) <= 5) then -- requires indifferent faction + e.self:Say("One of our clan brothers has not reported back in over three days. He was sent to help defend the Qeynos Gates, and we haven't heard from him since. We need you to find him, if he is still alive. Tell him that Seta has sent you to find him, and escort him back to our guild. Good luck."); + else + e.self:Say("Your previous actions disgust me. Our guild will have nothing to do with the likes of you. Now, please, leave us be!"); + end + elseif(e.message:findi("found tomer")) then + e.self:Say("Great work " .. e.other:GetCleanName() .. ", we thought that was the last we'd seen of young Tomer."); + eq.signal(2030,1); + end +end + +function event_trade(e) + local item_lib = require("items"); + -- Silent Fist Clansman Hand Wraps require Sironans Head ID-27425, Yalroens Head ID-27426, and 1 High Quality Gnoll Fur ID-27427 + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 27425, item2 = 27426, item3 = 27427})) then + e.self:Say("There are many more corrupt guards. I am sure this is just the beginning. You have helped Konem and for that I thank you . You are well on your way to enlightenment and tranquility. I bid you farewell and wish you well where ever your travels may take you."); + -- Confirmed Live Experience and Faction + e.other:Faction(e.self,309,10); -- Silent Fist Clan faction + e.other:Faction(e.self,262,1); -- Guards of Qeynos faction + e.other:Faction(e.self,361,1); -- Ashen Order faction + e.other:QuestReward(e.self,{itemid = 27494,exp = 500}); -- Silent Fist Clansman Hand Wraps ID-27494 + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos2/Shenro_Kazpur.lua b/qeynos2/Shenro_Kazpur.lua new file mode 100644 index 0000000..8721d6c --- /dev/null +++ b/qeynos2/Shenro_Kazpur.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, and welcome to my shop. I am humble merchant Shenro Kazpur of the Silent Fist Clan."); + elseif(e.message:findi("lusun")) then + e.self:Say("Ahhh, Lu'Sun is a master of many skills. He has traveled all of Norrath, studying various techniques and disciplines. Now, he runs this small guild and passes on his knowledge to those willing to devote their lives to our cause."); + end +end \ No newline at end of file diff --git a/qeynos2/Sneed_Galliway.lua b/qeynos2/Sneed_Galliway.lua new file mode 100644 index 0000000..57aec93 --- /dev/null +++ b/qeynos2/Sneed_Galliway.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". I am Sneed Galliway, merchant and citizen. I run the only general store in all of Qeynos, serving the needs of the many adventurers who call Qeynos home. If only one of them would take the time to help me with my er... [problem]..."); + elseif(e.message:findi("problem")) then + e.self:Say("Shhh.. Keep it down. It seems I have a little rodent problem in my store. A mangy rat keeps digging into my crates of rations. He looks as if he is diseased. If you help me by killing this pest, I will make it worth your while. Bring me his head as proof it is done."); + elseif(e.message:findi("ronn castekin")) then + e.self:Say("Ronn? I saw him a few days ago. He was with someone dressed in black I didn't recognize .. I think I saw them later that day, swimming in the north pond. They really should stay away from the aqueducts. They can be quite dangerous. Full of rats, ya know."); + elseif(e.message:findi("tax")) then + e.other:Faction(e.self,291,-1); -- Faction: Merchants of Qeynos + e.self:Say("Hey, " .. e.other:GetCleanName() .. ", how the heck did Vicus convince you to do his job? He better be paying you well. Here you go."); + e.other:SummonCursorItem(13172); -- Item: Galliways Tax Payment + end +end + +function event_trade(e) + + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13717})) then -- rat head + e.self:Say("HA! Good work! I knew you were the person for the job. A regular ratslayer you are. Here is your reward as promised. be sure you keep this between us."); + -- Confirmed Live Factions and Experience + e.other:Faction(e.self,291,25,0); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,223,-5,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,219,3,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,229,2,0); -- Faction: Coalition of Tradefolk + e.other:Faction(e.self,262,5,0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,math.random(10),0,0,0,eq.ChooseRandom(13006,13009,13002,13100),200); -- Water Flask, Bandages, Torch, Fishing Pole + end + + item_lib.return_items(e.self, e.other, e.trade) + +end diff --git a/qeynos2/Suuspa_Clanim.lua b/qeynos2/Suuspa_Clanim.lua new file mode 100644 index 0000000..c184d9c --- /dev/null +++ b/qeynos2/Suuspa_Clanim.lua @@ -0,0 +1,52 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Temple of Life, " .. e.other:GetCleanName() .. ". It is here that you may pay tribute to the [Prime Healer]. Does not your heart beat with the sound of life? It is He who makes it so. Do not let the hand of [Bertoxxulous] and his [new disease] lay upon your soul or, like so many, you shall meet your fate at the end of my sword!"); + elseif(e.message:findi("Bertoxxulous")) then + e.self:Say("The one who spawned all the diseases and imperfections of the lands of Norrath. Do not seek his wisdom, for there is none. Do not become part of his [new disease]."); + elseif(e.message:findi("new disease")) then + e.self:Say("The new disease I speak of is called the [Bloodsabers]. They are the loyal followers of Bertoxxulous and as such have been condemned by our temple. Do you wish to [join the fight]?"); + elseif(e.message:findi("Bloodsabers")) then + e.self:Say("If I knew where they were, there would be no reason to employ your talents. They would be extinct!"); + elseif(e.message:findi("join the fight")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Then seek out those who worship the Plaguebringer. End their threat! Each member has upon them the mark of the Bloodsabers, a [rat-shaped ring]. I shall reward all those who return such rings to me."); + else + e.self:Say("Your mere presence disgusts me. Please remove yourself from my sight. Until you change yourself and your ways, you are unwelcome in the Temple of Life."); + end + elseif(e.message:findi("rat-shaped ring") or e.message:findi("rat shaped ring")) then + e.self:Say("A rat-shaped ring, you say? That is the sign of the [new disease]."); + elseif(e.message:findi("Prime Healer") or e.message:findi("Rodcet Nife")) then + e.self:Say("He is the sustainer of life. The hand which supports us when we begin to slow down. Rodcet Nife, the Prime Healer! He is why we exist."); + elseif(e.message:findi("trintle.* attack")) then + e.self:Say("Impossible!! What madness do you speak of!!? If he did he must have had a reason. Maybe Trintle had been tainted by the words of Bertoxxulous..?"); + elseif(e.message:findi("heal")) then + e.self:Say("I cannot help you with your request. You must speak with Brother Tonmerk Plorsin."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13301})) then + e.self:Say("You have cleansed Norrath of another follower of the Plaguebringer. You have done well. Take this reward and continue your search for others who wear this ring."); + -- Confirmed Live Factions + e.other:Faction(e.self,341,5,0); -- Priests of Life + e.other:Faction(e.self,280,1,0); -- Knights of Thunder + e.other:Faction(e.self,262,2,0); -- Guards of Qeynos + e.other:Faction(e.self,221,-1,0); -- Bloodsabers + e.other:Faction(e.self,219,1,0); -- Antonius Bayle + e.other:QuestReward(e.self,math.random(10),math.random(10),0,0,0,1000); + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13908})) then + e.self:Say("This is not good. Hmph. It appears they are shattered. For the first time one of our members has been swayed. I reward you for your deed. Also, if you have found anything upon Trintle, let me know."); + -- Confirmed Live Factions + e.other:Faction(e.self,341,5,0); -- Priests of Life + e.other:Faction(e.self,280,1,0); -- Knights of Thunder + e.other:Faction(e.self,262,2,0); -- Guards of Qeynos + e.other:Faction(e.self,221,-1,0); -- Bloodsabers + e.other:Faction(e.self,219,1,0); -- Antonius Bayle + e.other:QuestReward(e.self,math.random(10),math.random(10),0,0,0,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:qeynos2 ID:2048 -- Suuspa_Clanim diff --git a/qeynos2/Svena_Ironforge.lua b/qeynos2/Svena_Ironforge.lua new file mode 100644 index 0000000..6181be1 --- /dev/null +++ b/qeynos2/Svena_Ironforge.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Ironforge Jewelers. We are the finest jewelers this side of the Serpent's Spine."); + elseif(e.message:findi("tayla")) then + e.self:Say("Tayla is our poor, dear, sweet half-sister. She has run away to live with those closer to [her kind]."); + elseif(e.message:findi("her kind")) then + e.self:Say("Her kind is elven. Tayla is a halfbreed. She could no longer take the torment by the human populace of Qeynos. Poor girl. I feel for her."); + end +end diff --git a/qeynos2/Togahn_Sorast.lua b/qeynos2/Togahn_Sorast.lua new file mode 100644 index 0000000..059dca9 --- /dev/null +++ b/qeynos2/Togahn_Sorast.lua @@ -0,0 +1,118 @@ +function event_waypoint_arrive(e) + if(e.wp == 16) then + eq.set_anim(2087,1); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings.. I am Second Master Togahn Sorast. I am here to teach the ways of our guild. For our more advanced members, I will give out [headbands] as a reward for their contribution to the clan."); + elseif(e.message:findi("white") or e.message:findi("yellow") or e.message:findi("orange")) then + e.self:Say("Brother Phin gives those headbands out. Go see him about earning one."); + elseif(e.message:findi("headbands")) then + e.self:Say("The Silent Fist Clan gives out colored Headbands for various deeds completed by our students. Phin gives out the White, Yellow, and Orange Headbands.. and I give out the [Red, Purple, and Blue Headbands]."); + elseif(e.message:findi("red headband")) then + if(e.other:GetFactionValue(e.self) >= 275) then + e.self:Say("Ah, you think you are skilled enough to earn the red headband of the Silent Fist Clan, " .. e.other:GetCleanName() .. "? Hmmm.. Well, if you can help us find [Brother Dareb], you would certainly deserve the honor of wearing the red headband."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I have been watching you, and appreciate the help you've given to the brothers and sisters of the Silent Fist. But, I feel that such a vital matter should be left to one of our more trusted members."); + else + e.self:Say("Your previous actions disgust me. Our guild will have nothing to do with the likes of you. Now, please, leave us be!"); + end + elseif(e.message:findi("brother dareb")) then + if(e.other:GetFactionValue(e.self) >= 275) then + e.self:Say("Yes, brother Dareb was last heard from over two weeks ago. He was out in the Plains of South Karana, and then just disappeared. We fear that those vile gnolls fleeing Splitpaw may have captured him or worse. We sent brother Shen to go search the Karanas and look for Dareb over three days ago, but haven't heard from him, either. I fear the worst for both of them, especially if the [Splitpaws] are involved. Please, " .. e.other:GetCleanName() .. ", find and return our lost brothers to us. If they are not alive, bring back their remains so we may give them a proper burial.. and, if it is that evil [Ghanex Drah]'s doing, bring me his head as well, for the honor of the clan. You do this for us, " .. e.other:GetCleanName() .. ", and turn in your orange headband, and I will reward you with the red headband of the Silent Fist. Good luck."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I have been watching you, and appreciate the help you've given to the brothers and sisters of the Silent Fist. But, I feel that such a vital matter should be left to one of our more trusted members."); + else + e.self:Say("Your previous actions disgust me. Our guild will have nothing to do with the likes of you. Now, please, leave us be!"); + end + elseif(e.message:findi("splitpaw")) then + if(e.other:GetFactionValue(e.self) >= 275) then + e.self:Say("The Splitpaws were a large clan of gnolls that lived in a burrow out in South Karana, They have recently been ousted from their home by a new clan of gnolls that are very powerful. We try to stay away from them if we can, for we do not know much about this new breed. The Splitpaws are on the move and now is the only time to strike. If we wait too long, there will be no way to find our brother. Go now my friend, we haven't much time."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I have been watching you, and appreciate the help you've given to the brothers and sisters of the Silent Fist. But, I feel that such a vital matter should be left to one of our more trusted members."); + else + e.self:Say("Your previous actions disgust me. Our guild will have nothing to do with the likes of you. Now, please, leave us be!"); + end + elseif(e.message:findi("Ghanex Drah")) then + if(e.other:GetFactionValue(e.self) >= 275) then + e.self:Say("Ghanex Drah is ruler of the now fleeing gnolls of Splitpaw. I've heard rumors that he has been dabbling in the dark art of necromancy. Ghanex is looking for more test subjects, no doubt to rebuild his stronghold. The good people of Antonica must put an end to his evil reign soon, or I fear he could grow much more powerful."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I have been watching you, and appreciate the help you've given to the brothers and sisters of the Silent Fist. But, I feel that such a vital matter should be left to one of our more trusted members."); + else + e.self:Say("Your previous actions disgust me. Our guild will have nothing to do with the likes of you. Now, please, leave us be!"); + end + elseif(e.message:findi("purple headband")) then + if(e.other:GetFactionValue(e.self) >= 350) then + e.self:Say("Ah, you think you are now skilled enough to deserve the purple headband of the Silent Fist Clan? Very well, " .. e.other:GetCleanName() .. ", I have a task for you that will prove whether or not you are worthy of this honor. I have heard recent rumors of ancient evils surfacing once again throughout Antonica. These evil groups have discovered some items that are giving them mystical and dangerous powers. These items must be destroyed, or else the evils of Norrath may gain control of the world's future. Bring me these [evil items], and turn in your red headband, and you will have proven yourself a mighty spirit and dedicated member of the Silent Fist."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I have been watching you, and appreciate the help you've given to the brothers and sisters of the Silent Fist. But, I feel that such a vital matter should be left to one of our more trusted members."); + else + e.self:Say("Your previous actions disgust me. Our guild will have nothing to do with the likes of you. Now, please, leave us be!"); + end + elseif(e.message:findi("evil items")) then + if(e.other:GetFactionValue(e.self) >= 350) then + e.self:Say("These evil creations have been found all over Antonica, and no one knows, or at least no one admits to knowing, where exactly they were found, but we do know that they are currently in the wrong hands and must be destroyed. Please, " .. e.other:GetCleanName() .. ", seek out the [Skull of Jhen'Tra], the [Dagger of Marnek], and the [Coronet of Buried Blood], and bring them to me."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I have been watching you, and appreciate the help you've given to the brothers and sisters of the Silent Fist. But, I feel that such a vital matter should be left to one of our more trusted members."); + else + e.self:Say("Your previous actions disgust me. Our guild will have nothing to do with the likes of you. Now, please, leave us be!"); + end + elseif(e.message:findi("skull")) then + if(e.other:GetFactionValue(e.self) >= 350) then + e.self:Say("I don't know much about the Skull of Jhen'Tra. I've heard that it has resurfaced in the gnoll burial grounds of Lake Rathetear. Apparently, this skull is helping to give these gnolls the power to raise an undead army of their fallen ancestors. This evil must be stopped before their army becomes too powerful."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I have been watching you, and appreciate the help you've given to the brothers and sisters of the Silent Fist. But, I feel that such a vital matter should be left to one of our more trusted members."); + else + e.self:Say("Your previous actions disgust me. Our guild will have nothing to do with the likes of you. Now, please, leave us be!"); + end + elseif(e.message:findi("Dagger of Marnek")) then + if(e.other:GetFactionValue(e.self) >= 350) then + e.self:Say("The Dagger of Marnek is a diabolical weapon created by the ancient necromancer Marnek Jaull. Marnek was the leader of a small cult of necromancers who worshipped Solusek Ro. Marnek used this dagger in his ceremonial sacrifices to the Burning Prince, to increase his own power and show his loyalty to his god. His cult grew stronger and word of the evil acts spread all over Antonica. Legend has it that a group of paladins from Erudin, followers of Prexus, spent over 10 years searching out Marnek and his followers, and finally destroyed them. Though Marnek's evil reign was put to an end, many of his books and items are still being uncovered to this day. The Dagger of Marnek is now being used by the evil inhabitants who control the depths of Befallen. Bring this dagger to me, so that we may dispose of it and banish its evil powers forever."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I have been watching you, and appreciate the help you've given to the brothers and sisters of the Silent Fist. But, I feel that such a vital matter should be left to one of our more trusted members."); + else + e.self:Say("Your previous actions disgust me. Our guild will have nothing to do with the likes of you. Now, please, leave us be!"); + end + elseif(e.message:findi("Coronet of Buried Blood")) then + if(e.other:GetFactionValue(e.self) >= 350) then + e.self:Say("The Coronet of Buried Blood is an ancient headdress which is said to have belonged to the High Priest of the Plexant Temple. The Plexant were known to be devout followers of Innoruuk and the coronet is supposed to have been blessed by the Prince of Hate himself. Apparently, the coronet is now in the hands of a clan of goblins that dwell in the caverns of Permafrost."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I have been watching you, and appreciate the help you've given to the brothers and sisters of the Silent Fist. But, I feel that such a vital matter should be left to one of our more trusted members."); + else + e.self:Say("Your previous actions disgust me. Our guild will have nothing to do with the likes of you. Now, please, leave us be!"); + end + elseif(e.message:findi("blue headband")) then + e.self:Say("Sorry, we are currently out of blue headbands. Please check back later."); + elseif(e.message:findi("black headband")) then + e.self:Say("The black headband is one of the highest honors of our guild.. [Lu'Sun] only gives those out for great acts of heroism and devotion to the clan."); + elseif(e.message:findi("LuSun")) then + e.self:Say("Ahhh, Lu'Sun is a master of many skills. He has traveled all of Norrath, studying various techniques and disciplines. Now, he runs this small guild and passes on his knowledge to those willing to devote their lives to our cause."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "Good work, " .. e.other:GetCleanName() .. ", your task is almost completed. You are almost ready for the red headband of the Silent Fist Clan."; + local text2 = "Good work, " .. e.other:GetCleanName() .. ", your task is almost completed."; + + -- Orange Headband, Head of Ghanex Drah, Dareb's Skull, Head of Shen + if(e.other:GetFactionValue(e.self) >= 275 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10112, item2 =13165, item3 = 13166,item4 = 13167},1,text1)) then + e.self:Say("We are deeply honored to have such great warrior as part of our Clan. With a proper burial, Shen and Dareb's souls will finally be at peace, and with the death of that vile Ghanex, the plains will be much safer for travelers. It is a great honor to present you, " .. e.other:GetCleanName() .. ", with the red headband of the Silent Fist Clan."); + e.other:Faction(e.self,309,75,0); -- Silent Fist Clan + e.other:Faction(e.self,262,11,0); -- Guards of Qeynos + e.other:Faction(e.self,361,5,0); -- Ashen Order + e.other:QuestReward(e.self,0,0,0,0,10113,500); -- Item: Red Headband + -- Red Headband, Skull of Jhen`Tra, Dagger of Marnek, Zaharn's Coronet + elseif(e.other:GetFactionValue(e.self) >= 350 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10113, item2 =13168, item3 = 13169,item4 = 3000},1,text2)) then + e.self:Say("In honor of your recent acts of courage and dedication, I reward you, " .. e.other:GetCleanName() .. ", with the purple headband of the Silent Fist Clan."); + e.other:Faction(e.self,309,100,0); -- Silent Fist Clan + e.other:Faction(e.self,262,15,0); -- Guards of Qeynos + e.other:Faction(e.self,361,5,0); -- Ashen Order + e.other:QuestReward(e.self,0,0,0,0,10114,1000); -- Purple Headband + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:qeynos2 ID:2087 -- Togahn_Sorast diff --git a/qeynos2/Tomer_Instogle.lua b/qeynos2/Tomer_Instogle.lua new file mode 100644 index 0000000..4ce49b3 --- /dev/null +++ b/qeynos2/Tomer_Instogle.lua @@ -0,0 +1,63 @@ +local closeby = 0; + +function event_say(e) + if(closeby == 0) then + if(e.message:findi("Hail")) then + if(e.other:GetFaction(e.self) <= 5) then -- requires indifferent faction + e.self:Say("Ahhhgggg.. Those mangy [dogs] put up a tough fight.. If I don't make it back to the Clan House soon, it'll all be over for me."); + eq.stop_follow(); + eq.stop_timer("cooldown"); + eq.start(75); + else + e.self:Say("What? Knowing how we feel about you and your reputation, not to mention the grief you've caused Master Lu'Sun, you would try to act as my friend?!? Leave me alone!"); + end + elseif(e.message:findi("dogs") or e.message:findi("mutts")) then + e.self:Say("It's those Darkpaws.. They've beat me pretty badly.. but they'll get theirs soon enough!"); + elseif(e.message:findi("Silent Fist Clan")) then + e.self:Say("I am a new member of the Silent Fist Clan.. I need someone from my guild to help me find my way back."); + elseif(e.message:findi("Seta sent me to find you")) then + e.self:Say("Oh.. Thank goodness you found me.. I'm lost and weak, those [mutts] are a vicious lot.. an you carry my [backpack] for me?"); + elseif(e.message:findi("carry your backpack")) then + e.self:Say("Thank you, friend.. Now, can you lead me back to Master Seta of the [Silent Fist Clan]? "); + e.other:SummonCursorItem(13769); -- Ruined Backpack + elseif(e.other:GetFaction(e.self) <= 5 and e.message:findi("lead you back")) then + e.self:Say("Lead the way, and I shall follow. When we make it back, please inform Seta that you have rescued me."); + eq.stop(); + eq.follow(e.other:GetID()); + eq.set_timer("cooldown",1800000); + end + end +end + +function event_signal(e) + if(e.signal == 1 and closeby == 0 and (e.self:GetX() >= 300 and e.self:GetX() <= 340) and (e.self:GetY() >= 250 and e.self:GetY() <= 285)) then + e.self:Say("I am now accepting quests."); + eq.stop_follow(); + e.self:SaveGuardSpot(); + closeby = 1; + e.self:Say("Yes, he saved my life... I owe him much thanks. Please return my pack to me now, good friend."); + eq.set_timer("cooldown",1800000); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(closeby == 1 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13769})) then --Ruined Backpack + e.self:Say("Oh, you have the makings of a true hero.. The Silent Fist Clan is proud to have you as ally. May your soul guide and protect you through these chaotic times."); + -- Confirmed Live Factions + e.other:Faction(e.self,309,35); -- Silent Fist Clan faction + e.other:Faction(e.self,262,5); -- Guards of Qeynos + e.other:Faction(e.self,361,1); -- Ashen Order faction + e.other:QuestReward(e.self,0,0,0,0,0,100); + closeby = 2; + eq.set_timer("cooldown",1200000); + end +end + +function event_timer(e) + closeby = 0; + eq.stop_follow(); + e.self:SaveGuardSpot(true); + eq.start(75); + eq.stop_timer("cooldown"); +end diff --git a/qeynos2/Tonmerk_Plorsin.lua b/qeynos2/Tonmerk_Plorsin.lua new file mode 100644 index 0000000..49d1f67 --- /dev/null +++ b/qeynos2/Tonmerk_Plorsin.lua @@ -0,0 +1,55 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, child. Welcome to the Temple of Life. Here, you may pay homage to the [Prime Healer], [Rodcet Nife]. If you are in need of [healing] or require me to [cure disease] or [cure poison], please inform me. I am the resident healer of all Qeynos citizens."); + elseif(e.message:findi("cure disease")) then + e.self:Say("Yes, we can do that. First, you must fetch me some bandages and brew me some bog juice. I.. err.. require the bog juice to.. to dampen the bandages.. Yes that's it! To dampen the bandages."); + elseif(e.message:findi("cure poison")) then + e.self:Say("To cast the poison from your body I require one snake fang. The fang will contain a hint of poison which will help me focus my casting."); + elseif(e.message:findi("healing")) then + e.self:Say("You must pay a tribute of five gold coins before I perform the binding of your wounds."); + elseif(e.message:findi("prime healer") or e.message:findi("rodcet nife")) then + e.self:Say("He is the sustaining force of all life. It is in honor of Him that the Temple of Life was built. Engineered with the help of the [Academy of Arcane Science]."); + elseif(e.message:findi("academy of arcane science")) then + e.self:Say("The Academy of Arcane Science is the greatest school of magic in Antonica. It houses a wealth of resources and knowledge pertaining to any of the circles of magic. It is also a marvel of magical engineering. If you should ever visit Freeport. be sure to let me know. I seek a faithful cleric to [pickup a reagent]."); + elseif(e.message:findi("pickup.* reagent")) then + if(e.other:GetFaction(e.self) > 5) then -- apprehensively or worse + e.self:Say("Your mere presence disgusts me. Please remove yourself from my sight. Until you change yourself and your ways, you are unwelcome in the Temple of Life.") + elseif(e.other:GetFaction(e.self) > 4) then -- indifferently + e.self:Say("The Temple of Life smiles upon you, friend... but such a delicate matter can only be entrusted to our most loyal members.") + else -- amiably + e.self:Say("That would be grand! It is a long journey to Freeport. I am lucky to find one who can endure the trip. Go to Freeport and seek out the Temple of Marr. Within, you shall find a cleric named [Serna Tasknon]. Give her this flask. It is an inert potion which she can use. In exchange she will give you the [shark powder] to return to me. Do this and I shall grant you the ability to call upon the power of life and smite thy foes."); + e.other:SummonCursorItem(13983); -- Item: Inert Potion + end + elseif(e.message:findi("Serna Tasknon")) then + e.self:Say("Serna Tasknon is a member of the Priests of Marr in the trade city of Freeport. I studied their ways of healing. The Priests of Marr can be found in the Temple of Marr."); + elseif(e.message:findi("shark powder")) then + e.self:Say("I am not sure what it is, but it surely has been proven to aid one's strength. Serna Tasknon in Freeport is the only one who can create it. She won't make it for you unless you bring her a potion from Toresian however. Last I saw of him he had returned to his home in Erudin."); + elseif(e.message:findi("bertoxxulous") or e.message:findi("plaguebringer")) then + e.self:Say("Bertoxxulous is the vile lord of all disease. We of the Temple of Life are sworn to put an end to any being who serves the evil god."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12125})) then -- Shark Powder + e.self:Say("I thank you, my good friend. Surely the road to Freeport was not easily trod. Please take this as compensation for your costs and I also grant you the ability to call forth the power of Rodcet Nife to smite the enemy. Go forth to defend life."); + -- Confirmed Live Factions + e.other:Faction(e.self,341,20,0); -- Priests of Life + e.other:Faction(e.self,280,6,0); -- Knights of Thunder + e.other:Faction(e.self,262,10,0); -- Guards of Qeynos + e.other:Faction(e.self,221,-5,0); -- Bloodsabers + e.other:Faction(e.self,219,3,0); -- Antonius Bayle + e.other:QuestReward(e.self,0,0,math.random(30),0,15016,100000); -- spell: smite + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 16581,item2 = 13009})) then -- Bog Juice, Bandages + e.self:Say("The glory of Rodcet Nife flows through your soul. May your body and soul live in righteous health."); + e.self:CastSpell(96,e.other:GetID()); -- Spell: Counteract Disease + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13067})) then -- Snake fang + e.self:Say("The glory of Rodcet Nife flows through your soul. May your body and soul live in righteous health."); + e.self:CastSpell(95,e.other:GetID()); -- Counteract Poison + elseif(item_lib.check_turn_in(e.self, e.trade, {gold = 5})) then + e.self:Say("The glory of Rodcet Nife flows through your soul. May your body and soul live in righteous health."); + e.self:CastSpell(17,e.other:GetID()); -- Light Healing + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos2/Tubal_Weaver.lua b/qeynos2/Tubal_Weaver.lua new file mode 100644 index 0000000..678991e --- /dev/null +++ b/qeynos2/Tubal_Weaver.lua @@ -0,0 +1,45 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Say("Hey! Someone dropped a perfectly good thing-a-ma-jig! Oh well, finders keepers!"); + end + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! I am Tubal Weaver, humble merchant and retired guardsman of Highkeep. I make a tidy living dealing with the throngs of adventurers who take it upon themselves to keep Qeynos beetle-free. If you want some free advice, I recommend that you not deal with any of the merchants in town. I can offer much lower prices than they because I do not have the overhead of a shop to maintain."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 2) then + e.self:Say("Whew. I am parched. I will be back in a few minutes."); + e.self:MerchantCloseShop(); + elseif(e.wp == 15) then + e.self:Say("Hey sweetheart, I'll have my usual. Could you bring it upstairs for me?"); + eq.signal(2083,1); -- NPC: Sabnie_Blagard + elseif(e.wp == 38) then + e.self:Say("Hey, hey, hey! Tubal Weaver open for business!"); + e.self:MerchantOpenShop(); + end +end + +function event_signal(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + + if(e.signal == 1 and xloc == 372 and yloc == 37) then + e.self:Say("Is he wise to us?"); + eq.signal(2083,3); -- NPC: Sabnie_Blagard + elseif(e.signal == 2) then + e.self:Say("Well, we won't have to worry about him much longer. I have some friends coming into town who owe me the kind of debt you can't repay with gold."); + eq.signal(2083,4); -- NPC: Sabnie_Blagard + elseif(e.signal == 3) then + e.self:Say("Don't you worry, sugar, his days are numbered. You better get back before he suspects something. We'll be together soon enough."); + end +end diff --git a/qeynos2/Tyokan_Mekase.lua b/qeynos2/Tyokan_Mekase.lua new file mode 100644 index 0000000..abb571d --- /dev/null +++ b/qeynos2/Tyokan_Mekase.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Please look around. We have many items exclusively for the members of the Temple of Life. We also have [scroll strongboxes]. If you are unsure of what an item is, feel free to ask me."); + elseif(e.message:findi("scroll strongbox")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The scroll strongboxes are merely personal safes. Most of the members use them. I am afraid all are taken, but if you are here to remove a scroll, merely hand me your key and I shall get it for you. I handle all 20 numbered keys and [Whysia] handles all 30 and 40 numbered keys."); + else + e.self:Say("Your mere presence disgusts me. Please remove yourself from my sight. Until you change yourself and your ways, you are unwelcome in the Temple of Life."); + end + elseif(e.message:findi("whysia")) then + e.self:Say("Whysia works the night shift here. She is quite the night owl."); + elseif(e.message:findi("prayer beads")) then + e.self:Say("The prayer beads are the blessed necklaces of the Priests of Life. The beads have a few charges of minor healing. I recharge them for all members in good standing. All I need are the beads and a donation of 100 gold pieces."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "As instructed by High Priestess Jahnda I must ask for the beads and a donation of 100 gold coins."; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13306})) then -- must be amiable + e.self:Say("Oh, turning in your key, are you? Very well, defender of life. Here you are."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(15126,15015,15248)); -- Item(s): Spell: Inspire Fear (15126), Spell: Greater Healing (15015), Spell: Ward Summoned (15248) + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13296, gold=100},1,text)) then -- must be amiable + e.self:Say("I see your beads need to be charged. Very well, here you are. Use them and good health to you!!!"); + e.other:QuestReward(e.self,0,0,0,0,13296); -- Item: Prayer Beads + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos2/Umvera_Dekash.lua b/qeynos2/Umvera_Dekash.lua new file mode 100644 index 0000000..7bb5cd6 --- /dev/null +++ b/qeynos2/Umvera_Dekash.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What, " .. e.other:GetCleanName() .. "? Do I look like a merchant to you? Just because all these merchants are in my library, it doesn't mean that I am one. If you are [interested] in something other than spell scrolls, then, we can talk."); + elseif(e.message:findi("interested")) then + e.self:Say("Ah, so you do have half a wit about you! Very well. As you can clearly see, I am the librarian here. I keep track of all of the mystic tomes that enter this divine building. I also take care of all of the purchasing. Have you something to [offer]?"); + elseif(e.message:findi("offer")) then + e.self:Say("Excellent! You have no idea how difficult it is to get good help these days. Do you think you would have the time to gather some [information] for me? "); + elseif(e.message:findi("information")) then + e.self:Say("Even better! Well, it has been some time since the Tesch Val gnolls moved in on the Split Paw. That being said, we still know little to nothing of their origins. If you can bring me back the four scrolls that our diviners speak of, I believe I can reward you well."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Did I not ask for FOUR scrolls? What are you? Some kind of idiot?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18504,item2 = 18505,item3 = 18506,item4 = 18507},1,text)) then + -- Verified Live experience + e.self:Say("It's about time. Let's see here. Right.. right.. right. Very good. Right. There you are! I translated the text. Now the scrolls need to be bound. Take these scrolls to Jheron Felkis in Freeport. I believe he is staying in one of the spare rooms in Velith and Bardo's establishment. He will ensure they are bound correctly. Return to me when the binding is complete."); + e.other:QuestReward(e.self,{itemid = 18508,exp = 2500}); -- Item: Tesch Val Compilation + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18510})) then + -- Verified Live experience + e.self:Say("You have returned safely. That is wonderful! Where the heck is my book, child? In my hands, I see. Such a bright little twinkle you are! Well, let me scribble something down on this pad here. There you are. Take this note to Durkis Battlemore in the Butcherblock Mountains. He is a remarkable smith, but more importantly, he owes me for his smithing books."); + e.other:QuestReward(e.self,{itemid = 8910,exp = 12000}); -- Item: A Note To Battlemore + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeynos2/Vegalys_Keldrane.lua b/qeynos2/Vegalys_Keldrane.lua new file mode 100644 index 0000000..b42a1ef --- /dev/null +++ b/qeynos2/Vegalys_Keldrane.lua @@ -0,0 +1,79 @@ +-- BeginFile qeynos2\Vegalys_Keldrane.lua (2051) +-- Quest file for North Qeynos - Vegalys Keldrane: Investigators Badge (Badge #1) + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings to you, citizen. By order of the Council of Qeynos I have been given the duty of apprehending the individuals [responsible] for unleashing this terrible plague upon the people and the lands of Antonius Bayle. The more I look into this matter, the more I come to find that this will be no easy task."); + elseif(e.message:findi("responsible")) then + e.self:Say("The plague unleashed upon the Plains of Karana is the work of the followers of Bertoxxulous. Those responsible belong to group known as the Bloodsabers though there were others involved as well. Some time back, they launched a plot to overthrow Antonius Bayle and our ruling council. Their [plan] failed."); + elseif(e.message:findi("plan")) then + e.self:Say("Their plan was to unleash a plague so deadly and virulent that it would wipe out all life from here to Highpass Hold. They planned to brand themselves and their foul allies with a rune that would have rendered them immune to the effects of this plague. From that point they would have been able to simply walk in, easily defeat the weakened stragglers and declare themselves the rulers of this kingdom by default. But they were [careless]."); + elseif(e.message:findi("careless")) then + e.self:Say("The sudden influx of scoundrels and loathsome individuals was our first tip off. They required a rather enormous number of supplies, materials and manpower to construct the ornate altars, craft and enchant their runed branding irons and supply their armies with the weapons needed for the cleanup work afterward. They needed to rely upon [outside help]."); + elseif(e.message:findi("outside help")) then + e.self:Say("They mostly chose to hire bandits and brigands who are foolishly more concerned with immediate profits than the long-term effects of their actions. But once they knew we were on to them they even started hiring some of the more 'civil' gnolls, if there is such a thing. Gnolls tend to be easy to push around, stupid, and they work very cheaply. They knew their time was short and they were desperate. Choosing to work with untrustworthy, lazy scoundrels caused the whole thing to begin to [unravel], praise Rodcet!"); + elseif(e.message:findi("unravel")) then + e.self:Say("Their workers were careless. Aside from noticing the unsavory element in our city, our citizens began to run across many of the strange items and materials that were being trafficked into our city en masse. It was at that point that the citizens began to [complain] quite loudly about all of this."); + elseif(e.message:findi("complain")) then + e.self:Say("Obviously, they questioned the meaning behind these events and rightfully so. They were frightened much as they are now. I admit, I was remiss in my duties for not noticing it sooner. One of the biggest complainers during this time was a man by the name of [Earron Huntlan], proprieter of the famed Lion's Mane tavern. Though he is just a simple merchant, he did us a great service."); + elseif(e.message:findi("Earron Huntlan")) then + e.self:Say("Earron is quite a character. He gets all kinds of travelers stopping by his inn for a drink or whatever other business. His patrons started telling stories of being mugged and harassed by these loathsome individuals in the very streets of our fair city. Of course, he was concerned. So he became a kind of advocate for this cause, ringing the [alarm] bell as it were. I admit, at first I did not believe the conspiracy. I simply could not believe it was all happening under our nose."); + elseif(e.message:findi("alarm")) then + e.self:Say("Well, he succeeded in whipping the populace into a frenzy. He even got the famous wizard Al'Kabor to help him out by determining the nature of the strange items many of our citizens were finding. Getting that man to do anything not directly related to his research is not an easy thing to accomplish either. Needless to say, at that point I saw the truth and the Prime Healer forgive me for not seeing it sooner. Were it not for the investigations and general outcry of [concerned citizens], we might not be standing here talking today."); + elseif(e.message:findi("concerned citizens")) then + e.self:Say("Yes, it was citizens like you that helped to save Qeynos that day. We uncovered their plot, captured the man who was in charge and put him to death. Of course, the Bloodsabers retaliated and using their incomplete research still managed to unleash the plague we face now. Though devastating in its own right, you must admit it is rather mild compared to what it might have been. I thank you for your interest. Perhaps you would be willing to [help] me?"); + elseif(e.message:findi("help")) then + e.self:Say("Excellent! The more I learn from my investigators the more I find that these Bloodsabers have stretched their tendrils of influence all throughout our beloved city. Nevertheless, we are committed to exposing these fiends once and for all. Perhaps you would like to become an [investigator]?"); + elseif(e.message:findi("individual that unleashed this plague")) then + e.self:Say("A woman named Azibelle Spavin unleashed the plague. She was the bodyguard and some say concubine of Mordavin Telase. He was put to death for his long list of crimes against Qeynos, which included murder, treason and attempted genocide. The plague was apparently her revenge. I sent one of my investigators and one of the best guardsmen we have to try and find her and bring her to justice. They are [still missing]."); + elseif(e.message:findi("still missing")) then + e.self:Say("Kane recommended Guard Helminth personally as one of his best. They must have run into serious trouble. These were two of Qeynos' finest. I am only willing to send those with both strength and intelligence down there to complete this mission and find our people's whereabouts. Give me your Researcher's Badge should you wish to accept this mission."); + elseif(e.message:findi("investigator")) then + e.self:Say("Very well then, " .. e.other:GetCleanName() .. ". We will not allow just anyone to wear the official Investigator's Badge and please forgive me. . . But it is hard to tell where one's loyalties lie these days. If you are truly [serious] then there is a duty you must perform first to show you are on the side of Antonius Bayle, the council and the good people Qeynos."); + elseif(e.message:findi("serious")) then + e.self:Say("There is a guard by the name of Robbie Shilster that patrols the Northern Plains of Karana. He is allied with our enemies and completely corrupt. He is flagrant in his trafficking of contraband goods. His orders are to guard the great wooden bridge to stave off the insect swarms. But our investigators report that he simply stands to the side and watches as the swarm rolls through. You are to execute this man for his treason and bring me his helm. Then, we will talk."); + elseif(e.message:findi("advance") and e.other:HasItem(18289) == true) then + e.self:Say("At this point, I am mainly in need of loyal and trustworthy investigators. I must first gather information on who these people are and exactly how far their influences stretch. However, once I begin to implement the next phase of this operation, you may be able to assist us once again if you prove to be talented enough. For now, simply continue to observe and report."); + elseif(e.message:findi("advance") and e.other:HasItem(2386) == true) then + e.self:Say("Interested in advancing further are you? Excellent, we are ready to begin the next phase of our operation. We have gathered a great deal of information as a result of the latest series of arrests. We do require [interrogators] that are able to pry the information we require out those less than willing to talk. Also, Velarte Selire at the Temple of Life is looking for help with his [research]. You may wish to talk with him."); + elseif(e.message:findi("advance") and e.other:HasItem(2583) == true) then + e.self:Say("Interested in helping us further? We continue to gather valuable information. We still require [interrogators] that are able to pry the information we require out those less then willing to talk. Also, Velarte Selire at the Temple of Life is looking for help with his [research] so you may wish to talk with him. Lastly, we now have information we believe may lead us to the [individual that unleashed this plague] in the first place."); + elseif(e.message:findi("interrogators")) then + e.self:Say("If you are interested in joining the ranks of our interrogators and helping Qeynos further as we bring these fiends and murderers to justice, turn in your investigator's Badge and I will give you the briefing document you need. I already know I can trust my investigators, so there is no need to further test you."); + elseif(e.message:findi("unleashed this plague")) then + e.self:Say("The plague was unleashed by a woman named Azibelle Spavin. She was the bodyguard and some say concubine of Mordavin Telase. He was put to death for his long list of crimes against Qeynos which included murder, treason and attempted genocide. The plague is apparently her revenge. I sent one of my investigators and one of the best guardsmen we have to try and find her and bring her to justice. They are [still missing]."); + elseif(e.message:findi("still missing")) then + e.self:Say("Kane recommended Guard Helminth personally as one of his best. They must have run into serious trouble. These were two of Qeynos' finest. I am only willing to send those with both strength and intelligence down there to complete this mission and find our people's whereabouts. Give me your Researcher's Badge should you wish to accept this mission."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2173},0)) then -- Cracked Corrupt Guard Helm + e.self:Say("Thank you for bringing this person to justice. Please read this manual very, VERY carefully. Commit it to memory. We do everything strictly by the book. We are a people of law and order and I simply won't tolerate a breach of protocol. Investigators are expected to accurately report findings, are authorized to issue warrants and to notarize official documents for all lands under the jurisdiction of Antonius Bayle and the council. I sincerely hope you can earn your Investigator's Badge."); + e.other:Faction(e.self,219,1,0); -- Antonius Bayle + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:Faction(e.self,304,-1,0); -- Ring of Scale + e.other:Faction(e.self,273,-1,0); -- Kane Bayle + e.other:Faction(e.self,291,1,0); -- Merchants of Qeynos + e.other:QuestReward(e.self,0,0,0,0,18289,2000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 2386},0)) then -- Investigator's Badge + e.self:Say("Very well, here is the briefing document. Please read it very carefully. I wish you luck friend, this mission could prove to be dangerous."); + e.other:QuestReward(e.self,0,0,0,0,18292,2000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 2583},0)) then -- Researcher's Badge + e.self:Say("Here is my personal seal. Go to the sewers and locate my investigator and show him this seal if he yet lives. Find out what happened to he and guard Helminth. Then if at all possible, complete this operation by finding Azibelle Spavin and execute her. Bring me her head and return me my seal and you shall be rewarded."); + e.other:QuestReward(e.self,0,0,0,0,2694,2000); -- Seal of Vegalys + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 2694,item2 = 2392})) then -- Seal of Vegalys and Head of Azibelle Spavin + e.self:Say("Good work " .. e.other:GetCleanName() .. "! So Guard Helminth was corrupt? So crafty are these black hearted souls that they can fool even the righteous Kane Bayle himself! I'm sure he will be saddened to hear of this. I too am saddenned by the loss of one of my best investigators. At least we've served justice this day by sending Azibelle Spavin to her dark master. May she rot with her god. Take this Badge of Honor and wear it with pride and distinction."); + e.other:Faction(e.self,219,5); -- Antonius Bayle + e.other:Faction(e.self,262,5); -- Guards of Qeynos + e.other:Faction(e.self,304,-5); -- Ring of Scale + e.other:Faction(e.self,273,-5); -- Kane Bayle + e.other:Faction(e.self,291,5); -- Merchants of Qeynos + e.other:QuestReward(e.self,0,0,0,0,2388,2000); -- Qeynos Badge of Honor + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- EndFile qeynos2\Vegalys_Keldrane.lua (2051) diff --git a/qeynos2/Whysia_Flock.lua b/qeynos2/Whysia_Flock.lua new file mode 100644 index 0000000..32ee84f --- /dev/null +++ b/qeynos2/Whysia_Flock.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good evening, " .. e.other:GetCleanName() .. ". Feel free to take your time browsing. The temple shop is open night and day for your convenience. Most clerics need access to their [scroll strongbox] at all times."); + elseif(e.message:findi("scroll strongbox")) then + if(e.other:GetFaction(e.self) > 5) then -- must be at least indifferent + e.self:Say("Your mere presence disgusts me. Please remove yourself from my sight. Until you change yourself and your ways, you are unwelcome in the Temple of Life."); + else + e.self:Say("The scroll strongboxes are kept here. They are used by the temple clerics to hold their valuable scrolls. I tend to the 30 and 40 numbered boxes and [Tyokan] deals with the 20s. Presently all are taken and the waiting list is quite long. If you are here to turn in your key, then please do so. I shall get your scroll for you."); + end + elseif(e.message:findi("tyokan")) then + e.self:Say("Tyokan Mekase is the day merchant here at the temple shop. He usually arrives around eight in the morning or so."); + elseif(e.message:findi("recharge the Shining Star of Life")) then + e.self:Say("Are you interested in recharging your Shining Star of Life? I can do it for you, but I require the Shining Star of Life and 20 gold."); + end +end + +function event_trade(e) + + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6356, gold=20})) then -- Shining Star of Light + e.self:Say("Here you are, then. May the power of the Prime Healer guide you through life and keep you healthy."); + e.other:QuestReward(e.self,0,0,0,0,6356); -- Note this quest is superficial because the shining star has no charges + end + item_lib.return_items(e.self, e.other, e.trade) + +end \ No newline at end of file diff --git a/qeynos2/Zannsin_Resdinet.lua b/qeynos2/Zannsin_Resdinet.lua new file mode 100644 index 0000000..c6265f6 --- /dev/null +++ b/qeynos2/Zannsin_Resdinet.lua @@ -0,0 +1,60 @@ +function event_waypoint_arrive(e) + if(e.wp == 10) then + e.self:Say("Hey Hanns.. Have you gotten word from Prak about the spy in Carson's guards?"); + eq.signal(2074,1); -- NPC: Hanns_Krieghor + end +end + +function event_signal(e) + if(e.signal == 1 and e.self:GetX() == 163 and e.self:GetY() == 144) then + e.self:Say("Yeah, whatever, Knarg. If I were you, I wouldn't mess around with [Renux]. She's in tight with [Hanns], and you know how he is."); + elseif(e.signal == 2) then + e.self:Say("[Rujahn] Tahslek, huh? I've never heard of him, but those bandits seem to have a new leader every month or so."); + elseif(e.signal == 3) then + e.self:Say("I'll send one of our best men to Highpass and eliminate [Rujahn]'s spy."); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey.. My name's Zannsin, but you can call me [Zan]."); + elseif(e.message:findi("zan")) then + e.self:Say("That's what they call me. Now quit bugging me, I have work to do."); + elseif(e.message:findi("renux")) then + e.self:Say("She is second in command around here. She and [Hanns] go way back, from what I hear... Renux is probably the only person Hanns trusts."); + elseif(e.message:findi("hanns")) then + e.self:Say("Hanns, he runs things around here. Years ago, Hanns took over Ghil's old ring and started up the Circle of Unseen Hands. The Circle quickly took any market opposition out of Qeynos. We currently have connections in Erudin, Highpass and even Freeport."); + elseif(e.message:findi("prak")) then + e.self:Say("Prak owns a small casino out in Highpass. He helps us keep tabs on what Carson and his men are up to."); + elseif(e.message:findi("knargon")) then + e.self:Say("That kid's just looking for trouble. He better get it together and start proving that he's worth something."); + elseif(e.message:findi("kane")) then + e.self:Say("You sure are nosey... [Crow] will tell you everything you need to know about Kane."); + elseif(e.message:findi("crow")) then + e.self:Say("Crow owns the bar upstairs...let's just say he's really close friends with [Hanns], so do whatever he asks you...got it?"); + elseif(e.message:findi("rujahn")) then + if(e.other:GetFaction(e.self) < 4) then + e.self:Say("Hmm, I see. Maybe you can help us out with this, " .. e.other:GetCleanName() .. ", huh? I think it'd be a perfect opportunity for you to prove just how valuable you are to our little organization. Take this letter to Prak at Golden Rooster in Highpass, and see what you can do to help him out."); + e.other:SummonCursorItem(18795); -- Item: Letter for Prak + else + e.self:Say("The Circle has recognized your deeds and contributions, but I think you need to prove your worth to us a little more."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18028})) then + e.self:Say("Great work, " .. e.other:GetCleanName() .. "... The Circle is very pleased with your performance of late, and as a small reward for our more trusted members, I give you this... the cloak of the Unseen Hands. It's good to know that we can count on you to get the job done... here, " .. e.other:GetCleanName() .. ", go relax and have some wine, on me."); + e.other:Faction(e.self,223,125,0); -- Circle of Unseen Hands + e.other:Faction(e.self,291,-18,0); -- Merchants of Qeynos + e.other:Faction(e.self,230,18,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,262,-18,0); -- Guards of Qeynos + e.other:Faction(e.self,273,12,0); -- Kane Bayle + e.other:QuestReward(e.self,0,6,3,2,1048,10000); -- Item: Black Leather Cloak + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:qeynos2 ID:2077 -- Zannsin_Resdinet \ No newline at end of file diff --git a/qeynos2/Ziska_Ironforge.lua b/qeynos2/Ziska_Ironforge.lua new file mode 100644 index 0000000..25a89dc --- /dev/null +++ b/qeynos2/Ziska_Ironforge.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to our home of the finest jewelers in all of Norrath."); + elseif(e.message:findi("Tayla")) then + e.self:Say("I know nothing."); + end +end diff --git a/qeynos2/a_sewer_rat.lua b/qeynos2/a_sewer_rat.lua new file mode 100644 index 0000000..18e8854 --- /dev/null +++ b/qeynos2/a_sewer_rat.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("squeaks as it wanders."); + end + end +end \ No newline at end of file diff --git a/qeynos2/encounters/research.lua b/qeynos2/encounters/research.lua new file mode 100644 index 0000000..0100e71 --- /dev/null +++ b/qeynos2/encounters/research.lua @@ -0,0 +1,325 @@ +---- Quest:Researcher's Badge (Badge #3) +-- 1 = Started Badge Quest #3 (Completed Quest #2 and turned in badge) +-- 2 = Handed in Research Briefing to start Enchanted Rat Experiment +-- 3 = Successfully completed Experiment (Badge Complete) + +local jars = 0; +local spawner = 2000; -- NPC control script ID +local diseased = 2001 --diseased rat +local healthy = 2009; --healthy rat +local empty = 2019; --empty tile +local enchanted = 2010; -- healthy rat (enchanted) + +local game1 = { --ordered from left to right 10 x 10 square + AD = {healthy, -270, -180, 1, 0}, --x,y,z,h + AC = {empty, -260, -180, 1, 0}, + AB = {empty, -250, -180, 1, 0}, + AA = {healthy, -240, -180, 1, 0}, + BD = {empty, -270, -190, 1, 0}, + BC = {diseased,-260, -190, 1, 0}, + BB = {diseased, -250, -190, 1, 0}, + BA = {diseased, -240, -190, 1, 0}, + CD = {diseased, -270, -200, 1, 0}, + CC = {empty, -260, -200, 1, 0}, + CB = {diseased, -250, -200, 1, 0}, + CA = {empty, -240, -200, 1, 0}, + DD = {healthy, -270, -210, 1, 0}, + DC = {empty, -260, -210, 1, 0}, + DB = {empty, -250, -210, 1, 0}, + DA = {healthy, -240, -210, 1, 0} +} + +local game2 = { --ordered from left to right 10 x 10 square + AD = {empty, -270, -180, 1, 0}, --x,y,z,h + AC = {empty, -260, -180, 1, 0}, + AB = {healthy, -250, -180, 1, 0}, + AA = {empty, -240, -180, 1, 0}, + BD = {empty, -270, -190, 1, 0}, + BC = {empty,-260, -190, 1, 0}, + BB = {diseased, -250, -190, 1, 0}, + BA = {diseased, -240, -190, 1, 0}, + CD = {healthy, -270, -200, 1, 0}, + CC = {diseased, -260, -200, 1, 0}, + CB = {empty, -250, -200, 1, 0}, + CA = {diseased, -240, -200, 1, 0}, + DD = {healthy, -270, -210, 1, 0}, + DC = {empty, -260, -210, 1, 0}, + DB = {diseased, -250, -210, 1, 0}, + DA = {healthy, -240, -210, 1, 0} +} + +local game3 = { --ordered from left to right 10 x 10 square + AD = {healthy, -270, -180, 1, 0}, --x,y,z,h + AC = {empty, -260, -180, 1, 0}, + AB = {empty, -250, -180, 1, 0}, + AA = {healthy, -240, -180, 1, 0}, + BD = {empty, -270, -190, 1, 0}, + BC = {diseased,-260, -190, 1, 0}, + BB = {empty, -250, -190, 1, 0}, + BA = {diseased, -240, -190, 1, 0}, + CD = {diseased, -270, -200, 1, 0}, + CC = {diseased, -260, -200, 1, 0}, + CB = {diseased, -250, -200, 1, 0}, + CA = {empty, -240, -200, 1, 0}, + DD = {healthy, -270, -210, 1, 0}, + DC = {empty, -260, -210, 1, 0}, + DB = {empty, -250, -210, 1, 0}, + DA = {healthy, -240, -210, 1, 0} +} + +local game4 = { --ordered from left to right 10 x 10 square + AD = {healthy, -270, -180, 1, 0}, --x,y,z,h + AC = {empty, -260, -180, 1, 0}, + AB = {empty, -250, -180, 1, 0}, + AA = {empty, -240, -180, 1, 0}, + BD = {diseased, -270, -190, 1, 0}, + BC = {empty,-260, -190, 1, 0}, + BB = {diseased, -250, -190, 1, 0}, + BA = {empty, -240, -190, 1, 0}, + CD = {diseased, -270, -200, 1, 0}, + CC = {empty, -260, -200, 1, 0}, + CB = {diseased, -250, -200, 1, 0}, + CA = {empty, -240, -200, 1, 0}, + DD = {empty, -270, -210, 1, 0}, + DC = {diseased, -260, -210, 1, 0}, + DB = {diseased, -250, -210, 1, 0}, + DA = {empty, -240, -210, 1, 0} +} + +local game5 = { --ordered from left to right 10 x 10 square + AD = {empty, -270, -180, 1, 0}, --x,y,z,h + AC = {empty, -260, -180, 1, 0}, + AB = {empty, -250, -180, 1, 0}, + AA = {empty, -240, -180, 1, 0}, + BD = {empty, -270, -190, 1, 0}, + BC = {diseased,-260, -190, 1, 0}, + BB = {diseased, -250, -190, 1, 0}, + BA = {diseased, -240, -190, 1, 0}, + CD = {empty, -270, -200, 1, 0}, + CC = {empty, -260, -200, 1, 0}, + CB = {empty, -250, -200, 1, 0}, + CA = {diseased, -240, -200, 1, 0}, + DD = {healthy, -270, -210, 1, 0}, + DC = {diseased, -260, -210, 1, 0}, + DB = {diseased, -250, -210, 1, 0}, + DA = {empty, -240, -210, 1, 0} +} + + + +function VelarteSay(e) + if(e.message:findi("hail")) then + e.self:Say("Hello " .. e.other:GetName() .. ". Antonius Bayle and the council have ordered a full investigation of these folks that call themselves the Bloodsabers. I hear his plan is to eventually round up every member of this strange disease worshipping cult and bring them in to answer for their terrible crimes against our city and people. Vegalys Keldrane is heading up the investigation. "); + elseif(e.message:findi("research")) then + e.self:Say("We are currently in the process of conducting research into viable ways to bring an end to this terrible plague. This suffering has gone on long enough. Being a researcher doesn't take strength or brute force, though those qualities do sometimes help. Being a researcher takes intelligence first and foremost. No offense, but not everyone has that quality. This will be no easy task. Are you still [interested] in helping us with our research? "); + elseif(e.message:findi("interested")) then + e.self:Say("Still interested? Very well then " .. e.other:GetName() .. ", you look rather intelligent. As a show of your commitment to this task, please turn in your Interrogator's Badge"); + elseif(e.message:findi("problem")) then + e.self:Say("Unfortunately, those vile followers of the Plague Bringer are still attempting to foul up our plans. Several our [test animals] have been stolen from us by a gnome, a member of the Dark Reflection. These animals are very important to our research, as the briefing describes."); + elseif(e.message:findi("test animals")) then + e.self:Say("These animals were enchanted with a sort of anti-disease aura. It sounds crazy but we thought that perhaps we could use a sort of 'anti-epidemic' to spread a cure to this disease. However, this aura is as of yet imperfect and also quite [volatile]. We had hoped to use rats to spread the cure, much in the same way they often spread disease."); + elseif(e.message:findi("volatile")) then + e.self:Say("Yes, the enchantment we placed on the rodents does not last long at all. It disperses its curing magic almost instantly. We fashioned several containers at great expense and they have the ability to preserve an enchantment for long periods of time. After enchanting a rat we [place them in the container] until we are ready to conduct our tests."); + elseif(e.message:findi("place them in the container")) then + e.self:Say("Oh, I assure you it is completely humane and the rats do seem to enjoy prolonged exposure to the enchantment while in the container. In fact, it is all we can do to get them out of the containers once we put them in! In any case, those containers are dreadfully expensive to make and those rats. . . Well, we have begun to become sort of attached to them. Please find this [gnome]."); + elseif(e.message:findi("gnome")) then + e.self:Say("Her name is Oobnopterbevny Biddilets. She was last seen high tailing it across the Plains of Karana. She infiltrated our temple and stole the containers that had our beloved rodents, which were already enchanted and prepared for our next round of tests. I shudder to think of what this monster may be doing to those poor animals. Anyway, retrieve them at any cost. You will need them for the [test] you will be conducting."); + elseif(e.message:findi("test")) then + e.self:Say("The briefing explains how the test is to be conducted but first you need to find the test animals. Get the rodents first from that gnome. Then give me your Researcher's Briefing and we will start the test. Release all three rodents as directed then give me the three Empty Enchanted Jars. If you were able to cure all of the diseased rodents by properly using our enchanted rodents, we will consider this test a success and you shall be rewarded with the Researchers Badge."); + end +end + +function VelarteTrade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2387},0)) then -- Interrogators Badge + e.self:Say("It seems Vegalys trusts you, so I guess I can trust you as well. Take this briefing. It explains the current state of our research and it explains the test you will be conducting. If you can conduct the test successfully, the Temple of Life shall be in your debt and we shall use the findings to continue our work. However, we have a [problem] we need assistance with first."); + e.other:QuestReward(e.self,0,0,0,0,18295,1000); -- Research Briefing + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18295},0)) then -- starts event when Research Briefing handed in + eq.spawn2(spawner,0,0,-225,-236,3,0) -- spawns game control NPC script + e.self:Say("Well done " .. e.other:GetName() .. "! Now you must recall what you learned in the research briefing to successfully complete the experiment. Time is of the essence!"); + eq.unique_spawn(2022,0,0,e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + jars = 0; + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function Velarte2Trade(e) + local item_lib = require("items"); + + if(jars == 3 and item_lib.check_turn_in(e.self, e.trade, {item1 = 2587, item2 = 2588 , item3 = 2589},0)) then -- many checks to confirm event is a sucess! + if(not eq.get_entity_list():IsMobSpawnedByNpcTypeID(2001)) then + e.self:Say("You did it! You have proven you have the intelligence required and you may wear this Researcher's Badge with pride! Thank you for returning the jars."); + e.other:Faction(e.self,341,5); -- Priest of Life + e.other:Faction(e.self,280,1); -- Knight of Thunder + e.other:Faction(e.self,262,2); -- Guards of Qeynos + e.other:Faction(e.self,221,-1); -- Bloodsabers + e.other:Faction(e.self,219,1); -- Antonius Bayle + e.other:QuestReward(e.self,0,0,0,0,2583,10000); -- Researcher's Badge + else + e.self:Say("How unfornate. It appears as though the test failed. I'm very sorry. Take these coins for your time at least."); + e.other:Faction(e.self,341,5); -- Priest of Life + e.other:Faction(e.self,280,1); -- Knight of Thunder + e.other:Faction(e.self,262,2); -- Guards of Qeynos + e.other:Faction(e.self,221,-1); -- Bloodsabers + e.other:Faction(e.self,219,1); -- Antonius Bayle + e.other:QuestReward(e.self,math.random(5),math.random(5),math.random(5),math.random(5),0,1000); + end + jars = 0; + ClearEvent(); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function SpawnerSpawn(e) + spawnTiles(eq.ChooseRandom(game1, game2, game3, game4, game5)); + eq.set_timer("game_over", 1080000); -- game should allow for 18 minutes to complete or will otherwise reset/depop +end + +function SpawnerTimer(e) + if e.timer == "game_over" then + eq.depop_with_timer(2022); -- depop Velarte Selire + jars = 0; + ClearEvent(); + end +end + +function TileTrade(e) + local item_lib = require("items"); + + if(jars < 4 and item_lib.check_turn_in(e.self, e.trade, {item1 = 2584})) then + e.other:QuestReward(e.self,{itemid = 2587}); + eq.spawn2(enchanted, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- spawn enchanted rat + jars = jars + 1; + eq.depop(); --depop tile + elseif(jars < 4 and item_lib.check_turn_in(e.self, e.trade, {item1 = 2585})) then + e.other:QuestReward(e.self,{itemid = 2588}); + eq.spawn2(enchanted, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- spawn enchanted rat + jars = jars + 1; + eq.depop(); --depop tile + elseif(jars < 4 and item_lib.check_turn_in(e.self, e.trade, {item1 = 2586})) then + e.other:QuestReward(e.self,{itemid = 2589}); + eq.spawn2(enchanted, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- spawn enchanted rat + jars = jars + 1; + eq.depop(); --depop tile + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function EnchantedSpawn(e) + eq.set_timer("ench", 1000); +end + +function Enchantedtimer(e) + if(e.timer == "ench") then + eq.stop_timer("ench"); + -- checks for NPC in area + local x = e.self:GetX(); + local y = e.self:GetY(); + local z = e.self:GetZ(); + + e.self:Emote("scurries happily out of the jar"); + + local npc_list = eq.get_entity_list():GetNPCList(); + local minNorth = nil; --heading to target 128 + local minSouth = nil; --heading to target 256 + local minWest = nil; --heading to target 192 + local minEast = nil; --heading to target 64 + + if(npc_list ~= nil) then -- first loop to establish minimum distance to healthy rats + for npc in npc_list.entries do + if (npc:GetNPCTypeID() == healthy) then + if(npc.valid) then + if (npc:CalculateHeadingToTarget(x,y) == 128) then --Checks north of tile + if(minNorth == nil) then + minNorth = npc:CalculateDistance(x,y,z); + elseif(npc:CalculateDistance(x,y,z) < minNorth) then + minNorth = npc:CalculateDistance(x,y,z); + end + end + if(npc:CalculateHeadingToTarget(x,y) == 256) then --Checks south of tile + if(minSouth == nil) then + minSouth = npc:CalculateDistance(x,y,z); + elseif(npc:CalculateDistance(x,y,z) < minSouth) then + minSouth = npc:CalculateDistance(x,y,z); + end + end + if(npc:CalculateHeadingToTarget(x,y) == 192) then --Checks west of tile + if(minWest == nil) then + minWest = npc:CalculateDistance(x,y,z); + elseif(npc:CalculateDistance(x,y,z) < minWest) then + minWest = npc:CalculateDistance(x,y,z); + end + end + if(npc:CalculateHeadingToTarget(x,y) > 62 and npc:CalculateHeadingToTarget(x,y) < 66) then --Checks east of tile + if(minEast == nil) then + minEast = npc:CalculateDistance(x,y,z); + elseif(npc:CalculateDistance(x,y,z) < minEast) then + minEast = npc:CalculateDistance(x,y,z); + end + end + end + end + end + end + + if(npc_list ~= nil) then --second loop to use minimum values to determine which diseased rats can be cured in all four directions + for npc in npc_list.entries do + if (npc:GetNPCTypeID() == diseased) then + if(npc.valid) then + if(npc:CalculateHeadingToTarget(x,y) == 128) then --Checks north of tile + if (minNorth ~= nil and npc:CalculateDistance(x,y,z) < minNorth) then + eq.spawn2(healthy,0,0,npc:GetX(),npc:GetY(),npc:GetZ(),0); --spawns healthy rat + npc:Depop(); --depop diseased rat + end + elseif(npc:CalculateHeadingToTarget(x,y) == 256) then --Checks south of tile + if (minSouth ~= nil and npc:CalculateDistance(x,y,z) < minSouth) then + eq.spawn2(healthy,0,0,npc:GetX(),npc:GetY(),npc:GetZ(),0); --spawns healthy rat + npc:Depop(); --depop diseased rat + end + elseif(npc:CalculateHeadingToTarget(x,y) == 192) then --Checks west of tile + if (minWest ~= nil and npc:CalculateDistance(x,y,z) < minWest) then + eq.spawn2(healthy,0,0,npc:GetX(),npc:GetY(),npc:GetZ(),0); --spawns healthy rat + npc:Depop(); --depop diseased rat + end + elseif(npc:CalculateHeadingToTarget(x,y) > 62 and npc:CalculateHeadingToTarget(x,y) < 66) then --Checks east of tile + if (minEast ~= nil and npc:CalculateDistance(x,y,z) < minEast) then + eq.spawn2(healthy,0,0,npc:GetX(),npc:GetY(),npc:GetZ(),0); --spawns healthy rat + npc:Depop(); --depop diseased rat + end + end + end + end + end + end + eq.spawn2(healthy, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- spawn healthy rat + eq.depop(); + end +end + +function spawnTiles(game) + for key,tiles in pairs(game) do + local mob = eq.spawn2(tiles[1], 0, 0, tiles[2], tiles[3], tiles[4], tiles[5]); + end +end + +function ClearEvent() + eq.depop_all(diseased); + eq.depop_all(healthy); + eq.depop_all(empty); + eq.depop_all(enchanted); + eq.depop(spawner); +end + +function event_encounter_load(e) + eq.register_npc_event("research", Event.say, 2052, VelarteSay); + eq.register_npc_event("research", Event.trade, 2052, VelarteTrade); + eq.register_npc_event("research", Event.trade, 2022, Velarte2Trade); + eq.register_npc_event("research", Event.spawn, 2000, SpawnerSpawn); + eq.register_npc_event("research", Event.timer, 2000, SpawnerTimer); + eq.register_npc_event("research", Event.trade, 2019, TileTrade); + eq.register_npc_event("research", Event.spawn, 2010, EnchantedSpawn); + eq.register_npc_event("research", Event.timer, 2010, Enchantedtimer); +end diff --git a/qeynos2/script_init.lua b/qeynos2/script_init.lua new file mode 100644 index 0000000..43d5f61 --- /dev/null +++ b/qeynos2/script_init.lua @@ -0,0 +1,2 @@ +eq.load_encounter("research"); + diff --git a/qeytoqrg/#Apprentice_of_Saxuus.lua b/qeytoqrg/#Apprentice_of_Saxuus.lua new file mode 100644 index 0000000..d7a3835 --- /dev/null +++ b/qeytoqrg/#Apprentice_of_Saxuus.lua @@ -0,0 +1,27 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello " .. e.other:GetCleanName() .. ", nice to meet you. I just came out to run some [errands]."); + elseif(e.message:findi("errands")) then + e.self:Say("Mostly preparations, meeting with delegates from Mr. Bayle, and from Surefall to make sure all [goes well]."); + elseif(e.message:findi("goes well")) then + e.self:Say("Oh my! You haven't heard? Well that is a shame, it's big [news]. I would have imagined that more people would have been informed."); + elseif(e.message:findi("news")) then + e.self:Say("The big news! The powers that be are allowing access to [Jaggedpine] again. There are dangers involved in opening the portal, but it was essential."); + elseif(e.message:findi("jaggedpine")) then + e.self:Say("Jaggedpine is the buffer between the Unkempt Forest, and Surefall. It was closed many years ago by Antonius III to protect the outside world from the oft aggressive residents of the [Unkempt] Forest."); + elseif(e.message:findi("Unkempt")) then + e.self:Say("The Unkempt are a radical sect of druids and rangers. They are protective of their lands, so much so that they can be dangerous to all that don't follow their ways. Honestly I believe they mean well, however they are so extreme in their convictions that I hope they remained locked away. Even with all that in mind, we are left with very few options, allowing [access] to Jaggedpine is the best of them."); + elseif(e.message:findi("access")) then + e.self:Say("Well, when Jaggedpine was sealed a few of its original denizens chose to stay there. There is still a small colony. Recently, the gnolls of Blackburrow managed to penetrate the seal protecting Jaggedpine. Lord Antonious has agreed to allow access to Jaggedpine as to better protect those that are living there."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 0 or e.wp == 1 or e.wp == 2 or e.wp == 3 or e.wp == 4 or e.wp == 5 or e.wp == 6 or e.wp == 7 or e.wp ==8 or e.wp == 9 or e.wp == 10) then + e.self:Say("Nice day for a walk, wouldn't you say?"); + end +end \ No newline at end of file diff --git a/qeytoqrg/Axe_Broadsmith.lua b/qeytoqrg/Axe_Broadsmith.lua new file mode 100644 index 0000000..f14b360 --- /dev/null +++ b/qeytoqrg/Axe_Broadsmith.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. The fishing is sparse here. You would fare better at [Lake Rathe]."); + elseif(e.message:findi("lake rathe")) then + e.self:Say("Beyond the Plains of Karana can be found a pass to Lake Rathe. I have heard stories of a giant water beast and underwater cities. I wish I knew how to swim."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18893})) then -- A Sealed Letter + e.self:Say("So you are the new warrior. Let us test your skill. Across the pond is a skeleton. See him? Engage him in combat. He awaits. Return his skull to me and I shall call you a Steel Warrior. Be quick. He will dissipate soon."); + eq.unique_spawn(4192,0,0,1055,3858,-19); -- a_strange_skeleton + -- Confirmed Live Factions + e.other:Faction(e.self,311,2,0); -- Steel Warriors + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:Faction(e.self,230,-1,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,330,-1,0); -- Freeport Militia + e.other:Faction(e.self,281,1,0); -- Knights of Truth + e.other:QuestReward(e.self,0,0,0,0,0,500); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13397})) then -- Skull + e.self:Say("So you have returned. Victory is yours, young Steel Warrior. Take this letter of recommendation to Brin Stolunger at the arena in Qeynos. You have passed."); + -- Confirmed Live Factions + e.other:Faction(e.self,311,5,0); -- Steel Warriors + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:Faction(e.self,230,-1,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,330,-1,0); -- Freeport Militia + e.other:Faction(e.self,281,1,0); -- Knights of Truth + e.other:QuestReward(e.self,math.random(10),0,0,0,18895,750); -- Letter of Recommendation + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeytoqrg/Baobob_Miller.lua b/qeytoqrg/Baobob_Miller.lua new file mode 100644 index 0000000..70ac0d2 --- /dev/null +++ b/qeytoqrg/Baobob_Miller.lua @@ -0,0 +1,69 @@ +function event_waypoint_arrive(e) + if(e.wp == 3) then + e.self:Say("Greetings, sister! I just wanted to make sure no harm had befallen you."); + eq.signal(4052,5); -- NPC: Chanda_Miller + e.self:SetRunning(true); + elseif(e.wp == 4) then + e.self:SetRunning(false); + elseif(e.wp == 7) then + eq.set_anim(4055,1); + end +end + +function event_signal(e) + e.self:Say("But, you will always be my little sister. Fare well, Chanda! See you soon!"); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, there. My name is Baobob Miller. My [sister] and I are the best tanners in all of Norath. Wolves are my specialty. A nice wolf skin [garment] would be the perfect accessory to your stylish ensemble."); + elseif(e.message:findi("sister")) then + e.self:Say("My little sister Chanda is the second best tanner around!. Seriously though, she is a very skilled artisan and people travel far and wide to acquire one of her fine bear skin cloaks. I am proud of her. She doesn't really like to meet new people, but if you tell her [Baobob sent you], I am sure she can help get you into some nice bear skin boots."); + elseif(e.message:findi("garment")) then + e.self:Say("I make the finest wolf skin [boots],[cloaks] and [belts] in all of Antonica."); + elseif(e.message:findi("boot")) then + e.self:Say("If you can bring me a wolf skin of medium quality and pay me a fee of say.. hmmmm.. for you.. 15 gold pieces, I think I can make you a pair of boots that will make all of Qeynos envy you."); + elseif(e.message:findi("cloak")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Yes! One of my wold skin cloaks would go very well with your.. eeerr.. style.. Ahem! Let's see.. I think I can get you into one for 21 gold pieces, but, you have to provide the skin, and I make my cloaks with only the highest quality wolf skins."); + else + e.self:Say("Hmm.. I really would not feel comfortable helping you in that way. You need to prove yourself to me by aiding my friends and family in the Plains of Karana before I will help you."); + end + elseif(e.message:findi("belt")) then + e.self:Say("Belts are far more forgiving than cloaks or boots. A lesser quality pelt and 5 gold pieces would get you a nice wolf-hide belt."); + elseif(e.message:findi("talym")) then + e.self:Say("Talym Shoontar. He is a fine hunter. He sure can skin a bear faster than any man alive. Last I heard, he was hunting in the Plains of Karana."); + elseif(e.message:findi("mammoth")) then + e.self:Say("Mammoth! That beast is the oldest living bear I have ever heard of. Ten feet tall and full of muscles. If you ever find yourself in the caves of Surefall Glade, make sure to hunt that beast down and send him to his death. We Millers would pay a lot of platinum for a hide like that."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Good work! Now have you the rest of what I require?"; + + -- Confirmed Live Faction and Experience + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13755, gold = 21},1,text)) then + e.self:Say("Here ya go! That should keep ya nice and warm! Be sure to tell all the friends you're going to impress where you got this fine cloak. Although I am sure they probably have heard of me already."); + e.other:Faction(e.self,345,2,0); -- Karana Residents + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:Faction(e.self,341,1,0); -- Priests of Life + e.other:Faction(e.self,280,1,0); -- Priests of Life + e.other:QuestReward(e.self,{itemid = 2905,exp = 50}); -- Item: Wolf-hide Cape + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13754, gold = 15},1,text)) then + e.self:Say("They are exquisite, if I do say so myself. Hope they fit."); + e.other:Faction(e.self,345,2,0); -- Karana Residents + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:Faction(e.self,341,1,0); -- Priests of Life + e.other:Faction(e.self,280,1,0); -- Priests of Life + e.other:QuestReward(e.self,{itemid = 2906,exp = 50}); -- Item: Wolf-hide Boots + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13753, gold = 5},1,text)) then + e.self:Say("I hate working with such low quality hides. They lack the sheen that makes a high quality pelt look so fine! Anyhow, here's your belt."); + e.other:Faction(e.self,345,2,0); -- Karana Residents + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:Faction(e.self,341,1,0); -- Priests of Life + e.other:Faction(e.self,280,1,0); -- Priests of Life + e.other:QuestReward(e.self,{itemid = 2907,exp = 50}); -- Item: Wolf-hide Belt + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeytoqrg/Barn_Bloodstone.lua b/qeytoqrg/Barn_Bloodstone.lua new file mode 100644 index 0000000..9fe386c --- /dev/null +++ b/qeytoqrg/Barn_Bloodstone.lua @@ -0,0 +1,17 @@ +function event_waypoint_arrive(e) + if(e.wp == 1 or e.wp == 6) then + e.self:SetRunning(true); + elseif(e.wp == 4 or e.wp == 7) then + e.self:SetRunning(false); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You seem a little out of place here. You should go back to the nice little village you came from. This place will eat you alive. The [Golden Rooster] is no place for you."); + elseif(e.message:findi("blackburrow stout")) then + e.self:Say("Blackburrow Stout is the finest drink available. It is the nectar of the gods. Well.. nectar of the gnolls at least. I can't wait until they hold another drink special in the Rooster. When I hear that. I am there!"); + elseif(e.message:findi("golden rooster")) then + e.self:Say("The Golden Rooster only happens to be the finest gambling house in Highpass. It is also the only place in these parts that serves [Blackburrow Stout]."); + end +end \ No newline at end of file diff --git a/qeytoqrg/Buzzlin_Bornahm.lua b/qeytoqrg/Buzzlin_Bornahm.lua new file mode 100644 index 0000000..320472b --- /dev/null +++ b/qeytoqrg/Buzzlin_Bornahm.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFaction(e.self) < 6) then + e.self:Say("Ahoy there, swabby! This here side of the world sure is beautiful, ain't it?"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_waypoint_arrive(e) + if(e.wp == 1 or e.wp == 6) then + e.self:SetRunning(true); + elseif(e.wp == 4 or e.wp == 7) then + e.self:SetRunning(false); + end +end diff --git a/qeytoqrg/Chanda_Miller.lua b/qeytoqrg/Chanda_Miller.lua new file mode 100644 index 0000000..aa4a84f --- /dev/null +++ b/qeytoqrg/Chanda_Miller.lua @@ -0,0 +1,72 @@ +function event_waypoint_arrive(e) + if(e.wp == 1) then + eq.set_anim(4052,1); + elseif(e.wp == 5) then + e.self:SetRunning(true); + elseif(e.wp == 9) then + e.self:SetRunning(false); + elseif(e.wp == 12) then + eq.set_anim(4052,1); + end +end + +function event_signal(e) + e.self:Say("I am f.. fff.. fff.. fine, brother. You um.. don't need to worry about me so much. I am a big girl now."); + eq.signal(4055,5); -- NPC: Baobob_Miller +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Um.. I do not know you. Please um.. leave me be."); + elseif(e.message:findi("baobob sent")) then + e.self:Say("Oh.. Hello. My name is Chanda. " .. e.other:GetCleanName() .. " is your name? That's a nice name. My [brother] sent you to talk to me? You must want some bear.. um.. [clothes]."); + elseif(e.message:findi("brother")) then + e.self:Say("umm.. My brother.. Um.. I mean my BROTHER.. He is the finest tanner there is. His name is Baobob and I love him very much."); + elseif(e.message:findi("clothes")) then + e.self:Say("I um.. know how to make.. umm.. [cloaks] and [boots]. Oh yes! and belts! I love to make bear skin belts! Um.. I really like [belts]. My [brother] says I have to start charging more gold for my stuff though.."); + elseif(e.message:findi("cloak")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I.. um.. can make.. um.. a good cloak for you. You have to get me a bear skin of high quality and my brother says I should not make them unless you also give me 21 gold pieces. I used to give them away but [Baobob] got mad at me so I don't do that anymore."); + else + e.self:Say("Hmm.. I really would not feel comfortable helping you in that way. You need to prove yourself to me by aiding my friends and family in the Plains of Karana before I will help you."); + end + elseif(e.message:findi("belt")) then + e.self:Say("Oh, yes, I like making belts! They are easy! All I need is a bear skin and 5 gold pieces. The bear skin doesn't have to be that great but don't bring me a ruined one. The gold was my brother's idea.. sorry."); + elseif(e.message:findi("boot")) then + e.self:Say("I know how to make boots. Um.. I don't like them as much as belts. They are harder to make. You have to get me a medium quality bear skin and give me 15 gold pieces if you want some bear boots. They are really good, though. At least that is what Baobob tells me."); + elseif(e.message:findi("talym")) then + e.self:Say("Talym... umm... He is a good source of hides... He is wanted by the... umm... Protectors of the... um... Pine."); + elseif(e.message:findi("mammoth")) then + e.self:Say("Ooh! Umm. Mammoth! He is a big bear. Bigger than others... He is living in Surefall Glade. Um... Bring me his hide. It would be worth a lot."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Oh.. I see.. But um.. I still need the other thing before I can make anything for you.. sorry."; + + -- Confirmed Live Faction and Experience + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13752, gold = 21},1,text)) then + e.self:Say("Oh, good! I can make you a nice new cloak now. Here. Here. Oh, this.. it is a good one. Nice bear fur. Here you go!"); + e.other:Faction(e.self,345,2,0); -- Karana Residents + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:Faction(e.self,341,1,0); -- Priests of Life + e.other:Faction(e.self,280,1,0); -- Priests of Life + e.other:QuestReward(e.self,{itemid = 2902,exp = 50}); -- Item: Bear-hide Cape + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13751, gold = 15},1,text)) then + e.self:Say("Ohh good.. good! I.. um.. can make.. Oh great. Here you go. I hope you like it. I always um.. try my best. Tell your um.. friends where you got your bear things!"); + e.other:Faction(e.self,345,2,0); -- Karana Residents + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:Faction(e.self,341,1,0); -- Priests of Life + e.other:Faction(e.self,280,1,0); -- Priests of Life + e.other:QuestReward(e.self,{itemid = 2903,exp = 50}); -- Item: Bear-hide Boots + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13750, gold = 5},1,text)) then + e.self:Say("Great. Oh, here, now I can make the.. um.. ok.. here. Yes.. good. I love making bear skin belts. Here you go. I hope you like it."); + e.other:Faction(e.self,345,2,0); -- Karana Residents + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:Faction(e.self,341,1,0); -- Priests of Life + e.other:Faction(e.self,280,1,0); -- Priests of Life + e.other:QuestReward(e.self,{itemid = 2904,exp = 50}); -- Item: Bear-hide Belt + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeytoqrg/Crumpy_Irontoe.lua b/qeytoqrg/Crumpy_Irontoe.lua new file mode 100644 index 0000000..3c7b7a5 --- /dev/null +++ b/qeytoqrg/Crumpy_Irontoe.lua @@ -0,0 +1,13 @@ +function event_waypoint_arrive(e) + if(e.wp == 1 or e.wp == 6) then + e.self:SetRunning(true); + elseif(e.wp == 4 or e.wp == 7) then + e.self:SetRunning(false); + end +end + +function event_say(e) + if (e.message:findi("hail") ) then + e.self:Say("Bug off! Unless you want an Irontoe boot to caress your head?!"); + end +end \ No newline at end of file diff --git a/qeytoqrg/Gnasher_Furgutt.lua b/qeytoqrg/Gnasher_Furgutt.lua new file mode 100644 index 0000000..67d9d3c --- /dev/null +++ b/qeytoqrg/Gnasher_Furgutt.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Who are you? Did McNeal send you? If not, you would do yourself good to leave Gnasher alone. I have friends in high places."); + elseif(e.message:findi("yes")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I don't believe you. Now, leave!"); + else + e.self:Say("I know of you! You leave before Gnasher calls gnoll watchers. You are no friend of gnolls or Gnasher's human friends..."); + end + elseif(e.message:findi("no")) then + e.self:Say("Wrong answer!"); + eq.attack(e.other:GetName()); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18800})) then + e.self:Say("Ah. Good for you! Here you are. Take this to McNeal, but next time there will be no stout if there are no weapons."); + e.other:Faction(e.self,223,5); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,291,-1); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,230,1); -- Faction: Corrupt Qeynos Guards + e.other:Faction(e.self,262,-1); -- Faction: Guards of Qeynos + e.other:Faction(e.self,273,1); -- Faction: Kane Bayle + e.other:QuestReward(e.self,0,0,0,0,13131,200); -- Item: Case of Blackburrow Stout + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeytoqrg/Gornolin.lua b/qeytoqrg/Gornolin.lua new file mode 100644 index 0000000..5b79be4 --- /dev/null +++ b/qeytoqrg/Gornolin.lua @@ -0,0 +1,29 @@ +function event_spawn(e) + eq.set_timer("nosell",1000); + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if(e.timer == "nosell") then + eq.stop_timer("nosell"); + e.self:MerchantCloseShop(); + elseif( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks an item up from the ground and says, 'Hey! Look what I found! Another piece of rubbish for my trailer... Must be my lucky day."); + end + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, my fellow traveler. I am Gornolin Zot, traveling merchant of fine wares. Please. Take a look at what I have to offer."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 1 or e.wp == 6) then + e.self:SetRunning(true); + elseif(e.wp == 4 or e.wp == 7) then + e.self:SetRunning(false); + end +end diff --git a/qeytoqrg/Guard_Bixby.lua b/qeytoqrg/Guard_Bixby.lua new file mode 100644 index 0000000..f38ec89 --- /dev/null +++ b/qeytoqrg/Guard_Bixby.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("blackburrow") or e.message:findi("gnoll")) then + e.self:Say("Blast those dogs! The Sabertooths is what they call themselves around here. They have a nest, or whatever you call it, up there east of Surefall Glade. We can always use help here, keeping those dirty gnolls away from our fine city. Talk to Captain Tillin in South Qeynos and tell him you want to join the fight."); + end +end + diff --git a/qeytoqrg/Guard_Cheslin.lua b/qeytoqrg/Guard_Cheslin.lua new file mode 100644 index 0000000..e4c31ee --- /dev/null +++ b/qeytoqrg/Guard_Cheslin.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, mighty adventurer! I am Guard Cheslin Sydwend and I am here to serve and protect. Feel safe when we Qeynos guards are on watch. We are the best!"); + elseif(e.message:findi("father sent me")) then + e.self:Say("My father has no need to worry and I do not need a baby sitter. I may be in training still, but a Qeynos guard in training is still a formidable opponent. EVIL, BEWARE!! HAIL ANTONIUS BAYLE! "); + elseif(e.message:findi("donation.* temple.* thunder") or e.message:findi("donate.* temple.* thunder")) then + e.self:Say("Of course I shall donate to that esteemed order. Here you are, my good friend. Now run along before you are injured by some nasty creature. By the way, you should speak with my fellow guard, Leopold. He also would donate."); + e.other:SummonCursorItem(13295); -- Item: A Donation + elseif(e.message:findi("drop")) then + e.self:Say("Yes!! I seem to have dropped some of my [Illusion] cards."); + elseif(e.message:findi("illusion")) then + e.self:Say("Oh!! Do you play Illusion, too? I love that game. I have some very rare cards in my deck. I seem to have dropped four of them somewhere during my last patrol. Darn it! They probably blew away the minute I dropped them! I will never find those cards again."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13904,item2 = 13905,item3 = 13906,item4 = 13907})) then + e.self:Say("Oh great! I have all my cards back. Here is a little something for assisting a Qeynos guard. And any time you are in trouble, just call on Cheslin, master swordsman. Take it to my father, Master Chesgard of the Knights of Thunder in Qeynos. No doubt he sent you to follow me on my watch."); + e.other:Faction(e.self,262,20,0); -- Guards of Qeynos + e.other:Faction(e.self,219,3,0); -- Antonius Bayle + e.other:Faction(e.self,230,-3,0); -- Corrupt Qeynos Guards + e.other:Faction(e.self,223,-5,0); -- Circle of Unseen Hands + e.other:Faction(e.self,291,2,0); -- Merchants of Qeynos + e.other:QuestReward(e.self,math.random(9),math.random(9),math.random(2),0,18839,1500); -- Item: A Sealed Letter + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13904}) or item_lib.check_turn_in(e.self, e.trade, {item1 = 13905}) or item_lib.check_turn_in(e.self, e.trade, {item1 = 13906}) or item_lib.check_turn_in(e.self, e.trade, {item1 = 13907})) then + e.self:Say("Wow!! I thought I lost this for good. All together I lost the [illusion] cards: Ebon Lotus, Library of Erudin, Chrono Cyclone and Diamond Vale. Man!! Those are rare cards!") + end + + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + if(e.wp == 1) then + e.self:Say("Hail, fellow guards! I am off to protect the travelers of the hills from evil. I shall return!"); + eq.signal(4142,1); -- NPC: Hefax_Tinmar + eq.signal(4001,1); + elseif(e.wp == 3) then + e.self:Say("Fear not, simple travelers. Cheslin the masterful is here to protect you."); + eq.create_ground_object(13905,xloc,yloc,zloc,0,300000); -- library + e.self:Say("Hey! Did I just drop something?"); + elseif(e.wp == 4) then + e.self:Say("Fear not, simple travelers. Cheslin the masterful is here to protect you."); + eq.create_ground_object(13904,xloc,yloc,zloc,0,300000); -- ebon + e.self:Say("Hey! Did I just drop something?"); + elseif(e.wp == 7) then + e.self:Say("Fear not, simple travelers. Cheslin the masterful is here to protect you."); + eq.create_ground_object(13907,xloc,yloc,zloc,0,300000); -- diamond + e.self:Say("Hey! Did I just drop something?"); + elseif(e.wp == 9) then + e.self:Say("Fear not, simple travelers. Cheslin the masterful is here to protect you."); + eq.create_ground_object(13906,xloc,yloc,zloc,0,300000); -- chrono + e.self:Say("Hey! Did I just drop something?"); + elseif(e.wp == 11) then + e.self:Say("I lost some of my [illusion] playing cards. And they were the rare ones too! Darn it! If anyone finds them, please return them to me."); + end +end diff --git a/qeytoqrg/Guard_Leopold.lua b/qeytoqrg/Guard_Leopold.lua new file mode 100644 index 0000000..719e073 --- /dev/null +++ b/qeytoqrg/Guard_Leopold.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". You had best keep moving. One who stands around too long in Qeynos Hills tends to get surprised by vicious creatures."); + elseif(e.message:findi("donation.* temple.* thunder") or e.message:findi("donate.* temple.* thunder")) then + e.self:Say("Why, yes! I would love to donate to the Temple of Thunder. My father was a brave and noble member of that order. Here you are. You should ask Guard Cheslin also. His father and mine are both members of Thunder. Now, move along!"); + e.other:SummonCursorItem(13294); -- Item: A Donation + elseif(e.message:findi("blackburrow") or e.message:findi("gnoll")) then + e.self:Say("Blast those dogs! The Sabertooths is what they call themselves around here. They have a nest, or whatever you call it, up there east of Surefall Glade. We can always use help here, keeping those dirty gnolls away from our fine city. Talk to Captain Tillin in South Qeynos and tell him you want to join the fight."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 2) then + e.self:DoAnim(29); + end +end diff --git a/qeytoqrg/Guard_Monroe.lua b/qeytoqrg/Guard_Monroe.lua new file mode 100644 index 0000000..51fc33b --- /dev/null +++ b/qeytoqrg/Guard_Monroe.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("blackburrow") or e.message:findi("gnoll")) then + e.self:Say("Blast those dogs! The Sabertooths is what they call themselves around here. They have a nest, or whatever you call it, up there east of Surefall Glade. We can always use help here, keeping those dirty gnolls away from our fine city. Talk to Captain Tillin in South Qeynos and tell him you want to join the fight."); + end +end + +function event_spawn(e) + eq.set_timer("wave",75000); +end + +function event_timer(e) + e.self:DoAnim(29); +end diff --git a/qeytoqrg/Guard_Nash.lua b/qeytoqrg/Guard_Nash.lua new file mode 100644 index 0000000..2dad139 --- /dev/null +++ b/qeytoqrg/Guard_Nash.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("blackburrow") or e.message:findi("gnoll")) then + e.self:Say("Blast those dogs! The Sabertooths is what they call themselves around here. They have a nest, or whatever you call it, up there east of Surefall Glade. We can always use help here, keeping those dirty gnolls away from our fine city. Talk to Captain Tillin in South Qeynos and tell him you want to join the fight."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 1) then + e.self:DoAnim(29); -- wave + end +end diff --git a/qeytoqrg/Guard_Philbin.lua b/qeytoqrg/Guard_Philbin.lua new file mode 100644 index 0000000..f38ec89 --- /dev/null +++ b/qeytoqrg/Guard_Philbin.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("blackburrow") or e.message:findi("gnoll")) then + e.self:Say("Blast those dogs! The Sabertooths is what they call themselves around here. They have a nest, or whatever you call it, up there east of Surefall Glade. We can always use help here, keeping those dirty gnolls away from our fine city. Talk to Captain Tillin in South Qeynos and tell him you want to join the fight."); + end +end + diff --git a/qeytoqrg/Guard_Westyn.lua b/qeytoqrg/Guard_Westyn.lua new file mode 100644 index 0000000..0974013 --- /dev/null +++ b/qeytoqrg/Guard_Westyn.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("blackburrow") or e.message:findi("gnoll")) then + e.self:Say("Blast those dogs! The Sabertooths is what they call themselves around here. They have a nest, or whatever you call it, up there east of Surefall Glade. We can always use help here, keeping those dirty gnolls away from our fine city. Talk to Captain Tillin in South Qeynos and tell him you want to join the fight."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 1 or e.wp == 6) then + e.self:SetRunning(true); + elseif(e.wp == 4 or e.wp == 7) then + e.self:SetRunning(false); + end +end diff --git a/qeytoqrg/Hadden.lua b/qeytoqrg/Hadden.lua new file mode 100644 index 0000000..d6a47ee --- /dev/null +++ b/qeytoqrg/Hadden.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, traveler. I hope you weren't planning on doing any fishing here. They don't seem to be biting much lately. What few fish I do happen to catch, I usually sell to my merchant friends in Qeynos. It ain't much, but it's a living."); + end +end + diff --git a/qeytoqrg/Hefax_Tinmar.lua b/qeytoqrg/Hefax_Tinmar.lua new file mode 100644 index 0000000..f8a83ba --- /dev/null +++ b/qeytoqrg/Hefax_Tinmar.lua @@ -0,0 +1,3 @@ +function event_signal(e) + e.self:Say("Oh, great. I feel safe already."); +end diff --git a/qeytoqrg/Holly_Windstalker.lua b/qeytoqrg/Holly_Windstalker.lua new file mode 100644 index 0000000..f8a7c02 --- /dev/null +++ b/qeytoqrg/Holly_Windstalker.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met, " .. e.other:GetCleanName() .. ". I am Holly Windstalker, Protector of the Pine. What brings you out to the Qeynos Hills? Not hunting, I hope. These stains on my blade are all that is left of the last adventurer I caught harming my bear and wolf friends."); + elseif(e.message:findi("Protector.* Pine")) then + e.self:Say("The Protectors of the Pine are a group of rangers who, along with the [Jaggedpine Treefolk], protect the wild bears and wolves of Surefall Glade and its surroundings."); + elseif(e.message:findi("jaggedpine") or e.message:findi("treefolk")) then + e.self:Say("The Jaggedpine Treefolk are our druid allies from Surefall Glade. They are loyal to the ways of [Tunare], the Mother of All. My partner Cros was one of them. He gave his life in service to the Great Mother and has since left this world to join her."); + elseif(e.message:findi("baobob") or e.message:findi("chanda") or e.message:findi("miller")) then + e.self:Say("Oh, don't you mention that name! Baobob Miller and his sister Chanda have been nothing but trouble since they moved here from the Plains of Karana! They only encourage people to poach out here in the hills where we can't see them. Some even have the nerve to defy the will of Tunare and kill bears in Surefall Glade!"); + elseif(e.message:findi("tunare")) then + e.self:Say("Tunare is the Mother of All. It was she who cultivated the seed of humanity in the ancient soil of Norrath."); + end +end diff --git a/qeytoqrg/Isabella_Cellus.lua b/qeytoqrg/Isabella_Cellus.lua new file mode 100644 index 0000000..868ea07 --- /dev/null +++ b/qeytoqrg/Isabella_Cellus.lua @@ -0,0 +1,13 @@ +function event_waypoint_arrive(e) + if(e.wp == 1 or e.wp == 6) then + e.self:SetRunning(true); + elseif(e.wp == 4 or e.wp == 7) then + e.self:SetRunning(false); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. How nice to meet you, " .. e.other:GetCleanName() .. "!"); + end +end diff --git a/qeytoqrg/Konem_Matse.lua b/qeytoqrg/Konem_Matse.lua new file mode 100644 index 0000000..923d53e --- /dev/null +++ b/qeytoqrg/Konem_Matse.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ah, greetings, young " .. e.other:GetCleanName() .. ", how are you on this fine day? Perfect day for a nice stroll through the hills, if I do say so myself."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 2 or e.wp == 5) then + eq.set_anim(4072,1); + elseif(e.wp == 3) then + eq.set_anim(4072,0); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18921})) then -- Message to Konem + e.self:Say("Oh I see.. Phin's always after me about something. I mean, it's not my fault the order hasn't come in yet. Hey, since I'm so busy right now, why don't you be a friend and take this back to Phin for me, huh?"); + -- Confirmed Live Factions + e.other:Faction(e.self,309,5,0); -- Silent Fist Clan + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:Faction(e.self,361,1,0); -- Ashen Order + e.other:QuestReward(e.self,0,0,0,0,18922,1500); -- Grathin's Invoice + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeytoqrg/Lars_McMannus.lua b/qeytoqrg/Lars_McMannus.lua new file mode 100644 index 0000000..bd23142 --- /dev/null +++ b/qeytoqrg/Lars_McMannus.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. The name's Lars McMannus of Clan McMannus.") + elseif(e.message:findi("halas")) then + e.self:Say("Halas is the mighty city of the barbarians of the North. It lies among the Everfrost Peaks.") + elseif(e.message:findi("frostbite")) then + e.self:Say("Frostbite is our trusty wolf. We found him as a pup.") + elseif(e.message:findi("ulrich")) then + e.self:Say("He is my brother and the oldest of my siblings.") + elseif(e.message:findi("misla")) then + e.self:Say("She is my sister.") + elseif(e.message:findi("einhorst")) then + e.self:Say("He is my father. We hail from Halas.") + elseif(e.message:findi("sera")) then + e.self:Say("She is my sister and the youngest of the clan.") + elseif(e.message:findi("brenzl")) then + e.self:Say("He is my brother and a fine bowyer and net maker.") + elseif(e.message:findi("junth")) then + e.self:Say("He is my brother.") + elseif(e.message:findi("wolves of the north")) then + e.self:Say("The Wolves of the North are the barbarian warriors of Halas. All of us in Clan McMannus are members. Mess with us and you mess with the Wolves of the North.") + end +end + +function event_waypoint_arrive(e) + if(e.wp == 1 or e.wp == 6) then + e.self:SetRunning(true); + elseif(e.wp == 4 or e.wp == 7) then + e.self:SetRunning(false); + end +end diff --git a/qeytoqrg/Marton_Sayer.lua b/qeytoqrg/Marton_Sayer.lua new file mode 100644 index 0000000..2bfc5ba --- /dev/null +++ b/qeytoqrg/Marton_Sayer.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome. Please stock up on provisions, especially if you are headed toward the lair of the vile gnolls. If so, I wish you much luck and many gnoll pelts!! I also have knowledge of a [powerful dog]. I pray you do not encounter him."); + elseif(e.message:findi("powerful dog")) then + e.self:Say("I have encountered a gnoll who spoke the common tongue. He dared to call himself Lord Elgnub. He swore that some day we would cross paths and he would snatch my infant son Joseph from our home. He would stand no chance against me and the mighty [Gnoll Slayer]."); + elseif(e.message:findi("gnoll slayer")) then + e.self:Say("Gnoll Slayer is the mighty longsword which was passed down unto me through generations of Sayers. My days of battle are over, but I can still wield her with ferocity. The only thing more precious would be my son, Joseph Sayer. I would trade Gnoll Slayer only for him to be safe and sound at home."); + elseif(e.message:findi("potential")) then + e.self:Say("The true potential of Gnoll Slayer is an enchantment which was once imbedded into a gnoll's eye which was placed into the hilt of the blade. The spell would help you fight off disease and call forth a wolf to fight beside you. Alas, the gnoll eye was stolen from the blade by a great, one-eyed, white gnoll. Alone with the eye, the only book which explained how to return the enchantment was also stolen. I know not where this gnoll might be. If you can find the journal and the eye, return them with the Gnoll Slayer to me for I have been searching for decades."); + elseif(e.message:findi("joseph") or e.message:findi("son")) then + e.self:Say("You speak of my son, Joseph Sayer. He is but an infant and is safe here with Mira and me... At least, I believe he is."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12204})) then + e.self:Say("Baby Joseph!! Look, Momma!! Baby Joseph has been rescued by this good adventurer!! That evil Lord Elgnub made good on his word and snatched my son from under our noses. You saved the day!! For this you shall wield 'Gnoll Slayer'!! Be aware of its [true potential]."); + e.other:Faction(e.self,291,20); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,223,-4); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,219,3); -- Faction: Antonius Bayle + e.other:Faction(e.self,229,2); -- Faction: Coalition of Tradefolk + e.other:Faction(e.self,262,4); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,5416,500); -- Item: Gnoll Slayer + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 8357,item2 = 8356,item3 = 5416})) then + e.self:Say("The eye and the journal! What a great day! The Gnoll Slayer shall be returned to full strength because of you. Your service to Qeynos will not soon be forgotten."); + e.other:Faction(e.self,291,200,0); -- Faction: Merchants of Qeynos + e.other:Faction(e.self,223,-40,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,219,30,0); -- Faction: Antonius Bayle + e.other:Faction(e.self,229,20,0); -- Faction: Coalition of Tradefolk + e.other:Faction(e.self,262,40,0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,5417,1500); -- Item: Gnoll Slayer + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeytoqrg/Mira_Sayer.lua b/qeytoqrg/Mira_Sayer.lua new file mode 100644 index 0000000..ac053b3 --- /dev/null +++ b/qeytoqrg/Mira_Sayer.lua @@ -0,0 +1,12 @@ +function event_say(e) + + if(e.message:findi("hail")) then + e.self:Say("Welcome " .. e.other:GetCleanName() .. ". What brings you out this way? Be careful, we have had problems with bandits of late. As if the gnolls were not enough."); + elseif(e.message:findi("tax")) then + e.self:Emote("looks up with tear-filled eyes and sobs uncontrollably."); + e.other:Faction(e.self,291,-1); -- Faction: Merchants of Qeynos + elseif(e.message:findi("crying")) then + e.self:Emote(".sniff.. Oh, dear. We do not have the money. We were just robbed by a dreadful halfling bandit named Flynn something-or-other. He took the money we had set asisde for Antonius. Please. Find this highwayman and retrieve our tax payment. ..sob.."); + end + +end \ No newline at end of file diff --git a/qeytoqrg/Mogan_Delfin.lua b/qeytoqrg/Mogan_Delfin.lua new file mode 100644 index 0000000..f8a83ba --- /dev/null +++ b/qeytoqrg/Mogan_Delfin.lua @@ -0,0 +1,3 @@ +function event_signal(e) + e.self:Say("Oh, great. I feel safe already."); +end diff --git a/qeytoqrg/Neclo_Rheslar.lua b/qeytoqrg/Neclo_Rheslar.lua new file mode 100644 index 0000000..15d470d --- /dev/null +++ b/qeytoqrg/Neclo_Rheslar.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("A Hello, citizen... Watch your step, there have been many vicious beasts about today."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18823})) then -- Note to Neclo + e.self:Say("Ah.. Hello friend.. So, I see Daenor sent you.. Uh huh, ok.. Here's something that will be very useful for you. Practice this well, friend.. It will help protect you in this harsh world."); + -- Confirmed Live Factions + e.other:Faction(e.self,342,5,0); -- Order of Three + e.other:Faction(e.self,221,-1,0); -- Bloodsabers + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:Faction(e.self,296,-1,0); -- Opal Dark Briar + e.other:QuestReward(e.self,0,0,0,0,15288,1000); -- Spell: Minor Shielding + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeytoqrg/Niclaus_Ressinn.lua b/qeytoqrg/Niclaus_Ressinn.lua new file mode 100644 index 0000000..d008f61 --- /dev/null +++ b/qeytoqrg/Niclaus_Ressinn.lua @@ -0,0 +1,55 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetName() .. ". I am Niclaus Ressinn, loyal Paladin of Life. I am scouting the Qeynos Hills on orders from High Priestess Jahnda. We have received reports of undead prowling these hills of late."); + elseif(e.message:findi("undead")) then + e.self:Say("I believe the undead prowl these hills at night. I have found the remains of several adventurers who obviously had the misfortune of running into some of Bertoxxulous' dark minions. One young human was still clutching this parchment in his cold, dead fist."); + elseif(e.message:findi("parchment")) then + if(e.other:GetFaction(e.self) < 5) then + e.self:Say("I believe it is from a spell book of some kind and I do not have a working knowledge of things arcane. Perhaps you could help? Take it. I am sure someone in Qeynos could decipher it. I must remian here to gather more evidence but please return to me with anything you discover."); + e.other:SummonCursorItem(13718); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18970}, 0)) then + e.self:Say("Oh, things are becoming dire here in Norrath. May Rodcet protect us! I have gathered most of the evidence I will need to present to Jahnda, but I could still use your assistance with one final piece. I need to recover a rib bone from of the undead beasts that wander these hills. Be sure the rib bone comes from one of the putrid skeletons. They are the spawn of Bertoxxulous."); + eq.set_global("niclaus","1",1,"H12"); + elseif(eq.get_qglobals(e.self,e.other)["niclaus"] == "1" and item_lib.check_turn_in(e.self, e.trade, {item1 = 13722}, 0)) then + e.self:Say("Excellent! Rodcet smiles upon us this day! Here, please take this pouch of evidence to Jahnda in the Temple of Life. She will know what we must do. I will remain here to keep an eye out for the minions of Bertoxxlous. Also, accept this small reward as a token of my appreciation of your efforts to rid Norrath of the influence of the Plaguebringer."); + eq.delete_global("niclaus"); + -- Confirmed Live Factions and Experience + e.other:Faction(e.self,341,50); -- Priest of Life + e.other:Faction(e.self,280,15); -- Knight of Thunder + e.other:Faction(e.self,262,25); -- Guards of Qeynos + e.other:Faction(e.self,221,-12); -- Bloodsabers + e.other:Faction(e.self,219,7); -- Antonius Bayle + e.other:QuestReward(e.self,{copper = math.random(0,10),itemid = 13724,exp = 4000}); + end + local returned = item_lib.return_items(e.self, e.other, e.trade, false) + if(returned) then + e.self:Say("I'm... erm, not quite sure what to do with this, but... thanks, I guess."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 4 or e.wp == 8) then + e.self:DoAnim(62); + elseif(e.wp == 5) then + e.self:SetRunning(true); + elseif(e.wp == 6) then + e.self:DoAnim(29); + elseif(e.wp == 7) then + e.self:Say("Guard! Come quick! The undead gather near the ruins of Geupal!"); + e.self:SetRunning(false); + elseif(e.wp == 9) then + e.self:DoAnim(7); + elseif(e.wp == 10) then + e.self:Say("Shh.. The fiends seems to dwell amongst the ruins. They wander off but eventually congregate back here. Shh.. OK NOW! RODCET PROTECT US!"); + e.self:SetRunning(true); + elseif(e.wp == 11) then + e.self:SetRunning(false); + end +end diff --git a/qeytoqrg/Pyzjn.lua b/qeytoqrg/Pyzjn.lua new file mode 100644 index 0000000..0945221 --- /dev/null +++ b/qeytoqrg/Pyzjn.lua @@ -0,0 +1,36 @@ +local despawntime; + +function event_spawn(e) + if(e.self:GetSpawnPointID() == 365105 or e.self:GetSpawnPointID() == 365106) then + despawntime = 0; + eq.set_timer("depop",8640000); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + despawntime = 1; + end +end + +function event_waypoint_arrive(e) + local ZoneTime = eq.get_zone_time()["zone_hour"] + 1; + if(e.self:GetGrid() == 26 and despawntime == 1) then + if(e.wp == 0 and ZoneTime > 7 and ZoneTime < 20) then + despawntime = 0; + eq.depop_with_timer(); + end + end +end + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". Pyzjn is working for Master Varsoon. If Pyzjn do good work maybe Master Varsoon tell Master Bruax he is worthy. Pyzjn must go now. All glory to the Plaguebringer! May you die a painful, oozing death."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look, a talking lump of refuse. How novel!")); + end + end +end + diff --git a/qeytoqrg/Rephas.lua b/qeytoqrg/Rephas.lua new file mode 100644 index 0000000..57c511c --- /dev/null +++ b/qeytoqrg/Rephas.lua @@ -0,0 +1,56 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Aagggh.. Get away from here.. Go, run.. Far away.. Or I shall call [Karana's] wrath upon you!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("karana")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Heh!.. Ignorant one! Begone, and take your stupidity with you!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Hey.. wow.. Now THESE are some good, meaty ears.. These will make one great rat ear pie.. Tell ya what, kid.. bring me a few more o' these beauties, and I'll give you my secret recipe for cooking 'em."; + + if(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13072})) then + e.self:Say("Ahh yes.. These are a little small, but still some good eating, if you know how to cook 'em of course.. Here ya go, enjoy and may Karana keep your fields lush and green."); + -- Confirmed Live Faction and Experience + e.other:Faction(e.self,220,5); -- Arcane Scientists + e.other:Faction(e.self,281,1); -- Knights of Truth + e.other:Faction(e.self,296,-1); -- Opal Dark Briar + e.other:Faction(e.self,330,-1); -- Freeport Militia + e.other:QuestReward(e.self,{itemid = 13719,exp = 100}); -- Item: Grilled Rat Ears + elseif(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13719})) then + e.self:Say("Wha?.. Ah, I guess it's a bit of an acquired taste.. Oh well, your loss.. Here, take this.. They ain't no ears, but it's the least I could do.. And if ya find any more rat ears, good ol' Rephas here will be glad to take 'em off your hands for ya!"); + -- Confirmed Live Faction and Experience + e.other:Faction(e.self,220,5); -- Arcane Scientists + e.other:Faction(e.self,281,1); -- Knights of Truth + e.other:Faction(e.self,296,-1); -- Opal Dark Briar + e.other:Faction(e.self,330,-1); -- Freeport Militia + e.other:QuestReward(e.self,{itemid = eq.ChooseRandom(1038,13076,15041,15208,15205),exp = 100}); -- Item: Fish Scales, Tattered cloth sandals, Spell: Weaken, Spell: Lull, Spell: True North + elseif(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13050,item2 = 13050,item3 = 13050},1,text)) then + e.self:Say("Wow!.. How big was the dang varmint that these come off of?! Bigger'n a ol' grizzly, I bet! You've earned this, my friend! It's my own secret recipe for rat ear pie.. sure is tasty, easy to make, and keeps your belly full while you're running about in the hills and such. Take care, and may Karana keep your path clear and our lakes full."); + -- Confirmed Live Faction and Experience + e.other:Faction(e.self,220,5); -- Arcane Scientists + e.other:Faction(e.self,281,1); -- Knights of Truth + e.other:Faction(e.self,296,-1); -- Opal Dark Briar + e.other:Faction(e.self,330,-1); -- Freeport Militia + e.other:QuestReward(e.self,{itemid = 18103,exp = 140}); -- Item: Rat Ear Pie + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 27428,item2 = 27429,item3 = 27430})) then + e.self:Say("These were the exact pages I was missing. I have been compiling this research for Juegile. It is now finished so please bring this book to him. Thank you!"); + -- Confirmed Live Faction and Experience + e.other:Faction(e.self,220,10); -- Arcane Scientists + e.other:Faction(e.self,281,2); -- Knights of Truth + e.other:Faction(e.self,296,-1); -- Opal Dark Briar + e.other:Faction(e.self,330,-1); -- Freeport Militia + e.other:QuestReward(e.self,{itemid = 27431,exp = 500}); -- Item: An Enchanted Book + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/qeytoqrg/Rilca_Leafrunner.lua b/qeytoqrg/Rilca_Leafrunner.lua new file mode 100644 index 0000000..7f0df66 --- /dev/null +++ b/qeytoqrg/Rilca_Leafrunner.lua @@ -0,0 +1,29 @@ +function event_spawn(e) + eq.set_timer("depop",math.random(1200000,3600000)); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop_with_timer(); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well, it seems that you have something of importance that you wish to speak to me about? No? Then perhaps you can do something [for me]."); + elseif(e.message:findi("for you")) then + e.self:Say("Well I need some information. It appears that some gnolls are planning an [invasion] of Surefall. I believe there are some gnoll couriers that are running information. If you could bring me their marching orders, invasion plans, area maps, and their encryption key. Your best chance to catch a courier is probably inside Blackburrow."); + elseif(e.message:findi("invasion")) then + e.self:Say("Apparently they've heard of our plans to reopen the entrance to Jaggedpine inside Surefall. It seems they believe the think they have a chance to stop us. While most of us have little concern about a gnoll invasion force the information you provide would be of great assistance."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 15931,item2 = 15932,item3 = 15933,item4 = 15934})) then + e.self:Emote("takes a look at the documents you handed her and smiles, 'This is exactly what we needed. We'll be better prepared if the gnolls are foolish enough to actually attack. I hope you are willing to assist us in the defense of Surefall. Should you choose to aid us, this club will serve you well.'"); + e.other:QuestReward(e.self,0,0,0,0,15935,15000); -- Item: Club of Gnoll Bashing + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qeytoqrg/Scruffy.lua b/qeytoqrg/Scruffy.lua new file mode 100644 index 0000000..c98a655 --- /dev/null +++ b/qeytoqrg/Scruffy.lua @@ -0,0 +1,15 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_waypoint_arrive(e) + local zoneTime = eq.get_zone_time()["zone_hour"] + 1; + if(e.self:GetGrid() == 13 and e.wp > 0 and e.wp < 3) then + e.self:SetRunning(false); + elseif(e.self:GetGrid() == 13 and e.wp == 3) then + e.self:SetRunning(true); + if(zoneTime > 18 or math.random(100) < 20) then + eq.depop_with_timer(); + end + end +end diff --git a/qeytoqrg/Sir_Edwin_Motte.lua b/qeytoqrg/Sir_Edwin_Motte.lua new file mode 100644 index 0000000..f280d63 --- /dev/null +++ b/qeytoqrg/Sir_Edwin_Motte.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "! How lucky you are to encounter the greatness of the legendary Sir Edwin Motte, slayer of cyclopes, battler of beasts, crusher of creatures, masher of monsters, eradicator of evil and champion of the third annual dart championship of Freeport."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 1 or e.wp == 6) then + e.self:SetRunning(true); + elseif(e.wp == 4 or e.wp == 7) then + e.self:SetRunning(false); + end +end diff --git a/qeytoqrg/Talym_Shoontar.lua b/qeytoqrg/Talym_Shoontar.lua new file mode 100644 index 0000000..f9bf22c --- /dev/null +++ b/qeytoqrg/Talym_Shoontar.lua @@ -0,0 +1,23 @@ +function event_waypoint_arrive(e) + if(e.wp == 1 or e.wp == 6) then + e.self:SetRunning(true); + elseif(e.wp == 4 or e.wp == 7) then + e.self:SetRunning(false); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("How are you, friend? It is a good day to be alive in Antonica! If you should happen to visit Surefall Glade, say hello to Hager Sureshot for me."); + elseif(e.message:findi("hager")) then + e.self:Say("Hager Sureshot is that know-nothing ranger in charge of the Protectors of the Pine. He thinks he can protect all of Surefall Glade. He is wrong."); + elseif(e.message:findi("poach")) then + e.self:Say("Excuse me! I am a HUNTER. A hunter of profit, not glory. Have you come to [collect the bounty] on my head? For your sake, the answer had better be [no]."); + elseif(e.message:findi("collect")) then + e.self:Say("Then do your best, whelp! I need the practice. I hope for your sake that my gypsy friends are not nearby."); + elseif(e.message:findi("no")) then + e.self:Say("Too bad. I heard there is a new market for skins of your kind."); + elseif(e.message:findi("surefall")) then + e.self:Say("Surefall Glade is in the Jaggedpine Forest. Home to the druids and rangers. Home to some of the finest bearskins ever to walk the earth. I can hear the coins clinking already."); + end +end \ No newline at end of file diff --git a/qeytoqrg/Tol_Nicelot.lua b/qeytoqrg/Tol_Nicelot.lua new file mode 100644 index 0000000..ffc953f --- /dev/null +++ b/qeytoqrg/Tol_Nicelot.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I have no time to waste with strangers!"); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 1 or e.wp == 6) then + e.self:SetRunning(true); + elseif(e.wp == 4 or e.wp == 7) then + e.self:SetRunning(false); + end +end diff --git a/qeytoqrg/Tovax_Vmar.lua b/qeytoqrg/Tovax_Vmar.lua new file mode 100644 index 0000000..bbf4b29 --- /dev/null +++ b/qeytoqrg/Tovax_Vmar.lua @@ -0,0 +1,53 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("What? Who the heck are you and how do you know my name?! Never mind... Just leave me alone!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look, a talking lump of refuse. How novel!")); + end + end +end + +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_waypoint_arrive(e) + local ZoneTime = eq.get_zone_time()["zone_hour"] + 1; + if(e.self:GetGrid() == 13) then + if(e.wp > 0 and e.wp < 3) then + e.self:SetRunning(false); + elseif( e.wp == 3) then + e.self:SetRunning(true); + if(ZoneTime > 18 and ZoneTime < 24) then + e.self:RemoveWaypoints(); + e.self:AssignWaypoints(math.random(21,25)); + e.self:SetRunning(false); + elseif(ZoneTime > 6 or math.random(100) < 20) then + eq.depop_with_timer(); + end + end + elseif(e.self:GetGrid() > 20 and e.self:GetGrid() < 26) then + if(e.wp == 1 or e.wp == 3) then + e.self:SetRunning(true); + else + e.self:SetRunning(false); + end + end + + if(e.self:GetGrid() > 20 and e.self:GetGrid() < 26) then + if(e.wp == 2 or e.wp == 3) then + e.self:Say("S'ragg is going to have my head for losing that letter..."); + elseif(e.wp == 4) then + e.self:RemoveWaypoints(); + e.self:AssignWaypoints(13); + e.self:SetRunning(false); + end + end +end + +function event_waypoint_depart(e) + if(e.self:GetGrid() > 20 and e.self:GetGrid() < 26 and e.wp == 1) then + eq.create_ground_object(18802,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0,90000); -- A Sealed Letter (A Letter to Opal) + end +end diff --git a/qeytoqrg/Varsoon.lua b/qeytoqrg/Varsoon.lua new file mode 100644 index 0000000..8de7d7a --- /dev/null +++ b/qeytoqrg/Varsoon.lua @@ -0,0 +1,41 @@ +local despawntime; + +function event_spawn(e) + if(e.self:GetSpawnPointID() == 365105 or e.self:GetSpawnPointID() == 365106) then + despawntime = 0; + eq.set_timer("depop",8640000); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + despawntime = 1; + end +end + +function event_waypoint_arrive(e) + local ZoneTime = eq.get_zone_time()["zone_hour"] + 1; + if(e.self:GetGrid() == 26 and despawntime == 1) then + if(e.wp == 0 and ZoneTime > 7 and ZoneTime < 20) then + despawntime = 0; + eq.depop_with_timer(); + end + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("How dare you address me thus?! Your ignorance shall bring your doom!"); + eq.attack(e.other:GetName()); + end +end + +function event_death_complete(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + local hloc = e.self:GetHeading(); + + eq.spawn2(4190,26,0,xloc,yloc,zloc,hloc); -- NPC: Varsoon_the_Undying +end diff --git a/qeytoqrg/Wyle_Bimlin.lua b/qeytoqrg/Wyle_Bimlin.lua new file mode 100644 index 0000000..dc38ca3 --- /dev/null +++ b/qeytoqrg/Wyle_Bimlin.lua @@ -0,0 +1,25 @@ +function event_waypoint_arrive(e) + if(e.wp == 1 or e.wp == 6) then + e.self:SetRunning(true); + elseif(e.wp == 4 or e.wp == 7) then + e.self:SetRunning(false); + end +end + +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks an item up from the ground and says, 'Hey! Look what I found! Another piece of rubbish for my trailer... Must be my lucky day."); + end + end +end + +function event_say(e) + if (e.message:findi("hail") ) then + e.self:Say("Greetings, fine friend! I bet you are in need of some fine tonics. Feeling a little low? Take a drink of my fine Zap Doodle Tonic. It will give you the energy of five hill giants! You are in luck, my friend! I have it on sale today, and today only. Matter of fact, the sale ends in five minutes or five footsteps, whichever comes first. So don't be down... get an upside-down frown with my Zap Doodle Tonic! All sales are final."); + end +end \ No newline at end of file diff --git a/qeytoqrg/a_brown_bear.lua b/qeytoqrg/a_brown_bear.lua new file mode 100644 index 0000000..3ef793e --- /dev/null +++ b/qeytoqrg/a_brown_bear.lua @@ -0,0 +1,25 @@ +local despawntime; + +function event_spawn(e) + if(e.self:GetSpawnPointID() == 365105 or e.self:GetSpawnPointID() == 365106) then + despawntime = 0; + eq.set_timer("depop",8640000); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + despawntime = 1; + end +end + +function event_waypoint_arrive(e) + local ZoneTime = eq.get_zone_time()["zone_hour"] + 1; + if(e.self:GetGrid() == 26 and despawntime == 1) then + if(e.wp == 0 and ZoneTime > 19 and ZoneTime < 8) then + despawntime = 0; + eq.depop_with_timer(); + end + end +end diff --git a/qeytoqrg/a_decaying_skeleton.lua b/qeytoqrg/a_decaying_skeleton.lua new file mode 100644 index 0000000..525441b --- /dev/null +++ b/qeytoqrg/a_decaying_skeleton.lua @@ -0,0 +1,25 @@ +local despawntime; + +function event_spawn(e) + if(e.self:GetSpawnPointID() == 365105 or e.self:GetSpawnPointID() == 365106) then + despawntime = 0; + eq.set_timer("depop",8640000); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + despawntime = 1; + end +end + +function event_waypoint_arrive(e) + local ZoneTime = eq.get_zone_time()["zone_hour"] + 1; + if(e.self:GetGrid() == 26 and despawntime == 1) then + if(e.wp == 0 and ZoneTime > 7 and ZoneTime < 20) then + despawntime = 0; + eq.depop_with_timer(); + end + end +end \ No newline at end of file diff --git a/qeytoqrg/a_dread_corpse.lua b/qeytoqrg/a_dread_corpse.lua new file mode 100644 index 0000000..525441b --- /dev/null +++ b/qeytoqrg/a_dread_corpse.lua @@ -0,0 +1,25 @@ +local despawntime; + +function event_spawn(e) + if(e.self:GetSpawnPointID() == 365105 or e.self:GetSpawnPointID() == 365106) then + despawntime = 0; + eq.set_timer("depop",8640000); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + despawntime = 1; + end +end + +function event_waypoint_arrive(e) + local ZoneTime = eq.get_zone_time()["zone_hour"] + 1; + if(e.self:GetGrid() == 26 and despawntime == 1) then + if(e.wp == 0 and ZoneTime > 7 and ZoneTime < 20) then + despawntime = 0; + eq.depop_with_timer(); + end + end +end \ No newline at end of file diff --git a/qeytoqrg/a_fire_beetle.lua b/qeytoqrg/a_fire_beetle.lua new file mode 100644 index 0000000..3ef793e --- /dev/null +++ b/qeytoqrg/a_fire_beetle.lua @@ -0,0 +1,25 @@ +local despawntime; + +function event_spawn(e) + if(e.self:GetSpawnPointID() == 365105 or e.self:GetSpawnPointID() == 365106) then + despawntime = 0; + eq.set_timer("depop",8640000); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + despawntime = 1; + end +end + +function event_waypoint_arrive(e) + local ZoneTime = eq.get_zone_time()["zone_hour"] + 1; + if(e.self:GetGrid() == 26 and despawntime == 1) then + if(e.wp == 0 and ZoneTime > 19 and ZoneTime < 8) then + despawntime = 0; + eq.depop_with_timer(); + end + end +end diff --git a/qeytoqrg/a_giant_rat.lua b/qeytoqrg/a_giant_rat.lua new file mode 100644 index 0000000..3ef793e --- /dev/null +++ b/qeytoqrg/a_giant_rat.lua @@ -0,0 +1,25 @@ +local despawntime; + +function event_spawn(e) + if(e.self:GetSpawnPointID() == 365105 or e.self:GetSpawnPointID() == 365106) then + despawntime = 0; + eq.set_timer("depop",8640000); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + despawntime = 1; + end +end + +function event_waypoint_arrive(e) + local ZoneTime = eq.get_zone_time()["zone_hour"] + 1; + if(e.self:GetGrid() == 26 and despawntime == 1) then + if(e.wp == 0 and ZoneTime > 19 and ZoneTime < 8) then + despawntime = 0; + eq.depop_with_timer(); + end + end +end diff --git a/qeytoqrg/a_gray_wolf.lua b/qeytoqrg/a_gray_wolf.lua new file mode 100644 index 0000000..3ef793e --- /dev/null +++ b/qeytoqrg/a_gray_wolf.lua @@ -0,0 +1,25 @@ +local despawntime; + +function event_spawn(e) + if(e.self:GetSpawnPointID() == 365105 or e.self:GetSpawnPointID() == 365106) then + despawntime = 0; + eq.set_timer("depop",8640000); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + despawntime = 1; + end +end + +function event_waypoint_arrive(e) + local ZoneTime = eq.get_zone_time()["zone_hour"] + 1; + if(e.self:GetGrid() == 26 and despawntime == 1) then + if(e.wp == 0 and ZoneTime > 19 and ZoneTime < 8) then + despawntime = 0; + eq.depop_with_timer(); + end + end +end diff --git a/qeytoqrg/a_grizzly_bear.lua b/qeytoqrg/a_grizzly_bear.lua new file mode 100644 index 0000000..3ef793e --- /dev/null +++ b/qeytoqrg/a_grizzly_bear.lua @@ -0,0 +1,25 @@ +local despawntime; + +function event_spawn(e) + if(e.self:GetSpawnPointID() == 365105 or e.self:GetSpawnPointID() == 365106) then + despawntime = 0; + eq.set_timer("depop",8640000); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + despawntime = 1; + end +end + +function event_waypoint_arrive(e) + local ZoneTime = eq.get_zone_time()["zone_hour"] + 1; + if(e.self:GetGrid() == 26 and despawntime == 1) then + if(e.wp == 0 and ZoneTime > 19 and ZoneTime < 8) then + despawntime = 0; + eq.depop_with_timer(); + end + end +end diff --git a/qeytoqrg/a_large_field_rat.lua b/qeytoqrg/a_large_field_rat.lua new file mode 100644 index 0000000..3ef793e --- /dev/null +++ b/qeytoqrg/a_large_field_rat.lua @@ -0,0 +1,25 @@ +local despawntime; + +function event_spawn(e) + if(e.self:GetSpawnPointID() == 365105 or e.self:GetSpawnPointID() == 365106) then + despawntime = 0; + eq.set_timer("depop",8640000); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + despawntime = 1; + end +end + +function event_waypoint_arrive(e) + local ZoneTime = eq.get_zone_time()["zone_hour"] + 1; + if(e.self:GetGrid() == 26 and despawntime == 1) then + if(e.wp == 0 and ZoneTime > 19 and ZoneTime < 8) then + despawntime = 0; + eq.depop_with_timer(); + end + end +end diff --git a/qeytoqrg/a_mangy_rat.lua b/qeytoqrg/a_mangy_rat.lua new file mode 100644 index 0000000..3ef793e --- /dev/null +++ b/qeytoqrg/a_mangy_rat.lua @@ -0,0 +1,25 @@ +local despawntime; + +function event_spawn(e) + if(e.self:GetSpawnPointID() == 365105 or e.self:GetSpawnPointID() == 365106) then + despawntime = 0; + eq.set_timer("depop",8640000); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + despawntime = 1; + end +end + +function event_waypoint_arrive(e) + local ZoneTime = eq.get_zone_time()["zone_hour"] + 1; + if(e.self:GetGrid() == 26 and despawntime == 1) then + if(e.wp == 0 and ZoneTime > 19 and ZoneTime < 8) then + despawntime = 0; + eq.depop_with_timer(); + end + end +end diff --git a/qeytoqrg/a_putrid_skeleton.lua b/qeytoqrg/a_putrid_skeleton.lua new file mode 100644 index 0000000..525441b --- /dev/null +++ b/qeytoqrg/a_putrid_skeleton.lua @@ -0,0 +1,25 @@ +local despawntime; + +function event_spawn(e) + if(e.self:GetSpawnPointID() == 365105 or e.self:GetSpawnPointID() == 365106) then + despawntime = 0; + eq.set_timer("depop",8640000); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + despawntime = 1; + end +end + +function event_waypoint_arrive(e) + local ZoneTime = eq.get_zone_time()["zone_hour"] + 1; + if(e.self:GetGrid() == 26 and despawntime == 1) then + if(e.wp == 0 and ZoneTime > 7 and ZoneTime < 20) then + despawntime = 0; + eq.depop_with_timer(); + end + end +end \ No newline at end of file diff --git a/qeytoqrg/a_restless_skeleton.lua b/qeytoqrg/a_restless_skeleton.lua new file mode 100644 index 0000000..525441b --- /dev/null +++ b/qeytoqrg/a_restless_skeleton.lua @@ -0,0 +1,25 @@ +local despawntime; + +function event_spawn(e) + if(e.self:GetSpawnPointID() == 365105 or e.self:GetSpawnPointID() == 365106) then + despawntime = 0; + eq.set_timer("depop",8640000); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + despawntime = 1; + end +end + +function event_waypoint_arrive(e) + local ZoneTime = eq.get_zone_time()["zone_hour"] + 1; + if(e.self:GetGrid() == 26 and despawntime == 1) then + if(e.wp == 0 and ZoneTime > 7 and ZoneTime < 20) then + despawntime = 0; + eq.depop_with_timer(); + end + end +end \ No newline at end of file diff --git a/qeytoqrg/a_skeleton.lua b/qeytoqrg/a_skeleton.lua new file mode 100644 index 0000000..525441b --- /dev/null +++ b/qeytoqrg/a_skeleton.lua @@ -0,0 +1,25 @@ +local despawntime; + +function event_spawn(e) + if(e.self:GetSpawnPointID() == 365105 or e.self:GetSpawnPointID() == 365106) then + despawntime = 0; + eq.set_timer("depop",8640000); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + despawntime = 1; + end +end + +function event_waypoint_arrive(e) + local ZoneTime = eq.get_zone_time()["zone_hour"] + 1; + if(e.self:GetGrid() == 26 and despawntime == 1) then + if(e.wp == 0 and ZoneTime > 7 and ZoneTime < 20) then + despawntime = 0; + eq.depop_with_timer(); + end + end +end \ No newline at end of file diff --git a/qeytoqrg/a_strange_skeleton.lua b/qeytoqrg/a_strange_skeleton.lua new file mode 100644 index 0000000..920f364 --- /dev/null +++ b/qeytoqrg/a_strange_skeleton.lua @@ -0,0 +1,9 @@ +function event_spawn(e) + eq.set_timer("depop",120000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end \ No newline at end of file diff --git a/qrg/Arrivae_Valleren.lua b/qrg/Arrivae_Valleren.lua new file mode 100644 index 0000000..1455c3c --- /dev/null +++ b/qrg/Arrivae_Valleren.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("leader")) then + e.self:Say("The land of Surefall Glade is ruled by no single hand other than Tunare, but if guidance is what you seek, I would suggest you speak with Te`Anara. She is the head of the Jaggedpine Treefolk. Otherwise, you could speak with Hager Sureshot of the Protectors of the Pine."); + elseif(e.message:findi("poacher")) then + e.self:Say("Poachers have been plaguing our land. We do our best to stop them. If you wish to join the fight, seek the masters of the Protectors of the Pine."); + elseif(e.message:findi("mammoth") or e.message:findi("cave")) then + e.self:Say("That information is best kept secret."); + elseif(e.message:findi("druid guild")) then + e.self:Say("The Jaggedpine Treefolk are the local druids. The masters can be found here within the great tree."); + elseif(e.message:findi("forge") or e.message:findi("oven")) then + e.self:Say("We have nothing like that here in Surefall Glade. You must venture to Qeynos."); + elseif(e.message:findi("armor")) then + e.self:Say("Oftentimes you can find a traveling merchant in one of the nearby houses. Other than that you would have to travel to Qeynos."); + elseif(e.message:findi("qeynos")) then + e.self:Say("The great city of Qeynos can be found by walking along the path outside of Surefall Glade. Many of our rangers and druids serve alongside the Qeynos Guard when the need arises."); + elseif(e.message:findi("bank")) then + e.self:Say("There is no need for a vault among our people. You could try the Qeynos Hold in Qeynos."); + elseif(e.message:findi("talym") or e.message:findi("shoontar")) then + e.self:Say("Talym Shoontar is a wanted man. He is a very infamous poacher. Hager Sureshot has placed a bounty upon his head."); + elseif(e.message:findi("chanda") or e.message:findi("baobob") or e.message:findi("miller")) then + e.self:Say("The entire Miller family are nothing more than scum. It is they who entice poachers to continue with their slaughter so they can profit from the skins of the wildlife."); + elseif(e.message:findi("tunarbos")) then + e.self:Say("Long ago, centuries before the Combine Era even, there grew a great tree upon Norrath. It stretched to the stars and was as wide as the span of Erud's Crossing. From the roots of this tree sprung all the woodlands of Norrath. An unknown force struck it down. Some say it was the great dragon, Veeshan! Whatever the force, the Great Tunarbos was shattered. Lost forever. Now the wood chips lie scattered across the face of Norrath. To hold a shard of the Great Tunarbos is to hold the hand of Tunare."); + end +end \ No newline at end of file diff --git a/qrg/Bren_Treeclimber.lua b/qrg/Bren_Treeclimber.lua new file mode 100644 index 0000000..6c36d02 --- /dev/null +++ b/qrg/Bren_Treeclimber.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". My name is Bren Treeclimber and I am a Protector of the Pine. We have sworn our lives to protecting all the animals of Surefall Glade. [Poachers], beware!"); + elseif(e.message:findi("poacher")) then + e.self:Say("Heh? Oh. Poachers are constantly after our bears for their valuable skins. I wish those darn [Millers] would move on. Then, maybe, our bears would be left alone. I have seen far too many of my friends die. I will kill anyone I see harming my bears."); + elseif(e.message:findi("millers")) then + e.self:Say("The Millers?! Those butchers! We have caught that Baobob and his sister trying to poach more than once. And to think we took them in and gave them shelter when they were in need. All the while, they were just trying to get to our bears."); + elseif(e.message:findi("mammoth")) then + e.self:Say("Mammoth is the oldest bear in these caves. Many poachers have tried to part him from his hide. Many poachers have met their fates at the end of my blade, too."); + elseif(e.message:findi("talym")) then + e.self:Say("Talym Shoontar is a wanted man. He is a very infamous poacher. Hager Sureshot has placed a bounty upon his head."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 130) then + e.self:SetRunning(true); + elseif(e.wp == 216 ) then + e.self:SetRunning(false); + elseif(e.wp == 258) then + eq.set_anim(3027,1); + e.self:Say("Hey there, big bear! Good bear! Keep clear of those mean ol' poachers."); + elseif(e.wp == 259) then + eq.set_anim(3027,0); + end +end diff --git a/qrg/Corun_Finisc.lua b/qrg/Corun_Finisc.lua new file mode 100644 index 0000000..2271599 --- /dev/null +++ b/qrg/Corun_Finisc.lua @@ -0,0 +1,85 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. My name is Corun Finisc and I am one of the Jaggedpine Treefolk. It is our divine responsibility to watch over and protect Surefall Glade and its [inhabitants] from those who seek to [destroy] them."); + elseif(e.message:findi("inhabitants")) then + e.self:Say("The bears of Surefall Glade are our brothers. We are all children of [Tunare]. We would gladly die in their defense."); + elseif(e.message:findi("tunare")) then + e.self:Say("Tunare is the Mother of All. It is though Her will that we protect this land and its many creatures."); + elseif(e.message:findi("destroy")) then + e.self:Say("Poachers in seach of bear skins and [gnolls] who attack us unprovoked. We are doing all we can to stop them. May [Tunare] give me the strength needed to smite them dead with my [crook]."); + elseif(e.message:findi("crook")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- not verified as exact, tested at 0 faction and wasn't high enough + e.self:Say("My crook? The Jaggedpine crook is an enchanted weapon of the Jaggedpine Treefolk. The [Sabertooths] take great pleasure in destroying the crooks of any Treefolk they manage to slay. If you were to recover the pieces of a broken crook, I would gladly mend it for you."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("gnolls")) then + e.self:Say("The Sabertooths are a vicious band of gnolls who live in Blackburrow, to the east of Surefall Glade. They constantly attack us when we only seek to share this land with them. They also send many patrols out into the Qeynos Hills to the south. We have even seen a Sabertooth skulking about in the caves behind Grizzly Falls. There is a [reward] for his hide."); + elseif(e.message:findi("reward")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- not verified as exact, tested at 0 faction and wasn't high enough + e.self:Say("Yes. We are offering a small reward for slaying the skulking gnoll in the bear caves. Bring me his paw to claim your bounty. The Jaggedpine Treefolk remember well those who aid their cause."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("sabertooths")) then + e.self:Say("The gnolls of Blackburrow are called Sabertooths. They have been seen in force on a regular basis. They are surely up to something."); + elseif(e.message:findi("leader")) then + e.self:Say("The land of Surefall Glade is ruled by no single hand other than Tunare, but if guidance is what you seek, I would suggest you speak with Te`Anara. She is the head of the Jaggedpine Treefolk. Otherwise, you could speak with Hager Sureshot of the Protectors of the Pine."); + elseif(e.message:findi("poacher")) then + e.self:Say("Poachers have been plaguing our land. We do our best to stop them. If you wish to join the fight, seek the masters of the Protectors of the Pine."); + elseif(e.message:findi("mammoth") or e.message:findi("cave")) then + e.self:Say("That information is best kept secret."); + elseif(e.message:findi("druid guild")) then + e.self:Say("The Jaggedpine Treefolk are the local druids. The masters can be found here within the great tree."); + elseif(e.message:findi("forge") or e.message:findi("oven")) then + e.self:Say("We have nothing like that here in Surefall Glade. You must venture to Qeynos."); + elseif(e.message:findi("armor")) then + e.self:Say("Oftentimes you can find a traveling merchant in one of the nearby houses. Other than that you would have to travel to Qeynos."); + elseif(e.message:findi("qeynos")) then + e.self:Say("The great city of Qeynos can be found by walking along the path outside of Surefall Glade. Many of our rangers and druids serve alongside the Qeynos Guard when the need arises."); + elseif(e.message:findi("bank")) then + e.self:Say("There is no need for a vault among our people. You could try the Qeynos Hold in Qeynos."); + elseif(e.message:findi("talym") or e.message:findi("shoontar")) then + e.self:Say("Talym Shoontar is a wanted man. He is a very infamous poacher. Hager Sureshot has placed a bounty upon his head."); + elseif(e.message:findi("chanda") or e.message:findi("baobob") or e.message:findi("miller")) then + e.self:Say("The entire Miller family are nothing more than scum. It is they who entice poachers to continue with their slaughter so they can profit from the skins of the wildlife."); + elseif(e.message:findi("tunarbos")) then + e.self:Say("Long ago, centuries before the Combine Era even, there grew a great tree upon Norrath. It stretched to the stars and was as wide as the span of Erud's Crossing. From the roots of this tree sprung all the woodlands of Norrath. An unknown force struck it down. Some say it was the great dragon, Veeshan! Whatever the force, the Great Tunarbos was shattered. Lost forever. Now the wood chips lie scattered across the face of Norrath. To hold a shard of the Great Tunarbos is to hold the hand of Tunare."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Look what you have found! It is tragic to know that for every broken crook that is recovered, one of the Treefolk has lost his life. Those gnolls will pay some day. If you have the other half of the crook I will repair it for you."; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13700})) then + e.self:Say("Thank you for tracking down the filthy little poacher. Take this as your reward."); -- This is not from live as I have not seen the little bugger on live yet. + e.other:Faction(e.self,272,10); -- Faction: Jaggedpine Treefolk + e.other:Faction(e.self,302,2); -- Faction: Protectors of Pine + e.other:Faction(e.self,343,1); -- Faction: QRG Protected Animals + e.other:Faction(e.self,324,-2); -- Faction: Unkempt Druids + e.other:Faction(e.self,262,1); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,math.random(10),math.random(10),math.random(0,8),math.random(0,2),0,1500); + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13231,item2 = 13232},1,text)) then + e.self:Say("Excellent! Here is a Jaggedpine Crook of your own. Please use it only to defend yourself and never to attack one of Tunare's creatures. You will find that while wielding the crook, Tunare grants you a boon of strength and the power to smite enemies who would otherwise be impervious to physical attacks."); + e.other:Faction(e.self,272,10); -- Faction: Jaggedpine Treefolk + e.other:Faction(e.self,302,2); -- Faction: Protectors of Pine + e.other:Faction(e.self,343,1); -- Faction: QRG Protected Animals + e.other:Faction(e.self,324,-2); -- Faction: Unkempt Druids + e.other:Faction(e.self,262,1); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,13230,1500); -- Item: Jaggedpine Crook + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if(e.wp == 3 or e.wp == 18 or e.wp == 29) then + e.self:Shout("Heed the wishes of Tunare and leave the bears of Surefall Glade undisturbed!"); + elseif(e.wp == 11) then + e.self:Say("By the will of Tunare, I serve this glade until I become one with it."); + end +end diff --git a/qrg/Durvinna_Barkkis.lua b/qrg/Durvinna_Barkkis.lua new file mode 100644 index 0000000..1455c3c --- /dev/null +++ b/qrg/Durvinna_Barkkis.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("leader")) then + e.self:Say("The land of Surefall Glade is ruled by no single hand other than Tunare, but if guidance is what you seek, I would suggest you speak with Te`Anara. She is the head of the Jaggedpine Treefolk. Otherwise, you could speak with Hager Sureshot of the Protectors of the Pine."); + elseif(e.message:findi("poacher")) then + e.self:Say("Poachers have been plaguing our land. We do our best to stop them. If you wish to join the fight, seek the masters of the Protectors of the Pine."); + elseif(e.message:findi("mammoth") or e.message:findi("cave")) then + e.self:Say("That information is best kept secret."); + elseif(e.message:findi("druid guild")) then + e.self:Say("The Jaggedpine Treefolk are the local druids. The masters can be found here within the great tree."); + elseif(e.message:findi("forge") or e.message:findi("oven")) then + e.self:Say("We have nothing like that here in Surefall Glade. You must venture to Qeynos."); + elseif(e.message:findi("armor")) then + e.self:Say("Oftentimes you can find a traveling merchant in one of the nearby houses. Other than that you would have to travel to Qeynos."); + elseif(e.message:findi("qeynos")) then + e.self:Say("The great city of Qeynos can be found by walking along the path outside of Surefall Glade. Many of our rangers and druids serve alongside the Qeynos Guard when the need arises."); + elseif(e.message:findi("bank")) then + e.self:Say("There is no need for a vault among our people. You could try the Qeynos Hold in Qeynos."); + elseif(e.message:findi("talym") or e.message:findi("shoontar")) then + e.self:Say("Talym Shoontar is a wanted man. He is a very infamous poacher. Hager Sureshot has placed a bounty upon his head."); + elseif(e.message:findi("chanda") or e.message:findi("baobob") or e.message:findi("miller")) then + e.self:Say("The entire Miller family are nothing more than scum. It is they who entice poachers to continue with their slaughter so they can profit from the skins of the wildlife."); + elseif(e.message:findi("tunarbos")) then + e.self:Say("Long ago, centuries before the Combine Era even, there grew a great tree upon Norrath. It stretched to the stars and was as wide as the span of Erud's Crossing. From the roots of this tree sprung all the woodlands of Norrath. An unknown force struck it down. Some say it was the great dragon, Veeshan! Whatever the force, the Great Tunarbos was shattered. Lost forever. Now the wood chips lie scattered across the face of Norrath. To hold a shard of the Great Tunarbos is to hold the hand of Tunare."); + end +end \ No newline at end of file diff --git a/qrg/Errin_Pinewhisper.lua b/qrg/Errin_Pinewhisper.lua new file mode 100644 index 0000000..6737f2a --- /dev/null +++ b/qrg/Errin_Pinewhisper.lua @@ -0,0 +1,59 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Surefall Glade friend. I am Errin Pinewhisper, Ranger of Karana the Storm Lord. You will find worshipers of both Karana and Tunare residing here in harmony. I train young rangers of both faiths and assist them in getting prepared for work in the often dangerous lands beyond the glade. If you are in need of a [sturdy outfit] suitable for work as a young ranger then I will gladly instruct you on the means to obtain one."); + elseif(e.message:findi("sturdy outfit")) then + e.self:Say("This specially prepared curing kit will allow you to craft an outfit that will protect you in the wilds of Norrath. The materials required for the outfit vary depending on the piece you desire to craft. Do you desire to craft Pine Scout [Gloves], Pine Scout [Boots], a Pine Scout [Bracer], a Pine Scout [Cap], Pine Scout [Leggings], Pine Scout [Sleeves], or a Pine Scout [Tunic]? Once you are properly outfitted there is an [issue] that you may be of assistance in resolving."); + e.other:SummonCursorItem(17125); -- Item: Curing Kit + elseif(e.message:findi("boots")) then + e.self:Say("To craft Pine Scout Boots you require two [silk thread], ruined gnoll chain boots, two giant field rat whiskers, and a large whiskered bat fur. Once you have the necessary components combine them in your Curing Kit with this Tattered Boot Pattern."); + e.other:SummonCursorItem(19561); -- Item: Tattered Boot Pattern + elseif(e.message:findi("bracer")) then + e.self:Say("To craft an Pine Scout Bracer you require a [silk thread], a ruined gnoll chain bracer, and a giant field rat whiskers. Once you have the necessary components combine them in your Curing Kit with this Tattered Wristband Pattern."); + e.other:SummonCursorItem(19558); -- Item: Tattered Wristband Pattern + elseif(e.message:findi("cap")) then + e.self:Say("To craft a Pine Scout Cap you require two [silk thread], a ruined gnoll chain cap, a large whiskered bat fur, and a large field rat pelt. Once you have the necessary components combine them in your Curing Kit with this Tattered Coif Pattern."); + e.other:SummonCursorItem(19555); -- Item: Tattered Cap Pattern + elseif(e.message:findi("gloves")) then + e.self:Say("To craft Pine Scout Gloves you require two [silk thread], ruined gnoll chain gloves, two giant field rat whiskers, and a large whiskered bat fur. Once you have the necessary components combine them in your Curing Kit with this Tattered Glove Pattern."); + e.other:SummonCursorItem(19559); -- Item: Tattered Glove Pattern + elseif(e.message:findi("leggings")) then + e.self:Say("To craft Pine Scout Leggings you require three [silk thread], ruined gnoll chain leggings, two large whiskered bat furs, and a giant field rat pelt. Once you have the necessary components combine them in your Curing Kit with this Tattered Pant Pattern."); + e.other:SummonCursorItem(19560); -- Item: Tattered Pant Pattern + elseif(e.message:findi("sleeves")) then + e.self:Say("To craft Pine Scout Sleeves you require two [silk thread], ruined gnoll chain sleeves, two large whiskered bat furs, and a giant field rat pelt. Once you have the necessary components combine them in your Curing Kit with this Tattered Sleeves Pattern."); + e.other:SummonCursorItem(19557); -- Item: Tattered Sleeve Pattern + elseif(e.message:findi("tunic")) then + e.self:Say("To craft a Pine Scout Tunic you require four [silk thread], a ruined gnoll chain tunic, a giant whiskered bat fur, and a giant field rat pelt. Once you have the necessary components combine them in your Curing Kit with this Tattered Tunic Pattern."); + e.other:SummonCursorItem(19556); -- Item: Tattered Tunic Pattern + elseif(e.message:findi("silk thread")) then + e.self:Say("Silk thread is created from two spiderling silks woven together in a sewing kit or loom."); + elseif(e.message:findi("issue")) then + e.self:Say("A poacher was recently discovered hunting the bears in Surefall Glade and Qeynos Hills. This poacher has been identified as Yollis Jenkin and it appears that he has fled to Western Plains of Karana to escape retribution by the Jaggedpine Treefolk for his murders. Find Yollis Jenkin and tell him the Jaggedpine Treefolk sent you. He is wanted dead or alive so if he resists capture then bring me his head."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19949})) then + e.self:Say("It is a shame when human blood must be shed in the defense of our brother wolves and bears. I thank you for your dedication to the Jaggedpine Treefolk. Take this rusty pine scout sword and sharpen it in a forge with a sharpening stone. It may take you several attempts if you are unfamiliar with the process. Once that is done return the sharpened sword to me with a gnoll fang and a large king snake skin and I will put the finishing touches on the weapon."); + + e.other:Faction(e.self,272,10); --jaggedpine treefolk + e.other:Faction(e.self,302,2); --protectors of pine + e.other:Faction(e.self,343,1); --qrg protected animals + e.other:Faction(e.self,324,-2); --unkempt druids + e.other:Faction(e.self,262,1); --guards of qeynos + e.other:QuestReward(e.self,{itemid = 19950,exp = 1000}); -- Item: Rusty Pine Scout Sword + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20104,item2 = 13915, item3 = 19945})) then + e.self:Emote("fashions a grip from the large king snake skin, attaches the gnoll fang to the heel of the swords hilt, and polishes the blade of the sword with a luminescent green polish. 'Here is your new weapon young ranger. May it serve you well.'"); + e.other:Faction(e.self,272,5); --jaggedpine treefolk + e.other:Faction(e.self,302,1); --protectors of pine + e.other:Faction(e.self,343,1); --qrg protected animals + e.other:Faction(e.self,324,-1); --unkempt druids + e.other:Faction(e.self,262,1); --guards of qeynos + e.other:QuestReward(e.self,{itemid = 20263,exp = 1000}); -- Item: Pine Scout Longsword + end + item_lib.return_items(e.self, e.other, e.trade); +end + +-- END of FILE Zone: qrg ID:3041 -- Errin_Pinewhisper diff --git a/qrg/Frannie.lua b/qrg/Frannie.lua new file mode 100644 index 0000000..1455c3c --- /dev/null +++ b/qrg/Frannie.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("leader")) then + e.self:Say("The land of Surefall Glade is ruled by no single hand other than Tunare, but if guidance is what you seek, I would suggest you speak with Te`Anara. She is the head of the Jaggedpine Treefolk. Otherwise, you could speak with Hager Sureshot of the Protectors of the Pine."); + elseif(e.message:findi("poacher")) then + e.self:Say("Poachers have been plaguing our land. We do our best to stop them. If you wish to join the fight, seek the masters of the Protectors of the Pine."); + elseif(e.message:findi("mammoth") or e.message:findi("cave")) then + e.self:Say("That information is best kept secret."); + elseif(e.message:findi("druid guild")) then + e.self:Say("The Jaggedpine Treefolk are the local druids. The masters can be found here within the great tree."); + elseif(e.message:findi("forge") or e.message:findi("oven")) then + e.self:Say("We have nothing like that here in Surefall Glade. You must venture to Qeynos."); + elseif(e.message:findi("armor")) then + e.self:Say("Oftentimes you can find a traveling merchant in one of the nearby houses. Other than that you would have to travel to Qeynos."); + elseif(e.message:findi("qeynos")) then + e.self:Say("The great city of Qeynos can be found by walking along the path outside of Surefall Glade. Many of our rangers and druids serve alongside the Qeynos Guard when the need arises."); + elseif(e.message:findi("bank")) then + e.self:Say("There is no need for a vault among our people. You could try the Qeynos Hold in Qeynos."); + elseif(e.message:findi("talym") or e.message:findi("shoontar")) then + e.self:Say("Talym Shoontar is a wanted man. He is a very infamous poacher. Hager Sureshot has placed a bounty upon his head."); + elseif(e.message:findi("chanda") or e.message:findi("baobob") or e.message:findi("miller")) then + e.self:Say("The entire Miller family are nothing more than scum. It is they who entice poachers to continue with their slaughter so they can profit from the skins of the wildlife."); + elseif(e.message:findi("tunarbos")) then + e.self:Say("Long ago, centuries before the Combine Era even, there grew a great tree upon Norrath. It stretched to the stars and was as wide as the span of Erud's Crossing. From the roots of this tree sprung all the woodlands of Norrath. An unknown force struck it down. Some say it was the great dragon, Veeshan! Whatever the force, the Great Tunarbos was shattered. Lost forever. Now the wood chips lie scattered across the face of Norrath. To hold a shard of the Great Tunarbos is to hold the hand of Tunare."); + end +end \ No newline at end of file diff --git a/qrg/Frenway_Marthank.lua b/qrg/Frenway_Marthank.lua new file mode 100644 index 0000000..4557c58 --- /dev/null +++ b/qrg/Frenway_Marthank.lua @@ -0,0 +1,49 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. stranger. Please excuse my melancholy state. I have had some [bad news] that has brought me great sorrow."); + elseif(e.message:findi("bayle list")) then + e.self:Say("The Bayle List is my property. Return it to me if you have it. There is no more I can say of the list, but if you have the note and refuse to return it, then I shall let it be known that you betray [Antonius Bayle] himself!"); + elseif(e.message:findi("toe.* bayle list")) then + e.self:Say("The [Bayle List] is gone. It lies inside the belly of that beast, [Mammoth]."); + elseif(e.message:findi("mammoth")) then + e.self:Say("Mammoth is the great bear which inhabits the caves. It was he that swallowed my son whole. My son was using the scroll case as a play sword when Mammoth approached. I know you need the list but my vows as a Protector of the Pine forbid me to harm the bear. Help me ease my pain. Kill Mammoth and bring me his hide. You will find the list inside the beast."); + elseif(e.message:findi("bad news")) then + e.self:Say("My youngest son was devoured by a grizzly bear while playing near the caves. It was an unfortunate accident. The great bear was just protecting its territory. Now, could you please just leave me be? "); + elseif(e.message:findi("antonius")) then + e.self:Say("Antonius Bayle and I were childhood friends. He entrusted me to watch over the list. What the list is, was never explained to me. It looks like gibberish."); + elseif(e.message:findi("leader")) then + e.self:Say("The land of Surefall Glade is ruled by no single hand other than Tunare, but if guidance is what you seek, I would suggest you speak with Te`Anara. She is the head of the Jaggedpine Treefolk. Otherwise, you could speak with Hager Sureshot of the Protectors of the Pine."); + elseif(e.message:findi("poacher")) then + e.self:Say("Poachers have been plaguing our land. We do our best to stop them. If you wish to join the fight, seek the masters of the Protectors of the Pine."); + elseif(e.message:findi("druid guild")) then + e.self:Say("The Jaggedpine Treefolk are the local druids. The masters can be found here within the great tree."); + elseif(e.message:findi("forge") or e.message:findi("oven")) then + e.self:Say("We have nothing like that here in Surefall Glade. You must venture to Qeynos."); + elseif(e.message:findi("armor")) then + e.self:Say("Oftentimes you can find a traveling merchant in one of the nearby houses. Other than that you would have to travel to Qeynos."); + elseif(e.message:findi("qeynos")) then + e.self:Say("The great city of Qeynos can be found by walking along the path outside of Surefall Glade. Many of our rangers and druids serve alongside the Qeynos Guard when the need arises."); + elseif(e.message:findi("bank")) then + e.self:Say("There is no need for a vault among our people. You could try the Qeynos Hold in Qeynos."); + elseif(e.message:findi("talym") or e.message:findi("shoontar")) then + e.self:Say("Talym Shoontar is a wanted man. He is a very infamous poacher. Hager Sureshot has placed a bounty upon his head."); + elseif(e.message:findi("chanda") or e.message:findi("baobob") or e.message:findi("miller")) then + e.self:Say("The entire Miller family are nothing more than scum. It is they who entice poachers to continue with their slaughter so they can profit from the skins of the wildlife."); + elseif(e.message:findi("tunarbos")) then + e.self:Say("Long ago, centuries before the Combine Era even, there grew a great tree upon Norrath. It stretched to the stars and was as wide as the span of Erud's Crossing. From the roots of this tree sprung all the woodlands of Norrath. An unknown force struck it down. Some say it was the great dragon, Veeshan! Whatever the force, the Great Tunarbos was shattered. Lost forever. Now the wood chips lie scattered across the face of Norrath. To hold a shard of the Great Tunarbos is to hold the hand of Tunare."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18809,item2 = 13912})) then + e.self:Say("It is not right to feel satisfied at the sight of Mammoth's hide, but I do. Thank you, " .. e.other:GetCleanName() .. "."); + e.other:Faction(e.self,302,5,0); -- Faction: Protectors of Pine + e.other:Faction(e.self,272,1,0); -- Faction: Jaggedpine Treefolk + e.other:Faction(e.self,306,-1,0); -- Faction: Sabertooths of Blackburrow + e.other:Faction(e.self,262,1,0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,0,6,0,0,18809,500); -- Item: Bayle List II + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qrg/Gerael_Woodone.lua b/qrg/Gerael_Woodone.lua new file mode 100644 index 0000000..70d42f6 --- /dev/null +++ b/qrg/Gerael_Woodone.lua @@ -0,0 +1,64 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It is good to meet you, " .. e.other:GetCleanName() .. ". You, my friend, are an adventurer. The rugged look of you testifies to that. Let me know if you plan to adventure in the Plains of Karana. I have need of a person such as yourself to [deliver a flask]."); + elseif(e.message:findi("deliver a flask")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- not verified as exact, tested at 0 faction and wasn't high enough + e.self:Say("That is splendid! I thought I would have to take the long journey to the western Plains of Karana myself. Here you are, my friend. Take this flask of nitrates to a woman named Linaya Sowlin. It will help her crops grow stronger. You will find her farm alongside the road to Highpass Hold. She should pay you well for the delivery. Farewell."); + e.other:SummonCursorItem(13945); -- Item: Flask of Nitrates + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("We, the Jaggedpine Treefolk, appreciate the help you've given us in the past. But, we must trust you more before allowing you to handle such important matters."); + else + e.self:Say("You are an enemy of the Jaggedpine Treefolk, this forest, and the residents of it. Begone, before I am forced to take drastic measures!"); + end + elseif(e.message:findi("Jale Phlintoes")) then + e.self:Say("Jale Phlintoes was trained in the ways of the Jaggedpine Treefolk since his birth. He was only eight when his parents were killed by poachers. Young Jale would have had his throat slit also if he were not off fishing at the lake. Unfortunate. The now orphaned Jale was brought up by us druids. After many conflicts with our council, he ran off to start his own sect somewhere in the nearby lands. For his terrorist activities his head now brings a high price."); + elseif(e.message:findi("Unkempt Druid")) then + e.self:Say("The Unkempt Druids are a radical splinter group of druids. Their beliefs have been contorted by the mad druid [Jale Phlintoes]. It is he who engineers and coordinates the druids' transgressions. From setting lumbermills aflame to murdering any man who dares to wear a bearhide. They must be stopped!! Citizens must learn to understand Tunare's will, not fear it."); + elseif(e.message:findi("leader")) then + e.self:Say("The land of Surefall Glade is ruled by no single hand other than Tunare, but if guidance is what you seek, I would suggest you speak with Te`Anara. She is the head of the Jaggedpine Treefolk. Otherwise, you could speak with Hager Sureshot of the Protectors of the Pine."); + elseif(e.message:findi("poacher")) then + e.self:Say("Poachers have been plaguing our land. We do our best to stop them. If you wish to join the fight, seek the masters of the Protectors of the Pine."); + elseif(e.message:findi("mammoth") or e.message:findi("cave")) then + e.self:Say("That information is best kept secret."); + elseif(e.message:findi("druid guild")) then + e.self:Say("The Jaggedpine Treefolk are the local druids. The masters can be found here within the great tree."); + elseif(e.message:findi("forge") or e.message:findi("oven")) then + e.self:Say("We have nothing like that here in Surefall Glade. You must venture to Qeynos."); + elseif(e.message:findi("armor")) then + e.self:Say("Oftentimes you can find a traveling merchant in one of the nearby houses. Other than that you would have to travel to Qeynos."); + elseif(e.message:findi("qeynos")) then + e.self:Say("The great city of Qeynos can be found by walking along the path outside of Surefall Glade. Many of our rangers and druids serve alongside the Qeynos Guard when the need arises."); + elseif(e.message:findi("bank")) then + e.self:Say("There is no need for a vault among our people. You could try the Qeynos Hold in Qeynos."); + elseif(e.message:findi("talym") or e.message:findi("shoontar")) then + e.self:Say("Talym Shoontar is a wanted man. He is a very infamous poacher. Hager Sureshot has placed a bounty upon his head."); + elseif(e.message:findi("chanda") or e.message:findi("baobob") or e.message:findi("miller")) then + e.self:Say("The entire Miller family are nothing more than scum. It is they who entice poachers to continue with their slaughter so they can profit from the skins of the wildlife."); + elseif(e.message:findi("tunarbos")) then + e.self:Say("Long ago, centuries before the Combine Era even, there grew a great tree upon Norrath. It stretched to the stars and was as wide as the span of Erud's Crossing. From the roots of this tree sprung all the woodlands of Norrath. An unknown force struck it down. Some say it was the great dragon, Veeshan! Whatever the force, the Great Tunarbos was shattered. Lost forever. Now the wood chips lie scattered across the face of Norrath. To hold a shard of the Great Tunarbos is to hold the hand of Tunare."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18911})) then + e.self:Say("Oh my!! Our Qeynos Ambassador, Gash, is in danger. Please take the note over to Captain Tillin of the Qeynos Guard then find Gash and inform him [they are trying to kill him]. Go!!"); + -- confirmed live factions + e.other:Faction(e.self,272,15,0); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,3,0); -- Protector of the Pine + e.other:Faction(e.self,343,2,0); -- QRG Protected Animals + e.other:Faction(e.self,324,-3,0); -- Unkempt Druids + e.other:Faction(e.self,262,2,0); -- Guards of Qeynos + e.other:QuestReward(e.self,0,math.random(10),math.random(10),0,18912,1000); + elseif(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12141})) then -- hand in worked at apprehensive, contrary to quest text being rejected at indifferent, didn't work at threatening so it's between -100 and -500 + e.self:Say("So the Unkempt Druids are alive and well. We shall keep a watchful eye out as should you. Take this for your bravery and defense of the Jaggedpine."); + e.other:Faction(e.self,302,20,0); -- confirmed live factions + e.other:Faction(e.self,272,5,0); -- Faction: Jaggedpine Treefolk + e.other:Faction(e.self,343,3,0); -- Faction: QRG Protected Animals + e.other:Faction(e.self,324,-5,0); -- Faction: Unkempt Druids + e.other:Faction(e.self,262,3,0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,0,math.random(10),math.random(15),0,eq.ChooseRandom(6018,15240,9006,2147,15239,15213,15237,2006,15252,15248,9002,2171),20000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qrg/Gillarian_Naelev.lua b/qrg/Gillarian_Naelev.lua new file mode 100644 index 0000000..46a26ef --- /dev/null +++ b/qrg/Gillarian_Naelev.lua @@ -0,0 +1,54 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome, friend. Welcome to Surefall Glade. I need not remind you about [poaching], I hope"); + elseif(e.message:findi("poaching")) then + e.self:Say("Poaching is illegal. We here are the Protectors of the Pine, rangers sworn to protect our land and all its inhabitants. This includes the wildlife. We spend a lot of time hunting poachers. If you want to [join the hunt], just let me know."); + elseif(e.message:findi("join the hunt")) then + if(e.other:GetFactionValue(e.self) >= 0) then -- verified faction between -100 and 0 + e.self:Say("Very good, friend. Be on the lookout for poachers in Surefall Glade or Qeynos Hills, especially in the nearby caves. The poachers are not always human. Often times we find ourselves a Blackburrow gnoll or two. Bring me back their heads. Let's see how they look mounted above the mantle! Be on your way, then."); + else + e.self:Say("You dare show your face around here, as bad as your reputation is with the Protectors of Jaggedpine? Begone, enemy of the forest!"); + end + elseif(e.message:findi("master poacher")) then + e.self:Say("'The master poacher is Talym Shoontar. If you wish to collect the bounty on this vile man, be sure to speak with our leader, Hager Sureshot. No doubt you will find him practicing his skills at the archery range."); + elseif(e.message:findi("leader")) then + e.self:Say("The land of Surefall Glade is ruled by no single hand other than Tunare, but if guidance is what you seek, I would suggest you speak with Te`Anara. She is the head of the Jaggedpine Treefolk. Otherwise, you could speak with Hager Sureshot of the Protectors of the Pine."); + elseif(e.message:findi("mammoth") or e.message:findi("cave")) then + e.self:Say("That information is best kept secret."); + elseif(e.message:findi("druid guild")) then + e.self:Say("The Jaggedpine Treefolk are the local druids. The masters can be found here within the great tree."); + elseif(e.message:findi("forge") or e.message:findi("oven")) then + e.self:Say("We have nothing like that here in Surefall Glade. You must venture to Qeynos."); + elseif(e.message:findi("armor")) then + e.self:Say("Oftentimes you can find a traveling merchant in one of the nearby houses. Other than that you would have to travel to Qeynos."); + elseif(e.message:findi("qeynos")) then + e.self:Say("The great city of Qeynos can be found by walking along the path outside of Surefall Glade. Many of our rangers and druids serve alongside the Qeynos Guard when the need arises."); + elseif(e.message:findi("bank")) then + e.self:Say("There is no need for a vault among our people. You could try the Qeynos Hold in Qeynos."); + elseif(e.message:findi("chanda") or e.message:findi("baobob") or e.message:findi("miller")) then + e.self:Say("The entire Miller family are nothing more than scum. It is they who entice poachers to continue with their slaughter so they can profit from the skins of the wildlife."); + elseif(e.message:findi("tunarbos")) then + e.self:Say("Long ago, centuries before the Combine Era even, there grew a great tree upon Norrath. It stretched to the stars and was as wide as the span of Erud's Crossing. From the roots of this tree sprung all the woodlands of Norrath. An unknown force struck it down. Some say it was the great dragon, Veeshan! Whatever the force, the Great Tunarbos was shattered. Lost forever. Now the wood chips lie scattered across the face of Norrath. To hold a shard of the Great Tunarbos is to hold the hand of Tunare."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13813})) then -- accepts at kos even though dialogue for quest rejects + e.self:Say("Fantastic work!! Hager will be pleased. Not only do we rid ourself of a poacher, but we rid the land of these destructive gnolls. Our fletchers crafted this for me... Please take it as thanks."); + e.other:Faction(e.self,302,25,0); -- Protectors of Pine + e.other:Faction(e.self,272,6,0); -- Jaggedpine Treefolk + e.other:Faction(e.self,306,-3,0); -- Sabertooths of Blackburrow + e.other:Faction(e.self,262,6,0); -- Guards of Qeynos + e.other:QuestReward(e.self,0,2,0,0,8803,6000); -- Rough Elm Recurve Bow + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13825})) then -- accepts at kos even though dialogue for quest rejects + e.self:Say("Your deeds are great indeed. We shall cleanse our land of these poachers once and for all. A report has surfaced of a [master poacher]."); + e.other:Faction(e.self,302,15,0); -- Protectors of Pine + e.other:Faction(e.self,272,3,0); -- Jaggedpine Treefolk + e.other:Faction(e.self,306,-2,0); -- Sabertooths of Blackburrow + e.other:Faction(e.self,262,3,0); -- Guards of Qeynos + e.other:QuestReward(e.self,0,2,0,0,0,6000); + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/qrg/Grathin_Nilm.lua b/qrg/Grathin_Nilm.lua new file mode 100644 index 0000000..1455c3c --- /dev/null +++ b/qrg/Grathin_Nilm.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("leader")) then + e.self:Say("The land of Surefall Glade is ruled by no single hand other than Tunare, but if guidance is what you seek, I would suggest you speak with Te`Anara. She is the head of the Jaggedpine Treefolk. Otherwise, you could speak with Hager Sureshot of the Protectors of the Pine."); + elseif(e.message:findi("poacher")) then + e.self:Say("Poachers have been plaguing our land. We do our best to stop them. If you wish to join the fight, seek the masters of the Protectors of the Pine."); + elseif(e.message:findi("mammoth") or e.message:findi("cave")) then + e.self:Say("That information is best kept secret."); + elseif(e.message:findi("druid guild")) then + e.self:Say("The Jaggedpine Treefolk are the local druids. The masters can be found here within the great tree."); + elseif(e.message:findi("forge") or e.message:findi("oven")) then + e.self:Say("We have nothing like that here in Surefall Glade. You must venture to Qeynos."); + elseif(e.message:findi("armor")) then + e.self:Say("Oftentimes you can find a traveling merchant in one of the nearby houses. Other than that you would have to travel to Qeynos."); + elseif(e.message:findi("qeynos")) then + e.self:Say("The great city of Qeynos can be found by walking along the path outside of Surefall Glade. Many of our rangers and druids serve alongside the Qeynos Guard when the need arises."); + elseif(e.message:findi("bank")) then + e.self:Say("There is no need for a vault among our people. You could try the Qeynos Hold in Qeynos."); + elseif(e.message:findi("talym") or e.message:findi("shoontar")) then + e.self:Say("Talym Shoontar is a wanted man. He is a very infamous poacher. Hager Sureshot has placed a bounty upon his head."); + elseif(e.message:findi("chanda") or e.message:findi("baobob") or e.message:findi("miller")) then + e.self:Say("The entire Miller family are nothing more than scum. It is they who entice poachers to continue with their slaughter so they can profit from the skins of the wildlife."); + elseif(e.message:findi("tunarbos")) then + e.self:Say("Long ago, centuries before the Combine Era even, there grew a great tree upon Norrath. It stretched to the stars and was as wide as the span of Erud's Crossing. From the roots of this tree sprung all the woodlands of Norrath. An unknown force struck it down. Some say it was the great dragon, Veeshan! Whatever the force, the Great Tunarbos was shattered. Lost forever. Now the wood chips lie scattered across the face of Norrath. To hold a shard of the Great Tunarbos is to hold the hand of Tunare."); + end +end \ No newline at end of file diff --git a/qrg/Gurrin_Nitestorm.lua b/qrg/Gurrin_Nitestorm.lua new file mode 100644 index 0000000..8a99f26 --- /dev/null +++ b/qrg/Gurrin_Nitestorm.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, traveler. I am Gurrin Nitestorm, priest of The Rainkeeper and blacksmith of the Jaggedpine. I am still somewhat lost in these foreign lands and although my excitement to be reunited with our kin and brethren of the Jaggedpine Tree Folk is very much alive, I cannot help but long for my home. Aaaah, but [duty] calls and I must do what I can to aid both forces that equally strive to keep the sacred lands safe from harm and corruption."); + elseif(e.message:findi("duty")) then + e.self:Say("Beyond my sacred duties as a priest of The Rainkeeper and a warder of nature, my artisan skill as a blacksmith has been found to be of great use in these fledgling days of our reunion. The residents of the glade and the Knights of Thunder have found my skills to be of great use, and furthermore, I have had the distinct pleasure of learning the blessed ways of the Rainkeeper's faithful of the Qeynos region. Truly, it has been a remarkable experience and consider myself blessed to have this opportunity to be among my kin. My only regret is that the circumstances under which we have been spurned into this reunification of our culture are not ones of joyous regard -- for the dark shadow of corruption will always find a way to seep through even the strongest of iron [barricades]."); + elseif(e.message:findi("barricade")) then + e.self:Say("In the time when Antonious III guided Qeynos politically and morally, he saw the coming of the dawn of turmoil and sought to preserve all he could of his kingdom and people from the inevitable darkness to enshroud Norrath. The residents of the glade and Jaggedpine alike pleaded to his majesty, asking that the sacred lands of The Rainkeeper's faithful be among the lands spared exposure to the coming shadow of corruption. Knowing the plea of the Jaggedpine Tree Folk to seal themselves indefinitely from their beloved and sacred homeland was not one made lightly or without grievous consideration, his late majesty obliged his subjects' request and a barricade of stone, iron, and magic was constructed on either end of the forest's boundaries."); + elseif(e.message:findi("guide")) then + e.self:Say("Indeed, my friend. It seems that Kaithys has chosen you to do so and I shall do what I can to abide by his wishes. I would advise that you return to Kaithys and show him the purified blade. He knows much better than I what stones must now be overturned for his intentions of you to be properly fulfilled."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 2 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8908,item2 = 8911})) then -- Writ of Thunder and Silver Blade of Rot + e.self:Emote("examines the blade carefully, his manner seeming distant -- as if he were in a trance. The druid then turns to the ancient scroll and slowly begins to read the ancient druidic runes; his voice a soft chant and the rhythm of his incantation slow and powerful. As Gurrin weaves his spell the blade in his hands begins to bleed from the red gem in the hilt, which drains its color as the corruption is purged from its very nature. By the end of the druid's spell the gem in the blade is pure and white and the blade itself seems to have been altered -- sentient and purged of all evil. Gurrin extends the blade to Malvesti, 'The corruption is no more, although the essence of the blade has been returned to the powers that forged it. The Deathrot Knight will exist again and that I cannot change. However, the blade has been set upon a new path and all it needs now is a proper hand and will to [guide] it.'"); + e.other:Faction(e.self,1597,5); -- Residents of Jaggedpine + e.other:Faction(e.self,272,2); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,2); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,8915,1000); -- Purified Silver Blade + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qrg/Hager_Sureshot.lua b/qrg/Hager_Sureshot.lua new file mode 100644 index 0000000..495fbbd --- /dev/null +++ b/qrg/Hager_Sureshot.lua @@ -0,0 +1,66 @@ +function event_spawn(e) + eq.set_timer("repeat", 90000); -- Repeated shoot every 90 seconds +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". Feel free to rest here in Surefall Glade. Just be sure you do no hunting whilst here. If so, then you shall pay the punishment of death. I trust you [will abide by the laws]?"); + elseif(e.message:findi("abide by the laws")) then + e.self:Say("That is wise. Your health, for now, is assured. A plague of hunters has infested our land heavily in recent weeks. The word is out that [Mammoth] still lives. Hunters have flocked here in search of a trophy or profit and glory. Instead, they find the deadly accuracy of my arrows."); + elseif(e.message:findi("mammoth")) then + e.self:Say("Mammoth is the great bear of the caves. [Tunare] has blessed our home with Mammoth's presence. It is said that when the great bear dies, so too shall the Jaggedpine. He would be quite a trophy to some hunter. And quite profitable to a poacher. Even the infamous [Talym Shoontar] has tried his hand at the hunt."); + elseif(e.message:findi("tunare")) then + e.self:Say("What? You do not know the name of the Mother of All?! Creator of all that grows green?! It is She whose mana flows throughout all glades and forests. As do our [brothers to the east], we bow before Her glory, swearing to protect Her creations and the denizens who call them home."); + elseif(e.message:findi("talym shoontar")) then + e.self:Say("Talym Shoontar is a poacher. He has eluded us for quite some time. He has organized parties of poachers to plague our forest as well as others. He hails from Halas, but I have heard he now calls the Plains of Karana home. I have placed a bounty upon his head. Do you [wish to collect the bounty]?"); + elseif(e.message:findi("wish to collect.* bounty")) then + e.self:Say("That's the spirit!! Spoken like a true Protector of the Pine! Last I heard, Talym Shoontar was hunting in the Plains of Karana. He has also been spotted running to and from Qeynos. No doubt he is selling hides to some merchant. End his life of hunting. Bring me his head to collect the bounty."); + elseif(e.message:findi("brothers to the east")) then + e.self:Say("Not brothers of race, but in heart. The good elves of the Faydarks on the continent of Faydwer are the ones I mean. Both our communities respect the fact that peace and harmony can be found within Tunare's glory."); + elseif(e.message:findi("leader")) then + e.self:Say("The land of Surefall Glade is ruled by no single hand other than Tunare, but if guidance is what you seek, I would suggest you speak with Te`Anara. She is the head of the Jaggedpine Treefolk. Otherwise, you could speak with Hager Sureshot of the Protectors of the Pine."); + elseif(e.message:findi("poacher")) then + e.self:Say("Poachers have been plaguing our land. We do our best to stop them. If you wish to join the fight, seek the masters of the Protectors of the Pine."); + elseif(e.message:findi("druid guild")) then + e.self:Say("The Jaggedpine Treefolk are the local druids. The masters can be found here within the great tree."); + elseif(e.message:findi("forge") or e.message:findi("oven")) then + e.self:Say("We have nothing like that here in Surefall Glade. You must venture to Qeynos."); + elseif(e.message:findi("armor")) then + e.self:Say("Oftentimes you can find a traveling merchant in one of the nearby houses. Other than that you would have to travel to Qeynos."); + elseif(e.message:findi("qeynos")) then + e.self:Say("The great city of Qeynos can be found by walking along the path outside of Surefall Glade. Many of our rangers and druids serve alongside the Qeynos Guard when the need arises."); + elseif(e.message:findi("bank")) then + e.self:Say("There is no need for a vault among our people. You could try the Qeynos Hold in Qeynos."); + elseif(e.message:findi("chanda") or e.message:findi("baobob") or e.message:findi("miller")) then + e.self:Say("The entire Miller family are nothing more than scum. It is they who entice poachers to continue with their slaughter so they can profit from the skins of the wildlife."); + elseif(e.message:findi("tunarbos")) then + e.self:Say("Long ago, centuries before the Combine Era even, there grew a great tree upon Norrath. It stretched to the stars and was as wide as the span of Erud's Crossing. From the roots of this tree sprung all the woodlands of Norrath. An unknown force struck it down. Some say it was the great dragon, Veeshan! Whatever the force, the Great Tunarbos was shattered. Lost forever. Now the wood chips lie scattered across the face of Norrath. To hold a shard of the Great Tunarbos is to hold the hand of Tunare."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18709})) then + e.self:Say("Welcome, we are the Protectors of the Pine. Wear this tunic of our guild, and help us defend our great and beautiful woods. Go to Larsk Juton, he will help train you and teach you the power of the woods."); + e.other:Faction(e.self,302,100,0); -- Protectors of Pine + e.other:Faction(e.self,272,25,0); -- Jaggedpine Treefolk + e.other:Faction(e.self,306,-15,0); -- Sabertooths of Blackburrow + e.other:Faction(e.self,262,25,0); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,13509,20); -- Item: Mud Stained Tunic* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13913})) then + e.self:Say("His days of hunting are over. In the name of the Protectors of the Pine, I offer you this reward. If you are unable to make use of it, you may sell it. I suggest you hold onto it. If you are a ranger it will come in handy."); + e.other:Faction(e.self,302,20,0); -- Protectors of Pine + e.other:Faction(e.self,272,5,0); -- Jaggedpine Treefolk + e.other:Faction(e.self,306,-3,0); -- Sabertooths of Blackburrow + e.other:Faction(e.self,262,5,0); -- Guards of Qeynos + e.other:QuestReward(e.self,0,math.random(15),math.random(10),0,eq.ChooseRandom(17804,9006,9001,8011),1000); -- Item: Tailored Quiver, Item: Wooden Shield, Item: Buckler, Item: Hunting Bow + end + item_lib.return_items(e.self, e.other, e.trade); +end + +function event_timer(e) + e.self:DoAnim(9); -- bow +end + +-- EOF zone: qrg ID: 3032 NPC: Hagar_Sureshot diff --git a/qrg/Jarse_Kedison.lua b/qrg/Jarse_Kedison.lua new file mode 100644 index 0000000..1455c3c --- /dev/null +++ b/qrg/Jarse_Kedison.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("leader")) then + e.self:Say("The land of Surefall Glade is ruled by no single hand other than Tunare, but if guidance is what you seek, I would suggest you speak with Te`Anara. She is the head of the Jaggedpine Treefolk. Otherwise, you could speak with Hager Sureshot of the Protectors of the Pine."); + elseif(e.message:findi("poacher")) then + e.self:Say("Poachers have been plaguing our land. We do our best to stop them. If you wish to join the fight, seek the masters of the Protectors of the Pine."); + elseif(e.message:findi("mammoth") or e.message:findi("cave")) then + e.self:Say("That information is best kept secret."); + elseif(e.message:findi("druid guild")) then + e.self:Say("The Jaggedpine Treefolk are the local druids. The masters can be found here within the great tree."); + elseif(e.message:findi("forge") or e.message:findi("oven")) then + e.self:Say("We have nothing like that here in Surefall Glade. You must venture to Qeynos."); + elseif(e.message:findi("armor")) then + e.self:Say("Oftentimes you can find a traveling merchant in one of the nearby houses. Other than that you would have to travel to Qeynos."); + elseif(e.message:findi("qeynos")) then + e.self:Say("The great city of Qeynos can be found by walking along the path outside of Surefall Glade. Many of our rangers and druids serve alongside the Qeynos Guard when the need arises."); + elseif(e.message:findi("bank")) then + e.self:Say("There is no need for a vault among our people. You could try the Qeynos Hold in Qeynos."); + elseif(e.message:findi("talym") or e.message:findi("shoontar")) then + e.self:Say("Talym Shoontar is a wanted man. He is a very infamous poacher. Hager Sureshot has placed a bounty upon his head."); + elseif(e.message:findi("chanda") or e.message:findi("baobob") or e.message:findi("miller")) then + e.self:Say("The entire Miller family are nothing more than scum. It is they who entice poachers to continue with their slaughter so they can profit from the skins of the wildlife."); + elseif(e.message:findi("tunarbos")) then + e.self:Say("Long ago, centuries before the Combine Era even, there grew a great tree upon Norrath. It stretched to the stars and was as wide as the span of Erud's Crossing. From the roots of this tree sprung all the woodlands of Norrath. An unknown force struck it down. Some say it was the great dragon, Veeshan! Whatever the force, the Great Tunarbos was shattered. Lost forever. Now the wood chips lie scattered across the face of Norrath. To hold a shard of the Great Tunarbos is to hold the hand of Tunare."); + end +end \ No newline at end of file diff --git a/qrg/Jhaya_Wyndrunner.lua b/qrg/Jhaya_Wyndrunner.lua new file mode 100644 index 0000000..2e0af43 --- /dev/null +++ b/qrg/Jhaya_Wyndrunner.lua @@ -0,0 +1,144 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Emote("gives a gentle, warm smile to " .. e.other:GetCleanName() .. ", 'Hello, my friend. I trust that you are fairing well this day for I. . . oh, never mind that. I do not mean to be rude and impose my [troubles] to you, my friend. Please, forgive my lack of manners. It is a pleasure to make your acquaintance, of course, but I must return to my duties -- [time is so precious]. . . too precious'."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Oh! Hello there, " .. e.other:GetCleanName() .. ". I am Jhaya Wyndrunner; seamstress, druidic apprentice of The Rainkeeper, and native of the Jaggedpine Forest. It's a pleasure to make your acquaintance, but I really must be returning to my duties. Being away from the forest is so... troubling and I have a tendency to become distracted. But if you are member of the Jaggedpine alliance from Qeynos and The Rainkeeper guides your heart, then please, return to me when you have gained warm acceptance from your brethren in the Jaggedpine Forest."); + else + e.self:Emote("slightly shrinks away in unease as she wearily and eyes you with distrust, 'Good day to you, traveler. I am quite overwhelmed with my duties at the moment and cannot spare a moment away from them, unfortunately -- especially for one as tainted as yourself. Oh... please, do not be offended, traveler, it is merely that I do not see the grace of The Rainkeeper nor the acceptance of our people upon you. I... did not mean to offend, but so is the way of things. Good luck to you on your travels and I will give prayer for Karana's blessings to one day find you."); + end + elseif(e.message:findi("time.* precious")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Emote("shakes her head sadly and then glances to the north, 'Jaggedpine is in the gravest of danger -- and our way of life has changed... I suppose it MUST change for us to survive. I'm here to learn from our comrades and kin of the Glade and to share with them what we've learned since our separation from the outside world. I suppose I should be excited to learn about the rest of the world and meet our fellow warders of nature. But... this world is almost not worth knowing. It is so dark... so... corrupt."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Oh! Hello there, " .. e.other:GetCleanName() .. ". I am Jhaya Wyndrunner; seamstress, druidic apprentice of The Rainkeeper, and native of the Jaggedpine Forest. It's a pleasure to make your acquaintance, but I really must be returning to my duties. Being away from the forest is so... troubling and I have a tendency to become distracted. But if you are member of the Jaggedpine alliance from Qeynos and The Rainkeeper guides your heart, then please, return to me when you have gained warm acceptance from your brethren in the Jaggedpine Forest."); + else + e.self:Emote("slightly shrinks away in unease as she wearily and eyes you with distrust, 'Good day to you, traveler. I am quite overwhelmed with my duties at the moment and cannot spare a moment away from them, unfortunately -- especially for one as tainted as yourself. Oh... please, do not be offended, traveler, it is merely that I do not see the grace of The Rainkeeper nor the acceptance of our people upon you. I... did not mean to offend, but so is the way of things. Good luck to you on your travels and I will give prayer for Karana's blessings to one day find you."); + end + elseif(e.message:findi("jade studded")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Emote("gives a gentle, almost musical chuckle of delight 'Nolan Greenwood must be quite excited to have his great talents be of interest and use once again. I will be more than willing to aid you in fulfilling my former mentor and dearest friend's task of you. Unfortunately, I am at a loss for the supplies that are necessary to aid you properly and my duties keep me safe in the Glade. I will need you to bring me two specific [items] and I will be happy to sew them into the tunic.'"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Oh! Hello there, " .. e.other:GetCleanName() .. ". I am Jhaya Wyndrunner; seamstress, druidic apprentice of The Rainkeeper, and native of the Jaggedpine Forest. It's a pleasure to make your acquaintance, but I really must be returning to my duties. Being away from the forest is so... troubling and I have a tendency to become distracted. But if you are member of the Jaggedpine alliance from Qeynos and The Rainkeeper guides your heart, then please, return to me when you have gained warm acceptance from your brethren in the Jaggedpine Forest."); + else + e.self:Emote("slightly shrinks away in unease as she wearily and eyes you with distrust, 'Good day to you, traveler. I am quite overwhelmed with my duties at the moment and cannot spare a moment away from them, unfortunately -- especially for one as tainted as yourself. Oh... please, do not be offended, traveler, it is merely that I do not see the grace of The Rainkeeper nor the acceptance of our people upon you. I... did not mean to offend, but so is the way of things. Good luck to you on your travels and I will give prayer for Karana's blessings to one day find you."); + end + elseif(e.message:findi("items")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("The items I require for this tunic will not be easy to acquire, my friend and I do apologize for the turmoil that you will likely plunge yourself into to fulfill this task -- but as is the way of those whom defend the natural world. The two items I need of you are the [Pouch of Polished Jade Stones] and a [Black Rawhide Tunic]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Oh! Hello there, " .. e.other:GetCleanName() .. ". I am Jhaya Wyndrunner; seamstress, druidic apprentice of The Rainkeeper, and native of the Jaggedpine Forest. It's a pleasure to make your acquaintance, but I really must be returning to my duties. Being away from the forest is so... troubling and I have a tendency to become distracted. But if you are member of the Jaggedpine alliance from Qeynos and The Rainkeeper guides your heart, then please, return to me when you have gained warm acceptance from your brethren in the Jaggedpine Forest."); + else + e.self:Emote("slightly shrinks away in unease as she wearily and eyes you with distrust, 'Good day to you, traveler. I am quite overwhelmed with my duties at the moment and cannot spare a moment away from them, unfortunately -- especially for one as tainted as yourself. Oh... please, do not be offended, traveler, it is merely that I do not see the grace of The Rainkeeper nor the acceptance of our people upon you. I... did not mean to offend, but so is the way of things. Good luck to you on your travels and I will give prayer for Karana's blessings to one day find you."); + end + elseif(e.message:findi("how to make")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("To make the tunic, you will need to acquire the appropriate materials. These materials are a [Cured Panther Hide] and [Wisps of Potameid Hair]. These two items, if properly sewn together, will make the Black Rawhide Tunic that you will need to further your task to Nolan. But be wary, my friend. The tailoring of this item is not for the inept of this skill. You must master the thread and needle to be successful in sewing the tunic."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Oh! Hello there, " .. e.other:GetCleanName() .. ". I am Jhaya Wyndrunner; seamstress, druidic apprentice of The Rainkeeper, and native of the Jaggedpine Forest. It's a pleasure to make your acquaintance, but I really must be returning to my duties. Being away from the forest is so... troubling and I have a tendency to become distracted. But if you are member of the Jaggedpine alliance from Qeynos and The Rainkeeper guides your heart, then please, return to me when you have gained warm acceptance from your brethren in the Jaggedpine Forest."); + else + e.self:Emote("slightly shrinks away in unease as she wearily and eyes you with distrust, 'Good day to you, traveler. I am quite overwhelmed with my duties at the moment and cannot spare a moment away from them, unfortunately -- especially for one as tainted as yourself. Oh... please, do not be offended, traveler, it is merely that I do not see the grace of The Rainkeeper nor the acceptance of our people upon you. I... did not mean to offend, but so is the way of things. Good luck to you on your travels and I will give prayer for Karana's blessings to one day find you."); + end + elseif(e.message:findi("black rawhide tunic")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("That is an item that you must forge with your own skills, my friend. We of the Jaggedpine use the resources that nature allows us to the fullest extent and it is our law that when we embrace nature's gifts, that the one whom has gained those gifts must use their own hands and work to earn that gift -- for she has granted it to you, and you alone. I can tell you [how to make] the Black Rawhide Tunic and perhaps make this task a bit easier for one as new to our ways as yourself, my friend."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Oh! Hello there, " .. e.other:GetCleanName() .. ". I am Jhaya Wyndrunner; seamstress, druidic apprentice of The Rainkeeper, and native of the Jaggedpine Forest. It's a pleasure to make your acquaintance, but I really must be returning to my duties. Being away from the forest is so... troubling and I have a tendency to become distracted. But if you are member of the Jaggedpine alliance from Qeynos and The Rainkeeper guides your heart, then please, return to me when you have gained warm acceptance from your brethren in the Jaggedpine Forest."); + else + e.self:Emote("slightly shrinks away in unease as she wearily and eyes you with distrust, 'Good day to you, traveler. I am quite overwhelmed with my duties at the moment and cannot spare a moment away from them, unfortunately -- especially for one as tainted as yourself. Oh... please, do not be offended, traveler, it is merely that I do not see the grace of The Rainkeeper nor the acceptance of our people upon you. I... did not mean to offend, but so is the way of things. Good luck to you on your travels and I will give prayer for Karana's blessings to one day find you."); + end + elseif(e.message:findi("Polished Jade Stones")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("Our artisans of the Jaggedpine pride themselves on the beauty and quality of their products. The jade stone has become a sort of a symbol to those of us in the Jaggedpine and it is used almost exclusively to decorate all of our powerful tools. Unfortunately, many others have found the potential of these stones and have begun to reave them from us and our craftsman have been too occupied with the recent events to make any great supply of these items. You must [find] one of the [stolen pouches]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Oh! Hello there, " .. e.other:GetCleanName() .. ". I am Jhaya Wyndrunner; seamstress, druidic apprentice of The Rainkeeper, and native of the Jaggedpine Forest. It's a pleasure to make your acquaintance, but I really must be returning to my duties. Being away from the forest is so... troubling and I have a tendency to become distracted. But if you are member of the Jaggedpine alliance from Qeynos and The Rainkeeper guides your heart, then please, return to me when you have gained warm acceptance from your brethren in the Jaggedpine Forest."); + else + e.self:Emote("slightly shrinks away in unease as she wearily and eyes you with distrust, 'Good day to you, traveler. I am quite overwhelmed with my duties at the moment and cannot spare a moment away from them, unfortunately -- especially for one as tainted as yourself. Oh... please, do not be offended, traveler, it is merely that I do not see the grace of The Rainkeeper nor the acceptance of our people upon you. I... did not mean to offend, but so is the way of things. Good luck to you on your travels and I will give prayer for Karana's blessings to one day find you."); + end + elseif(e.message:findi("stolen pouches")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("With the creation of the passageway in Blackburrow to the Jaggedpine Forest, many of the poachers that are native to Qeynos soil have secretly made their way into our woodlands. They maliciously destroy our beautiful and sacred beasts solely for the purpose of monetary profit. We were not prepared to encounter such individuals and these thieves raided many of our establishments at Fort Jaggedpine. The artisans were not spared these barbarous acts and many of our precious stones were stolen. I know the name of the one who may have these stones -- [Greshvoule]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Oh! Hello there, " .. e.other:GetCleanName() .. ". I am Jhaya Wyndrunner; seamstress, druidic apprentice of The Rainkeeper, and native of the Jaggedpine Forest. It's a pleasure to make your acquaintance, but I really must be returning to my duties. Being away from the forest is so... troubling and I have a tendency to become distracted. But if you are member of the Jaggedpine alliance from Qeynos and The Rainkeeper guides your heart, then please, return to me when you have gained warm acceptance from your brethren in the Jaggedpine Forest."); + else + e.self:Emote("slightly shrinks away in unease as she wearily and eyes you with distrust, 'Good day to you, traveler. I am quite overwhelmed with my duties at the moment and cannot spare a moment away from them, unfortunately -- especially for one as tainted as yourself. Oh... please, do not be offended, traveler, it is merely that I do not see the grace of The Rainkeeper nor the acceptance of our people upon you. I... did not mean to offend, but so is the way of things. Good luck to you on your travels and I will give prayer for Karana's blessings to one day find you."); + end + elseif(e.message:findi("Greshvoule")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Emote("glares at the mention of the name 'Greshvoule was one of many poachers to invade our forest after the construction of the subterranean passageway. He is a very cunning thief and a warrior not to be trifled with. He. . . killed one of our artisans and a dear friend of mine, Callisa, who specialized in the art of carving and polishing these jade stones. One of the rangers native to the glade graced me with his favor and found that the barbarian known as Greshvoule is hiding in Permafrost, trying to escape proper justice for his crimes against the glade. If you could find him and avenge the wrongs committed against my dear friend and the glade, I would be eternally grateful.'"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Oh! Hello there, " .. e.other:GetCleanName() .. ". I am Jhaya Wyndrunner; seamstress, druidic apprentice of The Rainkeeper, and native of the Jaggedpine Forest. It's a pleasure to make your acquaintance, but I really must be returning to my duties. Being away from the forest is so... troubling and I have a tendency to become distracted. But if you are member of the Jaggedpine alliance from Qeynos and The Rainkeeper guides your heart, then please, return to me when you have gained warm acceptance from your brethren in the Jaggedpine Forest."); + else + e.self:Emote("slightly shrinks away in unease as she wearily and eyes you with distrust, 'Good day to you, traveler. I am quite overwhelmed with my duties at the moment and cannot spare a moment away from them, unfortunately -- especially for one as tainted as yourself. Oh... please, do not be offended, traveler, it is merely that I do not see the grace of The Rainkeeper nor the acceptance of our people upon you. I... did not mean to offend, but so is the way of things. Good luck to you on your travels and I will give prayer for Karana's blessings to one day find you."); + end + elseif(e.message:findi("cured panther hide")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("The poachers that have invaded our forest are far from having any mutual arrangement with the world they carelessly reave from. One such poacher, Elishia Blackguard of the Blackguard family is known to 'specialized' in furs. She has been seen skinning the corpses of our forest panthers and despite how despicable her actions are she truly is worthy of her reputation. Likely if you find her, you will find a Flawless Panther Hide. Once you have retrieved the hide and the [gifts of the forest], take the items to my brother, Lerian, who you will find here in the glade."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Oh! Hello there, " .. e.other:GetCleanName() .. ". I am Jhaya Wyndrunner; seamstress, druidic apprentice of The Rainkeeper, and native of the Jaggedpine Forest. It's a pleasure to make your acquaintance, but I really must be returning to my duties. Being away from the forest is so... troubling and I have a tendency to become distracted. But if you are member of the Jaggedpine alliance from Qeynos and The Rainkeeper guides your heart, then please, return to me when you have gained warm acceptance from your brethren in the Jaggedpine Forest."); + else + e.self:Emote("slightly shrinks away in unease as she wearily and eyes you with distrust, 'Good day to you, traveler. I am quite overwhelmed with my duties at the moment and cannot spare a moment away from them, unfortunately -- especially for one as tainted as yourself. Oh... please, do not be offended, traveler, it is merely that I do not see the grace of The Rainkeeper nor the acceptance of our people upon you. I... did not mean to offend, but so is the way of things. Good luck to you on your travels and I will give prayer for Karana's blessings to one day find you."); + end + elseif(e.message:findi("gifts of the forest")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("The great pines in our forest are a constant and generous source of sap. You can harvest this sap without harming the woodlands by foraging. The second gift is the Dew of the Hatchling, which you shall also find without turmoil as the forest will freely give it if you take the time to seek it out."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Oh! Hello there, " .. e.other:GetCleanName() .. ". I am Jhaya Wyndrunner; seamstress, druidic apprentice of The Rainkeeper, and native of the Jaggedpine Forest. It's a pleasure to make your acquaintance, but I really must be returning to my duties. Being away from the forest is so... troubling and I have a tendency to become distracted. But if you are member of the Jaggedpine alliance from Qeynos and The Rainkeeper guides your heart, then please, return to me when you have gained warm acceptance from your brethren in the Jaggedpine Forest."); + else + e.self:Emote("slightly shrinks away in unease as she wearily and eyes you with distrust, 'Good day to you, traveler. I am quite overwhelmed with my duties at the moment and cannot spare a moment away from them, unfortunately -- especially for one as tainted as yourself. Oh... please, do not be offended, traveler, it is merely that I do not see the grace of The Rainkeeper nor the acceptance of our people upon you. I... did not mean to offend, but so is the way of things. Good luck to you on your travels and I will give prayer for Karana's blessings to one day find you."); + end + elseif(e.message:findi("wisps of potameid hair")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("When the folk of the Jaggedpine came to the forest many centuries ago, the Potameides and other nymphs were plentiful across the whole of Norrath's then untainted wilderness. The Potameides assisted our ancestors, teaching them how to harvest safely from the forest and had given us the gifts of their spiritual essence with their blessings. This essence was essential in developing the powerful tools that Nolan has you questing for now. But, as the time passed and civilizations grew, these spirits of nature perished when the nature they are bound to were interrupted with the construction of these cities. The Potameides of the Hatchling are the only naiads of Norrath that any know to still exist. It is this extinction that they face which has made acquiring this essence so [trying]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Oh! Hello there, " .. e.other:GetCleanName() .. ". I am Jhaya Wyndrunner; seamstress, druidic apprentice of The Rainkeeper, and native of the Jaggedpine Forest. It's a pleasure to make your acquaintance, but I really must be returning to my duties. Being away from the forest is so... troubling and I have a tendency to become distracted. But if you are member of the Jaggedpine alliance from Qeynos and The Rainkeeper guides your heart, then please, return to me when you have gained warm acceptance from your brethren in the Jaggedpine Forest."); + else + e.self:Emote("slightly shrinks away in unease as she wearily and eyes you with distrust, 'Good day to you, traveler. I am quite overwhelmed with my duties at the moment and cannot spare a moment away from them, unfortunately -- especially for one as tainted as yourself. Oh... please, do not be offended, traveler, it is merely that I do not see the grace of The Rainkeeper nor the acceptance of our people upon you. I... did not mean to offend, but so is the way of things. Good luck to you on your travels and I will give prayer for Karana's blessings to one day find you."); + end + elseif(e.message:findi("trying")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("The Potameides have become. . . hostile toward any mortal that dares to tread in their territory. This hostility is understandable, but it is not for natural reasons. Our neighbors to the north made a pact with Queen Nhyalia of the Hatchling, and the Potameides abide by this pact -- to destroy any that dares to cross the river. Some of us believe that they have become corrupt by abiding mortal requests and becoming pawns to our feral, wildling neighbors. Unfortunately, one must use force to retrieve the essence. But, do not be discouraged, my friend. The destruction of the Potameides is temporary, for as long as the river itself remains untainted, each spirit will return to guard her sacred home. You must seek out the Potameid Maidens, whose hair will hold the essence you need."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Oh! Hello there, " .. e.other:GetCleanName() .. ". I am Jhaya Wyndrunner; seamstress, druidic apprentice of The Rainkeeper, and native of the Jaggedpine Forest. It's a pleasure to make your acquaintance, but I really must be returning to my duties. Being away from the forest is so... troubling and I have a tendency to become distracted. But if you are member of the Jaggedpine alliance from Qeynos and The Rainkeeper guides your heart, then please, return to me when you have gained warm acceptance from your brethren in the Jaggedpine Forest."); + else + e.self:Emote("slightly shrinks away in unease as she wearily and eyes you with distrust, 'Good day to you, traveler. I am quite overwhelmed with my duties at the moment and cannot spare a moment away from them, unfortunately -- especially for one as tainted as yourself. Oh... please, do not be offended, traveler, it is merely that I do not see the grace of The Rainkeeper nor the acceptance of our people upon you. I... did not mean to offend, but so is the way of things. Good luck to you on your travels and I will give prayer for Karana's blessings to one day find you."); + end + elseif(e.message:findi("shadowjade circlet")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("I see that Cheyloh has been keeping herself quite busy with the recent opening of our lands to Qeynos, and I am pleased to know that our brethren of the world beyond the Jaggedpine have an interest in our ways. I will aid you to create the circlet, but I must ask that you brave the wilds and turmoil of this world to retrieve two items that I will then weave into the circlet for you. The items I need are a Shadowjade Weave, which you will make with your own hands by weaving two Shadowjade Vines and two strands of Shadowjade Moss together -- both components you may find by foraging through the Jaggedpine forest. Be sure that your mastery of tailoring is up to par when attempting this feat, for the components are delicate and will be destroyed in the hands of the inexperienced. The second item I am in need of is a [Blackened Mithril Chain]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Oh! Hello there, " .. e.other:GetCleanName() .. ". I am Jhaya Wyndrunner; seamstress, druidic apprentice of The Rainkeeper, and native of the Jaggedpine Forest. It's a pleasure to make your acquaintance, but I really must be returning to my duties. Being away from the forest is so... troubling and I have a tendency to become distracted. But if you are member of the Jaggedpine alliance from Qeynos and The Rainkeeper guides your heart, then please, return to me when you have gained warm acceptance from your brethren in the Jaggedpine Forest."); + else + e.self:Emote("slightly shrinks away in unease as she wearily and eyes you with distrust, 'Good day to you, traveler. I am quite overwhelmed with my duties at the moment and cannot spare a moment away from them, unfortunately -- especially for one as tainted as yourself. Oh... please, do not be offended, traveler, it is merely that I do not see the grace of The Rainkeeper nor the acceptance of our people upon you. I... did not mean to offend, but so is the way of things. Good luck to you on your travels and I will give prayer for Karana's blessings to one day find you."); + end + elseif(e.message:findi("blackened mithril chain")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("The artisans of Qeynos have provided a wonderful counterpart to our natural, although nearly depleted resource that was once used when making this line of our sacred armor. Unfortunately, the one who last attempted to retrieve the chain was killed in Lavastorm by one of the poachers, who seek the Blackened Mithril for their own reasons -- likely to steal our recipe and sell the corrupted versions of these treasured items on the underground market of Norrath. In any case, we have heard that the chain was sold to one appropriately named Nyuae the Cruel -- a Teir'Dal enchantress. What her motives are, I am unsure of, but we do know that she has taken refuge in the Ocean of Tears. Retrieve the Blackened Mithril Chain and return it to me with the Shadowjade Weave."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Oh! Hello there, " .. e.other:GetCleanName() .. ". I am Jhaya Wyndrunner; seamstress, druidic apprentice of The Rainkeeper, and native of the Jaggedpine Forest. It's a pleasure to make your acquaintance, but I really must be returning to my duties. Being away from the forest is so... troubling and I have a tendency to become distracted. But if you are member of the Jaggedpine alliance from Qeynos and The Rainkeeper guides your heart, then please, return to me when you have gained warm acceptance from your brethren in the Jaggedpine Forest."); + else + e.self:Emote("slightly shrinks away in unease as she wearily and eyes you with distrust, 'Good day to you, traveler. I am quite overwhelmed with my duties at the moment and cannot spare a moment away from them, unfortunately -- especially for one as tainted as yourself. Oh... please, do not be offended, traveler, it is merely that I do not see the grace of The Rainkeeper nor the acceptance of our people upon you. I... did not mean to offend, but so is the way of things. Good luck to you on your travels and I will give prayer for Karana's blessings to one day find you."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 750 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8763,item2 = 8762})) then -- black rawhide tunic and pouch of polished jade stones + e.self:Say("Excellent, my friend! Well done indeed. These are exactly what I needed to make the tunic Nolan has requested of you. And. . . thank you for avenging my dear, departed friend. She shall be missed, and it is in her memory that I give you the Jade Studded Tunic. Go now, my friend. Nolan awaits and I am sure that he will be most impressed with your success thus far"); + e.other:Faction(e.self,1597,5); -- Residents of Jaggedpine + e.other:Faction(e.self,272,2); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,2); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,8761,2000); -- jade-studden rawhide tunic + elseif(e.other:GetFactionValue(e.self) >= 750 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8884,item2 = 8885})) then -- blackened mithril chain & shadowjade weave + e.self:Say("Excellent, my friend! Well done indeed. These are exactly what I needed to make the circlet. Go now, my friend. Cheyloh awaits and I am sure that he will be most impressed with your success thus far."); -- text made up/adapted from the tunic reward + e.other:Faction(e.self,1597,5); -- Residents of Jaggedpine + e.other:Faction(e.self,272,2); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,2); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,8883,2000); -- shadowjade circlet + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qrg/Krystal_Aspen.lua b/qrg/Krystal_Aspen.lua new file mode 100644 index 0000000..1455c3c --- /dev/null +++ b/qrg/Krystal_Aspen.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("leader")) then + e.self:Say("The land of Surefall Glade is ruled by no single hand other than Tunare, but if guidance is what you seek, I would suggest you speak with Te`Anara. She is the head of the Jaggedpine Treefolk. Otherwise, you could speak with Hager Sureshot of the Protectors of the Pine."); + elseif(e.message:findi("poacher")) then + e.self:Say("Poachers have been plaguing our land. We do our best to stop them. If you wish to join the fight, seek the masters of the Protectors of the Pine."); + elseif(e.message:findi("mammoth") or e.message:findi("cave")) then + e.self:Say("That information is best kept secret."); + elseif(e.message:findi("druid guild")) then + e.self:Say("The Jaggedpine Treefolk are the local druids. The masters can be found here within the great tree."); + elseif(e.message:findi("forge") or e.message:findi("oven")) then + e.self:Say("We have nothing like that here in Surefall Glade. You must venture to Qeynos."); + elseif(e.message:findi("armor")) then + e.self:Say("Oftentimes you can find a traveling merchant in one of the nearby houses. Other than that you would have to travel to Qeynos."); + elseif(e.message:findi("qeynos")) then + e.self:Say("The great city of Qeynos can be found by walking along the path outside of Surefall Glade. Many of our rangers and druids serve alongside the Qeynos Guard when the need arises."); + elseif(e.message:findi("bank")) then + e.self:Say("There is no need for a vault among our people. You could try the Qeynos Hold in Qeynos."); + elseif(e.message:findi("talym") or e.message:findi("shoontar")) then + e.self:Say("Talym Shoontar is a wanted man. He is a very infamous poacher. Hager Sureshot has placed a bounty upon his head."); + elseif(e.message:findi("chanda") or e.message:findi("baobob") or e.message:findi("miller")) then + e.self:Say("The entire Miller family are nothing more than scum. It is they who entice poachers to continue with their slaughter so they can profit from the skins of the wildlife."); + elseif(e.message:findi("tunarbos")) then + e.self:Say("Long ago, centuries before the Combine Era even, there grew a great tree upon Norrath. It stretched to the stars and was as wide as the span of Erud's Crossing. From the roots of this tree sprung all the woodlands of Norrath. An unknown force struck it down. Some say it was the great dragon, Veeshan! Whatever the force, the Great Tunarbos was shattered. Lost forever. Now the wood chips lie scattered across the face of Norrath. To hold a shard of the Great Tunarbos is to hold the hand of Tunare."); + end +end \ No newline at end of file diff --git a/qrg/Larsk_Juton.lua b/qrg/Larsk_Juton.lua new file mode 100644 index 0000000..1565676 --- /dev/null +++ b/qrg/Larsk_Juton.lua @@ -0,0 +1,84 @@ +-- NPC: Larsk_Juton + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, Adventurer! I hope you are enjoying your time in Surefall Glade. You must be careful when leaving the Jaggedpine. There have been many report of [Sabertooths] attacking travelers."); + elseif(e.message:findi("sabertooth")) then + e.self:Say("The gnolls of Blackburrow are called Sabertooths. They have been seen in force on a regular basis. They are surely up to something. We have even heard rumors of a [pact] between Qeynos merchants and the dogs."); + elseif(e.message:findi("pact")) then + e.self:Say("Sources have come forward to tell of a pact between a merchant of Qeynos and the Sabertooths. It all has to do with blades and brew. We hear that a meeting will occur soon, somewhere in the Qeynos Hills at night. Do not fear, we shall find a brave ranger to [halt this meeting]."); + elseif(e.message:findi("halt.* meeting")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Very good of you. Stop this meeting by killing the gnoll in Qeynos Hills. We hear that he shall be there in the late evening, and that his name is Furgoot or Furgy, something like that. Find him and kill him. I want his head. And if you should find any evidence of who the merchant is, be sure to hand it over to me."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Well, I, and the Protectors of Jaggedpine, have noticed your helpful deeds so far... just keep up the good work, and you will soon be trusted enough to handle such important matters."); + else + e.self:Say("You dare show your face around here, as bad as your reputation is with the Protectors of Jaggedpine? Begone, enemy of the forest!"); + end + elseif(e.message:findi("assist.* extermination of.* gnoll brewer")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Within the bowels of Blackburrow, our scouts have reported seeing the gnoll brewers. You will go and brave the lair of the dogs and slay these brewers in order to cease the flow of Blackburrow Stout. During your mission, should you find any Blackburrow casks, you must return them to me. When you have recovered three of these casks, I shall award you the [Cloak of Jaggedpine]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Well, I, and the Protectors of Jaggedpine, have noticed your helpful deeds so far... just keep up the good work, and you will soon be trusted enough to handle such important matters."); + else + e.self:Say("You dare show your face around here, as bad as your reputation is with the Protectors of Jaggedpine? Begone, enemy of the forest!"); + end + elseif(e.message:findi("blackburrow stout")) then + e.self:Say("Blackburrow Stout is a grog created by the gnolls of Blackburrow. It is no surprise that the grog is illegal in Qeynos. Even so, I hear there are some barkeeps who dare sell it."); + elseif(e.message:findi("Cloak of Jaggedpine")) then + e.self:Say("The Cloak of Jaggedpine was made for those loyal to the ways of the forest. It is enchanted to increase one's dexterity. It is awarded to those who have aided in our cause to rid the land of those vile dogs called the Sabertooths. Should you earn one, be sure to hold onto it - you never know when we may alter the enchantments placed upon the cloak."); + elseif(e.message:findi("leader")) then + e.self:Say("The land of Surefall Glade is ruled by no single hand other than Tunare, but if guidance is what you seek, I would suggest you speak with Te`Anara. She is the head of the Jaggedpine Treefolk. Otherwise, you could speak with Hager Sureshot of the Protectors of the Pine."); + elseif(e.message:findi("poacher")) then + e.self:Say("Poachers have been plaguing our land. We do our best to stop them. If you wish to join the fight, seek the masters of the Protectors of the Pine."); + elseif(e.message:findi("mammoth") or e.message:findi("cave")) then + e.self:Say("That information is best kept secret."); + elseif(e.message:findi("druid guild")) then + e.self:Say("The Jaggedpine Treefolk are the local druids. The masters can be found here within the great tree."); + elseif(e.message:findi("forge") or e.message:findi("oven")) then + e.self:Say("We have nothing like that here in Surefall Glade. You must venture to Qeynos."); + elseif(e.message:findi("armor")) then + e.self:Say("Oftentimes you can find a traveling merchant in one of the nearby houses. Other than that you would have to travel to Qeynos."); + elseif(e.message:findi("qeynos")) then + e.self:Say("The great city of Qeynos can be found by walking along the path outside of Surefall Glade. Many of our rangers and druids serve alongside the Qeynos Guard when the need arises."); + elseif(e.message:findi("bank")) then + e.self:Say("There is no need for a vault among our people. You could try the Qeynos Hold in Qeynos."); + elseif(e.message:findi("talym") or e.message:findi("shoontar")) then + e.self:Say("Talym Shoontar is a wanted man. He is a very infamous poacher. Hager Sureshot has placed a bounty upon his head."); + elseif(e.message:findi("chanda") or e.message:findi("baobob") or e.message:findi("miller")) then + e.self:Say("The entire Miller family are nothing more than scum. It is they who entice poachers to continue with their slaughter so they can profit from the skins of the wildlife."); + elseif(e.message:findi("tunarbos")) then + e.self:Say("Long ago, centuries before the Combine Era even, there grew a great tree upon Norrath. It stretched to the stars and was as wide as the span of Erud's Crossing. From the roots of this tree sprung all the woodlands of Norrath. An unknown force struck it down. Some say it was the great dragon, Veeshan! Whatever the force, the Great Tunarbos was shattered. Lost forever. Now the wood chips lie scattered across the face of Norrath. To hold a shard of the Great Tunarbos is to hold the hand of Tunare."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Good work, but I must see at least three Blackburrow casks before I can reward you with the [Cloak of Jaggedpine]."; + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13309})) then + e.self:Say("So, I see you rid the hills of the beast. Good work! I have a reward for you. I hope it will be usefull. I am afraid this gnoll's death will not halt the alliance between the two. I shall require your services to [assist in the extermination of the gnoll brewers]."); + -- Confirmed Live Faction + e.other:Faction(e.self,302,25,0); -- Protectors of Pine + e.other:Faction(e.self,272,6,0); -- Jaggedpine Treefolk + e.other:Faction(e.self,306,-3,0); -- Sabertooths of Blackburrow + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:QuestReward(e.self,math.random(5),math.random(5),math.random(5),0,math.random(2137,2172,9006,5033),20000); --items: Raw-Hide Skullcap, Large Raw-Hide Boots, Wooden Shield, Bronze Broad Sword + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 17970,item2 = 17970, item3 = 17970},1,text)) then + e.self:Say("Excellent! Ridding the area of those foul beasts will certainly slow down whatever it is they are planning. Here is the Cloak of Jaggedpine. You should keep this, for you never know when we may decide to alter the enchantments on it."); + e.other:Faction(e.self,302,20,0); -- Faction: Protectors of Pine + e.other:Faction(e.self,272,5,0); -- Faction: Jaggedpine Treefolk + e.other:Faction(e.self,306,-3,0); -- Faction: Sabertooths of Blackburrow + e.other:Faction(e.self,262,5,0); -- Faction: Guards of Qeynos + e.other:QuestReward(e.self,math.random(5),math.random(5),math.random(5),0,2915,1000); -- Item: Cloak of Jaggedpine + elseif(e.other:GetFactionValue(e.self) >= -100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18811})) then + e.self:Say("Fine Work, " .. e.other:GetCleanName() .. ". Hmmm. It seems this needs taking care of. Take this note to the Captain of the City Guard in Qeynos. His name is Captain Tillin. He will have to attend to this matter. Also.. Let me see the gnoll\'s head. I must know you killed him. Be safe, my friend. I am sure that whoever this McNeal is, he was simply a lackey. Whoever he works for is most likely going to be looking for you. Watch your back in Qeynos."); + -- Confirmed Live Faction + e.other:Faction(e.self,302,5,0); -- Protectors of Pine + e.other:Faction(e.self,272,1,0); -- Jaggedpine Treefolk + e.other:Faction(e.self,306,-1,0); -- Sabertooths of Blackburrow + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:QuestReward(e.self,math.random(5),math.random(5),math.random(5),0,18815,5000); + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/qrg/Lerian_Wyndrunner.lua b/qrg/Lerian_Wyndrunner.lua new file mode 100644 index 0000000..2052a82 --- /dev/null +++ b/qrg/Lerian_Wyndrunner.lua @@ -0,0 +1,134 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Emote("gives a tilt of his head toward " .. e.other:GetCleanName() .. ". 'Greetings, I am not native to htese lands, so I ask that you forgive me if I do not recognize your face, my friend. If [you have come to inquire about my presence here], then please, do rest assured that I am not a threat to these acred grounds. As Jaggedpine is from where I hail, know that my respect for this place is equal to that of any whom call this place home."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("gives a slight smile and gentle nod of his head to you, 'Good day, my friend. I see The Rainkeeper has his grace reaching toward you -- the taint of corruption is blessedly absent from your being. However, you are a stranger yet to the Residents of the Pine. Go out into the world, my friend, and make your presence and deeds known as amiable to our cause and perhaps I may be able to be of service. May Karana guide and keep you well, my friend."); + else + e.self:Emote("raises his chin high and continues an emotionless study of " .. e.other:GetCleanName() .. ", 'You are tainted -- in spirit or in deeds I am unsure. However, your taint is apparent and I cannot be bothered with one as yourself. If and when the touch of corruption has abandoned you in the eyes of The Rainkeeper's faithful, you may return to me and I may be a bit more receptive to your company. Until that time arrives, traveler, I must ask that you move along."); + end + elseif(e.message:findi("leggings")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("Aaaahh. . . I see that you have chosen to embark on the sacred path of the Jaggedpine. No doubt my dearest Cheyloh has sent you, and elseif she has placed her trust in you and given you the sacred knowledge to embark on this ancient quest, then my services are at your disposal in this cause, my friend. To create the Moss Threaded Rawhide Leggings, you will need to obtain the [needed components] that I will work with to make the leggings."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("gives a slight smile and gentle nod of his head to you, 'Good day, my friend. I see The Rainkeeper has his grace reaching toward you -- the taint of corruption is blessedly absent from your being. However, you are a stranger yet to the Residents of the Pine. Go out into the world, my friend, and make your presence and deeds known as amiable to our cause and perhaps I may be able to be of service. May Karana guide and keep you well, my friend."); + else + e.self:Emote("raises his chin high and continues an emotionless study of " .. e.other:GetCleanName() .. ", 'You are tainted -- in spirit or in deeds I am unsure. However, your taint is apparent and I cannot be bothered with one as yourself. If and when the touch of corruption has abandoned you in the eyes of The Rainkeeper's faithful, you may return to me and I may be a bit more receptive to your company. Until that time arrives, traveler, I must ask that you move along."); + end + elseif(e.message:findi("needed components")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("The recipe for the Moss Threaded Rawhide Leggings is very specelseific, and the materials that I am about to describe to you must be exact for the creation of the Leggings of the Pine to be properly completed. From you, I will need a pair of Ruined Rawhide Leggings and a [Spool of Moss Thread]. The ruined leggings you will likely find in the Shrine of Brell Serilis, located beneath our forest. When the gnolls first arrived in the Jaggedpine, they raided our fort several times and although no lives have yet to be lost specifically to their talons, something of which I give praise and thanks to The Rainkeeper for daily, the gnolls have stolen our supplies from time to time."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("gives a slight smile and gentle nod of his head to you, 'Good day, my friend. I see The Rainkeeper has his grace reaching toward you -- the taint of corruption is blessedly absent from your being. However, you are a stranger yet to the Residents of the Pine. Go out into the world, my friend, and make your presence and deeds known as amiable to our cause and perhaps I may be able to be of service. May Karana guide and keep you well, my friend."); + else + e.self:Emote("raises his chin high and continues an emotionless study of " .. e.other:GetCleanName() .. ", 'You are tainted -- in spirit or in deeds I am unsure. However, your taint is apparent and I cannot be bothered with one as yourself. If and when the touch of corruption has abandoned you in the eyes of The Rainkeeper's faithful, you may return to me and I may be a bit more receptive to your company. Until that time arrives, traveler, I must ask that you move along."); + end + elseif(e.message:findi("spool of moss thread")) then + -- text altered from Live. There is no item "spool of moss thread"; a bug allowed the leggings to be created from only the moss and threads. I modified the recipe and text to require all three things to be combined. + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("This item you will need to use your own hands, patience, and devotion to the natural world to create. A mastery of the skill of weaving -- tailoring -- is very important when attempting to handle such a feat. The items that you must weave to make this enchanted thread are the Shadowjade Moss and Threads of the Hatchling. The Shadowjade Moss you will find as a gift from the Jaggedpine for your services to her. If you search carefully and with selfless patience, she will grant you a perfect specimen suitable for the creation of this item. The Threads of the Hatchling you must acquire from the Potameid Bewilders in the caves located off the Hatchling River. Combine these two items with the ruined leggings to prepare the Moss Threaded Leggings. May The Rainkeeper guide you in your quest, my friend, and I look forward to your return."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("gives a slight smile and gentle nod of his head to you, 'Good day, my friend. I see The Rainkeeper has his grace reaching toward you -- the taint of corruption is blessedly absent from your being. However, you are a stranger yet to the Residents of the Pine. Go out into the world, my friend, and make your presence and deeds known as amiable to our cause and perhaps I may be able to be of service. May Karana guide and keep you well, my friend."); + else + e.self:Emote("raises his chin high and continues an emotionless study of " .. e.other:GetCleanName() .. ", 'You are tainted -- in spirit or in deeds I am unsure. However, your taint is apparent and I cannot be bothered with one as yourself. If and when the touch of corruption has abandoned you in the eyes of The Rainkeeper's faithful, you may return to me and I may be a bit more receptive to your company. Until that time arrives, traveler, I must ask that you move along."); + end + elseif(e.message:findi("sharktooth sleeves")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("You seek to prove yourself upon the ancient and sacred path of the Jaggedpine, I see. You will need to procure two specific items for me so that I might make one of the components that you will need to produce the sleeves. Yes, my, friend, you will be making the final product with your own hands and patience, as is the ultimate test of this path -- to prove that you are willing and able to earn these items on your own accord. The items I need to make the Reinforced Rawhide Sleeves are a Shark Rib from one of the great behemoths of Kedge, and a Flayed Panther Hide. The hide you will find upon one of the poachers that have taken it upon themselves to establish an outpost in our forest. The one you will find to have such hide within their possession is Yranik Blackguard."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("gives a slight smile and gentle nod of his head to you, 'Good day, my friend. I see The Rainkeeper has his grace reaching toward you -- the taint of corruption is blessedly absent from your being. However, you are a stranger yet to the Residents of the Pine. Go out into the world, my friend, and make your presence and deeds known as amiable to our cause and perhaps I may be able to be of service. May Karana guide and keep you well, my friend."); + else + e.self:Emote("raises his chin high and continues an emotionless study of " .. e.other:GetCleanName() .. ", 'You are tainted -- in spirit or in deeds I am unsure. However, your taint is apparent and I cannot be bothered with one as yourself. If and when the touch of corruption has abandoned you in the eyes of The Rainkeeper's faithful, you may return to me and I may be a bit more receptive to your company. Until that time arrives, traveler, I must ask that you move along."); + end + elseif(e.message:findi("more must i do")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("Return to Kedge and find two Discarded Shark Teeth. These teeth you will likely find at the bottom of the oceanic ruins and need not interfere with the corrupted, coerced slaves of Phinagel to acquire the teeth. Yes, we know of Phinagel and the gruesome legend that surrounds him -- remember, he is indeed very old and his 'accomplishments' with the Kedge race happened long before the Jaggedpine borders were sealed off. We are not entirely ignorant to the outside world -- it is just the modern times that have become a bit of a mystery. Once you have acquired the teeth, you will need to sew them onto the reinforced sleeves that I have just given you. Be sure you hold a master's eye in the art of tailoring when attempting this feat, for the thread is very thin and will break at the touch of an armature's attempt."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("gives a slight smile and gentle nod of his head to you, 'Good day, my friend. I see The Rainkeeper has his grace reaching toward you -- the taint of corruption is blessedly absent from your being. However, you are a stranger yet to the Residents of the Pine. Go out into the world, my friend, and make your presence and deeds known as amiable to our cause and perhaps I may be able to be of service. May Karana guide and keep you well, my friend."); + else + e.self:Emote("raises his chin high and continues an emotionless study of " .. e.other:GetCleanName() .. ", 'You are tainted -- in spirit or in deeds I am unsure. However, your taint is apparent and I cannot be bothered with one as yourself. If and when the touch of corruption has abandoned you in the eyes of The Rainkeeper's faithful, you may return to me and I may be a bit more receptive to your company. Until that time arrives, traveler, I must ask that you move along."); + end + elseif(e.message:findi("mithril fern boots")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("Cheyloh has caught the attentions of yet another druid seeking to prove themselves worthy of nature's gifts. If she has placed her trust and faith in you with this, one of our most sacred of tests and equipment, then I shall guide and aid you in parallel to her faith, my friend. I will need you to seek out and return to me some Shadowjade Fern Seeds, two Shadowjade Fern Leaves, all of which you can forage from the Jaggedpine forest, and a Jaggedpine Panther Hide. To obtain this hide, you will seek out one known as Fitorrin Bladespur. The citizens of Qeynos have reported that he has taken a ship to Odus. As he is a criminal, Erudin may have already disposed of him, but that is unlikely for Fitorrin is well informed and education on the ways of the world for one of such a debased profession as he. It would be wise to search the forest of Toxxulia for his whereabouts."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("gives a slight smile and gentle nod of his head to you, 'Good day, my friend. I see The Rainkeeper has his grace reaching toward you -- the taint of corruption is blessedly absent from your being. However, you are a stranger yet to the Residents of the Pine. Go out into the world, my friend, and make your presence and deeds known as amiable to our cause and perhaps I may be able to be of service. May Karana guide and keep you well, my friend."); + else + e.self:Emote("raises his chin high and continues an emotionless study of " .. e.other:GetCleanName() .. ", 'You are tainted -- in spirit or in deeds I am unsure. However, your taint is apparent and I cannot be bothered with one as yourself. If and when the touch of corruption has abandoned you in the eyes of The Rainkeeper's faithful, you may return to me and I may be a bit more receptive to your company. Until that time arrives, traveler, I must ask that you move along."); + end + elseif(e.message:findi("bracer")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("This is an item that you will need to work hard to obtain, my friend, but I shall guide you through this task -- if you can appeal to the world that you have dedicated your life to and receive her acceptance and gifts. I will need two specific items from you to create that which Cheyloh has requested of you. Those items are the Black Rawhide Bracer and the [Braids of Pine]. The rangers of the Jaggedpine Treefolk have informed me that Ryleen Bladespur, one of the poachers to have recently infested our forest, has made her way to South Karana to sell much of her stolen wears within the underground market of Norrath. Seek her out and you will find the bracer."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("gives a slight smile and gentle nod of his head to you, 'Good day, my friend. I see The Rainkeeper has his grace reaching toward you -- the taint of corruption is blessedly absent from your being. However, you are a stranger yet to the Residents of the Pine. Go out into the world, my friend, and make your presence and deeds known as amiable to our cause and perhaps I may be able to be of service. May Karana guide and keep you well, my friend."); + else + e.self:Emote("raises his chin high and continues an emotionless study of " .. e.other:GetCleanName() .. ", 'You are tainted -- in spirit or in deeds I am unsure. However, your taint is apparent and I cannot be bothered with one as yourself. If and when the touch of corruption has abandoned you in the eyes of The Rainkeeper's faithful, you may return to me and I may be a bit more receptive to your company. Until that time arrives, traveler, I must ask that you move along."); + end + elseif(e.message:findi("braids of pine")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("This item you will need to make on your own by carefully weaving strands of Shadowjade Moss, Jaggedpine Needles, and Potameid Braids into one delicate strand. The forest will offer the Shadowjade Moss and Jaggedpine Needles to you if she deems you worthy of her gifts. The braids, however, you must take from the Potameid Wildlings of the Hatchling River. Be sure that your mastery in the ways of tailoring are in the forefront of your mind when you attempt this feat, for anything less will result in the destruction of these delicate materials."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("gives a slight smile and gentle nod of his head to you, 'Good day, my friend. I see The Rainkeeper has his grace reaching toward you -- the taint of corruption is blessedly absent from your being. However, you are a stranger yet to the Residents of the Pine. Go out into the world, my friend, and make your presence and deeds known as amiable to our cause and perhaps I may be able to be of service. May Karana guide and keep you well, my friend."); + else + e.self:Emote("raises his chin high and continues an emotionless study of " .. e.other:GetCleanName() .. ", 'You are tainted -- in spirit or in deeds I am unsure. However, your taint is apparent and I cannot be bothered with one as yourself. If and when the touch of corruption has abandoned you in the eyes of The Rainkeeper's faithful, you may return to me and I may be a bit more receptive to your company. Until that time arrives, traveler, I must ask that you move along."); + end + elseif(e.message:findi("forest woven gloves")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("The gloves you seek to acquire will take much patience and perseverance on your behalf to be successful in obtaining. I can guide you as to who and what you must seek and give you the proper instructions to fulfill your part before I can give the final touch to creating the Forest Woven Gloves. The task you must fulfill before returning to me to complete the final process in the item's creation is to use your own mastery in the ways of tailoring to create the Blackened Mithril Netted Gloves. There are two components for this item -- one is the Tattered Panther Hide Gloves, which you will likely find upon a renegade poacher known as Theoris Bladespur, who the scouts of the Glade have informed me currently resides in South Karana. The second item is the [Blackened Mithril Netting]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("gives a slight smile and gentle nod of his head to you, 'Good day, my friend. I see The Rainkeeper has his grace reaching toward you -- the taint of corruption is blessedly absent from your being. However, you are a stranger yet to the Residents of the Pine. Go out into the world, my friend, and make your presence and deeds known as amiable to our cause and perhaps I may be able to be of service. May Karana guide and keep you well, my friend."); + else + e.self:Emote("raises his chin high and continues an emotionless study of " .. e.other:GetCleanName() .. ", 'You are tainted -- in spirit or in deeds I am unsure. However, your taint is apparent and I cannot be bothered with one as yourself. If and when the touch of corruption has abandoned you in the eyes of The Rainkeeper's faithful, you may return to me and I may be a bit more receptive to your company. Until that time arrives, traveler, I must ask that you move along."); + end + elseif(e.message:findi("blackened mithril netting")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("This material is new to the creation of the gloves, as the resource we had once used grows dangerously scarce. I have spoken with the craftsman of Qeynos and they have given me the knowledge of the Blackened Mithril, which can be found in the clutches of the kobold king's guard who resides in Solusek's Eye. The artisans of Qeynos say that the Blackened Mithril is light and its ability to hold an enchantment is unsurpassed by anything they have yet to find on Antonica, making it suitable for our intentions of creating this item. Once you have successfully made the Blackened Mithril Netted Gloves, you will need to return them to me with the Shadowjade Moss and Shadowjade Fern Leaves, both of which you can safely procure in the Jaggedpine, if the forest will allow you take of it."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("gives a slight smile and gentle nod of his head to you, 'Good day, my friend. I see The Rainkeeper has his grace reaching toward you -- the taint of corruption is blessedly absent from your being. However, you are a stranger yet to the Residents of the Pine. Go out into the world, my friend, and make your presence and deeds known as amiable to our cause and perhaps I may be able to be of service. May Karana guide and keep you well, my friend."); + else + e.self:Emote("raises his chin high and continues an emotionless study of " .. e.other:GetCleanName() .. ", 'You are tainted -- in spirit or in deeds I am unsure. However, your taint is apparent and I cannot be bothered with one as yourself. If and when the touch of corruption has abandoned you in the eyes of The Rainkeeper's faithful, you may return to me and I may be a bit more receptive to your company. Until that time arrives, traveler, I must ask that you move along."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 750 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8766,item2 = 8767,item3 = 8765},0)) then -- flawless panther hide, sap, & dew of the hatchling + e.self:Emote("studies the hide carefully -- using his eyes, fingertips, and sense of smell to be sure that it is indeed of the panthers native to the Jaggedpine forest. Accepting the true identity of the hide, Lerian removes a small vial of clear oil and smears it across the flawless midnight fur. He then retrieves the seeds from the small pouch given to him by " .. e.other:GetCleanName() .. ", and begins to chant lowly and softly in his ancient druidic tongue. The seeds begin to sprout, growing at an unnatural pace from the nourishing oil. The fern imbeds itself in a beautiful design upon the hide as they grow -- their roots and the thin, delicate vines rendering the flora secure in its place. Lerian then offers the hide to " .. e.other:GetCleanName() .. ", 'You will need to seek out one other item -- the Blackened Mithril Boots from the kobold priest in Solusek's eye. Once you have the boots, you will need a master's knowledge of tailoring to carefully fit this hide over the boots before returning them to Cheyloh."); + e.other:Faction(e.self,1597,5); -- Residents of Jaggedpine + e.other:Faction(e.self,272,2); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,2); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,8764,2000); -- cured panther hide + elseif(e.other:GetFactionValue(e.self) >= 750 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8799,item2 = 8797},0)) then -- shark rib & flayed panther hide + e.self:Emote("inspects the rib and the hide, checking for imperfections that might disable him from completing his work. Satisfied with the quality of the components, Lerian places the rib in the center of the hide, which is draped over his arm. He then begins to speak softly in an ancient, druidic tongue that is foreign to your ears and knowledge. As he speaks, the black fur of the hide seems to pierce the cartilage shark rib, binding it in-place. The rest of the hide folds back, wrapping itself around the druid's arm. Lerian then completes his chant and removes the Reinforced Rawhide Sleeves from his arm and offers it to " .. e.other:GetCleanName() .. " 'There is [more that you must do], my friend, before this task is complete.'"); + e.other:Faction(e.self,1597,5); -- Residents of Jaggedpine + e.other:Faction(e.self,272,2); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,2); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,8863,2000); --reinforced rawhide sleeves + elseif(e.other:GetFactionValue(e.self) >= 750 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8879,item2 = 8873,item3 = 8878,item4 = 8878},0)) then -- jaggedpine panther hide,shadowjade fern seeds,2x shadowjade fern leaves + e.self:Emote("studies the hide carefully -- using his eyes, fingertips, and sense of smell to be sure that it is indeed of the panthers native to the Jaggedpine forest. Accepting the true identity of the hide, Lerian removes a small vial of clear oil and smears it across the flawless midnight fur. He then retrieves the seeds from the small pouch given to him by " .. e.other:GetCleanName() .. ", and begins to chant lowly and softly in his ancient druidic tongue. The seeds begin to sprout, growing at an unnatural pace from the nourishing oil. The fern imbeds itself in a beautiful design upon the hide as they grow -- their roots and the thin, delicate vines rendering the flora secure in its place. Lerian then offers the hide to " .. e.other:GetCleanName() .. ", 'You will need to seek out one other item -- the Blackened Mithril Boots from the kobold priest in Solusek's eye. Once you have the boots, you will need a master's knowledge of tailoring to carefully fit this hide over the boots before returning them to Cheyloh."); + e.other:Faction(e.self,1597,5); -- Residents of Jaggedpine + e.other:Faction(e.self,272,2); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,2); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,8881,2000); -- shadowjade hide + elseif(e.other:GetFactionValue(e.self) >= 750 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8866,item2 = 8867},0)) then -- braids of pine & black rawhide bracer + e.self:Emote("gently places the braids of pine across the rawhide bracer. He murmurs a few soft syllables, and the braids begin to move and grow, as if of their own volition. Wrapping around and through the blackened rawhide, the bracer is soon completely covered by the braids. With twinkle in his eye, Lerian hands the bracer to " .. e.other:GetCleanName() .. "."); + e.other:Faction(e.self,1597,5); -- Residents of Jaggedpine + e.other:Faction(e.self,272,2); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,2); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,8865,2000); -- bracer of braided pine + elseif(e.other:GetFactionValue(e.self) >= 750 and item_lib.check_turn_in(e.self, e.trade, {item1 = 8872,item2 = 8792,item3 = 8878},0)) then -- blackened mithril gloves & shadowjade moss & fern leaves + e.self:Emote("examines the gloves, checking the item's stability and quality of make. Satisfied, Lerian then pulls the gloves onto his hands and proceeds to carefully cover the gloves with the dark emerald moss. He then closes his eyes and begins to whisper a soft chant in an ancient druidic language as he opens the small pouch and sprinkles the fern seeds across the palms and back of his hands. As he chants, his hands hold a soft emerald radiance and the seeds begin to sprout before your eyes. The tiny ferns weave in an out of the Mithril netting, binding the moss to the gloves and creating a beautiful design upon the back of each gloves. Lerian removes the gloves as his chant ends and extends them to " .. e.other:GetCleanName() .. ", a delicate, warm smile upon his face in silent approval."); + e.other:Faction(e.self,1597,5); -- Residents of Jaggedpine + e.other:Faction(e.self,272,2); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,2); -- Protectors of Pine + e.other:Faction(e.self,262,1); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,8871,2000); -- forest woven gloves + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qrg/Mammoth.lua b/qrg/Mammoth.lua new file mode 100644 index 0000000..173257a --- /dev/null +++ b/qrg/Mammoth.lua @@ -0,0 +1,12 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12139})) then + e.other:Faction(e.self,343, 1,0); -- Faction: QRG Protected Animals + e.other:Faction(e.self,302, 1,0); -- Faction: Protectors of Pine + e.other:Faction(e.self,272, 1,0); -- Faction: Jaggedpine Treefolk + e.other:Faction(e.self,366, -1,0); -- Faction: Karana Bandits + e.other:QuestReward(e.self,0,0,0,0,18809,200); -- Item: Bayle List II + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qrg/Merdan_Fleetfoot.lua b/qrg/Merdan_Fleetfoot.lua new file mode 100644 index 0000000..effc397 --- /dev/null +++ b/qrg/Merdan_Fleetfoot.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Yes Niera! Oh. Erm. Hi. I mean, uh. How are you?"); + elseif(e.message:findi("niera")) then + e.self:Emote("blushes. 'She is, uh.. I don't know. I haven't been able to speak with her. She has many suitors, and I'm just another poor ranger. I spend my days here pretending to fish, to carve bows, but really I'm just waiting to catch a glimpse of her. I thought about adventuring into the world to find some kind of token to give her, to show her how I feel, but I can't tear myself away from here.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12774})) then + e.self:Emote("blinks and looks at the flower. 'This is perfect. Thank you! I'm going to go over to her now. Erm, well, maybe I'll wait a week to let the uh.. beauty of the flower.. uhm.. blossom. Yes, that sounds good. Here, you take this painting. I don't need it now. I made it myself, she wouldn't like it anyways.'"); + e.other:QuestReward(e.self,0,0,0,0,20475); -- Item: Wood Painting + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qrg/Merona_Castekin.lua b/qrg/Merona_Castekin.lua new file mode 100644 index 0000000..8bef597 --- /dev/null +++ b/qrg/Merona_Castekin.lua @@ -0,0 +1,49 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh, hello! Welcome to Surefall Glade. Are you planning a trip to Qeynos? If you are, I could use some help finding my [brother]."); + elseif(e.message:findi("brother")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- not verified as exact, tested at 0 faction and wasn't high enough + e.self:Say("My brother Ronn went to Qeynos several days ago for supplies. He was just going to Sneed's and back. But he hasn't been seen since. I can't leave the Glade because the Sabertooths could attack at any minute. Could you please find out what happened to my brother? Ask Sneed about [Ronn Castekin]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Well, I, and the Protectors of Jaggedpine, have noticed your helpful deeds so far... just keep up the good work, and you will soon be trusted enough to handle such important matters."); + else + e.self:Say("You dare show your face around here, as bad as your reputation is with the Protectors of Jaggedpine? Begone, enemy of the forest!"); + end + elseif(e.message:findi("leader")) then + e.self:Say("The land of Surefall Glade is ruled by no single hand other than Tunare, but if guidance is what you seek, I would suggest you speak with Te`Anara. She is the head of the Jaggedpine Treefolk. Otherwise, you could speak with Hager Sureshot of the Protectors of the Pine."); + elseif(e.message:findi("poacher")) then + e.self:Say("Poachers have been plaguing our land. We do our best to stop them. If you wish to join the fight, seek the masters of the Protectors of the Pine."); + elseif(e.message:findi("mammoth") or e.message:findi("cave")) then + e.self:Say("That information is best kept secret."); + elseif(e.message:findi("druid guild")) then + e.self:Say("The Jaggedpine Treefolk are the local druids. The masters can be found here within the great tree."); + elseif(e.message:findi("forge") or e.message:findi("oven")) then + e.self:Say("We have nothing like that here in Surefall Glade. You must venture to Qeynos."); + elseif(e.message:findi("armor")) then + e.self:Say("Oftentimes you can find a traveling merchant in one of the nearby houses. Other than that you would have to travel to Qeynos."); + elseif(e.message:findi("qeynos")) then + e.self:Say("The great city of Qeynos can be found by walking along the path outside of Surefall Glade. Many of our rangers and druids serve alongside the Qeynos Guard when the need arises."); + elseif(e.message:findi("bank")) then + e.self:Say("There is no need for a vault among our people. You could try the Qeynos Hold in Qeynos."); + elseif(e.message:findi("talym") or e.message:findi("shoontar")) then + e.self:Say("Talym Shoontar is a wanted man. He is a very infamous poacher. Hager Sureshot has placed a bounty upon his head."); + elseif(e.message:findi("chanda") or e.message:findi("baobob") or e.message:findi("miller")) then + e.self:Say("The entire Miller family are nothing more than scum. It is they who entice poachers to continue with their slaughter so they can profit from the skins of the wildlife."); + elseif(e.message:findi("tunarbos")) then + e.self:Say("Long ago, centuries before the Combine Era even, there grew a great tree upon Norrath. It stretched to the stars and was as wide as the span of Erud's Crossing. From the roots of this tree sprung all the woodlands of Norrath. An unknown force struck it down. Some say it was the great dragon, Veeshan! Whatever the force, the Great Tunarbos was shattered. Lost forever. Now the wood chips lie scattered across the face of Norrath. To hold a shard of the Great Tunarbos is to hold the hand of Tunare."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 18014})) then + e.self:Say("Oh Tunare why!?!? Those foul Bloodsabers will pay for my brother's death!! Here. You have given us valuable information about a new threat to our homes. Take this a token of our appreciation."); + e.other:Faction(e.self,302,5,0); -- Protectors of Pine + e.other:Faction(e.self,272,1,0); -- Jaggedpine Treefolk + e.other:Faction(e.self,306,-1,0); -- Sabertooths of Blackburrow + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(13184,13185,13006,13007,8011,13004,13015,13009),1000); + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/qrg/Niera_Farbreeze.lua b/qrg/Niera_Farbreeze.lua new file mode 100644 index 0000000..c5a6a1a --- /dev/null +++ b/qrg/Niera_Farbreeze.lua @@ -0,0 +1,36 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + eq.set_proximity(xloc - 20, xloc + 20, yloc - 20, yloc + 20); +end + +function event_enter(e) + eq.set_timer("hum",30); +end + +function event_timer(e) + if(e.timer == "hum") then + e.self:Emote("hums softly, a little tune that tickles the back of your mind but you can't quite recall."); + eq.stop_timer("hum"); + end +end + +function event_say(e) + if(e.message:findi("tune") or e.message:findi("humming")) then + e.self:Say("Ohh. Just a little song my mother taught me when I was young. It speaks of the earth, the sky, and the sparkling stars above, always there."); + elseif(e.message:findi("always there")) then + e.self:Say("Aye, always there. Like this small bag I wear around my neck. The last gift of my dying mother. It holds a fine dust, a dust she collected during her short life, that she believed brought her luck. It's speckled, flecked as the night sky is with stars."); + elseif(e.message:findi("speckled flecked dust")) then + e.self:Say("I've had this little bit of dust, all I have of my mother, for many years now. It's the only reminder I have of her. She said it was special, magical, a warmth to help me through the nights. Even if my life were in the balance, I would have a hard time giving it up."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20476})) then + e.self:Say("This, this is my mother's amulet. I cannot believe it. Please, take this powder you say you need. Perhaps it does have powers, I don't know, I don't care. Thank you, my eternal thanks for this."); + e.other:QuestReward(e.self,0,0,0,0,20456); -- Item: Platinum Speckled Powder + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qrg/Poacher.lua b/qrg/Poacher.lua new file mode 100644 index 0000000..f64b91f --- /dev/null +++ b/qrg/Poacher.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, adventurer. I hope the land of Norrath has been kind to you. I myself have made a killing. Hunting is surely the sport of the rich. And if you are not rich at its start, you soon shall be, from the profit made off hides."); + end +end \ No newline at end of file diff --git a/qrg/Qomber_Roblen.lua b/qrg/Qomber_Roblen.lua new file mode 100644 index 0000000..1455c3c --- /dev/null +++ b/qrg/Qomber_Roblen.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("leader")) then + e.self:Say("The land of Surefall Glade is ruled by no single hand other than Tunare, but if guidance is what you seek, I would suggest you speak with Te`Anara. She is the head of the Jaggedpine Treefolk. Otherwise, you could speak with Hager Sureshot of the Protectors of the Pine."); + elseif(e.message:findi("poacher")) then + e.self:Say("Poachers have been plaguing our land. We do our best to stop them. If you wish to join the fight, seek the masters of the Protectors of the Pine."); + elseif(e.message:findi("mammoth") or e.message:findi("cave")) then + e.self:Say("That information is best kept secret."); + elseif(e.message:findi("druid guild")) then + e.self:Say("The Jaggedpine Treefolk are the local druids. The masters can be found here within the great tree."); + elseif(e.message:findi("forge") or e.message:findi("oven")) then + e.self:Say("We have nothing like that here in Surefall Glade. You must venture to Qeynos."); + elseif(e.message:findi("armor")) then + e.self:Say("Oftentimes you can find a traveling merchant in one of the nearby houses. Other than that you would have to travel to Qeynos."); + elseif(e.message:findi("qeynos")) then + e.self:Say("The great city of Qeynos can be found by walking along the path outside of Surefall Glade. Many of our rangers and druids serve alongside the Qeynos Guard when the need arises."); + elseif(e.message:findi("bank")) then + e.self:Say("There is no need for a vault among our people. You could try the Qeynos Hold in Qeynos."); + elseif(e.message:findi("talym") or e.message:findi("shoontar")) then + e.self:Say("Talym Shoontar is a wanted man. He is a very infamous poacher. Hager Sureshot has placed a bounty upon his head."); + elseif(e.message:findi("chanda") or e.message:findi("baobob") or e.message:findi("miller")) then + e.self:Say("The entire Miller family are nothing more than scum. It is they who entice poachers to continue with their slaughter so they can profit from the skins of the wildlife."); + elseif(e.message:findi("tunarbos")) then + e.self:Say("Long ago, centuries before the Combine Era even, there grew a great tree upon Norrath. It stretched to the stars and was as wide as the span of Erud's Crossing. From the roots of this tree sprung all the woodlands of Norrath. An unknown force struck it down. Some say it was the great dragon, Veeshan! Whatever the force, the Great Tunarbos was shattered. Lost forever. Now the wood chips lie scattered across the face of Norrath. To hold a shard of the Great Tunarbos is to hold the hand of Tunare."); + end +end \ No newline at end of file diff --git a/qrg/Raken.lua b/qrg/Raken.lua new file mode 100644 index 0000000..1455c3c --- /dev/null +++ b/qrg/Raken.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("leader")) then + e.self:Say("The land of Surefall Glade is ruled by no single hand other than Tunare, but if guidance is what you seek, I would suggest you speak with Te`Anara. She is the head of the Jaggedpine Treefolk. Otherwise, you could speak with Hager Sureshot of the Protectors of the Pine."); + elseif(e.message:findi("poacher")) then + e.self:Say("Poachers have been plaguing our land. We do our best to stop them. If you wish to join the fight, seek the masters of the Protectors of the Pine."); + elseif(e.message:findi("mammoth") or e.message:findi("cave")) then + e.self:Say("That information is best kept secret."); + elseif(e.message:findi("druid guild")) then + e.self:Say("The Jaggedpine Treefolk are the local druids. The masters can be found here within the great tree."); + elseif(e.message:findi("forge") or e.message:findi("oven")) then + e.self:Say("We have nothing like that here in Surefall Glade. You must venture to Qeynos."); + elseif(e.message:findi("armor")) then + e.self:Say("Oftentimes you can find a traveling merchant in one of the nearby houses. Other than that you would have to travel to Qeynos."); + elseif(e.message:findi("qeynos")) then + e.self:Say("The great city of Qeynos can be found by walking along the path outside of Surefall Glade. Many of our rangers and druids serve alongside the Qeynos Guard when the need arises."); + elseif(e.message:findi("bank")) then + e.self:Say("There is no need for a vault among our people. You could try the Qeynos Hold in Qeynos."); + elseif(e.message:findi("talym") or e.message:findi("shoontar")) then + e.self:Say("Talym Shoontar is a wanted man. He is a very infamous poacher. Hager Sureshot has placed a bounty upon his head."); + elseif(e.message:findi("chanda") or e.message:findi("baobob") or e.message:findi("miller")) then + e.self:Say("The entire Miller family are nothing more than scum. It is they who entice poachers to continue with their slaughter so they can profit from the skins of the wildlife."); + elseif(e.message:findi("tunarbos")) then + e.self:Say("Long ago, centuries before the Combine Era even, there grew a great tree upon Norrath. It stretched to the stars and was as wide as the span of Erud's Crossing. From the roots of this tree sprung all the woodlands of Norrath. An unknown force struck it down. Some say it was the great dragon, Veeshan! Whatever the force, the Great Tunarbos was shattered. Lost forever. Now the wood chips lie scattered across the face of Norrath. To hold a shard of the Great Tunarbos is to hold the hand of Tunare."); + end +end \ No newline at end of file diff --git a/qrg/Ran_Walker.lua b/qrg/Ran_Walker.lua new file mode 100644 index 0000000..6cda38c --- /dev/null +++ b/qrg/Ran_Walker.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("leader")) then + e.self:Say("The land of Surefall Glade is ruled by no single hand other than Tunare, but if guidance is what you seek, I would suggest you speak with Te`Anara. She is the head of the Jaggedpine Treefolk. Otherwise, you could speak with Hager Sureshot of the Protectors of the Pine."); + elseif(e.message:findi("poacher")) then + e.self:Say("Poachers have been plaguing our land. We do our best to stop them. If you wish to join the fight, seek the masters of the Protectors of the Pine."); + elseif(e.message:findi("mammoth") or e.message:findi("cave")) then + e.self:Say("That information is best kept secret."); + elseif(e.message:findi("druid guild")) then + e.self:Say("The Jaggedpine Treefolk are the local druids. The masters can be found here within the great tree."); + elseif(e.message:findi("forge") or e.message:findi("oven")) then + e.self:Say("We have nothing like that here in Surefall Glade. You must venture to Qeynos."); + elseif(e.message:findi("armor")) then + e.self:Say("Oftentimes you can find a traveling merchant in one of the nearby houses. Other than that you would have to travel to Qeynos."); + elseif(e.message:findi("qeynos")) then + e.self:Say("The great city of Qeynos can be found by walking along the path outside of Surefall Glade. Many of our rangers and druids serve alongside the Qeynos Guard when the need arises."); + elseif(e.message:findi("bank")) then + e.self:Say("There is no need for a vault among our people. You could try the Qeynos Hold in Qeynos."); + elseif(e.message:findi("talym") or e.message:findi("shoontar")) then + e.self:Say("Talym Shoontar is a wanted man. He is a very infamous poacher. Hager Sureshot has placed a bounty upon his head."); + elseif(e.message:findi("chanda") or e.message:findi("baobob") or e.message:findi("miller")) then + e.self:Say("The entire Miller family are nothing more than scum. It is they who entice poachers to continue with their slaughter so they can profit from the skins of the wildlife."); + elseif(e.message:findi("tunarbos")) then + e.self:Say("Long ago, centuries before the Combine Era even, there grew a great tree upon Norrath. It stretched to the stars and was as wide as the span of Erud's Crossing. From the roots of this tree sprung all the woodlands of Norrath. An unknown force struck it down. Some say it was the great dragon, Veeshan! Whatever the force, the Great Tunarbos was shattered. Lost forever. Now the wood chips lie scattered across the face of Norrath. To hold a shard of the Great Tunarbos is to hold the hand of Tunare."); + end +end \ No newline at end of file diff --git a/qrg/Sallah.lua b/qrg/Sallah.lua new file mode 100644 index 0000000..1455c3c --- /dev/null +++ b/qrg/Sallah.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("leader")) then + e.self:Say("The land of Surefall Glade is ruled by no single hand other than Tunare, but if guidance is what you seek, I would suggest you speak with Te`Anara. She is the head of the Jaggedpine Treefolk. Otherwise, you could speak with Hager Sureshot of the Protectors of the Pine."); + elseif(e.message:findi("poacher")) then + e.self:Say("Poachers have been plaguing our land. We do our best to stop them. If you wish to join the fight, seek the masters of the Protectors of the Pine."); + elseif(e.message:findi("mammoth") or e.message:findi("cave")) then + e.self:Say("That information is best kept secret."); + elseif(e.message:findi("druid guild")) then + e.self:Say("The Jaggedpine Treefolk are the local druids. The masters can be found here within the great tree."); + elseif(e.message:findi("forge") or e.message:findi("oven")) then + e.self:Say("We have nothing like that here in Surefall Glade. You must venture to Qeynos."); + elseif(e.message:findi("armor")) then + e.self:Say("Oftentimes you can find a traveling merchant in one of the nearby houses. Other than that you would have to travel to Qeynos."); + elseif(e.message:findi("qeynos")) then + e.self:Say("The great city of Qeynos can be found by walking along the path outside of Surefall Glade. Many of our rangers and druids serve alongside the Qeynos Guard when the need arises."); + elseif(e.message:findi("bank")) then + e.self:Say("There is no need for a vault among our people. You could try the Qeynos Hold in Qeynos."); + elseif(e.message:findi("talym") or e.message:findi("shoontar")) then + e.self:Say("Talym Shoontar is a wanted man. He is a very infamous poacher. Hager Sureshot has placed a bounty upon his head."); + elseif(e.message:findi("chanda") or e.message:findi("baobob") or e.message:findi("miller")) then + e.self:Say("The entire Miller family are nothing more than scum. It is they who entice poachers to continue with their slaughter so they can profit from the skins of the wildlife."); + elseif(e.message:findi("tunarbos")) then + e.self:Say("Long ago, centuries before the Combine Era even, there grew a great tree upon Norrath. It stretched to the stars and was as wide as the span of Erud's Crossing. From the roots of this tree sprung all the woodlands of Norrath. An unknown force struck it down. Some say it was the great dragon, Veeshan! Whatever the force, the Great Tunarbos was shattered. Lost forever. Now the wood chips lie scattered across the face of Norrath. To hold a shard of the Great Tunarbos is to hold the hand of Tunare."); + end +end \ No newline at end of file diff --git a/qrg/Salmekia_Treherth.lua b/qrg/Salmekia_Treherth.lua new file mode 100644 index 0000000..64a5b36 --- /dev/null +++ b/qrg/Salmekia_Treherth.lua @@ -0,0 +1,60 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Welcome to Surefall Glade, %s, the home of the Jaggedpine Treefolk. I help teach young druids the ways of our people. We have worshipers of both Karana, the Storm Lord, and Tunare, the All Mother, living here in the glade. If you are a new druid I will help you obtain a [suit of clothing] that will offer comfort and protection while working in the wilds and help protect you from the weapons of the Gnolls that wish to take these lands.",e.other:GetName())); + elseif(e.message:findi("suit of clothing")) then + e.self:Say("You must use this specially prepared Curing Kit to craft the clothing. Each article of clothing requires different materials for its construction. Do you plan on crafting Pine Druid [Gloves], Pine Druid [Boots], a Pine Druid [Bracer], a Pine Druid [Cap], Pine Druid [Leggings], Pine Druid [Sleeves], or a Pine Druid [Tunic]? When you have been outfitted and are ready I will tell you of a [task] that you can assist with."); + e.other:SummonCursorItem(17125); -- Item: Curing Kit + elseif(e.message:findi("glove")) then + e.self:Say("To craft Pine Druid Gloves you require two [silk thread], ruined gnoll leather gloves, two giant field rat whiskers, and a large king snake skin. Once you have the necessary components combine them in your Curing Kit with this Tattered Glove Pattern."); + e.other:SummonCursorItem(19559); -- Item: Tattered Glove Pattern + elseif(e.message:findi("boot")) then + e.self:Say("To craft Pine Druid Boots you require two [silk thread], ruined gnoll leather boots, two giant field rat whiskers, and a large whiskered bat fur. Once you have the necessary components combine them in your Curing Kit with this Tattered Boot Pattern."); + e.other:SummonCursorItem(19561); -- Item: Tattered Boot Pattern + elseif(e.message:findi("bracer")) then + e.self:Say("To craft an Pine Druid Bracer you require a [silk thread], a ruined gnoll leather bracer, and a giant field rat whiskers. Once you have the necessary components combine them in your Curing Kit with this Tattered Wristband Pattern."); + e.other:SummonCursorItem(19558); -- Item: Tattered Wristband Pattern + elseif(e.message:findi("cap")) then + e.self:Say("To craft a Pine Druid Cap you require two [silk thread], a ruined gnoll leather cap, a large whiskered bat fur, and a large field rat pelt. Once you have the necessary components combine them in your Curing Kit with this Tattered Cap Pattern."); + e.other:SummonCursorItem(19555); -- Item: Tattered Cap Pattern + elseif(e.message:findi("legging")) then + e.self:Say("To craft Pine Druid Leggings you require three [silk thread], ruined gnoll leather leggings, two large whiskered bat furs, and a giant field rat pelt. Once you have the necessary components combine them in your Curing Kit with this Tattered Pant Pattern."); + e.other:SummonCursorItem(19560); -- Item: Tattered Pant Pattern + elseif(e.message:findi("sleeve")) then + e.self:Say("To craft Pine Druid Sleeves you require two [silk thread], ruined gnoll leather sleeves, two large whiskered bat furs, and a giant field rat pelt. Once you have the necessary components combine them in your Curing Kit with this Tattered Sleeves Pattern."); + e.other:SummonCursorItem(19557); -- Item: Tattered Sleeve Pattern + elseif(e.message:findi("tunic")) then + e.self:Say("To craft a Pine Druid Tunic you require four [silk thread], a ruined gnoll leather tunic, a giant whiskered bat fur, and a giant field rat pelt. Once you have the necessary components combine them in your Curing Kit with this Tattered Tunic Pattern."); + e.other:SummonCursorItem(19556); -- Item: Tattered Tunic Pattern + elseif(e.message:findi("silk thread")) then + e.self:Say("Silk thread is created from two spiderling silks woven together in a sewing kit or loom."); + elseif(e.message:findi("task")) then + e.self:Say("We druids seek to live in harmony with nature, taking only what we need from the land and the creatures that inhabit it. Although the City of Qeynos is a noble place, there are people in the city that do not share our reverence for nature and poach the animals of the Karanas needlessly. Even worse than these poachers, whom the rangers of the Jaggedpine Treefolk constantly seek to deter, are the despicable worshipers of Bertoxxulous that hide in the sewers and catacombs of Qeynos. These wicked individuals are known as the [Bloodsabers]."); + elseif(e.message:findi("bloodsabers")) then + e.self:Say("The Bloodsabers are responsible for a number of atrocities including the spreading of the diseases which have been inflicting the wolves and bears of the Qeynos Hills and the recent poisoning of the farmers fields in the Plains of Karana. Recently we have discovered that a Bloodsaber defiler has been attempting to poison the waters of Surefall Glade. Find this individual and deal with him accordingly, I doubt that this individual will surrender willingly. If need be eliminate them and bring me their head."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20268})) then + e.self:Say("It is a shame that some people decide to throw away their humanity with the worship of evil deities. Your actions have saved the lives of many creatures that rely on the waters of this glade. Take this Rusty Pine Druid Scimitar and sharpen it in a forge with a sharpening stone. It may take you several attempts if you are unfamiliar with the process. Once that is done return to me with the Sharpened Pine Druid Scimitar, a Gnoll Fang, and a Large King Snake Skin."); + -- Confirmed Live Experience and Faction + e.other:Faction(e.self,272,10,0); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,2,0); -- Protectors of Pine + e.other:Faction(e.self,343,1,0); -- QRG Protected Animals + e.other:Faction(e.self,324,-2,0); -- Unkempt Druids + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:QuestReward(e.self,{itemid = 20258,exp = 1000}); -- Item: Rusty Pine Druid Scimitar + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20259,item2 = 13915,item3 = 19945})) then + e.self:Emote("fashions a grip from the large king snake skin, attaches the gnoll fang to the heel of the swords hilt, and polishes the blade of the sword with a luminescent green polish. 'Here is your new weapon young druid. May it serve you well.'"); + -- Confirmed Live Experience and Faction + e.other:Faction(e.self,272,5,0); -- Jaggedpine Treefolk + e.other:Faction(e.self,302,1,0); -- Protectors of Pine + e.other:Faction(e.self,343,1,0); -- QRG Protected Animals + e.other:Faction(e.self,324,-1,0); -- Unkempt Druids + e.other:Faction(e.self,262,1,0); -- Guards of Qeynos + e.other:QuestReward(e.self,{itemid = 20265,exp = 1000}) -- Item: Pine Druid Scimitar + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qrg/Sequea_Erthinon.lua b/qrg/Sequea_Erthinon.lua new file mode 100644 index 0000000..1455c3c --- /dev/null +++ b/qrg/Sequea_Erthinon.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("leader")) then + e.self:Say("The land of Surefall Glade is ruled by no single hand other than Tunare, but if guidance is what you seek, I would suggest you speak with Te`Anara. She is the head of the Jaggedpine Treefolk. Otherwise, you could speak with Hager Sureshot of the Protectors of the Pine."); + elseif(e.message:findi("poacher")) then + e.self:Say("Poachers have been plaguing our land. We do our best to stop them. If you wish to join the fight, seek the masters of the Protectors of the Pine."); + elseif(e.message:findi("mammoth") or e.message:findi("cave")) then + e.self:Say("That information is best kept secret."); + elseif(e.message:findi("druid guild")) then + e.self:Say("The Jaggedpine Treefolk are the local druids. The masters can be found here within the great tree."); + elseif(e.message:findi("forge") or e.message:findi("oven")) then + e.self:Say("We have nothing like that here in Surefall Glade. You must venture to Qeynos."); + elseif(e.message:findi("armor")) then + e.self:Say("Oftentimes you can find a traveling merchant in one of the nearby houses. Other than that you would have to travel to Qeynos."); + elseif(e.message:findi("qeynos")) then + e.self:Say("The great city of Qeynos can be found by walking along the path outside of Surefall Glade. Many of our rangers and druids serve alongside the Qeynos Guard when the need arises."); + elseif(e.message:findi("bank")) then + e.self:Say("There is no need for a vault among our people. You could try the Qeynos Hold in Qeynos."); + elseif(e.message:findi("talym") or e.message:findi("shoontar")) then + e.self:Say("Talym Shoontar is a wanted man. He is a very infamous poacher. Hager Sureshot has placed a bounty upon his head."); + elseif(e.message:findi("chanda") or e.message:findi("baobob") or e.message:findi("miller")) then + e.self:Say("The entire Miller family are nothing more than scum. It is they who entice poachers to continue with their slaughter so they can profit from the skins of the wildlife."); + elseif(e.message:findi("tunarbos")) then + e.self:Say("Long ago, centuries before the Combine Era even, there grew a great tree upon Norrath. It stretched to the stars and was as wide as the span of Erud's Crossing. From the roots of this tree sprung all the woodlands of Norrath. An unknown force struck it down. Some say it was the great dragon, Veeshan! Whatever the force, the Great Tunarbos was shattered. Lost forever. Now the wood chips lie scattered across the face of Norrath. To hold a shard of the Great Tunarbos is to hold the hand of Tunare."); + end +end \ No newline at end of file diff --git a/qrg/Sivina_Lutewhisper.lua b/qrg/Sivina_Lutewhisper.lua new file mode 100644 index 0000000..6d34ac6 --- /dev/null +++ b/qrg/Sivina_Lutewhisper.lua @@ -0,0 +1,14 @@ +--Quest Name: Bard Mail Quest + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Hail, %s - Are you [interested] in helping the League of Antonican Bards by delivering some [mail]?",e.other:GetName())); + elseif(e.message:findi("mail") and not e.message:findi("deliver") and not e.message:findi("Qeynos")) then + e.self:Say("The League of Antonican Bards has a courier system made up of travelers and adventurers. We pay good gold to anyone who will take messages from bards such as myself to one of our more central offices. Are you [interested]?"); + elseif(e.message:findi("interested")) then + e.self:Say("I have messages that need to go to - well, right now I have one that needs to go to Qeynos. Will you [deliver] mail to [Qeynos] for me?"); + elseif(e.message:findi("deliver") or e.message:findi("Qeynos")) then + e.self:Say("Take this letter to Tralyn Marsinger in Qeynos. You can find him at the bard guild hall. I am sure he will compensate you for your troubles."); + e.other:SummonCursorItem(18154); -- Item: A Bardic Letter (Qeynos) + end +end diff --git a/qrg/Talym_Shoontar.lua b/qrg/Talym_Shoontar.lua new file mode 100644 index 0000000..337890c --- /dev/null +++ b/qrg/Talym_Shoontar.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("How are you, friend? It is a good day to be alive in Antonica! If you should happen to visit Surefall Glade, say hello to Hager Sureshot for me."); + elseif(e.message:findi("hager")) then + e.self:Say("Hager Sureshot is that know-nothing ranger in charge of the Protectors of the Pine. He thinks he can protect all of Surefall Glade. He is wrong."); + end +end \ No newline at end of file diff --git a/qrg/Te-Anara.lua b/qrg/Te-Anara.lua new file mode 100644 index 0000000..c52c35e --- /dev/null +++ b/qrg/Te-Anara.lua @@ -0,0 +1,85 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome, friend! I hope your stay in Surefall Glade will ease your mind and soothe your soul. While you are here, we ask you to abide by the [laws of the Jaggedpine]."); + elseif(e.message:findi("jaggedpine")) then + e.self:Say("We ask that you do not start campfires on our land. Do not litter our land with any items. Do not chop down our pines or tread upon any foliage. Please do not take more than a bellyful of fish. Do not harm any other wildlife and stay clear of [the great bear]!"); + elseif(e.message:findi("great bear")) then + e.self:Say("The great bear I speak of is Mammoth. He has lived among us for over a century. Tunare has truly blessed us with his presence. As long as Mammoth lives, so too does Surefall Glade. We are currently worried. Corun has reported that there is something [wrong with Mammoth]."); + elseif(e.message:findi("wrong with mammoth")) then + e.self:Say("Mammoth is not eating. We believe something is lodged in his throat. We require a young druid to [fetch a special potion]."); + elseif(e.message:findi("special potion")) then + if(e.other:GetFaction(e.self) < 5) then -- must be at least amiably + e.self:Say("Go to the gnome city of Ak'Anon on the continent of Faydwer. With their great zoo, you will find a gnome named Kimble Nogflop. Give him this flask of nitrates and he shall hand you a special potion which will force Mammoth to cough up whatever may be stuck inside his throat. Be sure to show me what you find inside his throat upon your return."); + e.other:SummonCursorItem(13945); -- Item: Flask of Nitrates + elseif(e.other:GetFaction(e.self) == 5) then -- indifferent text + e.self:Say("We, the Jaggedpine Treefolk, appreciate the help you've given us in the past. But, we must trust you more before allowing you to handle such important matters."); + else + e.self:Say("You are an enemy of the Jaggedpine Treefolk, this forest, and the residents of it. Begone, before I am forced to take drastic measures!"); + end + elseif(e.message:findi("ralem")) then + e.self:Say("Ralem Christoff is one of the finest warriors to come out of the Jaggedpine. He was born and raised to be a ranger. He now serves Antonius Bayle as the Field Marshall of a roving patrol. His quiet, calm exterior hides a tactical genius and ferocious combatant."); + elseif(e.message:findi("antonius")) then + e.self:Say("Antonius Bayle is a good man. His rule of Qeynos has been most kind to our land as well. We also provide the key elements of his long range patrol division. Our own [Ralem Christoff] serves as Field Marshall for that division."); + elseif(e.message:findi("leader")) then + e.self:Say("The land of Surefall Glade is ruled by no single hand other than Tunare, but if guidance is what you seek, I would suggest you speak with Te`Anara. She is the head of the Jaggedpine Treefolk. Otherwise, you could speak with Hager Sureshot of the Protectors of the Pine."); + elseif(e.message:findi("poacher")) then + e.self:Say("Poachers have been plaguing our land. We do our best to stop them. If you wish to join the fight, seek the masters of the Protectors of the Pine."); + elseif(e.message:findi("druid guild")) then + e.self:Say("The Jaggedpine Treefolk are the local druids. The masters can be found here within the great tree."); + elseif(e.message:findi("forge") or e.message:findi("oven")) then + e.self:Say("We have nothing like that here in Surefall Glade. You must venture to Qeynos."); + elseif(e.message:findi("armor")) then + e.self:Say("Oftentimes you can find a traveling merchant in one of the nearby houses. Other than that you would have to travel to Qeynos."); + elseif(e.message:findi("qeynos")) then + e.self:Say("The great city of Qeynos can be found by walking along the path outside of Surefall Glade. Many of our rangers and druids serve alongside the Qeynos Guard when the need arises."); + elseif(e.message:findi("bank")) then + e.self:Say("There is no need for a vault among our people. You could try the Qeynos Hold in Qeynos."); + elseif(e.message:findi("talym") or e.message:findi("shoontar")) then + e.self:Say("Talym Shoontar is a wanted man. He is a very infamous poacher. Hager Sureshot has placed a bounty upon his head."); + elseif(e.message:findi("chanda") or e.message:findi("baobob") or e.message:findi("miller")) then + e.self:Say("The entire Miller family are nothing more than scum. It is they who entice poachers to continue with their slaughter so they can profit from the skins of the wildlife."); + elseif(e.message:findi("tunarbos")) then + e.self:Say("Long ago, centuries before the Combine Era even, there grew a great tree upon Norrath. It stretched to the stars and was as wide as the span of Erud's Crossing. From the roots of this tree sprung all the woodlands of Norrath. An unknown force struck it down. Some say it was the great dragon, Veeshan! Whatever the force, the Great Tunarbos was shattered. Lost forever. Now the wood chips lie scattered across the face of Norrath. To hold a shard of the Great Tunarbos is to hold the hand of Tunare."); + end +end + +function event_trade(e) + local item_lib =require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18713})) then -- Tattered Note + e.self:Say("Well met, friend of the forest. You will find power and enlightenment amidst these woods. Here, wear this tunic and represent the Jaggedpine with pride. Gerael Woodone will help train you and teach you the duties of Jaggedpine Treefolk. The forests, being the soul and heart of Norrath, depend on you and your actions from this day forth."); + e.other:Faction(e.self,272, 100,0); --Jaggedpine Treefolk + e.other:Faction(e.self,302, 25,0); --Protectors of Pine + e.other:Faction(e.self,343, 15,0); --QRG Protected Animals + e.other:Faction(e.self,324, -25,0); --Unkempt Druids + e.other:Faction(e.self,262, 15,0); --Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,13510,20); -- Item: Dried Grass Tunic* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18809})) then + e.self:Say("Oh my, this must belong to Antonius Bayle! I shall see that he receives it. You have done a great service to Qeynos and Surefall Glade. I rewards you with this. May it be of good use in your future deeds."); + e.other:Faction(e.self,272, 10,0); --Jaggedpine Treefolk + e.other:Faction(e.self,302, 2,0); --Protectors of Pine + e.other:Faction(e.self,343, 1,0); --QRG Protected Animals + e.other:Faction(e.self,324, -2,0); --Unkempt Druids + e.other:Faction(e.self,262, 1,0); --Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,15222,100); -- Item: Spell: Invigor + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18807})) then -- Sealed Letter [Note To Jaggedpine - real] + e.self:Say("Aye! This is good news. We shall try to supply Qeynos with a limited number of acres to begin their lumberyard. Here, my good messenger. A token to share in the good news."); + -- confirmed live factions + e.other:Faction(e.self,272, 30,0); --Jaggedpine Treefolk + e.other:Faction(e.self,302, 7,0); --Protectors of Pine + e.other:Faction(e.self,343, 4,0); --QRG Protected Animals + e.other:Faction(e.self,324, -7,0); --Unkempt Druids + e.other:Faction(e.self,262, 4,0); --Guards of Qeynos + e.other:QuestReward(e.self,0,math.random(10),math.random(5),0,0,5000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18806})) then -- Sealed Letter [Note To Jaggedpine - fake] + e.self:Say("This is dreadful news. We have been nothing but kind neighbors to Qeynos. Now Antonius Bayle wishes to abuse our friendship. This will not sit well with the others. Begone, messenger!"); + -- confirmed live factions + e.other:Faction(e.self,272, -30,0); --Jaggedpine Treefolk + e.other:Faction(e.self,302, -7,0); --Protectors of Pine + e.other:Faction(e.self,343, -4,0); --QRG Protected Animals + e.other:Faction(e.self,324, 7,0); --Unkempt Druids + e.other:Faction(e.self,262, -4,0); --Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,0,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qrg/Vesteri_Nomanoi.lua b/qrg/Vesteri_Nomanoi.lua new file mode 100644 index 0000000..b22f758 --- /dev/null +++ b/qrg/Vesteri_Nomanoi.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". I am Vesteri Namanoi. I provide training to the Jaggedpine Treefolk and their allies. If you are not busy, I would like to ask a small [favor] of you."); + elseif(e.message:findi("favor")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- not verified as exact, tested at 0 faction and wasn't high enough + e.self:Say("I need you to take this claim check to Qeynos for me. Nesiff Talaherd is a woodcarver who owns a shop in South Qeynos. I am having him carve a small statue of Tunare for Te'Anara. With my training schedule, I can not make the journey to Qeynos. Please give this claim check to Nesiff and bring the statue to me. It is a surprise, so please do not say anything to Te'Anara about it."); + e.other:SummonCursorItem(18012); -- Item: Claim Check + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("We, the Jaggedpine Treefolk, appreciate the help you've given us in the past. But, we must trust you more before allowing you to handle such important matters."); + else + e.self:Say("You are an enemy of the Jaggedpine Treefolk, this forest, and the residents of it. Begone, before I am forced to take drastic measures!"); + end + end +end + +function event_trade(e) + local item_lib =require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13864})) then + e.self:Say("Oh thank you so much! Here. Take this reward for your time. I will also tell Te'Anara of you."); + e.other:Faction(e.self,272, 5,0); --Jaggedpine Treefolk + e.other:Faction(e.self,302, 1,0); --Protectors of Pine + e.other:Faction(e.self,343, 1,0); --QRG Protected Animals + e.other:Faction(e.self,324, -1,0); --Unkempt Druids + e.other:Faction(e.self,262, 1,0); --Guards of Qeynos + e.other:QuestReward(e.self,math.random(10),math.random(5),0,0,0,250); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/qrg/a_poacher.lua b/qrg/a_poacher.lua new file mode 100644 index 0000000..f64b91f --- /dev/null +++ b/qrg/a_poacher.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, adventurer. I hope the land of Norrath has been kind to you. I myself have made a killing. Hunting is surely the sport of the rich. And if you are not rich at its start, you soon shall be, from the profit made off hides."); + end +end \ No newline at end of file diff --git a/rathemtn/Abigail.lua b/rathemtn/Abigail.lua new file mode 100644 index 0000000..7b5a678 --- /dev/null +++ b/rathemtn/Abigail.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings! I am the holder of the secret of the [Breastplate of Ro]. You may rest here. You are quite safe within this camp of paladins."); + elseif(e.message:findi("breastplate of ro")) then + if(e.other:GetFactionValue(e.self) >= 50) then -- requires mid indifferent + e.self:Say("The Breastplate of Ro mold will be awarded to you. First, you will perform a test of strength. Go to Faydwer. There you shall seek out and destroy the Teir'Dal who carry the dark cauldrons!! They have been venturing into our lands and capturing many Koada'Dal and Fier'Dal for cooking purposes! Bring to me two of their dark cauldrons."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your loyalty to my temple. Go to Felwithe and seek out the Clerics of Tunare. Prove to them your faith. Then ask the leader of this church if you are a [honored member]."); + else + e.self:Say("You have some nerve to approach a loyal member of the Paladins of Tunare! Run, while you can!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I instructed you to return with no less than two dark pots."; + + if(e.other:GetFactionValue(e.self) >= 50 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12309, item2 = 12309},1,text)) then -- A Dark Cauldron + e.self:Say("You have earned the mold. You will now need go and speak with Thomas about [Lord Searfire]."); + e.other:Faction(e.self,226,20); -- Clerics of Tunare + e.other:Faction(e.self,279,20); -- King Tearis Thex + e.other:Faction(e.self,5002,15); -- Anti-Mage -- this faction amount is a guess, the other 2 verified + e.other:QuestReward(e.self,0,0,0,0,12299); -- Mold of Ro Breastplate + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:rathemtn ID:50113 -- Abigail +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/rathemtn/Blinde_the_Cutpurse.lua b/rathemtn/Blinde_the_Cutpurse.lua new file mode 100644 index 0000000..b0010a6 --- /dev/null +++ b/rathemtn/Blinde_the_Cutpurse.lua @@ -0,0 +1,11 @@ +-- This is to spawn a lesser spirit upon Blinde's death for Shaman epic 1.0 + +function event_death_complete(e) + eq.spawn2(50306,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/rathemtn/Brother_Zephyl.lua b/rathemtn/Brother_Zephyl.lua new file mode 100644 index 0000000..1f9d8ad --- /dev/null +++ b/rathemtn/Brother_Zephyl.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. I am one with the [Lost Circle]. You have found me. What is it you desire?"); + elseif(e.message:findi("lost circle")) then + e.self:Say("The [monks of the Whistling Fist] are called the Lost Circle by others. We are an ancient league of monks. Long forgotten and few yet remain. Within this realm there are only two. [Brother Qwinn] and I. We seek the items stolen from us. I seek the [idol of Zan Fi]."); + elseif(e.message:findi("interested monk")) then + e.self:Say("Then venture to the lands of evil. The swamps of the trolls and ogres. There, seek out a monk called Raster. He has the idol. You will return here and wait for my reappearance. When we meet again, you shall hand me the idol and a red sash earned from the Ashen Order. Do so and you shall be closer to joining the brotherhood."); + elseif(e.message:findi("idol of zan fi")) then + e.self:Say("The idol of Zan Fi is a totem that is sacred to our brotherhood. I cannot share its secrets, but I can offer to you a reward for its return. Are you an [interested monk]?"); + elseif(e.message:findi("brother qwinn")) then + e.self:Say("Brother Qwinn is searching for one who can return the [Code of the Whistling Fist]. I believe he is in the vicinity of the Plains of Karana."); + elseif(e.message:findi("code of the whistling fist")) then + e.self:Say("The tome called the Code of the Whistling Fist has been stolen from [Brother Qwinn]. It contains many secrets pertaining to our brotherhood. Thankfully, it is magically locked and only a Zan Fi master could unlock it. Still, Qwinn must see its safe return."); + elseif(e.message:findi("return the sash")) then + e.self:Say("Very well. Give to me that which you have been rewarded or the robe, if you have a tailored one."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "We had an agreement. The proof of a skilled monk, the red sash, and the idol of Zan Fi."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12317, item2 = 10133},1,text)) then --The Idol, Red Sash of Order + e.self:Say("We thank you for the return of the idol of Zan Fi. Take this rare robe pattern. You shall find it useful should you aid [Brother Qwinn] in his quest. His item, the rare robe pattern, a swatch of shadow silk and a scroll containing Jonathan's Whistling Warsong. Into a sewing kit they will be going. And into the brotherhood will you. I hope you do not wish me to [return the sash]."); + e.other:QuestReward(e.self,0,0,0,0,12315,2000); --Rare Robe Pattern + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12315, item2 = 10133})) then --Rare Robe Pattern + e.other:QuestReward(e.self,{itemid = 10133}); --Red Sash of Order + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12256, item2 = 10133})) then --Robe of the Lost Circle + e.other:QuestReward(e.self,{itemid = 10133}); --Red Sash of Order + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/rathemtn/Cynthia.lua b/rathemtn/Cynthia.lua new file mode 100644 index 0000000..654b4b2 --- /dev/null +++ b/rathemtn/Cynthia.lua @@ -0,0 +1,28 @@ +-- Part of quest for Rod of Insidious Glamour + +function event_say(e) + if(e.message:findi("Hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hello. I am Cynthia."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + -- A Glamour Stone + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10085, gold = 50})) then + e.self:Say("I've done what I can to enchant your stone, but you will need to find Tarn Visilin in Highpass Keep to finish the enchantments. Don't forget to pay him the same fee you gave me, or he may decide to keep the stone for himself!"); -- Made this text up + e.other:QuestReward(e.self,0,0,0,0,10086); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Quest by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/rathemtn/Darfumpel_Zirubbel.lua b/rathemtn/Darfumpel_Zirubbel.lua new file mode 100644 index 0000000..13c4b37 --- /dev/null +++ b/rathemtn/Darfumpel_Zirubbel.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". I am Darfumpel, master jeweler and proprietor of this shop. How might I assist you today? Perhaps you need a stone [cut] or some jewelry [repaired]?"); + elseif(e.message:findi("cut")) then + e.self:Say("Yes, I use a new gemcutting technique I designed myself. It will bring out the beauty of any gem. However, as arrogant as this may sound, I do not cut just any ordinary stone. They must be rare or of extraordinary quality. Have you an exceptional stone that requires faceting? If so, what type of gem is it?"); + elseif(e.message:findi("repaired")) then + e.self:Say("Although more mundane a task. I do have a shop to keep up and so I repair jewelry for a nominal fee."); + elseif(e.message:findi("hyacinth")) then + e.self:Say("A hyacinth, eh? That is quite a rare stone. Quite fragile and easily shattered, too. With my new technique, I can assure you I will not destroy the gem, however, it will cost you. 1000 platinum coins is my fee. Provide me with the coin and the gem and I will cut it for you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Do you have the other requirement?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10191, platinum = 1000},1,text)) then + e.self:Say("I have not seen a gem such as this in quite some time! It was not since I dabbled in a bit of necro? Wait? What are you going to use this for? Never mind. I do not wish to know. Here, take your gem and leave!"); + e.other:QuestReward(e.self,0,0,0,0,10192,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:rathemtn ID:50270 -- Darfumpel_Zirubbel +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/rathemtn/David.lua b/rathemtn/David.lua new file mode 100644 index 0000000..d6ee4e0 --- /dev/null +++ b/rathemtn/David.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I, the keeper of the [Bracers of Ro], welcome you. Come and rest within our camp. You have nothing to fear while such righteous might is gathered."); + elseif(e.message:findi("bracers of ro")) then + if(e.other:GetFactionValue(e.self) >= 50) then + e.self:Say("When you can swim the waters of Rathe and return two goblin nets from the elusive goblin net masters. then you will be rewarded the bracer mold."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You and I are not one yet. Go to Erudin and serve the Deepwater Knights. When you can ask Lord Weligon if you are an [honored member] and he answers yes, then this is when we are one with Prexus."); + else + e.self:Say("We, the Deepwater Knights, know of your vile ways. You had best leave while you can."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Two Deepwater goblin nets are required."; + + if(e.other:GetFactionValue(e.self) >= 50 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12311, item2 = 12311},1,text)) then + e.self:Say("You have done well. Take the mold for the bracer. Go forth to speak with Thomas of [Lord Searfire]. Then all components shall be known."); + e.other:Faction(e.self,242,20); -- Faction: Deepwater Knights + e.other:Faction(e.self,266,3); -- Faction: High Council of Erudin + e.other:Faction(e.self,265,-3); -- Faction: Heretics + e.other:QuestReward(e.self,{itemid = 12301}); -- Item: Mold of Ro Bracer + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/rathemtn/Elisabeth.lua b/rathemtn/Elisabeth.lua new file mode 100644 index 0000000..5c5257e --- /dev/null +++ b/rathemtn/Elisabeth.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Very good to meet you. " .. e.other:GetCleanName() .. ". I am the keeper of the [Greaves of Ro]. Please feel free to rest and recuperate here. We shall see that you are safe from the evils of the Rathe Mountains."); + elseif(e.message:findi("greaves of ro")) then + if(e.other:GetFactionValue(e.self) >= 50) then + e.self:Say("Go to the countryside of Freeport. There, you shall seek out any nightfall giants . They have terrorized the countryside for too long. They have protection from common weapons. Rely on magic. I failed in tracking them down. You shall succeed and when return any single head to me. you shall be awarded the mold for the greaves."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Go to Freeport. There you shall find the Hall of Truth. Within its walls you shall be instructed on how to better serve Mithaniel Marr. When High Lord Dushire answers yes to the question, am [I an honored member], then you and I can become allies."); + else + e.self:Say("Leave my presence at once. Your ways of life are not acceptable to one who follows the Truthbringer."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 50 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12313})) then + e.self:Say("You have done well. These giants shall soon be purged from the Commonlands and the inns will be filled once again. Here is the mold for the Ro Greaves. For the final component, go and ask Thomas of [Lord Searfire]."); + e.other:Faction(e.self,281,20); --Knights of Truth + e.other:Faction(e.self,362,4); --Priests of Marr + e.other:Faction(e.self,311,2); -- Steel Warriors + e.other:Faction(e.self,271,-3); -- Dismal Rage + e.other:Faction(e.self,330,-3); -- Freeport Militia + e.other:QuestReward(e.self,0,0,0,0,12303); --Mold of Ro Greaves + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:rathemtn ID:50109 -- Elisabeth +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/rathemtn/Glaron_the_Wicked.lua b/rathemtn/Glaron_the_Wicked.lua new file mode 100644 index 0000000..45f9e2f --- /dev/null +++ b/rathemtn/Glaron_the_Wicked.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then --Part of Shaman Epic 1.0 + e.self:Say("Are you the one they sent to help our cause? I should have known they would send a green witch doctor to serve Bertoxxulous and myself. Very well, you will have to suffice. I have a [task] you must fulfill if you wish to know the blessing of my god and impress your masters."); + elseif(e.message:findi("task")) then --Part of Shaman Epic 1.0 + e.self:Emote("brandishes a long, wicked-looking bone dagger and there is a horrid, diseased stench as soon as he unsheathes it. He draws another blade, shorter and wider than the first, of blackened bone with a larger than normal hilt, obviously for defense. He says, 'This festering blade is called Woe, and this scorched one is called Envy. They were created on the Plane of Decay by Bertoxxulous' own hands. He has judged me worthy of the protection of such holy relics. However, there is one in these very mountains who seeks to destroy these relics. End this idiot follower of Marr's life and bring me proof."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1675})) then --Part of Shaman Epic 1.0 + e.self:Say("Hahahah! Even you were able to do away with that fool. It is only a matter of time before Bertoxxulous, with the help of devout followers like myself, wipes out all who attempt to stop the spread of filth and decay. You have done well, shaman, and your masters will be pleased with what you have done for me and my treasures. Take this and give it to your master. He will reward you."); + e.other:QuestReward(e.self,0,0,0,0,1669); + eq.depop_with_timer(); + end +end + +--Submitted by: Jim Mills (Gilmore Girls`Is`Awesome`XOXO) +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/rathemtn/Hasten_Bootstrutter.lua b/rathemtn/Hasten_Bootstrutter.lua new file mode 100644 index 0000000..f048c13 --- /dev/null +++ b/rathemtn/Hasten_Bootstrutter.lua @@ -0,0 +1,33 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Stopped I have done. Greet you I will. What business do we have? Hmm? Speak up!!"); + elseif(e.message:findi("journeyman boot")) then + e.self:Say("Journeyman Boots are what you seek? Ha!! I have those upon my feet and disinigrate will they if my life is taken. Extra pair have I and [rare trade] can we make."); + elseif(e.message:findi("rare trade")) then + e.self:Say("I call for three things and Journeyman Boots are yours. I call for a [Shadowed Rapier], call for the [Ring of the Ancients] and call for Gold.. 3250 Gold Coins!! This the trade that I call."); + elseif(e.message:findi("shadowed rapier")) then + e.self:Say("Shadowed Men, foes to all, have appeared. Many lands do they walk. Invisible are they, but items they wield can be seen. Seek them out and return to me a Shadowed Rapier. Return it with haste before 'poof' goes the rapier!! No time to camp have you."); + elseif(e.message:findi("ring of the ancient")) then + e.self:Say("Ancient cyclopes do march the land. Long have they lived and crafted the rings of the ancients. I must have one and you shall go and fetch one for me. Seek the lands of the oldest cyclops clans. Seek the plains. seek the island in tears and search the dunes for there is one who is last. His clan was blown from the sands."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12268, item2 = 7100, platinum = 325})) then + e.self:Say("The time to trade has come!! I am now rich and you are now fast. Take the Journeyman Boots and run like the wind."); + e.other:QuestReward(e.self,0,0,0,0,2300,1250); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- EOF zone: rathemtn ID: 50188 NPC: Hasten_Bootstrutter +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/rathemtn/Innkeep_Serge.lua b/rathemtn/Innkeep_Serge.lua new file mode 100644 index 0000000..fdc628c --- /dev/null +++ b/rathemtn/Innkeep_Serge.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Rathe Mountains hideaway!"); + end +end + +--END of FILE Zone:rathemtn ID:50118 -- Innkeep_Serge +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/rathemtn/Innkeep_Troy.lua b/rathemtn/Innkeep_Troy.lua new file mode 100644 index 0000000..4d9658b --- /dev/null +++ b/rathemtn/Innkeep_Troy.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Rathe Mountains hideaway!"); + end +end + +--END of FILE Zone:rathemtn ID:50117 -- Innkeep_Troy +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/rathemtn/Karam_Dragonforge.lua b/rathemtn/Karam_Dragonforge.lua new file mode 100644 index 0000000..8966614 --- /dev/null +++ b/rathemtn/Karam_Dragonforge.lua @@ -0,0 +1,60 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome. I have a number of platemail items, if you are interested. I am also a master [smith] of exotic materials such as dragon scales."); + elseif(e.message:findi("smith")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Dragon scales make terrific armor. I can make a [white dragonscale cloak] and [red dragonscale armor]. I have not seen any other colored dragon variants around. But if you see any, be sure to let me know. I would be interested in what can be made from their scales."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("white dragonscale cloak")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hrmmm. A white dragonscale cloak eh? Hrmmm. Well, I will make you a deal. You can save me some footwork and I will craft your cloak. I want to propose to my [fiancee] but I have neither a [wedding ring] nor a [present] for her. So, return with a white dragon hide, a wedding ring, and a present for my fiancee, and I will fashion your cloak for you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("fiancee")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("My fiancee...AHHHH.... The love of my life. My purpose for existing. She is a real woman. Long, golden blonde hair with a similarly colored full beard. A stout broad she is, kind and warm at heart. She knows every nook of my essence. But do not let that fool you. She is as strong as many dwarven men. Between you and me, she has even beaten me once or twice arm-wrestling over who gets the last ale and who has to go to the market."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("wedding ring")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Only the best will do. I will not propose to her with anything less than a platinum and diamond wedding ring."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("present")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Well, she is quite fond of jewelry. And a black sapphire platinum necklace would complement her eyes and beard so exquisitely."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("red dragonscale armor")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("So you have a red dragon scale, eh? Well, I am wanting very much to return to my fiancee and propose to her. If you could aid me in quickly returning to her with a bit of spare change, we could have a deal. Heck, for the armor, a vial of swirling smoke and 1000 platinum coins is a bargain!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 14707, item2 = 14703, item3 = 9240})) then + e.self:Say("My fiancee will be so excited! An exquisite ring for the wedding and a gorgeous necklace as my wedding gift to her. Well, as promised, here is your white dragonscale cloak."); + e.other:QuestReward(e.self,0,0,0,0,11603); -- White Dragonscale Cloak + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 11622, item2 = 14402, platinum = 1000})) then + e.self:Say("Wonderful! Now I can get back to my fiancee instantly! Isn't Love grand? As for your Red Dragonscale Armor, it is all done. Farewell!"); + e.other:QuestReward(e.self,0,0,0,0,11623); -- Red Dragonscale Armor + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE : Zone : rathemtn : NPC_ID : 50119 : Karam Dragonforge +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/rathemtn/Kazzel_D-Leryt.lua b/rathemtn/Kazzel_D-Leryt.lua new file mode 100644 index 0000000..e54c13c --- /dev/null +++ b/rathemtn/Kazzel_D-Leryt.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetLevel() >= 50) then + e.self:Say("Finally, a servant worthy of my needs! Apparently you are of high status, which perhaps means you might know a master [jeweler] capable of faceting a very magical, yet fragile stone?"); + else + e.self:Say("Begone you pathetic bug. You are not worthy of my presence."); + end + elseif(e.message:findi("jeweler")) then + e.self:Say("You must provide me with 2000 platinum pieces as a deposit, then you must take this stone to a master jeweler or [Darfumpel], have it faceted and return it to me along with an orb of pure crystal, a gold necklace the color of snow, and the [blood of Xenyari]. Do that and I will provide you with magic beyond that of most knights of darkness."); + elseif(e.message:findi("darfumpel")) then + e.self:Say("Darfumpel is a gnomish shopkeeper here in the Rathe Mountains. He apparently has a new technique for gemcutting, however, he will not deal with me due to my affiliation with necromancy. Speak with him. Perhaps he might be willing to aid you for a price, but make sure you hide your true nature. He despises dark magic."); + elseif(e.message:findi("blood of xenyari")) then + e.self:Say("Xenyari is a druid who inhabits these parts. She is rarely seen, however, I require a droplet of her blood. Here is the catch though, and one for which you may be well suited if you desire magic of the knights of darkness - Xenyari must give of herself willingly. In other words, you cannot take her blood by force. Rather, she must give you her blood of her own accord."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Quickly now, give me the rest of the ingredients for the telesm..."; + + if(e.other:GetLevel() >= 50 and item_lib.check_turn_in(e.self, e.trade, {platinum =2000})) then + e.self:Say("Very well, " .. e.other:GetCleanName() .. ". Take this gem to a master jeweler and return it to me with the other three items."); + e.other:QuestReward(e.self,0,0,0,0,10191); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10192, item2 = 10147, item3 = 10218, item4 = 10196},1,text)) then + e.self:Say("You are quite cunning. After I fashion this telesm, take it back to Xenyari. She would 'enjoy' another 'gift,' eh?"); + e.other:QuestReward(e.self,0,0,0,0,10193); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10194})) then + e.self:Emote("laughs heartily and whispers to you, 'Well done, worm, your servitude to my will has now expired...'"); + e.other:QuestReward(e.self,0,0,0,0,0,25000); + eq.unique_spawn(50335,0,0,e.self:GetX()+5,e.self:GetY()+5,e.self:GetZ()); --spawn a_monstrous_zombie + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10197})) then + e.self:Say("Oh! Umm... Well, I was just playing with you. Certainly you know I was joking! We had a deal and I will abide by the terms of our agreement. Here is my payment for your services. Bye.."); + e.other:QuestReward(e.self,0,0,0,0,15692,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:rathemtn ID:50272 -- Kazzel_D-Leryt +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/rathemtn/Lianna_Ferasa.lua b/rathemtn/Lianna_Ferasa.lua new file mode 100644 index 0000000..7d1543a --- /dev/null +++ b/rathemtn/Lianna_Ferasa.lua @@ -0,0 +1,24 @@ +-- Part of quest for Bracer of the Reverent + +function event_say(e) + if(e.message:findi("regis")) then + e.self:Say("Regis was my one true love, but he was [killed] and his soul enslaved by Zahal the Vile."); + elseif(e.message:findi("killed")) then + e.self:Say("He was killed in the northern tree line to the east in North Karana. If you kill Zahal, Regis' body will rise from the place where he died. If my flute is on the body, please bring it to me."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13899})) then + e.self:Say("Thank you for setting his spirit free. Keep his memory alive with this."); + e.other:QuestReward(e.self,0,0,0,0,19010,1000); + end +end + +-- Quest by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/rathemtn/Marianna.lua b/rathemtn/Marianna.lua new file mode 100644 index 0000000..10924b9 --- /dev/null +++ b/rathemtn/Marianna.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Rodcet Nife welcomes you into our noble camp. I am the keeper of the [Vambraces of Ro]."); + elseif(e.message:findi("vambraces of ro")) then + if(e.other:GetFactionValue(e.self) >= 50) then + e.self:Say("The mold will be offered to you when you have performed a task for the Temple of Life. The oceans near our home are host to a plague.. the plague sharks!! They have been infected with a deadly malady which has been turning up in the Qeynos Hills. Kill the sharks and bring me two of their rotten shark portions as proof."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("In the name of Rodcet Nife, I must ask you to venture to Qeynos and find the Temple of Life. There you shall serve until High Priestess Jhanda responds when you ask her, am [I an honored member]?"); + else + e.self:Say("Foolish person!! The word is out amongst the followers of the Prime Healer not to trust you."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I said two portions of rotten shark meat."; + + if(e.other:GetFactionValue(e.self) >= 50 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12310, item2 = 12310},1,text)) then + e.self:Say("You now own a mold for the Vambraces of Ro. Go and ask Thomas of [Lord Searfire] for the final component."); + e.other:Faction(e.self,341,20); -- Priests of Life + e.other:Faction(e.self,280,6); --Knights of Thunder + e.other:Faction(e.self,262,10); -- Guards of Qeynos + e.other:Faction(e.self,221,-5); -- Bloodsabers + e.other:Faction(e.self,219,3); -- Antonius Bayle + e.other:QuestReward(e.self,0,0,0,0,12300,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:rathemtn ID:50114 -- Marianna +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/rathemtn/Nicholas.lua b/rathemtn/Nicholas.lua new file mode 100644 index 0000000..1ff5e07 --- /dev/null +++ b/rathemtn/Nicholas.lua @@ -0,0 +1,46 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, friend. I am the keeper of the [Boots of Ro]. Please rest here with us in our camp of righteousness. No harm can come to you while we paladins keep watch."); + elseif(e.message:findi("boots of ro")) then + if(e.other:GetFactionValue(e.self) >= 50) then -- mid indiff or better to get the quest + e.self:Say("If you desire the mold needed for smithing the Boots of Ro, then first, you shall prove your power. I have long sought an ancient holy weapon called the brazen brass kilij. I have heard rumors of detailed plans on how to make it, coming from Faydwer. Seek out the kilij plans. Bring them to me and you shall have the mold."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You and I must be brothers and serve the Lord of Underfoot. Go to Kaladim and serve her cathedral. When you think you are ready. then ask Lord Datur if you are an [honored member] of the temple. If the answer is yes, then I will trust you."); + else + e.self:Say("How dare you approach a member of the Clerics of Underfoot?! Dogs such as you lie in the same bed as aviaks and ogres!"); + end + elseif(e.message:findi("candle of bravery") or e.message:findi("chalice of conquest") or e.message:findi("orc remnant") or e.message:findi("orc onslaught") or e.message:findi("blue orc") or e.message:findi("odd druid")) then + if(e.other:GetFaction(e.self) < 4) then -- verified live faction requirement kindly is needed to obtain the items + if(e.message:findi("candle of bravery") or e.message:findi("chalice of conquest")) then + e.self:Say("You must be the one Sir Dru of Kaladim sent to retrieve the candlestick which was broken in the [orc onslaught]. I have only this piece in my possession as the other portion was taken by an [odd druid] of these mountains. Should you reclaim it, I am sure the maker of the candlestick can patch it together."); + e.other:SummonCursorItem(12276); -- Item: Stem of Candlestick + elseif(e.message:findi("orc remnant")) then + e.self:Say("Here. We found this worthless orc bracelet with the name Klunga on it. There was also an orc shovel and a bag of Cauldron prawns. We left them, of course. The camp has now been taken over by the green-skinned orcs. I would advise you to stay clear of this camp in Lake Rathe."); + e.other:SummonCursorItem(12280); -- Item: Klunga's Bracelet + elseif(e.message:findi("orc onslaught")) then + e.self:Say("The orcs attempted to take the hill, as they do on a frequent basis. We repelled them, of course, but a [blue orc] rushed off with the [Chalice of Conquest]. Where he came from, I do not know. He was no part of the battle!! I believe he just found an opportune moment to loot our camp."); + elseif(e.message:findi("blue orc")) then + e.self:Say("I had a visiting ranger track him to his camp near Lake Rathetear. I spied the camp and saw his lifeless body near two other blue orcs. Apparently, he must have taken a fatal blow, but had enough stamina to make it to his camp. I returned the following day with my fellow paladins and found the camp long gone. The ranger, who was still with us, found two sets of tracks leading away. We found [orc remnants]."); + elseif(e.message:findi("odd druid")) then + e.self:Say("The mountains have been plagued not only by beasts, but by evil druids!! They attempt to force all men from this land. One has stolen the foot of the candlestick which holds the [Candle of Bravery]. I remember that battle cry of hers, 'Long live the green!!'."); + end + elseif(e.other:GetFaction(e.self) < 7) then + e.self:Say("You and I must be brothers and serve the Lord of Underfoot. Go to Kaladim and serve her cathedral. When you think you are ready, then ask Lord Datur if you are an [honored member] of the temple. If the answer is yes, then I will trust you."); + else + e.self:Say("How dare you approach a member of the Clerics of Underfoot?! Dogs such as you lie in the same bed as aviaks and ogres!!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 50 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12206})) then -- Kilij Plans + e.self:Say("Ahh!! The kilij!! The legend was true. As for you.. the mold for the Boots of Ro. Go and speak with Thomas for the final component. Ask him of [Lord Searfire]. Brell be with you."); + e.other:Faction(e.self,227,20); -- Clerics of Underfoot + e.other:Faction(e.self,274,20); --Kazon Stormhammer + e.other:Faction(e.self,293,15); --Miner's guild 249 + e.other:QuestReward(e.self,0,0,0,0,12304,100000); -- Mold of the Boots of Ro + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/rathemtn/Sentry_Joanna.lua b/rathemtn/Sentry_Joanna.lua new file mode 100644 index 0000000..0a6eb6a --- /dev/null +++ b/rathemtn/Sentry_Joanna.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Love and passion to you. my friend. Seek you the [Gauntlets of Ro]? If not. then I offer you the safety of this camp."); + elseif(e.message:findi("gauntlets of ro")) then + if(e.other:GetFactionValue(e.self) >= 50) then + e.self:Say("I will give you the mold. but first you will complete a task in the name of Erollisi Marr. My fellow Sentry. Alechin. was bitten by a wolf while he journeyed to Qeynos. He now turns into a werewolf at night. forced to kill innocent travelers. Go toward Qeynos. Release him from life and his curse and return his locket to me."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Erollisi would not approve of our alliance. not yet at least. Go to Freeport and serve the Temple of Marr. When you can ask Gygus Remnara if you are an [honored member] and have him answer yes. then we can join forces."); + else + e.self:Say("The passion of the Queen of Love does not favor you. Begone from my sight!"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 50 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12312})) then + e.self:Say("Thank you my friend. It is good to see him free at last. I shall miss him. Here now is the mold of gauntlets as promised. Go and speak with Thomas for information about [Lord Searfire]."); + e.other:Faction(e.self,281,3); --Knights of Truth + e.other:Faction(e.self,330,-2); --Freeport Militia + e.other:Faction(e.self,362,20); --Priests of Marr + e.other:QuestReward(e.self,0,0,0,0,12302,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:rathemtn ID:50111 -- Sentry_Joanna +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/rathemtn/Sir_Edwin_Motte.lua b/rathemtn/Sir_Edwin_Motte.lua new file mode 100644 index 0000000..df270c4 --- /dev/null +++ b/rathemtn/Sir_Edwin_Motte.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "! How lucky you are to encounter the greatness of the legendary Sir Edwin Motte, slayer of cyclopes, battler of beasts, crusher of creatures, masher of monsters, eradicator of evil and champion of the third annual dart championship of Freeport."); + end +end diff --git a/rathemtn/Solvedi_Aldeberan.lua b/rathemtn/Solvedi_Aldeberan.lua new file mode 100644 index 0000000..92cdfe2 --- /dev/null +++ b/rathemtn/Solvedi_Aldeberan.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, forestwalker. Welcome to the Rathe bear preserve of the Unkempt Druids. We strive to protect nature with diligence and punish her [defilers] with prejudice!"); + elseif(e.message:findi("defilers")) then + e.self:Say("There are many defilers of nature about that warrant eradication. Groi Gutblade is a loathsome troll poacher who lurks in South Karana. Slay him and bring me his Lionhide Backpack. Timbur the Tiny takes pride in crushing the trees in North Karana into pulp under his feet. Make him pay for this affront and bring me his Laceless Sandal as proof of his demise. I will give you my own blade if you succeed."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Impressive, do you have the rest?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9352, item2 = 17350},1,text)) then + e.self:Say("You are now a respected ally of the Unkempt. Wield this with pride."); + e.other:QuestReward(e.self,0,0,0,0,5378,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:rathemtn ID:50333 -- Solvedi Aldeberan +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/rathemtn/Tabien_the_Goodly.lua b/rathemtn/Tabien_the_Goodly.lua new file mode 100644 index 0000000..3bef1a1 --- /dev/null +++ b/rathemtn/Tabien_the_Goodly.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then --Part of Shaman Epic 1.0 + e.self:Say("Oh thank Marr you are here, " .. e.other:GetCleanName() .. ". I was beginning to think I would be abandoned in my time of need. I have a [task] for you to complete in the name of my patron Mithaniel Marr."); + elseif(e.message:findi("task")) then --Part of Shaman Epic 1.0 + e.self:Emote("displays his shield that must once have been shining and regal but is now scoured in cuts, dents, and chipped paint. He says, 'This shield is known as Marr's Promise. It is a sacred relic that was actually used by one of Mithaniel's angels on the Plane of Valor. Its value to our church is immeasurable and I have been charged with the protection of it. However, a patriarch of the false god, Bertoxxulous, is after my shield and me. He must be stopped! Please, destroy him and bring me proof of his death."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "That's one of the fiend's daggers. Quickly, where is the other one?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1676,item2 = 1677},1,text)) then --Part of Shaman Epic 1.0 + e.self:Say("Ahh, thank Mithaniel you have put Glaron and his terrible reign to an end! You have done the world a great service by carrying out my instructions. Take this gem and give it to the one who sent you. He will reward you as befits such an accomplished mercenary such as yourself. Oh, and Marr be with you!"); + e.other:QuestReward(e.self,0,0,0,0,1670); + eq.depop_with_timer(); + end +end + +--Submitted by: Jim Mills (Gilmore Girls`Is`Awesome`XOXO) +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/rathemtn/Thomas.lua b/rathemtn/Thomas.lua new file mode 100644 index 0000000..c71b5a0 --- /dev/null +++ b/rathemtn/Thomas.lua @@ -0,0 +1,40 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to our camp. We are paladins gathered from many lands. We have been called to this land by our deities. Ours is a crusade of righteousness. Have you happened upon us by chance or do you [seek the sacred molds]?"); + elseif(e.message:findi("helm of ro")) then + if(e.other:GetFactionValue(e.self) >= 50) then + e.self:Say("To receive the mold of the Helm of Ro you must first demonstrate your strength. Go to the plains of thunder. There you shall hunt down the most vile creatures I have ever encountered. Seek the undead cyclopes. I have spied them in the most dangerous portions of my realm. Fetch me two of their skulls."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I cannot fully trust you. You must venture to the city of Qeynos. There you shall find the Temple of Thunder. It is there that you shall find ways to prove your nobility."); + else + e.self:Say("You have proven yourself not only an enemy of the Knights of Thunder, but an enemy of Karana himself. Now leave, sewer rat!"); + end + elseif(e.message:findi("seek the sacred molds")) then + e.self:Say("Many of us carry the sacred molds of the holy paladin armor. We will release it only to those who have proven themselves to each of our deities. If you seek it, speak up!! Tell us which part you seek. I carry the secret of the [Helm of Ro]. The others carry those of vambraces, breastplates, bracers, gauntlets, greaves and boots of Ro."); + elseif(e.message:findi("Lord Searfire")) then + e.self:Say("Lord Searfire is a great forge master. He was called forth to the land of fire lakes. It is said that he now toils in the name of Solusek Ro within a hidden temple of that land. He and he alone knows how to obtain [ronium], a needed component for forging the sacred Armor of Ro."); + elseif(e.message:findi("ronium")) then + e.self:Say("It is an alloy created from two rare metals. Only [Lord Searfire] knows the formula."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I called for two cyclops skulls."; + + if(e.other:GetFactionValue(e.self) >= 50 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12308, item2 = 12308},1,text)) then + e.self:Say("You have proven yourself to Karana. I grant you the mold of the Ro Helm. May the winds of Karana blow in your favor. Now you must seek out [Lord Searfire] and ask him for [ronium] to complete the second and only other component needed to be fashioned by a master blacksmith."); + e.other:Faction(e.self,280,20); --Knights of Thunder + e.other:Faction(e.self,221,-20); --Bloodsabers + e.other:Faction(e.self,341,15); --Priests of Life + e.other:Faction(e.self,262,15); --Guards of Qeynos + e.other:QuestReward(e.self,0,0,0,0,12298); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:rathemtn ID:50112 -- Thomas +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/rathemtn/Tibrinn_Ember.lua b/rathemtn/Tibrinn_Ember.lua new file mode 100644 index 0000000..98501fb --- /dev/null +++ b/rathemtn/Tibrinn_Ember.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am Tibrinn Ember, forest friend and Unkempt Druid. Aid us in our [conflict] against the polluters of nature and I will reward you."); + elseif(e.message:findi("conflict")) then + e.self:Say("Grazhak the Berzerker is a powerful orc who roams these mountains. Slay him and bring me his Mithril Plated Girth. The gorge tyrant himself, King Xorbb, has plagued my halfling brothers for ages. Dispatch this beast and bring me his Slime Crystal Staff as proof of your deed. After you have brought me these items I will give you a weapon as reward for your feats."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4310, item2 = 6335})) then + e.self:Say("You have done well. Here is the reward for your deeds."); + e.other:QuestReward(e.self,0,0,0,0,6364,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:rathemtn ID:50197 -- Tibrinn Ember +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/rathemtn/Xenyari_Lisariel.lua b/rathemtn/Xenyari_Lisariel.lua new file mode 100644 index 0000000..e0c3c47 --- /dev/null +++ b/rathemtn/Xenyari_Lisariel.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". Oh, I wish I had a prickly pear. I just have this insatiable craving for a prickly pear. But Permafrost is just so far! "); + elseif(e.message:findi("prickly pear")) then + e.self:Say("Yes, yes! Prickly pears! Do you have any? I just love prickly pears but Permafrost is just so far away even for us druids."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10195})) then + e.self:Say("Prickly pears! I just love prickly pears!! Thank you so much for getting these for me. I really, really appreciate your gift and I shall not.. OWW!! I hate it when I stick myself with the needles! Oh look, I am bleeding now! Can you hold this note for a moment, please? My hands are full and I must clean up."); + e.other:QuestReward(e.self,0,0,0,0,10196,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10193})) then + e.self:Emote("bounces around with glee at the sight of your gift, smiles at you, and dons the telesm. As she clasps the telesm around her neck, she begins to writhe in agony, and slowly fades from sight leaving just the telesm, which is now pulsating with vibrant energy."); + e.other:QuestReward(e.self,0,0,0,0,10194,1000); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:rathemtn ID:50271 -- Xenyari_Lisariel +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/rathemtn/Ytyrs_the_Reborn.lua b/rathemtn/Ytyrs_the_Reborn.lua new file mode 100644 index 0000000..fc63bc6 --- /dev/null +++ b/rathemtn/Ytyrs_the_Reborn.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(50353,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end \ No newline at end of file diff --git a/rathemtn/a_lesser_spirit.lua b/rathemtn/a_lesser_spirit.lua new file mode 100644 index 0000000..c8df90d --- /dev/null +++ b/rathemtn/a_lesser_spirit.lua @@ -0,0 +1,37 @@ +--This will start Shaman Epic 1.0 +function event_spawn(e) + eq.set_timer("depop",600000); +end + +function event_say(e) + local randomize = math.random(100); + + if(e.other:GetFaction(e.self) < 6) then + if(e.message:findi("hail")) then --Part of Shaman Epic 1.0 + e.self:Say("Did you take this person's life, shaman?"); + elseif(e.message:findi("yes")) then --Part of Shaman Epic 1.0 + e.self:Say("Why have you taken this person's life, " .. e.other:GetCleanName() .. "? Did he threaten your life? Did you dislike him? Or was his death a profit to you in some way?"); + elseif(e.message:findi("threatened my life")) then --Part of Shaman Epic 1.0 + e.self:Say("I see. It brings me sadness to see another die, but his heart was black and a great nothingness. His body will become the grass now. Thank you for what you have done, shaman."); + elseif(e.message:findi("what are you") or e.message:findi("who are you")) then --Part of Shaman Epic 1.0 + e.self:Say("What, or who, I am isn't as important as what, or who, WE are. Do you wish to know more, shaman?"); + elseif(e.message:findi("know more")) then --Part of Shaman Epic 1.0 + e.self:Say("That is good, " .. e.other:GetCleanName() .. ". Take this gem. It is a part of us like the clouds to the sky and is a wonderful gift from the grandfather. Take this gem to where the humans gather to spoil the land and water. Some call it a port. There you will find one of us, a shaman like yourself. Give him the gem and perhaps he will tell you more of the spirits."); + e.other:SummonCursorItem(1665); -- Item: Tiny Gem + end + elseif(randomize > 50) then + e.self:Say("I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself."); + else + e.self:Say("Oh look, a talking lump of refuse. How novel!"); + end +end + +function event_timer(e) + eq.depop(); +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/rathemtn/corrupted_hill_giant.lua b/rathemtn/corrupted_hill_giant.lua new file mode 100644 index 0000000..61c649c --- /dev/null +++ b/rathemtn/corrupted_hill_giant.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop",600000); +end + +function event_timer(e) + eq.depop(); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end diff --git a/rathemtn/tainted_hill_giant.lua b/rathemtn/tainted_hill_giant.lua new file mode 100644 index 0000000..19a0a28 --- /dev/null +++ b/rathemtn/tainted_hill_giant.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(50322,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end diff --git a/rivervale/Ace_Slighthand.lua b/rivervale/Ace_Slighthand.lua new file mode 100644 index 0000000..c0d268e --- /dev/null +++ b/rivervale/Ace_Slighthand.lua @@ -0,0 +1,33 @@ +--BeginFile: rivervale\Ace_Slighthand.pl +--Quest file for Rivervale - Ace Slighthand: Kevlin Diggs' Debt & Extraordinary Rodents + +function event_say(e) + local level = e.other:GetLevel(); + + if(e.message:findi("Hail")) then + e.self:Say("Hey, hey, hey! Welcome to the Fool's Gold. Don't bet more than you can afford to lose, pal! You don't want to end up like ol' [Kevlin]. If you're looking for something to do after you have a drink, you may be interested in a [task]."); + elseif(e.other:GetFaction(e.self) < 5) then -- requires amiably + if(e.message:findi("kevlin")) then + e.self:Say("Kevlin Diggs. His family sells armor here in Rivervale. He has a nice shop right across from us here. But he owes us Deeppockets some [gold] that we need to collect. We can't rough him up because he is a friend of Mayor Gubbin. We need someone to steal it."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("gold")) then + e.self:Say("He keeps his money in a sack on his bed. But he has a mean pet wolf, named Mangler, who mangled the last cutpurse we sent after it. If you were to wait until he leaves his shop, then sneak past Mangler and bring me the money he owes us, I will make it worth your time."); + end +end + +function event_trade(e) +local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13182})) then --Kevlin's Debt + e.self:Say("Heh heh! You got a career ahead of ya kid! Good work. Here is your cut."); + e.other:QuestReward(e.self,math.random(0,10),math.random(0,5),0,0,0,30); + else + item_lib.return_items(e.self, e.other, e.trade); + end +end + +--END of FILE Zone:rivervale ID:19093 -- Ace_Slighthand \ No newline at end of file diff --git a/rivervale/Bartle_Barnick.lua b/rivervale/Bartle_Barnick.lua new file mode 100644 index 0000000..a4ce004 --- /dev/null +++ b/rivervale/Bartle_Barnick.lua @@ -0,0 +1,54 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day! If you are a new Druid of the Storm Reapers I have promised Hibbs that I would assist in getting you outfitted for ventures beyond Rivervale but you must bring me a note from Reebo as proof that he sent you. There are many dangers outside of the shire so often leather clothing and a weapon become necessities for a traveling druid."); + elseif(e.message:findi("moss toe cap")) then + e.self:Say("To assemble a Moss Toe Cap you will require two [silk thread], a ruined mossy rat pelt, and a giant thicket rat skull. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Cap Pattern."); + -- Summon: Tattered Cap Pattern + e.other:SummonCursorItem(19555); -- Item: Tattered Cap Pattern + elseif(e.message:findi("moss toe bracer")) then + e.self:Say("To assemble a Moss Toe Bracer you will require a [silk thread], a ruined mossy rat pelt, and a large wood spider tibia. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Wristband Pattern."); + -- Summon: Tattered Wristband Pattern + e.other:SummonCursorItem(19558); -- Item: Tattered Wristband Pattern + elseif(e.message:findi("moss toe gloves")) then + e.self:Say("To assemble Moss Toe Gloves you will require two [silk thread], a ruined mossy rat pelt, and two large wood spider tarsus. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Glove Pattern."); + -- Summon: Tattered Glove Pattern + e.other:SummonCursorItem(19559); -- Item: Tattered Glove Pattern + elseif(e.message:findi("moss toe boots")) then + e.self:Say("To assemble Moss Toe Boots you will require two [silk thread], two ruined mossy rat pelts, and two giant wood spider hairs. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Boot Pattern."); + -- Summon: Tattered Boot Pattern + e.other:SummonCursorItem(19561); -- Item: Tattered Boot Pattern + elseif(e.message:findi("moss toe sleeves")) then + e.self:Say("To assemble Moss Toe Sleeves you will require two [silk thread], a mossy rat pelt, and two giant wood spider patella. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Sleeves Pattern."); + -- Summon: Tattered Sleeves Pattern + e.other:SummonCursorItem(19557); -- Item: Tattered Sleeve Pattern + elseif(e.message:findi("moss toe leggings")) then + e.self:Say("To assemble Moss Toe Leggings you will require three [silk thread], two mossy rat pelts, and two giant wood spider femurs. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Pants Pattern."); + -- Summon: Tattered Pants Pattern + e.other:SummonCursorItem(19560); -- Item: Tattered Pant Pattern + elseif(e.message:findi("moss toe tunic")) then + e.self:Say("To assemble a Moss Toe Tunic you will require four [silk thread], an undamaged mossy rat pelt, and a giant wood spider thorax. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Tunic Pattern."); + -- Summon: Tattered Tunic Pattern + e.other:SummonCursorItem(19556); -- Item: Tattered Tunic Pattern + elseif(e.message:findi("silk thread")) then + e.self:Say("Silk Thread is sewn by a tailor using a [sewing kit] or a community [loom]. Two spiderling silks combined in the sewing kit or loom will create one silk thread."); + elseif(e.message:findi("sewing kit")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fools Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + elseif(e.message:findi("loom")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fools Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + + + +function event_trade(e) + local item_lib = require("items"); + + -- Handin: Letter to Bartle Barnick + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19629})) then + e.self:Say("It is good to see another of our young people choose the humble life of a druid of Karana. I have assembled patterns that will allow you to construct some protective leather garments to keep you comfortable in the wilds and help turn aside the weapons of the Storm Reapers enemies. The required components for the leather vary according to which piece of Moss Toe Leather your are planning on crafting. Do you wish to craft a [moss toe cap], a [moss toe bracer], [moss toe gloves], [moss toe boots], [moss toe sleeves], [moss toe leggings], or a [moss toe tunic]?"); + e.other:QuestReward(e.self,{itemid = 17124}); --Mail Assembly Kit + end + item_lib.return_items(e.self, e.other, e.trade); +end + +--EOF diff --git a/rivervale/Beek_Guinders.lua b/rivervale/Beek_Guinders.lua new file mode 100644 index 0000000..88d181b --- /dev/null +++ b/rivervale/Beek_Guinders.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("waves enthusiastically and says, Hay, ho, there, young " .. e.other:Race() .. "! I'd love to yak it up with you but I'm a bit busy at the moment, trying to find some [help]."); + elseif(e.message:findi("help")) then + e.self:Say("Well, we're experimenting with some tanning methods but we're running low on supplies. We need to find someone to go out and [gather some things]. Seems no one wants to do an honest day's work any more. I'd do it myself but, errrr, my, uhhh, foot hair has been hurting lately... yes, that's it."); + elseif(e.message:findi("heal")) then + e.self:Say("Hey! That is not my responsibility! Go speak with Hendi Mrubble. She is the one who got stuck with that duty."); + elseif(e.message:findi("gather some thing")) then -- can be done at dubiously + e.self:Say("Ahhh, excellent! Okay, first, we'll need a couple of wolf pelts. They don't have to be perfect, completely ruined would work just fine, hehe. I'll also need a black wolf skin and a handful of berries. The berries you should be able to find out in the Thicket. I hear they grow in a small canyon near the lone tower. Hurry, hurry!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Whoooops! I'll need the two ruined wolf pelts along with the berries and black wolf skin before I can reward you, " .. e.other:GetCleanName() .. ". Don't dawdle now."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18731})) then -- Tattered Note + e.self:Say("Aye. Welcome. my fur-footed friend. My name is Beek Guinders. and I am guildmaster here at the Chapel of Mischief. Here is our guild tunic. Wear it with pride, as it will set you apart from the crowd."); + e.other:Faction(e.self,300,100,0); -- Priest of Mischief + e.other:Faction(e.self,286,15,0); -- Mayor Gubbin + e.other:Faction(e.self,263,15,0); -- Guardian of the Vale + e.other:QuestReward(e.self,0,0,0,0,13538,20); -- Faded Gold Felt Tunic* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13045,item2 = 13782,item3 = 13782,item4 = 13758},1,text)) then -- can be done at dubiously + e.self:Say("Hey, great! You found the materials! We'll get to work right away. If you find any more, please come by again. Here's a little something for your troubles, friend."); + -- Confirmed Live Factions + e.other:Faction(e.self,300,3,0); -- Priest of Mischief + e.other:Faction(e.self,286,1,0); -- Mayor Gubbin + e.other:Faction(e.self,263,1,0); -- Guardian of the Vale + e.other:QuestReward(e.self,math.random(10),math.random(10),math.random(5),0,eq.ChooseRandom(15014,15201,15207,15208,16303),5000); -- Item(s): Spell: Strike (15014), Spell: Flash of Light (15201), Spell: Divine Aura (15207), Spell: Lull (15208), Spell: Gate (16303) + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:rivervale ID:19111 -- Beek_Guinders diff --git a/rivervale/Bipdo_Hargin.lua b/rivervale/Bipdo_Hargin.lua new file mode 100644 index 0000000..5838956 --- /dev/null +++ b/rivervale/Bipdo_Hargin.lua @@ -0,0 +1,40 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am busy right now. Please leave me alone."); --Text made up + elseif(e.message:findi("thorn mail coif")) then + e.self:Say("To assemble a Thorn Mail Coif you will require two [silk thread], ruined thorn drakeling scales, and a giant thicket rat skull. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Coif Pattern."); + e.other:SummonCursorItem(19555); -- Item: Tattered Cap Pattern + elseif(e.message:findi("thorn mail bracer")) then + e.self:Say("To assemble a Thorn Mail Bracer you will require a [silk thread], ruined thorn drakeling scales, and a large fruit bat wing. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Bracer Pattern."); + e.other:SummonCursorItem(19558); -- Item: Tattered Wristband Pattern + elseif(e.message:findi("thorn mail gloves")) then + e.self:Say("To assemble Thorn Mail Gloves you will require two [silk thread], ruined thorn drakeling scales, and two large fruit bat furs. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Glove Pattern."); + e.other:SummonCursorItem(19559); -- Item: Tattered Glove Pattern + elseif(e.message:findi("thorn mail boots")) then + e.self:Say("To assemble Thorn Mail Boots you will require two [silk thread], two ruined thorn drakeling scales, and two giant thicket rat pelts. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Boot Pattern."); + e.other:SummonCursorItem(19561); -- Item: Tattered Boot Pattern + elseif(e.message:findi("thorn mail sleeves")) then + e.self:Say("To assemble Thorn Mail Sleeves you will require two [silk thread], thorn drakeling scales, and two giant fruit bat wings. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Sleeves Pattern."); + e.other:SummonCursorItem(19557); -- Item: Tattered Sleeve Pattern + elseif(e.message:findi("thorn mail leggings")) then + e.self:Say("To assemble Thorn Mail Leggings you will require three [silk thread], two thorn drakeling scales. and two giant fruit bat furs. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Leggings Pattern."); + e.other:SummonCursorItem(19560); -- Item: Tattered Pant Pattern + elseif(e.message:findi("thorn mail tunic")) then + e.self:Say("To assemble a Thorn Mail Tunic you will require four [silk thread], pristine thorn drakeling scales, a giant fruit bat rib cage, and a giant fruit bat fur. Once you have the necessary components combine them in your Mail Assembly Kit with this Tattered Tunic Pattern."); + e.other:SummonCursorItem(19556); -- Item: Tattered Tunic Pattern + elseif(e.message:findi("silk thread")) then + e.self:Say("To make silk thread, take 2 spiderling silks and combine them together in a loom or in your handy sewing kit."); --Text made up + end +end + +function event_trade(e) +local item_lib = require("items"); + + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 19627})) then + e.self:Say(string.format("Pleased to meet you %s! You must be one of Megosh's new trainees. Megosh has asked me to help get you outfitted in a suit of armor to protect you from the vile weapons of Rivervales foes. I have assembled a kit for you that will allow you to construct the armor pieces once you have gathered the necessary components. The required components vary according to which piece of Thorn Mail armor you are planning on assembling. Do you wish to craft a [thorn mail coif], a [thorn mail bracer], [thorn mail gloves], [thorn mail boots], [thorn mail sleeves], [thorn mail leggings], or a [thorn mail tunic].", e.other:GetCleanName())); + e.other:QuestReward(e.self,{itemid = 17124}); -- Item: Mail Assembly Kit + else + item_lib.return_items(e.self, e.other, e.trade); + end +end +--END of FILE Zone:rivervale ID:19046 -- Bipdo_Hargin \ No newline at end of file diff --git a/rivervale/Blinza_Toepopal.lua b/rivervale/Blinza_Toepopal.lua new file mode 100644 index 0000000..e15be81 --- /dev/null +++ b/rivervale/Blinza_Toepopal.lua @@ -0,0 +1,53 @@ +function event_spawn(e) + eq.set_timer("jillin",550000); +end + +function event_timer(e) + if(timer == "jillin") then + e.self:Say("[Jillin]? Jillin? Where did he go? Hrumph!"); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Hello. %s. Welcome to the Fool's Gold! Cards are upstairs. drinks are down here. Have fun!", e.other:GetCleanName())); + elseif(e.message:findi("jillin")) then + e.self:Say("Jillin is my courier. He was supposed to take this pot of [stew] over to Deputy Lowmot in Guardian Stronghold. It is just about ready and Mayor Gubbin hates cold stew!"); + elseif(e.message:findi("stew")) then + e.self:Say("Here. Take it to Lowmot. The stew is already paid for but the good Deputy usually tips Jillin quite well. Hurry! It's getting cold!"); + e.other:SummonCursorItem(13959); -- Item: Carrot Stew + end +end + +function event_trade(e) + local item_lib = require("items"); + + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 13958})) then + e.self:Say("Well it is about time! The mayor gets very upset if he does not have the freshest of carrots in his stew. Here is the money for the carrots. Be off with you. Now. where the heck did [Jillin] go?"); + e.other:Faction(e.self,241, 1); -- Faction: DeepPockets + e.other:Faction(e.self,223, 1); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,292, -1); -- Faction: Merchants of Rivervale + e.other:Faction(e.self,336, 1); -- Faction: Coalition of Tradefolk Underground + e.other:Faction(e.self,329, 1); -- Faction: Carson McCabe + e.other:QuestReward(e.self,1,0,0,0,0,10); + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 13957})) then + e.self:Say("Oh excellent! These carrots are perfect! The finest Reebo has ever sent us. The mayor will be so pleased. Here is the payment for the carrots. Excuse me, but I must finish preparing the stew. Hmm. Where the heck did [Jillin] go?"); + e.other:Faction(e.self,241, 5); -- Faction: DeepPockets + e.other:Faction(e.self,223, 1); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,292, -1); -- Faction: Merchants of Rivervale + e.other:Faction(e.self,336, 1); -- Faction: Coalition of Tradefolk Underground + e.other:Faction(e.self,329, 1); -- Faction: Carson McCabe + e.other:QuestReward(e.self,10,0,0,0,0,20); + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 13971})) then + e.self:Say("What are these?! I am trying to make stew for the mayor and you bring me ROTTEN CARROTS?! Have you no sense?? Take these back to Reebo."); + e.other:Faction(e.self,241, -5); -- Faction: DeepPockets + e.other:Faction(e.self,223, -1); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,292, 1); -- Faction: Merchants of Rivervale + e.other:Faction(e.self,336, -1); -- Faction: Coalition of Tradefolk Underground + e.other:Faction(e.self,329, -1); -- Faction: Carson McCabe + e.other:QuestReward(e.self,0,0,0,0,13972); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +--END of FILE Zone:rivervale ID:19091 -- Blinza_Toepopal diff --git a/rivervale/Bodbin_Gimple.lua b/rivervale/Bodbin_Gimple.lua new file mode 100644 index 0000000..89ebb37 --- /dev/null +++ b/rivervale/Bodbin_Gimple.lua @@ -0,0 +1,33 @@ +function event_trade(e) +local item_lib = require("items"); + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 19661, item2 = 19612})) then + e.self:Emote("fashions a grip out of the thorn drakeling scales then tests and polishes the blade of the machete. 'Yer another one of Megosh's trainees I suppose. This here's a fine weapon for a young Ranger of the Storm Reapers like yerself.'"); + e.other:Faction(e.self,292,5); -- Faction: Merchants of Rivervale + e.other:Faction(e.self,241,1); -- Faction: DeepPockets + e.other:Faction(e.self,263,1); -- Faction: Guardians of the Vale + e.other:Faction(e.self,286,1); -- Faction: Mayor Gubbin + e.other:Faction(e.self,336,-1); -- Faction: Coalition of Tradefolk Underground + e.other:QuestReward(e.self,0,0,0,0,19687,10); -- Item: Storm Reaper Thorn Machete + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19663, item2 = 19616})) then + e.self:Emote("fashions a grip out of the large fruit bat wing then tests and polishes the blade of the scimitar. 'Yer another one of Hibbs' trainees I suppose. This here's a fine weapon for a young Druid of the Storm Reapers like yerself.'"); + e.other:Faction(e.self,292,5); -- Faction: Merchants of Rivervale + e.other:Faction(e.self,241,1); -- Faction: DeepPockets + e.other:Faction(e.self,263,1); -- Faction: Guardians of the Vale + e.other:Faction(e.self,286,1); -- Faction: Mayor Gubbin + e.other:Faction(e.self,336,-1); -- Faction: Coalition of Tradefolk Underground + e.other:QuestReward(e.self,0,0,0,0,19686,10); -- Item: Storm Reaper Initiate Scimitar + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 19662, item2 = 13060})) then + e.self:Emote("fashions a grip out of the large snake skin then tests and polishes the blade of the short sword. 'Yer another one of Kayas trainees I suppose. This here's a fine weapon for a young Paladin of the Storm Reapers like yerself.'"); + e.other:Faction(e.self,292,5); -- Faction: Merchants of Rivervale + e.other:Faction(e.self,241,1); -- Faction: DeepPockets + e.other:Faction(e.self,263,1); -- Faction: Guardians of the Vale + e.other:Faction(e.self,286,1); -- Faction: Mayor Gubbin + e.other:Faction(e.self,336,-1); -- Faction: Coalition of Tradefolk Underground + e.other:QuestReward(e.self,0,0,0,0,19685,10); -- Item: Bravefoot Short Sword + else + item_lib.return_items(e.self, e.other, e.trade); + end +end + + +--Scripted By: Fatty Beerbelly and Krich11 diff --git a/rivervale/Charlotte_Diggs.lua b/rivervale/Charlotte_Diggs.lua new file mode 100644 index 0000000..93ac089 --- /dev/null +++ b/rivervale/Charlotte_Diggs.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + eq.set_timer("pick_up", 100000); +end + +function event_timer(e) + if ( e.timer == "pick_up" and e.self:CheckGround() ) then + e.self:Emote("picks up something from the ground."); + eq.set_timer("pick_up", math.random(3, 150)*1000); + end +end diff --git a/rivervale/Daleen_Leafsway.lua b/rivervale/Daleen_Leafsway.lua new file mode 100644 index 0000000..d515e58 --- /dev/null +++ b/rivervale/Daleen_Leafsway.lua @@ -0,0 +1,32 @@ +function event_spawn(e) + eq.set_timer("blurt",600000); +end + +function event_say(e) + + if(e.message:findi("hail")) then + e.self:Say(string.format("Greetings. %s! Welcome to Tagglefoot's Farm. We grow nothing but the finest vegetables in our field. We even manage to harvest the mystical jumjum stalk in our fields. Karana has blessed us indeed.", e.other:GetCleanName())); + elseif(e.message:findi("starving") or e.message:findi("turnips")) then + if(e.other:GetFaction(e.self) < 5) then -- requires amiably + if(e.message:findi("starving")) then + e.self:Say("Deputy Eigon! I forgot! I was supposed to bring him some turnips to eat while he is on patrol! Oh... He asked so nicely, too. I feel bad that I forgot. If only someone would take these [turnips] to the Deputy.."); + elseif(e.message:findi("turnips")) then + e.self:Say("Oh, thank you so much! You can keep any payment he gives you. Be sure to tell him I'm sorry."); + e.other:SummonCursorItem(16165); -- Item: Sack of Turnips + end + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_timer(e) + if (timer == "blurt") then + e.self:Say("Oh Dear.. I can't believe I forgot.. He must be [starving]!"); + end +end + +--END of FILE Zone:rivervale ID:19082 -- Daleen_Leafsway + diff --git a/rivervale/Dalorio_Blistbobble.lua b/rivervale/Dalorio_Blistbobble.lua new file mode 100644 index 0000000..bf9a45c --- /dev/null +++ b/rivervale/Dalorio_Blistbobble.lua @@ -0,0 +1,55 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Zonkers! You scared me! Well it is good to meet you nonetheless young " .. e.other:GetCleanName() .. ". Many young Guardians of the Vale often come to me for guidance. If there is something I can help you with in your training you make sure you let Dalorio know! In the meanwhile I will be working on my [trade]."); + elseif(e.message:findi("trade")) then + e.self:Say("Well you see " .. e.other:GetCleanName() .. ", I have been an aspiring blacksmith for quite sometime now. I have spent mostly all of my spare time since I was just a wee whipper snapper like yourself collecting different materials and trying to craft anything and everything of value in our town forge. Blacksmithing has always interested me and that interest is exactly what led to the creation of my [special recipes]."); + elseif(e.message:findi("special recipes")) then + e.self:Say("Well its funny that you ask " .. e.other:GetCleanName() .. ". I have just recently perfected my smithing recipes for Proudfoot Platemail. I would be willing to part with my recipe along with a mold for each piece of this fine platemail to any apprentice willing to [collect the necessary items] to craft it."); + elseif(e.message:findi("collect the necessary item")) then + e.self:Say("You will eh " .. e.other:GetCleanName() .. "? I am happy to hear of an upcoming Warrior of the Vale willing to collect the items necessary to craft their own armor. I must admit that you could really use some armor because it can get quite dangerous out in the thicket! Now back to business! To craft your own Proudfoot Platemail you will need my magical assembly kit that you will combine the items I ask you to gather for specific recipes. After you have done this you will use the pattern I give you along with the material you have fashioned and combine it in a forge to yield your armor piece. Now are you [ready to get started]?"); + elseif(e.message:findi("ready to get started")) then + e.self:Say("Very well " .. e.other:GetCleanName() .. ", let's get to it! Here is my personal Platemail assembly kit. Inside this magical assembly kit you will combine certain items collected both from the thicket and our great city of Rivervale. It is my hope that while you progress in your training and through the different armor pieces that you will be able to learn of your surroundings both inside and outside the Vale. If you are ready to start fashioning your items simply tell me what armor piece you [want] to make. I have the recipe for Proudfoot Platemail [Helms], [Bracers], [Armguards], [Boots], [Greaves], [Gauntlets] and [Breastplates]. As a side note, make sure you craft your Breastplate last due to the difficulty of collecting the items for it."); + e.other:SummonCursorItem(17248); --Dalorio's Assembly Kit + elseif(e.message:findi("helm")) then + e.self:Say("Ok " .. e.other:GetCleanName() .. ", for your helm material you will need to collect 2 Bricks of Crude Iron Ore, 1 Large Yellowjacket Tarsus, 1 Ruined Wolf Pelt and 1 Jumjum Juice then combine them in your assembly kit. Once you have crafted your Proudfoot Helm Material combine it with this mold in the forge to create your Proudfoot Platemail Helm."); + e.other:SummonCursorItem(22610); -- Item: An Enchanted Helm Mold + elseif(e.message:findi("bracer")) then + e.self:Say("Alrighty then " .. e.other:GetCleanName() .. "! To create your bracer material you will need to gather 2 Bricks of Crude Iron Ore, 1 Thorn Drakeling Scale, 2 Fire Beetle Eyes and 1 Lettuce then combine them in your assembly kit. After creating your Proudfoot Bracer Material combine it in a forge with this mold to fashion your Proudfoot Platemail Bracer."); + e.other:SummonCursorItem(22611); -- Item: An Enchanted Bracer Mold + elseif(e.message:findi("armguard")) then + e.self:Say("Been taking a few too many blows on the arms there " .. e.other:GetCleanName() .. "? Well I can certainly understand any Halflings need for some armguards. Round up 3 Bricks of Crude Iron Ore, 2 Rat Whiskers, 2 Mossy Rat Pelts and 1 Wolf Meat then combine them in your kit. Once you have made the Proudfoot Armguards Material take it to a forge and combine it together with this mold to fashion your Proudfoot Platemail Armguards."); + e.other:SummonCursorItem(22613); -- Item: An Enchanted Armguard Mold + elseif(e.message:findi("boot")) then + e.self:Say("Fantastic! To create the Proudfoot Boot Material necessary for crafting your Proudfoot Platemail Boots you will need to collect 2 Bricks of Crude Iron Ore, 2 Bat Wings, 2 Water Flasks and 1 Large Wood Spider Tibia. After you have your Proudfoot Boot Material combine it in the forge with this mold to create your Proudfoot Platemail Boots."); + e.other:SummonCursorItem(22612); -- Item: An Enchanted Boot Mold + elseif(e.message:findi("greave")) then + e.self:Say("I would have to agree that some Greaves are the most important armor piece in any Halfling Warriors arsenal. If you wish to make the material necessary for these Greaves then gather 4 Bricks of Crude Iron Ore, 2 Ruined Mossy Rat Pelts, 2 Thick Grizzly Bear Skins and 1 Bixie Parts then combine them in your kit. After you have your Proudfoot Greaves Material combine it in the forge with this mold to create your Proudfoot Platemail Greaves."); + e.other:SummonCursorItem(22614); -- Item: An Enchanted Greaves Mold + elseif(e.message:findi("gauntlet")) then + e.self:Say("If you wish to gather the items necessary for your gauntlet pattern you will need to collect 3 Bricks of Crude Iron Ore, 1 Thorn Drakeling Scale, 1 Large Fruit Bat Fur, 1 Rat Tooth and 1 Spider Silk then combine them in your kit. Once you have done this take your Proudfoot Gauntlets Material to the nearest forge along with this mold to fashion together your Proudfoot Platemail Gauntlets."); + e.other:SummonCursorItem(22615); -- Item: An Enchanted Gauntlet Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("So you feel the time has come and that you have the skills necessary to collect and fashion together all the items necessary for the Proudfoot Breastplate Material? Well I don't think you would ask if you were not ready, so please collect 5 Bricks of Crude Iron Ore, 1 Giant Fruit Bat Wing, 1 Giant Fruit Bat Rib Cage, 1 Giant Yellowjacket Thorax, 1 Large Yellowjacket Tarsus and 1 Deathfist Slashed Belt then combine them in your kit. Once you are finished, take this mold along with your material to a forge to create your Proudfoot Platemail Breastplate. Also return to me after you are finished with your Breastplate for I might have some [small assignments] for you."); + e.other:SummonCursorItem(22616); -- Item: An Enchanted Breastplate Mold + elseif(e.message:findi("small assignments")) then + e.self:Say("Well you see we have been invaded by the Runnyeye goblins many times before " .. e.other:GetCleanName() .. ". However lately there have been more and more attacks on our homeland with every attack being that much more brutal and savage then the attack before. I need a brave halfling who is willing to [seek retribution] on these goblins and show them who is boss once and for all."); + elseif(e.message:findi("seek retribution")) then + e.self:Say("I knew I could count on you young " .. e.other:GetCleanName() .. ". As each day goes by more and more bloodthirsty orcs set up camp in the thicket. They are working together with the goblins of Runnyeye through some twisted alliance brought forth by Lord Pickclaw to mount an attack on Rivervale. I strongly feel that this attack may be more then we can handle. If we are able to find out how they plan to attack us we can make sure that their plan will not be carried out. Once you have obtained 4 pages of war documents from these monsters return them to me and I will reward you greatly for your efforts."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 22940, item2 = 22941, item3 = 22942, item4 = 22943})) then + e.self:Say("Your good deeds shall be echoed in the Rivervale Hall of Heroes for many years to come. With these documents I will be able to have my army prepared for whatever they decide to come at us with. I thank you, young Warhumago. Please take this sword as a symbol of your loyalty to the Vale."); + e.other:Faction(e.self,263,10); -- Guardian of the Vale + e.other:Faction(e.self,286,1); -- Mayor Gubbin + e.other:Faction(e.self,355,1); -- Storm Reaper + e.other:Faction(e.self,292,1); -- Merchants of Rivervale + e.other:Faction(e.self,334,1); -- Dreadguard Outer + e.other:QuestReward(e.self,0,0,0,0,22945,500); -- Item: Edge of the Proudfoot + end + + item_lib.return_items(e.self, e.other, e.trade); +end +--END of FILE Zone:rivervale ID:19025 -- Dalorio_Blistbobble diff --git a/rivervale/Deputy_Alltin.lua b/rivervale/Deputy_Alltin.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Alltin.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Antana.lua b/rivervale/Deputy_Antana.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Antana.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Banto.lua b/rivervale/Deputy_Banto.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Banto.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Beedo.lua b/rivervale/Deputy_Beedo.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Beedo.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Cheel.lua b/rivervale/Deputy_Cheel.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Cheel.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Chopo.lua b/rivervale/Deputy_Chopo.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Chopo.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Deego.lua b/rivervale/Deputy_Deego.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Deego.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Dopkin.lua b/rivervale/Deputy_Dopkin.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Dopkin.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Finlip.lua b/rivervale/Deputy_Finlip.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Finlip.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Fozon.lua b/rivervale/Deputy_Fozon.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Fozon.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Goltin.lua b/rivervale/Deputy_Goltin.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Goltin.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Gozan.lua b/rivervale/Deputy_Gozan.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Gozan.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Heepo.lua b/rivervale/Deputy_Heepo.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Heepo.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Higley.lua b/rivervale/Deputy_Higley.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Higley.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Higrin.lua b/rivervale/Deputy_Higrin.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Higrin.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Hiltop.lua b/rivervale/Deputy_Hiltop.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Hiltop.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Jeggin.lua b/rivervale/Deputy_Jeggin.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Jeggin.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Kapop.lua b/rivervale/Deputy_Kapop.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Kapop.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Leeot.lua b/rivervale/Deputy_Leeot.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Leeot.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Lowmot.lua b/rivervale/Deputy_Lowmot.lua new file mode 100644 index 0000000..ab5c6c8 --- /dev/null +++ b/rivervale/Deputy_Lowmot.lua @@ -0,0 +1,48 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Greetings, %s! I am Deputy Lowmot. In addition to my duties as a deputy, I am also in charge of organizing all of our meals here at the Guardian Stronghold.", e.other:GetCleanName())); + elseif(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) +local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13959})) then -- can be done at dubious + e.self:Say("Oh good! Hey. You are not Jillin.. Helping out Blinza huh? She is quite a woman.. Yes indeed. Quite a woman.. ah.. Oh sorry. Here you go. Thanks again. Mayor Gubbin will be pleased."); + e.other:Faction(e.self,263, 1); -- Faction: Guardians of the Vale + e.other:Faction(e.self,286, 1); -- Faction: Mayor Gubbin + e.other:Faction(e.self,355, 1); -- Faction: Storm Reapers + e.other:Faction(e.self,292, 1); -- Faction: Merchants of Rivervale + e.other:Faction(e.self,334, -1); -- Faction: Dreadguard Outer + e.other:QuestReward(e.self,7,0,0,0,0,10); + end + item_lib.return_items(e.self, e.other, e.trade); +end + +--END of FILE Zone:rivervale ID:19110 -- Deputy_Lowmot diff --git a/rivervale/Deputy_Millin.lua b/rivervale/Deputy_Millin.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Millin.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Niepo.lua b/rivervale/Deputy_Niepo.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Niepo.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Olo.lua b/rivervale/Deputy_Olo.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Olo.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Percin.lua b/rivervale/Deputy_Percin.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Percin.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Pigon.lua b/rivervale/Deputy_Pigon.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Pigon.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Pittin.lua b/rivervale/Deputy_Pittin.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Pittin.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Quillto.lua b/rivervale/Deputy_Quillto.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Quillto.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Raynin.lua b/rivervale/Deputy_Raynin.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Raynin.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Regno.lua b/rivervale/Deputy_Regno.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Regno.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Rollin.lua b/rivervale/Deputy_Rollin.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Rollin.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Sertlin.lua b/rivervale/Deputy_Sertlin.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Sertlin.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Shelmy.lua b/rivervale/Deputy_Shelmy.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Shelmy.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Tilo.lua b/rivervale/Deputy_Tilo.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Tilo.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Tizzin.lua b/rivervale/Deputy_Tizzin.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Tizzin.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Tocat.lua b/rivervale/Deputy_Tocat.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Tocat.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Tonlo.lua b/rivervale/Deputy_Tonlo.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Tonlo.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Deputy_Zopo.lua b/rivervale/Deputy_Zopo.lua new file mode 100644 index 0000000..74852c3 --- /dev/null +++ b/rivervale/Deputy_Zopo.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("nice hat") or e.message:findi("nice mask")) then + e.self:Say("Thank you. It is worn with pride and is the trademark of the deputies of the Guardians of the Vale."); + elseif(e.message:findi("farm")) then + e.self:Say("Tagglefoot's Farm sits in south Rivervale toward the entrance from Kithicor Forest. Will Tagglefoot is the owner and along with the help of his fellow druids, the Storm Reapers, they supply Rivervale with plenty of food."); + elseif(e.message:findi("kithicor")) then + e.self:Say("Kithicor Forest can be found past the south entrance near the Chapel of Mischief."); + elseif(e.message:findi("bank")) then + e.self:Say("In Rivervale, you will find our vault inside Guardian Stronghold. It will be near the entrance. I believe Donlo Goobler is the teller."); + elseif(e.message:findi("mischief")) then + e.self:Say("The Chapel of Mischief would be found toward the south entrance of Rivervale. It is where the Clerics of Mischief hold their services."); + elseif(e.message:findi("ranger guild") or e.message:findi("druid guild")) then + e.self:Say("The farmers of Rivervale all congregate at Will Tagglefoot's Farm."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("The Priests of Mischief hold their services at the Chapel of Mischief."); + elseif(e.message:findi("gubbin")) then + e.self:Say("Mayor Gubbin is our great halfling leader. If you wish to speak with him, he can be found in Guardian Stronghold. It is from there that he dispenses his wisdom."); + elseif(e.message:findi("king") or e.message:findi("leader") or e.message:findi("mayor")) then + e.self:Say("Rivervale is governed by Mayor Gubbin."); + elseif(e.message:findi("misty")) then + e.self:Say("You will find the Misty Thicket through the west entrance by Guardian Stronghold."); + elseif(e.message:findi("weapon")) then + e.self:Say("If I were looking to purchase a fine weapon of superior craftsmanship, I would look to Rantho's Weaponry in Guardian Stronghold."); + elseif(e.message:findi("kevlin") or e.message:findi("armor")) then + e.self:Say("Kevlin's Gear is a good place to find armor if you plan on venturing into Kithicor Forest or the Misty Thicket. If you need it, it is located next to the Fool's Gold."); + elseif(e.message:findi("loom") or e.message:findi("sewing")) then + e.self:Say("Meeka Diggs in the center of Rivervale behind the Fool's Gold Tavern may be able to provide you with a sewing kit. There is also a loom near where she peddles her goods."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/rivervale/Fiddy_Bobick.lua b/rivervale/Fiddy_Bobick.lua new file mode 100644 index 0000000..e16d8f9 --- /dev/null +++ b/rivervale/Fiddy_Bobick.lua @@ -0,0 +1,36 @@ +-------------------------- + --Quest Name:The Fishslayers + --Author:Shaznito + --NPCs Involved:Fiddy Bobick, Marshall Lanena + --Items Involved:Bag of Piranha Teeth, Piranha Bag, Piranha Tooth + ---------------------------------- +function event_waypoint_arrive(e) + if(wp == 6) then + e.self:Say("When will Wickystick send help?!"); + end +end + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Ahoy. mate!! The name's Fiddy Bobick! Perhaps you've heard of me.. the greatest halfling to sail the seas of Norrath? I have been to the North. South. East and West. and thank Prexus. I have survived it all! Why I have returned to this little hollow is a wonder to me. Obviously. the salty air finally got to my brain!"); + elseif(e.message:findi("sent me")) then + e.self:Say("Well. it's about blasted time! The ship was about to sink. Wickystick finally managed to send the troops in! The problem. mate. is piranha !! What?!! That's what I said. Piranha! The lake is infested with the little buggers. More and more every sunrise. They're chomping down all our food supply. You have gotta get your can in the drink and kill them. Take one of their teeth to old Wickystick and see what she has to say about Fiddy then! I will also give you some booty for any teeth you pull out of this river. Well. get going. Deputy " .. e.other:GetCleanName() .. "!"); + end +end + +function event_trade(e) +local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13929})) then + e.self:Say("Whew!! We are sure on the way to saving this village, pal! They're gonna erect a statue in our names. Fishslayers is what we are! Let's keep up the good work!"); + e.other:Faction(e.self,292,1); -- Faction: Merchants of Rivervale + e.other:Faction(e.self,241,1); -- Faction: DeepPockets + e.other:Faction(e.self,263,1); -- Faction: Guardians of the Vale + e.other:Faction(e.self,286,1); -- Faction: Mayor Gubbin + e.other:Faction(e.self,336,-1); -- Faction: Coalition of Tradefolk Underground + e.other:QuestReward(e.self,0,math.random(8),math.random(0,3),0,0,15); + else + item_lib.return_items(e.self, e.other, e.trade); -- return unused items + end +end + --END of FILE Zone:rivervale ID:19086 -- Fiddy_Bobick diff --git a/rivervale/Flyndia_Deeppockets.lua b/rivervale/Flyndia_Deeppockets.lua new file mode 100644 index 0000000..78f2a35 --- /dev/null +++ b/rivervale/Flyndia_Deeppockets.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks up something from the ground."); + end + end +end diff --git a/rivervale/Gaffin_Deeppockets.lua b/rivervale/Gaffin_Deeppockets.lua new file mode 100644 index 0000000..6d828c2 --- /dev/null +++ b/rivervale/Gaffin_Deeppockets.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + eq.set_timer("lenny",950000); +end + +function event_timer(e) + if(timer == "lenny") then + e.self:Say("Lenny, we has a problem. Stanos is back, and he ain't happy. He told me to tell ya that he would be calling in his markers soon. I reckon ya know what that means, and that's bad business with the Circle. Whatcha wanna do?"); + eq.signal(19062,1); -- NPC: Lendel_Deeppockets + end +end diff --git a/rivervale/Gapeers_Johhanis.lua b/rivervale/Gapeers_Johhanis.lua new file mode 100644 index 0000000..0b8d43d --- /dev/null +++ b/rivervale/Gapeers_Johhanis.lua @@ -0,0 +1,52 @@ +-------------------------- +--Quest Name:The Acolyte +--Author:Shaznito +--NPCs Involved:Gapeers Johhanis +--Items Involved:Algae Covered Flesh, Swollen Flesh, Waterlogged Flesh +---------------------------------- + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("jumps at your voice, he's obviously very focused on a set of beakers on the table. They seem to be holding samples of rotted flesh. Gapeers says, 'Oh my heart! You could have stopped it! Please be careful when entering these chambers. It would be unfortunate if I had dropped and broken these [specimens]."); + elseif(e.message:findi("what specimens")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("turns to explain the specimens when he accidentally knocks over the beakers. He sucks in a short breath as the beakers crash to the ground, ruining the samples. As Gapeers's skin loses color he says, 'OH NO!! No, not my specimens!! Now what am I to do?! I needed those badly! You did this! You [owe] me now!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("what do I owe")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say(string.format("You bet you do! You big clumsy %s! These were the remains of unfortunates who were drowned. Not only were they drowned but their bodies clung to life and refused to settle. Products of the horrendous curse of unlife. I'll need you to find three [special samples] of drowned and cursed flesh.", e.other:Race())); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("special sample")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Emote("'s eyes widen as he realizes you actually might intend to help him. His voice becomes raspy with desperation as he says, 'Oh! Wonderful....uuhhmmm.... well ....You'll need to find undead creatures found in the waters of three different climates. One from a tropical ocean. One from the muddy and slow moving river of a jungle. And one from the stagnate and polluted water of a city's sewer, Freeport would be ideal. Will you really [do this for me]?"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("do this for you")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:DoAnim(50); + e.self:Say("Oh thank goodness! Thank you so much, " .. e.other:GetCleanName() .. "! Those old specimens were much to ancient anyway, fresh ones will help in my mission to heal those who were unfortunate enough to drown and become cursed. If you bring back the three samples I have a little something you might like. Although it will only fit and be of use to one who heals as a profession and is small of stature like myself. Good luck!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Oh....well.....This is nice, but I'll need the swollen, waterlogged, and algae covered flesh before I can reward you."; + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1736, item2 = 1737, item3 = 1735},1,text)) then + e.self:Emote("cheers as you hand him the samples of zombie flesh. He says, 'You have them! Excellent! Thank you very much, " .. e.other:GetCleanName() .. "! Now I have much work to do so shoo before you break something else. Oh and here is your reward. It's an anklet that all our acolytes wear. Not only is it functional, but we can show off our beautiful foot hairs at the same time. Us halflings are pretty smart really."); + e.other:Faction(e.self,300,5); -- Faction: Priests of Mischief + e.other:Faction(e.self,286,1); -- Faction: Mayor Gubbin + e.other:Faction(e.self,263,1); -- Faction: Guardians of the Vale + e.other:QuestReward(e.self,math.random(0,15),math.random(0,15),math.random(0,7),0,1731,100); -- Item: Acolytes Anklet + else + item_lib.return_items(e.self, e.other, e.trade); -- return unused items + end +end diff --git a/rivervale/Hendi_Mrubble.lua b/rivervale/Hendi_Mrubble.lua new file mode 100644 index 0000000..56bf68c --- /dev/null +++ b/rivervale/Hendi_Mrubble.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Why. hello there!! Welcome to the Church of Mischief. I am Hendi Mrubble. The 'R' is silent. I am the resident healer of the church. so if you are in [need of healing]. or want me to [cure poison] or [cure disease]. let me know. If you've got a touch of the crazy brain. I can't do a thing for you."); + elseif(e.message:findi("healing")) then + e.self:Say("Hmmm. I would love to help you with that. but you will have to make a donation to the temple. The Guardians asked me to charge one of the Rivervale piranha teeth."); + elseif(e.message:findi("cure disease")) then + e.self:Say("Eeww!! Careful. don't touch Hendi. I figured there must have been something not quite right about you. Well, now. before we can cast the disease from your body you will have to make a little donation of one gold for the service and eight gold to disinfect this place. That would be 10 total!! Let's see it."); + elseif(e.message:findi("cure poison")) then + e.self:Say("Cure poison. eh? Before we do that. you must fetch me three bixie stingers."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {gold = 10})) then + e.self:Say("May the swift and silent spirit of Fizzlethorpe Bristlebane smile upon your frail soul."); + eq.SelfCast(213); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14029, item2 = 14029, item3 = 14029})) then + e.self:Say("May the swift and silent spirit of Fizzlethorpe Bristlebane smile upon your frail soul."); + eq.SelfCast(203); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13929})) then + e.self:Say("May the swift and silent spirit of Fizzlethorpe Bristlebane smile upon your frail soul."); + eq.SelfCast(12); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13936})) then -- doesnt appear to have a faction requirement for recharging squad ring + e.self:Say("May the swift and silent spirit of Fizzlethorpe Bristlebane smile upon your frail soul."); + e.other:QuestReward(e.self,{itemid = 13936}); + end + item_lib.return_items(e.self, e.other, e.trade); +end diff --git a/rivervale/Hibbs_Rootenpaw.lua b/rivervale/Hibbs_Rootenpaw.lua new file mode 100644 index 0000000..9644b9b --- /dev/null +++ b/rivervale/Hibbs_Rootenpaw.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("Hello! I am Hibbs Rootenpaw, Master Druid of the Storm Reapers. If you have not yet ventured beyond Rivervale beware of the [dangers] that lurk through out the lands beyond our shire. There are many evil beings that would not hesitate to end the life of a young druid of the Storm Reapers."); + elseif(e.message:findi("dangers")) then + e.self:Say("The Teir'Dal, or Dark Elves, to the east have slain a number of brave Storm Reapers that are attempting to cleanse the Nektulos Forest of the corruption caused by the Teir'Dals evil magics. To the west, the human farmers in the Plains of Karana are beset upon by vicious tribes of Gnolls and must valiantly defend their farms. Closer to home the Death Fist Orcs and Goblin Clans Runnyeye and Pick Claws all attempt to control the Misty Thicket and chop down its sturdy trees for lumber. If you are planning on leaving the safety of Rivervale I advise you to deliver this note to Bartle Barnick. He will help you get yourself outfitted for survival in the wilds. When he has outfitted you in a suit of protective leather return here for [further instruction]."); + e.other:SummonCursorItem(19629); -- Letter to Bartle Barnick + elseif(e.message:findi("further instruction")) then + e.self:Say("If you feel you are ready for the responsibility of an important task then you may assist with the [investigation] of the ancient cursed fields in the Misty Thicket. The crumbling walls that surround the cursed fields are believed to have been constructed around the same time as the ruined tower and the great wall of Cetelt. We Storm Reapers believe that the walls once surrounded beautiful and fruitful gardens. The arrogance of the caretaker of the gardens offended the Gods and in turn the gardens were cursed with disease and an evil power that animates the corpses of the dead. The Scarecrow, Old Gourdhead, stands in one of these two fields and warns passers by that it is an accursed place. Recently someone has been placing rats in the fields to become diseased."); + elseif(e.message:findi("investigation")) then + e.self:Say("We Storm Reapers are searching for the culprit that is seeding the cursed fields with the diseased and undead creatures. The person responsible has committed great offenses to the ways of Karana and the people of Rivervale and must be stopped. Should you identify the individual responsible slay them and bring their head to me and you shall be rewarded for your deed. It is a shame that our otherwise peaceful lives must occasionally be interrupted by the necessity for bloodshed."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18734})) then -- Tattered Note + e.self:Say("Hello, friend! I am Hibbs Rootenpaw, leader of the Storm Reapers. Our guild works together with Will Tagglefoot and his family on their farm, to produce the food supply for all of Rivervale. With Karana's help, we have a bountiful harvest every season. We're glad you could help us out. Here's your guild tunic, it'll help keep you dry during the wet months. Go find Reebo out in the fields. He'll help get you started. Welcome aboard! May you serve Karana well."); + e.other:Faction(e.self,355,100,0); -- +Storm Reapers + e.other:Faction(e.self,286,10,0); -- +Mayor Gubbin + e.other:Faction(e.self,292,15,0); -- +Merchants of Rivervale + e.other:Faction(e.self,324,-15,0); -- -Unkempt Druids + e.other:QuestReward(e.self,0,0,0,0,13541,20); -- Jumjum Sack Tunic* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19689})) then -- Rusbek's Head + e.self:Say("Excellent work young Storm Reaper. It is sad that one of our own would resort to such vile acts; his mind must have been twisted by evil desires. Such behavior is practically unheard of among the kind people of Rivervale. Take this dull scimitar and sharpen it in the forge here at the Tagglefoots Farm with a sharpening stone. It may take several attempts if you are unfamiliar with the process. Once that is done give the sharpened scimitar and a large fruit bat wing to Bodbin Gimple and he will put the finishing touches on what will be a fitting scimitar for a Druid of the Storm Reapers."); + e.other:Faction(e.self,355,10,0); -- +Storm Reapers + e.other:Faction(e.self,286,1,0); -- +Mayor Gubbin + e.other:Faction(e.self,292,1,0); -- +Merchants of Rivervale + e.other:Faction(e.self,324,-1,0); -- -Unkempt Druids + e.other:QuestReward(e.self,0,0,0,0,19626,10); -- Dull Storm Reaper Scimitar + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/rivervale/Ilscent_Tagglefoot.lua b/rivervale/Ilscent_Tagglefoot.lua new file mode 100644 index 0000000..99bb3b8 --- /dev/null +++ b/rivervale/Ilscent_Tagglefoot.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh hello. " .. e.other:GetCleanName() .. ". My name is Ilscent. I am glad to see you. but I am in a bit of a [bind] right now."); + elseif(e.message:findi("bind")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Well. I promised an ally of ours that I would send him a case of Jumjum juice for all the help he has given us. I had planned on taking it to him myself but I have too many chores to do here on the farm. Will you take the [jumjum juice] to him?"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you.") + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("jumjum juice")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Oh. thank you so much! His name is Xanuusus and he lives in the Plains of Karana. in the foothills along their northern edge. actually. We are most grateful for your help. Xanuusus normally rewards messengers well."); + e.other:SummonCursorItem(13411); -- Item: Case of Jumjum Juice + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you.") + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +-- END of FILE Zone:rivervale ID:19102 -- Ilscent_Tagglefoot + diff --git a/rivervale/Jimji_Bottletoe.lua b/rivervale/Jimji_Bottletoe.lua new file mode 100644 index 0000000..901cd03 --- /dev/null +++ b/rivervale/Jimji_Bottletoe.lua @@ -0,0 +1,38 @@ +function event_say(e) + if(e.message:findi("bravefoot helm")) then + e.self:Say("To assemble a Bravefoot Helm you will need to obtain two bricks of crude iron ore and smelt them in a [forge] with a Water Flask and this Crude Helm Mold. Once that is done combine the Crude Iron Helm with a Ruined Wolf Pelt and a Large Yellowjacket Tergite in the Mail Assembly Kit."); + e.other:SummonCursorItem(19631); -- Item: Crude Helm Mold + elseif(e.message:findi("forge")) then + e.self:Say("There is a forge at the Tagglefoots Farm near the vegetable stand and the main house of the farm."); + elseif(e.message:findi("bravefoot mail bracer")) then + e.self:Say("To assemble a Bravefoot Mail Bracer you will need to obtain a brick of crude iron ore and smelt it in a [forge] with a Water Flask and this Crude Bracer Mold. Once that is done. combine the Crude Iron Bracer with a Ruined Wolf Pelt and a Large Yellowjacket Sternite in the Mail Assembly Kit."); + e.other:SummonCursorItem(19632); -- Item: Crude Bracer Mold + elseif(e.message:findi("bravefoot gauntlets")) then + e.self:Say("To assemble Bravefoot Gauntlets you will need to obtain two bricks of crude iron ore and smelt them in a [forge] with a Water Flask and this crude Gauntlet Mold. Once that is done combine the Crude Iron Gauntlets with a Ruined Wolf Pelt and two Large Yellowjacket Tarsi in the Mail Assembly Kit."); + e.other:SummonCursorItem(19633); -- Item: Crude Gauntlets Mold + elseif(e.message:findi("bravefoot vambraces")) then + e.self:Say("To assemble Bravefoot Vambraces you will need to obtain two bricks of crude iron ore and smelt them in a [forge] with a Water Flask and this Crude Vambrace Mold. Once that is done combine the Crude Iron Vambraces with a Low Quality Wolf Pelt and two Giant Yellowjacket Tergites in the Mail Assembly Kit."); + e.other:SummonCursorItem(19635); -- Item: Crude Vambrace Mold + elseif(e.message:findi("bravefoot greaves")) then + e.self:Say("To assemble Bravefoot Greaves you will need to obtain two bricks of crude iron ore and smelt them in a [forge] with a Water Flask and this Crude Greaves Mold. Once that is done combine the Crude Iron Greaves with two Low Quality Wolf Pelts and two Giant Yellowjacket Sternites in the Mail Assembly Kit."); + e.other:SummonCursorItem(19636); -- Item: Crude Greaves Mold + elseif(e.message:findi("bravefoot breastplate")) then + e.self:Say("To assemble a Bravefoot Breastplate you will need to obtain four bricks of crude iron ore and smelt them in a [forge] with a Water Flask and this Crude Breastplate Mold. Once that is done combine the Crude Iron Breastplate with a Medium Quality Wolf Pelt and a Giant Yellowjacket Thorax in the Mail Assembly Kit."); + e.other:SummonCursorItem(19637); -- Item: Crude Breastplate Mold + elseif(e.message:findi("bravefoot mail boots")) then + e.self:Say("To assemble Bravefoot Mail Boots you will need to obtain two bricks of crude iron ore and smelt them in a [forge] with a Water Flask and this crude Boot Mold. Once that is done combine the Crude Iron Boots with two Ruined Wolf Pelts. and two Giant Yellowjacket Tarsi in the Mail Assembly Kit."); + e.other:SummonCursorItem(19634); -- Item: Crude Boot Mold + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19628})) then + e.self:Say("Pleased to meet you " .. e.other:GetCleanName() .. "! You must be one of Kayas new trainees. Kaya has asked me to help get you outfitted in a suit of armor to protect you from the vile weapons of Rivervales foes. I have assembled a kit for you that will allow you to construct the armor pieces once you have gathered the necessary components. The required components vary according to which piece of Bravefoot Mail armor you are planning on assembling. Do you wish to craft a [bravefoot helm]. a [bravefoot mail bracer]. [bravefoot gauntlets]. [bravefoot mail boots]. [bravefoot vambraces]. [bravefoot greaves]. or a [bravefoot breastplate]."); + e.other:QuestReward(e.self,0,0,0,0,17124); -- Item: Mail Assembly Kit + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:rivervale ID:19047 -- Jimji_Bottletoe \ No newline at end of file diff --git a/rivervale/Kaya_Cloudfoot.lua b/rivervale/Kaya_Cloudfoot.lua new file mode 100644 index 0000000..d298bbc --- /dev/null +++ b/rivervale/Kaya_Cloudfoot.lua @@ -0,0 +1,39 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("A pleasure to make your acquaintance " .. e.other:GetCleanName() .. ". I am Kaya Cloudfoot. first Paladin of the Storm Reapers. I traveled long ago when I was just a wee sprout to the city of Qeynos far to the west. It was there I grew under the tutelage of the Knights of Thunder. a noble order of paladins loyal to Karana. the Storm Lord. I have returned now to Rivervale to teach interested young halflings the ways of a Knight of the Storm Reapers so that we may defend Karanas people and lands from the [evil forces] that would see it destroyed."); + elseif(e.message:findi("evil forces")) then + e.self:Say("There are many problems and creatures that trouble Karanas people through out Norrath and threaten our otherwise peaceful ways of life. Our common folk here in Rivervale are troubled by the wicked Teir`Dal. the Death Fist Orcs. and the Goblins of Clan Runnyeye and Pickclaw. It is the calling and duty of a Knight of the Storm Reapers to defend the common folk from these enemies of Rivervale. Are you willing to [defend the commoners]?"); + elseif(e.message:findi("commoners")) then + e.self:Say("You have made an honorable decision. " .. e.other:GetCleanName() .. ". First you will need to be outfitted in a suit of armor to protect you from the weapons of our foes. Seek Jimji Bottletoe here in Rivervale and give him this letter. Jimji will instruct you further on acquiring a suit of armor worthy of a new Knight of the Storm Reapers. When you have been outfitted in your Bravefoot Armor return to me and I shall prepare you for your [next task]."); + e.other:SummonCursorItem(19628); -- Item: Letter to Jimji Bottletoe + elseif(e.message:findi("next task")) then + e.self:Say("The Teir'Dal. or Dark Elves that reside in the underground city of Neriak to the east beyond the Commonlands have long been a bane to us Storm Reapers. Many of our Druids have fallen attempting to hold back the tide of hate and destruction that has taken hold on the Nektulos Forest and threatens the surrounding lands. It was also the Teir`Dals patron God. Innorruuk. who caused the [Curse of Bloody Kithicor]. Are you ready to [face the Teir'Dal] and bloody your hands for the protection of your Shire and our commoners humble way of life?"); + elseif(e.message:findi("Curse of Bloody Kithicor")) then + e.self:Say("There was a great war that was fought not long ago between the Teir'Dal. and their evil minions. and the armies of Felwithe. Qeynos. Freeport. and Kaladim. In the Kithicor Woods the Daughter of Innoruuk. Lanys T'Vyl. and her minions fought against the chosen of Tunare. Firiona Vie. and her most loyal allies. The evil God of Hate. Innoruuk. intervened every living creature in the Kithicor Woods instantly fell dead as a great rift to the Plane of Hate appeared in the sky. Since that time. when night falls on the Kithicor Woods blood seeps from the trees and ground and the hateful dead hunt any living being who dares to trespass in the woods that ended their lives."); + elseif(e.message:findi("face the Teir")) then + e.self:Say("Some days ago one of our Storm Reapers. a ranger by the name of Botim Bonker. ventured into the Kithicor Forest at daybreak on a routine patrol and never returned. That night his bloodied tunic was found hanging on a fence post of Tagglefoots Farm. The blood was dried and many hours old. We believe that he was slain during the day and that deduction coupled with the fact the undead of Kithicor do not leave the woods nor possess the intelligence or means to sneak into Rivervale and leave the tunic where it would surely be found by fellow Storm Reapers led us to believe they were not responsible. We believe it was the work of the Teir'Dal. Search the Kithicor Woods by daylight and punish the Teir'Dal responsible. Return with the villains severed hands as proof of his death."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18431})) then -- Halfling Paladin Note + e.self:Say("Karana smiles upon you young " .. e.other:GetCleanName() .. "! Take this tunic to keep you warm through the storms you must face. There is evil encroaching upon the lands of Karana's faithful. The wicked minions of Bertoxxulous and the Teir'Dal children of Hate corrupt the lands to the west and east, and the Deathfist Clan of Orcs are waging war on this region while destoying the wilderness for lumber and stone. It is Karana's will that we defend our lands and way of life from these evil threats."); + e.other:Faction(e.self,355,100,0); -- +Storm Reapers + e.other:Faction(e.self,286,10,0); -- +Mayor Gubbin + e.other:Faction(e.self,292,15,0); -- +Merchants of Rivervale + e.other:Faction(e.self,324,-15,0); -- -Unkempt Druids + e.other:QuestReward(e.self,0,0,0,0,13541,100); -- Jumjum Sack Tunic* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19688})) then + e.self:Say("Take this Dull Bravefoot Short Sword to the forge at Tagglefoots farm and sharpen it with a sharpening stone. It may take several attempts if you are unfamiliar with the process. Once that is done present the blade and a large snake skin to Bodbin Gimple and he will put the finishing touches on the sword."); + e.other:Faction(e.self,355,10,0); -- +Storm Reapers + e.other:Faction(e.self,286,1,0); -- +Mayor Gubbin + e.other:Faction(e.self,292,1,0); -- +Merchants of Rivervale + e.other:Faction(e.self,324,-1,0); -- -Unkempt Druids + e.other:QuestReward(e.self,0,0,0,0,19625,10); -- Item: Dull Bravefoot Short Sword + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:rivervale ID:19049 -- Kaya_Cloudfoot diff --git a/rivervale/Kevlin_Diggs.lua b/rivervale/Kevlin_Diggs.lua new file mode 100644 index 0000000..80baf73 --- /dev/null +++ b/rivervale/Kevlin_Diggs.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "! Welcome to my shop! We have many fine wares. The Diggses of Rivervale have always supplied halflings and travelers with the finest armor. I advise you to purchase armor only from Kevlin's Gear and not to be conned into buying from Sonsa Fromp."); + elseif(e.message:findi("mangler")) then + e.self:Say("Mangler is my guard dog. I have had him since he was a pup. You had best stay far away from him - he doesn't like strangers. And don't even think about hurting him or I will KILL you. You got that?! Good. Did you have some shopping to do or did you just come here to talk about my dog?"); + elseif(e.message:findi("meeka")) then + e.self:Say("Meeka Diggs is my younger sister. She is also in the family business. She deals with all the cloth armor."); + elseif(e.message:findi("twippie")) then + e.self:Say("Twippie Diggs is my youngest sibling. He handles all the sales of leather armor."); + elseif(e.message:findi("lashinda")) then + e.self:Say("Ahh... Lashinda... She is my new love. She works over at the Fool's Gold."); + elseif(e.message:findi("sonsa")) then + e.self:Say("I used to be wed to Sonsa Fromp. She shamed the Diggs name by cheating my customers. She would charge my customers double! I am sure she is still doing the same, but it is done without the Diggs name. Good riddance!"); + end +end + +function event_signal(e) + e.self:Say("Settle down there, [Mangler].. Hey! I told you to stay off of that table!"); +end + +-- END of FILE Zone:rivervale ID:19053 -- Kevlin_Diggs \ No newline at end of file diff --git a/rivervale/Kizzie_Mintopp.lua b/rivervale/Kizzie_Mintopp.lua new file mode 100644 index 0000000..ec081d9 --- /dev/null +++ b/rivervale/Kizzie_Mintopp.lua @@ -0,0 +1,41 @@ +--############# +--#Quest Name:Honey Jum +--#Author:Shaznito +--#Revised and converted to Lua: robregen +--#NPCs Involved:Lil Honeybugger, Kizzie_Mintopp +--#Items Involved:3 Honeycombs, 30 gold +--################# + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Enough talk there, chatterbox. You buy lots of herbs. I gotta make a living, not more friends."); + elseif(e.message:findi("temple of life")) then + e.self:Say("Oh, yes.. They always come for Kizzie's [honey jum]. They should have sent you next week. There is a [problem]."); + elseif(e.message:findi("problem")) then + e.self:Say("You see.. Joogl Honeybugger is hurt. He usually collects the [Honeycombs]. Only he knows where to get them. I need the Honeycombs to make the Honey Jum. Go and speak with Joogl. He is at his burrow outside of Rivervale. He says he cannot work. Tell him you need the Honeycombs."); + elseif(e.message:findi("honeycombs")) then + e.self:Say("If Kizzie knew that, then she would not hire Joogl Honeybugger! Go talk to him in the Misty Thicket."); + elseif(e.message:findi("make")) then + e.self:Say("No, no, no!! You will not get honey jum until you give Kizzie three honeycombs and thirty gold coins. Honey jum is valuable. Kizzie raised the fee!! That is how it works."); + elseif(e.message:findi("honey jum")) then + e.self:Say("It's a secret!! I get the honeycombs and combine them with the secret sauce and..presto.. honey jum!! It is used by only the wisest as a component. And you can only get it from Kizzie. It is also good on batwing crunchies. If you like.. Kizzie can [make honey jum] for you?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "This is not all! Kizzie says, three honeycombs and thirty gold coins! Oooh! They never listen."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13953,item2 = 13953,item3 = 13953,gold = 30},1,text)) then + e.self:Say("You are one lucky bixie buster. I just made a batch of honey jum. Here. No waiting for you. One jar for your good work. Bye, now!"); + e.other:Faction(e.self,292,1,0); -- confirmed live faction + e.other:Faction(e.self,241,1,0); -- Faction: DeepPockets + e.other:Faction(e.self,263,1,0); -- Faction: Guardians of the Vale + e.other:Faction(e.self,286,1,0); -- Faction: Mayor Gubbin + e.other:Faction(e.self,336,-1,0); -- Faction: Coalition of Tradefolk Underground + e.other:QuestReward(e.self,0,0,0,0,13952,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:rivervale ID:19070 -- Kizzie_Mintopp diff --git a/rivervale/Lendel_Deeppockets.lua b/rivervale/Lendel_Deeppockets.lua new file mode 100644 index 0000000..b63f209 --- /dev/null +++ b/rivervale/Lendel_Deeppockets.lua @@ -0,0 +1,65 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Its nice to meet you " .. e.other:GetCleanName() .. ". Allow me to introduce myself. I am Lendel Deeppockets master Assassin of Rivervale. I am personally in charge of all [training] we have the new recruits go through before they are sent out on specific missions."); + elseif(e.message:findi("stanos")) then + e.self:Say("Stanos is an old... ... buddy of mine. If yer looking for work, ya could take a message from me to him. Just tell him I sent ya, and see what he wants. But I gotta warn ya, he has more than a few fellers what want him dead, and anyone around him, too. Other side of the coin, he pays well and is fair, and looks after his own. Yer choice, you want the job or not?"); + elseif(e.message:findi("want.* job")) then + e.self:Say("You're a spunky one, eh, " .. e.other:Race() .. "! Ok, first off, you gots to find him. Just tell him I sent you to help, and he should take it from there. Ya might want to check the Karanas, I think he's been spotted around there lately."); + elseif(e.message:findi("training")) then + e.self:Say("There are many steps that a young rouge must take on the road to stealth. The most important part of your training is learning how to use the tools around you such as the forge. From the looks of you I can tell you could use some more [enchanted armor] as well so I think this would be a good learning experience."); + elseif(e.message:findi("enchanted armor")) then + e.self:Say("I am pleased to hear that you are interested in making your own armor " .. e.other:GetCleanName() .. ". I have some instructions for you so please listen closely. First, I will present you with your Dusty Mail Assembly kit when you are ready. After that, simply tell me what piece of Slickfinger Chainmail you [want] to craft and I will give you a pattern along with a recipe for [Coifs], [Bracers], [Sleeves], [Boots], [Legplates], [Gauntlets] and [Tunics]. The recipe I will give you for specific items will need to me combined in the assembly kit to create the magical material necessary. Once you have this material and pattern that I gave you when you told me what item you wanted to craft, put both in the nearest forge to create the armor piece you asked for. Here is your Dusty Mail Assembly Kit."); + e.other:SummonCursorItem(17247); -- Dusty Mail Assembly Kit + elseif(e.message:findi("coifs")) then + e.self:Say("Protecting the ole noggin is probably the smartest move you will make young " .. e.other:GetCleanName() .. ". Here is your pattern, once you have combined 2 Bricks of Crude Iron Ore, 2 Ruined Thorn Drakeling Scales and 1 Carrot in your kit place it in a forge along with this pattern to create your Slickfinger Chainmail Coif."); + e.other:SummonCursorItem(22671); -- Enchanted Coif Pattern + elseif(e.message:findi("bracers")) then + e.self:Say("Go out into the thicket and seek out 1 Brick of Crude Iron Ore, 1 Shattered Warbead, 1 Large Yellowjacket Sternite and 1 Milk. Once you have combined them in your kit to fashion the bracer material take it to a forge along with this pattern to create your Slickfinger Chainmail Bracer."); + e.other:SummonCursorItem(22672); -- Item: An Enchanted Bracer Pattern + elseif(e.message:findi("sleeves")) then + e.self:Say("If sleeves are what you wish to craft you will need to collect 3 Bricks of Crude Iron Ore, 3 Honeycombs, 2 Thorn Drakeling Scales and 2 Grapes then combine them in your kit to fashion the necessary material. Take this pattern to the nearest forge with that material to create your Sleeves of the Slickfinger."); + e.other:SummonCursorItem(22673); -- Item: An Enchanted Sleeves Pattern + elseif(e.message:findi("boots")) then + e.self:Say("Boots you say " .. e.other:GetCleanName() .. "? Well I think I heard you right but I had to check. Make sure you only wear your boots in case of emergency. All other times you should showcase your feet to the world with pride. You will need to combine 2 Bricks of Crude Iron Ore, 2 Fire Beetle Eyes and 2 Giant Thicket Rat Skulls in your kit to fashion your Slickfinger Boot Material. Once you have done this take the material to a forge along with this pattern to create your Slickfinger Chainmail Boots."); + e.other:SummonCursorItem(22674); -- Item: An Enchanted Boots Pattern + elseif(e.message:findi("legplates")) then + e.self:Say("I must say that pants are a good idea young " .. e.other:GetCleanName() .. ". Please gather 4 Bricks of Crude Iron Ore, 2 Spiderling Eyes, 2 Large Wood Spider Tarsus, 1 Bottle of Kalish and 1 Ruined Wolf Pelt then combine them in your kit to create your Legplates Material."); + e.other:SummonCursorItem(22675); -- Item: An Enchanted Legplates Pattern + elseif(e.message:findi("gauntlets")) then + e.self:Say("Your gauntlets may possibly be the most important part of armor. One should always be sure that their hands are not exposed, because taking a blow to the hand is a lot worse then getting hurt anywhere else! To create the gauntlet material please collect 3 Bricks of Crude Iron Ore, 2 Bixie Wings, 1 Large Snake Skin and 1 Red Wine."); + e.other:SummonCursorItem(22676); -- Item: An Enchanted Gauntlets Pattern + elseif(e.message:findi("tunic")) then + e.self:Say("I'm happy to see that your training is coming along so well " .. e.other:GetCleanName() .. ". I have no doubt in my mind that you are ready to craft your tunic. Please collect 5 Bricks of Crude Iron Ore, 1 Giant Wood Spider Femurs, 1 Embalming Dusts, 1 Dark Elf Skin and 1 Giant Yellowjacket Thorax. Come back after you are finished. I have a [job] for you."); + e.other:SummonCursorItem(22677); -- Item: An Enchanted Tunic Pattern + elseif(e.message:findi("job")) then + e.self:Say("Orcs is the job " .. e.other:GetCleanName() .. ". Plain and simple I cannot stand these homewreckers. They have moved into our land and continue to storm our front gate. I seek out bone fragments and fractured jawbones from these nasty Orcs. Once we have 1 of each we will be able to create a weapon for you to use."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18732})) then -- Tattered Note + e.self:Say("HA! I asked that fool Denry to send me a professional, and this is what I get?!? Oh diddlepicks! That crotchety old coot never liked me anyway. And after all I've done for him! Hrrmf! Ah well, let's get you started and see what ya got, huh, kid? Here, wear this. Maybe I'll have Toelia break you in, huh? Yeah, that'll work! Go find her, and she'll put you to work. Just remember, we all earn our keep around here, or else it's back to hay farm for you! Oh yeah, tell her you're the [new dishwasher] so she knows you are on the level."); + e.other:Faction(e.self,241,100,0); -- Deeppockets + e.other:Faction(e.self,223,5,0); -- Circle of Unseen Hands + e.other:Faction(e.self,292,-5,0); -- Merchants of Rivervale + e.other:Faction(e.self,336,5,0); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,329,5,0); -- Carson McCabe + e.other:QuestReward(e.self,0,0,0,0,13539,20); -- Old Brown Vest* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 22693,item2 = 22694})) then + e.other:Faction(e.self,241,10,0); -- Deeppockets + e.other:Faction(e.self,223,1,0); -- Circle of Unseen Hands + e.other:Faction(e.self,292,-1,0); -- Merchants of Rivervale + e.other:Faction(e.self,336,1,0); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,329,1,0); -- Carson McCabe + e.other:QuestReward(e.self,0,0,0,0,22695,20); -- Dirk of the Slickfinger + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + e.self:Say("Find somebody to go see what he wants. I don't like the idea of making Hanns mad at us, but I also don't like the idea of looking over my shoulder for Stanos. He is not somebody I would care to dance with, and I DO owe him."); +end + +-- END of FILE Zone:rivervale ID:19066 -- Lendel_Deeppockets diff --git a/rivervale/Mac_Deeppockets.lua b/rivervale/Mac_Deeppockets.lua new file mode 100644 index 0000000..78f2a35 --- /dev/null +++ b/rivervale/Mac_Deeppockets.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("picks up something from the ground."); + end + end +end diff --git a/rivervale/Mangler.lua b/rivervale/Mangler.lua new file mode 100644 index 0000000..f06d92d --- /dev/null +++ b/rivervale/Mangler.lua @@ -0,0 +1,8 @@ +function event_spawn(e) + eq.set_timer("mangler",720000); +end + +function event_timer(e) + e.self:Say(""); + eq.signal(19049,1); -- NPC: Kevlin_Diggs +end diff --git a/rivervale/Marshal_Anrey.lua b/rivervale/Marshal_Anrey.lua new file mode 100644 index 0000000..ba7ae39 --- /dev/null +++ b/rivervale/Marshal_Anrey.lua @@ -0,0 +1,50 @@ +--Quest: Leatherfoot Raiders + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Stand at attention!! You don't look fit enough to toe-wrestle my grandma!! You cannot be in my squad!! Are you [petitioning] or are you a [visitor]?"); + elseif(e.message:findi("visitor")) then + e.self:Say("Well, why didn't you say so?! Forgive me for hollering. Allow me to introduce myself. I am Marshal Anrey Leadladle, commander of the [Leatherfoot Raiders]."); + elseif(e.message:findi("leatherfoot raiders")) then + e.self:Say("You must be a visitor. The Leatherfoot Raiders are the elite force of the Guardians of the Vale. I command them. It is good to meet an outsider."); + elseif(e.message:findi("petitioning") or e.message:findi("from rivervale")) then + if(e.other:GetFactionValue(e.self) >= 200) then -- requires amiably (200) + if(e.message:findi("petitioning")) then + e.self:Say("So you want to be a [Leatherfoot Raider]? What kind of joke is this? Look at you! You're a mess! Where are you [from]?"); + elseif(e.message:findi("from rivervale")) then + e.self:Say("So you're from Rivervale?!! You must be some kind of freak. No halfling from Rivervale would look, smell and act anything like you. Well, freak, if you think you're stout enough to be a Leatherfoot Raider, you prove it!! You travel the lands and return to me a polar bear skin, a grizzly bear skin, a shark skin and an alligator skin. Then maybe, just maybe, I will let you wear the cap of a Leatherfoot Raider."); + end + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You are in good standing with the Guardians of the Vale. Continue with your good work and then we may speak.") + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 200 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13761,item2 = 13756,item3 = 13075,item4 = 13749})) then -- requires amiably, Polar Bear Skin, Thick Grizzly Bear Skin, Shark Skin, Alligator Skin + e.self:Say("So I see the young troll has become a young warrior. You have stepped up to the challenge of the Leatherfoot Raiders, you may wear the petitioner's skullcap, but to receive the true cap of the raiders, bring me the dirk of a fallen Neriak dragoon and the cap I have given you. Only then can I be sure that you can truly be one of the few and bold, the Leatherfoot Raiders."); + -- verified live faction + e.other:Faction(e.self,263,25); -- Faction: Guardians of the Vale + e.other:Faction(e.self,286,3); -- Faction: Mayor Gubbin + e.other:Faction(e.self,355,2); -- Faction: Storm Reapers + e.other:Faction(e.self,292,2); -- Faction: Merchants of Rivervale + e.other:Faction(e.self,334,-3); -- Faction: Dreadguard Outer + e.other:QuestReward(e.self,0,0,math.random(10),1,13941,1000); -- Leatherfoot Skullcap + elseif(e.other:GetFactionValue(e.self) >= 200 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13941,item2 = 13942})) then -- Leatherfoot Skullcap, Dragoon Dirk + e.self:Say("Congratulations, my young deputy! Welcome to the brotherhood of the Leatherfoot Raiders. You have earned your skullcap. Wear it with pride. You are now one of the elite. Remember our motto, 'Those who risk, prevail'."); + -- verified live faction + e.other:Faction(e.self,263,50); -- Faction: Guardians of the Vale + e.other:Faction(e.self,286,7); -- Faction: Mayor Gubbin + e.other:Faction(e.self,355,5); -- Faction: Storm Reapers + e.other:Faction(e.self,292,5); -- Faction: Merchants of Rivervale + e.other:Faction(e.self,334,-7); -- Faction: Dreadguard Outer + e.other:QuestReward(e.self,0,0,0,1,12259,5000); -- Leatherfoot Raider Skullcap + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:rivervale ID:19059 -- Marshal_Anrey diff --git a/rivervale/Marshal_Ghobber.lua b/rivervale/Marshal_Ghobber.lua new file mode 100644 index 0000000..78714a6 --- /dev/null +++ b/rivervale/Marshal_Ghobber.lua @@ -0,0 +1,32 @@ +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("hail")) then + e.self:Say("Greetings! Allow me to introduce myself. I am Marshal Ghobber Truppack. Marshal of the Great Wall Patrol. Are you [new to the squad]?"); + elseif(e.message:findi("new to the squad") and fac > 5) then + e.self:Say("How can you expect to just waltz into Guardian Stronghold and expect to gather information?! Consider yourself lucky I don't command the Guardian of the Vale deputies to show you the sharpness of their blades!"); + elseif(e.message:findi("new to the squad") and fac > 2 and fac < 5) then + e.self:Say("Great!!! We require more deputies in this squad. We are suffering great losses to the [new threat]. Welcome to the Great Wall Patrol where our motto is, 'United we shall defend.' It will be some time before you can earn your squad ring - first you must prove your strength in battle. Report to the squad leader. He is Deputy Budo. You can find him at the Great Wall of Serilis in the Misty Thicket. Go to him at once and tell him you are reporting for duty."); + elseif((e.message:findi("new to the squad") and fac == 5) or (e.message:findi("one with the wall") and fac > 1 and fac < 6)) then + e.self:Say("You are in good standing with the Guardians of the Vale. Continue with your good work and then we may speak."); + elseif(e.message:findi("one with the wall")) then + if( e.other:GetFactionValue(e.self) >= 1200) then + e.other:Faction(e.self,263,-1000); -- Confirmed Live Faction Hit + e.self:Say("Yes!! Welcome, Deputy " .. e.other:GetCleanName() .. "! You are now an elite member of the Great Wall Division. Wear this ring with pride. You may take it to Hendi Mrubble of the Clerics of Mischief for healing at any time. Wear it with pride."); + e.other:SummonCursorItem(13936); -- Item: Squad Ring + elseif(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("You are in good standing with the Guardians of the Vale. Continue with your good work and then we may speak."); + end + elseif(e.message:findi("new threat") and fac < 5) then + e.self:Say("The new threat I refer to is the community of goblins which was found beyond the Great Wall of Serilis. They are called Clan Runnyeye. They have begun to sneak over the wall. The deputies have reported seeing them launch themselves up the wall in a matter of seconds using ornate grappling hooks. We have attempted to obtain one of these devices for further inspection, but we have yet to find one on any of the dead goblins. If you should ever find one, be sure to bring it to me immediately."); + elseif(e.message:findi("freeport")) then + e.self:Say("You can find Freeport beyond Kithicor Forest on the other side of the Commonlands."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:rivervale ID:19060 -- Marshal_Ghobber diff --git a/rivervale/Marshal_Lanena.lua b/rivervale/Marshal_Lanena.lua new file mode 100644 index 0000000..c7fb2ae --- /dev/null +++ b/rivervale/Marshal_Lanena.lua @@ -0,0 +1,63 @@ +--############# +--#Quest Name:The Fishslayers +--#Author:Shaznito +--#NPCs Involved:Fiddy Bobick, Marshall Lanena +--#Items Involved:Bag of Piranha Teeth, Piranha Bag, Piranha Tooth +--################# + +function event_say(e) + local fac = e.other:GetFaction(e.self); + + if(e.message:findi("hail")) then + e.self:Say("Hello. " .. e.other:GetCleanName() .. ". I am Lanena Wickystick. marshal of all Vale concerns. If there are any troubles brewing in our fine town which concern the Guardians of the Vale. please inform me. You must be a [new deputy] or are you an [outsider]?"); + elseif(e.message:findi("new deputy")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("It is good to see such fine stock in the ranks of the Guardians. Being new. there is much to learn. in battle and in life itself. If you are not presently obligated. we have need of you here in the hollow. There seems to be a [small problem]."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You are in good standing with the Guardians of the Vale. Continue with your good work and then we may speak.") + else + e.self:Say("How can you expect to just waltz into Guardian Stronghold and expect to gather information?! Consider yourself lucky I don't command the Guardian of the Vale deputies to show you the sharpness of their blades!"); + end + elseif(e.message:findi("outsider")) then + e.self:Say("Well. then!! You should not be in here. This place is restricted to all outsiders. You will leave at once! Thank you and good day."); + elseif(e.message:findi("small problem")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("For months. Fiddy Bobick has petitioned the marshals to assist him with a problem he has. With the addition of new deputies such as yourself. we can now give him the assistance he requires. Just go down to Bobick's shop near the lake. Tell him I sent you."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You are in good standing with the Guardians of the Vale. Continue with your good work and then we may speak.") + else + e.self:Say("How can you expect to just waltz into Guardian Stronghold and expect to gather information?! Consider yourself lucky I don't command the Guardian of the Vale deputies to show you the sharpness of their blades!"); + end + elseif(e.message:findi("rantho rapier")) then + e.self:Say("The Rantho Rapier was crafted by the great blacksmith Rantho Goobler. It was designed for use by the warriors of the wee folk. With its light weight and special two-hand hilt, it becomes a formidable weapon in the hands of our younger deputies. Only a [new deputy] has the right to earn one."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13929})) then + e.self:Say("What was I thinking?!! Piranha are coming downstream and eating our supply of fish! We have never had a problem like this!! Where are these little beasts coming from? For now we must collect more. Take this bag. Collect enough teeth to fill the bag. Don't worry, if it takes a while I shall reward you with the [Rantho Rapier]. We will need to examine the teeth."); + e.other:Faction(e.self,263,2); -- Faction: Guardians of the Vale + e.other:Faction(e.self,286,1); -- Faction: Mayor Gubbin + e.other:Faction(e.self,355,1); -- Faction: Storm Reapers + e.other:Faction(e.self,292,1); -- Faction: Merchants of Rivervale + e.other:Faction(e.self,334,-1); -- Faction: Dreadguard Outer + e.other:QuestReward(e.self,0,math.random(5),0,0,17968,200); -- Item: Piranha Bag + elseif(e.other:GetFactionValue(e.self) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12155})) then + e.self:Say("Fine work. We shall continue to study these and shall determine if we need to seek the source."); + e.other:Faction(e.self,263,10); -- Faction: Guardians of the Vale + e.other:Faction(e.self,286,1); -- Faction: Mayor Gubbin + e.other:Faction(e.self,355,1); -- Faction: Storm Reapers + e.other:Faction(e.self,292,1); -- Faction: Merchants of Rivervale + e.other:Faction(e.self,334,-1); -- Faction: Dreadguard Outer + e.other:QuestReward(e.self,0,math.random(5),0,0,5423,200); -- Item: Rantho Rapier + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You are in good standing with the Guardians of the Vale. Continue with your good work and then we may speak.") + else + e.self:Say("How can you expect to just waltz into Guardian Stronghold and expect to gather information?! Consider yourself lucky I don't command the Guardian of the Vale deputies to show you the sharpness of their blades!"); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:rivervale ID:19061 -- Marshal_Lanena diff --git a/rivervale/Mayor_Gubbin.lua b/rivervale/Mayor_Gubbin.lua new file mode 100644 index 0000000..7894c91 --- /dev/null +++ b/rivervale/Mayor_Gubbin.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. " .. e.other:GetCleanName() .. "! Welcome to Rivervale! I hope you plan to stay on and assist us in any way you can. We all have talents to aid in the prosperity of the hollow."); + end +end + +-- END of FILE Zone:rivervale ID:19104 -- Mayor_Gubbin diff --git a/rivervale/Meeka_Diggs.lua b/rivervale/Meeka_Diggs.lua new file mode 100644 index 0000000..253fd79 --- /dev/null +++ b/rivervale/Meeka_Diggs.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("Hello, %s - my how you've grown! Would you perhaps care to see my cloth armor for sale?' Her eyes twinkle. 'Maybe you'd like to hear a little about the traditional halfling craft of [bagmaking]?", e.other:GetCleanName())); + elseif(e.message:findi("bagmaking")) then + e.self:Say("Ah yes, we're reknowned for our bags! Halflings are the travelers of the land, usually in search of fine pipeweed and a good ale.' She grins at you. 'We sew together a number of patches of [wolf fur], and some special [thread], and use a little acorn oil to keep it water-tight, all in the special Halfling Sewing Kit."); + elseif(e.message:findi("wolf fur")) then + e.self:Say("Well, you'll need to be a traveler, like me! You can sew together three tufts of dire wolf fur to make a patch of it, using an embroidering needle in your Halfling Sewing Kit. You can then sew three of those patches into a big weave! The weave is used in the bagmaking. The more you use, the bigger the bag!"); + elseif(e.message:findi("thread")) then + e.self:Say("This is the touch of magic that makes halfling bags the finest in the world! In the special Halfling Forge, roast a little platinum thread with some special [temper]. Whatever you put in the bags becomes so light as to be almost non-existent!"); + elseif(e.message:findi("temper")) then + e.self:Say("Oh, um..' Meeka looks a little worried, and leans towards your ear to whisper. 'You'd best ask my husband, Twippie, about that. It's a bit of a mystery, to be sure."); + elseif(e.message:findi("twippie")) then + e.self:Say("Twippie Diggs is my younger brother. He sells armor also. His specialty is leather armor."); + elseif(e.message:findi("kevlin")) then + e.self:Say("Kevlin is my brother. Our family has been in the armor business for many years."); + elseif(e.message:findi("lashinda")) then + e.self:Say("She is my brother Kevlin's bride. She is very nice. She works at the Fool's Gold, but when she has time she will help out with the shop by cleaning up or taking the day's profit over to the vault in the Guardian Stronghold."); + elseif(e.message:findi("sonsa")) then + e.self:Say("Oh, my! Do not mention that name to me! She used to be wed to my older brother, Kevlin. All I can say about her is that she would make a better rogue than a tailor."); + end +end \ No newline at end of file diff --git a/rivervale/Megosh_Thistlethorn.lua b/rivervale/Megosh_Thistlethorn.lua new file mode 100644 index 0000000..8da79ba --- /dev/null +++ b/rivervale/Megosh_Thistlethorn.lua @@ -0,0 +1,37 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. "! I am Megosh Thistlethorn first Ranger of the Storm Reapers of Rivervale. I journeyed many years ago to the Surefall Glade far to the west of our lovely shire. It was there I trained with the human and half-elven rangers that like the Storm Reapers are faithful disciples of Karana. I have returned now to Rivervale to teach our interested young people the ways of a ranger of the Storm Lord. so that we may defend our shire and the wilds of Norrath from the [evil forces] that would see it destroyed."); + elseif(e.message:findi("evil forces")) then + e.self:Say("Currently the Death Fist Clan of Orcs. a race of bloodthirsty humanoids concerned only with expanding their territory and slaughtering all who stand in their path. threatens our homeland. The Orcs have long had a minor presence in the Misty Thicket but lately they have been amassing in greater numbers. The Death Fist has been chopping down our trees and quarrying rock from the nearby mountains. We know only that they have been shipping the materials to the commonlands and stockpiling it for what purpose we do not know. As rangers of the Storm Reapers it is our duty to [stop the desecration] of the thicket."); + elseif(e.message:findi("stop the desecration")) then + e.self:Say("First you must outfit yourself for battle with the Death Fists. Seek Bipdo Hargin here in Rivervale and give him this letter. He will instruct you further on getting yourself outfitted for the tasks ahead. Once you have been outfitted in a suit of Thorn Mail Armor return to me and I will instruct you for your [next task]."); + e.other:SummonCursorItem(19627); -- Item: Letter to Bipdo Hargin + elseif(e.message:findi("next task")) then + e.self:Say("If you feel you are ready to face the Orcs of Clan Death Fist then journey to the Misty Thicket beyond the protection of the Wall of Cetelt. Hunt the Orcs that are cutting down the trees of the thicket and bring me two of the Orc Lumberjack Axes and two of the Orc Lumberjack Machetes."); + elseif(e.message:findi("forge")) then + e.self:Say("What forge? Didn't you see it on the way in, young " .. e.other:GetCleanName() .. "? Oh, and check with Smithy Bodbin about the sharpening stones, he usually has a good supply of them."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18432})) then -- Handin the Halfling Ranger note + e.self:Say("Welcome to the Storm Reapers " .. e.other:GetCleanName() .. "! Here is a tunic to keep you warm in your travels. Rivervale, our lovely home is facing dangerous times. From both the east and west forces devoted to the evil Gods Bertoxxulous adn Innoruuk are corrupting and destroying the wilds of Norrath. Also, the Orcs of Clan Deathfist are waging war on this entire region and gathering lumber and stone for some unknown purpose. We must do our best to preserve the lands and way of life of all Karanas people."); + e.other:Faction(e.self,355,100,0); -- +Storm Reapers + e.other:Faction(e.self,286,10,0); -- +Mayor Gubbin + e.other:Faction(e.self,292,15,0); -- +Merchants of Rivervale + e.other:Faction(e.self,324,-15,0); -- -Unkempt Druids + e.other:QuestReward(e.self,0,0,0,0,13541,100); -- Jumjum Sack Tunic* + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19622,item2 = 19622,item3 = 19623,item4 = 19623})) then -- Handin 2 Orc LumberJack Axes and 2 Orc LumberJack Machetes + e.self:Say("Excellent work young Storm Reaper " .. e.other:GetCleanName() .. ". Now take this Dull Storm Reaper Machete to a [forge] and sharpen it with a sharpening stone. It may take several attempts to get the blade to an adequate sharpness if you are unfamiliar with the process. Once it is sharpened give it to Bodbin Gimple with a ruined thorn drakeling scales and he will put the finishing touches on what will be a fine weapon!"); + e.other:Faction(e.self,355,5,0); -- Faction: Storm Reapers + e.other:Faction(e.self,286,1,0); -- Faction: Mayor Gubbin + e.other:Faction(e.self,292,1,0); -- Faction: Merchants of Rivervale + e.other:Faction(e.self,324,-1,0); -- Faction: Unkempt Druids + e.other:QuestReward(e.self,0,0,0,0,19624,10); -- Item: Dull Storm Reaper Machete + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:rivervale ID:19050 -- Megosh_Thistlethorn diff --git a/rivervale/Nillipuss.lua b/rivervale/Nillipuss.lua new file mode 100644 index 0000000..a802e78 --- /dev/null +++ b/rivervale/Nillipuss.lua @@ -0,0 +1,22 @@ +local count = 0; + +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Say("Look what I've found! What a great find! It used to be yours, but now it is mine!"); + end + end +end + +function event_waypoint_arrive(e) + count = count + 1; + if ( count > 10 and math.random(100) == 1 ) then + count = 0; + e.self:Emote("shouts, 'Nillipuss, Nillipuss is my name. Stealing jumjum is my game. Think you can catch me? Let's see if you can! I'll always run faster than you ever ran.'"); + eq.signal(19052, 1); -- Reebo_Leafsway + end +end diff --git a/rivervale/Reebo_Leafsway.lua b/rivervale/Reebo_Leafsway.lua new file mode 100644 index 0000000..e55fd70 --- /dev/null +++ b/rivervale/Reebo_Leafsway.lua @@ -0,0 +1,84 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings and salutations, " .. e.other:GetCleanName() .. "! My name is Reebo Leafsway, loyal Druid of [Karana]. I am in charge of helping young druids who wish to get started down the [trail to Karana's wisdom]. I also do my share of tending the [crops]."); + elseif(e.message:findi("shakey")) then + e.self:Say("Shakey is our protector and friend. He is just getting old. Losing his [stuffing]. His [head] is getting very dry and cracked."); + elseif(e.message:findi("stuffing")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("The hay he requires is difficult to obtain. It must have been harvested from the Plains of Karana, then cursed by a high priest of the Faceless, [Cazic-Thule]. Finally, you must cast the hay and a flask of blessed Oil of Life into an armorer's forge. Only then will the hay be ready. We Stormreapers will reward you greatly if you could accomplish this task. Remember, you must give the scarecrow stuffing to Shakey only after it has been properly prepared."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("cazic")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Cazic-Thule is the dark deity of fear. He is worshiped by many evil beings. There is believed to be a ruined temple dedicated to him deep in the [Feerrott]. That would be a good place to look for one of his high priests."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("feerrott")) then + e.self:Say("The Feerrott is a vast rain forest in southwestern Antonica. It is home to many lizardman tribes."); + elseif(e.message:findi("trail.* wisdom")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Good. First you should learn that Karana's work is just that.. work. Karana provides us with the tools but it is by the sweat of our brows that we prosper. Common sense and hard work are two things that are highly prized by our people. Time for you to sweat, young one. Take this crate of carrots over to Blinza Toepopal in the Fool's Gold. They need our finest carrots for Mayor Gubbin's stew. When you return I will teach you a lesson of the Rainkeeper."); + e.other:SummonCursorItem(13971); -- Item: Crate of Rotten Carrots + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("karana")) then + e.self:Say("Karana is known as the Rainkeeper. It is through His will that our [crops] and our children grow big and healthy. He watches over us and protects us. calling down the fury of a tempest on those who wish harm upon His followers."); + elseif(e.message:findi("crops")) then + e.self:Say("The crops we grow here are mostly carrots, lettuce and squash. We also are the only place on all of Norrath where the soil can support the mystical Jumjum Stalk."); + elseif(e.message:findi("head")) then + e.self:Say("The head of a scarecrow is difficult to replace. We do not know what is needed and all of our attempts have failed. Perhaps you could [research] this for us and bring back a new head for our old friend Shakey?"); + elseif(e.message:findi("research")) then + e.self:Say("We have heard of a great forbidden tome penned by an evil necromancer that holds the secrets of instilling life into scarecrows. We have recovered pages from that book. That is how we know about Shakey's hay. But the pages detailing the creation of a scarecrow's head are missing. We believe that the Erudites possess at least some of the pages and might know where the rest of them may be found. Start your search in their city of Erudin."); + elseif(e.message:findi("nillipuss")) then + e.self:Say("Nillipuss? Oh that dirty brownie keeps stealing our jumjum for his own greedy uses. We certainly would not mind if someone taught him a painful [lesson]."); + elseif(e.message:findi("lesson")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("He needs to be taught not to steal our jumjum! If you find some jumjum on him, I would appreciate it if you would return it to me."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Oh good! I see you have taught that nasty Nillipuss a thing or two! Good. But it seems to me that he has stolen more jumjum than this. Perhaps he needs another lesson?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13971})) then + e.self:Say("Very good. Very good indeed. Karana does not need the blind obedience that so many deities require. Trust your instincts, they are more often right than not. Here, take this to Blinza. Hurry, she is expecting them. You may keep the donation she gives you in return."); + e.other:QuestReward(e.self,0,0,0,0,13957,5); -- Item: Crate of Fine Carrots + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13972})) then + e.self:Say("These carrots are rotten. They were rotten when I gave them to you. Why would you waste time and energy on such a fool's errand? Because I asked you to? Many, even those you trust will ask you to do things which you should not. Use the common sense that Karana has blessed you with to know which tasks can benefit our people and which could harm them. Learn this lesson well. You will need it if you plan to adventure beyond the vale. Now take these fresh carrots to Blinza and apologize for your error. You may keep the donation she gives you as payment."); + e.other:QuestReward(e.self,0,0,0,0,13958); -- Item: Crate of Carrots + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13974,item2 = 13974,item3 = 13974,item4 = 13974},1,text)) then + e.self:Say("Excellent!! You must have taught ol' Nillipuss a great deal! But he never seems to learn.. Oh well. The Stormreapers and all of Rivervale owe you a debt of gratitude. Please accept this token of our appreciation."); + e.other:Faction(e.self,355,10); -- +Storm Reapers + e.other:Faction(e.self,286,1); -- +Mayor Gubbin + e.other:Faction(e.self,292,1); -- +Merchants of Rivervale + e.other:Faction(e.self,324,-1); -- -Unkempt Druids + e.other:QuestReward(e.self,0,math.random(0,15),math.random(0,6),0,eq.ChooseRandom(10308,8303,8304,10302,10303,10304,10305,10306,10309,17302,12001,10301,17301,17300,12002,12000),27440); -- Item(s): Anti-Poison Amulet (10308), Arrow of Contagion (8303), Arrow of Frost (8304), Earring of Disease Reflection (10302), Earring of Fire Reflection (10303), Earring of Frost Reflection (10304), Earring of Magic Reflection (10305), Earring of Poison Reflection (10306), Eye of Disvan (10309), Pierces Pouch of Storing (17302), Rod of Identification (12001), Runners Ring (10301), Travelers Pack (17301), Travelers Pouch (17300), Wand of Frost Bolts (12002), Compass (12000) + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if(e.wp == 12 or e.wp == 33 or e.wp == 51 or e.wp == 73 or e.wp == 96 or e.wp == 120) then + e.self:Emote("whistles a happy hafling tune."); + end +end + +function event_signal(e) + if ( e.signal == 0 ) then + e.self:Emote("shakes his head sadly. 'Poor old [Shakey] just isn't what he used to be.'"); + elseif ( e.signal == 1 ) then + local nillipuss = eq.get_entity_list():GetMobByNpcTypeID(19015); -- Nillipuss + if ( e.self:CalculateDistance(nillipuss:GetX(), nillipuss:GetY(), nillipuss:GetZ()) < 150 ) then + e.self:Say("Blast you, [Nillipuss]! Leave our jumjum alone!"); + end + end +end + +-- END of FILE Zone:rivervale ID:19056 -- Reebo_Leafsway \ No newline at end of file diff --git a/rivervale/Rellix.lua b/rivervale/Rellix.lua new file mode 100644 index 0000000..b820499 --- /dev/null +++ b/rivervale/Rellix.lua @@ -0,0 +1,22 @@ +-- Chef Chowderly's Award-Winning Recipes +-- created by Gonner +-- converted to lua by robregen + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("All these dirty dishes stinking up the place."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 55523})) then -- Note to Rellix + e.self:Say("A note from Chef Chowderly, eh? I haven't heard from him in some time. Hope he is doing well.' Rellix reads the note. 'I do happen to have some spare dishes. Here, take them."); + e.other:QuestReward(e.self,0,0,0,0,55524,5000); -- Case of Dishes + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE zone:rivervale ID:19117 -- Rellix.pl + diff --git a/rivervale/Rueppy_Kutpurse.lua b/rivervale/Rueppy_Kutpurse.lua new file mode 100644 index 0000000..6549e06 --- /dev/null +++ b/rivervale/Rueppy_Kutpurse.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". Rueppy's my name. Why don't you buy us something to [drink] and we can talk?"); + elseif(e.message:findi("drink")) then + e.self:Say("How about a short beer? That sounds good."); + elseif(e.message:findi("blackburrow stout")) then + e.self:Say("Oh, well we can't get that here. However, you can always [smuggle] it in..."); + elseif(e.message:findi("smuggle")) then + if(e.other:GetFaction(e.self) < 5) then -- requires amiably + e.self:Say("You interested in a little job? I need you to meet someone who is bringing me some stout. He was supposed to meet me in the ruins on the other side of the Great Wall, but I have other business to attend to. His name is Gunrich. You might have to wait for a while for him to show up, as he will be skittish at the sight of a stranger. Payment has already been made. Just tell him, 'Dark rivers flow east,' and he will know to trust you. Make sure you don't say anything else to him or the deal will sour. Meet me back here with the stout."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you.") + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13032})) then -- Short Beer + e.self:Say("Oh, thank you. AH! That sure is good. Not as good as a [Blackburrow stout], but what is?"); + e.other:QuestReward(e.self,0,0,0,0,0,100); + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13131})) then -- Case of Blackburrow Stout + e.self:Say("Heh heh! You did it! I thought the deputies would get you for sure! I mean... You did it! Heh! Here buy yourself a drink on me."); + e.other:Faction(e.self,241,10,0); -- Deeppockets + e.other:Faction(e.self,223,1,0); -- Circle of Unseen Hands + e.other:Faction(e.self,292,-1,0); -- Merchants of Rivervale + e.other:Faction(e.self,336,1,0); -- Coalition of Tradefolk Underground + e.other:Faction(e.self,329,1,0); -- Carson McCabe + e.other:QuestReward(e.self,math.random(0,5),math.random(0,5),math.random(0,5),math.random(0,2),0,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/rivervale/Shakey_Scarecrow.lua b/rivervale/Shakey_Scarecrow.lua new file mode 100644 index 0000000..b9616fa --- /dev/null +++ b/rivervale/Shakey_Scarecrow.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("rustles and looks up at you in acknowledgment."); + eq.signal(19052, 0); -- Reebo_Leafsway + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14321})) then + e.self:Emote("shakes his head around and beams a smile at you."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(13980, 13980, 14031),500); -- Item(s): Wee Harvester (13980) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 11139})) then + e.other:Message(0,"You remove the dilapidated pumpkin from Shakey's wooden neck post and replace it with the new one. A haunting voice rings in your ears"); + e.self:Say("Who has given me a voice once again? I can sense your presence but cannot see your form. Allow me but a moment to explain. I have been trapped in this golem of hay for many years. Ever since the horrible bloodbath in the forest I have been bound to this horrible fate, and I cannot find rest until the person responsible for my murder has been dealt with! Our fates are intertwined, you and I. We can both find peace if you listen to what I have to say. Find the blue orb. It yet retains its dark power. Go into the woods and seek out the one with a fragment."); + e.other:QuestReward(e.self,0,0,0,0,0,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/rivervale/Sheriff_Roglio.lua b/rivervale/Sheriff_Roglio.lua new file mode 100644 index 0000000..48944ce --- /dev/null +++ b/rivervale/Sheriff_Roglio.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! Stand tall whenever you are speaking to the Sheriff of Rivervale. I command the warriors of this vale. You must be new to the ranks of the Guardians of the Vale, so be sure to report to your squad at once. We must protect our people. The [danger] has come closer to home. If you are not a deputy, then please leave these halls."); + else + e.self:Say("Please come back when you have proven yourself more and I may have a task for you."); + end + elseif(e.message:findi("danger")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("What danger?!! You must be new to the community. The goblins of Clan Runnyeye have been scaling our wall somehow. You must join our forces in exterminating every one of those beasts. Your wages are earned with every four bloody goblin warbead necklaces you return to me. Now be off and fight the good fight."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You are in good standing with the Guardians of the Vale. Continue with your good work and then we may speak."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18733})) then -- Hand in Warrior Recuitment Letter + e.self:Say("Welcome to the Guardians of the Vale. I'm Roglio Bruth, and I run this proud little outfit. You seem to be of hearty stock, let's put you to work. Here's your guild tunic - hope it fits. Start your training right away. Speak with the marshals of this guild."); + e.other:Faction(e.self,263, 100,0); -- Gaurdians of the Vale + e.other:Faction(e.self,286, 15,0); -- Mayor Gubbin + e.other:Faction(e.self,355, 10,0); -- Storm Reapers + e.other:Faction(e.self,292, 15,0); -- Merchants of Rivervale + e.other:Faction(e.self,334,-15,0); -- Dreadguard Outer + e.other:QuestReward(e.self,0,0,0,0,13540,20); -- Old Tan Tunic + elseif(item_lib.count_handed_item(e.self, e.trade, {13931}, 4) > 0) then -- Hand in Runnyeye Warbeads -- works regardless of faction for takp era + e.self:Say("Good work, Deputy " .. e.other:GetCleanName() .. "! We shall soon rid our countryside of the goblin threat. Here are your wages. Eat well tonight!"); + e.other:Faction(e.self,263, 1,0); -- Gaurdians of the Vale + e.other:Faction(e.self,286, 1,0); -- Mayor Gubbin + e.other:Faction(e.self,355, 1,0); -- Storm Reapers + e.other:Faction(e.self,292, 1,0); -- Merchants of Rivervale + e.other:Faction(e.self,334,-1,0); -- Dreadguard Outer + e.other:QuestReward(e.self,{silver = math.random(10),items = {13024,13023},exp = 6400}); -- Tanglefoot Tingle Drink, Bixie Berry Buns + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- End of File, Zone:rivervale NPC:19058 -- Sheriff_Roglio diff --git a/rivervale/Silna_Songsmith.lua b/rivervale/Silna_Songsmith.lua new file mode 100644 index 0000000..cc5106a --- /dev/null +++ b/rivervale/Silna_Songsmith.lua @@ -0,0 +1,27 @@ +--############# +--#Quest Name: Bard Mail Quest +--#Author: RealityIncarnate +--#Converted to Lua: robregen +--#NPCs Involved: Tralyn Marsinger, Eve Marsinger, Lislia Goldtune, Felisity Starbright, Jakum Webdancer, Ton Twostring, Idia, Sivina Lutewhisper, Ticar Lorestring, Marton Stringsinger, Drizda Tunesinger, Travis Two Tone, Silna Songsmith, Siltria Marwind, Tacar Tissleplay, Kilam Oresinger, Lyra Lyrestringer +--#Items Involved: Bardic letters: 18150-18167 +--################# + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. " - Are you [interested] in helping the League of Antonican Bards by delivering some [mail]?"); + elseif(e.message:findi("mail")) then + e.self:Say("The League of Antonican Bards has a courier system made up of travelers and adventurers. We pay good gold to anyone who will take messages from bards such as myself to one of our more central offices. Are you [interested]?"); + elseif(e.message:findi("interested")) then + e.self:Say("I have messages that need to go to - well, right now I have one that needs to go to Freeport. Will you [deliver] mail to [Freeport] for me?"); + elseif(e.message:findi("deliver") or e.message:findi("freeport")) then + e.self:Say("Take this letter to Felisity Starbright. You can find her at the bard guild hall. I'm sure she will compensate you for your trouble."); + e.other:SummonCursorItem(18155); -- A Bardic Letter (Freeport) + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:rivervale NPC:Silna_Songsmith diff --git a/rivervale/Soulbinder_Hoggle_Grubbytoe.lua b/rivervale/Soulbinder_Hoggle_Grubbytoe.lua new file mode 100644 index 0000000..80c75f8 --- /dev/null +++ b/rivervale/Soulbinder_Hoggle_Grubbytoe.lua @@ -0,0 +1,15 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID(),0,1); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/rivervale/Teelie_Meegles.lua b/rivervale/Teelie_Meegles.lua new file mode 100644 index 0000000..53f75ae --- /dev/null +++ b/rivervale/Teelie_Meegles.lua @@ -0,0 +1,8 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there. " .. e.other:GetCleanName() .. ". I sell the Rivervale Voice. It's our local newspaper and has all the news a halfling needs to know."); + end +end + +-- END of FILE Zone:rivervale ID:19037 -- Teelie_Meegles + diff --git a/rivervale/Thekela_Meepup.lua b/rivervale/Thekela_Meepup.lua new file mode 100644 index 0000000..f7790e8 --- /dev/null +++ b/rivervale/Thekela_Meepup.lua @@ -0,0 +1,55 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It is a pleasure to meet you " .. e.other:GetCleanName() .. ". I am Thekela Meepup. one of the highest ranking Clerics in all of Rivervale. I pride myself on being the mentor for all of the furryfooted that are called upon by Bristlebane to give life. If you are a [Cleric] I might have some training for you to complete if you so wish."); + elseif(e.message:findi("cleric")) then + e.self:Say("" .. e.other:GetCleanName() .. " the Templar. Well I suppose that does have quite a nice ring to it don't you say? If you stick with your training perhaps this could be what you are referred to one day. Before that day though. you have a lot to learn and a lot of training ahead of you! Do you want to [begin your training] at this time?"); + elseif(e.message:findi("begin my training")) then + e.self:Say("Excellent! I will give you a variety of items to collect and combine in this magical assembly kit to create a material that you will use to craft armor. My hope is that as you gather these items you will learn about your home and how to navigate around the surrounding areas of the Vale. If you are ready to begin your adventure I will present you with your Magical Mail Assembly Kit and the instructions for collecting the necessary items to craft your armor. Are you [ready to receive your Magical Mail Assembly Kit]?"); + elseif(e.message:findi("ready to receive my magical mail assembly kit")) then + e.self:Say("Here you are " .. e.other:GetCleanName() .. ". Take this mail assembly kit. it is what you will use to combine the different items necessary to craft your own Platemail of the Stoutdeacon. Different combinations of items will be required from both our town and the hunting grounds in the thicket to create materials for specific armor pieces with Crude Iron Ore being the basis for all of your armor materials. When you are ready to receive a recipe for a specific material simply tell me what armor piece you [want] to craft. I will then supply you with the mold and recipe for Stoutdeacon Platemail [Helms]. [Bracers]. [Boots]. [Armguards]. [Greaves]. [Gauntlets] and [Breastplates]."); + e.other:SummonCursorItem(17249); -- Item: Magical Mail Assembly Kit + elseif(e.message:findi("helm")) then + e.self:Say("Your Helm of the Stoutdeacon will indeed be one of the most important pieces of your armor set. It is very important that you are well protected from any blows to the head while you are on the battlefield. To fashion together the material necessary for making your helm gather 2 Bricks of Crude Iron Ore. 1 Low Quality Wolf Skin. 1 Chunk of Meat and 2 Water Flasks then combine them in your assembly kit. Once you have the correct Helm material take it to the closest forge. along with this pattern and combine them to create your Helm of the Stoutdeacon."); + e.other:SummonCursorItem(22610); -- Item: An Enchanted Helm Mold + elseif(e.message:findi("bracer")) then + e.self:Say("You will be required to gather most of the items for your bracer material from the Misty Thicket. You will need to collect 2 Bricks of Crude Iron Ore. 1 Bixie Stinger. 1 Runnyeye Warbeads and 1 Turnip then combine them in your kit to create the material necessary for crafting a Bracer of the Stoutdeacon. After you have done this take the material to a forge along with the mold I have given you to fashion together a Bracer of the Stoutdeacon."); + e.other:SummonCursorItem(22611); -- Item: An Enchanted Bracer Mold + elseif(e.message:findi("boot")) then + e.self:Say("Well boots would be quite a good idea if I do say so myself " .. e.other:GetCleanName() .. ". for certain situations only though! You should be proud of your feet and all the lovely hairs that they have been blessed with by Bristlebane! However if you wish to create a material that you will use along with this mold to create your boots you will need 2 Bricks of Crude Iron Ore. 2 Dark Elf Skins. 2 Bixie Wings and 1 Rat Foot."); + e.other:SummonCursorItem(22612); -- Item: An Enchanted Boot Mold + elseif(e.message:findi("armguard")) then + e.self:Say("It is important that your arms are protected while you are on the battlefield " .. e.other:GetCleanName() .. ". To create your Armguards material make sure you collect 3 Bricks of Crude Iron Ore. 1 Giant Wood Spider Hairs. 2 Thorn Drakeling Scales and 2 Lettuce then combine them in your kit. After you have your material ready take it to the forge and combine it along with this mold to create your very own Armguards of the Stoutdeacon."); + e.other:SummonCursorItem(22613); -- Item: An Enchanted Armguard Mold + elseif(e.message:findi("greave")) then + e.self:Say("Not a bad idea to get some pants on " .. e.other:GetCleanName() .. ". Although we are halflings and we have no real need for shoes. pants on the other hand are a definite must. To create the material necessary to craft your greaves gather 4 Bricks of Crude Iron Ore. 2 Large Yellowjacket Tergites. 2 Deathfist Slashed Belt and 1 Bottle of Kalish then combine the finished product in a forge with this mold to fashion your Legplates of the Stoutdeacon."); + e.other:SummonCursorItem(22614); -- Item: An Enchanted Greaves Mold + elseif(e.message:findi("gauntlet")) then + e.self:Say("To create the necessary material for your gauntlets you will need to collect 3 Bricks of Crude Iron Ore. 1 Dark Elf Skin. 2 Bone Chips and 1 Vegetables then combine them in your Kit. Once you have done this place the gauntlet material in a forge along with this mold to fashion your Gauntlets of the Stoutdeacon."); + e.other:SummonCursorItem(22615); -- Item: An Enchanted Gauntlet Mold + elseif(e.message:findi("breastplate")) then + e.self:Say("So the time has finally come for you to create your final piece of armor I see " .. e.other:GetCleanName() .. ". Seek out 5 Bricks of Crude Iron Ore. 1 Deathfist Slashed Belt. 1 Giant Yellowjacket Sternites. 2 Dark Elf Skins and 1 Undamaged Mossy Rat Pelt then combine them in your kit. Take that material along with this mold to the nearest forge and reap the rewards of your hard work. Come back to see me when you are finished because I have a [special task] for you."); + e.other:SummonCursorItem(22616); -- Item: An Enchanted Breastplate Mold + elseif(e.message:findi("special task")) then + e.self:Say("If you are asking me about this special task that I need completed then you surely must have completed all the steps necessary to prove yourself as a worthy servant of Bristlebane. Going forward I will need you to gather some [research annals] from a Muddite in the Gorge of King Xorbb that stole them from me."); + elseif(e.message:findi("research annal")) then + e.self:Say("The research annals that I need you to retrieve are very important ones to me. King Tearis Thex of Felwithe presented them to me for study. He entrusted me with them because he felt I could benefit from the knowledge that they contained. Will you [seek out my annals ]?"); + elseif(e.message:findi("seek out my annal")) then + e.self:Say("Please go to the maze of Beholder. otherwise known as the Gorge of King Xorbb and slay the Muddite Recordkeeper. After you have received the annal from him I will also need you to collect 3 Pristine Stingers. Before these annals were stolen I remember him saying I needed those 3 stingers for a special spell so please gather them for me. I hope to see you soon " .. e.other:GetCleanName() .. "."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 22668,item2 = 22696,item3 = 22696,item4 = 22696})) then + e.self:Say("I knew that I could count on you to follow through in your training. You have surely proven yourself in the time that you have trained with me. Please take this Mace, as Bristlebane has blessed you with the power to give life to those that have fallen. Thank you, " .. e.other:GetCleanName() .. ". You have made me very proud!"); + e.other:Faction(e.self,300,10); + e.other:Faction(e.self,286,1); + e.other:Faction(e.self,263,1); + e.other:QuestReward(e.self,0,0,0,0,22697,500); -- Item: Mace of the Stoutdeacon + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:rivervale ID:19068 -- Thekela_Meepup + diff --git a/rivervale/Toelia_Snuckery.lua b/rivervale/Toelia_Snuckery.lua new file mode 100644 index 0000000..1a310cf --- /dev/null +++ b/rivervale/Toelia_Snuckery.lua @@ -0,0 +1,44 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh. hi. Listen. um.. " .. e.other:GetCleanName() .. ". was it? Listen. pal. I really don't have time for the friendly-friendly. so why don't you just move on?"); + elseif(e.message:findi("dishwasher") or e.message:findi("chomper")) then + if(e.other:GetFaction(e.self) < 5) then -- requires amiably + if(e.message:findi("dishwasher")) then + e.self:Say("Dishwasher, huh? You must not mind getting your feet wet then, huh? Well, I do have a job for you. It seems one of our younger employees got a little nevous around a Deputy and ditched his um.. recent purchase into the river. We sent the fool after it but ol' [Chomper] got him. He said he had dropped it off the docks but the currents might have moved it from there. It should be in an old pouch. Return the merchandise to me. Well? Get going!"); + elseif(e.message:findi("chomper")) then + e.self:Say("Chomper is a big, mean ol' fish. He looks like a normal fish, but a little bigger, and boy, oh boy, is he mean!"); + end + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13785})) then -- requires amiably + e.self:Say("What is this? The pouch is empty! Where is the Ruby?! What do you mean you don't have it? Oh no. I bet [Chomper] swallowed it! Get it back and bring it to me."); + -- Confirmed Live Factions + e.other:Faction(e.self,241,5,0); -- Faction: DeepPockets + e.other:Faction(e.self,223,1,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,292,-1,0); -- Faction: Merchants of Rivervale + e.other:Faction(e.self,336,1,0); -- Faction: Coalition of Tradefolk Underground + e.other:Faction(e.self,329,1,0); -- Faction: Carson McCabe + e.other:QuestReward(e.self,math.random(5),0,0,0,0,100); + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13786})) then -- requires amiably + e.self:Say("You found it! Heh. Good thing you brought it back bub. This thing isn't priceless, its worthless but at least you proved you are loyal. Poor ol' Chomper.."); + -- Confirmed Live Factions + e.other:Faction(e.self,241,10,0); -- Faction: DeepPockets + e.other:Faction(e.self,223,1,0); -- Faction: Circle of Unseen Hands + e.other:Faction(e.self,292,-1,0); -- Faction: Merchants of Rivervale + e.other:Faction(e.self,336,1,0); -- Faction: Coalition of Tradefolk Underground + e.other:Faction(e.self,329,1,0); -- Faction: Carson McCabe + e.other:QuestReward(e.self,math.random(5),0,0,0,0,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:rivervale ID:19063 -- Toelia_Snuckery diff --git a/rivervale/Twippie_Diggs.lua b/rivervale/Twippie_Diggs.lua new file mode 100644 index 0000000..57f019c --- /dev/null +++ b/rivervale/Twippie_Diggs.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say(string.format("What a lovely day it is, %s! You look rather sunburned!' Twippie winks at you. 'I've some fine leather armor for sale today, or perhaps I could bend your ear with a little [learning]?", e.other:GetCleanName())); + elseif(e.message:findi("learning")) then + e.self:Say("I approve! A young one with the urge to learn!' Twippie chuckles, and leans on a crate. 'The Stormreapers, over there on the farm, have been employing me to come up with some [armor] to help defend the Vale!"); + elseif(e.message:findi("armor")) then + e.self:Say("Three kinds, can I show you, though all similar. For each, I sew within my special Halfling Sewing Kit. With an embroidering needle, I take acorn oil, a high quality brute hide, a pattern, an imbued plains pebble and then some [special material], depending upon which armor I wish to make."); + elseif(e.message:findi("special material")) then + e.self:Say("All questions, you are!' He smiles. 'For boned leather, I make boning in the special forge from a small brick of high quality ore, my file, and some [temper]. For woven-in chain, I use a large brick that same temper, and my smithy hammer! Finally, for woven-in plates, it's just like chainweave, except that I use two large bricks instead of one; easy as pie!"); + elseif(e.message:findi("temper")) then + e.self:Say("And there's the rub.' Twippie's eyes look distant as he struggles to remember something. 'I met someone, recently it was, though I cannot for the life of think where or when, or even what he looked like. All I remember is his voice. He told me that I'd find a crate of temper in my bank vault and, lo and behold, there it was. Isn't that strange? Perhaps you can find someone that knows about it."); + elseif(e.message:findi("meeka")) then + e.self:Say("Meeka Diggs is my older sister. She primarily deals with cloth armor."); + elseif(e.message:findi("kevlin")) then + e.self:Say("Kevlin is my older brother. Together with my sister, Meeka, we run Kevlin's Gear, the number one dealers in armor in Rivervale. Well, the only armorer in Rivervale. Not counting Sonsa Fromp. Ahh... Beautiful Sonsa Fromp..."); + elseif(e.message:findi("lashinda")) then + e.self:Say("Lashinda Hoggletop? She is the new bride of my older brother, Kevlin. She works at the Fool's Gold. I don't like her much. I think she is cheating on my brother. I have seen her hanging around a traveling merchant named Lindo. He is a dwarf and frequents the Fool's Gold a lot at night. I could have sworn I saw them holding hands."); + elseif(e.message:findi("sonsa")) then + e.self:Say("Sonsa Fromp used to be married to my older brother Kevlin. She accidentally overcharged a customer once and my brother used that as an excuse to take the name of Diggs away from her so he could wed Lashinda Hoggletop. Now poor, beautiful Sonsa must charge a fortune for leather items just to make ends meet."); + end +end diff --git a/rivervale/Uner_Gnarltrunk.lua b/rivervale/Uner_Gnarltrunk.lua new file mode 100644 index 0000000..d9c98de --- /dev/null +++ b/rivervale/Uner_Gnarltrunk.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ". Please watch where you are stepping when you're out in the field. Nothing is more frustrating than having some fine jumjum ruined by our own careless feet. That reminds me, [Deputy Tagil] still owes us for that jumjum he stomped on the other day!"); + elseif(e.message:findi("deputy tagil")) then + if(e.other:GetFaction(e.self) < 5) then -- requires amiably + e.self:Say("Deputy Tagil is a fine young halfling who serves the vale well. But the other day, chasing that dirty Nillipuss, he trampled some fresh Jumjum. He promised to make amends but it must have slipped his mind. Please take this note to him as a friendly reminder."); + e.other:SummonCursorItem(18013); -- Item: A Note + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 13240})) then + e.self:Say("I knew that Deputy Tagil had simply forgotten. He really is a good young halfling. Here, take this as a small payment for your time."); + -- Confirmed Live Factions + e.other:Faction(e.self,355,5,0); -- Faction: Storm Reapers + e.other:Faction(e.self,286,1,0); -- Faction: Mayor Gubbin + e.other:Faction(e.self,292,1,0); -- Faction: Merchants of Rivervale + e.other:Faction(e.self,324,-1,0); -- Faction: Unkempt Druids + e.other:QuestReward(e.self,math.random(10),math.random(3),0,0,eq.ChooseRandom(13977,13100,14014,13083),100); -- Item(s): Carrot (13977), Fishing Pole (13100), Potion of Wisdom (14014), Pine Needles (13083) + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- EOF Zone:rivervale NPC:19053 -- Uner_Gnarltrunk diff --git a/runnyeye/#Lord_Pickclaw.lua b/runnyeye/#Lord_Pickclaw.lua new file mode 100644 index 0000000..99867ea --- /dev/null +++ b/runnyeye/#Lord_Pickclaw.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop",3600000); +end + +function event_timer(e) + eq.depop_with_timer(); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end \ No newline at end of file diff --git a/runnyeye/#The_Sporali_Moldmaster.lua b/runnyeye/#The_Sporali_Moldmaster.lua new file mode 100644 index 0000000..3107e68 --- /dev/null +++ b/runnyeye/#The_Sporali_Moldmaster.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(11000,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end \ No newline at end of file diff --git a/runnyeye/A_layer.lua b/runnyeye/A_layer.lua new file mode 100644 index 0000000..0eeb806 --- /dev/null +++ b/runnyeye/A_layer.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("of foul smelling slime coats the floors here, as well as your feet."); + eq.depop_with_timer(); +end diff --git a/runnyeye/A_sharp_rock.lua b/runnyeye/A_sharp_rock.lua new file mode 100644 index 0000000..f34ec3c --- /dev/null +++ b/runnyeye/A_sharp_rock.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("falls from the low ceiling, banging you on the head! Why are you here again?"); + eq.depop_with_timer(); +end diff --git a/runnyeye/If_the.lua b/runnyeye/If_the.lua new file mode 100644 index 0000000..72ea938 --- /dev/null +++ b/runnyeye/If_the.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("people of Rivervale hate the goblins so much, why do they not simply root this place out? Probably because they are not that foolish. 'One with the Wall' indeed!"); + eq.depop_with_timer(); +end diff --git a/runnyeye/Perhaps.lua b/runnyeye/Perhaps.lua new file mode 100644 index 0000000..3e754e5 --- /dev/null +++ b/runnyeye/Perhaps.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("bards and storytellers will sing a song of your death here one day."); + eq.depop_with_timer(); +end diff --git a/runnyeye/Progressing.lua b/runnyeye/Progressing.lua new file mode 100644 index 0000000..ce1fbf7 --- /dev/null +++ b/runnyeye/Progressing.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("further into the citadel may prove to be a bad idea."); + eq.depop_with_timer(); +end diff --git a/runnyeye/The_constant.lua b/runnyeye/The_constant.lua new file mode 100644 index 0000000..5764743 --- /dev/null +++ b/runnyeye/The_constant.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("yowling and gibberish of goblins echos throughout the passageways."); + eq.depop_with_timer(); +end diff --git a/runnyeye/Thoughts.lua b/runnyeye/Thoughts.lua new file mode 100644 index 0000000..b3894d5 --- /dev/null +++ b/runnyeye/Thoughts.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("of great treasures and fame spur you on. Thoughts of certain and painful death do not deter you."); + eq.depop_with_timer(); +end diff --git a/runnyeye/You_are.lua b/runnyeye/You_are.lua new file mode 100644 index 0000000..3ef6b93 --- /dev/null +++ b/runnyeye/You_are.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("not quite sure what a moldmaster is, but you are sure that you don't want to meet it alone, and in the dark."); + eq.depop_with_timer(); +end diff --git a/runnyeye/You_feel.lua b/runnyeye/You_feel.lua new file mode 100644 index 0000000..1604ef7 --- /dev/null +++ b/runnyeye/You_feel.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("brave enough to challenge the Goblin Lord in his lair. Brave, or foolish?"); + eq.depop_with_timer(); +end diff --git a/runnyeye/a_Runnyeye_Conscript.lua b/runnyeye/a_Runnyeye_Conscript.lua new file mode 100644 index 0000000..2576dd2 --- /dev/null +++ b/runnyeye/a_Runnyeye_Conscript.lua @@ -0,0 +1,7 @@ +function event_waypoint_arrive(e) + if(e.wp == 128) then + e.self:SetRunning(true); + elseif(e.wp == 160) then + e.self:SetRunning(false); + end +end \ No newline at end of file diff --git a/runnyeye/a_Runnyeye_Trustee.lua b/runnyeye/a_Runnyeye_Trustee.lua new file mode 100644 index 0000000..2576dd2 --- /dev/null +++ b/runnyeye/a_Runnyeye_Trustee.lua @@ -0,0 +1,7 @@ +function event_waypoint_arrive(e) + if(e.wp == 128) then + e.self:SetRunning(true); + elseif(e.wp == 160) then + e.self:SetRunning(false); + end +end \ No newline at end of file diff --git a/runnyeye/a_pile_of_mold.lua b/runnyeye/a_pile_of_mold.lua new file mode 100644 index 0000000..636ac60 --- /dev/null +++ b/runnyeye/a_pile_of_mold.lua @@ -0,0 +1,12 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.self:Emote("erupts in a cloud of spores!"); + eq.spawn2(11000,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); +end diff --git a/scarlet/a_grol_baku_seer.lua b/scarlet/a_grol_baku_seer.lua new file mode 100644 index 0000000..21578d3 --- /dev/null +++ b/scarlet/a_grol_baku_seer.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Gobu gobu. bakula erila [shamu eku]?"); + if(math.random(100) > 50) then + e.self:Say("Weeee Weeee! Shamiku! Weeee!"); + end + elseif(e.message:findi("shamu eku")) then + e.self:Say("Weeee Weeee! Shamiku! Weeee!"); + e.self:CastSpell(2063,e.other:GetID()); + end +end diff --git a/sebilis/#Trakanon.lua b/sebilis/#Trakanon.lua new file mode 100644 index 0000000..b923b6e --- /dev/null +++ b/sebilis/#Trakanon.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.set_timer("depop",3600000); +end + +function event_timer(e) + eq.depop(); +end diff --git a/sebilis/An_Undead_Bard.lua b/sebilis/An_Undead_Bard.lua new file mode 100644 index 0000000..f1a1d57 --- /dev/null +++ b/sebilis/An_Undead_Bard.lua @@ -0,0 +1,47 @@ +local spawn; +function event_spawn(e) + spawn = 0; +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". Are you perchance a minstrel?"); + elseif(e.message:findi("i am a minstrel")) then + e.self:Say("I, too, am a bard, or was rather. I have been cursed by that blasted pile of bones who calls itself, Trakanon."); + elseif(e.message:findi("trakanon")) then + e.self:Say("He is the undead dragon who rules this realm. I came on a quest seeking strings for my new instrument."); + elseif(e.message:findi("instrument")) then + e.self:Say("I sought to create a Magical Lute."); + elseif(e.message:findi("magical lute")) then + e.self:Say("One that would make me the greatest bard in all the lands! Are you on a similar quest?"); + elseif(e.message:findi("similar quest")) then + e.self:Say("Excellent. I have stayed here far too long and I wish to go to my eternal slumber. But before I do so, I ask for one last request."); + elseif(e.message:findi("last request")) then + e.self:Say("Well then, I would ask you a favor for one in return. If I bring that cursed dragon here, will you kill it for me?"); + elseif(e.message:findi("kill it for you")) then + e.self:Say("Give me the Mystical Lute Body you have. I will return it, don't worry. I only wish to hold an instrument one last time before I leave."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20536})) then --Mystical Lute Body + e.self:Say("I feel so powerful once again...a strange feeling is overcoming me!"); + e.other:QuestReward(e.self,0,0,0,0,20536); --Mystical Lute Body + eq.attack(e.other:GetName()); + spawn = 1; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_death_complete(e) + if(spawn == 1) then + eq.spawn2(89039,0,0,-693,-2103,-140.62,0):AddToHateList(e.other,1); + spawn = 0; + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sebilis/a_fallen_monk.lua b/sebilis/a_fallen_monk.lua new file mode 100644 index 0000000..511d1f3 --- /dev/null +++ b/sebilis/a_fallen_monk.lua @@ -0,0 +1,22 @@ +--This fallen monk will spawn the fallen monk master when we give him our Shackle of Tynnonium. This is part of the Whistling Fists quest line. +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("Failed to find the rest I have. If you wish what is mine then give proof of the final shackle unto me."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4199})) then + e.self:Say("Earn what is mine. Show me you have the power worthy to wield what I possess."); + eq.spawn2(89183,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sebilis/a_fallen_monk_master.lua b/sebilis/a_fallen_monk_master.lua new file mode 100644 index 0000000..db9404b --- /dev/null +++ b/sebilis/a_fallen_monk_master.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.set_timer("depop",1200000); +end + +function event_timer(e) + eq.depop(); +end diff --git a/shadeweaver/A_Firefall_Saurek.lua b/shadeweaver/A_Firefall_Saurek.lua new file mode 100644 index 0000000..1fd60e8 --- /dev/null +++ b/shadeweaver/A_Firefall_Saurek.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hi there!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Banker_Karra_Kai.lua b/shadeweaver/Banker_Karra_Kai.lua new file mode 100644 index 0000000..54eca87 --- /dev/null +++ b/shadeweaver/Banker_Karra_Kai.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". I will keep your valuables safe while you hunt in the thickets. Just tap me if you want to store anything here."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Captain_Alim.lua b/shadeweaver/Captain_Alim.lua new file mode 100644 index 0000000..a6a1b66 --- /dev/null +++ b/shadeweaver/Captain_Alim.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Have you come for training young one? The way of the Beastlord teaches many things about the forces of nature. The [forces] in the thicket are very interesting."); + elseif(e.message:findi("forces")) then + e.self:Say("Yes, the force that compels a creature to adjust to their surroundings in particular. The Saurek have seem to adapted to their environment very well. I am studying the effects of their claws. It seems the different [variety] of Saurek have special enhancements."); + elseif(e.message:findi("variety")) then + e.self:Say("Well, for example the Firefall Saurek can attack with claws that burn the flesh, the Deathmaw attack with poisonous claws. The shredder Saurek are especially skilled in fending off the Tegi that threaten them, and lastly there is a more uncommon Claw Beast that is very strong but does not appear that often. I believe I could take their claws and affix them to a weapon to [enhance] it."); + elseif(e.message:findi("enhance")) then + e.self:Say("If you would like to test this theory, speak with my trainees, located behind me. I have taught them everything I know about making these clubs. Each trainee specializes in creating a different club, based upon the components they require. Return to them with the correct components, and they will attempt to fashion the claws to the flail."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Captain_Karim.lua b/shadeweaver/Captain_Karim.lua new file mode 100644 index 0000000..fdba868 --- /dev/null +++ b/shadeweaver/Captain_Karim.lua @@ -0,0 +1,57 @@ +local count = 0; +function event_spawn(e) + eq.set_timer("karim",175000); +end + +function event_timer(e) + count = count + 1; + if(count == 1) then + e.self:Say("Maintain your focus on the attack. Let the Taruun dance around the enemies while you keep them distracted. Working together like this will be to your advantage."); + end + if(count == 2) then + e.self:Say("Do not let the enemy attack your unarmored companions. Your heavy armor will protect you much more efficiently than cloth or leather."); + end + if(count == 3) then + e.self:Say("Try to lure your enemy to a strategic location for battle. Your are at a disadvantage when you attack them in their lair."); + end + if(count == 4) then + e.self:Say("You there! Pay attention! Do not lose focus. Losing focus in battle can result in the death of your comrades. Be aware of your surroundings at all times. You never know when an enemy will leap at you from behind."); + end + if(count == 5) then + e.self:Say("If the enemy mutters mystical words, a swift bash in the face with your shield is likely to shut its yap. Remember this young ones, for this advice will one day save your lives."); + end + if(count == 6) then + e.self:Say("Be sure to stock yourself with plenty of food and water before forming a battle group. It is not wise to leave your companions without your aid while you return home for more supplies. There is plenty of time to relax at the tavern when your mission is accomplished."); + end + if(count == 7) then + e.self:Say("They raid our trade routes even as I speak. We cannot afford to let the Gor Taku supply them with even more aid!"); + end + if(count == 8) then + e.self:Say("It is our duty to protect the roads. We need to maintain a steady flow of supplies from the furless ones."); + end + if(count == 9) then + e.self:Say("It is wise to make use of your enemy's equipment. Our supply is short as it is."); + end + if(count == 10) then + e.self:Say("Kick your enemy to throw them off balance. Then strike with your blade. It is important to stay on your toes."); + count = 0; + eq.set_timer("karim",175000); + end +end + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, adventurer. Pay no heed to Captain Koldar should you see him. Our true enemy are the Gor Taku. It is very apparent that they are in league with the Loda Kai Brigands. We need to show the Shak Dratha that we are not their enemy. Help me destroy the Gor Taku clan, return to me with four of their earthcaller stones and I will help you however I can."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30835,item2 = 30835,item3 = 30835,item4 = 30835})) then + e.self:Say("Well done " .. e.other:GetName() .. ", your efforts are invaluable. Perhaps we can convince the Shak Dratha that we are not their enemy after all. Alas, with the turmoil in these parts I am afraid that I cannot part with any military supplies as they are needed by my troops. I can, however, at least send you off with a bit of coin and my thanks. Take care my friend!"); + e.other:Faction(e.self,1513,2); + e.other:QuestReward(e.self,0,0,0,5,0,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadeweaver/Captain_Koldar.lua b/shadeweaver/Captain_Koldar.lua new file mode 100644 index 0000000..d2e9d27 --- /dev/null +++ b/shadeweaver/Captain_Koldar.lua @@ -0,0 +1,60 @@ +-- Bloody Shak Dratha Hearts +local count = 0; +function event_spawn(e) + eq.set_timer("koldar",150000); +end + +function event_timer(e) + count = count + 1; + if(count == 1) then + e.self:Say("There are many things you can do for Shar Vahl. Do not sit on your arse expecting our city to progress without your aid. It is your duty and your honor to defend our king."); + end + if(count == 2) then + e.self:Say("We cannot afford to let those vile creatures take our city."); + end + if(count == 3) then + e.self:Say("I want every one of you to bring at least four of their bloody hearts to me every day."); + end + if(count == 4) then + e.self:Say("We have a responsibility to protect this city. We cannot afford to wait for them to understand that we are not their enemy."); + end + if(count == 5) then + e.self:Say("If you see someone in battle, you must ask them before assisting. Do not dishonor them by taking their right to die in a fair and honorable battle."); + end + if(count == 6) then + e.self:Say("You there! Is that rust I see on your spear? You must find a blacksmith to repair it immediately."); + end + if(count == 7) then + e.self:Say("Remember to protect your hunting groups. It is our duty as Khala Dun to do so. Anger your enemy, use taunting tactics to keep them distracted."); + end + if(count == 8) then + e.self:Say("If you are wounded, seek out a Dar Khura. It is better to allow them to aid you than to wait for your wounds to heal. There is no shame in seeking assistance in this, for we must be sure to return to the battle as quickly as possible. Remember, we have a city to defend."); + end + if(count == 9) then + e.self:Say("Watch your spear there! Your weapons are not toys. Be careful where you point them."); + count = 0; + eq.set_timer("koldar",150000); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Stand back hunter! Not all of my men are properly trained in the use of their spears. You may find yourself losing an eye if you get too close. Now then, I assume you have [come to help.] Is that correct?"); + elseif(e.message:findi("come to help")) then + e.self:Say("Then why are you standing around! Can't you see the invading forces of the Shak Dratha approach our town? Destroy them and bring me four of their bloody hearts as proof of your deed. Snap to it!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30616, item2 = 30616, item3 = 30616, item4 = 30616})) then + e.self:Say("Blasted! Took you long enough. Look! They've already brought in more troops. We have a city to protect here. Now patch yourself up and get back to it.' Koldar hands " .. e.other:GetCleanName() .. " a handful of bandages."); + e.other:QuestReward(e.self,{items = {13009,13009,13009,13009,13009,13009},exp = 2000}); -- Item: Bandages + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Captain_Tarief.lua b/shadeweaver/Captain_Tarief.lua new file mode 100644 index 0000000..8ef1192 --- /dev/null +++ b/shadeweaver/Captain_Tarief.lua @@ -0,0 +1,70 @@ +-- Saurek Scales +local count = 0; +function event_spawn(e) + eq.set_timer("tarief",180000); +end + +function event_timer(e) + count = count + 1; + if(count == 1) then + e.self:Say("It is important for us to hunt well and provide food to our brethren. Use stealth to surprise your opponent and attack them from behind. This is a vital tactic for the Taruun."); + end + if(count == 2) then + e.self:Say("Taking a spit with you into battle allows you to cook the meat you find in the field. This will help sustain your companions as well as yourself."); + end + if(count == 3) then + e.self:Say("Remember to try to maneuver behind your opponent, attack with wisdom and cunning."); + end + if(count == 4) then + e.self:Say("We must clear out the hoppers that attack us. These beasts can become very dangerous if they are left to breed. We have already lost many of our brethren to the larger ones."); + end + if(count == 5) then + e.self:Say("It is important for us to stay light and nimble on our feet. Do not overburden yourself with equipment you have no need for."); + end + if(count == 6) then + e.self:Say("Avoid heavier armor, let the Khala Dun take the brunt of the blows while you maneuver behind the enemy. If they focus their attacks on you, it is wise to retreat until your companions are able to distract them from you."); + end + if(count == 7) then + e.self:Say("Remember your honor. Do not lay claim to a kill that does not belong to you. Both victory and spoils belong to the one who has initiated the battle."); + end + if(count == 8) then + e.self:Say("Pay close attention to your surroundings. When you are in danger, it is best to know the quickest way back to safety."); + count = 0; + eq.set_timer("tarief",180000); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met, have you [come to aid] us in hunting the hoppers of the thicket?"); + elseif(e.message:findi("come to aid")) then + e.self:Say("If you are preparing to hunt, then there are a few things you should know. Some of the hoppers have unique abilities. Knowledge of these abilities can mean the difference between life and death. I will tell you a little bit about them if you [wish to listen]."); + elseif(e.message:findi("wish to listen")) then + e.self:Say("A wise choice, it is good to learn all that you can of the prey before initiating the hunt. Such a tactic is vital when you set out for larger game. Learn of your prey's strengths and weaknesses and you shall have the upper hand. Saureks may all seem similar to one another at first glance, but this is not the case. Such a mistake has left many Taruun dead. I have learned that the darkclaw saureks have venom dripping from their claws. There are a few other [unique qualities] to the saureks as well."); + elseif(e.message:findi("unique qualities")) then + e.self:Say("Each of the saureks have their own unique set of scales. I am able to tell which saurek my trainees have managed to hunt successfully by the scale they return to me. Feel free to join in our lesson or the hunt. I hope that you will benefit from my advice. Hunt well, " .. e.other:GetCleanName() .. "."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30861, item2 = 30861, item3 = 30861, item4 = 30861})) then --Saurek Hopper Scales + e.self:Say("What have we here? Aha! Look here everyone. " .. e.other:GetCleanName() .. " has returned victorious! Well done. You are entitled to the reward for slaying the Saurek Hoppers. I hope all my trainees turn out as skilled as you. Perhaps you should consider hunting more difficult prey from now on.' Captain Tarief hands " .. e.other:GetCleanName() .. " a pair of masterfully tailored hunting boots."); + e.other:Faction(e.self,1513,1); --Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,30870,2500); --Hunting Leather Boots + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30862, item2 = 30862, item3 = 30862, item4 = 30862})) then --Saurek Darkclaw Scales + e.self:Say("So the hunter returns victorious. Well done! You have earned yourself a hunting bracer to protect you from the claws of the hoppers. I am sure many of your companions will revel in the feast you are able to provide them with the meat you have collected."); + e.other:Faction(e.self,1513,1); --Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,30867,2500); --Hunting Leather Bracer + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30863, item2 = 30863, item3 = 30863, item4 = 30863})) then --Saurek Shredder Scales + e.self:Emote("blinks in astonishment. 'Perhaps the true shredder was you this time around " .. e.other:GetCleanName() .. "' He chuckles, 'Well done, you have earned the reward.' Tarief hands " .. e.other:GetCleanName() .. " a pair of masterfully tailored hunting sleeves. 'Be sure to have your battle wounds tended to. I am sure you have many scars to show from hunting those shredders."); + e.other:Faction(e.self,1513,1); --Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,30866,2500); --Hunting Leather Sleeves + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Elefan.lua b/shadeweaver/Elefan.lua new file mode 100644 index 0000000..2e825a4 --- /dev/null +++ b/shadeweaver/Elefan.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". It's a pleasure to meet you as I do not see many visitors while I am working in the field gathering research."); + elseif(e.message:findi("research")) then + e.self:Say("Oh I have some different berries and antidote ingredients that I gathered not too long ago. I would imagine these are what he needs. Will you [take the Antidote ingredients] to Zimloro?"); + elseif(e.message:findi("ingredient")) then + e.self:Say("Here you are, " .. e.other:GetCleanName() .. ". Please bring them to him at once so they do not spoil and thank you for your help."); + e.other:SummonCursorItem(4759); -- Item: Antidote Ingredients + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4758})) then + e.self:Say("Ah I see you are sent from master Zimloro eh, " .. e.other:GetCleanName() .. ". This note reads that he needs some specific items at once. Perhaps he could find some use out of all of this research I have recently collected."); + e.other:QuestReward(e.self,0,0,0,0,0,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadeweaver/Faer_Shahar.lua b/shadeweaver/Faer_Shahar.lua new file mode 100644 index 0000000..20c79ae --- /dev/null +++ b/shadeweaver/Faer_Shahar.lua @@ -0,0 +1,17 @@ +--Quest: Garbage Collecting +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings friend, please mind your [garbage]. They attract the hoppers who can be a danger to our young ones."); + elseif(e.message:findi("garbage")) then + e.self:Say("Careless travelers from Shadow Haven leave their rubbish along our roads. They attract vermin and can smell just horrid. I try my best to keep the road clean, but it seems that I cannot keep up with the filth."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30618, item2 = 30618, item3 = 30618, item4 = 30618})) then + e.self:Say("Thank you friend, you have done an excellent service for our city. Take this and may it help you on your endeavors."); + e.other:QuestReward(e.self,7,0,0,0,17890,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadeweaver/Ferdrin.lua b/shadeweaver/Ferdrin.lua new file mode 100644 index 0000000..029612a --- /dev/null +++ b/shadeweaver/Ferdrin.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome " .. e.other:GetCleanName() .. "! Have you been sent to speak with me by [Captain Alim]?"); + elseif(e.message:findi("captain alim")) then + e.self:Say("Excellent, I presume you wish to speak with me about the [Firefall Club]?"); + elseif(e.message:findi("firefall club")) then + e.self:Say("If you provide me with three firefall claws, and a wooden practice flail, I am able to fashion them together into a Firefall Claw Club, for you to use."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7807, item2 = 7807, item3 = 7807, item4 = 30579})) then + e.self:Emote("takes the flail and starts placing the claws into it forming a formidable looking weapon. 'This seems a good weapon indeed. Here, you can take it for helping to test my theory of weapon crafting. Safe travels to you friend.'"); + e.other:QuestReward(e.self,0,0,0,0,7813); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Groo_McManus.lua b/shadeweaver/Groo_McManus.lua new file mode 100644 index 0000000..5d6e935 --- /dev/null +++ b/shadeweaver/Groo_McManus.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings adventure seeker. I have come from afar to study this strange thicket. The spirits are strong within this region, but they are secretive as well. I am willing to impart my wisdom to those who will aid me in my exploration. Are you [interested?]"); + elseif(e.message:findi("interested")) then + e.self:Say("Very well then! Let us begin. First you must attune yourself with the nature of spirits. For this you must learn to find a spiritual anchor. Find such a thing within the crater that surrounds Shar Vahl and return it to me. Then we may continue. I cannot tell you more, but there is a Vah Shir who has the knowledge that you seek. Seek him out in this thicket to learn what you can."); + elseif(e.message:findi("ready")) then + e.self:Say("You have learned a fraction of the nature of the spirit. To exist within our realm they must become a part of our realm by binding themselves within material. The hoplings claws have evolved to tear spirits from their material anchors. A disrupted anchor will normally send a spirit to the planes in which they belong, but sometimes the spirit becomes lost. This has happened within the crater that surrounds Shar Vahl. We must do what we can to [help] the lost spirit. The lost spirit had found the nearest anchor to take refuge in when its own anchor was destroyed. The spirit now lies trapped within the very claws of the hopling that had tried to destroy it. Will you help?"); + elseif(e.message:findi("help")) then + e.self:Say("Near the south bridge of Shar Vahl city, a mysterious rock formation hangs precariously within the crater. When you have arrived, you stand beneath the rock and call to the wind, speak the word 'Lumanes', be sure to clear all thoughts from your mind when doing so. If we are not too late, a kindred spirit will speak with you. Take your discoveries to my friend Shavra in the crater, she will know what to do."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30601})) then + e.self:Say("Excellent! You have done well. I can sense that you are in tune with the spirits around you. Take this, for you will need it in your next task. When you are [ready] for your next lesson let me know."); + e.other:QuestReward(e.self,0,0,0,0,15093,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadeweaver/Guard_Ratha_Kalah.lua b/shadeweaver/Guard_Ratha_Kalah.lua new file mode 100644 index 0000000..85a3de4 --- /dev/null +++ b/shadeweaver/Guard_Ratha_Kalah.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to Shar Vahl. We welcome all peaceful merchants and explorers alike. Hostile activity within the city proper is punishable by immediate death."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Guard_Shar_Aziz.lua b/shadeweaver/Guard_Shar_Aziz.lua new file mode 100644 index 0000000..2d1a600 --- /dev/null +++ b/shadeweaver/Guard_Shar_Aziz.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". Welcome to Shar Vahl."); + elseif(e.message:findi("brother")) then + e.self:Say("My brother has set up camp along with the others. You can find his tent just below."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Guard_Yuk_Tuk.lua b/shadeweaver/Guard_Yuk_Tuk.lua new file mode 100644 index 0000000..ca77008 --- /dev/null +++ b/shadeweaver/Guard_Yuk_Tuk.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("You take slook to Shak Dratha heart. Make Gor Taku happy happy. You go! GO NOW!"); + elseif(e.message:findi("slook")) then + e.self:Say("Slook for pokey pokey."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Hymnist_Omiyad.lua b/shadeweaver/Hymnist_Omiyad.lua new file mode 100644 index 0000000..f60ab7e --- /dev/null +++ b/shadeweaver/Hymnist_Omiyad.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings young one, have a seat by the fire. You will notice the dance being preformed. This is much more than just a dance though. It is a ritual that we preform to [purge] the evil spirits that are plaguing the thicket."); + elseif(e.message:findi("purge")) then + e.self:Say("Lately there has been a surge in the number of Lodi Kai threatening our trade routes. This ritual is preformed around a fire that burns from their [remains]. Setting their remains in the fire will free their tie with this world and shall ward off their numbers."); + elseif(e.message:findi("remains")) then + e.self:Emote("glances toward the fire. 'I see the fire is dying down some. Should you come across the remains of the Loda Kai bring them to me to keep the ritual fire burning. Bring plenty though, four if you can.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31289, item2 = 31289, item3 = 31289, item4 = 31289})) then --Handin: Loda Kai Remains + e.self:Emote("takes the remains and throws them into the fire, flames blaze immediatey with a sicky hue. 'You have preformed a great service by helping destroy some of the wretched Lodi Kai. Take this small talisman, it is worn by the dancers here. Take it with you and feel free to do a dance whenever you like, haha!'"); + e.other:Faction(e.self,1513,10); -- +Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,7498,250); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadeweaver/Jolneg.lua b/shadeweaver/Jolneg.lua new file mode 100644 index 0000000..a0aa81c --- /dev/null +++ b/shadeweaver/Jolneg.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, young one, has the Captain sent you to speak with me about the [Deathmaw Club]?"); + elseif(e.message:findi("deathmaw club")) then + e.self:Say("Ahh, well, since you do not know of the Deathmaw club, then I will tell you about it. Captain Alim has taught me how to make this club. In order to make one, I will require three deathmaw claws, and a wooden practice flail. Return to me these components, and I will craft a Deathmaw Club for you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7808, item2 = 7808, item3 = 7808, item4 = 30579})) then + e.self:Emote("takes the flail and starts placing the claws into it forming a formidable looking weapon. 'This seems a good weapon indeed. Here, you can take it for helping to test my theory of weapon crafting. Safe travels to you friend.'"); + e.other:QuestReward(e.self,0,0,0,0,7815); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Kaza_Raj.lua b/shadeweaver/Kaza_Raj.lua new file mode 100644 index 0000000..fe825f4 --- /dev/null +++ b/shadeweaver/Kaza_Raj.lua @@ -0,0 +1,62 @@ +--Ghulam Armor +--I saw no mention of experience or faction hits in the quest on Alla's. +--After writing this, I saw that someone else already had. I merged my work and theirs, whoever it was. They had better dialogue information than I did. -Kilelen + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Ah. greetings! I am Kaza Raj, trainer of young Vah'shir! Bring me the items I ask and I will reward you with pieces of armor to protect you in your travels. I have a fine pair of [gloves] available now if you're interested."); + elseif(e.message:findi("glove")) then + e.self:Say("Great! Let's start with the gloves then, shall we? Gloves, yes indeed - I will give them to you if you go out and kill Cht'Thk Bloodlings. Bring me four Sharp Bloodling Mandibles as proof of your deeds."); + elseif(e.message:findi("bracer")) then + e.self:Say("Ah yes, a Bracer. I'm sure I have one here somewhere. I'll look for it while you do me a service. Skeletal Brigands and Hunters have been endangering our young ones, seek them out and bring me four Broken Skulls!"); + elseif(e.message:findi("boots")) then + e.self:Say("You are doing fine work. I'm so pleased to have met you! I'm confident you can help me again if you're interested. The guards have mentioned a problem with Shades roaming too near the city. I'd like to see if we can do something about that. Go and kill Lesser Shades, and bring me four Shadowed Claws and I will give you some boots as a reward!"); + elseif(e.message:findi("sleeves")) then + e.self:Say("Have you seen the Loda Kai in your explorations? They are a great menace, oh very bad indeed! They're nothing but criminals and brigands, ooooh how I hate them.. Fetch me four Loda Kai earrings and I shall give you some fine sleeves for your trouble!"); + elseif(e.message:findi("cap")) then + e.self:Say("Excellent work dispatching those Brigands! Now seek out Loda Kai thugs and return with four Insignia, I shall give you a useful cap if you serve me well!"); + elseif(e.message:findi("tunic")) then + e.self:Say("A breastplate shall complete your set! Bring me four carapaces from Cht'Thk Bloodbulks and I will give you a wonderful tunic!"); + elseif(e.message:findi("pant")) then + e.self:Say("Hmm, you are growing more mighty as time passes - Kill Saurek Claw Beasts and bring me four fangs, I have most excellent pants if you succeed."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2476, item2 = 2476, item3 = 2476, item4 = 2476})) then--Broken Brigand Skull x4 + e.self:Say("Excellent! Here are your Bracer! Would you like to get some [Boots]?"); + e.other:Faction(e.self,1513,15); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,2453); --Ghulam Bracer + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 2460, item2 = 2460, item3 = 2460, item4 = 2460})) then--Sharp Bloodling Mandible x4 + e.self:Say("Excellent! Here are your Gloves! Would you like to get a [Bracer]?"); + e.other:Faction(e.self,1513,15); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,2452); --Ghulam Gloves + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 2477, item2 = 2477, item3 = 2477, item4 = 2477})) then--Shadowed Claw x4 + e.self:Say("Excellent! Here are your Boots! Would you like to get some [Sleeves]?"); + e.other:Faction(e.self,1513,20); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,2454); --Ghulam Boots + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 2478, item2 = 2478, item3 = 2478, item4 = 2478})) then--Loda Kai Earring x4 + e.self:Say("Excellent! Here are your Sleeves! Would you like to get a [Cap]?"); + e.other:Faction(e.self,1513,25); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,2455); --Ghulam Armguards + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 2479, item2 = 2479, item3 = 2479, item4 = 2479})) then--Loda Kai Insignia x4 + e.self:Say("Excellent! Here is your Cap! Would you like to get some [Pants]?"); + e.other:Faction(e.self,1513,25); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,2456); --Ghulam Cap + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 2480, item2 = 2480, item3 = 2480, item4 = 2480})) then--Saurek Fang x4 + e.self:Say("Excellent! Here are your Pants! Would you like to get a [Tunic]?"); + e.other:Faction(e.self,1513,20); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,2457); --Ghulam Legplates + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 2481, item2 = 2481, item3 = 2481, item4 = 2481})) then--Bloodbulk Carapace x4 + e.self:Say("Excellent! Here is your Tunic!"); + e.other:Faction(e.self,1513,25); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,2459); --Ghulam Tunic + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Kojinn_Kaa.lua b/shadeweaver/Kojinn_Kaa.lua new file mode 100644 index 0000000..3413e9c --- /dev/null +++ b/shadeweaver/Kojinn_Kaa.lua @@ -0,0 +1,17 @@ +--Champion of the Vah Shir +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("waits patiently for a hero to emerge, one that will deliver a crippling blow to those that would hunt the cats of these lands. His eyes look deep to your soul as if to ask, 'Is this the hero I await?' "); + elseif(e.message:findi("hero")) then + e.self:Say("Many have come before me and made such claims. Your fervor is appreciated, but I require proof that you are a hero whose heart is with us before I can entrust you with such a sacred mission. Have you something to show that you have earned our trust?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30854})) then--Hero's Shroud + e.self:Say("You have proven yourself a hero of our cause, and so I entrust you with this information: the poachers have set up an outpost in the caves on the outskirts of the thicket. Go and wreak havoc upon this deplorable filth that has mistreated our friends. As a badge of the honor you have earned, construct a champion's robe and have the High Priestess Bast bless it for you. The ceremony will require three drops of the blood of those who would bring harm to the felidae. It will be the High Priestess's honor to receive you."); + e.other:QuestReward(e.self,{items = {30855,30854}}); --Champion Cape Pattern, Hero's Shroud (giving it back) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadeweaver/Kylfa.lua b/shadeweaver/Kylfa.lua new file mode 100644 index 0000000..cb88849 --- /dev/null +++ b/shadeweaver/Kylfa.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, young one, what is it that you [seek]?"); + elseif(e.message:findi("seek")) then + e.self:Say("Ahh, so you seek the Shredder Claw Club, aye? Indeed, I am the apprentice to Captain Alim who was trained to make that item. I will craft one for you if you wish to gather the [components]."); + elseif(e.message:findi("components")) then + e.self:Say("Return to me with three Shredder Claws, and a wooden practice flail, and I will attach the claws to the flail and create a Shredder Claw Club for you to use out here in the Thicket."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7809, item2 = 7809, item3 = 7809, item4 = 30579})) then + e.self:Say("takes the flail and starts placing the claws into it forming a formidable looking weapon. 'This seems a good weapon indeed. Here, you can take it for helping to test my theory of weapon crafting. Safe travels to you friend.'"); + e.other:QuestReward(e.self,0,0,0,0,7814); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Priestess_Bast.lua b/shadeweaver/Priestess_Bast.lua new file mode 100644 index 0000000..f59c44f --- /dev/null +++ b/shadeweaver/Priestess_Bast.lua @@ -0,0 +1,21 @@ +--Champion of the Vah Shir +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("speaks to you without opening her eyes or disturbing her meditations, 'Greetings to you. I, like others before me, have dedicated my life to protecting the animals that roam these lands. The blight of poachers and others that would profit from their destruction has overrun their peaceful way of life. You may also serve this noble cause, speak with Sentry Ferin in the field. No doubt there is plenty to be done.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30856, item2 = 30853, item3 = 30853, item4 = 30853})) then --The Champion's Cape, 3x Drop of Loda Kai Blood + e.self:Say("You are indeed a friend to us and have earned a place of high honor among our people and our four-legged cousins. Wear this robe with pride and none will ever doubt your conviction for the honor of the felidae."); + e.other:Faction(e.self,1513, 15);--Guardians of Shar Vahl faction + e.other:QuestReward(e.self,0,0,0,0,30857); --Blessed Champion's Cape + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Saren_Kaja.lua b/shadeweaver/Saren_Kaja.lua new file mode 100644 index 0000000..aa6a370 --- /dev/null +++ b/shadeweaver/Saren_Kaja.lua @@ -0,0 +1,19 @@ +--Quest: Chialle's Friendship Ring +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello there friend, would you like to buy some of my delicious [Payala] goodies?"); + elseif(e.message:findi("Payala")) then + e.self:Say("Payala has the sweetest nectar in all the lands. You can find them throughout the thicket beneath the blue leafed Payala tree. Try some. I have many Payala goodies for sale. I always say, 'the quickest way to someones heart is a freshly baked Payala tart!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Oh thank you ever so much! You are truly as sweet as the gift you bring."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30619, item2 = 30619, item3 = 30619, item4 = 30619},1,text)) then + e.self:Say("You're just wonderful " .. e.other:GetCleanName() .. "! I have little to repay your kindness with, but I will squeeze you some fresh Payala Nectar."); + e.other:Faction(e.self,1513,1); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,30625,2500); + end +end diff --git a/shadeweaver/Sentry_Ferin.lua b/shadeweaver/Sentry_Ferin.lua new file mode 100644 index 0000000..22a29ed --- /dev/null +++ b/shadeweaver/Sentry_Ferin.lua @@ -0,0 +1,28 @@ +--Sentry_Ferin.pl +--Champion of the Vah Shir + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". Pardon, but I've no time for chit chat, the [poachers] never rest."); + elseif(e.message:findi("poachers")) then + e.self:Say("Some of the Loda Kai heathens have seen fit to trade in the pelts of our felidae cousins. It disgusts me to think what they are doing with the hides of the proud cats of this land. Were there only adventurers brave enough to [champion their cause]..."); + elseif(e.message:findi("champion their cause")) then + e.self:Say("Fighting for the honor of our cause is no small undertaking. Go and hunt down this cowardly lot. Take back from them what they have stolen and fill this casket so that the fallen cats might be honored properly."); + e.other:SummonCursorItem(17891);--Venerated Cask + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30852})) then --Sealed Cask + e.self:Say("You are truly a friend to the Felidae. Take this shroud as a small token of the honor you have done to our people - it is just a small step towards becoming a champion among our people."); + e.other:Faction(e.self,1513, 8);--Guardians of Shar Vahl faction + e.other:QuestReward(e.self,0,0,0,0,30854); --Hero's Shroud + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Sentry_Har_Kalaf.lua b/shadeweaver/Sentry_Har_Kalaf.lua new file mode 100644 index 0000000..4c0f5ae --- /dev/null +++ b/shadeweaver/Sentry_Har_Kalaf.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Tread cautiously here. The road to the [paludal] caverns is a dangerous journey these days."); + elseif(e.message:findi("what paludal?")) then + e.self:Say("The paludal caverns lie to the north, just beyond that copse of blue payala trees. Be careful if you decide to head that way, there are many [dangers] on the road to the north."); + elseif(e.message:findi("what dangers?")) then + e.self:Say("The spirits have been restless in the northern region. The shak dratha have also been attacking travelers and merchants alike. I hear there is some good hunting within the Paludal caverns, however. The journey may be worth your while."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Sentry_Kedra_Kai.lua b/shadeweaver/Sentry_Kedra_Kai.lua new file mode 100644 index 0000000..6ab7d49 --- /dev/null +++ b/shadeweaver/Sentry_Kedra_Kai.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met wanderer. Pay heed to the road you chose to travel on, for there are many [hazards] you may come across no matter which direction you chose."); + elseif(e.message:findi("hazards")) then + e.self:Say("The western road passes through a dangerous part of the thickets. A rivalry between the strange Tegi clans is afoot. Pay close attention, for the darker ones seem much more hostile than the ones that came before them. The Northern road passes through to the [Paludal] caverns. Once it was a rather safe trade route to the city of Shadow Haven. It has since fallen to regular brigand attacks.. We still get traders coming to sell their wares, but the journey is far more treacherous these days."); + elseif(e.message:findi("paludal")) then + e.self:Say("What is Paludal? The Paludal caverns mark the trade route to Shadowhaven. A series of tunnels that burrow into the very heart of Luclin. I would be very careful of the creatures that burrow through these caverns. They are very dangerous and will show no mercy on young adventurers. If you come across these creatures bring me four different carapaces shells and I will reward you with a shield made from them."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadeweaver/Shekar.lua b/shadeweaver/Shekar.lua new file mode 100644 index 0000000..a6626e6 --- /dev/null +++ b/shadeweaver/Shekar.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I suppose you are here to ask me how to create a Claw Beast Talon Club? Yes, yes, I thought you might be. So many young ones looking for these, my poor claws are sore from all the assembly. Of course, I will make one for you, so long as you return to me with the correct [items]."); + elseif(e.message:findi("items")) then + e.self:Say("To assemble this club, I require only two things. The first is a wooden practice flail. The second is a talon from the great claw beasts. They are quite rare, and large, and might be a difficult kill."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7811, item2 = 30579})) then + e.self:Say("You have killed the Claw Beast! Well done " .. e.other:GetCleanName() .. ", you have shown a great ability to fight. I have not seen the like since the mightly Yalpeelor and Zunaloo!"); + e.other:QuestReward(e.self,0,0,0,0,7812); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Spiritist_Karina.lua b/shadeweaver/Spiritist_Karina.lua new file mode 100644 index 0000000..2bd2072 --- /dev/null +++ b/shadeweaver/Spiritist_Karina.lua @@ -0,0 +1,78 @@ +local count = 0; +function event_spawn(e) + eq.set_timer("karina",90000); +end + +function event_timer(e) + count = count + 1; + if(count == 1) then + e.self:Say("When our companions are wounded, we must call to the spirits and ask for their aid. Kindred spirits are able to protect us and heal our wounds."); + elseif(count == 2) then + e.self:Say("Never force a spirit to your aid. You will find that there are many that will come to your side. You need only ask."); + elseif(count == 3) then + e.self:Say("Only use your connection to the spiritual realm when you need it. Do not drain yourself unnecessarily, for you will find yourself unable to call for aid when you need it the most. Ration out your spiritual strength carefully, it will be vital to your own survival."); + elseif(count == 4) then + e.self:Say("Try not to become the focus of attention in a battle. You will find it much more efficient to strike when the opponent is distracted. Do not hestitate to ask others to join you. You will find that many welcome your ability to cure battle wounds and call forth protection from the spirits around you."); + elseif(count == 5) then + e.self:Say("Be sure to maintian your material components. You will need these to perform the necessary rituals to call on the power of many spirits."); + elseif(count == 6) then + e.self:Say("Never lead an enemy to your allies. It is considered the greatest dishonor to do so. Remember that you will carry the name you make for yourself in youth all the way to your elder years. Your actions now will determine the outcome of your future."); + elseif(count == 7) then + e.self:Say("Try not to waste the hides of the beasts you hunt. It is wise to craft these hides into armor for yourself."); + elseif(count == 8) then + e.self:Say("Always pay attention to your surroundings. There are many opponents that will ambush you while you are out in the field. It is wise to take companions with you when venturing far."); + elseif(count == 9) then + e.self:Say("Visit your trainer to master new skills as soon as you are able. The longer you tarry about, the harder it will be for you to learn your skill later on. The more you use the skills you learn, the better you will become at using them."); + count = 0; + eq.set_timer("karina",90000); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome, friend. Come dance by our warm fire or have a seat and [learn] a little bit about the ways of the spiritist."); + elseif(e.message:findi("learn")) then + e.self:Say("We are those in tune with the spirits that surround us. Ancestral spirits with knowledge of the ancients dance around us by this very fire. They guide is through the darkness. Protect us from pain. But a terrible [curse] has befallen the spirits of this thicket, and so it is my duty to train these young Dar Khura in order to aid in the battle that lies ahead."); + elseif(e.message:findi("curse")) then + e.self:Say("The spirits are corrupted by foul magic. The souls of our ancestors have been twisted into an abomination known as [shades]. The corpses of long passed friends and relatives walk through the night seeking to destroy the living. We must destroy the corrupted remains of their old bodies and allow the spirits to roam free once more. Will you help us [release the souls] of our kindred spirits?"); + elseif(e.message:findi("shades")) then + e.self:Say("The shades are a deeper form of corruption of the spirit. I can sense great anguish in the spirits that have been twisted into such a creation. Their horror burns my heart so deeply that I cannot bear it. I would not normally ask another to place themselves in danger, but it is important that the souls are released from these shadowed prisons of torture and darkness. Please help us [release the souls] of our ancestral spirits."); + elseif(e.message:findi("release the souls")) then + e.self:Say("I am relieved that you have accepted this dangerous task. I can feel the strength of the spirit within you. There are many kindred spirits aiding us in this battle. If you are in tune with the spiritual realm, you will find that your rituals of magic will result in aid from our spiritual allies. Return to me with the [darkened jawbones] of the lesser shades so that I may release the spirit once more."); + elseif(e.message:findi("darkened jawbones")) then + e.self:Say("The jawbones will aid me in tuning to the essence of the corrupted spirits. When you return to me with them, you are enabling me to place the lost soul to rest. I am able to release four of these spirits at one time in much the same way I am training these four young trainees. It is best to bring me four of them at one time if you are able."); + e.self:Say("Always pay attention to your surroundings. There are many opponents that will ambush you while you are out in the field. It is wise to take companions with you when venturing far."); + elseif(e.message:findi("loda kai")) then + e.self:Say("Loda Kai left Shar Vahl many years ago. He had set off for the distant city of Katta Castellum just north of the tenebrous mountains. We have not seen him since, but the brigands wear his family emblem. [Kedra Kai] has banished himself from our city in shame."); + elseif(e.message:findi("Kedra Kai")) then + e.self:Say("He stands vigil at the crossroads of the trading routes. Kedra has sworn to destroy the brigands and his brother before returning to Shar Vahl. There are many skeletal brigands within the thicket. If you are able to acquire their rotting jawbones, please bring them to me. I will try to learn what I can from the magic within them."); + elseif(e.message:findi("vampire")) then + e.self:Say("There are rumors of Vampire appearances within the Tenebrous Mountains. I suspect you will be able to learn more about these horrifying creatures within Katta Castellum."); + elseif(e.message:findi("rebirth")) then + e.self:Say("When you free a spirit from the shades that corrupt them, they will return to the spiritual realm and live again in harmony. The [skeletal hunters] of the thickets are a corruption of a different nature than the shades. There are no spirits trapped within these animated remains. Nevertheless, they are a danger to us and must be destroyed. If you are able, please return four of their sharp jawbones to me. I will need them to decipher the nature of the magic that animates them."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Thank you for your aid " .. e.other:GetCleanName() .. ". I will place this spirit to peaceful rest and give these remains a proper burial. It is a shame you could only return with one. It takes four of these to make a real difference. Nevertheless your efforts are appreciated. Thank you."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30872, item2 = 30872, item3 = 30872, item4 = 30872},1,text)) then + e.self:Say("I can see that you have a brave heart. You have rescued many of the fallen spirits with little regard to your own welfare. Such selfless acts should not go unrewarded. Please take these gloves and wear them with pride. It is a symbol of [rebirth]."); + e.other:Faction(e.self,1513,1); -- +Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,30879,1000); --Rebirth Leather Gloves + elseif(e.other:GetLevel() > 4 and item_lib.check_turn_in(e.self, e.trade, {item1 = 30873, item2 = 30873, item3 = 30873, item4 = 30873},1,text)) then + e.self:Say("Thank you for bringing these to me " .. e.other:GetCleanName() .. ".' Karina closes her eyes and meditates over the jawbones for a moment. 'I can sense the mark of Loda Kai within these bones. This is a horror, for [Loda Kai] was once member of my people. I do not know how he came about these strange magical forces, but it cannot be good news. Please, wear these sleeves for protection. This new discovery worries me deeply."); + e.other:Faction(e.self,1513,1); -- +Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,30877,1000); + elseif(e.other:GetLevel() > 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 30874, item2 = 30874, item3 = 30874, item4 = 30874},1,text)) then + e.self:Say("These are the right ones, thank you " .. e.other:GetCleanName() .. "' Karina calls to the spirits as she meditates over the jawbones of the brigands. After a brief pause, she opens her eyes once more and begins to speak, 'The magic in these bones are elusive. Their rotted state has corroded the spiritual essences within them. I have noticed much larger skeletal thugs roaming the hills beyond the road. If you can retrieve their jaws for me, perhaps I will have better luck with them. Please wear these leggings for protection."); + e.other:Faction(e.self,1513,1); -- +Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,30880,1000); + elseif(e.other:GetLevel() > 6 and item_lib.check_turn_in(e.self, e.trade, {item1 = 30875, item2 = 30875, item3 = 30875, item4 = 30875},1,text)) then + e.self:Say("I was worried about your safety " .. e.other:GetCleanName() .. ". I am glad you have returned in one piece. While you were away I have made arrangements to supply you with these boots. Now then, let us see what we can learn from these remains.' Karina cups her hands over the thick jawbones and calls to the spirits for guidance. As her meditation ends, she looks drained and short of breath. 'It is as I have feared. There is a [vampire] within this thicket."); + e.other:Faction(e.self,1513,1); -- +Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,30881,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadeweaver/Tiamon_Aroo.lua b/shadeweaver/Tiamon_Aroo.lua new file mode 100644 index 0000000..db2ada0 --- /dev/null +++ b/shadeweaver/Tiamon_Aroo.lua @@ -0,0 +1,30 @@ +-- Claw Needle +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetName() .. ", watch where you step for the [needle clawed hoppers] are just about everywhere!"); + elseif(e.message:findi("hopper")) then + e.self:Say("Those wretched vermin swarm to our city and trade routes in search of the refuse left by careless travelers who pass through these parts. They are just about useless and their stench brings bile to my throat. I would have set out to poison the whole lot of them if it was not for their unique [claws]."); + elseif(e.message:findi("claws")) then + e.self:Say("The claws of the hoppers act as a [spirit anchor]. They are specialized in tearing into the fiber of the shadow beings that roam the thicket. I find these claws useful in binding the silk fashioned by the [shadeweavers]."); + elseif(e.message:findi("shadeweavers")) then + e.self:Say("The shadeweavers hunt the beings of shadow found within the thicket. From them they fashion their shadow armor they call Xakra. We have tried to use this strong and lightweight armor in the past, but the shadows just disperse. I have found that sewing this armor onto a suitable [spirit anchor] will keep it from dispersing."); + elseif(e.message:findi("spirit anchor")) then + e.self:Say("A spirit can only materialize within our realm by binding themselves to an object that is a spirit anchor. Some bones and stones have such properties. A spirit anchor can also do the most damage to the material form of such spirits when used as a weapon. I use the claws of the hoppers as a sewing needle of sorts to [bind the silk] made by the [shadeweavers]. A standard sewing needle would only pass through the substance of the silk. The hopper claws can pierce through their ethereal fabric effectively."); + elseif(e.message:findi("bind the silk")) then + e.self:Say("A spirit must be bound to material from our own realm. Stones such as those used to build cities can be great anchors for spirits. The more ritual and culture that a stone is exposed to, the stronger it becomes as an anchor. You can use the claws of a hopper to sew the shadeweavers silk onto a suitable anchor. If you bring me four of these claws, I can fashion one of them into a needle for you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30601, item2 = 30601, item3 = 30601, item4 = 30601})) then + e.self:Say("Well done! You have brought me plenty of claws. I have enough now to make a needle for you. May it serve you well."); + e.other:QuestReward(e.self,0,0,0,0,30617,750); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Trainee_Amikar.lua b/shadeweaver/Trainee_Amikar.lua new file mode 100644 index 0000000..b10f4d7 --- /dev/null +++ b/shadeweaver/Trainee_Amikar.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("The Shak Dratha forces grow more powerful every day. We must protect our home at all costs. I have seen them do many [horrible things] while hunting in the thickets."); + elseif(e.message:findi("horrible thing")) then + e.self:Say("While I was gathering hopper pelts from the thickets, I spotted a shak dratha seeker perform a strange ritual over a wounded Loda Kai brigand. I could have sworn I saw his very soul ripped from his own body as he lay there wounded. The Loda Kai may be our enemies, but some evil actions are beyond others."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Trainee_Bargidin.lua b/shadeweaver/Trainee_Bargidin.lua new file mode 100644 index 0000000..dabba74 --- /dev/null +++ b/shadeweaver/Trainee_Bargidin.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Alas, I have little will to talk right now. It is a [sad time]."); + elseif(e.message:findi("sad time")) then + e.self:Say("My good friend Torin ventured into the thicket alone a few days ago. There's been no sign of him since. I fear the [saurek deathmaws] have done him in."); + elseif(e.message:findi("deathmaw")) then + e.self:Say("The deathmaws would be the only creature in the thicket that could possibly kill Torin. He could handle just about any other hopper, but few can survive a deathmaw attack. Reward or no, I vow I will someday slay those beasts... I'll kill them if it's the last thing I do."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Trainee_Falkha.lua b/shadeweaver/Trainee_Falkha.lua new file mode 100644 index 0000000..377da3a --- /dev/null +++ b/shadeweaver/Trainee_Falkha.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Pay heed to Captain Karims words. I have seen a Gor Taku scout aiding Loda Kai bandits myself. They are clearly our enemy."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Trainee_Garanik.lua b/shadeweaver/Trainee_Garanik.lua new file mode 100644 index 0000000..377c904 --- /dev/null +++ b/shadeweaver/Trainee_Garanik.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Karim is right, we cannot let the Gor Taku fool us. The gor taku workers have been gathering a lot of stones lately. I'll wager they are crafting a large quantity of stone weapons to attack us with. I hear they even have a blacksmith making weapons for the Loda Kai."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Trainee_Gorfik.lua b/shadeweaver/Trainee_Gorfik.lua new file mode 100644 index 0000000..355a067 --- /dev/null +++ b/shadeweaver/Trainee_Gorfik.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("The shak dratha invaders have taken large sections of the gor taku caves already. It is only a matter of time before they try to take Shar Vahl. Come join us in our fight."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Trainee_Harka.lua b/shadeweaver/Trainee_Harka.lua new file mode 100644 index 0000000..1bc4392 --- /dev/null +++ b/shadeweaver/Trainee_Harka.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Beware the Shak Dratha assassins. They lurk just beyond the sight of our guards. They may not be as strong as some of the rest of them, but they are deadly when they gang up on you. It is believed that they are soul hunters. Let us hope that we can remove them all from these thickets."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Trainee_Jonkar.lua b/shadeweaver/Trainee_Jonkar.lua new file mode 100644 index 0000000..ae6d1a5 --- /dev/null +++ b/shadeweaver/Trainee_Jonkar.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met " .. e.other:GetCleanName() .. ". Pay close attention to Captain Tarief's words of advice. It takes a skillful hunter to kill a Saurek [Darkclaw]. His advice could mean the difference between life and death."); + elseif(e.message:findi("darkclaw")) then + e.self:Say("The darkclaws are nasty beasts. Their claws are much thicker than the smaller saureks. Tarief has offered a reward to any that return with four of their scales to him. Don't get any ideas now. That reward is mine. I assure you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Trainee_Larden.lua b/shadeweaver/Trainee_Larden.lua new file mode 100644 index 0000000..0746db3 --- /dev/null +++ b/shadeweaver/Trainee_Larden.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("I agree with Karim. I went on a scouting mission into the gor taku caves, they were definitely building fortifications. They have a slew of builders constructing defences from the stones collected by the workers. We have to strike them before they have finished their preperations for battle."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Trainee_Naria.lua b/shadeweaver/Trainee_Naria.lua new file mode 100644 index 0000000..8fda790 --- /dev/null +++ b/shadeweaver/Trainee_Naria.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Have you noticed the vicious Saurek [Shredders] out in the thicket? I wouldn't want to hunt one of those nasty things."); + elseif(e.message:findi("shredder")) then + e.self:Say("The shredder has been known tear young hunters apart in mere seconds. I would stay far away from those things if I were you. Tarief has offered a reward for any that bring him four of their scales, but I just don't think it would be worth facing such a beast in battle. The meat from the smaller ones are just as good to eat if you want my opinion."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Trainee_Paelin.lua b/shadeweaver/Trainee_Paelin.lua new file mode 100644 index 0000000..4e06bfd --- /dev/null +++ b/shadeweaver/Trainee_Paelin.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("It is an honor to meet a fellow hunter. I am training to learn how to hunt down the [saurek] that roam the thicket. It is our duty as taruun to provide food for our kin. I plan on claiming captain Tarief's [reward]."); + elseif(e.message:findi("what saurek?")) then + e.self:Say("The Saurek hoppers are far more aggressive than the needle clawed hoppers. We must hunt them down and kill them lest they attack our families and traders that wander through these thickets. They have many uses to us as well. Their meat gives us food to eat, and their hides make strong protective armor."); + elseif(e.message:findi("what reward?")) then + e.self:Say("Captain Tarief has offered to reward those that slay four of the saurek hoppers. You must return four of their scales to him as proof of your deeds to claim the reward. I hope to bring honor to my family by returning home with such a trophy."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Trainee_Parnib.lua b/shadeweaver/Trainee_Parnib.lua new file mode 100644 index 0000000..486bb9c --- /dev/null +++ b/shadeweaver/Trainee_Parnib.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("We must not let the Gor Taku hunters roam through the thicket. They will reduce our food supply by hunting the hoppers we use for meat. They also aid those blasted bandits that raid our merchant routes. We must put a stop to them."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadeweaver/Trainee_Sabra.lua b/shadeweaver/Trainee_Sabra.lua new file mode 100644 index 0000000..e4f961b --- /dev/null +++ b/shadeweaver/Trainee_Sabra.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("There is little time to talk. We must stop the shak dratha raiders from invading. They gather within the tunnels beyond the trade route to Shadow haven."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/shadowhaven/Adept_Arnthus.lua b/shadowhaven/Adept_Arnthus.lua new file mode 100644 index 0000000..8791604 --- /dev/null +++ b/shadowhaven/Adept_Arnthus.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hi there, " .. e.other:GetCleanName() .. ". I sell many spells that an intermediate Cleric would surely find useful."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Adept_Delf.lua b/shadowhaven/Adept_Delf.lua new file mode 100644 index 0000000..ea34c7d --- /dev/null +++ b/shadowhaven/Adept_Delf.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Should you decide to leave the House Fordel, make sure you stock up on plenty of these basic but important items to aid you in your journey."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Adept_Paloney.lua b/shadowhaven/Adept_Paloney.lua new file mode 100644 index 0000000..1e30828 --- /dev/null +++ b/shadowhaven/Adept_Paloney.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Good day to you " .. e.other:GetCleanName() .. ". I have spells suitable for clerics of the later seasons."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Adept_Tirisa.lua b/shadowhaven/Adept_Tirisa.lua new file mode 100644 index 0000000..0c1e8f1 --- /dev/null +++ b/shadowhaven/Adept_Tirisa.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ", I carry spells that will aid the youngest of clerics in training."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Adinson_Allonode.lua b/shadowhaven/Adinson_Allonode.lua new file mode 100644 index 0000000..5c03c32 --- /dev/null +++ b/shadowhaven/Adinson_Allonode.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there. I run this jewelry shop with my husband Garn. Please let me know how I can be of assistance."); + end +end diff --git a/shadowhaven/Aeksola_Faerlonifer.lua b/shadowhaven/Aeksola_Faerlonifer.lua new file mode 100644 index 0000000..0c794b4 --- /dev/null +++ b/shadowhaven/Aeksola_Faerlonifer.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Pleased to meet you, " .. e.other:GetCleanName() .. ". It's great to have many new visitors in the Haven. Please have a look at what bars I have to offer."); + else + e.self:Say("I am sorry but I am only allowed to make dealings with persons that have found favor in the Midst quarter. Please see Lamukas to inquire about how to further strengthen your alliance with the people of the Midst."); + end + end +end diff --git a/shadowhaven/Akeral.lua b/shadowhaven/Akeral.lua new file mode 100644 index 0000000..eb122d5 --- /dev/null +++ b/shadowhaven/Akeral.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". Our shop specializes in literature for different types of trade skills. If you have some information that you would like to share, please let me know."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Albarok.lua b/shadowhaven/Albarok.lua new file mode 100644 index 0000000..fb6e66e --- /dev/null +++ b/shadowhaven/Albarok.lua @@ -0,0 +1,8 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey there " .. e.other:GetCleanName() .. ", how are ya enj..."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(150023)) then + eq.get_entity_list():GetMobByNpcTypeID(150023):Say("Hey Albarok, I dont recall allowing you to have visitors!"); + end + end +end diff --git a/shadowhaven/Aliane_Steelknuckle.lua b/shadowhaven/Aliane_Steelknuckle.lua new file mode 100644 index 0000000..18bc796 --- /dev/null +++ b/shadowhaven/Aliane_Steelknuckle.lua @@ -0,0 +1,19 @@ +-- Mining Operation + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". I'm waiting to hear from my husband. He's been working on assignment for the Patriarch."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4756}, 0)) then + e.self:Say("Oh my sweet Daosorak, such a hard worker he is. It brings a smile upon my face to know that his mining operation is going well and that he will be home soon. I thank you for bringing me this letter from him."); + e.other:Faction(e.self,1512,5); -- house of stout + e.other:Faction(e.self,1508,1); -- traders of the haven + e.other:QuestReward(e.self,0,0,0,0,0,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadowhaven/Alorob_Bolrodo.lua b/shadowhaven/Alorob_Bolrodo.lua new file mode 100644 index 0000000..c507df3 --- /dev/null +++ b/shadowhaven/Alorob_Bolrodo.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. "! I sell all of the finest vegetables that are grown here in the Haven."); + else + e.self:Say("You seem like a nice enough stranger but I am afraid all newcomers must see the Patriarch first before we are able to offer our great deals to them."); + end + end +end diff --git a/shadowhaven/Ambassador_Balopombo.lua b/shadowhaven/Ambassador_Balopombo.lua new file mode 100644 index 0000000..15aee75 --- /dev/null +++ b/shadowhaven/Ambassador_Balopombo.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, do you mean to pay a visit to the Stout Quarter? If so, be warned that this town hall is always monitored and guarded heavily."); + end +end diff --git a/shadowhaven/Ambassador_Dordak.lua b/shadowhaven/Ambassador_Dordak.lua new file mode 100644 index 0000000..0fba8fa --- /dev/null +++ b/shadowhaven/Ambassador_Dordak.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Pleasure to meet you, " .. e.other:GetCleanName() .. ". Our meeting is about to begin, so please have a seat if you mean to listen in on the latest town happenings."); + end +end diff --git a/shadowhaven/Ambassador_Jerlopodix.lua b/shadowhaven/Ambassador_Jerlopodix.lua new file mode 100644 index 0000000..81881b6 --- /dev/null +++ b/shadowhaven/Ambassador_Jerlopodix.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Nice to see you, " .. e.other:GetCleanName() .. ". I'm new to the council so I must listen very closely. Lardalon is a great teacher and leader, I only hope I can make him proud."); + end +end diff --git a/shadowhaven/Bailes.lua b/shadowhaven/Bailes.lua new file mode 100644 index 0000000..910ee61 --- /dev/null +++ b/shadowhaven/Bailes.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Ho there, " .. e.other:GetCleanName() .. ". Thinking about picking up a trusty weapon to aid you in the treacherous depths of the Paludal Caverns? Then you're in luck 'cause I have a few for sale right here!"); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Balrolok_Haldarano.lua b/shadowhaven/Balrolok_Haldarano.lua new file mode 100644 index 0000000..6c3f288 --- /dev/null +++ b/shadowhaven/Balrolok_Haldarano.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey " .. e.other:GetCleanName() .. ", can't ye see I'm entertainin' me lady friend here? Go grab an ale and a seat... and grab me one too while yer at it! Har Har!"); + end +end diff --git a/shadowhaven/Banker_Heralow.lua b/shadowhaven/Banker_Heralow.lua new file mode 100644 index 0000000..33f0410 --- /dev/null +++ b/shadowhaven/Banker_Heralow.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hello, friend. If you need some additional assistance reviewing your savings, please be patient and I will be with you as soon as possible."); + else + e.self:Say(eq.ChooseRandom("Oh look, a talking lump of refuse. How novel!","I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/shadowhaven/Banker_Pansak.lua b/shadowhaven/Banker_Pansak.lua new file mode 100644 index 0000000..fd476e5 --- /dev/null +++ b/shadowhaven/Banker_Pansak.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Thank you for visiting the Midst Quarter today, " .. e.other:GetCleanName() .. ". It is a pleasure to have you banking with us."); + else + e.self:Say(eq.ChooseRandom("Oh look, a talking lump of refuse. How novel!","I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/shadowhaven/Bargain_Merchant.lua b/shadowhaven/Bargain_Merchant.lua new file mode 100644 index 0000000..ac1c09f --- /dev/null +++ b/shadowhaven/Bargain_Merchant.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hi there! I sell an assortment of used goods here at my bargain tent. If you would like to take a closer look at anything, just let me know."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Barkeep_Prastice.lua b/shadowhaven/Barkeep_Prastice.lua new file mode 100644 index 0000000..472b842 --- /dev/null +++ b/shadowhaven/Barkeep_Prastice.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hi there " .. e.other:GetCleanName() .. ", please have a seat and help yourself to a drink."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Barkeep_Veronica.lua b/shadowhaven/Barkeep_Veronica.lua new file mode 100644 index 0000000..94a6602 --- /dev/null +++ b/shadowhaven/Barkeep_Veronica.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, my friend. We have many drinks available here at the Knights Table. If I do not have the specific drink for your taste please let me know and I will try my best to make it for you."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Barlotal.lua b/shadowhaven/Barlotal.lua new file mode 100644 index 0000000..0da9c72 --- /dev/null +++ b/shadowhaven/Barlotal.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ye know what, " .. e.other:GetCleanName() .. ", I'm tired. Dern tired of trying to figure out this dern pottery wheel. Dey tell me dat I should be a good potta like me father but I can't even figure out what's right side up let alone make a pot!"); + e.self:DoAnim(28); + end +end diff --git a/shadowhaven/Barmaid_Adelina.lua b/shadowhaven/Barmaid_Adelina.lua new file mode 100644 index 0000000..cbec0ab --- /dev/null +++ b/shadowhaven/Barmaid_Adelina.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. "! I sure love working here for Grimthor, I meet a lot of interesting people! Be sure to grab a drink of your liking and relax at one of our comfortable tables."); + end +end diff --git a/shadowhaven/Barotolen.lua b/shadowhaven/Barotolen.lua new file mode 100644 index 0000000..72e26f1 --- /dev/null +++ b/shadowhaven/Barotolen.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". If it's a smooth drink with some bite that you're after, you need to try a Jawdropper Honey Ale."); + end +end diff --git a/shadowhaven/Bartender_Woolf.lua b/shadowhaven/Bartender_Woolf.lua new file mode 100644 index 0000000..bb55bb1 --- /dev/null +++ b/shadowhaven/Bartender_Woolf.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Welcome to Grimthor's, how can I help you? We have many of the local brews and some imports in stock. Take your time making a selection. If you have any questions about any of the drinks, just let me know- I can tell you about almost all of them."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + elseif(e.message:findi("haven ale")) then + e.self:Say("The Haven Ale is your standard ale- named after this very city. Truth is, we didn't have an ale named after this city for the longest time, so I just started calling the house ale Haven Ale."); + elseif(e.message:findi("deep cavern bourbon")) then + e.self:Say("The Deep Cavern Bourbon is a favorite among the higher ups in the houses located here in the Haven. Most notably, the head mage guys over in the Midst, and the nobles here in Fordel."); + elseif(e.message:findi("red")) then + e.self:Say("The red line of brews each have their own touch of flavor. They were brewed with the recommendations of each house considered- quite nice and one of our more popular drinks."); + elseif(e.message:findi("grimthor")) then + e.self:Say("Ah yes... our house specials, named after the master brewer, Grimthor. Each brew contains ingredients from the farthest corners of Luclin, but Grimthor won't discuss how he comes by the stuff."); + elseif(e.message:findi("porter")) then + e.self:Say("Hmm... while the porter is popular, I don't much care for it personally. I don't know, it just tastes strange to me you know? Like how a wet Vah Shir smells."); + elseif(e.message:findi("reserve")) then + e.self:Say("Maybe it's the name, but it's odd how the boys over at the barracks prefer this drink over those in Midst. Could also be that it's cheap I suppose."); + elseif(e.message:findi("house stout lager")) then + e.self:Say("It is one of the best sellers we have here. I think the name alone is enough to make folks want to buy one."); + end +end diff --git a/shadowhaven/Belbie_Hildreth.lua b/shadowhaven/Belbie_Hildreth.lua new file mode 100644 index 0000000..2996484 --- /dev/null +++ b/shadowhaven/Belbie_Hildreth.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ". If you need anything you don't see, just ask."); + end +end diff --git a/shadowhaven/Beriol_Talorakoir.lua b/shadowhaven/Beriol_Talorakoir.lua new file mode 100644 index 0000000..e6a6f47 --- /dev/null +++ b/shadowhaven/Beriol_Talorakoir.lua @@ -0,0 +1,28 @@ +-- Beriol's Research + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". And good day to you. What brings you to my quarters today? Do you wish to learn more about the [magic] that we study in our hallowed section of the Shadowhaven?"); + elseif(e.message:findi("magic")) then + e.self:Say("It's always a pleasure to meet someone that shows interest in the magic that we practice here. Our magic studies consist mostly of teleportation and the arts of elemental mastery. I'm actually conducting a study now, but I'm missing a few [books]."); + elseif(e.message:findi("books")) then + e.self:Say("Well, I have an old student that is now serving as an advisor to one of the most respected residents of Katta Castelleum. He has some specific books that I need to further my research, but I cannot take the time to travel so far away from my home to retrieve them. I seek out one who will [bring my research] to me from Dersino."); + elseif(e.message:findi("bring your research")) then + e.self:Say("You are exactly the one I am looking for. After presenting this seal to Dersino, inform him that you wish to take the research and I am sure that he will know I have sent you. I look forward to seeing you soon."); + e.other:SummonCursorItem(4769); -- Item: Seal of Beriol + elseif(e.message:findi("exodus")) then + e.self:Say("Ahh, the event that started it all it was the strife between Seru and Tsaph Katta that ultimately brought us here to Luclin. Those must have been interesting times but, being over twenty generations Luclin born, I could only guess. One of these days I would like to read up on the subject, but what little we do have about it is always checked out. If that's what you came looking for, good luck- check with Rianna, she is usually up on those things."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4770}, 0)) then + e.self:Say("This is exactly the research book that I was in need of. I am very thankful for you getting these for me. Should you ever feel up to it again in the future Dersino always is getting new books in that could be very helpful in my studies. Again, I thank you and wish you the best of luck."); + e.other:Faction(e.self,1511,25); -- house of midst + e.other:Faction(e.self,1508,2); -- traders of the haven + e.other:QuestReward(e.self,0,0,0,0,0,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadowhaven/Bestive_Farworth.lua b/shadowhaven/Bestive_Farworth.lua new file mode 100644 index 0000000..ba45bef --- /dev/null +++ b/shadowhaven/Bestive_Farworth.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". I have some heavy duty ruff 'n tuff storage devices for sale. You may not want to carry them 'round much, unless you're the burly type. Even the beetle box I made is kinda heavy."); + elseif(e.message:findi("beetle box")) then + e.self:Say("You're interested in it? Great! I made this beetle box from the undamaged carapace of a Rhino Beetle. It was sold to me for a very fair price in the Bazaar. Should you discover one of these pristine, undamaged carapaces, bring it to me along with 10 gold and I will make you one of your own."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "This is just one item I need to complete this task for you. Please give me the other so that I am able to reward you."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30662,gold = 10},1,text)) then -- Pristine Rhino Beetle Carapace + e.self:Emote("rattles around in a drawer and pulls out some tools and hinges. 'Ah yes, this will do, shouldn't take but a minute.'"); + e.self:Say("Yep! Here you are, one pristine beetle box to go and I will even throw in a little spare coin to go in it. Remember, they are quite special-you can only ever carry one."); + e.other:Faction(e.self,1508,2); -- Traders of the Haven + e.other:Faction(e.self,1510,1); -- House of Fordel + e.other:Faction(e.self,1511,1); -- House of Midst + e.other:Faction(e.self,1512,1); -- House of Stout + e.other:QuestReward(e.self,math.random(10),math.random(10),0,0,17072,500); -- Pristine Beetle Box + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadowhaven/Billien.lua b/shadowhaven/Billien.lua new file mode 100644 index 0000000..2d36065 --- /dev/null +++ b/shadowhaven/Billien.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("No one around to dance with, but you look like you can cut a rug there, " .. e.other:GetCleanName() .. ". So how 'bout it?"); + end +end diff --git a/shadowhaven/Bouncer_Molas.lua b/shadowhaven/Bouncer_Molas.lua new file mode 100644 index 0000000..874ca5b --- /dev/null +++ b/shadowhaven/Bouncer_Molas.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Grimthor's " .. e.other:GetCleanName() .. ". If you're one of those hard drinkers that likes to have a few drinks then raise a ruckus, be sure you keep in mind how big I am."); + end +end diff --git a/shadowhaven/Brandon_Stormchaser.lua b/shadowhaven/Brandon_Stormchaser.lua new file mode 100644 index 0000000..6dff4a7 --- /dev/null +++ b/shadowhaven/Brandon_Stormchaser.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi there " .. e.other:GetCleanName() .. ", it's nice to see some new faces in the Haven. I am Brandon Stormchaser and I keep watch over the guildmaster hall we have here. It was a pleasure meeting you, but I must get back to my post now."); + end +end diff --git a/shadowhaven/Bronklad_Stoneshaper.lua b/shadowhaven/Bronklad_Stoneshaper.lua new file mode 100644 index 0000000..ee7eea0 --- /dev/null +++ b/shadowhaven/Bronklad_Stoneshaper.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Lo dere! If ye be needin something to shape those bits, pieces and whateber of ore ye came to the right place!"); + end +end diff --git a/shadowhaven/Callowolf_MacFuller.lua b/shadowhaven/Callowolf_MacFuller.lua new file mode 100644 index 0000000..1351995 --- /dev/null +++ b/shadowhaven/Callowolf_MacFuller.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, if you are training in the art of alchemy, I have the tools necessary for your trade."); + end +end diff --git a/shadowhaven/Chadasl_Dalsoeam.lua b/shadowhaven/Chadasl_Dalsoeam.lua new file mode 100644 index 0000000..eff1635 --- /dev/null +++ b/shadowhaven/Chadasl_Dalsoeam.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("How are you, " .. e.other:GetCleanName() .. "? Quite a view I have here, I sure hope tonight that she forgets to clo... er nothing, never mind."); + end +end diff --git a/shadowhaven/Coglixar_Xorlopodil.lua b/shadowhaven/Coglixar_Xorlopodil.lua new file mode 100644 index 0000000..b14815a --- /dev/null +++ b/shadowhaven/Coglixar_Xorlopodil.lua @@ -0,0 +1,14 @@ +-- Mining Operation + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ", It's nice to meet you. Are you just passing through our fine city or do you have dealings you need to address to me personally? Also if ye know anyone that will want to assist with some deliveries to our mining contingent in the Paludal caverns let me know."); + elseif(e.message:findi("assist")) then + e.self:Say("Ah Excellent, you must have been sent by our Patriarch. Well I have some goods that I need delivered to some different areas if you are still willing to [help].") + elseif(e.message:findi("help")) then + e.self:Say("That is great to hear, " .. e.other:GetCleanName() .. ". I have a task for you to complete for me first and if you are able to complete it I may have other things for you in the future. I have heard word that some of our dwarf workers in the [mining operation] are in need of some food."); + elseif(e.message:findi("mining operation")) then + e.self:Say("In the Paludal caverns our workers are starting to get very low on rations and are working with very old and tarnished mining utensils. I need you to deliver these rations to Daesorak first and then see what supplies he thinks they need. He is the one overseeing the operation and will be able to tell you what supplies he needs and what quantity is necessary."); + e.other:SummonCursorItem(4747); -- Item: Bag of Rations + end +end diff --git a/shadowhaven/Daekos_Ferinsalo.lua b/shadowhaven/Daekos_Ferinsalo.lua new file mode 100644 index 0000000..887427a --- /dev/null +++ b/shadowhaven/Daekos_Ferinsalo.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". If you are a Cleric that is experienced in the ways of lifegiving, perhaps you could use some of these spells?"); + end +end diff --git a/shadowhaven/Daleoas_Brondaer.lua b/shadowhaven/Daleoas_Brondaer.lua new file mode 100644 index 0000000..3c192c5 --- /dev/null +++ b/shadowhaven/Daleoas_Brondaer.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to my house, " .. e.other:GetCleanName() .. ". It's quite bland right now. All that I need is a little bit of furniture and one other thing... oh yeah, a wife! If you know a nice lady, make sure you send her my way. Meanwhile I think I will wait for one to come knocking on my door."); + end +end diff --git a/shadowhaven/Daliea_Saeiersa.lua b/shadowhaven/Daliea_Saeiersa.lua new file mode 100644 index 0000000..3c3d6c7 --- /dev/null +++ b/shadowhaven/Daliea_Saeiersa.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Shadowhaven, " .. e.other:GetCleanName() .. "! If you're hungry after a long journey, make sure you pick up some of my stew!"); + end +end diff --git a/shadowhaven/Daloran_Glimmerblade.lua b/shadowhaven/Daloran_Glimmerblade.lua new file mode 100644 index 0000000..fb8e128 --- /dev/null +++ b/shadowhaven/Daloran_Glimmerblade.lua @@ -0,0 +1,31 @@ +-- Gemmed Sword Hilt + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Lord Daloran Glimmerblade. I preside over the Fordel section of the Haven with my dear Mistala. I have not seen you around these parts, so I would imagine you are a [newcomer] to our great city."); + elseif(e.message:findi("newcomer")) then + e.self:Say("Excellent, " .. e.other:GetCleanName() .. ". It's nice to have you here as a guest. I am very proud of all that we have accomplished here, and I invite you to make yourself at home when you are with us. If you wish to further [prove your allegiance] to the House of Fordel I may have some tasks for you to complete."); + elseif(e.message:findi("prove my allegiance")) then + e.self:Say("Ah that is excellent to hear, " .. e.other:GetCleanName() .. ". I believe I have a task that I could entrust you with. I have numerous Gemmed sword hilts that I have yet to attach to a blade. They have all been glowing for quite some time with an [unknown force]. All of my residing magicians and enchanters have been unable to decipher the magics that surround these hilts."); + elseif(e.message:findi("unknown force")) then + e.self:Say("I wish that I was able to discover this myself. Unfortunately not one person in my quarter possesses such identification powers. However, I do have a [friend] in Katta Castellum that specializes in discovering such magical origins."); + elseif(e.message:findi("friend")) then + e.self:Say("Yaeorat is who I speak of, he is a very trusted and old friend of mine that is a very powerful and skillfull enchanter. Will you bring to him the [Gemmed sword hilt]? I feel that if anyone will be able to identify this it will be Yaeorat."); + elseif(e.message:findi("gemmed sword hilt")) then + e.self:Say("That is great to hear, " .. e.other:GetCleanName() .. ". Here is the hilt. Please go see Yaeorat at once and bring me news about the magic that surrounds this sword hilt good or bad."); + e.other:SummonCursorItem(4762); -- Gemmed Sword Hilt + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4763}, 0)) then -- Gem encrusted Sword Hilt + e.self:Say("Fantastic work, " .. e.other:GetCleanName() .. ". It would seem that this hilt is fit to be attached to a blade and distributed amongst my guards. I have many other hilts that I need delivered to Yaeorat should you choose to courier another in the future. Until then good luck to you."); + e.other:Faction(e.self,1510,25); -- house of fordel + e.other:Faction(e.self,1509,25); -- haven defenders + e.other:Faction(e.self,1508,2); -- traders of the haven + e.other:QuestReward(e.self,0,0,0,0,0,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadowhaven/Danlin_Hildreth.lua b/shadowhaven/Danlin_Hildreth.lua new file mode 100644 index 0000000..354e003 --- /dev/null +++ b/shadowhaven/Danlin_Hildreth.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Sayy("Welcome to our pub. Please sample our fine selection of ales, I am sure you will find something to suit your tastes."); + end +end diff --git a/shadowhaven/Darian_Shallowsong.lua b/shadowhaven/Darian_Shallowsong.lua new file mode 100644 index 0000000..8fa815f --- /dev/null +++ b/shadowhaven/Darian_Shallowsong.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", it seems that you have caught me relaxing a bit on my off time at the tavern here. No matter, though if you are a bard in need of assistance, just let me know and we will get right to work."); + end +end diff --git a/shadowhaven/Darosn_Sajson.lua b/shadowhaven/Darosn_Sajson.lua new file mode 100644 index 0000000..fe93ec9 --- /dev/null +++ b/shadowhaven/Darosn_Sajson.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Pleased to meet you, " .. e.other:GetCleanName() .. ". I will have numerous herbs and grains as soon as I receive my shipment, so please check back later. If you are in need of something now, I believe Satoen has some in stock."); + end +end diff --git a/shadowhaven/Daveiro_Fanormat.lua b/shadowhaven/Daveiro_Fanormat.lua new file mode 100644 index 0000000..1bb75d1 --- /dev/null +++ b/shadowhaven/Daveiro_Fanormat.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day to you " .. e.other:GetCleanName() .. ", I hold spells that you may find useful if you are a warder of nature. If you wish to depart from our tranquil dwelling the key is to go with nature."); + end +end diff --git a/shadowhaven/Defender_Alakurn.lua b/shadowhaven/Defender_Alakurn.lua new file mode 100644 index 0000000..2c4783f --- /dev/null +++ b/shadowhaven/Defender_Alakurn.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". Are you leaving the Haven? If so, be sure to visit soon and see how our city continues to prosper more and more with the passing days."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Alein.lua b/shadowhaven/Defender_Alein.lua new file mode 100644 index 0000000..a8f1c16 --- /dev/null +++ b/shadowhaven/Defender_Alein.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Shadow Haven, adventurer. You are entering the Fordel Quarter."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Alerion.lua b/shadowhaven/Defender_Alerion.lua new file mode 100644 index 0000000..1b93a19 --- /dev/null +++ b/shadowhaven/Defender_Alerion.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Glad to know you, " .. e.other:GetCleanName() .. ". Please do your best to watch your step around this pool. It has been nice to see so many new faces around the city, but many has been the time that I have had to dive in after someone and, to be honest, I am not the greatest swimmer in all the world- now with all of the extra traffic, I get a bit nervous."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Alroklon.lua b/shadowhaven/Defender_Alroklon.lua new file mode 100644 index 0000000..cd3127e --- /dev/null +++ b/shadowhaven/Defender_Alroklon.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail and well met, " .. e.other:GetCleanName() .. ". It is a pleasure to have you in Shadowhaven. Should you venture up these stairs, you will find yourself in the Fordel Quarter. Good luck to you, traveler."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Awilanar.lua b/shadowhaven/Defender_Awilanar.lua new file mode 100644 index 0000000..1d2db62 --- /dev/null +++ b/shadowhaven/Defender_Awilanar.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, I am Awilanar, one of the finest front line archers ever to sling an arrow. Shadowhaven may rest easy on my watch- given a fair shot, I could hit a rabbit at night in deep fog, let there be no doubt."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Axedaos.lua b/shadowhaven/Defender_Axedaos.lua new file mode 100644 index 0000000..fe069b1 --- /dev/null +++ b/shadowhaven/Defender_Axedaos.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings to you, " .. e.other:GetCleanName() .. ". Beyond lies the path to Shadowhaven. I hope you enjoy your time with us."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Beolsona.lua b/shadowhaven/Defender_Beolsona.lua new file mode 100644 index 0000000..8e58cb3 --- /dev/null +++ b/shadowhaven/Defender_Beolsona.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey there, stranger. Stay behind the window if you could, this area back here is only for employees."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Boyrslen.lua b/shadowhaven/Defender_Boyrslen.lua new file mode 100644 index 0000000..3dbd9bd --- /dev/null +++ b/shadowhaven/Defender_Boyrslen.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, traveler. It's nice to have you with us in the Haven. Our city is a place of freedom and prosperity. Please respect all that we have accomplished when visiting and you will always be welcome."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Dalivayen.lua b/shadowhaven/Defender_Dalivayen.lua new file mode 100644 index 0000000..9c508e5 --- /dev/null +++ b/shadowhaven/Defender_Dalivayen.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Pleased to meet you, " .. e.other:GetCleanName() .. ". These stairs will take you to the training ground for new Shadowhaven Defenders recruits. Please be careful when in the training area, we wouldn't want to have any unfortunate accidents."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Deralian.lua b/shadowhaven/Defender_Deralian.lua new file mode 100644 index 0000000..33e3f10 --- /dev/null +++ b/shadowhaven/Defender_Deralian.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi there " .. e.other:GetCleanName() .. ", welcome to the Fordel Quarter. I hope you enjoy your stay with us. If I can be of any help please let me know."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Derlsin.lua b/shadowhaven/Defender_Derlsin.lua new file mode 100644 index 0000000..cd2079b --- /dev/null +++ b/shadowhaven/Defender_Derlsin.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". Beyond these doors is the Fordel Armory. It is here that the Fordel Defenders are outfitted with the necessary armor to complete the basic training necessary to guard Shadowhaven."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Dribsla.lua b/shadowhaven/Defender_Dribsla.lua new file mode 100644 index 0000000..9ff9279 --- /dev/null +++ b/shadowhaven/Defender_Dribsla.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi there. I'm a new recruit, so I sure hope I don't let Garon down. Trust me, you don't want to see him when he is angry."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Dutrolian.lua b/shadowhaven/Defender_Dutrolian.lua new file mode 100644 index 0000000..0b0c480 --- /dev/null +++ b/shadowhaven/Defender_Dutrolian.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey there " .. e.other:GetCleanName() .. ", if you are leaving the Haven to go trade in the Bazaar, I hope you have a wonderful and prosperous day! Make sure you come back and visit soon."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Eowlas.lua b/shadowhaven/Defender_Eowlas.lua new file mode 100644 index 0000000..036eab6 --- /dev/null +++ b/shadowhaven/Defender_Eowlas.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there. You're looking to make a deposit are you? Well then those guys over there are who you want to see. Bankers aren't usually as armed as I am, unless of course your payment is extremely late."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Eronlo.lua b/shadowhaven/Defender_Eronlo.lua new file mode 100644 index 0000000..3665d73 --- /dev/null +++ b/shadowhaven/Defender_Eronlo.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Lo dere, " .. e.other:GetCleanName() .. ". Da Shadowhaven can be a confusin place at times, but it can be quite easy to git around once ya know what quarter you are in. The city consists of four of these quarters being da Commons quarter which is here, along with the House of Stout, House of Fordel and House of Midst."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Erotans.lua b/shadowhaven/Defender_Erotans.lua new file mode 100644 index 0000000..5a730fc --- /dev/null +++ b/shadowhaven/Defender_Erotans.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Nice to meet you, " .. e.other:GetCleanName() .. ". I keep watch over Shadowhaven from up here to make sure all is well."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Faeloritar.lua b/shadowhaven/Defender_Faeloritar.lua new file mode 100644 index 0000000..829aaae --- /dev/null +++ b/shadowhaven/Defender_Faeloritar.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Knights Table " .. e.other:GetCleanName() .. ", I am Faeloritar and I watch the bar here. There have been some pretty rowdy brawls here in the past, so we always have a guard near by in case things get out of hand. It's not often that a fight breaks out here, but it sure is fun when one does."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Feorlso.lua b/shadowhaven/Defender_Feorlso.lua new file mode 100644 index 0000000..2b13dee --- /dev/null +++ b/shadowhaven/Defender_Feorlso.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings to you. If you are hear to conduct official business with the banker, please be patient as they are busy with the many merchants that visit them each day."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Filorou.lua b/shadowhaven/Defender_Filorou.lua new file mode 100644 index 0000000..c63f709 --- /dev/null +++ b/shadowhaven/Defender_Filorou.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". If you are just arriving in the city, I suggest that you go see the Trade Commissioner. Commissioner Henry is highly regarded in our city and is responsible for the continued success of the trade here."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Gerlinson.lua b/shadowhaven/Defender_Gerlinson.lua new file mode 100644 index 0000000..10e9990 --- /dev/null +++ b/shadowhaven/Defender_Gerlinson.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", and welcome to Shadowhaven. There is much that lies inside to be seen so I will not keep you waiting. Good luck to you."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Geslaon.lua b/shadowhaven/Defender_Geslaon.lua new file mode 100644 index 0000000..51c169f --- /dev/null +++ b/shadowhaven/Defender_Geslaon.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", if you are here to conduct bank business please step inside and the banker will be with you as soon as possible."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Helodonea.lua b/shadowhaven/Defender_Helodonea.lua new file mode 100644 index 0000000..b31a43c --- /dev/null +++ b/shadowhaven/Defender_Helodonea.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to House Fordel, " .. e.other:GetCleanName() .. ". It's great to meet you."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Jentlos.lua b/shadowhaven/Defender_Jentlos.lua new file mode 100644 index 0000000..64c187f --- /dev/null +++ b/shadowhaven/Defender_Jentlos.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi dere " .. e.other:GetCleanName() .. ", it sure is a big city we got here, so if ya get lost at any time make sure you ask somebuddy where to get where yer tryin to go!"); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Jerlen.lua b/shadowhaven/Defender_Jerlen.lua new file mode 100644 index 0000000..8013989 --- /dev/null +++ b/shadowhaven/Defender_Jerlen.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Doing my rounds can't ya see? Catch me later at the Knights Inn if you got something important to discuss."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Joklusarn.lua b/shadowhaven/Defender_Joklusarn.lua new file mode 100644 index 0000000..ad29aac --- /dev/null +++ b/shadowhaven/Defender_Joklusarn.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". The path beyond leads to the Midst Quarter. Please be VERY careful when walking across this bridge, as it is quite easy to take a tumble. I have seen many do just that and its not very pretty."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Jolusnan.lua b/shadowhaven/Defender_Jolusnan.lua new file mode 100644 index 0000000..1b8a75b --- /dev/null +++ b/shadowhaven/Defender_Jolusnan.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am in a great hurry and cannot be led astray from my patrolling duties. Good luck to you."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Kealren.lua b/shadowhaven/Defender_Kealren.lua new file mode 100644 index 0000000..896857b --- /dev/null +++ b/shadowhaven/Defender_Kealren.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi there stranger, it's nice to see a new face in the Haven. I'm currently on patrol, so please catch me another time."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Lenduros.lua b/shadowhaven/Defender_Lenduros.lua new file mode 100644 index 0000000..14d324f --- /dev/null +++ b/shadowhaven/Defender_Lenduros.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". If you're looking for a refreshing beverage, then step right inside. My friend Barloten runs quite a tavern inside with plenty of interesting patrons."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Leorn.lua b/shadowhaven/Defender_Leorn.lua new file mode 100644 index 0000000..5b91feb --- /dev/null +++ b/shadowhaven/Defender_Leorn.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Fordel Quarter " .. e.other:GetCleanName() .. ", If you are heading in further please watch your step. Some drunk came through and dropped a bottle right on the steps. We have someone already on the way to clean it up just wanted to make sure nobody stepped on it."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Naetel.lua b/shadowhaven/Defender_Naetel.lua new file mode 100644 index 0000000..5b19fea --- /dev/null +++ b/shadowhaven/Defender_Naetel.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings to you, " .. e.other:GetCleanName() .. ". I welcome you to the finest and most prosperous city in all of Luclin. Please enjoy your stay with us in the Shadowhaven."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Nalout.lua b/shadowhaven/Defender_Nalout.lua new file mode 100644 index 0000000..8824f08 --- /dev/null +++ b/shadowhaven/Defender_Nalout.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". Pleased to meet ya. I'd love to stay and chat, but then I wouldn't be keeping the city very safe while I'm talking to you would I?"); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Natelrns.lua b/shadowhaven/Defender_Natelrns.lua new file mode 100644 index 0000000..d9d27e4 --- /dev/null +++ b/shadowhaven/Defender_Natelrns.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", it is a pleasure to meet you. Behind me you will find the main gate of the Haven which is heavily guarded at all times. If you are leaving then I hope you have a wonderful day."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Olaof.lua b/shadowhaven/Defender_Olaof.lua new file mode 100644 index 0000000..a2351ee --- /dev/null +++ b/shadowhaven/Defender_Olaof.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, I am Olaof, I am an aspiring musician, you know. For now I am just a Defender, one of the many. It was nice to meet you and I hope you enjoy your stay."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Paegor.lua b/shadowhaven/Defender_Paegor.lua new file mode 100644 index 0000000..bbece70 --- /dev/null +++ b/shadowhaven/Defender_Paegor.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day to you " .. e.other:GetCleanName() .. ", I hope you are having a splendid time in the Shadowhaven. If you are in search of that special magical item that you just cant seem to find in any of our stores make sure you visit the Bazaar. Take care."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Polosnes.lua b/shadowhaven/Defender_Polosnes.lua new file mode 100644 index 0000000..1630a6a --- /dev/null +++ b/shadowhaven/Defender_Polosnes.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("How do you do " .. e.other:GetCleanName() .. ". Beyond these steps is the Fordel Quarter. Enjoy your stay with us."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Qualern.lua b/shadowhaven/Defender_Qualern.lua new file mode 100644 index 0000000..cd4ed7f --- /dev/null +++ b/shadowhaven/Defender_Qualern.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". Inside is our main training facilities of new defender recruits. If you wish to go inside please keep to yourself as there may be some training exercises going on."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Qulosna.lua b/shadowhaven/Defender_Qulosna.lua new file mode 100644 index 0000000..31b958e --- /dev/null +++ b/shadowhaven/Defender_Qulosna.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Fine day in the Haven, is it not " .. e.other:GetCleanName() .. "? I think this might be a nice time for a break at the tavern, if I don't say so myself."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Raldson.lua b/shadowhaven/Defender_Raldson.lua new file mode 100644 index 0000000..6ad4c37 --- /dev/null +++ b/shadowhaven/Defender_Raldson.lua @@ -0,0 +1,28 @@ +-- Daksins' Vampyre Antidote + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day to you " .. e.other:GetCleanName() .. ". A fine day it is today in the Haven. I hear the bazaar is full of great deals today. I'd love to go and check them out for myself unfortunately I'm stuck here worrying about my friend [Daksins]."); + elseif(e.message:findi("daksin")) then + e.self:Say("Well I know that he told me he was going to the Tenebrous Mountains to try to acquire the blood of one of the cursed vampyres there. A very brave gnome he is, but also sometimes not very aware of what he is getting himself into. He told me that he needed to bring it to Zimloro so that a potion could be made to cure his sick sister. She was attacked by one of the cursed not too long ago. Perhaps you could go [lend him a hand] so that he could return sooner. His family is very worried about him."); + elseif(e.message:findi("lend him a hand")) then + e.self:Say("That is very nice of you, " .. e.other:GetCleanName() .. ". I'm sure his family will be very grateful. He should not be there alone and we fear the worst for him. If you are to go search for him, please bring him this note from Zimloro that contains further instructions Please seek him out and do your best to convince him to come home."); + e.other:SummonCursorItem(4764); -- Item: A List of Potion Components + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Releiel.lua b/shadowhaven/Defender_Releiel.lua new file mode 100644 index 0000000..ae9ab81 --- /dev/null +++ b/shadowhaven/Defender_Releiel.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Pleased to meet you, " .. e.other:GetCleanName() .. ". I would love to chat but I am afraid I am currently on duty, should you have an urgent issue please see Daloran or Mistala Glimmerblade."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Rogalo.lua b/shadowhaven/Defender_Rogalo.lua new file mode 100644 index 0000000..5f9cd22 --- /dev/null +++ b/shadowhaven/Defender_Rogalo.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ", I hope you found everything that you were looking for in the commons. These steps will take you to the Fordel Quarter."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Salur.lua b/shadowhaven/Defender_Salur.lua new file mode 100644 index 0000000..e34775d --- /dev/null +++ b/shadowhaven/Defender_Salur.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", the path beyond leads to the bazaar as well as the commons area. If you are looking for a certain destination in particular please do not be afraid to ask."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Sintion.lua b/shadowhaven/Defender_Sintion.lua new file mode 100644 index 0000000..c0eaec9 --- /dev/null +++ b/shadowhaven/Defender_Sintion.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I welcome you to the Midst Quarter " .. e.other:GetCleanName() .. ", if there is anything that I can provide to aid you in your studies please let me know."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Taglorns.lua b/shadowhaven/Defender_Taglorns.lua new file mode 100644 index 0000000..65c0ed5 --- /dev/null +++ b/shadowhaven/Defender_Taglorns.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". Please form an orderly line and the banker will see you as soon as possible."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Tamalre.lua b/shadowhaven/Defender_Tamalre.lua new file mode 100644 index 0000000..a77ad47 --- /dev/null +++ b/shadowhaven/Defender_Tamalre.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", I am an archer of the Fordel. I represent the first line of defense shall the Haven ever be invaded."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Teerlals.lua b/shadowhaven/Defender_Teerlals.lua new file mode 100644 index 0000000..8c145ef --- /dev/null +++ b/shadowhaven/Defender_Teerlals.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". If you are here to register for trading in the Haven please step inside and speak with the Trade Commissioner for further details."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Walorns.lua b/shadowhaven/Defender_Walorns.lua new file mode 100644 index 0000000..7d8fbfb --- /dev/null +++ b/shadowhaven/Defender_Walorns.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". If you are here to see the Trade Commissioner please sheath your weapons and proceed inside."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Wemblen.lua b/shadowhaven/Defender_Wemblen.lua new file mode 100644 index 0000000..c02443a --- /dev/null +++ b/shadowhaven/Defender_Wemblen.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". No time for chitchat, I'm afraid. I have many house checks to do today."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Werolon.lua b/shadowhaven/Defender_Werolon.lua new file mode 100644 index 0000000..8094b89 --- /dev/null +++ b/shadowhaven/Defender_Werolon.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi there " .. e.other:GetCleanName() .. ", I'm debating whether or not to take a little break to check out the deals in the Bazaar. Do you think anyone will notice that I am gone? I do deserve a break ya know, I work pretty hard!"); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Yerlini.lua b/shadowhaven/Defender_Yerlini.lua new file mode 100644 index 0000000..47795dd --- /dev/null +++ b/shadowhaven/Defender_Yerlini.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi there. I am one of the finest archers in the Haven so they have me keep watch from up top."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Yoel.lua b/shadowhaven/Defender_Yoel.lua new file mode 100644 index 0000000..14fc8bb --- /dev/null +++ b/shadowhaven/Defender_Yoel.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, friend, and welcome to the Commons quarter of the Shadowhaven."); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Defender_Zaerel.lua b/shadowhaven/Defender_Zaerel.lua new file mode 100644 index 0000000..9859f45 --- /dev/null +++ b/shadowhaven/Defender_Zaerel.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", it is a pleasure to meet you. If you are an aspiring tradesman then the Bazaar is right up your alley! Just follow these steps here to enter the Bazaar and have a great time!"); + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("combatsay",300000); + else + eq.stop_timer("combatsay"); + end +end + +function event_timer(e) + e.self:Say("A fool you are indeed to test your fighting skills to mine! You shall now die by my blade!"); +end + +function event_death_complete(e) + eq.stop_timer("combatsay"); +end diff --git a/shadowhaven/Desaliar_Ter-Fediskian.lua b/shadowhaven/Desaliar_Ter-Fediskian.lua new file mode 100644 index 0000000..eca260a --- /dev/null +++ b/shadowhaven/Desaliar_Ter-Fediskian.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", I carry spells for those that study the magics of mind alteration."); + end +end diff --git a/shadowhaven/Dinoli_Fantalicus.lua b/shadowhaven/Dinoli_Fantalicus.lua new file mode 100644 index 0000000..1b7971c --- /dev/null +++ b/shadowhaven/Dinoli_Fantalicus.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Nice to see you, traveler! If it is a refreshing drink you are looking for then I got some stuff that will surely knock ya on your behind! Tis why they call me Mr. Fantalicus!"); + e.self:DoAnim(58); + end +end diff --git a/shadowhaven/Disciple_Chalong.lua b/shadowhaven/Disciple_Chalong.lua new file mode 100644 index 0000000..9623cf3 --- /dev/null +++ b/shadowhaven/Disciple_Chalong.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It's an honor to meet you, " .. e.other:GetCleanName() .. ". I welcome you to our sacred quarter."); + end +end diff --git a/shadowhaven/Disciple_Ferilisu.lua b/shadowhaven/Disciple_Ferilisu.lua new file mode 100644 index 0000000..09445b7 --- /dev/null +++ b/shadowhaven/Disciple_Ferilisu.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Pleased to meet you, " .. e.other:GetCleanName() .. ". The quarter of the Midst is one of peace and tranquility, stay as long as you like and learn about whatever you desire."); + end +end diff --git a/shadowhaven/Disciple_Keriuso.lua b/shadowhaven/Disciple_Keriuso.lua new file mode 100644 index 0000000..f5e139a --- /dev/null +++ b/shadowhaven/Disciple_Keriuso.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail to you, " .. e.other:GetCleanName() .. ". If you are curious about our history or the magics that we study, feel free to ask around. Most of the residents here are quite friendly."); + end +end diff --git a/shadowhaven/Disciple_Peighro.lua b/shadowhaven/Disciple_Peighro.lua new file mode 100644 index 0000000..8f0d56e --- /dev/null +++ b/shadowhaven/Disciple_Peighro.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". I am Peighro of House Midst. I have dedicated my life to serving as a guard here to ensure that our quarter will continue to be a place where anyone is welcome to come and find the power that lies within whatever magics they practice."); + end +end diff --git a/shadowhaven/Disciple_Taloerlen.lua b/shadowhaven/Disciple_Taloerlen.lua new file mode 100644 index 0000000..f78021e --- /dev/null +++ b/shadowhaven/Disciple_Taloerlen.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It's a pleasure to meet you " .. e.other:GetCleanName() .. ", I welcome you to the Midst. If you are interested in the origination of our great quarter please visit one of our many librarians. You may also be asking yourself what lies behind the door here that I guard. Well not too long ago there was a great evil that was trying to enter from the Netherbian lair into Shadowhaven. I cannot say for sure that we defeated it and that it will never return, but for now this door keeps us safe from it until the time comes again to unseal it."); + end +end diff --git a/shadowhaven/Driena_Whistleger.lua b/shadowhaven/Driena_Whistleger.lua new file mode 100644 index 0000000..a8b348e --- /dev/null +++ b/shadowhaven/Driena_Whistleger.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I'm not feeling too well, " .. e.other:GetCleanName() .. "..."); + end +end diff --git a/shadowhaven/Ealerel_Tidebringer.lua b/shadowhaven/Ealerel_Tidebringer.lua new file mode 100644 index 0000000..e5403d9 --- /dev/null +++ b/shadowhaven/Ealerel_Tidebringer.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, friend. I am Ealerel. If I can be of assistance please let me know, for now it's back to my studies."); + end +end diff --git a/shadowhaven/Easen.lua b/shadowhaven/Easen.lua new file mode 100644 index 0000000..88cd615 --- /dev/null +++ b/shadowhaven/Easen.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ye sure don't look like me wife " .. e.other:GetCleanName() .. ", now git outta here in case she comes back and gets da wrong idea!"); + end +end diff --git a/shadowhaven/Eastring_Fashing.lua b/shadowhaven/Eastring_Fashing.lua new file mode 100644 index 0000000..b476ab6 --- /dev/null +++ b/shadowhaven/Eastring_Fashing.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good travels, I am Eastring and over there is my good friend Rowl. If ye be looking for patterns or sewing kits, ye found 'em! I've the kits and Rowl the patterns."); + end +end diff --git a/shadowhaven/Eiles.lua b/shadowhaven/Eiles.lua new file mode 100644 index 0000000..61234f7 --- /dev/null +++ b/shadowhaven/Eiles.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("If you're planning on traveling through the Paludal Caverns, make sure you pick up a torch, " .. e.other:GetCleanName() .. ". Those caverns are quite confusing and you don't want to find yourself lost in the dark."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Engie_Farworth.lua b/shadowhaven/Engie_Farworth.lua new file mode 100644 index 0000000..4978539 --- /dev/null +++ b/shadowhaven/Engie_Farworth.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome, I sell only first-rate traveling packs- they are made from the finest leathers and skins available. If you're looking for something a bit more heavy duty, Bestive can help you out."); + end +end diff --git a/shadowhaven/Eriska_Malosona.lua b/shadowhaven/Eriska_Malosona.lua new file mode 100644 index 0000000..7118a82 --- /dev/null +++ b/shadowhaven/Eriska_Malosona.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Welcome to the Midst quarter, " .. e.other:GetCleanName() .. ". I carry an assortment of gems mostly used by those that trade in the crafting of jewels. If you should find something that catches your eye, please let me know."); + else + e.self:Say("I am sorry but I am only allowed to make dealings with persons that have found favor in the Midst quarter. Please see Lamukas to inquire about how to further strengthen your alliance with the people of the Midst."); + end + end +end diff --git a/shadowhaven/Eslof_Runsalark.lua b/shadowhaven/Eslof_Runsalark.lua new file mode 100644 index 0000000..fa02304 --- /dev/null +++ b/shadowhaven/Eslof_Runsalark.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Allo there! Thanks for stopping by. Today is a great day, we just managed to get my poor little brother here out of the rocks that he was stuck behind. We haven't had a chance to clear the cave in yet though. Wiggly lil dwarf, he squirmed his way right through that tiny little hole! Hah have another ale Lareso!"); + end +end diff --git a/shadowhaven/Eustace_Dakes.lua b/shadowhaven/Eustace_Dakes.lua new file mode 100644 index 0000000..2994ba9 --- /dev/null +++ b/shadowhaven/Eustace_Dakes.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Allo there " .. e.other:GetCleanName() .. ", welcome to the Black Kettle! May I offer you one of my homemade stews? And perhaps a fine ale to wash it down?"); + end +end diff --git a/shadowhaven/Falina_Silinilak.lua b/shadowhaven/Falina_Silinilak.lua new file mode 100644 index 0000000..f48117f --- /dev/null +++ b/shadowhaven/Falina_Silinilak.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, my friend! I have many new exciting bags in stock, make sure you pick one up that is to your liking."); + end +end diff --git a/shadowhaven/Fantoal_Geabaran.lua b/shadowhaven/Fantoal_Geabaran.lua new file mode 100644 index 0000000..5657397 --- /dev/null +++ b/shadowhaven/Fantoal_Geabaran.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". If you're the baking type, I've got some books that you may find useful."); + end +end diff --git a/shadowhaven/Feirus_Hollowbranch.lua b/shadowhaven/Feirus_Hollowbranch.lua new file mode 100644 index 0000000..620e07e --- /dev/null +++ b/shadowhaven/Feirus_Hollowbranch.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Pleasure to meet you, " .. e.other:GetCleanName() .. ". I carry druid scrolls for the youngest of protectors."); + end +end diff --git a/shadowhaven/Ferusal.lua b/shadowhaven/Ferusal.lua new file mode 100644 index 0000000..3ad587f --- /dev/null +++ b/shadowhaven/Ferusal.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Nice to meet you stranger, I have various books on the skill of tailoring. Feel free to take a look if you are interested."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Fitonas_Galaofon.lua b/shadowhaven/Fitonas_Galaofon.lua new file mode 100644 index 0000000..acf8a66 --- /dev/null +++ b/shadowhaven/Fitonas_Galaofon.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hi there " .. e.other:GetCleanName() .. ", I run a simple shop here in the Midst. My wares consist mostly of items that will aid you in your everyday journeys. Good luck to you."); + else + e.self:Say("I am sorry but I am only allowed to make dealings with persons that have found favor in the Midst quarter. Please see Lamukas to inquire about how to further strengthen your alliance with the people of the Midst."); + end + end +end diff --git a/shadowhaven/Fordel_Keeper_Faloensar.lua b/shadowhaven/Fordel_Keeper_Faloensar.lua new file mode 100644 index 0000000..3b4c6f7 --- /dev/null +++ b/shadowhaven/Fordel_Keeper_Faloensar.lua @@ -0,0 +1,15 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Pleasant as always Verte. So what can I do for you today?"); + elseif (e.signal == 2) then + e.self:Say("Ah I see, very well then here is your receipt. Good luck with the cleanup and keep those Dwarves in line!"); + elseif (e.signal == 3) then + e.self:Say("Ok see you later Verte!"); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". How can I help you today?"); + end +end diff --git a/shadowhaven/Fordel_Keeper_Teridat.lua b/shadowhaven/Fordel_Keeper_Teridat.lua new file mode 100644 index 0000000..fd78137 --- /dev/null +++ b/shadowhaven/Fordel_Keeper_Teridat.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi there, please let me know how I can assist with your transaction today."); + end +end diff --git a/shadowhaven/Frewin_Strongpaw.lua b/shadowhaven/Frewin_Strongpaw.lua new file mode 100644 index 0000000..9cb36bc --- /dev/null +++ b/shadowhaven/Frewin_Strongpaw.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am currently quite busy with my studies " .. e.other:GetCleanName() .. ", however, if you need any of my scrolls, just let me know."); + end +end diff --git a/shadowhaven/Galoran_Precon.lua b/shadowhaven/Galoran_Precon.lua new file mode 100644 index 0000000..2b7a690 --- /dev/null +++ b/shadowhaven/Galoran_Precon.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to our blacksmithing establishment, " .. e.other:GetCleanName() .. ". I have a few assorted tool molds should you need them. If you're searching for other supplies, please ask some of my fellow workers."); + end +end diff --git a/shadowhaven/Galorano_Daldirick.lua b/shadowhaven/Galorano_Daldirick.lua new file mode 100644 index 0000000..ecc6e00 --- /dev/null +++ b/shadowhaven/Galorano_Daldirick.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello! I am Galorano Daldirick, Paladin of Marr. I have some scrolls that you might find useful if you are also a servant of light."); + end +end diff --git a/shadowhaven/Galornas_Eaksilwobble.lua b/shadowhaven/Galornas_Eaksilwobble.lua new file mode 100644 index 0000000..2f5e4bb --- /dev/null +++ b/shadowhaven/Galornas_Eaksilwobble.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hi there friend, I carry all kinds of ales and spirits that you may find to your liking. A little word of advice though, when enjoying drinks in the Midst, try to not draw too much attention to yourself- many here think drinking is silly because it impairs ones ability to practice magic."); + else + e.self:Say("My apologies traveler but I am not permitted to trade with persons not registered with Shadowhaven. Please see Trade Commissioner Henry near the front gate for further details."); + end + end +end diff --git a/shadowhaven/Garn_Allonode.lua b/shadowhaven/Garn_Allonode.lua new file mode 100644 index 0000000..0cebd63 --- /dev/null +++ b/shadowhaven/Garn_Allonode.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Nice to meet you, " .. e.other:GetCleanName() .. ". I carry many supplies that a student of jewel craft would find very handy."); + end +end diff --git a/shadowhaven/Garon_Battlehand.lua b/shadowhaven/Garon_Battlehand.lua new file mode 100644 index 0000000..268c870 --- /dev/null +++ b/shadowhaven/Garon_Battlehand.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ". I am responsible for all of the newly recruited Defenders of the Haven. I make sure that our soldiers are trained well and ready for any conflict that may present itself. All of those that pass though my training exercises are sure to be the best of the best."); + end +end diff --git a/shadowhaven/Gelson.lua b/shadowhaven/Gelson.lua new file mode 100644 index 0000000..e6603cf --- /dev/null +++ b/shadowhaven/Gelson.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, friend. If you ever consider trying to pick up tailoring, I have a lot of information that you might find interesting- take a look."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/General_Dalinastalarix.lua b/shadowhaven/General_Dalinastalarix.lua new file mode 100644 index 0000000..5aea297 --- /dev/null +++ b/shadowhaven/General_Dalinastalarix.lua @@ -0,0 +1,31 @@ +function event_waypoint_arrive(e) + if (e.wp == 5) then + e.self:Say("Hey there Ronlotar! Mighty fine selection of footwear ya got here. How goes the business?"); + eq.signal(150269,1); -- NPC: Ronlotar_Stumpshade + elseif (e.wp == 6) then + e.self:Say("Ah of course I can see what ya mean, well im sure it will get better keep up the good work! I have been saving up some money im hoping to pick up a new pair of boots soon, keep me in mind for a discount!"); + eq.signal(150269,2); -- NPC: Ronlotar_Stumpshade + elseif (e.wp == 10) then + e.self:Say("Afternoon Lookout Gereol, everything is going good on this post as far as I can see."); + eq.signal(150049,5); -- NPC: Lookout_Gereol + elseif (e.wp == 17) then + e.self:Say("Fall in Lookout! Whats that yer squintin at son, I can see ya strainin to see what lies right in front of you. Is this true?"); + eq.signal(150036, 5); -- NPC: Lookout_Valobolo + elseif (e.wp == 18) then + e.self:Say("All right then Lookout, wipe that blank look of yer face and back to your watch."); + elseif (e.wp == 22) then + e.self:Say("Afternoon Lookouts. I hope everything is in order here and the two of you arent yelpin at each other like usual. Here in the Short and Stout quarter we need to be focused on our task as Lookouts and not spendin time gripin at each other!"); + eq.signal(150034,5); -- NPC: Lookout_Falatalix + eq.signal(150040,5); -- NPC: Lookout_Reloen + elseif (e.wp == 31) then + e.self:Say("Hail Lookouts! Great job youre both doing here, nobody else id rather have at the front line then my two finest Uhingil and Yereil. You both make me proud and make my mob a whole lot easier, Keep it up!"); + eq.signal(150021,5); -- NPC: Lookout_Yereil + eq.signal(150043,5); -- NPC: Lookout_Uhingil + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oi there " .. e.other:GetCleanName() .. "! Not causing any trouble are ya? Well that's good to hear. Allow me to introduce myself. I am Head Guardsman Dalinastalarix the VI . I take pride in my position and care for my guardsmen the best I can. Well enough out me, enjoy your stay will ya? Perhaps we will share an ale or two over stories of battle."); + end +end diff --git a/shadowhaven/Goesl_Sealsonich.lua b/shadowhaven/Goesl_Sealsonich.lua new file mode 100644 index 0000000..1dd818c --- /dev/null +++ b/shadowhaven/Goesl_Sealsonich.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. I keep spells for those that deal in only the most powerful magics of teleportation and translocation."); + end +end diff --git a/shadowhaven/Grandmaster_Haloriki.lua b/shadowhaven/Grandmaster_Haloriki.lua new file mode 100644 index 0000000..e3c46a3 --- /dev/null +++ b/shadowhaven/Grandmaster_Haloriki.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Grandmaster Haloriki of House Midst. I am the resident guildmaster of this quarter in charge of training all new recruits that wish to serve the Midst."); + end +end diff --git a/shadowhaven/Granger_Kenforth.lua b/shadowhaven/Granger_Kenforth.lua new file mode 100644 index 0000000..ce8e076 --- /dev/null +++ b/shadowhaven/Granger_Kenforth.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Take a look at this stuff I've got here. In case you haven't noticed, it's the same stuff you find in any other general store. Exciting isn't it?! Maybe some day I'll sell something a bit more interesting!"); + end +end diff --git a/shadowhaven/Grimthor.lua b/shadowhaven/Grimthor.lua new file mode 100644 index 0000000..3055a15 --- /dev/null +++ b/shadowhaven/Grimthor.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi there " .. e.other:GetCleanName() .. ", my name is Grimthor and this here is my distillery. My little bar sure has come a long way since the beginning. If you would like to have a drink please help yourself. Woolf has a nice selection along with some information about any spirit you may choose."); + end +end diff --git a/shadowhaven/Guardsman_Dales.lua b/shadowhaven/Guardsman_Dales.lua new file mode 100644 index 0000000..8e41d12 --- /dev/null +++ b/shadowhaven/Guardsman_Dales.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", I am Guardsman Dales of House Fordel. I am personally responsible for the well being of the Trade Commissioner, an important duty as he is such an important person to Shadowhaven."); + end +end diff --git a/shadowhaven/Guardsman_Joroli.lua b/shadowhaven/Guardsman_Joroli.lua new file mode 100644 index 0000000..47dd817 --- /dev/null +++ b/shadowhaven/Guardsman_Joroli.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". The Mother has been quite sick lately, so out of respect for her and for the house, I hope that you will kindly leave her to rest. Should you have an urgent matter that needs to be brought to the attention of House Fordel, please see Daloran or Mistala."); + end +end diff --git a/shadowhaven/Hamon.lua b/shadowhaven/Hamon.lua new file mode 100644 index 0000000..92c66af --- /dev/null +++ b/shadowhaven/Hamon.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Nice to meet you there, " .. e.other:GetCleanName() .. ". I've had a lil' too much to drink, so I would stay clear of the balcony if I was you. Ugh."); + end +end diff --git a/shadowhaven/Hardam_Stonegrinder.lua b/shadowhaven/Hardam_Stonegrinder.lua new file mode 100644 index 0000000..094b65b --- /dev/null +++ b/shadowhaven/Hardam_Stonegrinder.lua @@ -0,0 +1,28 @@ +-- Hardam's Goods + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("In need of some ores or other mining supplies? Well step right up, I got everything ye could possibly need! Also I'll have more supplies coming in as soon as I can get some dern time to deliver my [payment] to the commissioner."); + elseif(e.message:findi("payment")) then + e.self:Say("Well ya see mate I have a representative of me great mining business here that is currently in the bazaar, however I got some new things I need him to sell but I can't leave me shop! I just need to get these new [items] to him so that he can sell them."); + elseif(e.message:findi("item")) then + e.self:Say("Well da usual items ya know. I gets a lot of different goods in here every day and it is important that I move em out as fast as possible when they worth more ya knows? If ye lewkin for a [task] I've heard about ye around town and ye seem to be a trustworthy person."); + elseif(e.message:findi("task")) then + e.self:Say("I'm simply lookin for someone to take me box of [goods] here to my friend in the bazaar, his name is Faeroi and he will know what to do with them."); + elseif(e.message:findi("good")) then + e.self:Say("I thank ya for your willingness to help, " .. e.other:GetCleanName() .. ". Here is the box of the different things I need taken to Faeroi. When I spoke to him before he left for the bazaar this morning he told me that the helm that I had been having customized was ready. I have enclosed a note for him to give that to you to return to me. I look forward to seeing you soon."); + e.other:SummonCursorItem(4757); -- Hardams Box of Goods + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5986}, 0)) then -- Hardams Custom Helm + e.self:Say("Ah, what a pleasant surprise indeed it seems my Helm is done! Many thanks for all your help once again " .. e.other:GetCleanName() .. ", and safe travels to you."); + e.other:Faction(e.self,1512,5); -- House of Stout + e.other:Faction(e.self,1508,1); -- Traders of the Haven + e.other:QuestReward(e.self,0,0,0,0,0,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadowhaven/Healian_Saroelitan.lua b/shadowhaven/Healian_Saroelitan.lua new file mode 100644 index 0000000..df2acda --- /dev/null +++ b/shadowhaven/Healian_Saroelitan.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ", and welcome to our magical section of Shadowhaven. I carry an assortment of wares, but mostly just basic supplies."); + else + e.self:Say("I am sorry but I am only allowed to make dealings with persons that have found favor in the Midst quarter. Please see Lamukas to inquire about how to further strengthen your alliance with the people of the Midst."); + end + end +end diff --git a/shadowhaven/Hejsua_Skalkon.lua b/shadowhaven/Hejsua_Skalkon.lua new file mode 100644 index 0000000..3776df7 --- /dev/null +++ b/shadowhaven/Hejsua_Skalkon.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ". I carry spells for those that follow the ways of the Beastlord. Should you need any of these scrolls, please let me know."); + end +end diff --git a/shadowhaven/Henriala_Hobialon.lua b/shadowhaven/Henriala_Hobialon.lua new file mode 100644 index 0000000..3a92321 --- /dev/null +++ b/shadowhaven/Henriala_Hobialon.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi there " .. e.other:GetCleanName() .. ", if you are just arriving in Shadowhaven, then I'm sure you are low on supplies! Make sure you pick some more up here before you go adventuring again."); + end +end diff --git a/shadowhaven/Hereia_Gealsina.lua b/shadowhaven/Hereia_Gealsina.lua new file mode 100644 index 0000000..72647aa --- /dev/null +++ b/shadowhaven/Hereia_Gealsina.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", I am afraid this tent is reserved for long time traders of the Haven. If you would like a place to sell your wares, try the Bazaar."); + end +end diff --git a/shadowhaven/Herol_Beaufodal.lua b/shadowhaven/Herol_Beaufodal.lua new file mode 100644 index 0000000..38e6df7 --- /dev/null +++ b/shadowhaven/Herol_Beaufodal.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". I have spell scrolls for only the most experienced Spiritweavers."); + end +end diff --git a/shadowhaven/Hintol_Balkortak.lua b/shadowhaven/Hintol_Balkortak.lua new file mode 100644 index 0000000..7066376 --- /dev/null +++ b/shadowhaven/Hintol_Balkortak.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It's nice to see you lad , please take a look and let me know if there's anything ye like. Dere's plenty of gud fishing supplies I got ere."); + end +end diff --git a/shadowhaven/Hobolor_Peltskinner.lua b/shadowhaven/Hobolor_Peltskinner.lua new file mode 100644 index 0000000..a3556b6 --- /dev/null +++ b/shadowhaven/Hobolor_Peltskinner.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Allo there stranger! Taking up the fine trade of tailoring are ye? Well then you came to the right place! I got all kinds of supplies that you need to get started."); + end +end diff --git a/shadowhaven/Horiel_Gaeslania.lua b/shadowhaven/Horiel_Gaeslania.lua new file mode 100644 index 0000000..da47c33 --- /dev/null +++ b/shadowhaven/Horiel_Gaeslania.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hi there, " .. e.other:GetCleanName() .. "! Welcome to my little shop, take your time browsing around and let me know if there is something that you can use."); + else + e.self:Say("I am sorry but I am only allowed to make dealings with persons that have found favor in the Midst quarter. Please see Lamukas to inquire about how to further strengthen your alliance with the people of the Midst."); + end + end +end diff --git a/shadowhaven/Horsal_Bittrosas.lua b/shadowhaven/Horsal_Bittrosas.lua new file mode 100644 index 0000000..916f035 --- /dev/null +++ b/shadowhaven/Horsal_Bittrosas.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. Students progressing along a Shamanistic path will find some of my scrolls valuable."); + end +end diff --git a/shadowhaven/House_Watch_Dunvel.lua b/shadowhaven/House_Watch_Dunvel.lua new file mode 100644 index 0000000..95589a9 --- /dev/null +++ b/shadowhaven/House_Watch_Dunvel.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the House of Fordel. Please be respectful of those you meet inside, for they are the descendants of Shadowhaven's founders."); + end +end diff --git a/shadowhaven/Incantator_Brials.lua b/shadowhaven/Incantator_Brials.lua new file mode 100644 index 0000000..64a10eb --- /dev/null +++ b/shadowhaven/Incantator_Brials.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi there " .. e.other:GetCleanName() .. ". It is nice to meet you however I must continue my patrol, enjoy your study with us."); + end +end diff --git a/shadowhaven/Incantator_Firefall.lua b/shadowhaven/Incantator_Firefall.lua new file mode 100644 index 0000000..f55b009 --- /dev/null +++ b/shadowhaven/Incantator_Firefall.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ", and welcome to the Midst Quarter. Please keep in mind that this quarter is one of intense study- although we do not mind visitors with good intentions, there is much work being done."); + end +end diff --git a/shadowhaven/Incantator_Icewand.lua b/shadowhaven/Incantator_Icewand.lua new file mode 100644 index 0000000..df581c5 --- /dev/null +++ b/shadowhaven/Incantator_Icewand.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". You are headed towards the library of the Midst a place of great power for it has been said many times that knowledge is power. Here you will find information on almost all practices of magic, I encourage you to stay as long as you like."); + end +end diff --git a/shadowhaven/Incantator_Lizerian.lua b/shadowhaven/Incantator_Lizerian.lua new file mode 100644 index 0000000..f69881c --- /dev/null +++ b/shadowhaven/Incantator_Lizerian.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to House Midst " .. e.other:GetCleanName() .. ". Make sure you see all of the magnificent architecture that our quarter has to offer."); + end +end diff --git a/shadowhaven/Incantator_Palaser.lua b/shadowhaven/Incantator_Palaser.lua new file mode 100644 index 0000000..547c931 --- /dev/null +++ b/shadowhaven/Incantator_Palaser.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met my friend, I am Palaser. Please let me know if I can be of any assistance."); + end +end diff --git a/shadowhaven/Incantator_Saderloa.lua b/shadowhaven/Incantator_Saderloa.lua new file mode 100644 index 0000000..0c8686a --- /dev/null +++ b/shadowhaven/Incantator_Saderloa.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It's an honor to meet you, " .. e.other:GetCleanName() .. ". If your powers lie within the practice of the arcane arts then you will surely find sanctuary in our Quarter."); + end +end diff --git a/shadowhaven/Incantator_Salien.lua b/shadowhaven/Incantator_Salien.lua new file mode 100644 index 0000000..9283b81 --- /dev/null +++ b/shadowhaven/Incantator_Salien.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", I have heard of your dedication to the Midst and I must say that it is a pleasure to meet you."); + end +end diff --git a/shadowhaven/Incantator_Stevak.lua b/shadowhaven/Incantator_Stevak.lua new file mode 100644 index 0000000..caa2307 --- /dev/null +++ b/shadowhaven/Incantator_Stevak.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Midst quarter " .. e.other:GetCleanName() .. ". Should you encounter any shady fellows around here make sure you let someone know."); + end +end diff --git a/shadowhaven/Incantator_Verloir.lua b/shadowhaven/Incantator_Verloir.lua new file mode 100644 index 0000000..991a2ed --- /dev/null +++ b/shadowhaven/Incantator_Verloir.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". If it is knowledge and wisdom that you seek, then look no further. I hope you enjoy your time while you are with us."); + end +end diff --git a/shadowhaven/Innkeep_Restoration.lua b/shadowhaven/Innkeep_Restoration.lua new file mode 100644 index 0000000..b0cb6f9 --- /dev/null +++ b/shadowhaven/Innkeep_Restoration.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", welcome to my inn. If you are interested in a room I am afraid they are all accounted for at the moment, but I would advise you to check back later to see if there are any vacancies."); + else + e.self:Say(eq.ChooseRandom("Oh look, a talking lump of refuse. How novel!","I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/shadowhaven/Innkeep_Zara.lua b/shadowhaven/Innkeep_Zara.lua new file mode 100644 index 0000000..1cafecd --- /dev/null +++ b/shadowhaven/Innkeep_Zara.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to my inn, " .. e.other:GetCleanName() .. ". You will find our rooms very simple, but comfortable. If you are interested in the double bed, there is no extra charge."); + end +end diff --git a/shadowhaven/Innkeeper_Morland.lua b/shadowhaven/Innkeeper_Morland.lua new file mode 100644 index 0000000..6cc42e6 --- /dev/null +++ b/shadowhaven/Innkeeper_Morland.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there and welcome to Shadelings! I'm the head Innkeeper here and I will be attending to any needs or concerns you might have while staying with us. So if something is on your mind please do not hesitate to ask!"); + end +end diff --git a/shadowhaven/Izibat.lua b/shadowhaven/Izibat.lua new file mode 100644 index 0000000..17a21b3 --- /dev/null +++ b/shadowhaven/Izibat.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. "! Welcome to Izibat's wondrous robes! I have many magnificent wares in stock, but don't delay, supplies are going fast!"); + else + e.self:Say("I am sorry but I am only allowed to make dealings with persons that have found favor in the Midst quarter. Please see Lamukas to inquire about how to further strengthen your alliance with the people of the Midst."); + end + end +end diff --git a/shadowhaven/Jales_Gaelshorad.lua b/shadowhaven/Jales_Gaelshorad.lua new file mode 100644 index 0000000..120757f --- /dev/null +++ b/shadowhaven/Jales_Gaelshorad.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I carry spell scrolls for younger Shamans. Should you know anyone in need of my teachings please send them to see me."); + end +end diff --git a/shadowhaven/Jiovfer_Precon.lua b/shadowhaven/Jiovfer_Precon.lua new file mode 100644 index 0000000..0998fe6 --- /dev/null +++ b/shadowhaven/Jiovfer_Precon.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Lookin' for the certain buckler or dagger but don't trust it store bought? Well then I got the molds for you to make that item straight from scratch. My counterparts here got the books explaining how to do it, too! Just ask around, and thanks for visiting!"); + end +end diff --git a/shadowhaven/Jostan_Karsnic.lua b/shadowhaven/Jostan_Karsnic.lua new file mode 100644 index 0000000..4295f41 --- /dev/null +++ b/shadowhaven/Jostan_Karsnic.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, stranger. My little pub here is I guess what most would call a little hole in the wall. I'll tell ya what though, you did good coming to visit today 'cause I got some of the finest haven-brewed ales right on tap."); + end +end diff --git a/shadowhaven/Junun_Rawkins.lua b/shadowhaven/Junun_Rawkins.lua new file mode 100644 index 0000000..b6442a5 --- /dev/null +++ b/shadowhaven/Junun_Rawkins.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Trading Post. While I don't have much to offer right now, I hope adventurers like you will bring me your spoils so that I may offer the best prices around."); + end +end diff --git a/shadowhaven/Kardon.lua b/shadowhaven/Kardon.lua new file mode 100644 index 0000000..adeae6d --- /dev/null +++ b/shadowhaven/Kardon.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey there " .. e.other:GetCleanName() .. ", I am currently waiting for my teacher to arrive so that I can begin my training. It was nice to meet you."); + end +end diff --git a/shadowhaven/Keeper_Geologo.lua b/shadowhaven/Keeper_Geologo.lua new file mode 100644 index 0000000..4de8b6f --- /dev/null +++ b/shadowhaven/Keeper_Geologo.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi dere, " .. e.other:GetCleanName() .. ". Got some bankin' business ya need to conduct eh? Well step right up!"); + end +end diff --git a/shadowhaven/Keeper_Raldilikis.lua b/shadowhaven/Keeper_Raldilikis.lua new file mode 100644 index 0000000..58e603e --- /dev/null +++ b/shadowhaven/Keeper_Raldilikis.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Need to empty dat coin purse eh? Well theres no one you can trust more than Raldilikis!"); + end +end diff --git a/shadowhaven/Kelly_Blackhand.lua b/shadowhaven/Kelly_Blackhand.lua new file mode 100644 index 0000000..e42c471 --- /dev/null +++ b/shadowhaven/Kelly_Blackhand.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hello, and welcome to our shop! If there is something you should need for any of your smithing needs, you've come to the right place!"); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Kenral_Siroisl.lua b/shadowhaven/Kenral_Siroisl.lua new file mode 100644 index 0000000..4907779 --- /dev/null +++ b/shadowhaven/Kenral_Siroisl.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". If you are one that calls upon the elements, then you might find these spell scrolls useful."); + end +end diff --git a/shadowhaven/Kolburn_Inglewort.lua b/shadowhaven/Kolburn_Inglewort.lua new file mode 100644 index 0000000..ac43e14 --- /dev/null +++ b/shadowhaven/Kolburn_Inglewort.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi there " .. e.other:GetCleanName() .. ", I have all kinds of different potions and magical stones you might find a use for. Please take a look around and let me know what you would like. Thanks for visiting us."); + end +end diff --git a/shadowhaven/Krizle_Geerlok.lua b/shadowhaven/Krizle_Geerlok.lua new file mode 100644 index 0000000..cda6b88 --- /dev/null +++ b/shadowhaven/Krizle_Geerlok.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there. I must say that you have caught me in a state of exhaustion! After the long trek here from Katta I had to wait a long time to finish my permits with the Trade Commissioner. It wasn't the greatest system, but I guess that is how they do things around here. I was sent by Zyleea to sell our wares here in Shadowhaven. Business was always good in Katta but she felt more could be earned here. So for now I will relax and have a drink. I can show you what I have brought with me if you like, don't be too long though drinks waiting on me!"); + end +end diff --git a/shadowhaven/Kytley.lua b/shadowhaven/Kytley.lua new file mode 100644 index 0000000..0022e23 --- /dev/null +++ b/shadowhaven/Kytley.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Rockhoppers been giving ya a little too much of a beating out there, " .. e.other:GetCleanName() .. "? Well, I can understand- after all, not everyone can be as tough as me. Perhaps this armor will be to your liking. It's not all that much to some, but who wants to be all bogged down in heavy armor while in a battle?"); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Lamukas_Kaesoanls.lua b/shadowhaven/Lamukas_Kaesoanls.lua new file mode 100644 index 0000000..27d5850 --- /dev/null +++ b/shadowhaven/Lamukas_Kaesoanls.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ", and welcome to the House of Midst. I am House Ambassador Lamukas Kaesoanls. I am a direct descendant of Gidins Kaesoanls, one of the original magicians responsible for opening the portal to the wondrous and magical world of Luclin. If you are interested in assisting the House of Midst please visit Beriol or Palomidiar in the library."); + end +end diff --git a/shadowhaven/Lander_Furthers.lua b/shadowhaven/Lander_Furthers.lua new file mode 100644 index 0000000..a63db21 --- /dev/null +++ b/shadowhaven/Lander_Furthers.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". If you are an aspiring brewer, I have just the tools for the trade. Take a look!"); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Lareso_Runsalark.lua b/shadowhaven/Lareso_Runsalark.lua new file mode 100644 index 0000000..d055dd8 --- /dev/null +++ b/shadowhaven/Lareso_Runsalark.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks upon you with a face covered with soot, 'Lo there! As my brother will tell you today is indeed a grand day! I was stuck behind that rubble in the Nexus for quite some time. I imagine that I am hungry from the whole ordeal. More importantly though, I am thirsty! Waitress! Another ale over here please!"); + end +end diff --git a/shadowhaven/Lemsen_Frostherb.lua b/shadowhaven/Lemsen_Frostherb.lua new file mode 100644 index 0000000..d6b3f4b --- /dev/null +++ b/shadowhaven/Lemsen_Frostherb.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi there, " .. e.other:GetCleanName() .. ". If you are in need of any Alchemy supplies, please have a look at my goods."); + end +end diff --git a/shadowhaven/Lewena.lua b/shadowhaven/Lewena.lua new file mode 100644 index 0000000..2d5bd3b --- /dev/null +++ b/shadowhaven/Lewena.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi there " .. e.other:GetCleanName() .. ". Care to buy me a drink? If you buy me my favorite I will tell you a secret."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 15763}, 0)) then + e.self:Emote("gazes at you in complete astonishment. 'How. . . Where. . . The recipe for this drink has long been lost. I've known only one person who was able to craft this fabulous drink with any accuracy. It was a dwarf by the name of . . . Let me see here. Baldin. . . Bruldor. . . Bognip. . . Oh dear, my memory is quite bad when it comes to names. I haven't seen him in ages, I hope the poor dwarf is alright.' Lewena fidgets about for a few seconds, then pulls out a worn piece of parchment. 'My dwarven friend gave this to me, though he told me to keep it a secret. As promised, I will live up to my end of the bargain.' she says, as she hands you the brittle piece of parchment."); + e.other:QuestReward(e.self,0,0,0,0,15766,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadowhaven/Loensa_Esorlinal.lua b/shadowhaven/Loensa_Esorlinal.lua new file mode 100644 index 0000000..bf576d2 --- /dev/null +++ b/shadowhaven/Loensa_Esorlinal.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Welcome to the Midst quarter, " .. e.other:GetCleanName() .. ". If you are a spellcaster of the younger ranks, perhaps you will find worth in something that I have for sale."); + else + e.self:Say("I am sorry but I am only allowed to make dealings with persons that have found favor in the Midst quarter. Please see Lamukas to inquire about how to further strengthen your alliance with the people of the Midst."); + end + end +end diff --git a/shadowhaven/Loewnsaz_Waldalon.lua b/shadowhaven/Loewnsaz_Waldalon.lua new file mode 100644 index 0000000..cb92d3e --- /dev/null +++ b/shadowhaven/Loewnsaz_Waldalon.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I welcome you to the Midst Quarter. If there is anything that I can provide to aid you in your studies please let me know."); + else + e.self:Say(eq.ChooseRandom("Oh look, a talking lump of refuse. How novel!","I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/shadowhaven/Lolara.lua b/shadowhaven/Lolara.lua new file mode 100644 index 0000000..a2dc260 --- /dev/null +++ b/shadowhaven/Lolara.lua @@ -0,0 +1,13 @@ +function event_waypoint_arrive(e) + if (e.wp == 3) then + e.self:Say("What the ..? Hey! Get up Halorak, you slug! Now I'm going to have to clean ale off my bed and who knows where you have been!"); + elseif (e.wp == 12) then + e.self:Say("Hey Jaldar, I need your help. That good-for-nothing drunkard Halorak passed out in my room and I need you to 'escort' him out."); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". If you happen to see Halorak, let me know."); + end +end diff --git a/shadowhaven/Lookout_Belorop.lua b/shadowhaven/Lookout_Belorop.lua new file mode 100644 index 0000000..f614433 --- /dev/null +++ b/shadowhaven/Lookout_Belorop.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi there " .. e.other:GetCleanName() .. ". Enjoying your stay? Great! It's nice to have some new faces around these parts."); + end +end diff --git a/shadowhaven/Lookout_Bolombo.lua b/shadowhaven/Lookout_Bolombo.lua new file mode 100644 index 0000000..764e70b --- /dev/null +++ b/shadowhaven/Lookout_Bolombo.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Pleased to meet you, " .. e.other:GetCleanName() .. ". It is an honor to see you in our fantastic city. The passage behind me leads to the Short and Stout Quarter. I hope you enjoy your stay!"); + end +end diff --git a/shadowhaven/Lookout_Delron.lua b/shadowhaven/Lookout_Delron.lua new file mode 100644 index 0000000..159e50f --- /dev/null +++ b/shadowhaven/Lookout_Delron.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Lo ho Bumblebro! It's great to meet ye, " .. e.other:GetCleanName() .. "! Behind me leads to the finest quarter in the Shadowhaven. The Short and Stout Quarter, of course! Aye!"); + end +end diff --git a/shadowhaven/Lookout_Eloralon.lua b/shadowhaven/Lookout_Eloralon.lua new file mode 100644 index 0000000..271182f --- /dev/null +++ b/shadowhaven/Lookout_Eloralon.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetins dere, " .. e.other:GetCleanName() .. ". I be in charge of watching da bank to make sure nutin fishy is going on. If'n ye see any funny business round ere, you be sure and give me a holler. Ayup!"); + end +end diff --git a/shadowhaven/Lookout_Falatalix.lua b/shadowhaven/Lookout_Falatalix.lua new file mode 100644 index 0000000..30ded8b --- /dev/null +++ b/shadowhaven/Lookout_Falatalix.lua @@ -0,0 +1,9 @@ +function event_signal(e) + e.self:Say("Not a problem sir."); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey there " .. e.other:GetCleanName() .. ". Don't listen to my brother Reloen, he's just out to make a quick buck."); + end +end diff --git a/shadowhaven/Lookout_Gereol.lua b/shadowhaven/Lookout_Gereol.lua new file mode 100644 index 0000000..9f509cd --- /dev/null +++ b/shadowhaven/Lookout_Gereol.lua @@ -0,0 +1,9 @@ +function event_signal(e) + e.self:Say("All is going great sir, I will be sure to report any disturbances shall they present themselves."); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ". Do you smell that? Man I sure am hungry and it smells like ol Joe is cooking up some fine steaks. Mmm, I sure hope I can leave soon and get some food."); + end +end diff --git a/shadowhaven/Lookout_Girols.lua b/shadowhaven/Lookout_Girols.lua new file mode 100644 index 0000000..a65b391 --- /dev/null +++ b/shadowhaven/Lookout_Girols.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. "! I hope you are enjoying your stay. There are many nice things in the stores here I sure hope you stay long enough to see them all!"); + end +end diff --git a/shadowhaven/Lookout_Nelorin.lua b/shadowhaven/Lookout_Nelorin.lua new file mode 100644 index 0000000..0eb4c12 --- /dev/null +++ b/shadowhaven/Lookout_Nelorin.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day to you " .. e.other:GetCleanName() .. "! It's nice to see that you are here in our quarter. You are safe here, so there is no need to worry."); + end +end diff --git a/shadowhaven/Lookout_Reloen.lua b/shadowhaven/Lookout_Reloen.lua new file mode 100644 index 0000000..68219e8 --- /dev/null +++ b/shadowhaven/Lookout_Reloen.lua @@ -0,0 +1,9 @@ +function event_signal(e) + e.self:Say("Aye sir."); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What's that in your pockets there, " .. e.other:GetCleanName() .. "? You wouldn't be carrying any unauthorized goods, would ya? Let me have a look in your coin purse to make sure it's all legal tender! Ah, ok, looks good to me."); + end +end diff --git a/shadowhaven/Lookout_Sereon.lua b/shadowhaven/Lookout_Sereon.lua new file mode 100644 index 0000000..a50217c --- /dev/null +++ b/shadowhaven/Lookout_Sereon.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. "! Now just where do you think you're going! All you could possibly need is right this way in the Short and Stout Quarter! If you are heading that way does that mean you are leaving?"); + end +end diff --git a/shadowhaven/Lookout_Tageonia.lua b/shadowhaven/Lookout_Tageonia.lua new file mode 100644 index 0000000..422e041 --- /dev/null +++ b/shadowhaven/Lookout_Tageonia.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Nice to see you " .. e.other:GetCleanName() .. "! If you are a smith perhaps you should check out what Hardam has to offer."); + end +end diff --git a/shadowhaven/Lookout_Tiblo.lua b/shadowhaven/Lookout_Tiblo.lua new file mode 100644 index 0000000..37d8b57 --- /dev/null +++ b/shadowhaven/Lookout_Tiblo.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetins to ye, " .. e.other:GetCleanName() .. ". If ye can, avoid the two crazy gnomes on the other side of this pass we guard. All they do is bicker at each other, herts me ears sometimes. Ah well, have a great stay! Har!"); + end +end diff --git a/shadowhaven/Lookout_Uhingil.lua b/shadowhaven/Lookout_Uhingil.lua new file mode 100644 index 0000000..d65ce03 --- /dev/null +++ b/shadowhaven/Lookout_Uhingil.lua @@ -0,0 +1,9 @@ +function event_signal(e) + e.self:Say("Thank ye General, it's an honor to be part of such a great brigade."); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Pleased to meet you, " .. e.other:GetCleanName() .. ". Enjoy your stay with us."); + end +end diff --git a/shadowhaven/Lookout_Valobolo.lua b/shadowhaven/Lookout_Valobolo.lua new file mode 100644 index 0000000..895224b --- /dev/null +++ b/shadowhaven/Lookout_Valobolo.lua @@ -0,0 +1,10 @@ +function event_signal(e) + e.self:Say("Oi there General! No im not squintin in the least just was testing my eyes on somethin. Im in tip top shape 100 percent!"); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Allo " .. e.other:GetCleanName() .. ", you sure are a tall one! If you're gonna stand there make sure ya don't for too long cause I can't see very well. I wish I had my spectacles."); + end +end + diff --git a/shadowhaven/Lookout_Yereil.lua b/shadowhaven/Lookout_Yereil.lua new file mode 100644 index 0000000..72f9e72 --- /dev/null +++ b/shadowhaven/Lookout_Yereil.lua @@ -0,0 +1,9 @@ +function event_signal(e) + e.self:Say("Thank ya General, I do me best to protect our fine citizens."); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hold it right there! You have any unauthorized goods that you are carrying that I should know about? Well ya seem to look all right. Move along!"); + end +end diff --git a/shadowhaven/Lynesia_Eroaaf.lua b/shadowhaven/Lynesia_Eroaaf.lua new file mode 100644 index 0000000..44729b3 --- /dev/null +++ b/shadowhaven/Lynesia_Eroaaf.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Pleased to meet you, " .. e.other:GetCleanName() .. ". Welcome to our shop. Please let me know if there is anything you are searching for that we do not carry."); + end +end diff --git a/shadowhaven/Mandark_Soulhealer.lua b/shadowhaven/Mandark_Soulhealer.lua new file mode 100644 index 0000000..7be4767 --- /dev/null +++ b/shadowhaven/Mandark_Soulhealer.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", it is nice to see some new faces in the Shadowhaven. I serve the House of Fordel with my wife Sesamin. If there is something I can help you with please let me know."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/shadowhaven/Marchap_Biddinight.lua b/shadowhaven/Marchap_Biddinight.lua new file mode 100644 index 0000000..d334608 --- /dev/null +++ b/shadowhaven/Marchap_Biddinight.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("If you're looking for the finest tinkering supplies, then ol Marchap has got what ya need! Just take a look around and let me know how I can help! Oi!"); + end +end diff --git a/shadowhaven/Mark_Blotter.lua b/shadowhaven/Mark_Blotter.lua new file mode 100644 index 0000000..ccad1a1 --- /dev/null +++ b/shadowhaven/Mark_Blotter.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, friend! Feel free to browse my selection of scrolls and scroll accessories but be careful when handling them, some of them are quite old and the parchment has seen better days."); + elseif(e.message:findi("golden seal tube")) then + e.self:Say("Ah hah! You are in luck. I just received a sealed golden scroll tube the other day that I think you will find quite acceptable. It seems to be quite old and the craftsmanship is superb! I will part with it for no less than one-thousand gold pieces."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {gold = 1000}, 0)) then + e.self:Say("Here it is, I am sure you will be very satisfied with this purchase!"); + e.other:QuestReward(e.self,0,0,0,0,10671); -- Sealed Golden Scroll Tube + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadowhaven/Meribeth.lua b/shadowhaven/Meribeth.lua new file mode 100644 index 0000000..b634432 --- /dev/null +++ b/shadowhaven/Meribeth.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Need some padding to cushion those blows, " .. e.other:GetCleanName() .. "? I have some armor that I just got in that may be to your liking. Have a look!"); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Milasar_Husnalsn.lua b/shadowhaven/Milasar_Husnalsn.lua new file mode 100644 index 0000000..e243afc --- /dev/null +++ b/shadowhaven/Milasar_Husnalsn.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Nice to meet you " .. e.other:GetCleanName() .. ", don't mind me I've had a lot to drink."); + end +end diff --git a/shadowhaven/Mistala_Glimmerblade.lua b/shadowhaven/Mistala_Glimmerblade.lua new file mode 100644 index 0000000..4fa5fe2 --- /dev/null +++ b/shadowhaven/Mistala_Glimmerblade.lua @@ -0,0 +1,25 @@ +-- Mistala's Report + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. "! I am Lady Mistala Glimmerblade of the House of Fordel. I preside over this great city of Shadowhaven along with my husband Daloran. I take great pride in knowing that our city has come so far and become a place of free trade and freedom for all of its inhabitants. We also are lucky to have some of the finest guardspersons in the land. Which reminds me, I need to collect my [report]."); + elseif(e.message:findi("report")) then + e.self:Say("I have a report that I collect every few days from my first Lieutenant Broansas. This report contains information about each guard, his performance, and usually suggestions upon how to limit the number of smugglers passing through our town. However, Lieutenant Broansas is currently on assignment investigating a smugglers ring. I need someone to retrieve his reports of the latest information that he gathered for me. Will you [retrieve the daily reports]?"); + elseif(e.message:findi("retrieve.* daily")) then + e.self:Say("Many thanks, " .. e.other:GetCleanName() .. ". The last I heard from Broansas he was heading for the Dawnshroud peaks. Please seek him out there and present him with this notarized letter so that he will know that I sent you. Return to me with his report as soon as you can. I await your return."); + e.other:SummonCursorItem(4760); -- Item: A Notorized Letter + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4761}, 0)) then + e.self:Say("It's nice to see that Broansas is doing well. I would not have been able to retrieve this information without your assistance, " .. e.other:GetCleanName() .. ". I thank you for your help and will be sure to tell the council members of your good deeds. I often need reports retrieved so please check back if you would like to help to the House of Fordel."); + e.other:Faction(e.self,1510,30); -- house of fordel + e.other:Faction(e.self,1509,30); -- haven defenders + e.other:Faction(e.self,1508,3); -- traders of the haven + e.other:QuestReward(e.self,0,0,0,0,0,2500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadowhaven/Mother_Ilisial_Fordel.lua b/shadowhaven/Mother_Ilisial_Fordel.lua new file mode 100644 index 0000000..23bf2b7 --- /dev/null +++ b/shadowhaven/Mother_Ilisial_Fordel.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I usually do not have many visitors to my room. I have been sick lately so I have not been as active as I would like to be but I hope that should change soon. It also gives me great comfort to know that the House is in good hands under Daloran and Mistala."); + end +end diff --git a/shadowhaven/Narmase_Flecher.lua b/shadowhaven/Narmase_Flecher.lua new file mode 100644 index 0000000..51188e3 --- /dev/null +++ b/shadowhaven/Narmase_Flecher.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi there. I have the supplies you will need if you are an aspiring Bowyer. Have a look."); + end +end diff --git a/shadowhaven/Narsam.lua b/shadowhaven/Narsam.lua new file mode 100644 index 0000000..ba872cf --- /dev/null +++ b/shadowhaven/Narsam.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", and welcome to our general store. I sell some of the finest weapons that used to be only crafted for the Fordel soldiers, however now you can have one for your very own. For a price, of course."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Nelm_the_Tiny.lua b/shadowhaven/Nelm_the_Tiny.lua new file mode 100644 index 0000000..3cf319f --- /dev/null +++ b/shadowhaven/Nelm_the_Tiny.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi there, " .. e.other:GetCleanName() .. ". I sell leather armor of the finest quality but only if you're a big an hefty one like me!"); + end +end diff --git a/shadowhaven/Nevetra_Utagse.lua b/shadowhaven/Nevetra_Utagse.lua new file mode 100644 index 0000000..bfd7b77 --- /dev/null +++ b/shadowhaven/Nevetra_Utagse.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("How's it going " .. e.other:GetCleanName() .. ", just watering my plants. How can I help?"); + end +end diff --git a/shadowhaven/Nicoela.lua b/shadowhaven/Nicoela.lua new file mode 100644 index 0000000..8c83d29 --- /dev/null +++ b/shadowhaven/Nicoela.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Welcome, " .. e.other:GetCleanName() .. "! If you need to use anything I have in my shop, such as the mixing bowl here or the loom, please make yourself at home."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Nieson_Loterboras.lua b/shadowhaven/Nieson_Loterboras.lua new file mode 100644 index 0000000..799fb67 --- /dev/null +++ b/shadowhaven/Nieson_Loterboras.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("No thank you " .. e.other:GetCleanName() .. ", I have enough pillows for the time being. If I should need anything throughout my stay I will call for you."); + end +end diff --git a/shadowhaven/Nolram_Gorlsan.lua b/shadowhaven/Nolram_Gorlsan.lua new file mode 100644 index 0000000..d58cdce --- /dev/null +++ b/shadowhaven/Nolram_Gorlsan.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey there " .. e.other:GetCleanName() .. ", how about you get lost!"); + end +end diff --git a/shadowhaven/Nubert.lua b/shadowhaven/Nubert.lua new file mode 100644 index 0000000..2c8cd5a --- /dev/null +++ b/shadowhaven/Nubert.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Huh? Ah, who's there? Don't you know it's impolite to break into someone's house while they are sleeping? If it's that important then come back later, will ya?"); + end +end diff --git a/shadowhaven/Oxon_Essencebinder.lua b/shadowhaven/Oxon_Essencebinder.lua new file mode 100644 index 0000000..9452dc7 --- /dev/null +++ b/shadowhaven/Oxon_Essencebinder.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, stranger. If you're in need of any given pottery sketch then you came to the right place."); + end +end diff --git a/shadowhaven/Palomidiar_Allakhaji.lua b/shadowhaven/Palomidiar_Allakhaji.lua new file mode 100644 index 0000000..9a13cc4 --- /dev/null +++ b/shadowhaven/Palomidiar_Allakhaji.lua @@ -0,0 +1,27 @@ +-- The Pulsating Rock + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day to you adventurer. Is there something I can assist you with? I have been quite busy as of late with the study of this [mysterious glowing rock] I was presented with and I do not have much time for small talk."); + elseif(e.message:findi("mysterious glowing rock")) then + e.self:Say("Well if you look closely, I have it right here. It has been glowing since I first received it. But since it was delivered to me it has lost a lot of its aura. I feel I will need another sample soon, it seems to lose its [energy] as time goes on."); + elseif(e.message:findi("energy")) then + e.self:Say("This I do not know and I am trying to discover. However, as I said before, this rock is slowly losing its energy it seems. I will need another [sample rock] soon."); + elseif(e.message:findi("sample rock")) then + e.self:Say("I believe these rocks are from the Paludal Caverns, if my sources were correct. Beetles that crawl over and feed off the rock structures there might explain the glowing, if they are the origins of these mysterious rocks. To further my studies I will need another pulsating rock. Will you [retrieve this rock] for me?"); + elseif(e.message:findi("retrieve this rock")) then + e.self:Say("Fantastic " .. e.other:GetCleanName() .. ". Please return to me at once with a pulsating rock. We will conclude our dealings at that time."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4768}, 0)) then + e.self:Say("This is it, this is what I am looking for to continue my studies. It is generating the same if not more energy then the rock before it! Excellent work, " .. e.other:GetCleanName() .. ". You have my sincere thanks. Should you collect further samples in the future please bring them to me directly."); + e.other:Faction(e.self,1511,25); -- house of midst + e.other:Faction(e.self,1508,2); -- traders of the haven + e.other:QuestReward(e.self,0,0,0,0,0,2500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadowhaven/Patriarch_Lardalon.lua b/shadowhaven/Patriarch_Lardalon.lua new file mode 100644 index 0000000..435ab04 --- /dev/null +++ b/shadowhaven/Patriarch_Lardalon.lua @@ -0,0 +1,12 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It is a pleasure to meet you, " .. e.other:GetCleanName() .. ". I am the residing High Priest of the House of Stout. Many have come to seek my guidance for I have seen many a foe in my fighting days. If you are interested in [lending a hand] to the House of Stout, I may have some tasks for you to complete"); + elseif(e.message:findi("lending a hand")) then + e.self:Say("Aye, its good to hear that! We need all the help we can get with all the dern [smugglers]."); + elseif(e.message:findi("smuggler")) then + e.self:Say("Well the smugglers are a threat to all that we have accomplished here they steal stolen goods and turn around to sell them and undercut all the merchants of our quarter. There is not much we can do about them now but in time I may need your help. For the time being however, if you wish to assist us there are other [tasks] which I need to be completed."); + elseif(e.message:findi("task")) then + e.self:Say("I believe we have some letters and supplies that need a trustworthy courier to see that they reach their destination. With the problems of smuggling we are having lately we have had a shortage of honest folks outside of the Haven. Please see Coglixar for further information and inform him that you wish to assist."); + end +end + diff --git a/shadowhaven/Patrolman_Blickorot.lua b/shadowhaven/Patrolman_Blickorot.lua new file mode 100644 index 0000000..35f3868 --- /dev/null +++ b/shadowhaven/Patrolman_Blickorot.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to House Stout " .. e.other:GetCleanName() .. "!"); + end +end diff --git a/shadowhaven/Patrolman_Walopalo.lua b/shadowhaven/Patrolman_Walopalo.lua new file mode 100644 index 0000000..bfb4241 --- /dev/null +++ b/shadowhaven/Patrolman_Walopalo.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Can't ya see I'm on my patrols " .. e.other:GetCleanName() .. "! I can't be caught jawjackin or I will get in big trouble!"); + end +end diff --git a/shadowhaven/Peacekeeper_Dasoel.lua b/shadowhaven/Peacekeeper_Dasoel.lua new file mode 100644 index 0000000..c7570d9 --- /dev/null +++ b/shadowhaven/Peacekeeper_Dasoel.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks at you sternly and nods as he continues his watch."); + e.self:DoAnim(48); + end +end diff --git a/shadowhaven/Peacekeeper_Deralokor.lua b/shadowhaven/Peacekeeper_Deralokor.lua new file mode 100644 index 0000000..c7570d9 --- /dev/null +++ b/shadowhaven/Peacekeeper_Deralokor.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks at you sternly and nods as he continues his watch."); + e.self:DoAnim(48); + end +end diff --git a/shadowhaven/Peacekeeper_Sarolorn.lua b/shadowhaven/Peacekeeper_Sarolorn.lua new file mode 100644 index 0000000..c7570d9 --- /dev/null +++ b/shadowhaven/Peacekeeper_Sarolorn.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks at you sternly and nods as he continues his watch."); + e.self:DoAnim(48); + end +end diff --git a/shadowhaven/Peacekeeper_Sildalos.lua b/shadowhaven/Peacekeeper_Sildalos.lua new file mode 100644 index 0000000..c7570d9 --- /dev/null +++ b/shadowhaven/Peacekeeper_Sildalos.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks at you sternly and nods as he continues his watch."); + e.self:DoAnim(48); + end +end diff --git a/shadowhaven/Peqi_Biato.lua b/shadowhaven/Peqi_Biato.lua new file mode 100644 index 0000000..ac34e31 --- /dev/null +++ b/shadowhaven/Peqi_Biato.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What are you doing in here? Get out, no one invited you here, leave me be! Come back again and I'll call the guards. Go!"); + elseif(e.message:findi("exodus")) then + e.self:Say("I have books, I have lots of books, books about the Exodus and all kinds of things but they're mine, you hear me? Mine! You'll get that book over my dead body, now get out! Out, I say!"); + end +end diff --git a/shadowhaven/Piersal_Whistleger.lua b/shadowhaven/Piersal_Whistleger.lua new file mode 100644 index 0000000..be4cbcf --- /dev/null +++ b/shadowhaven/Piersal_Whistleger.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi " .. e.other:GetCleanName() .. ". My mom is sick and I don't know how I can make her feel better. I sure wish I could."); + end +end diff --git a/shadowhaven/Pietro_Guiccini.lua b/shadowhaven/Pietro_Guiccini.lua new file mode 100644 index 0000000..29299f7 --- /dev/null +++ b/shadowhaven/Pietro_Guiccini.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings! Have you ever seen my portraits? I am an artisan and collector of portraitures. If you are looking for a portrait, have one to sell, or wish to commission a piece of art I will be happy to take a look."); + elseif(e.message:findi("portrait")) then + e.self:Say("I recently purchased a splendid antique portrait of a gorgeous lady that you may be interested in. It is a tad bit faded but a hauntingly beautiful and captivating piece none the less. I would be willing to part with it for 1000 gold pieces."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {gold = 1000}, 0)) then -- no xp when turning in 1x gold + e.self:Say("Here you are, you have made a marvelous purchase. I see that you have excellent taste."); + e.other:QuestReward(e.self,0,0,0,0,10676); -- Faded Portrait of a Lady + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadowhaven/Pilop_Stolarix.lua b/shadowhaven/Pilop_Stolarix.lua new file mode 100644 index 0000000..8391c35 --- /dev/null +++ b/shadowhaven/Pilop_Stolarix.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Allo there " .. e.other:GetCleanName() .. ". Take a look at these fantastic contraptions I have for sale!"); + end +end diff --git a/shadowhaven/Plow_Jumpinwolf.lua b/shadowhaven/Plow_Jumpinwolf.lua new file mode 100644 index 0000000..03449fe --- /dev/null +++ b/shadowhaven/Plow_Jumpinwolf.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day to you. I am Plow Jumpinwolf. If you are a Druid in need of training please inform me of what guidance you seek and we will get right to work!"); + end +end diff --git a/shadowhaven/Podslan_Xasiani.lua b/shadowhaven/Podslan_Xasiani.lua new file mode 100644 index 0000000..ff019d0 --- /dev/null +++ b/shadowhaven/Podslan_Xasiani.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("How do you do " .. e.other:GetCleanName() .. ", up for a game of horseshoes? If so check back with me in a bit, I have some errands to run first."); + end +end diff --git a/shadowhaven/Polson_Medicinal.lua b/shadowhaven/Polson_Medicinal.lua new file mode 100644 index 0000000..ca5e642 --- /dev/null +++ b/shadowhaven/Polson_Medicinal.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there. If you are an upcoming alchemist perhaps you could make use of some of my fine herbs."); + end +end diff --git a/shadowhaven/Praeon_Wyldefire.lua b/shadowhaven/Praeon_Wyldefire.lua new file mode 100644 index 0000000..37a6c9f --- /dev/null +++ b/shadowhaven/Praeon_Wyldefire.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". It's nice to meet you. I am one of the watchguards here that guard the guildmeeting hall."); + end +end diff --git a/shadowhaven/Priest_Jarson.lua b/shadowhaven/Priest_Jarson.lua new file mode 100644 index 0000000..5dd5c08 --- /dev/null +++ b/shadowhaven/Priest_Jarson.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". I am Priest Jarson, I serve this house and offer my teachings to any willing to learn."); + else + e.self:Say(eq.ChooseRandom("Oh look, a talking lump of refuse. How novel!","I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/shadowhaven/Priestess_Farinthorn.lua b/shadowhaven/Priestess_Farinthorn.lua new file mode 100644 index 0000000..b0880d3 --- /dev/null +++ b/shadowhaven/Priestess_Farinthorn.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hi there, " .. e.other:GetCleanName() .. "! I am Priestess Farinthorn, loyal paladin of House Fordel. It's nice to see visitors to our somewhat quiet town- all the excitement has the economy booming like never before!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/shadowhaven/Ralshalod.lua b/shadowhaven/Ralshalod.lua new file mode 100644 index 0000000..079957e --- /dev/null +++ b/shadowhaven/Ralshalod.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Haven " .. e.other:GetCleanName() .. ", I don't believe I've met you before. My name is Ralshalod and I run this little tavern here. Let me know if there is anything I can help you with."); + end +end diff --git a/shadowhaven/Record_Keeper_Ajar.lua b/shadowhaven/Record_Keeper_Ajar.lua new file mode 100644 index 0000000..47326ab --- /dev/null +++ b/shadowhaven/Record_Keeper_Ajar.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:Race() .. "! I'm afraid I am quite busy with all the transactions that occur and shipments that come and go from the city but if you have an official request form for some information from our library of records I will gladly assist you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31753}, 0)) then + e.self:Say("So you were sent by the Magistrates of Katta Castellum I see. It isn't very often we get requests for records as old as these. 'Ajar shuffles through several books on a cluttered shelf and a few minutes later procures the records and begins writing down the requested information.' Here are the names that have been requested by Magistrate Dionicas. You can assure him when you deliver this record that it is quite accurate."); + e.other:QuestReward(e.self,0,0,0,0,18352,10000); -- Old Merchant Records + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadowhaven/Rianna_Birchard.lua b/shadowhaven/Rianna_Birchard.lua new file mode 100644 index 0000000..0a9473d --- /dev/null +++ b/shadowhaven/Rianna_Birchard.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("turns to you and smiles brightly, 'Hello, " .. e.other:GetCleanName() .. ". Lots of work to be done- books to shelve, lessons to learn... I know it sounds a bit ridiculous, but I feel so at home here."); + elseif(e.message:findi("exodus")) then + e.self:Say("Wow, what an interesting subject- almost impossible to gather hard evidence on, even for me. It seems that everyone was so taken off guard by the sudden change of scenery that no one bothered to keep any written record of the time. First they had to figure out where they were and once they did there was so much disagreement as to what they should be doing- try to get home, stay where they were and settle in or put some distance between them and Seru should he and his people try to follow, which, of course they did. All this lead to the formations of three of the four major cities here on Luclin, all with... oh listen to me go on, sorry. We have only one book on the subject, but Peqi borrowed it just the other day."); + elseif(e.message:findi("peqi")) then + e.self:Emote("frowns a bit for the first time this conversation, 'Peqi... Let me tell you, I like just about everyone but if that little gnome never found his way back to this library I wouldn't be too disappointed."); + end +end diff --git a/shadowhaven/Rifkin.lua b/shadowhaven/Rifkin.lua new file mode 100644 index 0000000..9842522 --- /dev/null +++ b/shadowhaven/Rifkin.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("glowers at you dubiously as though wondering what it is your tombstone might say."); + elseif(e.message:findi("marais")) then + e.self:Emote("'s head snaps in your direction, 'Do you have my ring? No? Then quit your yammering!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29849}, 0)) then -- Promise Ring + e.self:Say("Aye, this is it, did you kill her? Well anyway, here, I really didn't want this anymore- I was hoping some fool would give me something of value for it. Thanks."); + e.other:QuestReward(e.self,0,0,0,0,29850); -- Rifkin's Diary - sealed + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadowhaven/River_Mudhands.lua b/shadowhaven/River_Mudhands.lua new file mode 100644 index 0000000..3519c3c --- /dev/null +++ b/shadowhaven/River_Mudhands.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Pleased to meet you, " .. e.other:GetCleanName() .. ". Welcome to the Tent O` Plenty! If you should need some pottery sketches for the wheel over there then look no further!"); + else + e.self:Say("You seem like a nice enough stranger but I am afraid all newcomers must see the Patriarch first before we are able to offer our great deals to them."); + end + end +end diff --git a/shadowhaven/Robbolo_Balashil.lua b/shadowhaven/Robbolo_Balashil.lua new file mode 100644 index 0000000..1ef66b0 --- /dev/null +++ b/shadowhaven/Robbolo_Balashil.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("That trusty weapon ya always been dependin on just not so dependable anymore? Well take a look at my weapons and get yourself a shiny one fit for a king!"); + end +end diff --git a/shadowhaven/Robert_Blackhand.lua b/shadowhaven/Robert_Blackhand.lua new file mode 100644 index 0000000..0d2d37c --- /dev/null +++ b/shadowhaven/Robert_Blackhand.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. " and welcome to Blackhands. Please let me know if there is anything I can help you with."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Ronlotar_Stumpshade.lua b/shadowhaven/Ronlotar_Stumpshade.lua new file mode 100644 index 0000000..4849634 --- /dev/null +++ b/shadowhaven/Ronlotar_Stumpshade.lua @@ -0,0 +1,17 @@ +function event_signal(e) + if(e.signal == 1 ) then + e.self:Say("Oh hi there General! Ah can't complain me gots a lot of new customers coming to the shop as of late, but not all of them are rightsizers, ya know? So I tend to lose some sales simply because those big folks come in ere and I just simply don't make shoes dat big!"); + elseif(e.signal == 2) then + e.self:Say("Will do General, see you soon. Good luck with your rounds."); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I makes da boots. Aye."); + else + e.self:Say("You seem like a nice enough stranger but I am afraid all newcomers must see the Patriarch first before we are able to offer our great deals to them."); + end + end +end diff --git a/shadowhaven/Rowl_Tanner.lua b/shadowhaven/Rowl_Tanner.lua new file mode 100644 index 0000000..56bf4aa --- /dev/null +++ b/shadowhaven/Rowl_Tanner.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to our shop, " .. e.other:GetCleanName() .. ". Here you will find everything you need to make your own leather armor."); + end +end diff --git a/shadowhaven/Rusty_Blackhand.lua b/shadowhaven/Rusty_Blackhand.lua new file mode 100644 index 0000000..55beade --- /dev/null +++ b/shadowhaven/Rusty_Blackhand.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Welcome to our smithing shop " .. e.other:GetCleanName() .. ", please have a look and let me know if there is a certain mold or tin that you seek. I might have it laying around here somewhere, you never know."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Sahrona_Sorisnali.lua b/shadowhaven/Sahrona_Sorisnali.lua new file mode 100644 index 0000000..a19d0ed --- /dev/null +++ b/shadowhaven/Sahrona_Sorisnali.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Good day to you my friend and thank you for visiting my shop! Should you be interested in taking up the ancient study of runes and research I have just the books that you will need. Have a look."); + else + e.self:Say("I am sorry but I am only allowed to make dealings with persons that have found favor in the Midst quarter. Please see Lamukas to inquire about how to further strengthen your alliance with the people of the Midst."); + end + end +end diff --git a/shadowhaven/Samotal_Sedmians.lua b/shadowhaven/Samotal_Sedmians.lua new file mode 100644 index 0000000..ded8009 --- /dev/null +++ b/shadowhaven/Samotal_Sedmians.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". I welcome you to the hallowed halls of the Midst Quarter. I provide food for many of the residents here so please have a look if you are hungry."); + else + e.self:Say("I am sorry but I am only allowed to make dealings with persons that have found favor in the Midst quarter. Please see Lamukas to inquire about how to further strengthen your alliance with the people of the Midst."); + end + end +end diff --git a/shadowhaven/Sanderson.lua b/shadowhaven/Sanderson.lua new file mode 100644 index 0000000..8838af4 --- /dev/null +++ b/shadowhaven/Sanderson.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("A bard in training, am I right " .. e.other:GetCleanName() .. "? If so I have just the instruments for you. Hand made them myself!"); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Sarith_Clawnik.lua b/shadowhaven/Sarith_Clawnik.lua new file mode 100644 index 0000000..52db1b8 --- /dev/null +++ b/shadowhaven/Sarith_Clawnik.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings adventurer, I am Sarith Clawnik. If you are a student of the Beastlord ways I believe I can help you learn the skills that may be the difference between victory and defeat."); + end +end diff --git a/shadowhaven/Sarlos_Windwalker.lua b/shadowhaven/Sarlos_Windwalker.lua new file mode 100644 index 0000000..30364dd --- /dev/null +++ b/shadowhaven/Sarlos_Windwalker.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, my friend. I carry spell scrolls that can be scribed by only the finest pathfinders."); + end +end diff --git a/shadowhaven/Sarron.lua b/shadowhaven/Sarron.lua new file mode 100644 index 0000000..82754af --- /dev/null +++ b/shadowhaven/Sarron.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings to you there, " .. e.other:GetCleanName() .. ". Don't mind me. I'm just trying to figure out where on this wall I'm going to set up the dart board. If you're ever in the area again in the future check back and we'll play a game."); + end +end diff --git a/shadowhaven/Sedaitam_Cournsian.lua b/shadowhaven/Sedaitam_Cournsian.lua new file mode 100644 index 0000000..e851162 --- /dev/null +++ b/shadowhaven/Sedaitam_Cournsian.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hi there " .. e.other:GetCleanName() .. ", I'm a new merchant here so you will have to pardon my somewhat bland list of wares. I expect to have many more items in soon, so please check back with me from time to time."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/shadowhaven/Sesamin_Soulhealer.lua b/shadowhaven/Sesamin_Soulhealer.lua new file mode 100644 index 0000000..7529d1a --- /dev/null +++ b/shadowhaven/Sesamin_Soulhealer.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", I am Sesamin Soulhealer of House Fordel. I am one of the many resident guildmasters. If you or a friend are in search of guidance please do not hesitate to ask."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/shadowhaven/Sinasi_Daleioa.lua b/shadowhaven/Sinasi_Daleioa.lua new file mode 100644 index 0000000..c91a439 --- /dev/null +++ b/shadowhaven/Sinasi_Daleioa.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Tee hee"); + end +end diff --git a/shadowhaven/Sir_Jarsonic.lua b/shadowhaven/Sir_Jarsonic.lua new file mode 100644 index 0000000..faa463a --- /dev/null +++ b/shadowhaven/Sir_Jarsonic.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I don't think I should drink anymore."); + end +end diff --git a/shadowhaven/Skalopar.lua b/shadowhaven/Skalopar.lua new file mode 100644 index 0000000..1c167ae --- /dev/null +++ b/shadowhaven/Skalopar.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", grab an ale and take a seat if you can find one."); + end +end diff --git a/shadowhaven/Skiliar_Hardbrick.lua b/shadowhaven/Skiliar_Hardbrick.lua new file mode 100644 index 0000000..ac562dc --- /dev/null +++ b/shadowhaven/Skiliar_Hardbrick.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Lo there " .. e.other:GetCleanName() .. ", you will have to excuse me I'm usually not in this bad of a mood, but my boy has to learn some discipline one way or another. He thinks he's stronger than he is and wanders off by himself in dangerous lands all da time."); + end +end diff --git a/shadowhaven/Slosean.lua b/shadowhaven/Slosean.lua new file mode 100644 index 0000000..6bb2ee9 --- /dev/null +++ b/shadowhaven/Slosean.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Have you seen my short ale?"); + end +end diff --git a/shadowhaven/Smithy_Edcar.lua b/shadowhaven/Smithy_Edcar.lua new file mode 100644 index 0000000..d30b3b0 --- /dev/null +++ b/shadowhaven/Smithy_Edcar.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Pleased to meet you, " .. e.other:GetCleanName() .. ". Although I am not an official Blackhand, I am a longtime family friend. I work here to ensure that the shop runs smoothly. If you should need anything, I'm sure one of us is bound to have it."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Smithy_Firehand.lua b/shadowhaven/Smithy_Firehand.lua new file mode 100644 index 0000000..6040fdc --- /dev/null +++ b/shadowhaven/Smithy_Firehand.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What we have here is a fine selection of clay and ore. This should be enough to get you started on anything basic, more advanced stuff will have to found on your own."); + end +end diff --git a/shadowhaven/Sneathe.lua b/shadowhaven/Sneathe.lua new file mode 100644 index 0000000..96e7ade --- /dev/null +++ b/shadowhaven/Sneathe.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("It's nice to see a friendly face in Shadowhaven. Please take a look at what I have and let me know if there is anything you would like."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Sol.lua b/shadowhaven/Sol.lua new file mode 100644 index 0000000..76ac15c --- /dev/null +++ b/shadowhaven/Sol.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("takes a huge swig of his ale and burps right in your face."); + end +end diff --git a/shadowhaven/Soulbinder_Nansin.lua b/shadowhaven/Soulbinder_Nansin.lua new file mode 100644 index 0000000..80c75f8 --- /dev/null +++ b/shadowhaven/Soulbinder_Nansin.lua @@ -0,0 +1,15 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID(),0,1); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadowhaven/Sroj_Arrowsmith.lua b/shadowhaven/Sroj_Arrowsmith.lua new file mode 100644 index 0000000..76659a3 --- /dev/null +++ b/shadowhaven/Sroj_Arrowsmith.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail to you as well, friend. I have many arrow supplies in stock currently. Please let me know how I can be of assistance."); + end +end diff --git a/shadowhaven/Steaon_Alarenier.lua b/shadowhaven/Steaon_Alarenier.lua new file mode 100644 index 0000000..57fbe1e --- /dev/null +++ b/shadowhaven/Steaon_Alarenier.lua @@ -0,0 +1,28 @@ +-- Steaon's Deliveries + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". You will have to excuse me because I am quite busy with my work and trying to sort out my [deliveries]. However, please help yourself to anything in my store that may be to your liking."); + elseif(e.message:findi("deliver")) then + e.self:Say("You see, I have to make more and more deliveries everyday, what with my business growing so much. I find it difficult to make time to go pick up the different skins and pelts I need for my trade. It's tough when you need some good help but can't afford to pay them. Sorry to bother you with my banter, perhaps I will find someone on the [way to the bazaar]."); + elseif(e.message:findi("way to the bazaar")) then + e.self:Say("You are, eh " .. e.other:GetCleanName() .. "? Well then if you wanted to pick up some supplies for me and deliver them to my partner in the Bazaar I'm sure I would be very grateful. Would you like to make a [trip to the bazaar]?"); + elseif(e.message:findi("trip to the bazaar")) then + e.self:Say("All right! Great to hear that " .. e.other:GetCleanName() .. ". Here are the supplies I need delivered to my partner Gearo in the Bazaar. Please take them to him and return with whatever he has picked up for me. I look forward to seeing you soon, and thank you."); + e.other:SummonCursorItem(4766); -- Assorted Tailoring Supplies + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4767}, 0)) then -- Bag of Assorted Gems + e.self:Say("Hey again " .. e.other:GetCleanName() .. ". It's nice to see you back so soon, thank you for bringing my supplies to that crazy Gnome and bringing back my gems that he got for me. You are always welcome in my shop, good luck to you!"); + e.other:Faction(e.self,1508, 25); --Traders of the Haven + e.other:Faction(e.self,1510, 2); --House of Fordel + e.other:Faction(e.self,1511, 2); --House of Midst + e.other:Faction(e.self,1512, 2); --House of Stout + e.other:QuestReward(e.self,0,0,0,0,0,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadowhaven/Tabard_Redhand.lua b/shadowhaven/Tabard_Redhand.lua new file mode 100644 index 0000000..ca49a4d --- /dev/null +++ b/shadowhaven/Tabard_Redhand.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". If you are in need of some shoes for the big and tall then have a look around, I am sure to have something that will catch your eye."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Tabart_Tailforth.lua b/shadowhaven/Tabart_Tailforth.lua new file mode 100644 index 0000000..9f1c612 --- /dev/null +++ b/shadowhaven/Tabart_Tailforth.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". I am Tabart. I help Junun here secure supplies for the store. You will see me out and about every once in a while asking adventurers for this or that. Check back now and then, I may have something new to sell."); + end +end diff --git a/shadowhaven/Talida_Furrytoes.lua b/shadowhaven/Talida_Furrytoes.lua new file mode 100644 index 0000000..606b1f1 --- /dev/null +++ b/shadowhaven/Talida_Furrytoes.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. "! Have a look at what I have, perhaps you will see something to your liking."); + end +end diff --git a/shadowhaven/Tall_Joe.lua b/shadowhaven/Tall_Joe.lua new file mode 100644 index 0000000..10177a8 --- /dev/null +++ b/shadowhaven/Tall_Joe.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Lo there traveler. Tall Joe's muh name, making the finest eats in the lands is muh game! Step right up, but only if ya got a hearty appetite."); + else + e.self:Say("You seem like a nice enough stranger but I am afraid all newcomers must see the Patriarch first before we are able to offer our great deals to them."); + end + end +end diff --git a/shadowhaven/Talor.lua b/shadowhaven/Talor.lua new file mode 100644 index 0000000..03f1229 --- /dev/null +++ b/shadowhaven/Talor.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. " and welcome to our tavern. If you are looking for Verte he might be on a delivery, but I'm sure he will be right back."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Tarson_Lonewolf.lua b/shadowhaven/Tarson_Lonewolf.lua new file mode 100644 index 0000000..b1781c3 --- /dev/null +++ b/shadowhaven/Tarson_Lonewolf.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". I am very well seasoned in the ways of the Spiritcaller. If you or a friend is in need of guidance, please let me know."); + end +end diff --git a/shadowhaven/Teriesl_Windwalker.lua b/shadowhaven/Teriesl_Windwalker.lua new file mode 100644 index 0000000..3661e1a --- /dev/null +++ b/shadowhaven/Teriesl_Windwalker.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi there, " .. e.other:GetCleanName() .. ". If you know a young druid in need of scrolls to further his spell development please send him to see me."); + end +end diff --git a/shadowhaven/Tersie_Falsialoen.lua b/shadowhaven/Tersie_Falsialoen.lua new file mode 100644 index 0000000..37ae58a --- /dev/null +++ b/shadowhaven/Tersie_Falsialoen.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Pleased to meet ya, " .. e.other:GetCleanName() .. "! If you're looking for general supplies, then I've got something you could use. Take a look and thanks for visiting us!"); + end +end diff --git a/shadowhaven/Tiplo_the_Gardener.lua b/shadowhaven/Tiplo_the_Gardener.lua new file mode 100644 index 0000000..243f7fb --- /dev/null +++ b/shadowhaven/Tiplo_the_Gardener.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Pleased to meet you " .. e.other:GetCleanName() .. "! Allow me to introduce myself. I am Tiplo and I am the best gardener in all of Shadowhaven! If you should need anything from my garden let me know, but whatever you do don't step on my plants!"); + end +end diff --git a/shadowhaven/Toddor_Stalorok.lua b/shadowhaven/Toddor_Stalorok.lua new file mode 100644 index 0000000..0dea420 --- /dev/null +++ b/shadowhaven/Toddor_Stalorok.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Lo dere " .. e.other:GetCleanName() .. ". It's nice to see you have made it to our armor shop. We got all the finest selections that could suit your taste. If ye got any questions I'm Toddor and dis is me wife Melina."); + e.self:DoAnim(66); -- raise hand + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(150271)) then + eq.get_entity_list():GetMobByNpcTypeID(150271):Say("Hello there!"); + end + end +end diff --git a/shadowhaven/Townsperson_Berolon.lua b/shadowhaven/Townsperson_Berolon.lua new file mode 100644 index 0000000..efd7c74 --- /dev/null +++ b/shadowhaven/Townsperson_Berolon.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Allo there! Are you here to listen to the words of Lardalon. Very wise he is indeed! If you want to stay, that's fine, but don't take my seat!"); + end +end diff --git a/shadowhaven/Townsperson_Erinol.lua b/shadowhaven/Townsperson_Erinol.lua new file mode 100644 index 0000000..8d0c4e6 --- /dev/null +++ b/shadowhaven/Townsperson_Erinol.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Lo there, " .. e.other:GetCleanName() .. ". I am Erinol, I am da overseer of the mining operations that we run in this here quarter that we call home. I hope you have a nice stay."); + end +end diff --git a/shadowhaven/Townsperson_Pirions.lua b/shadowhaven/Townsperson_Pirions.lua new file mode 100644 index 0000000..ae93c27 --- /dev/null +++ b/shadowhaven/Townsperson_Pirions.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("A pleasure it is indeed to meet you, " .. e.other:GetCleanName() .. ". I welcome you to our hallowed town square. If you are curious about any of the town happenings this is the place to come when our meetings are in session."); + end +end diff --git a/shadowhaven/Townsperson_Ranlanos.lua b/shadowhaven/Townsperson_Ranlanos.lua new file mode 100644 index 0000000..556ecfe --- /dev/null +++ b/shadowhaven/Townsperson_Ranlanos.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". I am Ranlanos, I am in charge of overseeing our vegetation system here in our great town. If you see anything out of the ordinary make sure you come see me. Good day!"); + end +end diff --git a/shadowhaven/Townsperson_Sarolix.lua b/shadowhaven/Townsperson_Sarolix.lua new file mode 100644 index 0000000..94b9aa0 --- /dev/null +++ b/shadowhaven/Townsperson_Sarolix.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day to you there traveler. Do you come to the hallowed town square to seek guidance? Lardalon is very smart indeed and his words are very important to the success of our city. Our meeting is about to begin so please find a seat!"); + end +end diff --git a/shadowhaven/Trade_Commissioner_Henry.lua b/shadowhaven/Trade_Commissioner_Henry.lua new file mode 100644 index 0000000..55a345a --- /dev/null +++ b/shadowhaven/Trade_Commissioner_Henry.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, traveler. I don't believe that I have seen you around these parts before- then again, I could have and simply forgotten since there have been so many new faces around here. However, if you are a newcomer to Shadowhaven, please make sure that you [register for trading] in the Haven. Registering with the Traders of the Haven will legitimize you in the eyes of local merchants and customers."); + elseif(e.message:findi("register for trading")) then + e.self:Say("It's great that you are interested " .. e.other:GetCleanName() .. ", you will surely be glad you did. I have some simple deliveries that I need completed if you wish to be a registered trader in Shadowhaven."); + elseif(e.message:findi("deliveries")) then + e.self:Say("The deliveries are simple enough, I just need you to bring some letters to some merchants of the Haven that are currently working in other locations. Will you [deliver these letters]?"); + elseif(e.message:findi("deliver these letter")) then + e.self:Say("I surely do appreciate the help, " .. e.other:GetCleanName() .. "- clearly you understand the value of solid relations with the locals. First, I will need you to take this newsletter to Sateal. He is currently on assignment in the Bazaar and has been out of the loop on the happenings of Shadowhaven because of his heavy workload. Bring this to him and then return to me with his sales report. I look forward to seeing you soon."); + e.other:SummonCursorItem(26055); -- Tattered Newsletter + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 26056}, 0)) then -- Sateals Economy Report + e.self:Say("Great to see you back so soon " .. e.other:GetCleanName() .. ", you looked like a dependable person from the start. The next thing I need you to do is a bit more dangerous, but by the looks of you I doubt it will be a problem. Go to the Shadowhaven outpost in Fungusgrove and give Thar this book. Thar is a great merchant but I have seen his sales steadily declining, so I figured this book full of selling tips will help him regain his confidence and help him produce the kinds of numbers I know he is capable of. If his economy report is ready please, bring that back to me when you return."); + e.other:QuestReward(e.self,0,0,0,0,26057,5000); -- Book of Sales Secrets + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 26058}, 0)) then -- Thars Sales Report + e.self:Say("Excellent work " .. e.other:GetCleanName() .. ", I knew that you were someone that I could trust to get the job done. The trader's union of Shadowhaven will hear of your solid work ethic. Perhaps a courier job is in your future, I couldn't have expected anyone to make these deliveries as fast as you did! Please take this amulet as a symbol of your dedication to Shadowhaven's booming economy. While wearing this you are sure to get all the greatest deals from the merchants of the Haven both here and in the bazaar. It was a pleasure meeting, you and thanks for all of your help."); + e.other:Faction(e.self,1508, 200); -- Traders of the Haven + e.other:Faction(e.self,1510, 20); -- House of Fordel + e.other:Faction(e.self,1511, 20); -- House of Midst + e.other:Faction(e.self,1512, 20); -- House of Stout + e.other:QuestReward(e.self,0,0,0,0,26054,5000); -- Amulet of the Haven + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/shadowhaven/Tronso_Namistail.lua b/shadowhaven/Tronso_Namistail.lua new file mode 100644 index 0000000..1a48927 --- /dev/null +++ b/shadowhaven/Tronso_Namistail.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail dere to you as well, " .. e.other:GetCleanName() .. ". Me name is Tronso Namistail. I am a carpenter in this here Shadowhaven and responsible for many of the fine structures that we have here. I have lived in this city for quite some time, and know me way around pretty well I would say. So I thought I would help out the new folks a bit. Are you a [newcomer] to the Haven?"); + elseif(e.message:findi("newcomer")) then + e.self:Say("Ah excellent to hear dat. Well it sure is great to have ye here, we have many places to see and so many different merchants with such an assortment of goods that you are sure to find what ya need here or in the Bazaar. I can also give you a tour of the Haven if you would like to learn yer way around!"); + elseif(e.message:findi("take me on a tour") and e.self:GetX() == 371 and e.self:GetY() == -1007) then + e.self:Say("Well den, lets git goin! First place we are off to is the Trade Commissioners. He is right around the corner from the gate and the reason I am going to take you to see him first is because it's very important that our newer guests register for trading."); + eq.start(25); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 7) then + e.self:Say("Good to see you as always Commissioner!"); + elseif(e.wp == 14) then + e.self:Say("Here we be at da Grimthor's Distillery, the biggest and most successful brewery of the Haven. Here you can fine the best of the best as far as ale goes. Many other bartenders of the Haven only sell drinks that are brewed here."); + elseif(e.wp == 23) then + e.self:Say("This is the entrance to the Bazaar. As many will tell you the Bazaar is the pride of the Shadowhaven. Within the Bazaar you will find numerous folks just like yourself looking to buy and sell goods of all kinds!"); + elseif(e.wp == 33) then + e.self:Say("This is the path that leads to the Midst Quarter. In this area you will find some of the most powerful spellweavers in the land, as many of them are descendants of original settlers of our home that helped find our great city. Those that practice powerful magic will surely find sanctuary here."); + elseif(e.wp == 40) then + e.self:Say("This is the House of Fordel family residence. Here is where all of the nobles of our great city reside. Many that stay here are nobles either for service to the Shadowhaven or being a descendant of the original expeditionary unit."); + elseif(e.wp == 58) then + e.self:Say("And here we are at the finest division of the Haven indeed! The Short and Stout quarter of course here it is where I call me home. It's a city made for all likes of short folk. Although we feel sorry for those that are not rightsizers like us, they are all of course welcome to our home."); + elseif(e.wp == 62) then + e.self:Say("And here we have reached our final destination. This pad before us will teleport you to the Nexus. That about does it for the tour, I hope that everything I have showed ya will help you in your adventures. As for me, I'm going to head back near the front gate."); + elseif(e.wp == 85) then + eq.stop(); + end +end diff --git a/shadowhaven/Tsueas_Eadajo.lua b/shadowhaven/Tsueas_Eadajo.lua new file mode 100644 index 0000000..6df3cf8 --- /dev/null +++ b/shadowhaven/Tsueas_Eadajo.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi " .. e.other:GetCleanName() .. ", if some of the folks have been not so nice to you please forgive them. We don't usually receive many visitors down here and if we do trouble usually isn't far behind them."); + end +end diff --git a/shadowhaven/Verte.lua b/shadowhaven/Verte.lua new file mode 100644 index 0000000..cfdde56 --- /dev/null +++ b/shadowhaven/Verte.lua @@ -0,0 +1,24 @@ +function event_waypoint_arrive(e) + if (e.wp == 1) then + e.self:Say("Ok Talor, I'm off to the keep to deposit our daily earnings. Watch the shop while I'm gone, will ya mate."); + elseif (e.wp == 11) then + e.self:Say("Hello there Faloensar, having a good day I would hope."); + eq.signal(150286,1); -- NPC: Fordel_Keeper_Faloensar + elseif (e.wp == 12) then + e.self:Say("Ah well just here to make my daily deposit then it's back to the bar for me. Had quite a brawl last night and still got some cleaning up to do. Those crazy Dwarves I tell you, get a few drinks in them and they want to take on the world or the closest Barbarian."); + eq.signal(150286,2); -- NPC: Fordel_Keeper_Faloensar + elseif (e.wp == 13) then + e.self:Say("Ill try my best! Nice doing business with you as always. Take care"); + eq.signal(150286,3); -- NPC: Fordel_Keeper_Faloensar + end +end + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hey there " .. e.other:GetCleanName() .. ". We carry many Shadowhaven exclusive brews here in our tavern. Pull up a barstool and enjoy an ale or two."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Vicars.lua b/shadowhaven/Vicars.lua new file mode 100644 index 0000000..f3c9a31 --- /dev/null +++ b/shadowhaven/Vicars.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hi there " .. e.other:GetCleanName() .. ", please help yourself to a drink."); --made up text, npc removed when they added casino + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Volan.lua b/shadowhaven/Volan.lua new file mode 100644 index 0000000..7bb0533 --- /dev/null +++ b/shadowhaven/Volan.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Hi there and welcome to our shop. If it's some nice chainmail that you seek I have just the goods for you. I sell only the finest Fordel chainmail crafted by some of the best blacksmiths in the land."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Wawker.lua b/shadowhaven/Wawker.lua new file mode 100644 index 0000000..d6579a4 --- /dev/null +++ b/shadowhaven/Wawker.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". My partner and I run this little shop dedicated to bringing you only the finest armor. Have a look."); + else + e.self:Say("Due to the problems we have had lately with dishonorable visitors to the Haven we require all newcomers to see Daloran and Mistala for some simple tasks to prove that your intentions are good. I hope to see you soon."); + end + end +end diff --git a/shadowhaven/Wayke_Mudhands.lua b/shadowhaven/Wayke_Mudhands.lua new file mode 100644 index 0000000..a889dfd --- /dev/null +++ b/shadowhaven/Wayke_Mudhands.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks up and wipes some clay off his hands onto his britches. 'Allo there! Wanna get your hands dirty? I got the stuff to do it with."); + end +end diff --git a/shadowhaven/Wiglapo.lua b/shadowhaven/Wiglapo.lua new file mode 100644 index 0000000..c6fac5f --- /dev/null +++ b/shadowhaven/Wiglapo.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Over the meadows and through the bridge, tos Drrolans grandmudders house we gooo?"); + end +end diff --git a/shadowhaven/Xerisolap_Whistleger.lua b/shadowhaven/Xerisolap_Whistleger.lua new file mode 100644 index 0000000..3f12505 --- /dev/null +++ b/shadowhaven/Xerisolap_Whistleger.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It's nice to meet such a well-respected trader in the Haven. I just hope my wife gets better soon, she's been sick for quite sometime now."); + end +end diff --git a/shadowhaven/Xerolop_Palostilad.lua b/shadowhaven/Xerolop_Palostilad.lua new file mode 100644 index 0000000..b1ac3d8 --- /dev/null +++ b/shadowhaven/Xerolop_Palostilad.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Heya " .. e.other:GetCleanName() .. ", please feel free to let me know what ya need from my shop. I'm sorry if ya don't have my full attention, however I'm busy trying to get this darn chimney workin."); + end +end diff --git a/shadowhaven/Yargin_the_Traveler.lua b/shadowhaven/Yargin_the_Traveler.lua new file mode 100644 index 0000000..f50014f --- /dev/null +++ b/shadowhaven/Yargin_the_Traveler.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". I am Yargin and I am the residing guildmaster for those that heed the call of the wilderness and dedicate their life to preserving it in all its beauty."); + end +end diff --git a/shadowhaven/Yaron.lua b/shadowhaven/Yaron.lua new file mode 100644 index 0000000..daef104 --- /dev/null +++ b/shadowhaven/Yaron.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey there. Hrm, I really dont know how I'm going to manage moving all these boxes. Perhaps you could give me a hand? Come to think of it, I think I can handle it because if Zaores sees ya helping me I'll just get called a slacker. Thanks anyways."); + end +end diff --git a/shadowhaven/Zaores.lua b/shadowhaven/Zaores.lua new file mode 100644 index 0000000..d0ab215 --- /dev/null +++ b/shadowhaven/Zaores.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey there " .. e.other:GetCleanName() .. ", I handle most of the shipping and receiving for the Trade Commissioner here. I might have some leftover wares for sale soon, check back with me later."); + end +end diff --git a/shadowhaven/Zimloro_Jalobottle.lua b/shadowhaven/Zimloro_Jalobottle.lua new file mode 100644 index 0000000..3aa7ac7 --- /dev/null +++ b/shadowhaven/Zimloro_Jalobottle.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oi there, " .. e.other:GetCleanName() .. ". If you are lookin for a potion or an antidote I got just what the doctor ordered. Step right up! I also have many other special potions but sadly I do not have the correct [components] for them."); + elseif(e.message:findi("retrieve.* component")) then + e.self:Say("Fantastic, " .. e.other:GetCleanName() .. "! Elefan, my apprentice, is currently studying under my wing. He had been collecting samples in Shadeweaver lately and he probably has the items that I need. If you could go and speak with him and present him with this ingredient list, hopefully he will have what I need. Please bring the components back to me as soon as possible!"); + e.other:SummonCursorItem(4758); -- Item: Zimloro Ingredient List + elseif(e.message:findi("components")) then + e.self:Say("Well you see I can make some very magnificent potions. Unfortunately, I am in need of a few [ingredients] that I lost in a lab accident a few days back."); + elseif(e.message:findi("ingredient")) then + e.self:Say("You sure seem interested in my work there, " .. e.other:GetCleanName() .. ". So interested that I think you would be willing to go fetch the components I require for my studies for me! Am I correct? Will you [retrieve these components] for me?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4759}, 0)) then + e.self:Say("You did it, " .. e.other:GetCleanName() .. "! Finally I can finish these potions that I have been working on for such a long time. I will surely tell all of my friends of your willingness to help me!"); + e.other:Faction(e.self,1512,5); -- house of stout + e.other:Faction(e.self,1508,1); -- traders of the haven + e.other:QuestReward(e.self,0,0,0,0,0,5000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4765}, 0)) then + e.self:Say("Ah, of course, the antidote supplies I have been waiting for from Daksins. I hope he is ok, we all told him it was not wise to go out to the cursed mountains alone. I thank you for bringing me these supplies because Daksins was unable too. There have been many reports lately of people receiving the disease carried by the beasts you encountered. Should you come across these extracts in the future bring them to me if you like. Thank you again, your actions will not go unnoticed."); + -- confirmed faction from live. + e.other:Faction(e.self,1512,25); -- house of stout + e.other:Faction(e.self,1508,2); -- trader of the haven + e.other:QuestReward(e.self,0,0,0,0,0,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/#Chialle.lua b/sharvahl/#Chialle.lua new file mode 100644 index 0000000..d442fec --- /dev/null +++ b/sharvahl/#Chialle.lua @@ -0,0 +1,131 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there traveler. Please take a moment to look at my goods. I have delicious meals perfect for traveling conditions."); + elseif(e.message:findi("fish")) then + e.self:Say("Our fishermen have worked hard to catch the fattest and juiciest fish in the Hollowshade Moor. They are salted to preserve them on your long journeys. Try them!"); + elseif(e.message:findi("almond")) then + e.self:Say("The almonds are great to snack on during your many journeys. I get up early every day to select and prepare the very best ones. I hope you like them."); + elseif(e.message:findi("shawerma")) then + e.self:Say("You have a good eye my friend. The Shawerma is made from fresh owlbear meat carefully prepared in spices and Nepeta oil. It's very tender and delicious. Try some, you'll love them."); + elseif(e.message:findi("nepeta")) then + e.self:Say("Nepeta Oil is useful for many many things. You can also drink it but it can be very intoxicating."); + elseif(e.message:findi("mint")) then + e.self:Say("I'm just crazy for these mints, something about them just makes me feel so alive. WOO!"); + elseif(e.message:findi("meatcake")) then + e.self:Say("These are perfect for travelers on a budget. The marrow is extracted from owlbear marrow fresh every day. They are cooked in Nepeta oil and fashioned into bite sized patties for your convenience. Healthy and tasty, a perfect treat."); + elseif(e.message:findi("payala")) then + e.self:Say("I got the payala from Saren. I help her collect them sometimes, they are sweet and delicious. I cut them into slices and bake them in preservative spices to help make them last on those long journeys."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30625, item2 = 30625, item3 = 30625, item4 = 30625})) then + e.self:Say("Oh wow! This is just what I was hoping for. Thank you so much! You must be a real good friend to Saren to have her make you these, she never makes freshly squeezed nectar unless she really likes someone. You have a kind heart " .. e.other:GetCleanName() .. ". Please take this with you as a token of my friendship."); + e.self:Emote("smiles as she hands " .. e.other:GetCleanName() .. " a shimmering emberstone ring."); + e.other:QuestReward(e.self,0,0,0,0,30609,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if(e.wp == 1) then + eq.set_timer("1",120000); + e.self:MerchantOpenShop(); + elseif(e.wp == 2) then + eq.stop_timer("1"); + e.self:Say("Whew! I sure could use something sweet to drink."); + e.self:MerchantCloseShop(); + elseif(e.wp == 13) then + e.self:Emote("makes a deposit."); + end +end + +function event_timer(e) + local rand = math.random(6); + if(rand == 1) then + e.self:Say("Weary traveler, please come have a look at my foods. My almonds make for a great traveling snack."); + end + if(rand == 2) then + e.self:Say("Welcome to Shar Vahl! Please come look at my goods. Try my Shawerma sandwiches. I'll give you a good deal."); + end + if(rand == 3) then + e.self:Say("Come have a look at my goods. I have lots of delicious food that travels well."); + end + if(rand == 4) then + e.self:Say("Hold friend! Come see what I have to offer. Salted fish! Fresh Almonds! Delicious sandwiches!"); + end + if(rand == 5) then + e.self:Say("Hey there, don't be shy! Come over here and have a look at what I have for sale."); + end + if(rand == 6) then + e.self:Say("Don't let yourself go hungry brave adventurer. My food is fairly priced, come see for yourself."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/#Delival.lua b/sharvahl/#Delival.lua new file mode 100644 index 0000000..4804308 --- /dev/null +++ b/sharvahl/#Delival.lua @@ -0,0 +1,42 @@ +function event_spawn(e) + eq.set_timer("worry",120000); +end + +function event_timer(e) + if(e.timer == "worry") then + e.self:Emote("sees you come into the room but looks just past you, 'Shainai is that you?'"); + end +end + +function event_signal(e) + if(e.signal==1) then + eq.spawn2(155340,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end +end + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ". I do not suppose you have seen a little girl running around with a box of [buttons]? I sent [Shainai] over to Master Barkhem's place so I can finish these uniforms I am working on."); + elseif(e.message:findi("Shainai")) then + e.self:Say("Shainai is my little girl. While I am [inactive] I would like to see her as much as possible so I brought her with me here. I am starting to worry that she may have gotten lost near the palace. If you see her and have the time to escort her back here I would be indebted to you, friend."); + elseif(e.message:findi("buttons")) then + e.self:Say("I need the buttons to finish making uniforms for the officers that live upstairs. When I was injured in the field, this was the best way for me to help out. My mum used to make uniforms for the Royal Khala Dun when I was a child and I guess I picked up a thing or two. Still, it will be nice when I am able to get back out there and fight."); + elseif(e.message:findi("inactive")) then + e.self:Emote("averts his eyes, 'I was on a raid in the forest that went bad. That was when we lost Shainai's mother. Truth be told, as much as I am eager to get back out in the field, the opportunity to spend this little bit of extra time with Shainai is priceless.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4460})) then + e.self:Emote("looks at what you handed him as his face turns to rage, 'What is... this... this is the box I sent Shainai out with! Where is she? What have you done? You stole from my little girl!! Maybe worst!!!!!'"); + e.other:Faction(e.self,1513,-1); --Guardian of Shar Vahl + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/#General_Keraj.lua b/sharvahl/#General_Keraj.lua new file mode 100644 index 0000000..4b8380c --- /dev/null +++ b/sharvahl/#General_Keraj.lua @@ -0,0 +1,78 @@ +function event_spawn(e) + eq.set_timer("1",210000); + eq.set_timer("2",220000); + eq.set_timer("3",230000); + eq.set_timer("4",400000); + eq.set_timer("5",410000); + eq.set_timer("6",420000); + eq.set_timer("7",430000); + eq.set_timer("8",440000); + eq.set_timer("9",450000); + eq.set_timer("10",700000); + eq.set_timer("11",705000); +end + +function event_timer(e) + if(e.timer=="1") then + e.self:Say("Nay friend, we appear to be making decent progress. The grimling numbers are increasing, but so are ours. Many of the newcomers are working with us in the moor and forests. The influx of adventurers has provided us with some amazing new leaders. They are so full of energy and fearless ambition"); + eq.stop_timer("1"); + end + if(e.timer=="2") then + e.self:Say("Aye friend, I guess that you are right. I am just ready to head back into the forest. I want to take those mines back before this season ends. We built this city from the acrylia in those mines and now look at us. We have to resort to using any scrap of acrylia that we can find."); + eq.stop_timer("2"); + end + if(e.timer=="3") then + e.self:Say("Aye mate, a few games would be a fine sight. Well, let me get back in there. I'm sure that'll want to keep talking. Bah..."); + eq.stop_timer("3") + end + if(e.timer=="4") then + eq.signal(155161,1,5); -- NPC: High_Spiritist_Jimuul + eq.stop_timer("4"); + end + if(e.timer=="5") then + e.self:Say("Tell him what you have told him every season prior to this... We are keeping them from over running the city, the moor is clear with the exception of a few camps, and the forest outpost still stands. What more is there to report?"); + eq.stop_timer("5"); + end + if(e.timer=="6") then + eq.signal(155161,2,5); -- NPC: High_Spiritist_Jimuul + eq.stop_timer("6"); + end + if(e.timer=="7") then + eq.signal(155160,5); -- NPC: Pathmaster_Kharin + eq.stop_timer("7"); + end + if(e.timer=="8") then + eq.signal(155161,3,5); -- NPC: High_Spiritist_Jimuul + eq.stop_timer("8"); + end + if(e.timer=="9") then + e.self:Say("Then make no demands of my soldiers beyond what they are already doing. It will serve no one to have our resources depleted before you can even produce the question I am supposed to answer. If you need more headway in the area of the mines, then tell the king that we need new incentives to compel the outsiders to aid us in that area. We cannot take that area with my men alone and I am not sending soldiers in to die without a known goal!"); + eq.stop_timer("9"); + end + if(e.timer=="10") then + e.self:Say("Bah, I do not know why I let these meetings bother me. They have little relevance to our current battle. The mines have been lost to those creatures and their ranks seem to swell to greater numbers with each day that passes."); + eq.stop_timer("10"); + end + if(e.timer=="11") then + eq.set_timer("1",210000); + eq.set_timer("2",220000); + eq.set_timer("3",230000); + eq.set_timer("4",400000); + eq.set_timer("5",410000); + eq.set_timer("6",420000); + eq.set_timer("7",430000); + eq.set_timer("8",440000); + eq.set_timer("9",450000); + eq.set_timer("10",700000); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/#Shainai.lua b/sharvahl/#Shainai.lua new file mode 100644 index 0000000..361aaec --- /dev/null +++ b/sharvahl/#Shainai.lua @@ -0,0 +1,89 @@ +function event_spawn(e) + eq.get_entity_list():GetSpawnByID(e.self:GetSpawnPointID()):SetRespawnTimer(150); +end + +function event_waypoint_arrive(e) + if(e.wp == 17) then + e.self:Emote("stops skipping and looks around, 'Uh oh'"); + elseif(e.wp == 43) then + e.self:Emote("glances about, looking a bit lost. 'Well this doesn't look like a place I belong in at all'"); + elseif(e.wp == 49) then + e.self:Say("Uh oh? this looks dangerous, I don't think I am allowed to be here."); + elseif(e.wp == 51) then + e.self:Emote("notices the pile of bones next to her and shudders, 'Eeep! I wonder what happened to him."); + elseif(e.wp == 57) then + e.self:Say("Hi, how do I get outside, huh?"); + elseif(e.wp == 58) then + e.self:Emote("smiles at the sight of daylight, 'Ahhh yes, this is the way!'"); + elseif(e.wp == 66) then + e.self:Emote("squints around, thinking hard, 'Hrmmm, this does look familiar. I think i came from this-a-way.'"); + elseif(e.wp == 68) then + e.self:Say("Oh look, there it is!"); + elseif(e.wp == 80) then + e.self:Emote("Yawns tiredly and says, 'That was fun. Time for me to go to sleep though.' She crawls under the blanket and falls sound asleep."); + end +end + +function event_say(e) + local a = 155339; + if(e.message:findi("hail")) then + if(e.self:GetWaypointID() < 17) then + e.self:Say("Hello, my name is Shainai and I am on a very important mission for my Daddy. He ran out of buttons for the officers' clothes so I have to get him more. I am an excellent helper."); + elseif(e.self:GetWaypointID() > 16 and e.self:GetWaypointID() < 59) then + e.self:Say("Hi. I was getting some buttons for Daddy and I got a little lost. I know the way, I mean it...but if you wanted to [follow] me home to make sure I got there safe and all, you could."); + elseif(e.self:GetWaypointID() > 58) then + e.self:Say("Hi there, I am headed home before I get in trouble. I got a little lost, but I am ok now. I hope Daddy isn't too mad. Bye bye!"); + end + elseif(e.message:findi("follow")) then + if(e.self:GetWaypointID() > 16 and e.self:GetWaypointID() < 59) then + e.self:Say("You will?!? Oh good, now I won't be so lonesome. Here hold my bag of buttons if you please, my arms are tired. Ready? Follow me now, I know the way. 'Shainai pauses and looks around, ' Hmmmm..."); + e.other:QuestReward(e.self,0,0,0,0,4460); + end + if(e.self:GetWaypointID() > 16 and e.self:GetWaypointID() < 21) then + eq.unique_spawn(a,31,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.get_entity_list():GetSpawnByID(e.self:GetSpawnPointID()):SetRespawnTimer(1800); + eq.depop_with_timer(); + elseif(e.self:GetWaypointID() > 20 and e.self:GetWaypointID() < 24) then + eq.unique_spawn(a,32,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.get_entity_list():GetSpawnByID(e.self:GetSpawnPointID()):SetRespawnTimer(1800); + eq.depop_with_timer(); + elseif(e.self:GetWaypointID() > 23 and e.self:GetWaypointID() < 26) then + eq.unique_spawn(a,33,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.get_entity_list():GetSpawnByID(e.self:GetSpawnPointID()):SetRespawnTimer(1800); + eq.depop_with_timer(); + elseif(e.self:GetWaypointID() > 25 and e.self:GetWaypointID() < 28) then + eq.unique_spawn(a,29,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.get_entity_list():GetSpawnByID(e.self:GetSpawnPointID()):SetRespawnTimer(1800); + eq.depop_with_timer(); + elseif(e.self:GetWaypointID() > 27 and e.self:GetWaypointID() < 32) then + eq.unique_spawn(a,27,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.get_entity_list():GetSpawnByID(e.self:GetSpawnPointID()):SetRespawnTimer(1800); + eq.depop_with_timer(); + elseif(e.self:GetWaypointID() > 31 and e.self:GetWaypointID() < 36) then + eq.unique_spawn(a,34,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.get_entity_list():GetSpawnByID(e.self:GetSpawnPointID()):SetRespawnTimer(1800); + eq.depop_with_timer(); + elseif(e.self:GetWaypointID() > 35 and e.self:GetWaypointID() < 38) then + eq.unique_spawn(a,28,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.get_entity_list():GetSpawnByID(e.self:GetSpawnPointID()):SetRespawnTimer(1800); + eq.depop_with_timer(); + elseif(e.self:GetWaypointID() > 37 and e.self:GetWaypointID() < 45) then + eq.unique_spawn(a,30,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.get_entity_list():GetSpawnByID(e.self:GetSpawnPointID()):SetRespawnTimer(1800); + eq.depop_with_timer(); + elseif(e.self:GetWaypointID() > 44 and e.self:GetWaypointID() < 48) then + eq.unique_spawn(a,35,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.get_entity_list():GetSpawnByID(e.self:GetSpawnPointID()):SetRespawnTimer(1800); + eq.depop_with_timer(); + elseif(e.self:GetWaypointID() > 47 and e.self:GetWaypointID() < 59) then + eq.unique_spawn(a,36,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.get_entity_list():GetSpawnByID(e.self:GetSpawnPointID()):SetRespawnTimer(1800); + eq.depop_with_timer(); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/#Tajie_Karaf.lua b/sharvahl/#Tajie_Karaf.lua new file mode 100644 index 0000000..90516c3 --- /dev/null +++ b/sharvahl/#Tajie_Karaf.lua @@ -0,0 +1,26 @@ +function event_waypoint_arrive(e) + if(e.wp == 18) then + e.self:Emote("makes a withdrawal"); + end + if(e.wp == 31) then + e.self:SetAppearance(1); + end + if(e.wp == 46) then + e.self:SetAppearance(1); + e.self:Emote("begins her daily weaving with a whistle and a smile."); + end + if(e.wp == 71) then + e.self:SetAppearance(3); + e.self:Emote("takes In a breath of fresh air as she gazes at the stars."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/#Taruun_Murod_Karaf.lua b/sharvahl/#Taruun_Murod_Karaf.lua new file mode 100644 index 0000000..ae08b0d --- /dev/null +++ b/sharvahl/#Taruun_Murod_Karaf.lua @@ -0,0 +1,87 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ". Did you need something?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 22) then + e.self:Emote("orders a drink."); + end + if(e.wp == 39) then + e.self:SetAppearance(1); + end + if(e.wp == 63) then + e.self:SetAppearance(3); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/A_Grimling_Prisoner.lua b/sharvahl/A_Grimling_Prisoner.lua new file mode 100644 index 0000000..489a703 --- /dev/null +++ b/sharvahl/A_Grimling_Prisoner.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("scuttles back toward the back of the cell, obviously intimidated."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Ahahd_Tolm.lua b/sharvahl/Ahahd_Tolm.lua new file mode 100644 index 0000000..800a419 --- /dev/null +++ b/sharvahl/Ahahd_Tolm.lua @@ -0,0 +1,118 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome... Welcome... have a seat and let me know if you need anything."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + + +local count = 0; +function event_spawn(e) + eq.set_timer("themoor",5000); +end + +function event_timer(e) + count = count + 1; + if(count == 1) then + e.self:Say("So mate, are you just in from a patrol?"); + end + if(count == 2) then + eq.signal(155122,1,1); -- NPC: Taruun_Jaur + end + if(count == 3) then + eq.signal(155259,1,1); -- NPC: Erat_Almar + end + if(count == 4) then + eq.signal(155122,2,1); -- NPC: Taruun_Jaur + end + if(count == 5) then + e.self:Say("Sure thing, mate. You know I'm sucker for good gossip."); + end + if(count == 6) then + eq.signal(155122,3,1); -- NPC: Taruun_Jaur + end + if(count == 7) then + e.self:Say("Oh my! Did ya kill 'em!"); + eq.signal(155259,2,1); -- NPC: Erat_Almar + end + if(count == 8) then + eq.signal(155122,4,1); -- NPC: Taruun_Jaur + end + if(count == 9) then + e.self:Say("Bah! It couldn't get weirder. That's weird enough! Take a moment to finish your drink and then tell me what happened."); + eq.set_timer("themoor",300000); + end + if(count == 10) then + count = 0; + eq.set_timer("themoor",5000); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Ahjiq_Mumir.lua b/sharvahl/Ahjiq_Mumir.lua new file mode 100644 index 0000000..8cec113 --- /dev/null +++ b/sharvahl/Ahjiq_Mumir.lua @@ -0,0 +1,79 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met, friend. May I be of assistance?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_signal(e) + e.self:DoAnim(51); --clap +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Alchemist_Hikal.lua b/sharvahl/Alchemist_Hikal.lua new file mode 100644 index 0000000..90c4fb5 --- /dev/null +++ b/sharvahl/Alchemist_Hikal.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings friend. If you're in the business for some herbs or shamanistic supplies you've come to the right place. Please take a look around for yourself or if you're looking for something feel free to ask and we may have you need somewhere behind the counter."); + end + if(e.message:findi("sealed medicine")) then + e.self:Say("I may have just the thing you are looking for. I recently purchased quite an old and interesting sealed medicine pouch of superb craftsmanship. I will part with it for one-thousand gold pieces."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {gold = 1000})) then + e.self:Say("Here it is. I am sure you will be quite happy with your purchase, it is quite an interesting old bag it is."); + e.other:QuestReward(e.self,0,0,0,0,10681); -- Old Sealed Medicine Pouch + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Alchemist_Kotahl.lua b/sharvahl/Alchemist_Kotahl.lua new file mode 100644 index 0000000..f6ecad1 --- /dev/null +++ b/sharvahl/Alchemist_Kotahl.lua @@ -0,0 +1,39 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail and welcome! If you're here to have me convert a weapon of the High Grimling for you. please give it to me. If not. please speak to Wygans. He's in charge of dealing with the tourists this week. I've got a lot of work to do."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7285})) then -- Claw of the High Grimling + e.other:Faction(e.self,1513,2); -- Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,7286,500); -- Claw of the Grimling Slayer + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7295})) then -- Dirk of the High Grimling + e.other:Faction(e.self,1513,2); -- Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,7296,500); -- Dirk of Grimling Slaying + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7289})) then -- Great Sword of the High Grimling + e.other:Faction(e.self,1513,2); -- Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,7290,500); -- Great Sword of Grimling Slayer + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7291})) then -- Hammer of the High Grimling + e.other:Faction(e.self,1513,2); -- Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,7292,500); -- Hammer of Grimling Slayer + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7287})) then -- Short Sword of the High Grimling + e.other:Faction(e.self,1513,2); -- Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,7288,500); -- Short Sword of Grimling Slayer + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7293})) then -- Staff of the High Grimling + e.other:Faction(e.self,1513,2); -- Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,7294,500); -- Staff of Grimling Slayer + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Aljuum_Mohim.lua b/sharvahl/Aljuum_Mohim.lua new file mode 100644 index 0000000..15453d8 --- /dev/null +++ b/sharvahl/Aljuum_Mohim.lua @@ -0,0 +1,25 @@ +--Aljuum_Mohim + +function event_say(e) + if(e.message:findi("wolves")) then + e.self:Say("The wolves that I speak of have no need for sight. They are products of the darkness that surrounds us. Their ability to move in the darkness and attack in packs makes them a serious threat to any Vah Shir that walks beyond our city's gates. I fear them more than I fear the twisted little people that live in the caves around here. It is the duty of each citizen to help control the number of these creatures. Fill the bag that I just handed you with the jawbones of two young sonic wolves and I'll know that you have a real understanding of the ferocity of those creatures. If you return, I'll have something that you may find interesting."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5967})) then + e.self:Say("That is quite a lute. Gawfed has an incredible gift in that area. I don't have the patience to build instruments. I prefer to use my time for other things. I'm sure that Gawfed will fill you in on the more delicate side of our craft when he gets over his holiday. Until that time, I'll get you started on the other part of being a Jharin. Here, take your lute and this bag. Once you get that stowed away, buy me a drink. If you can guess my favorite drink, I'll start you on your lesson."); + e.other:QuestReward(e.self,{items = {5967,17112}}); -- Item: Blue Cloth Bag + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 22154})) then + e.self:Say("Very good! I guess I should get you started.' He says as he finishes the drink that you just purchased. 'Our kin have encountered a number of beasts since the time of our arrival here. Your lesson today will center around one such creature. Maybe that will give you a better understanding of our role here. Bah, Taruun scouts... a real Jharin can do twice as much in combat... well, I digress. You're here to learn about [wolves], not my petty animosities."); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 6157})) then + e.self:Say("How was your little encounter with those beasts? Quite nasty in combat, eh? I told you as much. Well, now that you've seen them firsthand, I'll tell you how to deal with them like a true hunter. Take this hilt piece and show Hana Sulm. She'll give you some sketches. Once you have those sketches, go to Arms Historian Qua and purchase the tomes on Wolf Bane Lore or something like that. He'll know what you mean. You can use those books and the sketches to make a weapon that offers considerable power against those wolves. Once you have the weapon, bring it to me with your apprentice cloak. I'll have something for you. Now go away and let me finish this drink."); + e.other:Faction(e.self, 1513,10 ); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,6144); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 6158, item2 = 5966})) then + e.self:Say("Congratulations "..e.other:GetCleanName()..". You have successfuly navigated to the status of Journeyman. Take your dagger and this cloak, wear it with pride."); + e.other:QuestReward(e.self,{items = {6159,6158},exp = 10000}); -- Item: Sonic Wolf Bane Dagger + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Amat_Iuziq.lua b/sharvahl/Amat_Iuziq.lua new file mode 100644 index 0000000..fe323d5 --- /dev/null +++ b/sharvahl/Amat_Iuziq.lua @@ -0,0 +1,77 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met, friend. May I be of assistance?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6265},0)) then + e.self:Say("So friend, I see Jaima is preparing you to deal with the sonic wolves. Have you heard the term 'sonic wolf' used yet? We call them that because of the face they do not use eyes like an ordinary wolf. They have overcome the night by using a sensory system similar to that of a bat. I sure hope we do not turn into such monstrosities over time... Blasted darkness! Well, back to your situation. You have your strainer, I'm sure. Now, you'll need to purchase the Sonic Wilf Bane books from my frien Qua in the other library and read them. Once you've read them, please take this voucher to Arrin Murij at the general mercantile. He will give you the staff that you will need for your weapon. Good luck, friend."); + e.other:QuestReward(e.self,0,0,0,0,6266); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5544, item2 = 6268})) then + e.self:Say("Well done " .. e.other:GetCleanName() .. "! You have proven your worth and can now be considered a Dar Khura Journeyman!"); + e.other:QuestReward(e.self,{items = {6267,6268},exp = 10000}); -- Item: Sonic Wolf Bane Spear + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Amgah_Siman.lua b/sharvahl/Amgah_Siman.lua new file mode 100644 index 0000000..734cc20 --- /dev/null +++ b/sharvahl/Amgah_Siman.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met. friend. May I be of assistance?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Animist_Imotmeh.lua b/sharvahl/Animist_Imotmeh.lua new file mode 100644 index 0000000..fbc2109 --- /dev/null +++ b/sharvahl/Animist_Imotmeh.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Everyone is on patrol right now. Grab a cot if you're tired. No one will mind."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Animist_Mahron_Sood.lua b/sharvahl/Animist_Mahron_Sood.lua new file mode 100644 index 0000000..7f34d36 --- /dev/null +++ b/sharvahl/Animist_Mahron_Sood.lua @@ -0,0 +1,83 @@ +--Feed the Hopper Quest +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail mate. Did you need something from me or are you looking to do me a [favor]?"); + elseif(e.message:findi("favor")) then + e.self:Say("I've been playing with this little hopper for a while with the hopes of maybe domesticating him. He's fond of grimling parts, so that's what I bring him when I come over here to sit around and work on my leatherwork. I'll make you a deal... If you bring me four grimling toes or finger bones, I'll trade them for one of my leather pieces. Don't mix them up though.... I'm trying to see which he likes best... fingers bones or toes."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3918, item2 = 3918, item3 = 3918, item4 = 3918})) then --Finger bones x 4 + e.self:Say("Thanks, here is your reward!"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(7079,7074,7071,7078,7075,7072,7081,7073,7080,7076,7082,7077),1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3812, item2 = 3812, item3 = 3812, item4 = 3812})) then --Grimling toes x 4 + e.self:Say("Thanks, here is your reward!"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(7079,7074,7071,7078,7075,7072,7081,7073,7080,7076,7082,7077),1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3670})) then --BL Quest --2 + e.self:Say("I can tell by the manner in which you approached me that Poren did not explain what I would require of you, little friend. Your development as a Khati Sha will be demanding. Our expectations of you should only be exceeded by your own. Our namesake, Khati Sha, was an unrivalled hero to our people. The story of his life is an example that you will be expected to learn. You will be expected to research and explore the path that he took and strive to understand what that path means for the future of our people. Take this map to Kery Miann. She will start you on the path."); + e.other:QuestReward(e.self,0,0,0,0,5571); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Animist_Poren.lua b/sharvahl/Animist_Poren.lua new file mode 100644 index 0000000..371863d --- /dev/null +++ b/sharvahl/Animist_Poren.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ", it is good to see you. If you have come for the first stage of Khati Sha training please show me your acrylia slate."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2877})) then --Acrylia Slate of Shar Vahl + e.self:Say("I have much for you to do " .. e.other:GetCleanName() .. ". There is great need for capable Khati Sha in this new land. It is important that you progress speedily. We need to outfit you with the equipment that defines our chosen path. Well start with your battleclaws... But be aware of the fact that it will take you some time before can use both sets in combat. Just keep them both with you while you learn."); + e.self:Say("Take this stitching pack and combine two shade silks from the xakra worms. Combine two of the resulting threads to make a bandage. Take this pattern and sew together three of the bandages. With considerable practice this will produce the handwraps that will be a foundation for your first sacred weapon. When you have created them return to me the scrap material."); + e.other:QuestReward(e.self,{items = {17237,2877,3663}}); --Khati Sha Handwrap Pattern, Stitching Pack, Acrylia Slate of Shar Vahl + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3665})) then --Shade Silk Scraps + e.self:Say("Ahh, you have done well young one. Now it is time for you to create claws of your own, and those handwraps are the base. You will need a few things to complete them, however. Combine those handwraps in your stitching pack along with two sharp claws from the young rockhoppers in the pit around our city, as well as some forged fasteners."); + e.self:Say("Im afraid I am unsure where you can find the fasteners, though you might ask Kagazz about them. You can find him over near the forges. Return and hand me both claws, and your cloak as proof of your deeds."); + e.self:Say("Oh, and dont worry about destroying your handwraps. They are well made and though you may not be successful in making your claws, they will last. Now you best move along and get started, as we still have much to do!"); + e.other:QuestReward(e.self,0,0,0,0,0,300); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3668, item2 = 3669, item3 = 2878})) then --Primary Silk Khati Sha Recruit Claw, Secondary Silk Khati Sha Recruit Claw, Initiate's Cloak of Shar Vahl + e.self:Say("Well, you're off to a slow start, but it is a start. You will do well to accomplish your tasks in a more timely fashion. You have chosen a path full of trials, . I say again, time is of the essence. Take my seal to Mahron Sood and prepare yourself for the upcoming challenges."); + e.other:QuestReward(e.self,{items = {3673,3674,3670,3675},exp = 500}); --Seal of Animist Poren, Primary Khati Sha Recruit Claw, Secondary Khati Sha Recruit Claw , Cloak of the Khati Sha Recruit + e.self:Shout("Friends, I have news to share! It has taken longer than it should, but at last has completed our initiatory tasks and will now be given the priveleges reserved for the Khati Sha recruits!. Soon we hope to have this citizen ready to aid in the exploring of this new land. Please give support in whatever ways you can and trouble this recruit as little as possible, for seems to be easily distracted."); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Apprentice_Garr.lua b/sharvahl/Apprentice_Garr.lua new file mode 100644 index 0000000..cea1d59 --- /dev/null +++ b/sharvahl/Apprentice_Garr.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met, friend. May I be of assistance?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Apprentice_Hirata.lua b/sharvahl/Apprentice_Hirata.lua new file mode 100644 index 0000000..5a4f131 --- /dev/null +++ b/sharvahl/Apprentice_Hirata.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("How may I assist you?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Apprentice_Omosh.lua b/sharvahl/Apprentice_Omosh.lua new file mode 100644 index 0000000..68918d1 --- /dev/null +++ b/sharvahl/Apprentice_Omosh.lua @@ -0,0 +1,79 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail " .. e.other:GetCleanName() .. ". Do you need assistance with anything?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_signal(e) + e.self:Say("Where would we go, sire? We have been here for some time and for most of that time, we have been at war. Is there something more that we have not discovered?"); +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Apprentice_Rawkel.lua b/sharvahl/Apprentice_Rawkel.lua new file mode 100644 index 0000000..86e74d9 --- /dev/null +++ b/sharvahl/Apprentice_Rawkel.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". May I help you?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Apprentice_Siason.lua b/sharvahl/Apprentice_Siason.lua new file mode 100644 index 0000000..444c4c2 --- /dev/null +++ b/sharvahl/Apprentice_Siason.lua @@ -0,0 +1,84 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome friend. May I help you?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Is the energy related to the Spirits, sire?"); + end + if(e.signal == 2) then + e.self:Say("... but, what sort of energy is it sire? Can you understand its nature?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Armorer_Nimij.lua b/sharvahl/Armorer_Nimij.lua new file mode 100644 index 0000000..d2c75bf --- /dev/null +++ b/sharvahl/Armorer_Nimij.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Are you looking for something special, friend?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Arms_Historian_Qua.lua b/sharvahl/Arms_Historian_Qua.lua new file mode 100644 index 0000000..1a4fb85 --- /dev/null +++ b/sharvahl/Arms_Historian_Qua.lua @@ -0,0 +1,21 @@ +function event_waypoint_arrive(e) + if(e.wp == 1) then + e.self:Emote("hums while he sorts through the books that rest on the various shelves."); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail citizen, may I help you find a book or are you looking for assistance with something else? "); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9049})) then + e.self:Say("It is a pleasure to meet you, " .. e.other:GetCleanName() .. ". The Animists mentioned that someone would be by, but for me not to wait, so I sent the information that they requested to Weapons Master Rahoul. He is having a master smith finish the blades."); + e.self:Say("Take him this receipt and I'm sure that he'll get you the weapons as soon as possible. Take care. It appears that a lot of people are relying on you in this matter. You may be the only person that can do this."); + e.other:QuestReward(e.self,0,0,0,0,9050); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Arms_Researcher_Saulgan.lua b/sharvahl/Arms_Researcher_Saulgan.lua new file mode 100644 index 0000000..59261e0 --- /dev/null +++ b/sharvahl/Arms_Researcher_Saulgan.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail and Well Met! If you are here to get a weapon of the Horde converted, let me see it. If not, please speak to Wygans. Don't worry, he may be tough as nails, but he won't bite you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7182})) then -- Claw of the Horde + e.other:Faction(e.self,1513,2); -- Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,7183,400); -- Claw of Grimling Slaying + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 7192})) then -- Dirk of the Horde + e.other:Faction(e.self,1513,2); -- Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,7193,400); -- Dirk of Grimling Slaying + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 7186})) then -- Great Sword of the Horde + e.other:Faction(e.self,1513,2); -- Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,7187,400); -- Great Sword of Grimling Slaying + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 7188})) then -- Hammer of the Horde + e.other:Faction(e.self,1513,2); -- Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,7189,400); -- Hammer of Grimling Slaying + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 7184})) then -- Short Sword of the Horde + e.other:Faction(e.self,1513,2); -- Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,7185,400); -- Short Sword of Grimling Slaying + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 7190})) then -- Staff of the Horde + e.other:Faction(e.self,1513,2); -- Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,7191,400); -- Staff of Grimling Slaying + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Armsman_Khaigesh.lua b/sharvahl/Armsman_Khaigesh.lua new file mode 100644 index 0000000..a78361c --- /dev/null +++ b/sharvahl/Armsman_Khaigesh.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("lesson")) then + e.self:Say("A warrior must learn to be patient and pay attention to detail. Take the bag that I've just given you and fill it with Acrylia flecked nuggets. When hunting the moor, we often found rocks and ore wedged in the shells of the beetles that roam there. Kill the beetles that walk near the city's gates and pry their shells apart. You should be able to gather a decent amount of ore that way. Once you've filled the bag that I've given you, return here with the bag and your Skeletonbane short sword and I'll teach you something new."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3452})) then + e.self:Say("I can see by your armaments, that Hebijeb has started you along the path of bravery. That's a very good foundation for a young Khala Dun recruit to build upon. Bravery is an important trait, but you will need to learn discipline and patience. The blacksmithing that we do as Khala Dun helps to reinforce and reflect upon those traits. Take this bag and I will help you with your next [lesson]."); + e.other:QuestReward(e.self,{items = {17604,3452}}); -- Item: Dusty Pouch + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5553, item2 = 3454})) then + e.self:Say("You're scruffy and you smell, but you're a fast enough learner.' He says as he pulls a leather strap out of his waistband and carefully wraps it around the hilt of your sword. He hands the sword back to you hilt first and says, 'Wrapping the hilt in that manners allows you to grip the sword better and hit harder. Take the sword and show it to Noril Galoon. He will instruct you further."); + e.other:Faction(e.self,1513,10); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,5545,2000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5550, item2 = 5545, item3 = 3453})) then + e.self:Say("Excellent work! You're progressing nicely, young warrior. You are well suited to the path of the Khala Dun. Take this new cloak and wear it proudly. You have earned the right to consider yourself an Apprentice of the Khala Dun. Please speak to Guard Kuash and show him your new buckler."); + e.self:Shout("Citizens and travelers, please welcome, " .. e.other:GetCleanName() .. " to the rank of Apprentice to the noble Khala Dun! We should all serve our people in such an honorable fashion!"); + e.other:Faction(e.self,1513,5); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,{items = {5545,5557,5550},exp = 3000}); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Arrin_Murij.lua b/sharvahl/Arrin_Murij.lua new file mode 100644 index 0000000..7359ed4 --- /dev/null +++ b/sharvahl/Arrin_Murij.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met. friend. May I be of assistance?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6266},0)) then + e.self:Emote("reaches behind the counter and pulls up a large spear shaft. 'Here you go, friend.' He says as he hands the staff to you. 'Be sure to take your finished spear back to Amat when you're done with it. He'll need to see your sonic wolf bane spear and the apprentice cloak you have on before he can promote you to the next rank. If he isn't able to promote you, I can't send out any more vouchers. That's an order from the General. We're training citizens as fast as we can. The war with the grunts seems to be picking up. Well, take care friend and say hello to Amat for me. He's an old war buddy of mine.'"); + e.other:QuestReward(e.self,0,0,0,0,6147); -- Item: Dar Khura Spear Shaft + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Banker_Kjarl.lua b/sharvahl/Banker_Kjarl.lua new file mode 100644 index 0000000..0bed517 --- /dev/null +++ b/sharvahl/Banker_Kjarl.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to the Royal Coin and Mint of Shar Vahl. His majesty King Raja Kerrath guarantees all deposits in his benevolence. We also have storage available for your gear. Please rest assured that your treasured items are safe with us."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Banker_Naudi.lua b/sharvahl/Banker_Naudi.lua new file mode 100644 index 0000000..be2104a --- /dev/null +++ b/sharvahl/Banker_Naudi.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome! I am pleased to announce that the Royal Coin and Mint of Shar Vahl has made arrangements to make sure you are able to access your money and valued items from any other bank. Our Benevolent King Raja Kerrath ensures that this is a safe and efficient method of transaction."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Barkeep_Babagyn.lua b/sharvahl/Barkeep_Babagyn.lua new file mode 100644 index 0000000..a1f42fd --- /dev/null +++ b/sharvahl/Barkeep_Babagyn.lua @@ -0,0 +1,81 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to my tavern. Grab yerself an ale and have yerself a good time. If you're lucky you'll catch one of our [shows]."); + elseif(e.message:findi("show")) then + e.self:Say("We have regular performances by many talented travelers. Mostly passing traders from [Shadow Haven] who just want to have a good time."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("A traders outpost within the heart of Luclin. The trade route runs through the Shadeweavers Thicket. You'd best be careful if you are planning on going through there. There have been many [bandit] attacks."); + elseif(e.message:findi("bandit")) then + e.self:Say("They've been raiding the trade routes through the thickets for a while now. Times are tough lately. Brigands to the south and Grimlings to the north. You're pretty safe here in the city though. Our walls are sturdy and our Royal Khala Dun are the finest warriors I've laid eyes on. Enough chitchat, have yerself a drink."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Barkeep_Nejat.lua b/sharvahl/Barkeep_Nejat.lua new file mode 100644 index 0000000..5233548 --- /dev/null +++ b/sharvahl/Barkeep_Nejat.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Can I pour you a drink, friend?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Barkeep_Rawlf.lua b/sharvahl/Barkeep_Rawlf.lua new file mode 100644 index 0000000..86bc351 --- /dev/null +++ b/sharvahl/Barkeep_Rawlf.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Yea, yea, I heard you the first time. Just tap me when you're ready to buy a drink."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Barracks_Guard_Myrik.lua b/sharvahl/Barracks_Guard_Myrik.lua new file mode 100644 index 0000000..709fb3c --- /dev/null +++ b/sharvahl/Barracks_Guard_Myrik.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Can I do something for you, friend?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Brewer_Mikkis.lua b/sharvahl/Brewer_Mikkis.lua new file mode 100644 index 0000000..734cc20 --- /dev/null +++ b/sharvahl/Brewer_Mikkis.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met. friend. May I be of assistance?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Brewmaster_Hizier.lua b/sharvahl/Brewmaster_Hizier.lua new file mode 100644 index 0000000..3365b6d --- /dev/null +++ b/sharvahl/Brewmaster_Hizier.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Can I assist you with something?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Broker_Fahaar.lua b/sharvahl/Broker_Fahaar.lua new file mode 100644 index 0000000..efcb882 --- /dev/null +++ b/sharvahl/Broker_Fahaar.lua @@ -0,0 +1,45 @@ +--Progressive Taioling Quest +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello " .. e.other:GetCleanName() .. ", if you know any citizens looking for work please tell them to show me their acrylia slate."); + elseif(e.message:findi("belt strap")) then + e.self:Say("Belt straps are cut from medium quality rockhopper hides. Just take the knife and cut a strap out of a good section in the hide. The medium quality hides are nice and tough, but you have to search a bit to find a decent strip in the material. Good luck with it."); + elseif(e.message:findi("black chitin belts")) then + e.self:Say("Black chitin belts are made by using the Vah Shir needle set and a Shade Silk to thread some sections of scorpion carapace onto a rough belt strap. The belts look great and they are rumored to make you feel stronger. You'll want to use the Vah Shir needle set I just gave you with the silk, as normal needles will most likely break off if you try to push them through a scorpion carapace."); + elseif(e.message:findi("bone beaded belts")) then + e.self:Say("Bone beaded belts are made by threading grimling finger bones onto a rough belt strap with a Shade silk thread. The bones are often tough to pierce, so you'll have to use your Vah Shir needle set on them. Be careful not to poke yourself."); + elseif(e.message:findi("owlbear feathered leggings")) then --text ad lib no log available + e.self:Say("Owlbear feathered leggings are made by stitching owlbear feathers to a sonic wolf pelt. Go ahead and use shade silk thread also but you will need more than with the belts. Stories are told of the pelt and feathers combining to protect against magic, but you know how stories go. Remember to use your new acrylia needle to stitch everything together."); + elseif(e.message:findi("owlbear hide tunic")) then + e.self:Say("Owlbear hide tunics are notoriously difficult to make; you'll need to use your acrylia needle to sew two owlbear hides together. You'll need two lengths of Shade Silk thread for the stitching, as well as a tunic pattern."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2877})) then --Acrylia Slate of Shar Vahl + e.self:Say("Excellent. I can always use someone eager to work. I require young rockhopper hides to stretch for some special tailoring projects. Combine in this sack the hides of four young rockhoppers and return to me the full hopperhide sack. I will give you a stretched hide in return."); + e.other:QuestReward(e.self,{items = {2877,17236}}); --Acrylia Slate of Shar Vahl, Young Hopperhide Sack + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3661})) then --Full Hopperhide Sack + e.self:Say("Very nice. I thank you " .. e.other:GetCleanName() .. ". Here is the stretched hide I promised and a leather cord I made from the scraps. If you have no need for the hide itself, any merchant will purchase it from you. If you desire to become my apprentice, save four of the cords that you earn from me and return them when you desire to learn more. May the spirits guide and protect you!"); + e.other:QuestReward(e.self,{items = {3655,3656},exp = 1000}); --Stretched Hopperhide, Leather Cord + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3656, item2 = 3656, item3 = 3656, item4 = 3656})) then --Leather Cord x 4 + e.self:Say("So you wish to learn the way of the Vah Shir tailors, do you? I assure you it is among the most difficult to master of any of the great Vah Shir disciplines, but one of the most rewarding as well. If you truly wish to learn how to manipulate fabrics and materials of all types you'll have to start with a basic task. Take this Vah Shir skinning knife and use it to cut a [belt strap]. Once you feel that you've mastered that task, bring me an example of your work and the Vah Shir skinning knife I gave you and we'll start you on some needle work."); + e.other:QuestReward(e.self,0,0,0,0,3913,1000); --Vah Shir Skinning Knife + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3922})) then --Rough Belt Strap + e.self:Emote("briefly glances at the strap and throws it over his shoulder. He then says"); + e.self:Say("I can tell it's hurried work, but it will do. I suppose you're ready to learn some needlework. The needlework really makes the belt. Here, this needle set will allow you to learn the basics of our trade. You'll want to practice on some [Black Chitin Belts] and some [Bone Beaded Belts]. Bring me one example of each of these and your needle set to show me that you've mastered the basics of this sort of needlework. If your work is good enough you might be able to sell a piece or two as well."); + e.other:QuestReward(e.self,0,0,0,0,3914,1000); --Vah Shir Needle Set + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3914, item2 = 3924, item3 = 3925})) then --Vah Shir Needle Set, Bone Beaded Belt, Black Chitin Belt + e.self:Say("You're getting better, " .. e.other:GetCleanName() .. ", these are very well done. I believe you're ready to take the acrylia needle that is so necessary to our work. With this needle you'll be able to pierce even the toughest hides almost effortlessly, as well as to stitch the most delicate fabrics without tearing them. The first thing you should work on with this needle are some [Owlbear feathered leggings]. When you have managed to fashion a set of these, bring them to me with your acrylia needle and I'll provide the final tool for your journey toward master tailor."); + e.other:QuestReward(e.self,0,0,0,0,3915,1000); --Acrylia Needle + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3915, item2 = 3926})) then --Acrylia Needle, Owlbear Feathered Leggings + e.self:Say("Well done, " .. e.other:GetCleanName() .. ". These leggings are truly the work of an aspiring master tailor. I have just received word from the palace that the king is planning a celebration in the near future, and he wishes the guards to have new uniforms. Take this case and fill it with [owlbear hide tunics] and take it to Elder Hymnist Hortitosh on the roof of the palace. I'm sure the king will be pleased with your work."); + e.other:QuestReward(e.self,{items = {17109,3916},exp = 1000}); --Clothing Case, Acrylia Thimble and Needle Set + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3921})) then --Order Receipt + e.self:Say("Well done, " .. e.other:GetCleanName() .. ". You have done very well and the king is pleased. You have been a great help to me filling that order for the king. Here, take this jerkin and wear it with pride. All who see it will know that you are an accomplished tailor and a friend of Fahaar!"); + e.other:QuestReward(e.self,0,0,0,0,3927,2000); --Sleek Sonic Wolf Hide Jerkin + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Brokh.lua b/sharvahl/Brokh.lua new file mode 100644 index 0000000..0efb72f --- /dev/null +++ b/sharvahl/Brokh.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hey there. If you need any ammo. just dig through my bags and see if there is anything there to suit your needs. My prices are fair and the quality is good."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Captain_Jhulim.lua b/sharvahl/Captain_Jhulim.lua new file mode 100644 index 0000000..e90d5cf --- /dev/null +++ b/sharvahl/Captain_Jhulim.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("If you're bothering me it must be something important... so, what is it?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Chogar.lua b/sharvahl/Chogar.lua new file mode 100644 index 0000000..d156f6e --- /dev/null +++ b/sharvahl/Chogar.lua @@ -0,0 +1,80 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. Would you care to dabble in the art of ceramics? My prices are quite fair. Feel free to make use of my pottery wheel if you would like to try your hand in the art."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5955})) then --Vase Pieces + e.self:Say("I can do nothing to repair this mess, but a skilled potter like you should be able to create a new one with little trouble. One second please. I'll jot a rough sketch of what I surmise the original looked like when it was intact. You can take the sketch and make a new one. It will require of you a medium sized block of clay, a little water, and this sketch. Here you go. The sketch is a little crude, but I am sure that it will suffice. Fire it with a quality firing sheet and give the resulting product to Gawfed. Jihli told me that he was eager to receive it."); + e.other:Faction(e.self,1513,1); -- Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,5956); --Rough Vase Sketch + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Cook_Mylis.lua b/sharvahl/Cook_Mylis.lua new file mode 100644 index 0000000..ba51187 --- /dev/null +++ b/sharvahl/Cook_Mylis.lua @@ -0,0 +1,16 @@ +--Zone: Shar Vahl ID: 155208 -- Cook_Mylis +function event_say(e) + if(e.message:findi("spicy fish stew")) then + e.self:Say("Ohhh, I love fish stew and it's fairly simple to make. If you're looking to make a large pot of it, you'll want to be sure that you have enough ingredients ready from the start. Gather up a flask of water, a jug of sauce, some spices and two wetfang steaks. Cook them in an oven in a large stewing pot. For being so foul, those wetfangs sure taste good. Throw all of that in to simmer for a bit and you're ready to go."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Cook_Yalkiin.lua b/sharvahl/Cook_Yalkiin.lua new file mode 100644 index 0000000..b74ffab --- /dev/null +++ b/sharvahl/Cook_Yalkiin.lua @@ -0,0 +1,43 @@ +--Cook Yalkiin Quests +--Beetle Claw Stew +--Worm Meat Broth +--Vegetables +--Also turn in for Taruun Apprentice quest +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to our kitchen! As you can tell we stay pretty busy in here. There are a lot of people to feed and a vast number of delicious meals to feed them. I'm in charge of preparing [stews], [broth], and [vegetables]. If you ever have any questions about those areas. please let me know."); + elseif(e.message:findi("vegetables")) then + e.self:Say("I could go on forever about vegetables. There is such a huge variety to choose from and so much that you can do with... well... come back a bit later and we can talk about them in greater detail."); + elseif(e.message:findi("stews")) then + e.self:Say("Stews are a staple in this kitchen. When a cook can't think of a real meal or needs to feed a large number of people in a hurry, they can always whip up a stew. You have to be able to adapt and provide, friend. That's our role here. We're here to make sure people eat. When food is abundant, we can be as lavish as we please. When I'm in a hurry or out of supplies, I like to throw some [beetle claws] in some boiling broth and... bam! It's soup!"); + elseif(e.message:findi("beetle claws")) then + e.self:Say("Beetle claw stew is quick, easy, and fills stomachs. The main ingredient comes from the Rhino Beetles that can be found in abundance around the city. We use the claws in a variety of dishes, so we can always use a few more. Here, I can give you a bag if you want to go gather some for me. Just fill it up and come back."); + e.other:SummonCursorItem(17074); -- Item: Stained Mesh Bag + elseif(e.message:findi("broth")) then + e.self:Say("I can make broth from just about anything. Meat, water, and spices can be turned into a base broth for just about and stew or sauce. The current favorite around here comes from the meat of the large worms that come up from the earth around the base of our city. I know that they look horrid, but they really do taste great! If you want to help, I will pay for every four servings that you bring me."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local chanceitem = 0; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10390, item2 = 10390, item3 = 10390, item4 = 10390})) then + e.self:Emote("looks at each piece of meat before wrapping them in a spiced cloth. 'These look like good cuts of meat. I hope that this will suffice as payment,' he says as he stacks the wrapped meat on the counter."); + e.other:QuestReward(e.self,0,0,4,0,eq.ChooseRandom(30580,30577,30579,30572),1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 10391})) then + e.self:Emote("tosses the bag in a pile with several others and hands you your payment. 'Thank you very much,' he says. 'The more of these that I can gather, the better. I always seem to be low.'"); + if(math.random(100) < 35) then + chanceitem = eq.ChooseRandom(30581,30578,2752,2754,2758); + end + e.other:QuestReward(e.self,0,0,6,0,chanceitem,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5559})) then + e.self:Say("I'd love to fill this order, but we're out of the meat that he likes. We've been very busy today, so I doubt that any of us will be able to get out to gather more of it. If you could go out and grab us a few slabs, we could not only fill the order, I could put some away for anyone else that may come through today. This sounds like a perfect task for a young Taruun recruit. Fill this bag with the fatty meat from a young Owlbear and bring it back to me right away. I'll get Joharr's sandwiches as soon as you return with the meat."); + e.other:QuestReward(e.self,0,0,0,0,17608); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5562})) then + e.self:Emote("opens the bag and immediately begins to slice the meat into thin sheets. He throws the meat on a few slices of bread and wraps the whole thing up with a hand full of vegetables. 'Here you go, friend!' He says as he hands you what appears to be a lunch bag. 'Joharr should love these sandwiches! The meat that you brought us was great. If you ever need a job as a butcher, just let us know. Take care and tell Joharr I said hello.'"); + e.other:Faction(e.self,1513,5); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,5563,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Dar_Khura_Ahmih.lua b/sharvahl/Dar_Khura_Ahmih.lua new file mode 100644 index 0000000..345629a --- /dev/null +++ b/sharvahl/Dar_Khura_Ahmih.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met, friend. May I be of assistance?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Dar_Khura_Aylin.lua b/sharvahl/Dar_Khura_Aylin.lua new file mode 100644 index 0000000..c4a6b4d --- /dev/null +++ b/sharvahl/Dar_Khura_Aylin.lua @@ -0,0 +1,13 @@ +function event_signal(e) + e.self:DoAnim(51); --clap +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Dar_Khura_Guraat.lua b/sharvahl/Dar_Khura_Guraat.lua new file mode 100644 index 0000000..acc0e18 --- /dev/null +++ b/sharvahl/Dar_Khura_Guraat.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("How may I help you?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Dar_Khura_Hamat.lua b/sharvahl/Dar_Khura_Hamat.lua new file mode 100644 index 0000000..c4a0ec7 --- /dev/null +++ b/sharvahl/Dar_Khura_Hamat.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("How may I help you? What are you looking for?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Dar_Khura_Hylaar.lua b/sharvahl/Dar_Khura_Hylaar.lua new file mode 100644 index 0000000..acc0e18 --- /dev/null +++ b/sharvahl/Dar_Khura_Hylaar.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("How may I help you?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Dar_Khura_Jeruk.lua b/sharvahl/Dar_Khura_Jeruk.lua new file mode 100644 index 0000000..28f4181 --- /dev/null +++ b/sharvahl/Dar_Khura_Jeruk.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("How may I assist you?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Dar_Khura_Pyjek.lua b/sharvahl/Dar_Khura_Pyjek.lua new file mode 100644 index 0000000..a82bcba --- /dev/null +++ b/sharvahl/Dar_Khura_Pyjek.lua @@ -0,0 +1,27 @@ +-- Quest: Tailfang +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("And hail to you adventurer. It is good to see one willing to brave the craters. I must warn you that there are deadly [scorpions] all around these parts. Some of them are quite large indeed, and their poison can be very deadly.") + elseif(e.message:findi("scorpions")) then + e.self:Say("It would be a great help if you assist us in reducing their numbers. As their numbers grow, more and more of them venture into our city and endanger our citizens. [Spiritist Ragnar] has supplied me with the means to create an anti venom, but I will need one of their stingers in order to do so. If you bring one of their stingers to me, I will cure you of such poisons.") + elseif(e.message:findi("Spiritist Ragnar")) then + e.self:Say("Spiritist Ragnar is the owner of the alchemy shop in the merchants quarters. He has been researching the venom of the whiptail scorpions. If you happen to find any of their glands, it would be a tremendous help to him if you could supply him with some of these glands. Use caution, for there is a deadly one still roaming out there. We call him [Tailfang]. I would suggest steering clear of this little sucker? he is particularly nasty.") + elseif(e.message:findi("Tailfang")) then + e.self:Say("Tailfang has been responsible for many attacks. He is quite sly, and as yet our Taruun have been unable to find him. I saw him once, long ago. I was searching for bluecapped mushrooms among the stones when I saw something shiny underneath one of the rocks. As I got closer to look, Tailfang sprung at me with a dagger in hand no less! I swear this on my honor, although I still cannot believe it myself. I tried to slay the little bugger, but he ran off. I did get his dagger though, it's yours if you bring me proof of his death.") + end +end +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30667})) then + e.self:Say("Great spirit you've done it! Thank you " .. e.other:GetCleanName() .. ". we are in your debt. You have earned this weapon of the venomous scourge. wield it with honor and pride."); + e.other:Faction(e.self,1513,20); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,30783,75000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by Deselminator +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Dar_Khura_Shavra.lua b/sharvahl/Dar_Khura_Shavra.lua new file mode 100644 index 0000000..ad257fa --- /dev/null +++ b/sharvahl/Dar_Khura_Shavra.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Lo there wanderer. Something is amiss within the region, have you not felt it? I sense a [whisperling] nearby."); + elseif(e.message:findi("whisperling")) then + e.self:Say("A whisperling, who brings us dreams, you cannot see them. They do no harm, but I sense anger in them. They have made an enemy. If you are willing to aid us in our research, please seek Groo McManus in the shadeweavers thicket, he has some insight on these whisperlings."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30961})) then + e.self:Say("Oh " .. e.other:GetCleanName() .. "! This is a whisperling. and she is beautiful! You must find a way to free her of this anchor. Take her to Ragnar. he may know what to do. Let me put her in this bag to keep her safe for now."); + e.other:Faction(e.self,1513,1); --Guardian of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,30962,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Delival.lua b/sharvahl/Delival.lua new file mode 100644 index 0000000..f4e78eb --- /dev/null +++ b/sharvahl/Delival.lua @@ -0,0 +1,39 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_signal(e) + if(e.signal==1) then + e.self:Emote("sighs and says, 'My hands are full right now hon.' Delival looks your way curiously and asks, 'I don't suppose you would want to [tuck] her in for me if I give you a blanket?'"); + elseif(e.signal==2) then + e.self:Say("Yes, yes, goodnight now sweetheart."); + eq.depop(); + end +end + +function event_say(e) + if(e.message:findi("tuck")) then + e.self:Say("Thank you again, have been a great help. Here is her favorite blanket, just give it to her and she should be fine. G'night Shainai."); + e.other:QuestReward(e.self,0,0,0,0,4478); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4460})) then + e.self:Say("Well I wish there was more I could do to repay you. Take this old compass and what change I can spare with my most sincere thanks. Now off to bed Shainai, you have had a busy day."); + e.other:Faction(e.self,1513,4); --Guardian of Shar Vahl + eq.set_timer("goodnight",10000); + e.other:QuestReward(e.self,12,9,0,0,12000,100); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(); + elseif(e.timer == "goodnight") then + eq.signal(155339,1); -- NPC: Shainai + end +end diff --git a/sharvahl/Dharr_Nadim.lua b/sharvahl/Dharr_Nadim.lua new file mode 100644 index 0000000..086251f --- /dev/null +++ b/sharvahl/Dharr_Nadim.lua @@ -0,0 +1,118 @@ +--Dharr's Lure Quests +function event_spawn(e) + eq.set_timer("1",95000); +end + +function event_timer(e) + if(e.timer == "1") then + local rand = math.random(8); + if(rand == 1) then + e.self:Say("Get your new sturdy fishing pole here, take it on your next adventure!"); + end + if(rand == 2) then + e.self:Say("My special fishing bait will attract the best tasting fish, while keeping the Wetfangs away!"); + end + if(rand == 3) then + e.self:Say("Come this way, get a great deal on fishing supplies. Everything needed for your next outing!"); + end + if(rand == 4) then + e.self:Say("Come check out my wares for all of your fishing needs! Poles, Bait, and Stout, all in one stop!"); + end + if(rand == 5) then + e.self:Say("Tired of getting the ones that you have to throw back? Buy my special bait, you will real in the big ones!"); + end + if(rand == 6) then + e.self:Say("Hey you look like a mighty fisherman! Come buy a pole from me and catch the big ones!"); + end + if(rand == 7) then + e.self:Say("Come up, buy my gear for your next fishing trip!"); + end + if(rand == 8) then + e.self:Say("Why not take an extra fishing pole with you on your travels, light and easy to carry."); + end + end +end + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Step up. step up! Please take a moment to purchase some supplies from me. Times are hard and my [luck] has been bad."); + elseif(e.message:findi("luck")) then + e.self:Say("I have just come from Hollowshade Moor a few weeks ago. My fishing days have been very unprosperous. The lures that I have now are made of low quality Acrylia and scare the fish away rather than attract them. I want to make a new lure, and on my way in I noticed the dull color of the [scorpions]. I would have moved closer to them but unfortunately I am deathly allergic to the poisons found in scorpion venom."); + elseif(e.message:findi("scorpions")) then + e.self:Say("The scorpions are at the bottom of the canyon surrounding the city. If you can bring me four shells to make a few lures, I will give you my old lure. Be careful making your way down the ledges as there are many steep drops."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3648, item2 = 3648, item3 = 3648, item4 = 3648})) then + e.self:Say("Excellent, hopefully my fishing business can start to thrive once again! As I said before you can have this old lure. You won't be able to catch anything with it but maybe you can pawn it off to a jewelry merchant."); + e.other:QuestReward(e.self,0,0,0,0,30694,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Dronqam_Runghi.lua b/sharvahl/Dronqam_Runghi.lua new file mode 100644 index 0000000..817fa8a --- /dev/null +++ b/sharvahl/Dronqam_Runghi.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Good day friend! I'm glad you've stopped by. I am in need of some assistance. Please direct anyone seeking work to me."); + elseif(e.message:findi("seek work")) then + e.self:Say("Excellent! I practice the art of alchemy and I am currently working on some new recipes. I require a few special ingredients. Fortunately they grow in the crater just outside our city walls. Bring me a redcapped mushroom. a pinch of scarlet moss and a bluecapped mushroom. I'll be most grateful."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3446, item2 = 3447, item3 = 3448})) then + e.self:Say("Wonderful! I have little to offer you for your trouble aside from my gratitude. Here is a pinch of acrylia dust. I know it's not much. If you have no need for it go to Mignah, he can always use all kinds of acrylia."); + e.other:QuestReward(e.self,{itemid = 3449}); -- Item: Pinch of Acrylia Dust + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Elam_Arruk.lua b/sharvahl/Elam_Arruk.lua new file mode 100644 index 0000000..d360345 --- /dev/null +++ b/sharvahl/Elam_Arruk.lua @@ -0,0 +1,89 @@ +function event_say(e) + if(e.message:findi("task")) then + e.self:Say("You will need to begin familiarizing yourself with the moor and its inhabitants. As a scout, there is one creature that roams the moor that you are going to need to focus on in particular. These creatures are wolf-like in their appearance, but have no need for sight and show absolutely no fear of the tactics that we usually use to scare off animals. They move in packs and attack swiftly. To learn their behavior, you will need to track a few down. Fill that bag with a few of their tongues and bring it back to me. Once you have seen them, I will be able to teach you more."); + elseif(e.message:findi("new recruit")) then + e.self:Say("Well... perhaps you should head to the combat training grounds and pick up a few pointers. Walk west along the ledge that runs just outside of the city's walls and you shouldn't be able to miss it."); + elseif(e.message:findi("at it for a bit")) then + e.self:Say("Good good... keep at it! We need all of the strong willed thick headed Khala Dun we can muster! Now, get back to the fight!"); + elseif(e.message:findi("ore")) then + e.self:Say("The ore that I require is often used to create living rock formations. These collections of rocks and boulders will often leave a trail of energy that causes other rocks to collect and come to life. Our scouts have seen these formations in a variety of areas. Take care when you attempt to gather this ore."); + elseif(e.message:findi("void")) then + e.self:Say("If you look in the Maiden's Eye, you will find entities that are the embodiment of darkness. Their twisted spirits are not allowed to escape the form that they inhabit. They have no hope of escape, unless they are released during the destruction of their material form. There are some occasions when the power that is used to keep them in this realm will turn upon itself during this period of destruction. This process is what produces the Gems of the Void."); + elseif(e.message:findi("padding")) then + e.self:Say("When traversing the Deep, you will run across a shrieking fungus. Those creatures are much more durable and dangerous than the other fungi that you may encounter in the caverns of Luclin. It is for this reason that we use their flesh as padding. Take care when hunting them, for they will provide a good challenge."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5558},0)) then + e.self:Say("see that you have experienced some training from Elder Ternq. He is an amazing scout and very exciting to watch in combat. Years prior to being commissioned to act in this role, I served with the young Scout Ternq. Of course we were both much younger and more agile back in those days. Much like you are now. Ah well, enough with this chatter. Take this bag and stow it somewhere safe. I have a [task] for you."); + e.other:QuestReward(e.self,{items = {5558,17117}}); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 6274},0)) then + e.self:Say("Very good " .. e.other:GetCleanName() .. ", not only have you had a chance to see the creatures, you have also provided me with lunch. I hope that you learned something from your encounter. Those wolves, or sonic wolves as the Dar Khura call them, have destroyed more than a few scouting expeditions. Over the years, our research into the origins of these beasts has proven fruitful. We have found a means of making a weapon that reacts to their flesh. These items will assist you in making that item."); + e.self:Emote("hands you a dagger hilt and a mortar and pestle and says, 'Those items are to be used to not only produce your personal weapons, but to aid any other citizen that may be in need of the component that we, as Taruun, are best suited to produce... the poison. I understand that you are still young and new to poisons, but this will be an easy process for you. You will need only to grind the ingredients up in that mortar and pestle. Then heat the resulting powder in an oven by placing the powder and some water in a poison vial. Be sure not to over cook it.'"); + e.self:Say("You will need to visit the Library of War History and purchase a book on the construction of this weapon. Read it and construct the weapon. I recall that the scholar that sells the book was also working on a construction kit for the weapons. Please take your finished weapon and your apprentice cloak to Elder Taruun Ternq. I am sure that he will be curious about your progress."); + e.other:QuestReward(e.self,{items = {6146,17110}}); -- Item: Taruun Hilt Piece + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Elder_Animist_Dumul.lua b/sharvahl/Elder_Animist_Dumul.lua new file mode 100644 index 0000000..92be114 --- /dev/null +++ b/sharvahl/Elder_Animist_Dumul.lua @@ -0,0 +1,48 @@ +function event_say(e) + if(e.message:findi("spiritual") ) then + e.self:Say("Well, my prying little friend. Someone as inquisitive as you may be of use to us. Perhaps you were sent to us by the very ones we seek to help. The spirits are capable of far more impressive manipulations. If any time warrants such trickery or nudging of fate, I would guess that this day would qualify. Be aware of one thing, youth... the beastlord that follows the path I see before us this day may not return to this house unscathed... if they return to me at all. If you are the Khati Sha I seek, prove your worth in combat and return to me with the Copper Medal of War. You can get this medal from assisting the soldiers in the Grimling Forest."); + elseif(e.message:findi("ready")) then + e.self:Say("As you may have gathered during our first meeting, we have been dealing with a situation that differs from any that we have dealt with in the past. We dismissed the situation as improbable at first, but unfortunately we have just attained certain proof. Our scouts have found that an individual has discovered a means of manipulating elder spirits. These spirits have a great deal of power over their natural environments. This person has used some new magic to take that power for himself"); + elseif(e.message:findi("new magic")) then + e.self:Say("The scouts were able to witness some of the rituals used to capture the spirits. They described a process that involved the use of a wooden totem, shaped in the image of the spirit's true form. The magic-user is able to use that totem to siphon the power of the spirit. He then uses that power to transform the spirit into an entity of malign intent. Fortunately, our research has given us the name of this vile magic-user."); + elseif(e.message:findi("name")) then + e.self:Say("His name is Draz Nurakk. It appears that he has learned the ways of the Khati Sha to the point of mastery. His magic and will seem to defy even the darkest secular beliefs of his people. We harbor no ill will toward the Iksar, but this individual must be stopped. This leads us to your mission."); + elseif(e.message:findi("mission")) then + e.self:Say("We need you to meet our scouts and assist them in releasing the spirits that have already been affected by this magic. None of the scouts have reported in for some time, so you will need to find them. Once you find them, show them the seal that I gave you. They will help you to release the spirits and capture the totems. Please have the scouts help you to place the totems in the case that I gave you. If you lose the seal or damage it in combat, please return to me for another. Good luck, " .. e.other:GetCleanName() .. ". You must succeed if we are to maintain the balance of the spiritual realm."); + elseif(e.message:findi("lost seal") or e.message:findi("lost my seal") or e.message:findi("lost the seal")) then + if(e.other:GetFaction(e.self) < 3) then + e.other:SummonCursorItem(9031); -- Item: Official Seal of the Khati Sha + else + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9061})) then + e.self:Say("Thank you, young courier. I will not need anything more from you at this time. We have a great deal of research to do and absolutely no time to complete said studies. Did the Historian tell you anything? Matters are bad enough without rumors floating about in the shadows. Speak up... did you hear anything about our situation?"); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4393}) or item_lib.check_turn_in(e.self, e.trade, {item1 = 4375}) or item_lib.check_turn_in(e.self, e.trade, {item1 = 4378})) then + e.self:Say("You have returned at a most opportune time, " .. e.other:GetCleanName() .. ". If this medal is indicative of your abilities in combat, I may be able to find a slight amount of hope soon. We have learned answers for many of the questions that we had prior to your last visit. Please take this seal and this container. Place them somewhere safe, while I gather the information that we've accumulated so far. Let me know when you have the seal packed and are ready to be briefed. Should you ever lose it, just ask for another."); + e.other:Faction(e.self,5064,900); + e.other:QuestReward(e.self,{items = {9031,17361}}); -- Item: Carved Wooden Chest + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 9044})) then + e.self:Say("I have received word from several of our scouts indicating your impending arrival. We are all very pleased that you were able to release all of the spirits before any true harm could manifest itself. Your efforts have not only restored balance to the spirit realm, they seem to have also acted to hinder any other plans our antagonist may have had... for the time being."); + e.self:Say("Our Taruun scouts have discovered Draz Nurakk's location. A scout has returned from a set of islands on the Old World. The islands are in a place called Timorous. The Taruun returned while leaving a scout behind to insure that the foul Animist does not evade us any further. You will need to find the island on which our scout has set up camp. The island has a great statue on it. Hopefully, he will still be in that location. Show him this seal and he will know that I sent you to assist."); + e.other:QuestReward(e.self,0,0,0,0,9045); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 9048})) then + e.self:Say("My fears were well founded, and I am glad that I have had people that are able to understand those fears. Please do not think that I have intentionally placed you in the path of harm, but I did have my suspicions about our adversary's strength. I am not surprised that he was able to deceive us in this manner. I thank the spirits that you were able to evade harm in your completion of this task."); + e.self:Say("Take this note to Arms Historian Qua. He has been researching a means of circumventing any protective magic that Draz Nurakk may have in place. When you meet him next, you will be well equipped to complete the restoration of balance to the spirit realm. Make your way to Qua and do as he says."); + e.other:QuestReward(e.self,0,0,0,0,9049); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 9055, item2 = 9056})) then + e.self:Say("These claws are exquisite. I can see that a great deal of thought went into their design. Now it is your turn to demonstrate your proficiency in your chosen role. You have a great challenge ahead of you, for we have determined that only these claws will work to harm this dark animist, this corrupter of spirits. You will need the support of your people; but in the end, only the strength of your will can save us."); + e.self:Say("Our scouts have tracked Draz Nurakk to an abandoned village in the Fungus Grove. We learned of his intent to track you down. I take it that he did not appreciate your willingness to assist us. He knows who you are, so it will be best for us to get him before he can conjure up any more surprises. Find Scout Halmia in the Grove and give her this seal. Then bring the evidence of his destruction to me when you are done. Place his head, the seal, and those claws in this box and return it to me."); + e.other:QuestReward(e.self,{items = {9055,9056,9057,17362}}); -- Item: Jagged Claw of Rending, Khati Sha Seal of War + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 9060})) then + e.self:Emote("opens the container and looks at its contents and says, '" .. e.other:GetCleanName() .. ", you have saved the balance of the spirit realm. Your selflessness has made an impression that will last well beyond the effects of your recent deeds. The inhabitants of this realm are all in your debt. Your efforts to restore balance in the material realm have been worth more than we can reward you for.'"); + e.self:Shout("Citizens of Shar Vahl, please take the time to acknowledge the efforts of a true champion and hero to our people. " .. e.other:GetCleanName() .. " has worked valiantly with great personal risk, to restore balance to our realm. We, the Khati Sha of Shar Vahl, feel that only a spirit as strong as " .. e.other:GetCleanName() .. " can be entrusted with the Claws of the Savage Spirit. Please take this time to give " .. e.other:GetCleanName() .. " your thanks and respect."); + e.other:QuestReward(e.self,{items = {8496,8495}}); -- Item: Claw of the Savage Spirit + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Elder_Animist_Sahdi.lua b/sharvahl/Elder_Animist_Sahdi.lua new file mode 100644 index 0000000..a5d41da --- /dev/null +++ b/sharvahl/Elder_Animist_Sahdi.lua @@ -0,0 +1,33 @@ +function event_say(e) + local qglobals = eq.get_qglobals(e.self,e.other); + if(e.message:findi("hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". Are you one of our new recruits?"); + elseif(e.message:findi("yes")) then + e.self:Say("In that case, it's very nice to meet you! When you aren't working on your requirements for citizenship, you may want to make your way out to the pit to practice some basic combat skills. There is a training camp for new recruits, just outside of the western city wall. It's just on the other side of the royal palace. If you walk along the ledge, you won't be able to miss it."); + elseif(e.message:findi("no")) then + e.self:Say("Well, then how may I help you?"); + elseif(e.message:findi("application") and tonumber(qglobals.Shar_Vahl_Cit) == 1) then + e.self:Say("Luckily for you someone found it."); + e.other:SummonCursorItem(2873); -- Item: Application for Citizenship + elseif(e.message:findi("cloak") and tonumber(qglobals.Shar_Vahl_Cit) == 7) then + e.self:Say("Someone found a rockhopper chewing on this in the pit. Try not to lose it this time."); + e.other:SummonCursorItem(2878); -- Item: Initiate's Cloak of Shar Vahl + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "This item, by itself, means nothing to me."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18849})) then -- Khati Sha Guild Summons + e.self:Say("" .. e.other:GetCleanName() .. ", welcome to the Animist's guild. You have grown strong in the safety of our city and it is now time for you to register for official citizenship of Shar Vahl. The Khati Sha, explorers of this hostile land, have granted your request of inclusion and deem you to be worthy of our training. Take this application to Registrar Bindarah and return to me with proof of your citizenship."); + e.self:Say("I know that you may be nervous right now... after all, this should be a very exciting first step for you. If you happen to get lost while looking for the registrar, just ask one of the other citizens or guards for directions. They will most likely know where to find the place or person that you are looking for."); + eq.set_global("Shar_Vahl_Cit","1",5,"F"); + e.other:QuestReward(e.self,{itemid = 2873,exp = 20}); -- Application for Citizenship + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 2897,item2 = 2877}, 1, text)) then + e.self:Say("Allow me to be the first to welcome you to the Khati Sha, lords of the beasts. Accept this cloak, young initiate. It is a symbol of your loyalty to our noble people. May it serve you as you serve us all. Present your acrylia slate to Animist Poren and he will give you instruction. May the spirits of the beasts guide you and keep you safe."); + eq.set_global("Shar_Vahl_Cit","7",5,"F"); + e.other:QuestReward(e.self,{items = {2877,2878},exp = 450}); -- Item: Acrylia Slate of Shar Vahl, Initiate's Cloak of Shar Vahl + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Elder_Hymnist_Hortitosh.lua b/sharvahl/Elder_Hymnist_Hortitosh.lua new file mode 100644 index 0000000..af008cc --- /dev/null +++ b/sharvahl/Elder_Hymnist_Hortitosh.lua @@ -0,0 +1,43 @@ +function event_say(e) + local qglobals = eq.get_qglobals(e.self,e.other); + if(e.message:findi("hail")) then + e.self:Say("Hail. Are you here to assist with something specific or just looking for something to do?"); + elseif(e.message:findi("application") and tonumber(qglobals.Shar_Vahl_Cit) == 1) then + e.self:Say("Luckily for you someone found it."); + e.other:SummonCursorItem(2873); -- Item: Application for Citizenship + elseif(e.message:findi("cloak") and tonumber(qglobals.Shar_Vahl_Cit) == 7) then + e.self:Say("Someone found this under a table at the one of the pubs. Try not to lose it this time."); + e.other:SummonCursorItem(2878); -- Item: Initiate's Cloak of Shar Vahl + elseif(e.message:findi("essence of sonnet")) then + e.self:Emote("stops what he is doing and looks at you, most surprised, 'An essence of sonnet? I have never produced such a thing my friend, though the fact that you would even request one from me is very flattering.' His eyes leave your face and settle off in the distance somewhere as he continues, 'I was present once when one was created... it was beautiful. I was only a child, but there was no mistaking the significance. Oh how I would love to produce such a thing myself- an accomplishment without peer for one of my art. They say that the inspiration must be genuine, should you know of something that could inspire me so then by all means, I will see if I have an essence of sonnet within me.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "This item, by itself, means nothing to me."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18324}, 0)) then + e.self:Emote("opens the diary and reads. Before long he is utterly engrossed in the story of purest love that you have given him, and it begins. You are something less than fully aware of what happens next, the wind whistles and you could swear that the room fills with light though you could not prove it. A moment later, a sense of completeness has filled you. All you know for sure is that Hortitosh stands before you, fully spent, and you hold in your hand what could only be an essence of sonnet."); + e.other:QuestReward(e.self,0,0,0,0,5991); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18552}, 0)) then -- Hymnist Guild Summons + e.self:Say("Our newest instrumentalist arrives! You have grown strong in the safety of our city and it is time now for you to repay our society. The Jharin, keepers of our history, accept you and deem you to be worthy of our training. Take this application to Registrar Bindarah and return to me with proof of your citizenship."); + e.self:Say("I know that you may be nervous right now... after all, this should be a very exciting first step for you. If you happen to get lost while looking for the registrar, just ask one of the other citizens or guards for directions. They will most likely know where to find the place or person that you are looking for."); + eq.set_global("Shar_Vahl_Cit","1",5,"F"); + -- Confirmed Live Faction + e.other:QuestReward(e.self,{itemid = 2873,exp = 20}); -- Application for Citizenship + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 2897,item2 = 2877}, 1, text)) then + e.self:Say("" .. e.other:GetCleanName() .. ", citizen of Shar Vahl, accept this cloak as a symbol of your loyalty and service to our noble people. It will grow with you, young initiate, and like you it has incredible potential. Present your slate of citizenship to Gherik and he will guide you through your early training. May your songs inspire us all!"); + eq.set_global("Shar_Vahl_Cit","7",5,"F"); + e.other:QuestReward(e.self,{items = {2877,2878},exp = 450}); -- Item: Acrylia Slate of Shar Vahl, Initiate's Cloak of Shar Vahl + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3920}, 0)) then + e.self:Say("These are finely crafted indeed, " .. e.other:GetCleanName() .. ". Merchant Fahaar told me you were quite the prodigy, but don't tell him I told you that. Take this receipt and show it to Fahaar and tell him the king is quite pleased with both your work, and his teaching!"); + e.other:QuestReward(e.self,0,0,0,0,3921,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Elder_Scout_Kyth_Lar.lua b/sharvahl/Elder_Scout_Kyth_Lar.lua new file mode 100644 index 0000000..3945ee9 --- /dev/null +++ b/sharvahl/Elder_Scout_Kyth_Lar.lua @@ -0,0 +1,65 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met. Friend. May I be of assistance?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end diff --git a/sharvahl/Elder_Spiritist_Grawleh.lua b/sharvahl/Elder_Spiritist_Grawleh.lua new file mode 100644 index 0000000..a5896a7 --- /dev/null +++ b/sharvahl/Elder_Spiritist_Grawleh.lua @@ -0,0 +1,41 @@ +function event_say(e) + local qglobals = eq.get_qglobals(e.self,e.other); + if(e.message:findi("application") and tonumber(qglobals.Shar_Vahl_Cit) == 1) then + e.self:Say("Luckily for you someone found it."); + e.other:SummonCursorItem(2873); -- Item: Application for Citizenship + elseif(e.message:findi("cloak") and tonumber(qglobals.Shar_Vahl_Cit) == 7) then + e.self:Say("Someone found a grimling wearing this in the pit. Try not to lose it this time."); + e.other:SummonCursorItem(2878); -- Item: Initiate's Cloak of Shar Vahl + elseif(e.message:findi("love potion")) then + e.self:Say("Love potion? Sounds intriguing but not familiar, I am afraid I cannot help you. However, if I were looking for information about potions and the alchemical arts, I would see Spiritist Ragnar. He has a shop just outside of the palace."); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it.."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "This item, by itself, means nothing to me."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30962})) then + e.other:QuestReward(e.self,0,0,0,0,15225); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18551})) then -- Dar Khura Guild Summons + e.self:Say("Good " .. e.other:GetCleanName() .. ", I am honored to meet you. You have come of age and it is time for you to register for citzenship of Shar Vahl. The Dar Khura, spiritual guides of our people, have sensed your spirit and deem you to be worthy of our training. First things first, take this application to Registrar Bindarah and return to me with proof of citzenship."); + e.self:Say("I know that you may be nervous right now... after all, this should be very exciting first step for you. If you happen to get lost while looking for the registrar, just ask one of the other citizens or guards for directions. They will most likely know where to find the place or person that you are looking for."); + eq.set_global("Shar_Vahl_Cit","1",5,"F"); + e.other:QuestReward(e.self,{itemid = 2873,exp = 20}); -- Application for Citizenship + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 2897,item2 = 2877}, 1, text)) then --Notorized Application + e.self:Say("Welcome back, " .. e.other:GetCleanName() .. "! I see that your documents are in order and you are an official citizen of Shar Vahl, which is great news! Let me be the first to welcome you to the ranks of the Dar Khura! Here, take this cloak and wear it with pride."); + e.self:Say("Present your acrylia slate to spiritist Fehril and he will guide you through your early training. May the strongest of our ancestral spirits be your inspiration."); + eq.set_global("Shar_Vahl_Cit","7",5,"F"); + e.other:QuestReward(e.self,{items = {2877,2878},exp = 450}); -- Item: Acrylia Slate of Shar Vahl, Initiate's Cloak of Shar Vahl + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30963}, 0)) then + e.self:Emote("examines the contents of the bag carefully. This is no ordinary spirit " .. e.other:GetCleanName() .. ". It is a whisperling, a bringer of dreams. You are quite lucky, I think she will go with you. She will be able to protect you from cold magic. If you need more protection you can call on her to help you endure the cold. This is how the Dar Khura weave their spells, we ask the spirits for their aid. This scroll will show you how to call on her for her protection. You will also need to construct her a more suitable spirit anchor. This claw will not contain her much longer. Please hurry to Ragnar with the claw and a fresh [bloodling carapace]. It may buy us some time before she fades away."); + e.other:QuestReward(e.self,{items = {15225,30964},exp = 1000}); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Elder_Taruun_Ternq.lua b/sharvahl/Elder_Taruun_Ternq.lua new file mode 100644 index 0000000..43ef6a2 --- /dev/null +++ b/sharvahl/Elder_Taruun_Ternq.lua @@ -0,0 +1,85 @@ +--Rogue --3 +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Taruun Scout Building. May I help you?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5564})) then + e.self:Say("I see that Joharr introduced you to our cavern dwelling friends. This report shows that you were very successful on your last patrol. Your progress as a Taruun is most pleasing. You have shown us that you are ready to advance to the level of apprentice. I will send someone for your new cloak in a moment. While I am doing that, please use this bowl to prepare some spicy fish stew and take it to Kerr Tiparr in the Hollowshade outpost. It's not often that they get good food out there. If you don't remember the recipe, just ask cook Mylis. When you are done, please return with your old cloak and the empty pot. Always remember... Service to the community should always precede any thoughts of personal advancement."); + e.other:Faction(e.self,1530,10); -- Faction: Taruun + e.other:QuestReward(e.self,0,0,0,0,5570,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5567, item2 = 3465})) then + e.self:Say("Very well done," .. e.other:GetCleanName() .. ". Take this cloak and wear it with pride. May it keep your silhouette hidden from our enemies and keep you safe from those things that may walk in shadows darker than ours. Your work is being noticed, young Taruun. Please keep a clear eye on the path that lies before you. Speak to Elam Arruk when you are ready to continue your training. You will need only to show him the cloak that I just gave you. He will know how to instruct you from there. Be well."); + e.self:Shout("Hear me fellow Vah Shir! The Taruun have seen fit to escalate citizen " .. e.other:GetCleanName() .. " to the rank of apprentice. He grows in strength and wisdom daily. We are proud as should you all be. May this student of our ways continue to progress and live worthy of our noble heritage."); + e.other:Faction(e.self,1530,20); -- Faction: Taruun + e.other:QuestReward(e.self,0,0,0,0,5558,2500); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5558, item2 = 6158})) then + e.self:Say("Well done. Take this new cloak and wear it with pride. You can now be called journeyman!"); + e.self:Shout("Hear me fellow Vah Shir! The Taruun have seen fit to escalate citizen " .. e.other:GetCleanName() .. " to the rank of journeyman. He grows in strength and wisdom daily. We are proud as should you all be. May this student of our ways continue to progress and live worthy of our noble heritage."); + e.other:QuestReward(e.self,{items = {6158,6275},exp = 10000}); -- Item: Cloak of the Taruun Journeyman + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Erat_Almar.lua b/sharvahl/Erat_Almar.lua new file mode 100644 index 0000000..986576e --- /dev/null +++ b/sharvahl/Erat_Almar.lua @@ -0,0 +1,18 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Eh, what do you mean by peculiar?"); + end + if(e.signal == 2) then + e.self:Say("Whoa! What did you do?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Fharra_Cawfeet.lua b/sharvahl/Fharra_Cawfeet.lua new file mode 100644 index 0000000..0219145 --- /dev/null +++ b/sharvahl/Fharra_Cawfeet.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("appears to be on the verge of collapsing from exhaustion. 'Please leave this area. These citizens are very ill.' She says as she rubs her eyes."); + elseif(e.message:findi("told") or e.message:findi("task") or e.message:findi("no")) then + e.self:Say("I was called to this house a few days ago, because several members of a recent scouting group have been running slight fevers. The fever is nothing that should alarm you but we will need to tend to them. Tending to the sick is one of our duties as Dar Khura. Would you be [willing] to run some errands for me? I cannot leave these scouts unattended."); + elseif(e.message:findi("willing") or e.message:findi("errand")) then + e.self:Say("I need you to make a tonic to help aleviate their fevers. Please head into the cavern system just beyond the thicket. Gather the hearts of muck diggers that roam those caverns. Their hearts seem to regulate the temperature of their body and can be used in potions and tonics to control temperature in a similar fashion. Brew two of those hearts with a flask of water and it should produce the tonic I need. Please, fill a blackened clay jar with tonic. Try to make it back before I fall over from exhaustion."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3495})) then + e.self:Emote("looks like she has been awake for many hours. She looks up and says 'Are you here to assist me with these sick citizens? I was told that a few of our newest Dar Khura recruits might be coming to aid me. I could definitly use the help. Here, take the jar while I explain. Were you told about the [tasks] that I need help with?' The room is filled with the smell of aromatic herbs and the sweat of the feverish."); + e.other:QuestReward(e.self,{items = {3495,17077}}); -- Item: Treated Hopperhide Buckler + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5536})) then + e.self:Emote("perks up when you hand her the jar. 'Many thanks,' she exclaims, as she digs in her medicine bag. 'Your assistance is greatly appreciated. Please take this tincture. It will help to strength your buckler. Mydi Darjik can help you apply it. She is a friend and a wonderful alchemist. Tell her that you need her to treat your buckler. Take care, friend!'"); + e.other:QuestReward(e.self,0,0,0,0,5537); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Friaz_Ompir.lua b/sharvahl/Friaz_Ompir.lua new file mode 100644 index 0000000..8f7721a --- /dev/null +++ b/sharvahl/Friaz_Ompir.lua @@ -0,0 +1,83 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well, hello there... what can I assist you with?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18321})) then + e.self:Say("Ahhh... I see that Noril is trying to get out of work. That lad is a lazy one. Not a problem though... you'll do all the same. Here, let me add a few more things to that list, since you look nice and strong. Take this list and my grocery bag and I'll see about scrounging up the beetle horns that Noril's been bugging me about."); + e.other:QuestReward(e.self,{items = {17606,18322}}); -- Item: Friazs New Shopping List + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5548})) then + e.self:Say("I thank you, " .. e.other:GetCleanName() .. ". I should make Noril come get these horns himself, but I guess that I can understand what it feels like to be too busy to get everything done. You've been a great help to me today. Give these horns to Noril and tell him that I thank him for your assistance. Take care, young one."); + e.other:QuestReward(e.self,0,0,0,0,5549); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Garl.lua b/sharvahl/Garl.lua new file mode 100644 index 0000000..62cd202 --- /dev/null +++ b/sharvahl/Garl.lua @@ -0,0 +1,96 @@ +function event_spawn(e) + eq.set_timer("1",110000); +end + +function event_timer(e) + if(e.timer == "1") then + local rand = math.random(1,3); + if(rand == 1) then + e.self:Say("Hey! You! Come take a look at these shields. Not only will they prevent disfiguring scars, but they are great protection from the rain as well. I'll cut you a deal, come have a look."); + end + if(rand == 2) then + e.self:Say("Hail traveler! Come take a look at my shields. They can save your life."); + end + if(rand == 3) then + e.self:Say("You there! Dare you venture out unprotected? It won't do you any harm to take one of my shields with you."); + end + end +end + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("You look like a wandering type. How about a shield to protect you from bone crushing fangs?' Garl smacks his fist against a large kite shield. 'These are solid as they come! You won't regret the purchase my friend."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Gawra.lua b/sharvahl/Gawra.lua new file mode 100644 index 0000000..89ac0dc --- /dev/null +++ b/sharvahl/Gawra.lua @@ -0,0 +1,83 @@ +function event_spawn(e) + eq.set_timer("1",80000); +end + +function event_timer(e) + e.self:Say("Hey there! Come take a look at my torches. It beats hunting in the dark. I have food and bandages."); +end + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail wanderer. I have basic supplies available if you are interested. Have a look."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Gendalic.lua b/sharvahl/Gendalic.lua new file mode 100644 index 0000000..1bd81f6 --- /dev/null +++ b/sharvahl/Gendalic.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("eye's you, obviously distrustful of your intrusion. He soon loses interest in your and goes back to looking at the much more interesting crack patterns on the walls."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/General_Avilah.lua b/sharvahl/General_Avilah.lua new file mode 100644 index 0000000..9691cc2 --- /dev/null +++ b/sharvahl/General_Avilah.lua @@ -0,0 +1,30 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 8467})) then + e.self:Say("Thank you for delivering this. While I have you here, perhaps you can help. We are in dire need of assistance in the moor. All of the reports from our Taruun are indicating the same thing. The area has to be swept clear of the factions that currently inhabit it. The land itself seems defendable, we need someone to gather some soldiers and clear the area."); + e.self:Say("If you accomplish this mission for us, I will be able to reward you for your actions in this leadership role. You will need only to return this box to me to collect your reward and promotion. It will need to contain a grimling chieftain staff, an owlbear guardian talon, a sonic wolf guardian fang, and your Journeyman's Cloak. Good luck to you, should you elect to accept this challenge."); + e.other:QuestReward(e.self,0,0,0,0,17133,10000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 8475})) then + e.self:Say("You have proven to be a great leader and excellent soldier. Please accept this cloak as a symbol of your accomplishment. We would be proud to have you as a member of our ranks. You can choose to stay within the ranks of your sect or you can work with us was a member of the Shar Vahl Garrison. If you wish to continue your work as a member of the garrison, please take this form, sign it in triplicate and give it to Captain Darznel. Either way, please stand still, while I offer you our formal salutation."); + e.self:Shout("Ahem... Citizens of Shar Vahl, Attention! It is my duty and honor as commander of the Shar Vahl Garrison to thank " .. e.other:GetCleanName() .. " for their fine work. Give 'em your complete respect and salute 'em when you see them in passing. We enjoy our freedom, because of brave citizens like " .. e.other:GetCleanName() .. ". Thank you for your time... Carry on!"); + e.other:QuestReward(e.self,{items = {8412,8471}}); -- Item: Dar Khura Garrison Cloak + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 8488})) then + e.self:Say("You have proven to be a great leader and excellent soldier. Please accept this cloak as a symbol of your accomplishment. We would be proud to have you as a member of our ranks. You can choose to stay within the ranks of your sect or you can work with us was a member of the Shar Vahl Garrison. If you wish to continue your work as a member of the garrison, please take this form, sign it in triplicate and give it to Captain Darznel. Either way, please stand still, while I offer you our formal salutation."); + e.self:Shout("Ahem... Citizens of Shar Vahl, Attention! It is my duty and honor as commander of the Shar Vahl Garrison to thank " .. e.other:GetCleanName() .. " for their fine work. Give 'em your complete respect and salute 'em when you see them in passing. We enjoy our freedom, because of brave citizens like " .. e.other:GetCleanName() .. ". Thank you for your time... Carry on!"); + e.other:QuestReward(e.self,{items = {8409,8471}}); -- Item: Jharin Garrison Cloak + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 8489})) then + e.self:Say("You have proven to be a great leader and excellent soldier. Please accept this cloak as a symbol of your accomplishment. We would be proud to have you as a member of our ranks. You can choose to stay within the ranks of your sect or you can work with us was a member of the Shar Vahl Garrison. If you wish to continue your work as a member of the garrison, please take this form, sign it in triplicate and give it to Captain Darznel. Either way, please stand still, while I offer you our formal salutation."); + e.self:Shout("Ahem... Citizens of Shar Vahl, Attention! It is my duty and honor as commander of the Shar Vahl Garrison to thank " .. e.other:GetCleanName() .. " for their fine work. Give 'em your complete respect and salute 'em when you see them in passing. We enjoy our freedom, because of brave citizens like " .. e.other:GetCleanName() .. ". Thank you for your time... Carry on!"); + e.other:QuestReward(e.self,{items = {8413,8471}}); -- Item: Taruun Garrison Cloak + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 8490})) then + e.self:Say("You have proven to be a great leader and excellent soldier. Please accept this cloak as a symbol of your accomplishment. We would be proud to have you as a member of our ranks. You can choose to stay within the ranks of your sect or you can work with us was a member of the Shar Vahl Garrison. If you wish to continue your work as a member of the garrison, please take this form, sign it in triplicate and give it to Captain Darznel. Either way, please stand still, while I offer you our formal salutation."); + e.self:Shout("Ahem... Citizens of Shar Vahl, Attention! It is my duty and honor as commander of the Shar Vahl Garrison to thank " .. e.other:GetCleanName() .. " for their fine work. Give 'em your complete respect and salute 'em when you see them in passing. We enjoy our freedom, because of brave citizens like " .. e.other:GetCleanName() .. ". Thank you for your time... Carry on!"); + e.other:QuestReward(e.self,{items = {8411,8471}}); -- Item: Khala Dun Garrison Cloak + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 8491})) then + e.self:Say("You have proven to be a great leader and excellent soldier. Please accept this cloak as a symbol of your accomplishment. We would be proud to have you as a member of our ranks. You can choose to stay within the ranks of your sect or you can work with us was a member of the Shar Vahl Garrison. If you wish to continue your work as a member of the garrison, please take this form, sign it in triplicate and give it to Captain Darznel. Either way, please stand still, while I offer you our formal salutation."); + e.self:Shout("Ahem... Citizens of Shar Vahl, Attention! It is my duty and honor as commander of the Shar Vahl Garrison to thank " .. e.other:GetCleanName() .. " for their fine work. Give 'em your complete respect and salute 'em when you see them in passing. We enjoy our freedom, because of brave citizens like " .. e.other:GetCleanName() .. ". Thank you for your time... Carry on!"); + e.other:QuestReward(e.self,{items = {8410,8471}}); -- Item: Khati Sha Garrison Cloak + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Gherik_Alarhun.lua b/sharvahl/Gherik_Alarhun.lua new file mode 100644 index 0000000..0312516 --- /dev/null +++ b/sharvahl/Gherik_Alarhun.lua @@ -0,0 +1,20 @@ +--Bard Cloak 2 +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2877}, 0)) then + e.self:Say("Good day " .. e.other:GetCleanName() .. ". I've been expecting you. It is both my duty and my pleasure to oversee this early stage of your training. To begin. you must display basic combat capability. To this end. return to me with three shells of scorpions and I will instruct you further."); + e.other:QuestReward(e.self,0,0,0,0,2877); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3648, item2 = 3648, item3 = 3648}, 0)) then + e.self:Emote("examines the shells, 'These will do fine. I will fashion a buckler from these shells that will help to preserve your life in combat. As I busy myself with its construction I send you on your next task. As a disciple of the Jharin you will become skilled in the art of pottery.'"); + e.self:Say("Grind the femur bone of four grimlings in this container. Take the resulting powder and. in the same container. combine water and xakra worm bile. The resulting clay will yield a special bowl when spun with this sketch and a flask of water on a pottery wheel. Bring the unfired bowl to me."); + e.other:QuestReward(e.self,{items = {17235,3651}}); -- Item: Claymixing Bowl + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3653}, 0)) then + e.self:Emote("carefully inspects the bowl, 'Not bad for a beginner. Fire it in a kiln with a flask of water and a quality firing sheet. Broker Fahaar is in need of your help. It so happens that he can help you as well. He can supply you with the materials to transform your bowl into a drum that will enhance your percussion songs. Show him your acrylia slate and return to me with the bowl of the Jharin, your initiate's cloak, a stretched hopperhide and a leather cord."); + e.other:QuestReward(e.self,0,0,0,0,3653); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3654, item2 = 2878, item3 = 3655, item4 = 3656})) then + e.self:Emote("binds the stretched hide to the bowl with the leather cord, 'Wonderful! You have done well and are ready for the next portion of your training. I have finished your buckler and enhanced your cloak. They will both prove to be very valuable to you in your service to the Vah Shir. Show your buckler to Hymnist Gawfed for further instruction. May your deeds bring honor to the Jharin!'"); + e.self:Shout("People of Shar Vahl, it is with great pleasure that I announce the Jharin has accepted as an official recruit. This honorable citizen will henceforth be charged with the duty of supporting and magnifying the spirit of our people through song while always being eager to help any Vah Shir in need. Please help me in celebrating coming of age!"); + e.other:QuestReward(e.self,{items = {3657,3658,3659},exp = 1000}); -- Item: Drum of the Jharin Recruit, Cloak of the Jharin Recruit + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Golath.lua b/sharvahl/Golath.lua new file mode 100644 index 0000000..7b75e9a --- /dev/null +++ b/sharvahl/Golath.lua @@ -0,0 +1,107 @@ +function event_spawn(e) + eq.set_timer("1",120000); +end + +function event_timer(e) + if(e.timer == "1") then + local rand = math.random(4); + if(rand == 1) then + e.self:Say("All that Bustle! Come relax and have yourself a meal."); + end + if(rand == 2) then + e.self:Say("I have plenty of food and drink. You must be hungry with all that running about."); + end + if(rand == 3) then + e.self:Say("Over there! Come come, Try one of my many great dishes!"); + end + if(rand == 4) then + e.self:Say("Treat yourself to a hot freshly baked moor fish pie! They're fresh!"); + end + end +end + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings friend. Have a look at all this delicious food. If you have any questions about them just ask! That's what I'm here for."); + elseif(e.message:findi("bit")) then + e.self:Say("Don't let the price fool you, my friend. This is a meal fit for royalty. The giant mushrooms are harvested from the Grimling Forest and marinated in a light payala glaze. Fried to a golden brown, these bits will keep you healthy and well fed."); + elseif(e.message:findi("pie")) then + e.self:Say("Our fishermen have returned with the succulent fish found within the Hollowshade Moor. They had to fend off bloodthirsty grimlings to bring you these tasty treats. I've taken the time to bake them into a mouth watering pie. Get em while they're hot!"); + elseif(e.message:findi("bread")) then + e.self:Say("Some of our Taruun have gone forth and returned with pieces of the giant mushroom trees in Grimling Forest. It has a distinct texture and flavor that is delicious when baked into our lightly sweetened bread. Try it, I'm sure you'll like it."); + elseif(e.message:findi("bone")) then + e.self:Say("Despite being tricky to eat, the bone chews are quite popular. Just bite off the end and suck out the marrow. It'll make you strong, try them."); + elseif(e.message:findi("stuffed")) then + e.self:Say("Ahh yes, my favorite. The tender meat of the owlbear makes an excellent stuffing for the giant mushrooms found within the Grimling Forest. Healthy, filling, and pleasing to taste. An excellent meal, try it."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Guard_Jabbar.lua b/sharvahl/Guard_Jabbar.lua new file mode 100644 index 0000000..bf21e76 --- /dev/null +++ b/sharvahl/Guard_Jabbar.lua @@ -0,0 +1,39 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings! You wouldn't happen to be the one delivering the tea I requested from Ahlan, are you?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31766})) then + e.self:Say("Ah the tea! I've been anxiously awaiting your arrival " .. e.other:GetCleanName() .. "! We'd almost run out of this wonderful Gravel leaf tea. Take this seal back to Ahlam, and give him my thanks."); + eq.start(37); + e.other:QuestReward(e.self,0,0,0,0,31775,2000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if(e.wp == 1) then + e.self:Say("Time for dinner you wretches!"); + elseif(e.wp == 3) then + e.self:Say("Wake up maggot, time for dinner!' Guard Jabbar places the meal on the endo fhte bed. The grimling feasts hungrily on it, drinking all the sedative tea in one gulp."); + elseif(e.wp == 4) then + e.self:Emote("kicks the sleeping grimling and sets down another meal tray on the stone bed."); + elseif(e.wp == 7) then + e.self:Emote("grunts at the grimling sitting in the corner and hands him the tray. The grimling fingers the food suspiciously for a moment and then begins to eat."); + elseif(e.wp == 8) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(155209)) then + e.self:Say("Get up Gendalic, time for your evening meal."); + eq.get_entity_list():GetMobByNpcTypeID(155209):Emote("glances up from the ground but ignores Guard Jabbar and continues starying at the wall. He appears to be studying something. perhaps the design of the stones in the wall."); + end + elseif(e.wp == 9) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(155209)) then + e.self:Emote("growls sending a shriver of fear up your spine. He methodically sets the tray down on the ledge and turns to face Gendalic. Quick as lightning, Guard Jabbar strikes Gendalic hard in teh lower back, causing him to lurch forward and smack his face against the wall."); + eq.get_entity_list():GetMobByNpcTypeID(155209):Emote("cries out in pain and and falls to the floor of the cell, guarding his face with his hands. Guard Jabbar glares at him and mutters something under his breath as he turns and walks out of the cell."); + end + elseif(e.wp == 13) then + eq.stop(); + end +end diff --git a/sharvahl/Hana_Sulm.lua b/sharvahl/Hana_Sulm.lua new file mode 100644 index 0000000..af4c029 --- /dev/null +++ b/sharvahl/Hana_Sulm.lua @@ -0,0 +1,73 @@ +function event_say(e) + if(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6144})) then + e.self:Say("Well, you're going to need to practice for a while to make these things. Take these sketches and read up on the lore concerning sonic wolves. You'll learn how to use the sketches. Practice all you can. I'm sure that you're going to have a lot of people coming to you with requests."); + e.other:Faction(e.self, 1513,10 ); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,{items = {6139,6144,6137}}); -- Item: Jharin Hilt Piece, Claw Lining Sketches + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Harbin_Gernawl.lua b/sharvahl/Harbin_Gernawl.lua new file mode 100644 index 0000000..94bd0fe --- /dev/null +++ b/sharvahl/Harbin_Gernawl.lua @@ -0,0 +1,86 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello " .. e.other:GetCleanName() .. ". It is my pleasure to meet you."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2877})) then + e.self:Say("Ahh, " .. e.other:GetCleanName() .. ", I was told you'd be coming. I am Harbin, and I will oversee the next bit of your progress in the Taruun. You have bravely chosen a path that will put your every skill to the test. May your abilities be honed in the service of the noble Vah Shir. To begin, bring me the soft chitin of three of the Rhinobeetles that dwell in the crater surrounding our city."); + e.other:QuestReward(e.self,0,0,0,0,2877); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3455, item2 = 3455, item3 = 3455})) then + e.self:Emote("takes the chitin and deftly fashions a buckler as he speaks, 'Your progress will be reported, " .. e.other:GetCleanName() .. ". For your effort thus far I present you with this buckler. It will help to protect you until you become adept enough to wield a weapon in each of your hands. Meanwhile, it is time for you to practice the skill that Shar Vahl relies on to feed it's people. Following this recipe, deliver four boiled rockhopper eggs to Sergeant Tylah in Hollowshade moor. Return to me with the acrylia he will pay you.'"); + e.other:QuestReward(e.self,0,0,0,0,3456); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3459})) then + e.self:Say("Your progress will be rewarded, " .. e.other:GetCleanName() .. ". Soon all will recognize you as a recruit of the cunning Taruun! Speak with Merchant Rytan. When he is through with you return to me with his seal, your buckler, your initiate's cloak and this seal."); + e.other:QuestReward(e.self,0,0,0,0,3460); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3460, item2 = 3464, item3 = 2878, item4 = 3456})) then + e.self:Say("Your hard work is pleasing to the Taruun, " .. e.other:GetCleanName() .. ", which now accepts you as an official recruit. Wear this cloak with pride. Your buckler has been treated with a special epoxy and should protect you more effectively now. Show the buckler to Taruun Joharr and he will continue to guide you on your sacred path. I sense a strong spirit in you, young one. May it guide you to greatness!"); + e.other:QuestReward(e.self,{items = {3465,3466}}); -- Item: Hardened Buckler of the Beetle + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/High_Armsman_Trukhanah.lua b/sharvahl/High_Armsman_Trukhanah.lua new file mode 100644 index 0000000..2c928d7 --- /dev/null +++ b/sharvahl/High_Armsman_Trukhanah.lua @@ -0,0 +1,29 @@ +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + if(e.message:findi("Hail")) then + e.self:Say("Well met, friend. May I be of assistance?"); + elseif(e.message:findi("application") and tonumber(qglobals.Shar_Vahl_Cit) == 1) then + e.self:Say("Luckily for you someone found it."); + e.other:SummonCursorItem(2873); -- Item: Application for Citizenship + elseif(e.message:findi("cloak") and tonumber(qglobals.Shar_Vahl_Cit) == 7) then + e.self:Say("Someone found this stuck in the top of a palm tree in the center of the plaza. I don't even want to know how it got there, just try not to lose it this time."); + e.other:SummonCursorItem(2878); -- Item: Initiate's Cloak of Shar Vahl + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "This item, by itself, means nothing to me."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18553})) then -- Khala Dun Guild Summons + e.self:Say("Good " .. e.other:GetCleanName() .. ". I am pleased to see you. You have come of age and it is time for you to register as a citizen of Shar Vahl. Your invitation indicates that the Khala Dun, defenders of our society, have noticed you and consider your potential to be worthy of our training. First, take this application to Registrar Bindarah and return to me with proof of your citizenship."); + e.self:Say("I know that you may be nervous right now... after all, this should be a very exciting first step for you. If you happen to get lost while looking for the registrar, just ask one of the other citizens or guards for directions. They will most likely know where to find the place or person that you are looking for."); + eq.set_global("Shar_Vahl_Cit","1",5,"F"); + e.other:QuestReward(e.self,{itemid = 2873,exp = 20}); -- Application for Citizenship + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 2897,item2 = 2877}, 1, text)) then + e.self:Say("Congratulations " .. e.other:GetCleanName() .. "! Welcome to your new life as an official citizen of Shar Vahl. This cloak symbolizes your commitment to serving this people through continuous self-improvement. For now, you must strenghten yourself until you become worthy to train in the way of the Khala Dun. Show your acylia slate to Guard Hebijeb. He will direct you further. May the spirits of our ancestors be your guide."); + eq.set_global("Shar_Vahl_Cit","7",5,"F"); + e.other:QuestReward(e.self,{items = {2877,2878},exp = 450}); -- Item: Acrylia Slate of Shar Vahl, Initiate's Cloak of Shar Vahl + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/High_Spiritist_Jimuul.lua b/sharvahl/High_Spiritist_Jimuul.lua new file mode 100644 index 0000000..4feecc6 --- /dev/null +++ b/sharvahl/High_Spiritist_Jimuul.lua @@ -0,0 +1,21 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("I need to update our king on the progress of your attempts to acquire the mines. What should I tell him?"); + end + if(e.signal == 2) then + e.self:Say("I understand the condition of the areas that you mentioned. My question was related to the mines. In what state are our efforts to control the acrylia mines? I need accurate information on our progress in that area!"); + end + if(e.signal == 3) then + e.self:Say("I cannot speak on that matter at this time."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Historian_Jiira.lua b/sharvahl/Historian_Jiira.lua new file mode 100644 index 0000000..451e194 --- /dev/null +++ b/sharvahl/Historian_Jiira.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings. may I help you. friend?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Historian_Sharar.lua b/sharvahl/Historian_Sharar.lua new file mode 100644 index 0000000..f804fbb --- /dev/null +++ b/sharvahl/Historian_Sharar.lua @@ -0,0 +1,80 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("It is a pleasure to meet you, friend. Please let me know if you have trouble finding the book that you seek. If you request something that we do not have available, I can make a note to keep an eye out for it. We are getting in a great variety of interesting new material these days. Speaking of which, I need someone to take a tome to Elder Animist Dumul. He has been frantically researching something or another. I'm sure that you could pry a little and learn more about it if you were to take this book to him. Is that something that you would be interested in doing?"); + elseif(e.message:findi("yes")) then + e.self:Say("You have a braver spirit than mine, friend, but I'm glad that someone is available to assist me. Take care and keep alert. The Khati Sha seem to be very troubled by something of late."); + e.other:SummonCursorItem(9061); -- Item: Collection of Spirit Lore + elseif(e.message:findi("no")) then + e.self:Say("Well, I do not find fault in your hesitance and recommend that you keep away from the Khati Sha guildhall for the time being. They appear to be working on a very troubling matter of an undisclosed nature. Take care, friend, and let me know if I can assist you in the least."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 8466})) then + e.self:Say("I see that you've found the codger. He really should settle down and come in from the weather. I often find myself worrying about him these days. Adventure takes its toll on everyone. I'd like to see him settle down before the moor takes a final toll from him."); + e.self:Say("Well, I can't say that it isn't a pleasure to have his journal. He's documented the moor with such splendid detail. I cannot wait to see what he's written in these last few seasons. It is all so very helpful. Just take a look at these earplugs. They are a product of his last set of notes. He came up with the idea, while hunting owlbear in the moor. They are supposed to keep the sound they make from harming you. You can keep them, if you take this note to General Avilah for me."); + e.other:QuestReward(e.self,{items = {4461,8467}}); -- Item: Earring of the Owlbear + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Hokar.lua b/sharvahl/Hokar.lua new file mode 100644 index 0000000..d091081 --- /dev/null +++ b/sharvahl/Hokar.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What have we here? A would be adventurer? Better learn to take your foes at range my friend, A few shots can give you a slight advantage in any battle. I've already prepared a few things for purchase, but if you prefer to test your own hand at crafting your weapon of choice I have tools available to help you in that as well."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Hymnist_Gawfed.lua b/sharvahl/Hymnist_Gawfed.lua new file mode 100644 index 0000000..f07834f --- /dev/null +++ b/sharvahl/Hymnist_Gawfed.lua @@ -0,0 +1,39 @@ +function event_say(e) + if((e.message:findi("hail")) and e.other:HasItem( 3659)) then --Buckler of the Jharin Recruit + e.self:Say("Very well met, young friend. I assume that Gherik has sent you to me for the purpose of training you. Unforunately, I will not be doing any formal training for the several days. I'm taking a bit of a holiday to celebrate my wife's birthday. If you could take this receipt to the [merchant] for me before my wife gets home, I'd appreciate it. I'll place you at the top of my training list as well."); + e.other:SummonCursorItem(5954); --Gawfed's Receipt + elseif(e.message:findi("merchant")) then + e.self:Say("Gah... I'm losing my wits. I didn't tell you which merchant. Well, the fur is the first thing to go, and the mind is a close second. My wife's birthday is usually quite a large event in my household and I've been trying to make this one extra special. I'm lucky I can still find my tail. Take the note to Jihli Mahej. He's an importer who lives near the... gah! I can't remember the address. I'm sure you'll find him though. Good luck!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3659})) then --Buckler of the Jharin Recruit + e.self:Say("Very well met, young friend. I assume that Gherik has sent you to me for the purpose of training you. Unforunately, I will not be doing any formal training for the several days. I'm taking a bit of a holiday to celebrate my wife's birthday. If you could take this receipt to the [merchant] for me before my wife gets home, I'd appreciate it. I'll place you at the top of my training list as well."); + e.other:QuestReward(e.self,{items = {3659,5954}}); --Buckler of the Jharin Recruit, Gawfed's Receipt + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5958})) then --Finished Vase Replica + e.self:Emote("looks at the vase and nods his head in approval."); + e.self:Emote("says, 'I know that she's going to love this vase. The craftsmenship is amazing!' as he admires the vase. 'I need to properly thank you for retrieving it for me and I think that I know just the thing. If you gather some owlbear feathers I can have my brother apply them to your cloak. He can make a cloak really stand out. It will be a prize fit for any aspiring apprentice to wear. Take this sack and fill it with seven feathers and your recruit's cloak. Then return it to me with your cloak. I'll have it all sent over to my brother together in one bag."); + e.other:QuestReward(e.self,0,0,0,0,17611); --Large Cloth Sack + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5959})) then --Bag of Feathers + e.self:Say("It looks like you're all set. I'll have this sent over to my brother at once. Thank you again for fetching the vase for me. I can't wait to give it to the missus. I just know that she's going to love it. I have another task for you. It shouldn't take much time at all. Your cloak won't be done for a while, so you can do this while you wait. Take this piece of parchment to Jangle. He'll give you a bag of lute strings. I'm restringing all of my instruments before the party. Please be quick. Thank you again."); + e.other:Faction(e.self,1513,10); --Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,5960,1000); --Note for Jangle + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5962})) then --Note from Jangle + e.self:Say("I really must be losing my mind. I could have sworn I specified the quantities. Oh well, I apologize for the confusion. Please take this back to him with my apologies."); + e.other:QuestReward(e.self,0,0,0,0,5963); --Gawfed's Request + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5965})) then --Bag of Lute Strings + e.self:Say("My dear friend, " .. e.other:GetCleanName() .. ", you have been a wondrous help! Though we have not had an opportunity to work on the more refined Jharin teachings, you have definitely proven yourself to be an honorable citizen and worthy apprentice. My brother has returned with your cloak. Please take it along with the title of Jharin Apprentice. To further demonstrate my appreciation of your work for me, please take this lute."); + e.other:Faction(e.self,1513,10); --Guardians of Shar Vahl + e.other:QuestReward(e.self,{items = {5966,5967},exp = 3000}); --Cloak of the Jharin Apprentice, Lute of the Jharin Apprentice + e.self:Shout("Everyone, please welcome my student and friend, " .. e.other:GetCleanName() .. ", to the rank of Jharin Apprentice!"); + e.self:Say("Now, please meet with Aljuum Mohim. He will be responsible for your training during my holiday. Please show him the lute that I just gave you. He'll most likely be in a tavern somewhere. I just hope that he is sober. Take care, friend!"); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Instructor_Anom.lua b/sharvahl/Instructor_Anom.lua new file mode 100644 index 0000000..b7bdbfc --- /dev/null +++ b/sharvahl/Instructor_Anom.lua @@ -0,0 +1,54 @@ +local count; +function event_spawn(e) + count = 0; + eq.set_timer("train",7000); +end + +function event_timer(e) + count = count + 1; + if(count==3) then + e.self:Say("Listen up, recruits! Your lives will depend on your ability to deal with an enemy in unarmed combat."); + end + if(count==4) then + e.self:Say("If you are comfortable in unarmed combat, you will be able to understand the worst cast scenario of any given situation."); + end + if(count==5) then + e.self:Say("If you are caught by surprise, Your ability to fight with your feet and fists will be the base from which you will have to work."); + end + if(count==6) then + e.self:Say("If that foundation is a strong one, you will have little to worry about... even in the most dire of situations."); + eq.set_timer("train",25000); + end + if(count==7) then + e.self:Say("Are you two ready to spar?"); + eq.signal(155131,1,5); -- NPC: Recruit_Ulra + eq.set_timer("train",5000); + end + if(count==8) then + eq.signal(155131,2,5); -- NPC: Recruit_Ulra + eq.set_timer("train",90000); + end + if(count==9) then + count = 0; + eq.set_timer("train",7000); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Recruit, don't guess... Bring up your guard and fight! "); + end + if(e.signal == 2) then + e.self:Say("Good good! Ease up on him, Mogol. Both of you, take a break for a moment."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Instructor_Mussin.lua b/sharvahl/Instructor_Mussin.lua new file mode 100644 index 0000000..cd21a39 --- /dev/null +++ b/sharvahl/Instructor_Mussin.lua @@ -0,0 +1,125 @@ +local count; +function event_spawn(e) + count = 0; + eq.set_timer("training",10000); +end + +function event_timer(e) + count = count + 1; + if(count == 1) then + eq.signal(155310,1,1); + eq.signal(155309,1,1); + eq.signal(155308,1,1); + e.self:Say("There are several routes available to you as a citizen of Shar Vahl. All citizens are expected to actively participate in the maintenance of our security."); + end + if(count==2) then + e.self:Say("If you have a professional preference, please feel free to explore that area. You are just here to learn the basics of combat and survival."); + end + if(count==3) then + e.self:Say("You'll learn soon enough. There are more than a few dangers beyond these walls. Combat is far from pleasant, but never something to fear. Vah watches over us all."); + end + if(count==4) then + e.self:Say("All right students, before we hand you a set of practice weapons and allow you to unleash your youthful fury on each other, I will run through a series of attacks with you. Proper form is very important and can be attained through both armed and unarmed practice."); + end + if(count==5) then + e.self:Say("You may want to watch this demonstration carefully, because I am going to see how well you paid attention in a few moments. I'd rather find out that you are unable to think and move at the same time now... rather than after one of those grunts down in the pit cracks your furry little skull open. Eyes on me, Recruits!"); + end + if(count==6) then + e.self:Say("This first move is a simple kick. If you are planning on becoming a Khala Dun or Khati Sha, you'd better get familiar with this move. The kick complements any series of attacks and can come in quite handy as a means of knocking an enemy off their guard or distracting them for a moment."); + e.self:DoAnim(1); --kick + end + if(count==7) then + e.self:Say("The bash is another standard Khala Dun Technique. You will need to use your center of balance and leverage to exert as much force into your enemy as possible. The weight of your body bashing into the enemy will usually leave them off balance and dazed for a few moments. That time should be more than enough for you to stage a secondary attack."); + e.self:DoAnim(7); --bash + end + if(count==8) then + e.self:Say("Next, the Taruun stab technique! This move isn't just for our shadow stalking citizens. Almost everyone should keep this move well practiced and ready!"); + e.self:DoAnim(2); --pierce + end + if(count==9) then + e.self:Say("This move works if you are using a staff, spear, or some other form of polearm. You can disable your enemy, by quickly thrusting your weapon into their abdomen. It usually takes the wind right out of them."); + e.self:DoAnim(4); --2hblunt + end + if(count==10) then + e.self:Say("The two-handed overhead slash! Your enemy's skull will never be the same after the successful completion of this move! Be warned this technique is much slower than many of the others available to you and can leave you open to swift counter attacks."); + e.self:DoAnim(3); --2hslash + end + if(count==11) then + e.self:Say("The single-handed overhead swing is a common maneuver and should be practiced to perfection. Watch the way I distribute my weight and move my upper body. You should keep your head up and your eyes focused during every swing. Even with a simple move such as this."); + e.self:DoAnim(5); --mainhand + end + if(count==12) then + e.self:Say("Okay, now go over those moves for a moment and prepare to show me what you have learned."); + eq.set_timer("training",30000); + end + if(count==13) then + e.self:Say("Please stand and prepare to demonstrate the attacks as I call them out. I understand that your form will be a little sloppy, but that is what practice is for. Will will keep practicing these moves until you can show me that you can be trusted to not injure yourselves with the wooden practice weapons."); + eq.signal(155310,2,1); + eq.signal(155309,2,1); + eq.signal(155308,2,1); + eq.set_timer("training",5000); + end + if(count==14) then + e.self:Say("First move... the Kick! Attack!"); + eq.signal(155310,3,1); + eq.signal(155309,3,1); + eq.signal(155308,3,1); + e.self:DoAnim(51); --clap + end + if(count==15) then + e.self:Say("Now... the Bash! Attack!"); + eq.signal(155310,4,1); + eq.signal(155309,4,1); + eq.signal(155308,4,1); + e.self:DoAnim(51); --clap + end + if(count==16) then + e.self:Say("Next... the One-handed Stab! Attack!"); + eq.signal(155310,5,1); + eq.signal(155309,5,1); + eq.signal(155308,5,1); + e.self:DoAnim(51); --clap + end + if(count==17) then + e.self:Say("Arlight... Two-handed thrust! Attack!"); + eq.signal(155310,6,1); + eq.signal(155309,6,1); + eq.signal(155308,6,1); + e.self:DoAnim(51); --clap + end + if(count==18) then + e.self:Say("Now... smash with both hands! Attack!"); + eq.signal(155310,7,1); + eq.signal(155309,7,1); + eq.signal(155308,7,1); + e.self:DoAnim(51); --clap + end + if(count==19) then + e.self:Say("Okay...the One-handed swing! Attack!"); + eq.signal(155310,8,1); + eq.signal(155309,8,1); + eq.signal(155308,8,1); + e.self:DoAnim(51); --clap + end + if(count==20) then + e.self:Say("Go ahead and take a seat. As a whole you looked very good. Take a break and we will get ready to go through it again."); + eq.signal(155310,9,1); + eq.signal(155309,9,1); + eq.signal(155308,9,1); + eq.set_timer("training",90000); + end + if(count==21) then + count = 0; + eq.set_timer("training",10000); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Jaima_Seyel.lua b/sharvahl/Jaima_Seyel.lua new file mode 100644 index 0000000..fc1a7bb --- /dev/null +++ b/sharvahl/Jaima_Seyel.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello Citizen. I am in need of an apprentice. If you feel that you are capable of assisting me, please show me your Dar Khura Apprentice Cloak and I'll explain the task to you."); + elseif(e.message:findi("challenge")) then + e.self:Say("You will need to walk into the darkness of the Hollowshade Moor to face this enemy. Unlike the wolves that we have always been able to commune with, the wolves of the moor are oblivious to our attempts at communication. We have studied them for some time and our determination is that they are too corrupt for us to deal with. Their aggressive behavior and sheer numbers have forced us to research ways to kill them as quickly as possible. Fill that bag with the paws from one of those wolves. Once that task is complete, please return to me with the evidence of your encounter."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5544})) then + e.self:Emote("smiles and says 'Very good. I am glad to have you here. I hope your studies have proven to be worthwhile thus far. Our sect is challenging, but we are vital to the survival of our people. Our research and ability to commune with the spirit world has allowed our people to overcome the challenges of the wilderness here. Here, take this bag. It is time for you to face your first real challenge.'"); + e.other:QuestReward(e.self,{items = {17116,5544}}); -- Item: Brown Leather Bag + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 6264})) then + e.self:Say("I see that you've met those beasts and made it back in one piece. I'm not sure if you noticed their ability to move and communicate as a pack, but it is both amazing and horrific to witness in action. They have proven to be enough of a problem to warrant special research. We have been able to build a weapon type that produces severe wounds on the wolves."); + e.self:Say("The constant threat of attack by the wolves has made it the responsibility of each citizen to carry one of those weapons. This strainer will be necessary in the construction of such a weapon. Take this note and seek out Amal Iuziq. He is a researcher that resides in the Library of Spiritual and Natural Studies. Give him this note and he will guide you further.") + e.other:QuestReward(e.self,{items = {6265,6140}}); -- Item: Note to Amat + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Jakhal.lua b/sharvahl/Jakhal.lua new file mode 100644 index 0000000..9272c33 --- /dev/null +++ b/sharvahl/Jakhal.lua @@ -0,0 +1,91 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to the merchant's quarter celebration house. relax and enjoy yourself. If you have any questions about my stock. please feel free to ask me."); + elseif(e.message:findi("stout")) then + e.self:Say("My personal favorite. It is customary for Vah Shir to drink this when they first come of age. It is a thick and hearty black stout. To some, this stout is a statement to all that they are ready to take on another year with honor and bravery. And so it has become the customary birthday brew."); + elseif(e.message:findi("promise")) then + e.self:Say("It is part of our culture my friend. It is customary for the bride and groom to consume this wine after they have exchanged their vows to one another. The bride and groom must face one another and gaze into the others eyes. They must then consume the promises at the same time. The closer their timing is, the closer their spirits become. If a promise is consumed alone, it is said that the soul suffers."); + elseif(e.message:findi("gladiator")) then + e.self:Say("Ahh, the Gladiator Choice Ale. It is the preferred drink during gladiatorial events held within the arena. This is the finest ale in all of Shar Vahl. The brewers have carefully selected a variety of hops and barley malts to bring you this smooth dark blend. It goes best with a hearty dinner."); + elseif(e.message:findi("wine")) then + e.self:Say("A creation of our shaman alchemists, this wine is imbued with magical properties. Tiny little air elements are focused into the wine during the fermentation process. It is then ritually blessed by a shaman over a period of a month. This produces everlasting tiny bubbles to tingle your palate when you consume this wondrous wine. A popular drink to court a kindred spirit, it is best shared with a loved one."); + elseif(e.message:findi("rum")) then + e.self:Say("A fine choice, the Royal Rebirth Rum is a recipe passed down within the Kerrath family. It is the only recipe remaining from before the time of the shifting. We have not yet found the ingredients to make more within this world, so supply is very limited. This rum is purchased to celebrate the grandest of events such as royal weddings."); + elseif(e.message:findi("port")) then + e.self:Say("Excellent eye. Our Select Celebration Port has been aged twenty years. It is the perfect drink to celebrate your weddings, victories, festivals, and birthdays. I highly recommend it, sir."); + elseif(e.message:findi("liqueur")) then + e.self:Say("We have fine liqueurs made from high quality cream and almonds. Our brewers and alchemists have worked diligently to bring these to perfection. They are quite popular, try them!"); + elseif(e.message:findi("whiskey")) then + e.self:Say("These drinks are purchased to celebrate victory in battle. It is a toast to share the honor of the victory with the citizens of Shar Vahl. I hope one day I can drink a toast to your success, my friend."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Jala.lua b/sharvahl/Jala.lua new file mode 100644 index 0000000..a48e65f --- /dev/null +++ b/sharvahl/Jala.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings noble one. I am Jala, Master weaver of Shar Vahl. I have been perfecting the art of [Xakra] weaving lately. Please have a look at what I have crafted, maybe you will find something to suit your fashion needs."); + elseif(e.message:findi("xakra")) then + e.self:Say("Xakra is the mystical ethereal silk woven by the Shak Dratha. I believe they use the mystical ethereal shadow silk woven by the Xakra worms. Although this magical silk is quite beautiful, it is also highly unstable if you weave them in large quantities. I have discovered that the hides of rock hoppers manages to hold the silk together fairly well. I can use some help in collecting the silks to continue my craft, if you are [willing]."); + elseif(e.message:findi("willing")) then + e.self:Say("Wonderful! I'm not much of a hunter myself, so as you can see it can be quite difficult for me to obtain these silks. If you can bring me four of them. I would greatly appreciate it."); + end +end +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2789, item2 = 2789, item3 = 2789, item4 = 2789})) then + e.self:Say("Woohoo! Thank you so much " .. e.other:GetCleanName() .. "! Hey, maybe you would like to try your hand at weaving as well. If you combine the silks in that loom over there, you can make some decent thread to work with. Make four of them and bring them to me. I will judge your craftsmanship."); + e.other:Faction(e.self,1513,5); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,0,1000); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2791, item2 = 2791, item3 = 2791, item4 = 2791})) then + e.self:Say("Not bad at all! You definitely have some hidden talent there " .. e.other:GetCleanName() .. ". Keep at it and you may just become a master tailor yourself. Here, take this with you. It will help protect you from the nasty bite of the Xakra worms."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012),1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Jalil_Talih.lua b/sharvahl/Jalil_Talih.lua new file mode 100644 index 0000000..19ab480 --- /dev/null +++ b/sharvahl/Jalil_Talih.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh, hello there " .. e.other:GetCleanName() .. ". Thank you for stopping by, but this is just not a very good time for visitors. My daughter is very upset over what has happened."); + elseif(e.message:findi("happened")) then + e.self:Emote("looks up and says, 'Oh my, I thought everyone had heard by now. Behari has gone missing. Been quite some time now, in fact. Even the king had gotten involved in the search for him, but...' Jalil lowers his voice to a whisper so as not to upset his daughter, 'everyone has about given up hope. Soroush was the last we know of that had seen him, but he had very little helpful information.'"); + elseif(e.message:findi("soroush")) then + e.self:Say("Soroush has taken over Behari's duties... temporarily, at least. He can usually be found right in the throne room in case he is needed."); + elseif(e.message:findi("daughter")) then + e.self:Emote("looks proudly towards his daughter, 'She has Aisha's eyes, that girl does. Having grown up in the palace, I feared she would never find love but this is far worse. She has now found and lost one so dear to her. At her age, I was just training to be a guard and had not a care in the world.'"); + elseif(e.message:findi("aisha")) then + e.self:Emote("stares longingly into space at the sound of Aisha's name, 'Ahh, she was my treasure, rest her spirit. From the moment I laid eyes upon her I wanted nothing more than to care for her, shower her with everything her heart desired. I was a very modest man at the time and she wed me all the same. Who would have guessed back then that someday we would live in the palace together. Do you know how i came to live in the palace?'"); + e.self:Emote("chuckles in spite of herself between sobs, 'You do love to tell that story, father, don't you?' she says with a smile. Jalil, though relieved that his daughter can still find something to smile about, has the look of a man that might prefer that she found something else to smile about. He says nothing, but grins sheepishly."); + elseif(e.message:findi("in the palace")) then + e.self:Emote("'s chest swells with pride though his eyes reveal a hint of modest embarrassment at the attention, 'Well, I was just barely out of training, still on honor guard duty near the King's chair at the arena. There was a frenzied battle going on between two most skilled combatants. A deft parry sent a warrior's trident sailing through the air. Now I am no hero, instinct just took over- I did what any honorable Vah Shir would do. There was no time to get the King out of harm's way, I just threw myself between he and the weapon. A spot of poor luck had the blade pointing my way and I was fairly well wounded. I spent a few months recovering before returning to duty, but the king has never forgotten and insisted that I and my family reside here in the palace ever since.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5996})) then + e.self:Emote("looks at you stunned, 'This is... it was Aisha's, my wedding gift to her. Kalila had given it to Behari and I thought I would never see it again. Where did you find...' Jalil trails off as the truth becomes clear to him. With a sorrowful look at his daughter, he continues, 'at least now we know. You have gone to such lengths, please take this, it was my gift from the city upon obtaining full Khala Dun honors. You have earned it my friend.'"); + e.other:QuestReward(e.self,0,0,0,0,5995); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Jangle.lua b/sharvahl/Jangle.lua new file mode 100644 index 0000000..4fabe1e --- /dev/null +++ b/sharvahl/Jangle.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hi there! Are you perhaps a musician? I have lots of finely crafted musical instruments for sale. Each one has its own unique tone. Take a look and see if there are any instruments here to suit your performance needs. Just tap me when you are ready to make a purchase."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5960})) then + e.self:Say("I would love to fill this order for you friend, but the lad that we sent out into the moor to hunt up our last batch of owlbear guts has not returned. No guts, no strings. I'm afraid that I have neither. If your master will allow it, perhaps you could go gather the guts for me. If you complete this task, I will waive the fee for his next couple of orders. I'm sure that he'll find that proposal pleasant enough. Here's a bag to gather the guts in. Please fill it before you return to me."); + e.other:QuestReward(e.self,0,0,0,0,17612); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5961})) then + e.self:Say("Thank you for gathering these materials for me. This bag should last for some time. I'll need to clean this bag and make the strings. While I'm doing that, please take this note back to Gawfed and have him specify how many of each string he wants. He only listed the sizes in his note, not the quantities."); + e.other:Faction(e.self,1513,10); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,5962,1000); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5963})) then + e.self:Say("Very good, he's got it all written down this time. These strings should work nicely for him, and let's not mention the fact that they are absolutely free. Take care and remember to shop here for all of your Jharin needs."); + e.other:Faction(e.self,1513,10); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,5965,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Jharin_Hajka.lua b/sharvahl/Jharin_Hajka.lua new file mode 100644 index 0000000..c4a6b4d --- /dev/null +++ b/sharvahl/Jharin_Hajka.lua @@ -0,0 +1,13 @@ +function event_signal(e) + e.self:DoAnim(51); --clap +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Jharin_Niejan.lua b/sharvahl/Jharin_Niejan.lua new file mode 100644 index 0000000..70d67de --- /dev/null +++ b/sharvahl/Jharin_Niejan.lua @@ -0,0 +1,50 @@ +local count = 0; +function event_spawn(e) + eq.set_timer("shifting",100000); +end + +function event_timer(e) + count = count + 1; + if(count == 1) then + e.self:Say("This is the tale of the time that followed the Shifting. Our people had been thrown into darkness with only a handful of heroes to guide us. Perhaps it was fate that brought us here... or maybe the spirits are calling us to their aid."); + end + if(count == 2) then + e.self:Say("When the magic ripped us from our realm, we found ourselves within a strange land. We could no longer sense our guiding spirits around us, and fear began to overtake our kin. Fortunately, our king Vah Kerrath was quick to see this, and so he began to give us tasks to help our people regain their sanity and stability."); + end + if(count == 3) then + e.self:Say("He sent his greatest warriors under the leadership of the great explorer Khati Sha to the north to find out more about these strange lands. King Vah Kerrath then sent another army of brave men to the west under the leadership of Dar Khura."); + end + if(count == 4) then + e.self:Say("The citizens that marched into the darkness in those days were responsible for the security that we now enjoy. The bravery of Vah's leaders and our ability to come together as a people secured our sanctuary here in the darkness. Those days were full of turmoil and conflict... much like they are now."); + end + if(count == 5) then + e.self:Say("Before the time of the Shifting we had the spirits to guide us, but their guidance seemed to be blocked from us by the only sense a distant creature lurking as if it was of the shadow itself."); + end + if(count == 6) then + e.self:Say("Without the will of Vah to guide us through those desolate years, we might have lost everything. Our People feared that we were the only of our kind left alive and to give up would have meant that the honor of our ancestors would have surely been lost to the ages."); + end + if(count == 7) then + e.self:Say("When our king passed on, we took his name as our own to show that we are strong, for he was a strong king. Under the leadership of Vah Kerrath, we survived."); + end + if(count == 8) then + e.self:Say("We survived the loss of our ancestral spirits and we survived the loss of our home and our people. We stood firm against the lurking shadows and roared the name of Vah as a challenge to all who would stand against our will to live. That is how we survived the Shifting."); + end + if(count == 9) then + e.self:Say("Thank you for listening. Do not fear, if you missed part of that story I will repeat it again in a little while. It is one of my favorites."); + eq.set_timer("shifting",400000); + end + if(count == 10) then + count = 0; + eq.set_timer("shifting",100000); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Jharin_Ryak.lua b/sharvahl/Jharin_Ryak.lua new file mode 100644 index 0000000..f38e005 --- /dev/null +++ b/sharvahl/Jharin_Ryak.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Pleased to meet you. friend. May I help you with anything?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Jharin_Taani.lua b/sharvahl/Jharin_Taani.lua new file mode 100644 index 0000000..689c44d --- /dev/null +++ b/sharvahl/Jharin_Taani.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail, young friend. How may I assist you?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Jheral_Alezya.lua b/sharvahl/Jheral_Alezya.lua new file mode 100644 index 0000000..b672f6d --- /dev/null +++ b/sharvahl/Jheral_Alezya.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met! Please let me know if there's anything you need."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Jhimis_Khadwi.lua b/sharvahl/Jhimis_Khadwi.lua new file mode 100644 index 0000000..90791d1 --- /dev/null +++ b/sharvahl/Jhimis_Khadwi.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to my store! How may I help you?"); + elseif(e.message:findi("stretching dowels")) then + e.self:Say("Aye, I have a few left, but they are a big seller right now and I don't know when I'm going to get more in stock. Perhaps we can barter for a set. If you can gather two small owlbear claws and show me your apprentice's cloak, I'll guess that I can justify given you a set of dowels. I'll also be able to make some earrings for my girlfriend. I'm sure she'll love that!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5580, item2 = 6181, item3 = 6181})) then + e.self:Say("'These claws are very nice! Don't you think they will make splendid earrings? Of course you do! Well, she'd better like them after all of the trouble I had to go through to get them. Here are your dowels. If you need more, I'll have a new crate of them tomorrow. Take care and enjoy... Thank you for shopping with Jhimis!"); + e.other:QuestReward(e.self,{items = {5580,6138}}); -- Item: Cloak of the Khati Sha Apprentice + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Jihli_Mahej.lua b/sharvahl/Jihli_Mahej.lua new file mode 100644 index 0000000..b2b3532 --- /dev/null +++ b/sharvahl/Jihli_Mahej.lua @@ -0,0 +1,80 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Oh. hello there " .. e.other:GetCleanName() .. ". Thank you for stopping by. but this is just not a very good time for visitors. My daughter is very upset over what has happened."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5954})) then + e.self:Emote("looks at the note and begins to look a bit nervous. 'The vase that Master Gawfed purchased was accidentally knocked off of the shelf last night by a most clumsy customer. I apologize greatly, but I have only the broken pieces of the vase to offer you. Here, please take them with my sincere apologies. I will give Master Gawfed house credit for the vase and I can recommend someone that may be able to assist you in this most unfortunate dilemma. Give the pieces to Chogar and he may be able to assist you in repairing the vase."); + e.other:Faction(e.self,1513,1); -- Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,5955); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Jolod_Amulek.lua b/sharvahl/Jolod_Amulek.lua new file mode 100644 index 0000000..76c2781 --- /dev/null +++ b/sharvahl/Jolod_Amulek.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Let me know if I can get something for you."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Kaam_Rahiir.lua b/sharvahl/Kaam_Rahiir.lua new file mode 100644 index 0000000..8425c68 --- /dev/null +++ b/sharvahl/Kaam_Rahiir.lua @@ -0,0 +1,40 @@ +function event_spawn(e) + eq.set_timer("1",10000); +end + +function event_timer(e) + if(e.timer == "1") then + e.self:SetAppearance(1); + eq.stop_timer("1"); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("May I help you?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5574, item2 = 5575})) then --Reinforced Khati Sha Claw, Reinforced Khati Sha Claw + e.self:Emote("turns to you and squints at the claws that you've just given him."); + e.self:Say("I see that you've been getting some use out of these things. They are crude, but they seem sturdy enough."); + e.self:Emote("says as he returns the claws. He hands you a small bag and continues."); + e.self:Say("I hope the combat you've seen has made an impression on you, young friend. Combat is not pleasant, but it is often unavoidable. We are explorers and conflict often breeds in the unknown. Learn from each encounter and you are less likely to be trapped by conflict in the future."); + e.other:QuestReward(e.self,{items = {5574,5575,17113}}); --Reinforced Khati Sha Claw, Small Burlap Bag + e.self:Say("In preparation for your journey down the path of Khati Sha, you will need to seek out the wolves of the moor. You will need to learn the behavior and abilities of this enemy. Once you have tracked and met these beasts, I will teach you how to best dispose of them in the future. Place two molars from the mouth of one of their pups in that bag and return to me. That will guarantee that you've come face to face with your foe."); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6182})) then --Small Bag of Teeth + e.self:Say("Excellent, the spirits have returned you to me with your tail intact! The foe that you encountered was a young creature. Their elders are much less likely to allow your passage. The packs of wolves that roam the moor have proven to be quite a problem for our scouts. I will assist you in learning a method that will allow you to build and assist others in building a weapon that bites at the very spirit of those beasts. Take these claw mounts and use them in conjunction with the tomes that Qua sells. You'll need stretching dowels to treat the lashings. Jhimis usually keeps them behind the counter of his shop. Get a set from him and read through those tomes. Return to me with your new claws and your apprentice's cloak when you have completed the task."); + e.other:Faction(e.self,1532,3); -- Faction: Khati Sha + e.other:QuestReward(e.self,0,0,0,0,6145,10000); --Reinforced Claw Mounts + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5580, item2 = 6185, item3 = 6186})) then --Cloak of the Khati Sha Apprentice, Sonic Wolf Bane Claw, Sonic Wolf Bane Claw + e.self:Say("These claws are very well crafted! Your work is very impressive. Please take them to Ahom Guzhin. He is an old friend of mine. The sonic wolf claws were the result of some of his original studies in the moor. He has dedicated his life to studying creatures of the moor and can almost always be found there. Be careful when you go looking for him. You've done well here, but don't get careless. Good journeys."); + e.other:Faction(e.self,1532,5); -- Faction: Khati Sha + e.other:QuestReward(e.self,{items = {6184,6185,6186},exp = 50000}); --Cloak of the Khati Sha Journeyman, Sonic Wolf Bane Claw, Sonic Wolf Bane Claw + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/sharvahl/Kafal.lua b/sharvahl/Kafal.lua new file mode 100644 index 0000000..07e5a6c --- /dev/null +++ b/sharvahl/Kafal.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("May your ancestors guide your heart noble wanderer. It is good to meet you. Please. have a look at my wares. I have quality armor made from leather and padded for extra comfort and protection."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Kagazz.lua b/sharvahl/Kagazz.lua new file mode 100644 index 0000000..d7b47f1 --- /dev/null +++ b/sharvahl/Kagazz.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ale you say? No ale here friend, I am a blacksmith. You'll have to speak loud and clearly by the way, I don't hear so well since the [incident]. Show me your slate if you're looking for work."); + elseif(e.message:findi("incident")) then + e.self:Say("I was quite a homely yet sensitive lad, bad combination. As I was growing up I was teased mercilessly. In an effort to block out the ridicule I habitually placed my fingers far into my ears. My claws must have done some kind of permanent damage."); + elseif(e.message:findi("fastener")) then + e.self:Emote("squints as he reads your lips, 'Fasteners you say? Show me your slate and I'll make you a deal."); + elseif(e.message:findi("barkhem")) then + e.self:Emote("blushes a bit and says, 'No no, you are the gem my friend. You remind me a bit of Barkhem... he was my best student ever. When the work of being Master Smith got to be too much for someone my age, it was quite easy to decide who would fill my shoes. These days anyone wanting to learn the ways of the smith go to him."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2877})) then --Acrylia Slate of Shar Vahl + e.self:Say("My wife is making some jewelry. Not the sparkly stuff, mind you. She is nearly blind so appearance means little to her. She is intent on making jewelry with a more, uhh, natural feel. Currently she's constructing a special scorpion leg necklace, and is in need of more scorpion legs. I can't leave the shop so I need your help. Fill this box with scorpion legs and I'll pay you with metal fasteners that any merchant will gladly buy."); + e.other:QuestReward(e.self,{items = {2877,17238}}); --Acrylia Slate of Shar Vahl, Kagazz's Box + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3676})) then --Box of Scorpion Legs + e.self:Say("Ahh, " .. e.other:GetCleanName() .. "! I thank you, my wife will be most grateful. Here are the fasteners I promised you. You know " .. e.other:GetCleanName() .. ", there was a time that young, would-be smiths would seek my approval so that they could study the ways of the forge under my tutelage. That was back when I was Master Smith, before I named Barkhem my successor."); + e.other:QuestReward(e.self,{itemid = 3667, exp = 10}); --Forged Fasteners + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Kahala.lua b/sharvahl/Kahala.lua new file mode 100644 index 0000000..0619831 --- /dev/null +++ b/sharvahl/Kahala.lua @@ -0,0 +1,89 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome noble one. Please feel free to select any of our wonderfully prepared meals. All of them are prepared with quality ingredients and skilled chefs."); + elseif(e.message:findi("snake")) then + e.self:Say("The snake is prepared in delicious spices and blackened over a grill with peppers and nepeta oil. It is a delicious delicacy."); + elseif(e.message:findi("cake")) then + e.self:Say("Our cakes are perfect to celebrate your joyous occasions. A slight hint of rum gives them a delicious flavor."); + elseif(e.message:findi("kabob")) then + e.self:Say("The kabobs are made of the most tender portions of owlbear meat. They are marinated overnight in spices and payala nectar, then grilled over a spit until they reach perfection. A favorite during festivities."); + elseif(e.message:findi("chocolate")) then + e.self:Say("It is a dark mint chocolate, very delicious. Just don't give too many to your offspring or they will be bouncing off of the walls."); + elseif(e.message:findi("mussel")) then + e.self:Say("Great choice, the mussels are boiled thoroughly in water along with thin lemon slices and our best white wine. Once ready we add a prepared mixture of spices, including saffron. It is garnished with almonds and leak and covered lightly with a specially made white wine sauce. They are very delicious, try some."); + elseif(e.message:findi("bass")) then + e.self:Say("Our sea bass is caught fresh every day by fishermen who brave the journey to the twilight sea. It is prepared in spices and seared to perfection. My personal favorite, I recommend them."); + elseif(e.message:findi("feast")) then + e.self:Say("A wounderful cornucopia of steamed vegetables. Healthy and filling, it is a popular dish for many visitors of our establishment."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Kalila_Talih.lua b/sharvahl/Kalila_Talih.lua new file mode 100644 index 0000000..1f0dafb --- /dev/null +++ b/sharvahl/Kalila_Talih.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks up from her teary handkerchief, the deepest sadness visible in her eyes, 'I am very sorry, but I am not very good company at the moment. I fear my love will never return.'"); + elseif(e.message:findi("love")) then + e.self:Emote(", recalling joyful memories that bring sadness to her eyes, chokes on her words, 'It is not easy for me to talk about, perhaps someday... I began writing of us, thinking that it would help lift my sinking heart, but I could not finish even that.' As she speaks, she lazily flips through her diary where a story of true love has been recorded."); + elseif(e.message:findi("story")) then + if(e.other:GetFaction(e.self) < 5) then + e.self:Emote("considers you for a moment, 'I do not suppose I could ever bear to finish it. It is a story I wish had a happy ending, but I do not have it in my heart to create such a thing. If you would like to read it, I suppose you may. It is probably best that I try to distance myself from this experience,' she says half-heartedly."); + e.other:SummonCursorItem(18324); -- Item: Kalilaa Diary + else + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5996})) then + e.self:Emote("gasps at the sight of what you have handed her, 'mother's locket! Have you found...' She looks into your eyes and sees the answer to her unspoken question. 'I... I thank you,' is all that she can manage.'"); + e.self:Say("At least now we know. You have gone to such lengths, please take this, it was my gift from the city upon obtaining full Khala Dun honors. You have earned it my friend."); + e.other:QuestReward(e.self,0,0,0,0,5995); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Kanaad.lua b/sharvahl/Kanaad.lua new file mode 100644 index 0000000..c489296 --- /dev/null +++ b/sharvahl/Kanaad.lua @@ -0,0 +1,40 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks at you wearily and fails to respond as though he simply lacks the energy."); + elseif(e.message:findi("know about hoober") or e.message:findi("ingredients") or e.message:findi("conversation") or e.message:findi("convinced of what") or e.message:findi("make a batch") or e.message:findi("luclin clover") or e.message:findi("drop of moonlight") or e.message:findi("essence of sonnet")) then + if(e.other:GetFaction(e.self) < 3) then + if(e.message:findi("know about hoober")) then + e.self:Say("I will try not to repeat what Ragnar has already told you.' After taking a deep breath, clearly taxed by the memories, he continues, 'My research had brought me to Katta Castellum. After a long day's work I took a seat at the end of the bar in a local pub. Trying to get my mind off of potions for a while, I overheard a story about a crazy man roaming Tenebrous Mountains. Everyone seemed to know him as Hoober the Delirious. Seems he had become something of a local legend for his very odd habit of asking people to gather some rather obscure ingredients in exchange for a very rare reward."); + elseif(e.message:findi("ingredients")) then + e.self:Say("The promise of true love and everlasting happiness can make even the most scarce ingredients seem trivial. People laughed him off as a lunatic and after finally meeting Hoober I could easily tell why, but his story piqued my interest given my current... project. I asked the fellows to repeat the ingredients this man requested, but they were drinking rather heavily and had paid little attention in the first place. They were very vague, but what they could remember sounded very similar to a partial recipe I had found a record of earlier that very day. Against my better judgement I sought out this wanderer and we had a most interesting conversation."); + elseif(e.message:findi("conversation")) then + e.self:Emote("gently closes his eyes and paints a picture in his mind"); + e.self:Say("There was no denying the man's state of mind, he was utterly delirious. That was why I was so convinced...' he drifts off, 'so convinced..."); + elseif(e.message:findi("convinced of what")) then + e.self:Say("At this notion, he takes a deep breath and opens his eyes to look at you once more, 'you see when he finally did tell me of the things he was looking for, he was eloquent, impassioned, unmistakably controlled. He knew what he was talking about, it seemed like this had to be it, the answer to what I was seeking. So I gathered up the components and combined them myself, and then it all went so horribly wrong...' It takes him a moment to regain his train of thought, 'You wouldn't even be able to have an intelligible conversation with this man due to the cripling nature of the addiction unless someone made you up a batch."); + elseif(e.message:findi("make a batch")) then + e.self:Say("glances nervously about, 'I am not sure that I should, the temptation would... perhaps Ragnar could... no he hasn't experience with this mixture.' Kanaad seems to wrack his brain for alternatives, silent for a long moment. His inner conflict evident, he steadies himself for what he is about to do, 'I suppose that I am the only one who can mix this potion for you properly. I can... yes, I have no doubt that I will be fine.' His inner demons put somewhat out of his mind, Kanaad looks you straight in the eyes and says, 'I will need a Luclin clover, a drop of moonlight and some essence of sonnet."); + elseif(e.message:findi("luclin clover")) then + e.self:Say("The Luclin clover is in many ways just like any other ordinary clover, but the ones that grow out in the Thicket seem to posses an extra sensitivity to magic and enchantment."); + elseif(e.message:findi("drop of moonlight")) then + e.self:Say("A drop of moonlight is exactly that- not solid, not liquid but a captured drop of light itself. Any astrologer worth their salt will be able to harness one for you. Dont know much about astrology myself, but I'd guess that the platforms above the palace would be an ideal place from which to see the stars."); + elseif(e.message:findi("essence of sonnet")) then + e.self:Say("This will be the biggest hurdle between you and the potion. The essence of sonnet is a rare and wonderful thing, only the most gifted bards will ever produce one in their lifetime. No amount of effort or studying will help them either- it is an unexpected thing. You see, bards dedicate their life to the telling and retelling of stories, it is their job to inspire others with tales of triumph and tragedy. When a bard of the highest order sees or hears something that so genuinely and so overwhelmingly inspires them, something magical happens"); + end + else + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5990})) then + e.self:Emote("rummages through the box, 'let's see, some lucerne, the leaves I had needed and... What is this? A note form Ragnar...' He mumbles a bit to himself, 'I see, you are looking for this boy and Ragnar thinks I can help. Good lad that Ragnar. I am not much for story telling these days, but I suppose you want to know about Hoober.'"); + e.other:Faction(e.self,1560,900); + elseif(e.other:GetFaction(e.self) < 3 and item_lib.check_turn_in(e.self, e.trade, {item1 = 5991, item2 = 5992, item3 = 5993})) then + e.self:Emote("looks through your ingredients, inspecting them closely, 'Well done, that was fast. I must say that I am surprised that you managed to get them at all. I have my part prepared so... here goes.' He places the ingredients in a medicine bag, brow furrowed in concentration and slowly extracts a foul gray liquid into a vial. 'Yes, that's the stuff. Now take it please and go,' he says with a shudder and turns to leave."); + e.other:QuestReward(e.self,0,0,0,0,5994); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Katja.lua b/sharvahl/Katja.lua new file mode 100644 index 0000000..a4bf1ba --- /dev/null +++ b/sharvahl/Katja.lua @@ -0,0 +1,87 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings noble one. Are you interested in purchasing valuables?"); + elseif(e.message:findi("interested")) then + e.self:Say("Very well then. Have a look at my wares and see if anything suits your tastes."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_spawn(e) + eq.set_timer("1",75000); +end + +function event_timer(e) + e.self:Say("Gems, jewelry, and other shiny things! Come take a look at my latest shipment of jewel crafting supplies."); +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Kery_Miann.lua b/sharvahl/Kery_Miann.lua new file mode 100644 index 0000000..858a872 --- /dev/null +++ b/sharvahl/Kery_Miann.lua @@ -0,0 +1,36 @@ + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. May I help you?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5571})) then + e.self:Say("Where did you get this?! I have been looking for just this kind of map for a very long time! Hmmm, I know, how about I show you how to improve those claws of yours!"); + e.self:Say("In order to improve them, I need you to take this Stitching Pack, unless you already have one, and this stone and make two leather straps. Once you have them, give me them along with your claws and I will work my magic!"); + e.self:Say("Use only the very best rockhopper hide you can find along with that stone, and you will have those strips in no time!"); + e.other:QuestReward(e.self,{items = {17237,5572}}); -- Item: Stitching Pack + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5581, item2 = 5581, item3 = 3673, item4 = 3674})) then + e.self:Emote("'s hands move deftly as she wraps the think leather straps around the claws that you gave her. She ends her task by tightening the straps with a few small metal clasps. 'Her youth, see i fthese fit.' She says as she hands you the claws. She pulls a folded note from her waistband and hands it to you while saying, 'Take this note to Rittuh Purrik in the moor. She needs assistance with a few matters. Return a little later and I will teach you more.'"); + e.other:Faction(e.self,1532,1); -- Faction: Khati Sha + e.other:QuestReward(e.self,{items = {5574,5575,5573},exp = 2500}); -- Item: Reinforced Khati Sha Claw + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5577})) then + e.self:Say("You have done very well, youth. I hope that you are beginning to understand what it means to walk the path of Khati Sha. Public service is very important. Our namesake is the fundamental figure in the foundation of this society. Our walls are made of the ore that he discovered. His exploration of the lands that surround our home made it possible for us to live here in peace. This leads us to our next lesson. I would like you to seek out the caverns beyond the thicket. A breed of shelled creatures roam the tunnels of those caverns. Occasionally, a strong glow will manifest itself in one of these creatures. Find such a creature and bring me the source of its glow. Wrap the light source in your Khati Sha recruit's cloak and place them both in this box."); + e.other:Faction(e.self,1532,1); -- Faction: Khati Sha + e.other:QuestReward(e.self,0,0,0,0,17610,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5579})) then + e.self:Emote("opens the box and removes your old cloak. She unwraps the orb and looks at it for a moment."); + e.self:Say("You have done well, youth.' She says as she picks up what appears to be a new cloak. She hands you the cloak and smiles. 'Your life as a member of our sect may not always be pleasant, but take comfort in the fact that you are performing a great service to your people. Walk the path of the Khati Sha with pride and one day may you see his face as I have. Now, seek out Kaam Rahiir in the libraries. Show him your claws and he will be able to assist you in imbuing them magically. Take care."); + e.self:Shout("Citizens of Shar Vahl, take this time to welcome " .. e.other:GetCleanName() .. " to the level of Khati Sha Apprentice. We are all in the debt of each and every citizen that works a hard as " .. e.other:GetCleanName() .. " to improve our city."); + e.other:Faction(e.self,1532,5); -- Faction: Khati Sha + e.other:QuestReward(e.self,0,0,0,0,5580,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Ahjin.lua b/sharvahl/Khala_Dun_Ahjin.lua new file mode 100644 index 0000000..4dd8a68 --- /dev/null +++ b/sharvahl/Khala_Dun_Ahjin.lua @@ -0,0 +1,77 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to North Gate side of the Merchant's Corridor."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Aihjin.lua b/sharvahl/Khala_Dun_Aihjin.lua new file mode 100644 index 0000000..0b1ff1e --- /dev/null +++ b/sharvahl/Khala_Dun_Aihjin.lua @@ -0,0 +1,88 @@ +-- Quest for luclin smithing +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello there. " .. e.other:GetCleanName() .. ". Careful around some of the rougher pubs late at night. wouldn't want to see you caught up in a fight like the last one I broke up. Did you hear about it?"); + elseif(e.message:findi("barkhem")) then + e.self:Say("A finer smith has never put hammer to anvil. We are all lucky to have Master Barkhem forge and maintain our equipment."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + -- takes repair order from master Barkhem + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29803})) then + e.self:Say("Well it's about time Barkhem got around to us, and he couldn't even be bothered to come himself. Please get this back to me as soon as you can... you do know that we are here to guard the city, right?"); + e.other:QuestReward(e.self,0,0,0,0,29810); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29811})) then + e.self:Say("Well done, I sure will be ready for next time something tries to cause a disturbance in our city. My thanks to you " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,29812); -- Aihjin's Dented Shield + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Alferi.lua b/sharvahl/Khala_Dun_Alferi.lua new file mode 100644 index 0000000..cea1d59 --- /dev/null +++ b/sharvahl/Khala_Dun_Alferi.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met, friend. May I be of assistance?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Aoera.lua b/sharvahl/Khala_Dun_Aoera.lua new file mode 100644 index 0000000..51b204e --- /dev/null +++ b/sharvahl/Khala_Dun_Aoera.lua @@ -0,0 +1,80 @@ +--Quest for Whiptail Poison Gland +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to our fair city traveler. We have much in the way of fine food and entertainment. If you are planning to explore the crater, please beware of the [vermin] infesting the area."); + elseif(e.message:findi("vermin")) then + e.self:Say("There are all kinds of bugs, worms, and even grimlings that roam through the crater. They scavenge the food dropped below by careless people, as well as the occasional unskilled citizens and adventurers who wish to put their hunting prowess to the test. If you are considering hunting in the crater despite my warnings, do consider assisting our city by returning with some of the scorpion glands. If you supply Spiritist Ragnar with these glands, he will be able to make a sufficient anti venom for those who are bit by these horrid little beasts."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Bokh.lua b/sharvahl/Khala_Dun_Bokh.lua new file mode 100644 index 0000000..532a4cb --- /dev/null +++ b/sharvahl/Khala_Dun_Bokh.lua @@ -0,0 +1,108 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, traveler. If you are headed through these gates you should be aware that there are many [dangers] you may encounter."); + elseif(e.message:findi("dangers")) then + e.self:Say("Recently there have been numerous [brigand] encounters. the [Shak Dratha] have also taken arms against our people."); + elseif(e.message:findi("shak dratha")) then + e.self:Say("Very little is known about the Shak Dratha. They appeared shortly after the explosion heard in the thicket. Although they are not really our enemies. they have been known to attack when those unknown to them approach."); + elseif(e.message:findi("brigand")) then + e.self:Say("The brigands arrived shortly after the disappearance [Loda Kai.] Although it shames me to say it. I believe he may in some way be involved with these attacks. I can not bear to think about such an atrocity. Nevertheless there is a bounty on the brigands."); + elseif(e.message:findi("loda kai")) then + e.self:Say("[Loda Kai] was a strong member of the Taruun. he was off to investigate the spirit deaths in shadeweavers thicket when a strong explosion was felt throughout the thickets. He has not been seen since. It was around the time of his disappearance that the brigands began to raid our trade route to shadow haven."); + elseif(e.message:findi("assigned")) then --Quest: Beetle Eyes + e.self:Say("Thank you for coming to assist. We are always looking for hungry new soldiers. Young soldiers get old much too fast these days. Just look at me.' He smiles at this comment. 'Do this old soldier a favor and go down there and gather up a handful of rhino beetle eyes', he says and looks at the mass of crawling creatures that wait below. 'Beetle eyes not only taste good... they keep your fur shiny as well."); + elseif(e.message:findi("spirit")) then + e.self:Say("Elder spiritist Grawleh has felt numerous spirits call to him in anguish. He fears they are dying and we do not know why."); + elseif(e.message:findi("barkhem")) then + e.self:Say("A finer smith has never put hammer to anvil. We are all lucky to have Master Barkhem forge and maintain our equipment."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + --Quest: Beetle Eyes (End) + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14587, item2 = 14587, item3 = 14587, item4 = 14587})) then + e.self:Emote("tosses the beetle eyes into his mouth & attempts to say something to the effect of 'here is your payment.' The sound of crunching gristle & popping eyeballs prevents him from saying it properly."); + e.other:QuestReward(e.self,3,3,0,0,0,1000); + end + -- takes repair order from master Barkhem + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29803})) then + e.self:Say("Outstanding! Nothing like a sharp-looking shield to scare off the undesirables. And if you bring it back full of food I wouldn't complain either,"); + e.self:Emote("laughs, flashing a mischievous grin your way."); + e.self:Say("Just kidding! You have much to do and Barkhem would have my hide if I kept you from your studies."); + e.other:QuestReward(e.self,0,0,0,0,29813); + end + -- You receive Bokh's Dented Shield. Take the dented shield and place it into a forge with your Vah Shir Apprentice Mallet. This creates Bokh's Immaculate Shield (the mallet will be returned). Give this shield back to Jasir to receive Bokh's Work Order. + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29814})) then + e.self:Say("Well done, shiny enough to eat off of. My compliments to you " .. e.other:GetCleanName() .. ", Barkhem would be most pleased."); + e.other:QuestReward(e.self,0,0,0,0,29815); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Faalym.lua b/sharvahl/Khala_Dun_Faalym.lua new file mode 100644 index 0000000..6476bce --- /dev/null +++ b/sharvahl/Khala_Dun_Faalym.lua @@ -0,0 +1,77 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("How may I assist you, friend?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Fareed.lua b/sharvahl/Khala_Dun_Fareed.lua new file mode 100644 index 0000000..6c913c5 --- /dev/null +++ b/sharvahl/Khala_Dun_Fareed.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to the royal court of King Raja Kerrath. King of Shar Vahl City. Descendant of the Great Vah Kerrath. Leader of all Vah Shir! Please be respectful when you enter the royal throne room."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3647},0)) then + e.self:Say("Ah, you've arrived, good. Ayyad tells me you're a very quick learner and a skilled sculptor. The king has taken a fondness for a new game that has been very popular with the people of late. This game, called Brehad, requires the use of a set of 10 Runed Vah Shir figurines in order to play. The king's set was recently broken by a rather intrusive rhinobeetle. The king would be very pleased if you would create another set for him. Take this Padded Brehad Case and place 10 figurines in it. Return the completed set to me and I'm sure that the king will reward you nicely."); + e.other:QuestReward(e.self,0,0,0,0,17106,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3644},0)) then + e.self:Say("Ah you have done it, Take this note to Ayyad and he should give you the final reward"); -- text made up + e.other:QuestReward(e.self,0,0,0,0,3643,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Khala_Dun_Grerath.lua b/sharvahl/Khala_Dun_Grerath.lua new file mode 100644 index 0000000..071ff3d --- /dev/null +++ b/sharvahl/Khala_Dun_Grerath.lua @@ -0,0 +1,77 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail citizen. How might I assist you?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Gurish.lua b/sharvahl/Khala_Dun_Gurish.lua new file mode 100644 index 0000000..c4a6b4d --- /dev/null +++ b/sharvahl/Khala_Dun_Gurish.lua @@ -0,0 +1,13 @@ +function event_signal(e) + e.self:DoAnim(51); --clap +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Hebijeb.lua b/sharvahl/Khala_Dun_Hebijeb.lua new file mode 100644 index 0000000..f69d6b4 --- /dev/null +++ b/sharvahl/Khala_Dun_Hebijeb.lua @@ -0,0 +1,90 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met. friend. May I be of assistance?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2877})) then + e.self:Say("I was told to expect you, " .. e.other:GetCleanName() .. ". It is my duty to supervise this stage of your training, which will help strengthen you in preparation for your life of service to our people. There is much to do in very little time so let us begin. There are creatures that roam freely at the base of the rock on which we live. You are tasked with demonstrating a basic understanding of combat by defeating skeletons of grimlings and delivering to me four of their femurs."); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3443, item2 = 3443, item3 = 3443, item4 = 3443})) then + e.self:Emote("looks at you with an expression of approval"); + e.self:Say("Your completion of the assigned task has been noted. Accept this weapon as a token of the Khala Dun's gratitude. You will find the Khala Dun to be very generous to it's humble students, quick to reward obedience. I have been notified that one of our citizens needs some assistance, bring me proof that you have aided Dronqam Runghi."); + e.other:Faction(e.self,1513,10 ); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,3445,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3449})) then + e.self:Emote("takes the acrylia dust and places it in a vial already half full of the metal"); + e.self:Say("You are nearly finished with the task at hand, " .. e.other:GetCleanName() .. ". I now need you to begin your training in the art of blacksmithing, an essential aspect of the life of the Khala Dun. Combine this mold with three metal bits and a flask of water to fashion a buckler frame. When this is done bring it to me with the Crude Bone Short Sword and your initiate's cloak."); + e.other:QuestReward(e.self,0,0,0,0,3450); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3451, item2 = 3445, item3 = 2878})) then + e.self:Say("Your progress pleases our order young one, and I am proud to promote you to the rank of recruit within the Khala Dun. Wear this cloak with pride, " .. e.other:GetCleanName() .. ". I have completed your buckler as well as enhanced your sword. The blade will now be more effective when used against the skeletons from which it was constructed. Show the buckler to Armsman Khaigesh and he will instruct you further."); + e.self:Shout("Fellow citizens of Shar Vahl, help me welcome " .. e.other:GetCleanName() .. " to the rank of recruit in the honorable Khala Dun. May his actions henceforth reflect the strict sense of loyalty to our king that defines our order. May he exhaust his every resource in glorious defense of our proud people!"); + e.other:Faction(e.self, 1513,10 ); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,{items = {3452,3453,3454},exp = 2000}); -- Item: Buckler of the Recruit, Cloak of the Khala Dun Recruit + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Khala_Dun_Jasir.lua b/sharvahl/Khala_Dun_Jasir.lua new file mode 100644 index 0000000..4447325 --- /dev/null +++ b/sharvahl/Khala_Dun_Jasir.lua @@ -0,0 +1,94 @@ +-- Quest for luclin smithing +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("You there. Have you seen the [poachers] out in the thicket? You best not be one of them!"); + elseif(e.message:findi("poacher")) then + e.self:Say("There has been an outbreak in the thicket of people hunting wild cats for their hides. Their hides! People profiting off of that which was never theirs, bringing pain to any that they may overrun with force. I can think of nothing else that turns my stomach so! A former Khala Dun named Ferin is out there heading up the initial investigation into the despicable actions. My apologies if I seemed a bit gruff, but I am not quite myself when discussing such matters as these."); + elseif(e.message:findi("ferin")) then + e.self:Say("Ferin and I went through training together, he is as noble as they come. The city guard will miss him terribly, but his mission in the thicket is just as necessary as our work here."); + elseif(e.message:findi("barkhem")) then + e.self:Say("A finer smith has never put hammer to anvil. We are all lucky to have Master Barkhem forge and maintain our equipment."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + -- takes repair order from master Barkhem + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29803})) then + e.self:Say("Well it's about time Barkhem got around to us, and he couldn't even be bothered to come himself. Please get this back to me as soon as you can... you do know that we are here to guard the city, right?"); + e.other:QuestReward(e.self,0,0,0,0,29807); + end + -- You receive Jasir's Dented Shield. Take the dented shield and place it into a forge with your Vah Shir Apprentice Mallet. This creates Jasir's Immaculate Shield (the mallet will be returned). Give this shield back to Jasir to receive Jasir's Work Order. + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29808})) then + e.self:Say("Thank you very much " .. e.other:GetCleanName() .. ", and I must apologize for the way I spoke to you earlier. We just got word of some [poachers] out in the Thicket, they really get me angry. In any case, you have done a fine job, worthy of Barkhem himself."); + e.other:QuestReward(e.self,0,0,0,0,29809); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Jhiniam.lua b/sharvahl/Khala_Dun_Jhiniam.lua new file mode 100644 index 0000000..3ebb8e6 --- /dev/null +++ b/sharvahl/Khala_Dun_Jhiniam.lua @@ -0,0 +1,77 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail and well met. How my I help you?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Kerak.lua b/sharvahl/Khala_Dun_Kerak.lua new file mode 100644 index 0000000..da8b248 --- /dev/null +++ b/sharvahl/Khala_Dun_Kerak.lua @@ -0,0 +1,77 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail friend... did you need help with something?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Koby.lua b/sharvahl/Khala_Dun_Koby.lua new file mode 100644 index 0000000..52a7232 --- /dev/null +++ b/sharvahl/Khala_Dun_Koby.lua @@ -0,0 +1,91 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("And hello to you traveler. Beyond this gate lies the Shadeweavers Thicket. You had best go armed. for the [Claw Beasts] have been attacking merchants regularly."); + elseif(e.message:findi("claw beasts")) then + e.self:Say("A true horror. they are mindless predators and quite large to boot. These beasts have massive razor sharp teeth that can rip your arm off cleanly."); + elseif(e.message:findi("barkhem")) then + e.self:Say("A finer smith has never put hammer to anvil. We are all lucky to have Master Barkhem forge and maintain our equipment."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + -- takes repair order from master Barkhem + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29803})) then + e.self:Say("Oh this old shield does fine, but I guess if Barkhem needs to break in a new apprentice, it does have some dings in it. Thank you, my friend."); + e.other:QuestReward(e.self,0,0,0,0,29804); -- koby dented shield + end + -- You receive Koby's Dented Shield. Take the dented shield and place it into a forge with your Vah Shir Apprentice Mallet. This creates Koby's Immaculate Shield (the mallet will be returned). Give this shield back to Jasir to receive Koby's Work Order. + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29805})) then + e.self:Say("Tip-top work! Barkhem has done well by himself choosing you for an apprentice."); + e.other:QuestReward(e.self,0,0,0,0,29806); -- koby work order + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Kuash.lua b/sharvahl/Khala_Dun_Kuash.lua new file mode 100644 index 0000000..f1b777d --- /dev/null +++ b/sharvahl/Khala_Dun_Kuash.lua @@ -0,0 +1,88 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to Shar Vahl's North Gate District. If you're looking to relax. you may want to grab a drink at the Trail's End. It's right behind me on the left. Take care."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5550})) then + e.self:Say("You must think you're pretty tough wearin a buckler like that, eh? Well well... Perhaps you're looking to hunt some bigger game, eh? Earn a little scruff on your ears like Kuash? I thought so. I know a good place for you to start... and it's part of your civil duty. Our scouts have always had trouble with the wolves in the moor. I'm thinkin that you can start there. Maybe break in a few of the younger wolves' paws, eh? I thought so. Put your buckler back on and take this bag. Fill it with wolf paws and bring it back to me. Maybe then I'll give you a real challenge."); + e.other:QuestReward(e.self,{items = {5550,17114}}); -- Item: Horn Covered Buckler + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 6217})) then + e.self:Say("Well, you're beginning to scare me you're so tough! Just pullin your tail. Those were some scary beasts, eh? I thought so. I've got a dagger that helps me to deal with them. It's made in a special way to hurt the wolves more than usual. If you want one, you're going to need to make your own. I still got the molds that I used when I was craftin blades for people. If you run this status report to Bookkeeper Leaha in the Grunt Forest outpost for me, I'll go by my house and get the molds for you. Sound like a deal? I thought so."); + e.other:Faction(e.self, 1513,1 ); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,6219,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 6221})) then + e.self:Say("Thank you very much. I see you got it all filled out. I gathered up all of those molds for you while you were gone. You can even have this old hilt that I found with them. Make sure you keep them in a safe place. You're going to need them and the books that the book fellow Qua sells. He's got a bunch of them and a kit that you'll need. When you get done with makin your dagger, bring it back by here with your cloak and I'll show you a surprise!"); + e.other:Faction(e.self,1513,1); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,{items = {6141,6142,6148},exp = 1000}); -- Item: Blade Mold, Claw Mold + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5557, item2 = 6158})) then + e.self:Say("You have done well --name. Wear this cloak with pride and enjoy the benefits of being a Khala Dun Journeyman."); + e.other:QuestReward(e.self,{items = {6222,6158},exp = 10000}); -- Item: Cloak of the Khala Dun Journeyman + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Khala_Dun_Larg.lua b/sharvahl/Khala_Dun_Larg.lua new file mode 100644 index 0000000..0bc130b --- /dev/null +++ b/sharvahl/Khala_Dun_Larg.lua @@ -0,0 +1,77 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome! You are at the southern gates of the grand city of Shar Vahl. All hail our noble King Raja Kerrath. Long live the king!"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Maluki.lua b/sharvahl/Khala_Dun_Maluki.lua new file mode 100644 index 0000000..709a39b --- /dev/null +++ b/sharvahl/Khala_Dun_Maluki.lua @@ -0,0 +1,77 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to the Trail's End. If you're going to be drinking. be sure to watch your manners. Anyone that get's out of line will earn a trip to the pit via the fast route. Now. relax and enjoy."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Moggs.lua b/sharvahl/Khala_Dun_Moggs.lua new file mode 100644 index 0000000..13bddac --- /dev/null +++ b/sharvahl/Khala_Dun_Moggs.lua @@ -0,0 +1,77 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to Shar Vahl. You are now entering the North Gate District."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Murglim.lua b/sharvahl/Khala_Dun_Murglim.lua new file mode 100644 index 0000000..d0eb2b4 --- /dev/null +++ b/sharvahl/Khala_Dun_Murglim.lua @@ -0,0 +1,77 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to Shar Vahl. You are entering the North Gate District of our city. Enjoy yourself and stay safe."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Quatan.lua b/sharvahl/Khala_Dun_Quatan.lua new file mode 100644 index 0000000..7468402 --- /dev/null +++ b/sharvahl/Khala_Dun_Quatan.lua @@ -0,0 +1,77 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Can I help you?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Rakata.lua b/sharvahl/Khala_Dun_Rakata.lua new file mode 100644 index 0000000..3a1e3a4 --- /dev/null +++ b/sharvahl/Khala_Dun_Rakata.lua @@ -0,0 +1,77 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("May your spirit thrive with strength traveler. You are at the south gates of the Merchants Quarter. Within. you may find the bank. arena. armory. as well as many other fine shops. In your bustle. do not forget to take a moment to enjoy our many fountains and gardens."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Rorya.lua b/sharvahl/Khala_Dun_Rorya.lua new file mode 100644 index 0000000..c4a6b4d --- /dev/null +++ b/sharvahl/Khala_Dun_Rorya.lua @@ -0,0 +1,13 @@ +function event_signal(e) + e.self:DoAnim(51); --clap +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Sleyhin.lua b/sharvahl/Khala_Dun_Sleyhin.lua new file mode 100644 index 0000000..ad81c93 --- /dev/null +++ b/sharvahl/Khala_Dun_Sleyhin.lua @@ -0,0 +1,77 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met. friend. May I be of assistance?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Taraku.lua b/sharvahl/Khala_Dun_Taraku.lua new file mode 100644 index 0000000..e91a840 --- /dev/null +++ b/sharvahl/Khala_Dun_Taraku.lua @@ -0,0 +1,77 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to the South Gate side of the Merchant's Corridor."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khala_Dun_Welaar.lua b/sharvahl/Khala_Dun_Welaar.lua new file mode 100644 index 0000000..654c371 --- /dev/null +++ b/sharvahl/Khala_Dun_Welaar.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khati_Sha_Jaarin.lua b/sharvahl/Khati_Sha_Jaarin.lua new file mode 100644 index 0000000..b1e9549 --- /dev/null +++ b/sharvahl/Khati_Sha_Jaarin.lua @@ -0,0 +1,77 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, how may I assist you?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khati_Sha_Marook.lua b/sharvahl/Khati_Sha_Marook.lua new file mode 100644 index 0000000..0183ccc --- /dev/null +++ b/sharvahl/Khati_Sha_Marook.lua @@ -0,0 +1,77 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Good to meet you. Did you have a question?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Khati_Sha_Mylia.lua b/sharvahl/Khati_Sha_Mylia.lua new file mode 100644 index 0000000..2579cee --- /dev/null +++ b/sharvahl/Khati_Sha_Mylia.lua @@ -0,0 +1,77 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, may I help you?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/King_Raja_Kerrath.lua b/sharvahl/King_Raja_Kerrath.lua new file mode 100644 index 0000000..0dea46e --- /dev/null +++ b/sharvahl/King_Raja_Kerrath.lua @@ -0,0 +1,32 @@ +---- Changes by Kagehi. +---- Shar_Vahl_Cit tracks the steps you take to gain your initiate cloak. +---- Since we don't want to hand people things that they can't normally get, or +---- stuff they haven't earned, we need to track which stage in the quest they +---- are at. 1 = Citizen Application. 2 = Cert. of Taxability, 3 = Stamped Cert., +---- 4 = Note to King Raja, 5 Note 'from' the king, 6 = Notarized Application +---- and 7 = Initiate's Cloak. +function event_say(e) + local qglobals = eq.get_qglobals(e.self,e.other); + if(e.message:findi("Hail")) then + e.self:Say("Greetings citizen... you are very brave to approach me in this manner. That sort of bravery warrants my respect. How may I help you?"); + elseif(e.message:findi("note") and tonumber(qglobals.Shar_Vahl_Cit) == 5) then ----Non-canon fixme if you lose note. + e.self:Say("I guess I can write you a new note. Try not to lose it this time."); + e.other:SummonCursorItem(18304); -- Item: Note from King Raja + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18299})) then + e.self:Say("Your humility and willingness to serve shall not be wasted. There is much to be done, " .. e.other:GetCleanName() .. ", and our people thank you in advance for your selfless service."); + eq.set_global("Shar_Vahl_Cit","5",5,"F"); + -- Confirmed Live Experience + e.other:QuestReward(e.self,0,0,0,0,18304,300); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Kogar.lua b/sharvahl/Kogar.lua new file mode 100644 index 0000000..d6b1a6e --- /dev/null +++ b/sharvahl/Kogar.lua @@ -0,0 +1,77 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met! You look like someone ready for adventure. It's a tough world out there and you will need to keep your combat skills sharp. I have lots of wooden weapons made especially to help young adventurers practice their skills."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Kojik.lua b/sharvahl/Kojik.lua new file mode 100644 index 0000000..6123087 --- /dev/null +++ b/sharvahl/Kojik.lua @@ -0,0 +1,85 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, adventurer. Perhaps you would like to purchase a container to help you carry your gear. Have a look at my wares and see if something catches your eye."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_spawn(e) + eq.set_timer("1",75000); +end + +function event_timer(e) + e.self:Say("Bags! Chests! You'll need to carry your treasures, come see what I have for sale."); +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Kyala.lua b/sharvahl/Kyala.lua new file mode 100644 index 0000000..d1c350d --- /dev/null +++ b/sharvahl/Kyala.lua @@ -0,0 +1,96 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("And hail to you as well. Please, have a look at my inventory of goods. I have many useful items to aid you with your exploration. Basic supplies of all sorts. I would suggest you at least purchase some bandages, there are many hostile creatures that surround us."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_spawn(e) + eq.set_timer("1",82000); +end + +function event_timer(e) + if(e.timer == "1") then + local rand = math.random(1,3); + if(rand == 1) then + e.self:Say("Come my friend, you will need light for those darkened caverns of the deepshade. I have torches and lanterns for sale."); + end + if(rand == 2) then + e.self:Say("You with the sword! You look like you'll need some bandages to help you with your battle wounds. Come I will give you a good deal."); + end + if(rand == 3) then + e.self:Say("You look thirsty. Come over here, I have fresh water for sale."); + end + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Lajika.lua b/sharvahl/Lajika.lua new file mode 100644 index 0000000..bfebb6d --- /dev/null +++ b/sharvahl/Lajika.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Salutations traveler. please have a look at my inventory of goods. I have some cloth armor that has been padded with comfortable lightweight materials. This extra padding will provide you with the protection you need if you wish to travel through hostile regions."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Larken.lua b/sharvahl/Larken.lua new file mode 100644 index 0000000..e2b042d --- /dev/null +++ b/sharvahl/Larken.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to our shop. If you don't see a sketch you need. I can try to whip one up for you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Liorra_Sha_Kerrath.lua b/sharvahl/Liorra_Sha_Kerrath.lua new file mode 100644 index 0000000..200204a --- /dev/null +++ b/sharvahl/Liorra_Sha_Kerrath.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met. friend. May I be of assistance?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Lore_Master_Rahamin.lua b/sharvahl/Lore_Master_Rahamin.lua new file mode 100644 index 0000000..96fa1be --- /dev/null +++ b/sharvahl/Lore_Master_Rahamin.lua @@ -0,0 +1,15 @@ +function event_waypoint_arrive(e) + if(e.wp == 1) then + e.self:SetAppearance(3); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Lorekeeper_Ayriik.lua b/sharvahl/Lorekeeper_Ayriik.lua new file mode 100644 index 0000000..73ddfba --- /dev/null +++ b/sharvahl/Lorekeeper_Ayriik.lua @@ -0,0 +1,92 @@ +local count = 0; +function event_spawn(e) + eq.set_timer("story",10000); +end + +function event_timer(e) + count = count + 1; + if(count == 1) then + e.self:Say("This is the tale of Taruun, the first Vah Shir scout."); + end + if(count == 2) then + e.self:Say("Taruun was discovered as a small child. He was found wandering the Old World continent of Odus alone. His face was scarred and his fur was burned in patches. It was apparent that he had been with out food for some time. The orphan was very near death when Kerran hunters found him and brought him back to their village."); + end + if(count == 3) then + e.self:Say("The Shir tribe adopted the child and nursed him back to health. The tribe searched for some trace of his family, but did not succeed in finding them. The young cub was either unable or unwilling to speak which made the hunt for his origins that much more difficult. After several years of searching all efforts to find his family were officially ended and the boy was adopted into the tribe. That is when they gave him the name Taruun."); + end + if(count == 4) then + e.self:Say("As Taruun grew it became clear that he would never grow to be like the other Kerrans. It was obvious to those who knew him that whatever trauma he suffered had scarred him deeply. He never spoke, nor even growled for that matter. He kept to himself mostly, somtimes wandering off on his own for days."); + end + if(count == 5) then + e.self:Say("As time passed, he demonstrated abilities that no Kerran had possessed before. All Kerrans could move quietly while they hunted, but Taruun was different. He moved silently, undetectable by even his fellow Kerrans. Added to this was an amazing ability to instantly blend into any background. He did so without the normal visual effects that a shaman displays while casting a spell of invisibility. Taruune could disappear at will."); + end + if(count == 6) then + e.self:Say("The boy never spoke, but he proved his value to the tribe during those first years. He often returned from his solo treks into the wilderness with more food than an entire gathering of hunters. The tribal elders watched this and grew curious."); + end + if(count == 7) then + e.self:Say("One morning the tribal elders asked the youth if they could send hunters with him on one of his treks. He simply nodded and motion for the elder hunters to follow. The hunters had learned to respect young Taruun prior to that day and followed the youth with open minds. It is fortunate for all ofus that they did so. The skills that they learned in that expedition and all of the ones that followed it are still used today."); + end + if(count == 8) then + e.self:Say("Taruun continued to take hunters with him for several years after that first trip. The hunters that he taught passed their knowledge to the hunters that follwed behind them. Seasons passed and the tribe flourished and grew under the tutelage of silent youth. This continued until the day that he left the tribe. No one can remember when or why the youth left. Some speculate that he was a spirit. Other had said that he never existed. I prefer to think that he was a fleeting part of the shadows, destined to move with the sun."); + end + if(count == 9) then + e.self:Say("Our people all learn the story of Taruun at an early age. The boy never spoke the name himself, but his actions and skill spoke like no words could. Our elders say that the story of Taruun is a lesson in humility. He helped our tribe without the use of words and with no desire for gratitude. That is why we have named out scouts after the youth. They are the epitome of what he represented to our people."); + end + if(count == 10) then + e.self:Say("That is the story of Taruun, the child that taught a tribe to survive. He is the namesake of our scout sect. It was an honor to be able to recite this story for you."); + eq.signal(155105,10); -- NPC: Jharin_Hajka + eq.signal(155140,10); -- NPC: Dar_Khura_Aylin + eq.signal(155139,10); -- NPC: Khala_Dun_Gurish + eq.signal(155108,10); -- NPC: Ahjiq_Mumir + eq.signal(155107,10); -- NPC: Khala_Dun_Rorya + eq.set_timer("story",300000); + end + if(count == 11) then + e.self:Say("This is the story of Dar Khura. As with the other sects of the Vah Shir, the Dar Khura took their name from one of our greatest historic figured We honor the memory of our fallen leaders through our actions each day. It is the duty of every Vah Shir to epitomize the values that make our civilization strong, for without these values we are no better than the creatures that wallow in the filth of the darkest caves."); + eq.set_timer("story",10000); + end + if(count == 12) then + e.self:Say("Dar Khura was the spiritual advisor to Vah Kerrath himself even before the ascension... or shifting. After the great event, it was his solemn conviction that we had not ascended to this world by mere chance, but that we were led here for a special purpose. Dar Khura focused on discovering that purpose and leading the tribe to fulfill their destiny."); + end + if(count == 13) then + e.self:Say("Shortly after our city's first walls were completed, Dar Khura went to King Kerrath and told him of a recurring vision he had been experiencing. In the dream, the shaman perceived some unknown force tampering with the balance of the spirit realm."); + end + if(count == 14) then + e.self:Say("An overwhelming feeling of urgency and desperation lingered with the Spiritist each time he awoke from the visions. Dar expressed to the king that it was his opinion that this was the purpose for their being delivered to this place."); + end + if(count == 15) then + e.self:Say("The king found Dar Khura's words to be compelling. So convinced was the king that by the end of the day a decree went out to the tribe to afford Dar Khura any resource he needed to carry on his search. This research bore fruit sooner than any of the tribal elders could have expected."); + end + if(count == 16) then + e.self:Say("Dar Khura's research was quick to provided insight into one of the races of this new place. The Spiritists grew to know this race as the Akheva. They were determined to be a semi-immortal race."); + end + if(count == 17) then + e.self:Say("Research found that when one is slain, it is reborn anew. Over time, Dar Khura discovered that when an Akheva was reborn, a sacred member of the spirit realm was destroyed. This, he surmised, was the meaning of his initial visions."); + end + if(count == 18) then + e.self:Say("Dar Khura gathered an element of soldiers and moved into the darkness with the hope of gathering more information on this new race. That morning Dar Khura and his soldiers moved out of the sanctuary of the city walls and into the darkness. That was the last time that Dar Khura and his noble group of soldiers were seen. Only speculation was left behind."); + end + if(count == 19) then + e.self:Say("Our people have named the Shamanic sect of our tribe after that visionary spiritual leader. May the eyes of Vah watch over his spirit as they do ours."); + eq.signal(155105,10); -- NPC: Jharin_Hajka + eq.signal(155140,10); -- NPC: Dar_Khura_Aylin + eq.signal(155139,10); -- NPC: Khala_Dun_Gurish + eq.signal(155108,10); -- NPC: Ahjiq_Mumir + eq.signal(155107,10); -- NPC: Khala_Dun_Rorya + eq.set_timer("story",290000); + end + if(count == 20) then + count = 0; + eq.set_timer("story",10000); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Lyjak.lua b/sharvahl/Lyjak.lua new file mode 100644 index 0000000..4904b74 --- /dev/null +++ b/sharvahl/Lyjak.lua @@ -0,0 +1,96 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met my friend. I have patterns and sewing kits to supply any would be tailor. It's easy to learn if you havn't done so already. Just pick up one of my kits and try weaving the silks of the Xakra together."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_spawn(e) + eq.set_timer("1",82000); +end + +function event_timer(e) + if(e.timer == "1") then + local rand = math.random(1,3); + if(rand == 1) then + e.self:Say("Don't waste those pelts, adventurer! Come buy a tailoring kit and weave yourself some armor!"); + end + if(rand == 2) then + e.self:Say("I have tailoring supplies! It's easy to learn. Come see!"); + end + if(rand == 3) then + e.self:Say("I have all sorts of patterns to make your tailoring easy. Come look at what I have to offer."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Maera_Kerrath.lua b/sharvahl/Maera_Kerrath.lua new file mode 100644 index 0000000..200204a --- /dev/null +++ b/sharvahl/Maera_Kerrath.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met. friend. May I be of assistance?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Mahj_Hujara.lua b/sharvahl/Mahj_Hujara.lua new file mode 100644 index 0000000..118b440 --- /dev/null +++ b/sharvahl/Mahj_Hujara.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Let me know if you need anything."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Marduk.lua b/sharvahl/Marduk.lua new file mode 100644 index 0000000..b3e05f8 --- /dev/null +++ b/sharvahl/Marduk.lua @@ -0,0 +1,83 @@ +function event_spawn(e) + eq.set_timer("1",82000); +end + +function event_timer(e) + e.self:Say("The outdoors can be cold. Come pick up some extra cloth. Just have a look it wont hurt ya! I'll give you a good deal. Come now don't be shy."); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("nods his head and smiles. 'Welcome, traveler. I carry fine linen to help protect you from the elements. They are crafted with woven flax of the finest quality. Please have a look!"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Master_Barkhem.lua b/sharvahl/Master_Barkhem.lua new file mode 100644 index 0000000..8109aff --- /dev/null +++ b/sharvahl/Master_Barkhem.lua @@ -0,0 +1,116 @@ +-- Starting quest for luclin smithing +-- other npcs, repair orders : Khala_Dun_Jasir, Khala_Dun_Aihjin, Khala_Dun_Bokh, Khala_Dun_Koby +-- other npcs, end of the quest : Master_Taruun_Rakutah +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say('Welcome to my shop. Please feel free to look around at the armor we have available. If you are looking for work, just let me know.'); + elseif(e.message:findi("work")) then + e.self:Say("That's great news! I could really use a hand. I have constructed some shield frames ideal for use with the carapaces found on [bloodlings]. Unfortunately I do not have the time to collect any of the shells. You can either purchase the frames and keep the shields for yourself, or you can return them to me and I will compensate you for your troubles."); + elseif(e.message:findi("bloodlings")) then + e.self:Say("Cht`Thk bloodlings are parasites found in the thickets just beyond the south gate. You best be careful, they have a habit of sucking the blood from a person and spreading diseases."); + elseif(e.message:findi("repair order")) then + e.self:Say("Huh? Oh, here is a repair order for the Guards' shields, I will only give you one at a time as I do not want you overworking yourself so early in your education."); + e.other:SummonCursorItem(29803); -- Item: A Shield Repair Order + elseif(e.message:findi("spirit anchor")) then + e.self:Say("Have you not met Tiamon out in the Thicket yet? He is always telling anyone who wants to listen all about spirit anchors. Let me sum it up for you- the shadeweavers hunt the beings of shadow in the thicket to make their special shadow armor called Xakra. Now if you or I were to try to don this armor, it wouldn't last long as the shadows are not bound to this plane. Tiamon developed a method of [binding the spirits] in such a way that they will last. Mind you, he works with needles and threads- I work with the tools of a smith."); + elseif(e.message:findi("binding the spirits")) then + e.self:Say("When something has been exposed to great ritual and culture, like the stones used to build a city or the instrument of one of our bardic historians, it kind of develops its own memories, you might say, and becomes a suitable spirit anchor. When he was Master Smith of SharVahl City, Kagazz began collecting the discarded weapons and armor of our fallen heroes and melting them down to make smithing tools. In this way he honored their achievements by passing their experience into new weapons and armor for our young heroes-to-be. As it turns out, these anvils are very strong spirit anchors, so strong that you can [rend shadow] itself."); + elseif(e.message:findi("rend shadow")) then + e.self:Say("That's right. You will be working with the very fabric of shadow and sound, but we'll get to the sound part later. For now, hunt the shades in the Thicket; they hold moderate pieces of the power that you can use to experiment with. The mallet I gave you can be used to gather the shadows into a solid mass if you strike them on this anvil. You're probably best starting with something simple like Shadow disks to begin with."); + elseif(e.message:findi("shadow disk")) then + e.self:Say("Take swirling shadows from the shades in the Thicket and combine them with some metal bits to make a Shadow disk. Fill this box with disks and return it to me with my old mallet,' he pauses, considering your progress and smiling slightly, 'you will have earned your own at that point. Afterwards, I will show you how to manipulate sound to empower the shadows."); + e.other:SummonCursorItem(17498); -- Barkhem's box + elseif(e.message:findi("humming orb")) then + e.self:Say("You'll need to get a shrieking substance from the sonic wolves that roam the moor and then combine it with a wailing substance from an owlbear. You'll want to pound those two together onto some metal rings with your mallet and anvil to form the humming orb. About three orbs should be plenty. Bring them back to me with your new mallet and I will have something very special to show you."); + elseif(e.message:findi("shadowscream steel")) then + e.self:Say("Shadowscream steel is made by striking the swirling shadows on your anvil with the Humming Luclinite Hammer and adding a sonic punch. For example, you might place two swirling shadows into a boot mold with a humming orb to make a pair of Shadowscream Steel Boots- use medium sized molds, the magical properties of the material will adjust to any size body. Come to think of it, I have a standing boot order you should be able to fill, it would make a great first job.'"); + elseif(e.message:findi("standing boot order")) then + e.self:Say("Rakutah of the Taruun had asked if I would make a few pairs of boots for his new recruits, but alas I have not had the time. If you think you are ready for the job, make up a pair and show them to him. I have every bit of faith in you, " .. e.other:GetCleanName() .. "."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local bloodling = 0; + -- You can buy Nepeta Oil Extract from a merchant named Chialle in the southern part of Shar Vahl. The mail sectional mold is sold by Apprentice Garr, near Master Barkhem. Combine the oil, mold and two plates in a forge (trivial 32) to create a Bloodling Plate Mail. + -- give Bloodling plate mail + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30646})) then + bloodling = 30646; -- Item: Bloodling Plate Helm + vah_armor = 1; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30647})) then + bloodling = 30647; -- Item: Bloodling Plate Mask + vah_armor = 1; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30648})) then + bloodling = 30648; -- Item: Bloodling Plate Gorget + vah_armor = 1; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30649})) then + bloodling = 30649; -- Item: Bloodling Plate Mail + vah_armor = 1; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30650})) then + bloodling = 30650; -- Item: Bloodling Plate Mantle + vah_armor = 1; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30651})) then + bloodling = 30651; -- Item: Bloodling Plate Cloak + vah_armor = 1; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30652})) then + bloodling = 30652; -- Item: Bloodling Plate Belt + vah_armor = 1; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30653})) then + bloodling = 30653; -- Item: Bloodling Plate Sleeves + vah_armor = 1; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30654})) then + bloodling = 30654; -- Item: Bloodling Plate Bracer + vah_armor = 1; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30655})) then + bloodling = 30655; -- Item: Bloodling Plate Gauntlets + vah_armor = 1; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30656})) then + bloodling = 30656; -- Item: Bloodling Plate Leggings + vah_armor = 1; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30657})) then + bloodling = 30657; -- Item: Bloodling Plate Boots + vah_armor = 1; + end + if(vah_armor == 1) then + e.self:Say("I knew that old thing would make a fine bit of armor in the right hands. Talent like yours should not go to waste! Take this, it is the mallet that I used to smith my very first bit, you can learn with it until you earn something better. Here is your first lesson " .. e.other:GetCleanName() .. ", use this mallet to pound out the dents in the guard's shields. The ones guarding the bridges into town will need it most, as they can not leave their posts. Show each guard a [repair order] and have them sign off on it when you are through."); + e.other:QuestReward(e.self,{items = {bloodling,29802}}); + vah_armor = 0; + end + -- give 2 Bloodling shields : buy 2 carapace shield frame from Barkhem, fill them with Cht`Thk carapaces, combine + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30658, item2 = 30658})) then + e.self:Emote("smiles and nods his head in approval before speaking. 'This is some quality work my friend. Although you could use some practice in your style, I can sense true potential in your smithing skills. This was too large for me to use for a shield, but I think you can craft it into some fairly good armor. Just treat it in a forge with nepeta oil and the proper mold, the oil should soften it up enough to become pliable. Once fired in the forge it will harden to the mold. I'd love to see how It turns out.'"); + e.other:QuestReward(e.self,{items = {30664,30664}}); -- Item: A Bloodling Carapace Plate + + -- Give Master Barkhem the four work orders, from the 4 khala dun + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29806, item2 = 29809, item3 = 29812, item4 = 29815})) then + e.self:Emote("shuffles through the work orders. 'Well they have some lovely things to say about your work!'"); + e.self:Emote("disappears into the back room for a moment only to return dragging some sort of large iron block in his hands and crashes it down on the counter. 'Do you know what this is? I see you nodding your head, and yes it is an anvil... but it is so much more. This is a specially crafted anvil for only my most promising students as not just anyone has it within them to smith on a [spirit anchor].'"); + e.other:Faction(e.self,1513,10); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,29816,500); -- Vah Shir Anvil + -- Receive Barkhem's Box. Gather eight Swirling Shadows (dropped by shade NPCs in Luclin -- easiest farmable, Lesser Shades in Shadeweaver's Thicket.). Now inside a forge, combine 1 x Swirling Shadows + 1 x Metal Bits + 1 x Vah Shir Anvil + 1 x Vah Shir Apprentice Mallet to create a Shadow Disk (trivial 108). Repeat this process seven more times. Place the eight Shadow Disks into Barkhem's Box to create a Box of Shadow Disks. + -- Head back to Master Barkhem and hand him the box and apprentice mallet. + -- box of shadow disks 29819 (from 8 shadow disk 29818) + -- apprentice mallet 29802 + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29802, item2 = 29819})) then + e.self:Say("Well done, " .. e.other:GetCleanName() .. "! I trust you are beginning to see the power that shadow can grant you. Now it is time for you to learn to manipulate sound. Here is your very own mallet, use it to form the substance of sound into tangible matter. Pound yourself out a few humming orbs and I'll know you're ready to combine shadow and sound into a precarious balance of forces."); + e.other:Faction(e.self,1513,10); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,29820,500); -- Luclinite Mallet + -- Create three Humming Orbs and head back to Master Barkhem for your final turn-in. Give the orbs + your Luclinite Mallet in exchange for a Humming Luclinite Mallet, used to make Shadowscream armor. + -- 3 humming orbs 29823 + Luclinite Mallet + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29820, item2 = 29823, item3 = 29823, item4 = 29823})) then + e.self:Emote("looks genuinely pleased with your craftsmanship. He sets down one of the orbs onto a special anvil and swings your mallet high in the air crashing it down on the orb causing it to shatter with a terrible shriek. He repeats this action with each of the remaining orbs and hands you back the now humming mallet. 'Here, " .. e.other:GetCleanName() .. ", this mallet will enable you to combine shadow with sound. Smith wisely and be careful what you create with it,' Barkhem pauses, looking quite serious, 'it is very powerful. You'll be able to make Shadowscream steel with it.'"); + e.other:Faction(e.self,1513,10); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,29824,500); -- Humming Luclinite Mallet + -- receive Rakutah's Seal + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29826})) then + e.self:Say("Back already, " .. e.other:GetCleanName() .. "? I've only just sent you out and you've finished your very first professional job, well done! I'm very proud of your progression! My wife and I have made you a pair of greaves that I'm sure you'll love to wear. Take them as a reward on a job well done. I have pressing matters that require my attention right now, or else I'd teach you more about the powers of shadow and sound. Experiment with the Shadowscream steel until I can teach you more."); + e.other:Faction(e.self,1513,10); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,29827,500); -- Barkhem Fancy Pantaloons + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Master_Taruun_Rakutah.lua b/sharvahl/Master_Taruun_Rakutah.lua new file mode 100644 index 0000000..496cecf --- /dev/null +++ b/sharvahl/Master_Taruun_Rakutah.lua @@ -0,0 +1,41 @@ +function event_say(e) + local qglobals = eq.get_qglobals(e.self,e.other); + if(e.message:findi("hail")) then + e.self:Say("Well met, friend. May I be of assistance?"); + elseif(e.message:findi("application") and tonumber(qglobals.Shar_Vahl_Cit) == 1) then + e.self:Say("Luckily for you someone found it."); + e.other:SummonCursorItem(2873); -- Item: Application for Citizenship + elseif(e.message:findi("cloak") and tonumber(qglobals.Shar_Vahl_Cit) == 7) then + e.self:Say("Someone found a rockhopper chewing on this in the pit. Try not to lose it this time."); + e.other:SummonCursorItem(2878); -- Item: Initiate's Cloak of Shar Vahl + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "This item, by itself, means nothing to me."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18554})) then --Taruun Guild Summons + e.self:Say("Good " .. e.other:GetCleanName() .. ", I am pleased to see you. You have come of age and it is time for you to register for citzenship. Your invitation indicates that the Taruun, hunters and providers of Shar Vahl, have noticed you and consider your potential to be worthy of our training. First, take this application to the Registrar Bindarah and return to me with proof of citzenship."); + e.self:Say("I know that you may be nervous right now... after all, this should be very exciting first step for you. If you happen to get lost while looking for the registrar, just ask one of the other citizens or guards for directions. They will most likely know where to find the place or person that you are looking for."); + eq.set_global("Shar_Vahl_Cit","1",5,"F"); + e.other:QuestReward(e.self,{itemid = 2873,exp = 20}); -- Application for Citizenship + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29828})) then --Shadowscream Steel Boots + e.self:Say("So you're Barkhem's newest student are you? I may not have taken your word for it, but craftsmanship this fine could only be from a student of our Master Smith. Take this and fill it with Shadowscream steel boots. I need 6 pairs to outfit some of my hunters. When you've finished, return the box to me."); + e.other:QuestReward(e.self,0,0,0,0,17499); --Boot Case + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29825})) then --Shadowscream Boot Case + e.self:Emote("inspects the boots for a moment and looks you square in the eyes. 'This is excellent work, " .. e.other:GetCleanName() .. ", you do not disappoint! Would that you could outfit all of my hunters with these boots, but I must not keep your talents all to myself. Take some change for your troubles and this seal back to Barkhem - let him know that I am very impressed with his new protege.'"); + e.other:Faction(e.self,1513,10); --Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,29826,500); --Rakutah's Seal + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 2897,item2 = 2877}, 1, text)) then --Notorized Application + e.self:Say("Allow me to be the first to welcome you. Accept this cloak, young initiate. It is a symbol of your loyalty to our noble people. May it serve you as you serve us all. Present your acrylia slate to Harbin Gernawl and he will give you instruction. May the spirits of the beasts guide you and keep you safe."); + eq.set_global("Shar_Vahl_Cit","7",5,"F"); + e.other:QuestReward(e.self,{items = {2877,2878},exp = 450}); -- Item: Acrylia Slate of Shar Vahl, Initiate's Cloak of Shar Vahl + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Melek_Haluur.lua b/sharvahl/Melek_Haluur.lua new file mode 100644 index 0000000..a4549e1 --- /dev/null +++ b/sharvahl/Melek_Haluur.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello mate. what's the good word?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Merchant_Ahlam.lua b/sharvahl/Merchant_Ahlam.lua new file mode 100644 index 0000000..a31bf8b --- /dev/null +++ b/sharvahl/Merchant_Ahlam.lua @@ -0,0 +1,104 @@ +--Art of Vah Shir Brewing +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello " .. e.other:GetCleanName() .. ". would you care for a drink? Or perhaps you're the one they sent to help me? If you've come to help please show me your acrylia slate."); + elseif(e.message:findi("interested")) then + e.self:Say("Is that so? I suppose I would be willing to teach you a few things about brewing, but you'll have to show me one of my seals before I begin your instruction."); + elseif(e.message:findi("purify water")) then + e.self:Say("Take a bottle to Gamali in Hollowshade Moor. You'll find her somewhere around the Grimling fishing huts if I had to guess. She'll fill the bottle with water for you. Take this water and combine it with the Acrylia sand purifer. That will yield the purest water you ever did drink."); + elseif(e.message:findi("gravel leaf tea")) then + e.self:Say("To make the tea you'll need a flask of crystal clear water and some gravel pit leaves. Boil the water in a brew barrel and add the leaves when it's hot. That makes for the strongest dose of the sedative qualities of the tea."); + elseif(e.message:findi("hollow palm tea")) then + e.self:Say("You'll need some Crystal water, just as you do with all of our teas, and some Hollow palm roots. You can find Hollow palms out in the moors, watch out for the grimlings though. Once you find the roots just use the strainer to control the flow of water over the leaves. If you do it correctly you'll create a very potent brew. When you get it right bring the strainer back to me with a sample of your work."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2877})) then + e.self:Say("Ah good I was hoping you'd be along soon. I need you to collect some Gravel tea leaves from below the city. I need these leaves to make some tea for the guards under the arena. I need 10 of these leaves to brew enough tea for the guards. Take this pouch and fill it with leaves and return it to me."); + e.other:QuestReward(e.self,{items = {2877,17098}}); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31764})) then + e.self:Say("Many thanks " .. e.other:GetCleanName() .. ", I'll be going to brew this tea up for the guards now. Take this seal as proof of your helping me. You wouldn't happen to know anyone who would be [interested] in learning the art of Vah Shir Brewing would you? I could really use the help in these hard times, I can barely keep up with all the demand."); + e.other:QuestReward(e.self,0,0,0,0,31774); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31774})) then + e.self:Say("Well done, it is now time to start down the path of learning the art of Vah Shir brewing. You'll need a steady hand if you are to master the brew barrel. The first thing you'll need to learn is how to purify the water we use for all our finest brews. Take this Acrylia filter and use it to [purify water]. Bring me 4 flasks of crystal clear water and I'll teach you how to make the tea from the gravel tea leaves."); + e.other:QuestReward(e.self,0,0,0,0,31760); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31762, item2 = 31762, item3 = 31762, item4 = 31762})) then + e.self:Say("Very good " .. e.other:GetCleanName() .. ", this water is perfect for making Gravel leaf tea. I've just received a message from Guard Jabbar under the arena needs a shipment of [Gravel leaf tea] to help sedate the prisoners. Fill a crate with bottles of Gravel leaf tea and take it to Guard Jabbar."); + e.other:QuestReward(e.self,0,0,0,0,17099); -- Item: An Empty Crate + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31775})) then + e.self:Say("Very good " .. e.other:GetCleanName() .. ", the guards had been waiting for that tea all day. I think you're ready to move on to something a bit more challenging now. Take this strainer, it will allow you to create some very potent brews from some of the more rare herbs to be found near the city. You'll want to start by making some [Hollow palm tea] to get used to how the strainer works."); + e.other:QuestReward(e.self,0,0,0,0,31768,2000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31769, item2 = 31768})) then + e.self:Emote("sips the tea. A bit of a glazed look comes across his face. Ahlam says, 'Mmmmm, I do so love Hollow palm tea. This is a bit mild for Hollow palm tea though, you might want to try adding some spices next time for a bit more flavor. Here's your strainer back, I etched some runes into that should add to the potency of your brews. I hear the grimlings make a very potent sort of tea from the grimroot out in the forest, but the thought of drinking anything made from grimroot makes my stomach churn. At any rate, tinker a bit with that strainer and don't be afraid of trying some new brews with it. If you create anything interesting that you think I might like bring it to me so I can taste it.'"); + e.other:QuestReward(e.self,0,0,0,0,31771,2000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31772})) then + e.self:Say("Great job, here is my seal of approval. Hand that back in along with your stainer for an upgrade."); + e.other:QuestReward(e.self,0,0,0,0,31776); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31776, item2 = 31771})) then + e.self:Say("Here is the Acrylia Handled Strainer. Use it with regular water to replace the crystal clear water."); + e.other:QuestReward(e.self,{items = {31776,31777},exp = 2000}); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Merchant_Ayyad.lua b/sharvahl/Merchant_Ayyad.lua new file mode 100644 index 0000000..d0854c5 --- /dev/null +++ b/sharvahl/Merchant_Ayyad.lua @@ -0,0 +1,34 @@ +--Changes by Kagehi +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello " .. e.other:GetCleanName() .. ", sorry but I have no time to chitchat. I'm looking for the help of a citizen."); + elseif(e.message:findi("citizen")) then + e.self:Emote("looks at you excitedly, 'Show me your acrylia slate and I'll explain my situation.'"); + elseif(e.message:findi("additional instruction")) then + e.self:Say("Mastered those runes already, " .. e.other:GetCleanName() .. "? You're learning very fast indeed. Your next lesson will be in the molding of a new type of item. You'll need to gather some gray mud from below the city and mix it with some Rockhopper blood to make a block of reddish clay. Take this block of reddish clay and combine it with a Vah Shir model sketch to create an unfired Vah Shir figurines. Fire the model in a kiln with a firing sheet to create a Finished Vah Shir figurine. Finally, use the Runequill Set to etch grimling blood into runes on the figurine."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2877},0)) then + e.self:Say("Some of my wares are spoiling and I must place them in a container to preserve them. I cannot afford to take the loss that would result if they were to rot. Please " .. e.other:GetCleanName() .. ", take this bowl and combine two lumps of gray mud with a flask of water and xakra bile. Take the resulting clay and this sketch with another water flask to fashion an unfired gray jar. Fire it in a kiln with a firing sheet and return to me with the product as soon as you can."); + e.other:QuestReward(e.self,{items = {2877,3497,17233}}); --Item: Acrylia Slate of Shar Vahl, Reusable Jar Sketch, Ayyad's Clay Bowl + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3498},0)) then + e.self:Say("Excellent! Please accept this knapsack as payment for your trouble. Here is my seal as well. I can always use more jars and if you give me four of my seals I will share with you a family secret."); + e.other:QuestReward(e.self,{items = {17234,3499}}); --Ayyad's Knapsack, Ayyad's Seal. + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3499,item2 = 3499,item3 = 3499,item4 = 3499}, 0)) then + e.self:Say("Excellent, " .. e.other:GetCleanName() .. ", few of our kind show a true interest in the more refined arts of pottery these days. It is very good to see the young people taking interest in the old arts. Here is a Basic Runequill Set. Take the instruments in the set and practice marking runes on the gray jars that you previously brought to me. To etch the runes, simply cover a gray jar with some Xakra bile and use the Runequill Set to etch the runes on to the jar. You'll want to fire them in a kiln when you're finished. When those jars become trivial come back and give me those basic tools and we'll see about upgrading them."); + e.other:QuestReward(e.self,0,0,0,0,3631); -- Basic Runequill Set + elseif(e.other:GetRawSkill(69) >= 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 3631},0)) then + e.self:Say("You're progressing nicely, " .. e.other:GetCleanName() .. ". Take this sculpting tool and add it to the set you already have. This new quill set will be able to make some very nice urns that should help ease the burden of moving all that heavy clay around. Take a gray jar and use the new set of tools I've given you to etch Xakra blood into runes on the side of the jars. These should prove to be very useful in your labors in the future. Once you have mastered those runes, bring back your runequill set to me for another addition."); + e.other:QuestReward(e.self,0,0,0,0,3632); -- Novice's Runequill Set + elseif(e.other:GetRawSkill(69) > 100 and item_lib.check_turn_in(e.self, e.trade, {item1 = 3632},0)) then + e.self:Say("You're progressing nicely, " .. e.other:GetCleanName() .. ". Take this sculpting tool and add it to the set you already have. This new quill set will be able to make some very nice urns that should help ease the burden of moving all that heavy clay around. Take a gray jar and use the new set of tools I've given you to etch Xakra blood into runes on the side of the jars. These should prove to be very useful in your labors in the future. Once you have mastered those runes, bring back your runequill set to me for another addition."); + e.other:QuestReward(e.self,{items = {3641,3647}}); -- Finely Crafted Runequill Set, Ayyad's Note to Fareed + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3643}, 0)) then + e.self:Say("Welcome back " .. e.other:GetCleanName() .. ", I trust you behaved well in the presence of the king's servants. It seems Fareed was very impressed with your work, as he has instructed me to give you a very nice reward. Here, take this Urn, it will surely prove very useful to you as you continue your study of the molding of the earth. Oh, I almost forgot to tell you, Grilo the mason was here earlier looking for you, he has heard of your talents and believes that you might do well in the school of masonry as well. Seek him out."); + e.other:QuestReward(e.self,0,0,0,0,17107); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Mess_Cook_Azur.lua b/sharvahl/Mess_Cook_Azur.lua new file mode 100644 index 0000000..9e5784b --- /dev/null +++ b/sharvahl/Mess_Cook_Azur.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("What can I get for you?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Mess_Cook_Pyjik.lua b/sharvahl/Mess_Cook_Pyjik.lua new file mode 100644 index 0000000..9e9942a --- /dev/null +++ b/sharvahl/Mess_Cook_Pyjik.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome friend! Please. let me know if you need anything."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Mignah_Cahru.lua b/sharvahl/Mignah_Cahru.lua new file mode 100644 index 0000000..16f927e --- /dev/null +++ b/sharvahl/Mignah_Cahru.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". I am Mignah, a humble acrylia specialist. If you have a form of acrylia that merchants will not buy please hand it to me and I will pay you whatever it may be worth."); + elseif(e.message:findi("acrylia slate")) then + e.self:Emote("pulls a smoldering piece of forged acrylia from a nearby oven and, before you can react, presses your hand into the still soft metal. 'This may hurt a bit, but it'll heal.' He then etches your name and the date into the slate and plunges it into a bucket of water before placing it into your stinging palm."); + e.other:SummonCursorItem(2876); -- Acrylia Slate + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Mugdah.lua b/sharvahl/Mugdah.lua new file mode 100644 index 0000000..ad402c9 --- /dev/null +++ b/sharvahl/Mugdah.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oi there. Our alchemists have developed some deadly toxins to help us keep our enemies at bay. Be careful what you touch, some of that stuff can kill you in seconds. I have a few for sale if you've got the coin for them."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Mydi_Darjik.lua b/sharvahl/Mydi_Darjik.lua new file mode 100644 index 0000000..d46a606 --- /dev/null +++ b/sharvahl/Mydi_Darjik.lua @@ -0,0 +1,27 @@ +--Edited by anubisrwml +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, did you need assistance with something or are you just browsing?"); + elseif(e.message:findi("treat") or e.message:findi("buckler")) then + e.self:Say("Sure, I can help you with that. You'll need a specially soaked cloth to help the tincture set into the material of the shield. Please let me see the buckler so that I can give you the appropriate size of cloth."); + elseif(e.message:findi("soaking solution") or e.message:findi("spore")) then + e.self:Say("It's really not as difficult as it sounds. The spores required to make the solution that you'll need are easy to find. They grow in the dulfis mushrooms that are found in the caves beyond the thicket. You'll just need to throw the whole mushroom into a flask of water to brew. Once the dulfis has boiled in the water for a while, you'll get a murky gray liquid. Boil the cloth in that liquid for a bit in the brew barrel and then wrap the steaming cloth around the buckler and the tincture that Fharra gave you. Let the cloth cool and you should see the desired results. Bring the buckler to me once you're done and I'll tell you if you did it correctly."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3495})) then + e.self:Emote("cuts the cloth big enough to cover your buckler twice over and folds it neatly. She puts the cloth on the buckler and hands it to you. She looks around for a moment..."); + e.self:Say("Sometimes I feel as if the spirits are playing tricks on me. I'm out of spores. I never seem to run out of spores until the times when I need them most. You'll need to gather them on your own to make the [soaking solution]."); + e.other:QuestReward(e.self,{items = {3495,5538}}); -- Item: Large Folded Cloth + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5543})) then + e.self:Say("Quite impressive! Quite impressive, indeed! To be honest it took me a very long time to become that good at imbuing items and enhancing their natural properties. You show a great deal of promise. If you will be willing to help me with another task, I could recommend you for a possible promotion within the ranks of the Dar Khura. I need you to take this bag and fill it with wet fang eyes. Just find a stagnant body of water, spear a wet fang, and pop its eyes out!"); + e.other:QuestReward(e.self,{items = {5543,17076}}); -- Item: Imbued Hopperhide Buckler + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5541})) then + e.self:Say("Thank you very much! I was almost out of these eyes and I'm sure you'll agree they aren't easy to come by. Your assistance will not go unnoticed. Here is the blessing I promised you. Take this token to Spiritualist Fehril along with your recruits cloak, and your wonderful new buckler. He'll know that I send you with my blessing. Take care and may the spirits guide you, young Dar Khura."); + e.other:Faction(e.self,1533,10); -- Faction: Dar Khura + e.other:QuestReward(e.self,0,0,0,0,5542,3500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Nayantara_Tarana.lua b/sharvahl/Nayantara_Tarana.lua new file mode 100644 index 0000000..230c566 --- /dev/null +++ b/sharvahl/Nayantara_Tarana.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hrmm? Oh, hello there, " .. e.other:GetCleanName() .. ". I have to say, Norrath getting closer lately has been pretty to watch, but now that thrill has worn off, it really gets in the way of seeing the stars behind it. Trying to divine the will of spirits from astral patterns and nebular activity is a lot easier without a planet in your face,"); + elseif(e.message:findi("drop of moonlight")) then + e.self:Say("'Under normal circumstances I am happy to sell a drop of moonlight- it is one of the few ways for an Astrologer to make any money,' she chuckles. 'Problem right now is that my telescope is out of commission and trying to harness a drop of moonlight without a telescope is rather akin to trying to catch a fish with your bare hands, know what I mean?' Laughing heartily at her own joke, she continues, 'Anyway, if you want, I would be happy to trade you a fresh drop of moonlight for a new reflective shard. You may need to head to the Geerloks in Katta for one though, I do not believe anyone sells them locally."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 16860})) then + e.self:Emote("inspects the shard, 'This is perfect, " .. e.other:GetCleanName() .. ", thank you. I will fit this into my telescope as soon as I get home, here is the drop of moonlight that I promised you. Good luck, my friend' she says with a bow."); + e.other:QuestReward(e.self,0,0,0,0,5992); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Noril_Galoon.lua b/sharvahl/Noril_Galoon.lua new file mode 100644 index 0000000..59a37ca --- /dev/null +++ b/sharvahl/Noril_Galoon.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("spare time")) then + e.self:Say("Shields and bucklers are very versatile. They can be used to deflect blows, knock your opponents off balance, and even offer a secondary form of attack. If you want me to help you to modify your shield, I'll need you to gather some rough ore pieces. They can be taken from the rhinobeetles that reside in the moor. Place them in a forge with a flask of water and your set of files to create bolts. Combine the full bag of bolts and return the product and the buckler to me."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5545}, 0)) then + e.self:Emote("examines the hilt for a moment and hands the sword back to you."); + e.self:Say("This looks like it will work fine.' He says. 'If you are up to doing me a favor, I can teach you how to modify your shield as well. Take this bag and these files and come back to me when you have some [spare time] and want to learn more about shields."); + e.other:QuestReward(e.self,{items = {5545,5546,17605}}); -- Item: Leather Gripped Short Sword, Set of Engraved Files + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5556, item2 = 3452})) then + e.self:Say("Thanks for the Bag of Bolts " .. e.other:GetCleanName() .. "."); + e.self:Say("Thank you for making those for me. I was almost out. I'll modify your buckler immediately after I finish what I am doing here. Meanwhile, take this shopping list to Friaz. Do what you can to assist her. I need the bag of beetle horns she will give you if I am to work on your shield today."); + e.other:QuestReward(e.self,0,0,0,0,18321); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5549}, 0)) then + e.self:Say("Great work " .. e.other:GetCleanName() .. ". Thanks for the tools to finish your upgrade. Here is your new shield. Take your buckler, cloak and sword back to Armsman Khaigesh and show him the progress you have made."); + e.other:Faction(e.self, 1513,5 ); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,5550,2000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Nytal_Lior.lua b/sharvahl/Nytal_Lior.lua new file mode 100644 index 0000000..a334599 --- /dev/null +++ b/sharvahl/Nytal_Lior.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("The eyes of Vah watch over you. You are safe within our walls."); + elseif(e.message:findi("vah")) then + e.self:Say("Vah Kerrath was our beloved leader. He was mortally wounded during the [shifting] and has passed on to the realm of spirits. This city is blessed with his spirit who guards our people to this day."); + elseif(e.message:findi("shifting")) then + e.self:Say("The story of the shifting has been passed down from our fathers and their fathers before them. It was the time when we were ripped from our home and brought to this world. Vah led us to rebuild what you see here before you. We are his beloved children and will stand strong, united as one in our new home. We love our home as we love our lives and forever will the eyes of Vah watch over all of us."); + end +end diff --git a/sharvahl/Palace_Guard_Niromak.lua b/sharvahl/Palace_Guard_Niromak.lua new file mode 100644 index 0000000..90af666 --- /dev/null +++ b/sharvahl/Palace_Guard_Niromak.lua @@ -0,0 +1,19 @@ +function event_waypoint_arrive(e) + if(e.wp == 15) then + e.self:SetAppearance(3); + end + if(e.wp == 32) then + e.self:Say("reporting for duty m'lord. I will defend Shar Vahl with your blessing."); + e.self:SetAppearance(4); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Palace_Guard_Talruush.lua b/sharvahl/Palace_Guard_Talruush.lua new file mode 100644 index 0000000..c4966e4 --- /dev/null +++ b/sharvahl/Palace_Guard_Talruush.lua @@ -0,0 +1,19 @@ +function event_waypoint_arrive(e) + if(e.wp == 35) then + e.self:SetAppearance(3); + end + if(e.wp == 47) then + e.self:Say("reporting for duty m'lord. I will defend Shar Vahl with your blessing."); + e.self:SetAppearance(4); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Palav.lua b/sharvahl/Palav.lua new file mode 100644 index 0000000..3846200 --- /dev/null +++ b/sharvahl/Palav.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.other:GetFaction(e.self) < 5) then + if(e.message:findi("hail")) then + e.self:Emote("purrs at " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("play dead")) then + e.self:Emote("rolls over and plays dead."); + e.self:DoAnim(16); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end +end + +function event_signal(e) + e.self:Emote("purrs at Warder Keeper Jyk."); +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Pardak.lua b/sharvahl/Pardak.lua new file mode 100644 index 0000000..381997b --- /dev/null +++ b/sharvahl/Pardak.lua @@ -0,0 +1,96 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings, come have a look at my quality footwear. They will protect you from sharp stones and nasty stinging bugs during your journeys."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_spawn(e) + eq.set_timer("1",82000); +end + +function event_timer(e) + if(e.timer == "1") then + local rand = math.random(1,3); + if(rand == 1) then + e.self:Say("Come come! Have a look at my goods for sale. I will give you a good deal."); + end + if(rand == 2) then + e.self:Say("Boots! Sandals! Quality footwear to help you walk the jagged trails. Come have a look!"); + end + if(rand == 3) then + e.self:Say("Come my friend, have a look at my goods. I have all sorts of footwear to chose from."); + end + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Pathmaster_Kharin.lua b/sharvahl/Pathmaster_Kharin.lua new file mode 100644 index 0000000..16a2ab6 --- /dev/null +++ b/sharvahl/Pathmaster_Kharin.lua @@ -0,0 +1,13 @@ +function event_signal(e) + e.self:Say("Gentlemen, not to interject... I understand your frustration. We have been at this for all of our lives. Why are we suddenly expected to over take an enemy that has existed as long as we can remember? Do you have new information about the nature of those caverns? Did you learn something from the spirits?"); +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Poekie_Raraesh.lua b/sharvahl/Poekie_Raraesh.lua new file mode 100644 index 0000000..1e5566f --- /dev/null +++ b/sharvahl/Poekie_Raraesh.lua @@ -0,0 +1,89 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Very well met, " .. e.other:GetCleanName() .. ". I do not remember seeing you here before. Are you new to the Taruun?"); + elseif(e.message:findi("yes")) then + e.self:Say("Well well new friend, welcome to our home! It's a pleasant enough place to return to after a long scouting mission... but you'll learn about that soon enough. There isn't much for you to do around here right now, so you should make your way out to the recruit training area. It's not hard to spot. Just walk out to the first bridge that you see, but do not cross it. Work your way around the ledge until you find the camp to the west. It was nice to meet you... take care!"); + elseif(e.message:findi("no")) then + e.self:Say("Well, it doesn't surprise that I cannot remember a face at this point. There are just so many new citizens running through here these days. Anyway... it was nice to meet you! Please, let me know if you ever need anything."); + elseif(e.message:findi("new recruit")) then + e.self:Say("Well... perhaps you should head to the combat training grounds and pick up a few pointers. Walk west along the ledge that runs just outside of the city's walls and you shouldn't be able to miss it."); + elseif(e.message:findi("at it for a bit")) then + e.self:Say("Good good... keep at it! We need all of the strong willed thick headed Khala Dun we can muster! Now, get back to the fight!"); + elseif(e.message:findi("ore")) then + e.self:Say("The ore that I require is often used to create living rock formations. These collections of rocks and boulders will often leave a trail of energy that causes other rocks to collect and come to life. Our scouts have seen these formations in a variety of areas. Take care when you attempt to gather this ore."); + elseif(e.message:findi("void")) then + e.self:Say("If you look in the Maiden's Eye, you will find entities that are the embodiment of darkness. Their twisted spirits are not allowed to escape the form that they inhabit. They have no hope of escape, unless they are released during the destruction of their material form. There are some occasions when the power that is used to keep them in this realm will turn upon itself during this period of destruction. This process is what produces the Gems of the Void."); + elseif(e.message:findi("padding")) then + e.self:Say("When traversing the Deep, you will run across a shrieking fungus. Those creatures are much more durable and dangerous than the other fungi that you may encounter in the caverns of Luclin. It is for this reason that we use their flesh as padding. Take care when hunting them, for they will provide a good challenge."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Rajyk.lua b/sharvahl/Rajyk.lua new file mode 100644 index 0000000..3846200 --- /dev/null +++ b/sharvahl/Rajyk.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.other:GetFaction(e.self) < 5) then + if(e.message:findi("hail")) then + e.self:Emote("purrs at " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("play dead")) then + e.self:Emote("rolls over and plays dead."); + e.self:DoAnim(16); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end +end + +function event_signal(e) + e.self:Emote("purrs at Warder Keeper Jyk."); +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Recruit_Aliid.lua b/sharvahl/Recruit_Aliid.lua new file mode 100644 index 0000000..94fcdc3 --- /dev/null +++ b/sharvahl/Recruit_Aliid.lua @@ -0,0 +1,79 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail Citizen. are you heading into the pit to practice?"); + elseif(e.message:findi("yes")) then + e.self:Say("We were just down there, but climbed out to take a little break. The creatures down there are really pounding some of the younger recruits. If you're heading down, I'd suggest that you hop down and be prepared to fight."); + elseif(e.message:findi("no")) then + e.self:Say("Well, if you're looking to learn a little more about combat, you really should go sign in at the training camp."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Recruit_Almdur.lua b/sharvahl/Recruit_Almdur.lua new file mode 100644 index 0000000..734cc20 --- /dev/null +++ b/sharvahl/Recruit_Almdur.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met. friend. May I be of assistance?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Recruit_Kilyla.lua b/sharvahl/Recruit_Kilyla.lua new file mode 100644 index 0000000..734cc20 --- /dev/null +++ b/sharvahl/Recruit_Kilyla.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met. friend. May I be of assistance?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Recruit_Miaja.lua b/sharvahl/Recruit_Miaja.lua new file mode 100644 index 0000000..94fcdc3 --- /dev/null +++ b/sharvahl/Recruit_Miaja.lua @@ -0,0 +1,79 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail Citizen. are you heading into the pit to practice?"); + elseif(e.message:findi("yes")) then + e.self:Say("We were just down there, but climbed out to take a little break. The creatures down there are really pounding some of the younger recruits. If you're heading down, I'd suggest that you hop down and be prepared to fight."); + elseif(e.message:findi("no")) then + e.self:Say("Well, if you're looking to learn a little more about combat, you really should go sign in at the training camp."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Recruit_Mogol.lua b/sharvahl/Recruit_Mogol.lua new file mode 100644 index 0000000..c315444 --- /dev/null +++ b/sharvahl/Recruit_Mogol.lua @@ -0,0 +1,21 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Aye. Sir!"); + e.self:DoAnim(48); --nod + eq.signal(155126,1,15); -- NPC: Instructor_Anom + end + if(e.signal == 2) then + e.self:DoAnim(7); --bash + eq.signal(155126,2,15); -- NPC: Instructor_Anom + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Recruit_Ulra.lua b/sharvahl/Recruit_Ulra.lua new file mode 100644 index 0000000..67e958f --- /dev/null +++ b/sharvahl/Recruit_Ulra.lua @@ -0,0 +1,21 @@ +function event_signal(e) + if(e.signal == 1) then + e.self:Say("I guess so..."); + e.self:DoAnim(48); --nod + eq.signal(155132,1,1); -- NPC: Recruit_Mogol + end + if(e.signal == 2) then + e.self:DoAnim(7); --bash + eq.signal(155132,2,1); -- NPC: Recruit_Mogol + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Registrar_Bindarah.lua b/sharvahl/Registrar_Bindarah.lua new file mode 100644 index 0000000..6f4c805 --- /dev/null +++ b/sharvahl/Registrar_Bindarah.lua @@ -0,0 +1,49 @@ +---- Changes by Kagehi. +---- Shar_Vahl_Cit tracks the steps you take to gain your initiate cloak. +---- Since we don't want to hand people things that they can't normally get, or +---- stuff they haven't earned, we need to track which stage in the quest they +---- are at. 1 = Citizen Application. 2 = Cert. of Taxability, 3 = Stamped Cert., +---- 4 = Note to King Raja, 5 Note 'from' the king, 6 = Notarized Application +---- and 7 = Initiate's Cloak. +function event_say(e) + local qglobals = eq.get_qglobals(e.self,e.other); + ---- Non-canon fixmes. Note: One issue with these is that they will say the text, even if you + ---- have the item. At some point someone might consider changing the guildmasters and the + ---- others to first check if you are already carrying the items. + if(e.message:findi("certificate") and tonumber(qglobals.Shar_Vahl_Cit) == 2) then + e.self:Say("Luckily for you, someone found this blowing around the plaza."); + e.other:SummonCursorItem(2874); -- Item: Certificate of Taxability + elseif(e.message:findi("note") and tonumber(qglobals.Shar_Vahl_Cit) == 4) then + e.self:Say("Luckily for you, someone found this stuck in a bush."); + e.other:SummonCursorItem(18299); -- Item: Note to King Raja + elseif(e.message:findi("application") and tonumber(qglobals.Shar_Vahl_Cit) == 6) then + e.self:Say("Luckily for you, someone found this on the floor in the bakery."); + e.other:SummonCursorItem(2897); -- Item: Notarized Application + elseif(e.message:findi("acrylia slate") and tonumber(qglobals.Shar_Vahl_Cit) > 5) then + ---- No idea what she says here, so won't bother. + e.other:SummonCursorItem(2877); -- Item: Acrylia Slate of Shar Vahl + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "This item, by itself, means nothing to me."; + + -- Confirmed Live Experience and Factions + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2873}, 0)) then + e.self:Say("Young " .. e.other:GetCleanName() .. ", I will be happy to process your registration for you. While I etch your name on our people's book of records I will require you to run a couple of errands. Take this certificate to the tax collector and obtain his seal. While you're out doing that, have Mignah create your personal Acrylia slate for you. Bring both the seal and the slate to me as soon as you can."); + eq.set_global("Shar_Vahl_Cit","2",5,"F"); + e.other:QuestReward(e.self,0,0,0,0,2874,300); -- Certificate of Taxability + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 2875, item2 = 2876},1,text)) then-- Stamped Certificate of Taxability & Acrylia Slate + e.self:Say("Ahh, there you are. I was about to send someone looking for you. Everything seems to be in order here, only one task remains. You must gain audience with the king and swear fealty to his highness by handing him this document. Return to me when this is done."); + eq.set_global("Shar_Vahl_Cit","4",5,"F"); + e.other:QuestReward(e.self,0,0,0,0,18299,300); -- Note to King Raja + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18304}, 0)) then -- Note from King Raja + e.self:Say("Well done, " .. e.other:GetCleanName() .. ", I am honored to be the first to welcome you to citizenship of Shar Vahl! May you serve our society as well as it serves you. Return to your guildmaster and present both the slate and the application to him. The acrylia slate shall henceforth serve as proof of your citizenship."); + eq.set_global("Shar_Vahl_Cit","6",5,"F"); + e.self:Say("Oh, by the way, be careful with this as it will be important for recording your service to our society. If you should somehow lose it, ask me about your slate and I will issue you a new one."); + e.other:Faction(e.self,1584,400); -- Faction: Citizens of Sharvahl + e.other:QuestReward(e.self,{items = {2877,2897},exp = 400}); -- Item: Acrylia Slate of Shar Vahl, Notarized Application + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Royal_Escort_Yalahn.lua b/sharvahl/Royal_Escort_Yalahn.lua new file mode 100644 index 0000000..0f48e5d --- /dev/null +++ b/sharvahl/Royal_Escort_Yalahn.lua @@ -0,0 +1,19 @@ +function event_waypoint_arrive(e) + if(e.wp == 6) then + e.self:Say("Greetings honorable Sadhi. I ask for spiritual guidance to serve our king."); + end + if(e.wp == 17) then + e.self:Say("reporting for duty m'lord. I will defend Shar Vahl with your blessing."); + e.self:SetAppearance(4); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Royal_Guard_Dak.lua b/sharvahl/Royal_Guard_Dak.lua new file mode 100644 index 0000000..ce0690f --- /dev/null +++ b/sharvahl/Royal_Guard_Dak.lua @@ -0,0 +1,73 @@ +function event_say(e) + if(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Royal_Guard_Hahjik.lua b/sharvahl/Royal_Guard_Hahjik.lua new file mode 100644 index 0000000..654c371 --- /dev/null +++ b/sharvahl/Royal_Guard_Hahjik.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Royal_Guard_Jinjiq.lua b/sharvahl/Royal_Guard_Jinjiq.lua new file mode 100644 index 0000000..ce0690f --- /dev/null +++ b/sharvahl/Royal_Guard_Jinjiq.lua @@ -0,0 +1,73 @@ +function event_say(e) + if(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Royal_Guard_Maras.lua b/sharvahl/Royal_Guard_Maras.lua new file mode 100644 index 0000000..654c371 --- /dev/null +++ b/sharvahl/Royal_Guard_Maras.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + elseif(e.message:findi("shadow haven")) then + e.self:Say("Shadow Haven is the great city that lies beneath the ground. We have many trading relationships with the houses that form the groundwork of Shadow Haven politics. Use caution when traveling there, although the haven houses many honest merchants, it is also a home to smugglers, bandits, and thieves."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Rytan.lua b/sharvahl/Rytan.lua new file mode 100644 index 0000000..550c2c7 --- /dev/null +++ b/sharvahl/Rytan.lua @@ -0,0 +1,39 @@ +--Rytan's Progressive Fletching Quest +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello " .. e.other:GetCleanName() .. ", I trust all is well with you today. Come in and have a look around, just let me know if you see anything you like. By the way, I am in need of the assistance of an official Shar Vahl citizen. If you know of any please send them my way."); + elseif(e.message:findi("citizen")) then + e.self:Say("Wonderful! Please, show me your acrylia slate and I'll disclose my errand."); + elseif(e.message:findi("grimling fang darts")) then + e.self:Say("A grimling fang combined with a bone shard will make a dart slightly better than the xakra tooth dart, which will also sell for slightly more."); + elseif(e.message:findi("grimling fang")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("rockhopper talon darts")) then + e.self:Say("Rockhopper talon darts are slightly better than grimling fang darts and will sell for a little more. The hooked dart crafting tool and a rockhopper foot will yield one of these darts.") + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2877})) then + e.self:Say("Here's my dilemma, I am low on darts to sell and I need to replenish my supply. I simply cannot break away from the store so I require your help. Fill this bag with xakra teeth and return the sealed bag to me. With those teeth I can make six darts and I'll give you three."); + e.other:QuestReward(e.self,{items = {2877,17231}}); -- Item: Acrylia Slate of Shar Vahl + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3461})) then + e.self:Say("Here are the three darts I promised you and a seal of mine. I need more darts desperately, so show me your acrylia slate to take another bag and fill it as you are able. Collect four of my seals and show them to me. I will reward you by revealing my method of dart construction."); + e.other:QuestReward(e.self,{items = {3463,3463,3463,3464}}); -- Item: Xakra tooth dart + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3464, item2 = 3464, item3 = 3464, item4 = 3464})) then + e.self:Say("I thank you for your continued assistance, " .. e.other:GetCleanName() .. ". Here is a fletching tool that will enable you to fashion xakra tooth darts. You will first need to acquire a grimling skeletal femur and place it in a fletching kit with the tool. This will result in three bone shafts. Place a bone shaft, a xakra tooth and this tool in the fletching kit to make a dart. When your fletching skill no longer increases by making these darts you may give me your crafting tool and I will help you to upgrade it."); + e.other:QuestReward(e.self,0,0,0,0,3467,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3467})) then + e.self:Say("I assume you are ready to make more challenging darts. Very well, attach this shaft to your crafting tool in a fletching kit and you will be able to make grimling fang darts. Keep in mind that once this is done you will lose the ability to craft xakra tooth darts. When the grimling fang darts become trivial you may wish to upgrade your tool again by giving me the grimling dart crafting tool."); + e.other:QuestReward(e.self,{items = {3467,3471}}); -- Item: Xakra Dart Crafting Tool + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3472})) then --Grimling Dart Crafting Tool + e.self:Say("Your skill is increasing rapidly, " .. e.other:GetCleanName() .. ". Here is a hook to place on the end of your crafting tool that will enable you to fashion rockhopper talon darts. Once the tool is modified it will not be able to make other types of darts. When creating rockhopper talon darts becomes trivial to you, feel free to give it to me for another upgrade."); + e.other:QuestReward(e.self,{items = {3472,3473}}); --Grimling Dart Crafting Tool, Crafting Tool Hook Attachment + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3474})) then + e.self:Say("Here is a special handle to attach to your crafting tool. This is the final improvement to your tool and will enable you to craft owlbear feather darts. These darts are superior to even the rockhopper darts and are magical. Take your modified tool and combine it with an owlbear feather in your fletching kit. May your new skill serve you well, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,{items = {3474,3477}}); -- Item: Rockhopper Dart Crafting Tool + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Salla.lua b/sharvahl/Salla.lua new file mode 100644 index 0000000..f6c24b3 --- /dev/null +++ b/sharvahl/Salla.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome to our market! If you are looking for grains. I should be able to fill your order. We are open to bartering. so please bring us any grains. fruits. and vegetables that you may want to trade."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Scout_Andur.lua b/sharvahl/Scout_Andur.lua new file mode 100644 index 0000000..5bef136 --- /dev/null +++ b/sharvahl/Scout_Andur.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met, friend. May I be of assistance?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Scout_Faarni.lua b/sharvahl/Scout_Faarni.lua new file mode 100644 index 0000000..8c3dbc1 --- /dev/null +++ b/sharvahl/Scout_Faarni.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("appears to be trying to rest."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Scout_Irumo.lua b/sharvahl/Scout_Irumo.lua new file mode 100644 index 0000000..0584773 --- /dev/null +++ b/sharvahl/Scout_Irumo.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("struggles for a moment and conjures up a slight smile."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Scout_Lijo.lua b/sharvahl/Scout_Lijo.lua new file mode 100644 index 0000000..f4ed49e --- /dev/null +++ b/sharvahl/Scout_Lijo.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("coughs a few times and nods at you, while she wipes her hand on her shirt."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Scribe_Cholsa.lua b/sharvahl/Scribe_Cholsa.lua new file mode 100644 index 0000000..302f67a --- /dev/null +++ b/sharvahl/Scribe_Cholsa.lua @@ -0,0 +1,19 @@ +-- Rakshasa Skulls + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Things slip my mind easily these days. Are you here for something specific or are you a one of our new recruits?"); + elseif(e.message:findi("components")) then + e.self:Say("The legends instruct that the ritual requires an Amulet of Golden Rays crafted by a worshiper of the sun, Charcoal that burns with a Black Flame, and the Brain of a creature that can Leech the Thoughts of others. If you manage to procure these items please take them with the instructions I have provided to Spiritualist Roleko at the Grimling Forest Outpost. The Rakshasa shall be summoned and slain there away from the citizens of Shar Vahl."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31849}, 0)) then -- Rolekos Report of Occurrences + e.self:Say("So it seems there is more truth to the legends of the Rakshasa than is commonly believed. I recall much of the tales of the wicked shaman who sold their souls and bodies to the dark spirits. There is a ritual that must be performed to force the Rakshasa to fully materialize in our realm so that it may be slain. I will write down the instructions for the ritual but the [components] I'm afraid may be difficult to obtain."); + e.other:Faction(e.self,1533,4); -- Dar Khura + e.other:QuestReward(e.self,0,0,0,0,10915,500); -- Rakshasa Materialization Ritual + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Scribe_Dav.lua b/sharvahl/Scribe_Dav.lua new file mode 100644 index 0000000..200204a --- /dev/null +++ b/sharvahl/Scribe_Dav.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met. friend. May I be of assistance?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Scribe_Imasan.lua b/sharvahl/Scribe_Imasan.lua new file mode 100644 index 0000000..5d1ecea --- /dev/null +++ b/sharvahl/Scribe_Imasan.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Welcome friend. are you looking for a new song? My colleagues and I have gathered many well-known melodies over the course of our journeys. I have a few of the popular tunes available for sale. Have a look. I am sure you will find many recognizable songs performed by musicians all across the lands."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Scribe_Kaleej.lua b/sharvahl/Scribe_Kaleej.lua new file mode 100644 index 0000000..8a4ef84 --- /dev/null +++ b/sharvahl/Scribe_Kaleej.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("If you can't find what you need. please let me know."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Scribe_Lar.lua b/sharvahl/Scribe_Lar.lua new file mode 100644 index 0000000..200204a --- /dev/null +++ b/sharvahl/Scribe_Lar.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met. friend. May I be of assistance?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Scribe_Mojir.lua b/sharvahl/Scribe_Mojir.lua new file mode 100644 index 0000000..200204a --- /dev/null +++ b/sharvahl/Scribe_Mojir.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met. friend. May I be of assistance?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Scribe_Natji.lua b/sharvahl/Scribe_Natji.lua new file mode 100644 index 0000000..200204a --- /dev/null +++ b/sharvahl/Scribe_Natji.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met. friend. May I be of assistance?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Scribe_Qualia.lua b/sharvahl/Scribe_Qualia.lua new file mode 100644 index 0000000..d53e168 --- /dev/null +++ b/sharvahl/Scribe_Qualia.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Take a look at my selection of songs and let me know if you have any questions."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Scribe_Shiara.lua b/sharvahl/Scribe_Shiara.lua new file mode 100644 index 0000000..200204a --- /dev/null +++ b/sharvahl/Scribe_Shiara.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met. friend. May I be of assistance?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Seer_Jafik.lua b/sharvahl/Seer_Jafik.lua new file mode 100644 index 0000000..ea8348c --- /dev/null +++ b/sharvahl/Seer_Jafik.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well well... How may I help you?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Sergeant_Abaar.lua b/sharvahl/Sergeant_Abaar.lua new file mode 100644 index 0000000..cea1d59 --- /dev/null +++ b/sharvahl/Sergeant_Abaar.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met, friend. May I be of assistance?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Shainai.lua b/sharvahl/Shainai.lua new file mode 100644 index 0000000..050a787 --- /dev/null +++ b/sharvahl/Shainai.lua @@ -0,0 +1,39 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Oh hi. I am on my way home now, but we can maybe talk later, ok?"); + end +end + +function event_waypoint_arrive(e) + if(e.wp==21) then + e.self:Say("Yup yup, I definitely know the way from here."); + end + if(e.wp==36) then + e.self:Say("Ahhh, home at last."); + eq.signal(155041,1); -- NPC: #Delival + end +end + +function event_signal(e) + if(e.signal==1) then + e.self:Say("Daddy I'm sleepy, could you come tuck me in ?"); + eq.signal(155340,1); -- NPC: Delival + e.self:SetAppearance(3); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4478})) then + e.self:Emote("settles comfortably in for restful afternoon nap, 'Thank you for walking me home, it was ever so nice of you. Goodnight.'"); + e.other:Ding(); + eq.signal(155340,2,10); -- NPC: Delival + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Shroyer.lua b/sharvahl/Shroyer.lua new file mode 100644 index 0000000..ecf2da5 --- /dev/null +++ b/sharvahl/Shroyer.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("is covered in flour as you approach her. She looks exhausted, but somehow manages to run around the kitchen at full speed. She says, 'I'm sorry, " .. e.other:GetCleanName() .. ", but I haven't time to chat right now. The king's banquet is in three days and I'm out of rockhopper meat!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Soroush_Koroun.lua b/sharvahl/Soroush_Koroun.lua new file mode 100644 index 0000000..7f0ffe2 --- /dev/null +++ b/sharvahl/Soroush_Koroun.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings to you. " .. e.other:GetCleanName() .. ". I have just returned from another trip to Katta Castellum and am trying to organize my notes. I apologize that I've little time to talk. Everything happened so suddenly what with the odd circumstances surrounding the last diplomat. I have not quite had time to get used to my new post."); + elseif(e.message:findi("behari") or e.message:findi("odd circumstance")) then + e.self:Emote("pauses to find the right words, 'Behari, the last to hold this post, disappeared on his last trip to Katta. He was a friend of mine for some time, I never dreamed that I would have to undertake his duties in this way. I believe that I was the last to see him alive. His behavior at the time seemed peculiar, but I shrugged it off as simply a man blissfully in love,' he says with a heavy sigh, and adds somberly, 'I was very happy for him.'"); + elseif(e.message:findi("behavior")) then + if(e.other:GetFaction(e.self) < 5) then + e.self:Say("I never mentioned this to Kalila, I thought it would hurt her more than it would help, but when I bumped into Behari just before he disappeared, he was going on and on about a love potion of some sort. He was very excited, said he thought it would be the perfect gift for Kalila on their wedding night, so you see why I never mentioned it. Anyway, he said that he had just gathered all of the ingredients and was heading back out of Katta."); + else + e.self:Say("I am not sure that I should discuss this matter any further, I hope that you understand."); + end + elseif(e.message:findi("love potion")) then + e.self:Say("I have no idea what he meant by a 'love potion.' I have never even heard of such a thing, it just isn't my field, I am afraid. Maybe one of the spiritists knows something about it. I doubt that it will do anything to help you track down Behari, but I wish you luck my friend."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/sharvahl/Soulbinder_Ghula.lua b/sharvahl/Soulbinder_Ghula.lua new file mode 100644 index 0000000..80c75f8 --- /dev/null +++ b/sharvahl/Soulbinder_Ghula.lua @@ -0,0 +1,15 @@ +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings " .. e.other:GetCleanName() .. ". When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish."); + elseif(e.message:findi("bind my soul")) then + e.self:Say("Binding your soul. You will return here when you die."); + e.self:CastSpell(2049,e.other:GetID(),0,1); -- Spell: Bind Affinity + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Spiritcaller_Gaarus.lua b/sharvahl/Spiritcaller_Gaarus.lua new file mode 100644 index 0000000..5dc3352 --- /dev/null +++ b/sharvahl/Spiritcaller_Gaarus.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("May I assist you with something?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Spiritist_Fehril.lua b/sharvahl/Spiritist_Fehril.lua new file mode 100644 index 0000000..7a17142 --- /dev/null +++ b/sharvahl/Spiritist_Fehril.lua @@ -0,0 +1,41 @@ +--Code by Kagehi - edited by anubisrwml +--Shar_Val_Cit is used to track you up to when you get your initiate cloak and beyond.--We use it once here, to determine that you should get back your Dar Khura recruit cloak instead,--if you lose it somehow. +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("opens his eyes as he awakens from a deep meditaion, 'Hello, " .. e.other:GetCleanName() .. ", how might I be of assistance to you?"); + elseif(e.message:findi("Merchant Ayyad")) then + e.self:Say("You can find Merchant Ayyad in 'The Merchants' Quarter which lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("love potion")) then + e.self:Say("Hmmm, while I dabble in the art of potions mixing myself, I am no scholar in the field. Perhaps Spiritist Ragnar would be of more assistance to you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2877})) then + e.self:Say("" .. e.other:GetCleanName() .. "! So good to see you! It is my honor to guide you for a time. May the spirits inspire my words that you might grow wise in the hearing. You are young and need to be strengthened. Bring me three hairless hides of rockhopper young. You can find them in the crater surrounding our city, formed when the portion of Norrath our city is built upon came to rest in its current location."); + e.other:QuestReward(e.self,0,0,0,0,2877); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3488, item2 = 3488, item3 = 3488})) then + e.self:Emote("craftily places the hides in a circular frame and hands you the product, 'You've completed my first task and as a reward I present you with this small token. May it serve to protect you from our enemies."); + e.self:Say("As a member of the sacred Dar Khura, you will be asked to become proficient in the art of brewing. Sweetwater is produced by combining xakra bile and scorpion blood with a flask of water in a brew barrel. Pour two flasks of sweetwater into this cask and return it to me."); + eq.signal(155164,1,0); -- NPC: Elder_Spiritist_Grawleh + e.other:QuestReward(e.self,{items = {3489,17232},exp = 500}); --Hopper hide Buckler. + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3493})) then + e.self:Emote("takes a sip from the cask and furrows his brow."); + e.self:Say("Well, it's a start I suppose. With a little practice you are certain to get better. Here is some hide treatment I just made, it will make your buckler stronger. It just needs some time to ferment before I apply it."); + e.self:Say("Citizens often need assistance and the Dar Khura must be available whenever possible. [Merchant Ayyad] has requested someone to run an errand and I am sending you. Return to me with Ayyad's seal, the hide treatment, your buckler, and your initiate's cloak."); + e.other:QuestReward(e.self,0,0,0,0,3494,500); --Hopperhide Treatment. + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3489, item2 = 3494, item3 = 3499, item4 = 2878})) then + e.self:Say("Well done you " .. e.other:GetCleanName() .. ", your deeds will not go unnoticed. You will now be known throughout the land as an official recruit of the revered Dar Khura. As your status improves so will the rewards for your service. Here is your treated buckler, your new cloak, and a spell I trust you will find a use for. Show your buckler to Fharra Cawfeet and she will continue your training."); + e.self:Emote("shouts, 'My fellow Vah Shir, I present to you the newest recruit to the sacred Dar Khura. " .. e.other:GetCleanName() .. " has shown great potential in the service of our sect. Please join me in thanking this citizen for service to our people!'"); + eq.set_global("Shar_Vahl_Cit","8",5,"F"); + e.other:QuestReward(e.self,{items = {3495,3496,15275},exp = 500}); --Treated Hopperhide Buckler, Cloak of the Dar Khura Recruit, Spell: Frost Rift. + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5542, item2 = 3496, item3 = 5543})) then + e.self:Say("Your progress fills me with pride. Please take these things as a sign of our appreciation. I hope that they help you as much as you have helped us. When you are ready to continue your training, please contact Jaima Seyel. You'll most likely find her in the Dar Khura Guildhall. She will train you from this point."); + e.self:Shout("Fellow citizens, may I present to you with our newest apprentice to the sacred Dar Khura. " .. e.other:GetCleanName() .. " has assisted us for some time now and we can only hope that this assistance doesn't go unnoticed. Now, please join me in thanking " .. e.other:GetCleanName() .. " for such selfless service to our people."); + e.other:Faction(e.self,1533,20); -- Faction: Dar Khura + e.other:QuestReward(e.self,{items = {5543,5544,15282},exp = 1500}); -- Item: Imbued Hopperhide Buckler, Cloak of the Dar Khura Apprentice + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Spiritist_Garig.lua b/sharvahl/Spiritist_Garig.lua new file mode 100644 index 0000000..12599ac --- /dev/null +++ b/sharvahl/Spiritist_Garig.lua @@ -0,0 +1,110 @@ +local count = 0; +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail and well met, " .. e.other:GetCleanName() .. ". If you need any assistance, please ask one of my apprentices. They are here to help."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_spawn(e) + eq.set_timer("spirit",8000); +end + +function event_timer(e) + count = count + 1; + if(count == 1) then + e.self:Say("The energy that is gathered here is quite soothing. As you both progress in your studies, you will learn to sense it as well."); + end + if(count == 2) then + eq.signal(155215,1,1); -- NPC: Apprentice_Siason + end + if(count == 3) then + e.self:Say("Nay, though I cannot say for sure, I have a feeling that this energy is of an entirely different nature."); + end + if(count == 4) then + eq.signal(155215,2,1); -- NPC: Apprentice_Siason + end + if(count == 5) then + e.self:Say("The energy's nature is obscured from me at this time, but I have a few theories. We are experiencing another period of change. Our contact with the Old World can only mean that the spirits are wishing us to move forward, once again."); + end + if(count == 6) then + eq.signal(155214,1); -- NPC: Apprentice_Omosh + end + if(count == 7) then + e.self:Say("Perhaps, Omosh, perhaps... Khati Sha explored a large portion of this place, but did he not disappear? Have the spirits not grown mute? Is our purpose here merely to wage war on the savage little creatures of the forest or is there a greater threat? There are still plenty of questsons before us, students. Please take some time to think them over."); + eq.set_timer("spirit",450000); + end + if(count == 8) then + count = 0; + eq.set_timer("spirit",8000); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Spiritist_Ragnar.lua b/sharvahl/Spiritist_Ragnar.lua new file mode 100644 index 0000000..3e8fc5c --- /dev/null +++ b/sharvahl/Spiritist_Ragnar.lua @@ -0,0 +1,54 @@ +--Hand in For Whiptail Poison Glands +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well hello... How may I help you?"); + elseif(e.message:findi("love potion")) then + e.self:Say("Love potion? Never been done and not worth the risk to try after what happened to Kanaad. "); + elseif(e.message:findi("Kanaad")) then + e.self:Say("Old Kanaad taught me a lot of what I know- he was about the greatest potions expert in the city back then. He started gathering legends and lore about some infamous love potion. Not some silly thing to make the girl of your dreams fall in love mind you- this fabled tonic was intended to be shared only between two who had found true love. If their feelings were strong enough it would... well, that was part of the problem, no one knew what it was supposed to do. Kanaad learned of some crazy human in the mountains that had supposedly figured out the secret to the potion. The results were not what anyone had hoped for."); + elseif(e.message:findi("result")) then + if(e.other:GetFaction(e.self) < 5) then + e.self:Emote("shuffles a bit uncomfortably, considering whether or not he should be telling you this, 'This is not something that I would normally talk about, but Soroush came by and told me that you are on the trail of Behari- if this will help you find him, then I will tell you all that I know... Kanaad had a time getting the ingredients and was only to make just a very little bit. He sat down with his love, alone in a room and intended to share the elixir. Well, that was the last anyone saw of her, and he was manic, out of his mind... The mixture had driven him from his senses and he snapped. It took quite a bit to restrain him and figure out what to do next.'"); + else + e.self:Say("I am sorry, but I am right in the middle or something."); + end + elseif(e.message:findi("next")) then + if(e.other:GetFaction(e.self) < 5) then + e.self:Emote("considers you for a moment and, as though reminding himself that you are trustworthy, continues, 'Well what we learned was that not only did the mixture drive the drinker mad, but it was incredibly addictive as well- a horrible combination. All that we could do was give him a controlled intake of the potion for his addiction and try to treat his dementia. With his returning sanity came the realization of what he had done to his love. It was the most harrowing thing I have ever seen someone go through in all of my life... He is better now, but has never quite been the same and rarely speaks to strangers. Give him this and you should at least get a chance to explain.'"); + e.other:SummonCursorItem(5990); -- Item: Kanaad's Supplies + else + e.self:Say("I am sorry, but I am right in the middle or something."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + local gland = item_lib.count_handed_item(e.self, e.trade, {30665}); + + if(gland > 0) then + repeat + e.self:Say("A blessing indeed! You have done well to bring this to me. With these glands I will be able to save many lives. Thank you friend. Shar Vahl And its people are in your debt. Please, accept these gifts to assist you in your endeavors. It Is the least I can do to return the favor!"); + e.other:Faction(e.self,1513,1); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,0,math.random(10),0,0,eq.ChooseRandom(31584,31589,31586,31590,31593,31594,31595,31588,31585,31592),250); + gland = gland - 1; + until gland == 0 + end + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30602, item2 = 30964})) then + e.self:Say("Well done " .. e.other:GetCleanName() .. ", I hope it isnt too late.'' Ragnar begins to chant over the carapace and the claw, holding each in opposite hands. A soft light travels from the claw to the carapace as the claw turns to dust. Ragnar opens his eyes and begins to speak, ''It has worked, but all we have done is buy ourselves more time. While you were away, I have been speaking to Master Barkhem. He has a shield frame that can support these carapaces. You will need to craft such a shield by including this carapace and into the frame along with enough to fill each slot. You are doing quite well young Astrall, Siver has grown a little stronger. You can make use of her innate dexterity by weaving this spell.'"); + e.self:Emote("hands " .. e.other:GetCleanName() .. " a scroll before he continues to speak. 'When you have completed the construction of the shield, return it to me and I will strengthen the anchor.'"); + e.other:Faction(e.self,1513,1); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,{items = {15040,30977}}); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30965})) then + e.self:Say("Nicely done " .. e.other:GetCleanName() .. ". This anchor should be sufficient to keep Siver bound to this realm for a while. She is strong enough to blind your enemies with a bright flash of light now, all you have to do is call on her spirit. I still cannot make complete sense of her thoughts. I think she is trying to tell me of another whisperling entrapped within the crater. Keep an eye open for the whisperling Scorpialis."); + e.self:Say("In the meantime, you can seek out a shield made of Xakra. Xakra made of the ethereal fabric of the spirit realm. I know the Shak Dratha within the thicket are weavers of this rare form of shadow silk. Such a shield can help us strengthen the anchor, making it easier for Siver to aid you. It will also improve her health greatly. She has been through a lot and is in rather poor condition as it stands now."); + e.other:Faction(e.self,1513,2); -- Faction: Guardians of Shar Vahl + e.other:QuestReward(e.self,{items = {15201,30966},exp = 1000}); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30962}, 0)) then + e.self:Say("Eh? What have we here?'' Ragnar examines the frosted claw carefully. He closes his eyes and begins to chant while holding the claw cupped between his hands. As he opens his eyes he nods at you and begins to speak. ''You have done well to bring her here Astrall. This is a whisperling, her name is Siver. She is very young, so it is hard for me to understand her. From what I gather, she has an important task to fulfill, but I am still unsure what that task may be. Please take her with you for now, I think that is her wish. Perhaps Grawleh will be able to assist us further, and maybe even find a more suitable anchor for her. I think it would be wise to show her to him."); + e.other:QuestReward(e.self,0,0,0,0,30963,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Spiritist_Zoliq.lua b/sharvahl/Spiritist_Zoliq.lua new file mode 100644 index 0000000..ce0690f --- /dev/null +++ b/sharvahl/Spiritist_Zoliq.lua @@ -0,0 +1,73 @@ +function event_say(e) + if(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Supply_Master_Guresh.lua b/sharvahl/Supply_Master_Guresh.lua new file mode 100644 index 0000000..a41c6da --- /dev/null +++ b/sharvahl/Supply_Master_Guresh.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("If you can't find what you need, I may be able to order it from Shadow Haven."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Taruun_Arek.lua b/sharvahl/Taruun_Arek.lua new file mode 100644 index 0000000..1eb426c --- /dev/null +++ b/sharvahl/Taruun_Arek.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met. " .. e.other:GetCleanName() .. ". How may I help you?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Taruun_Arok.lua b/sharvahl/Taruun_Arok.lua new file mode 100644 index 0000000..5a38dc1 --- /dev/null +++ b/sharvahl/Taruun_Arok.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("I hope you are not looking for anyone in particular. I think that everyone left for Hollowshade quite a while ago."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Taruun_Falek.lua b/sharvahl/Taruun_Falek.lua new file mode 100644 index 0000000..f58bb34 --- /dev/null +++ b/sharvahl/Taruun_Falek.lua @@ -0,0 +1,81 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met. friend. May I be of assistance?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 11) then + e.self:Emote("orders a drink."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Taruun_Galorg.lua b/sharvahl/Taruun_Galorg.lua new file mode 100644 index 0000000..1593f1b --- /dev/null +++ b/sharvahl/Taruun_Galorg.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("A pleasure to meet you. You are entering Rebirth Square. It is here that the construction of Shar Vahl had begun after The Shifting. You can find Registrar Bindarah within the square."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Taruun_Guard_Imil.lua b/sharvahl/Taruun_Guard_Imil.lua new file mode 100644 index 0000000..7c0688d --- /dev/null +++ b/sharvahl/Taruun_Guard_Imil.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Please be careful around the mount. The last thing I need is someone spooking it off. I am supposed to watch it for its owner."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Taruun_Guardian_Maliij.lua b/sharvahl/Taruun_Guardian_Maliij.lua new file mode 100644 index 0000000..a29babb --- /dev/null +++ b/sharvahl/Taruun_Guardian_Maliij.lua @@ -0,0 +1,25 @@ +function event_spawn(e) + ran = math.random(75000); + eq.set_timer("1",ran); +end +function event_timer(e) + local rand = math.random(2); + if(rand == 1) then + e.self:Say("Wow...It looks like I pinned that one to the ground pretty good!"); + end + if(rand == 2) then + e.self:Say("Nice, another grimling kill for my daily report"); + end + ran = math.random(75000); + eq.set_timer("1",ran); +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Taruun_Jaur.lua b/sharvahl/Taruun_Jaur.lua new file mode 100644 index 0000000..e4fb78b --- /dev/null +++ b/sharvahl/Taruun_Jaur.lua @@ -0,0 +1,90 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail, friend. Pull up a stool and get a drink."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Aye, the Sergeant's had us in the moor all week. It's been a long week too. The critters out there are behaving all peculiar."); + end + if(e.signal == 2) then + e.self:Say("Well, I'll tell you a quick story if you fill my mug again. Sound like a deal? Otherwise, I'll just head over to Rawlf's place and let him hear it."); + end + if(e.signal == 3) then + e.self:Say("Okay... here it goes... We were all sneaking along on patrol one night. We had just broke camp and were moving along the ledge near the big Hollowshade wolf cave. When we got near the cave, we notice a large pack of those nasty buggers... like eight or nine massive wolves... and they were coming right at us!"); + end + if(e.signal == 4) then + e.self:Say("No no... this is where it gets weird. The creatures just walked right through our patrol. They acted like they didn't even see us. We were all tensed up and ready for a fight and those beasts just ignored us. We stood still for a few moments and let them pass. Then it got a bit weirder."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Taruun_Jhilia.lua b/sharvahl/Taruun_Jhilia.lua new file mode 100644 index 0000000..734cc20 --- /dev/null +++ b/sharvahl/Taruun_Jhilia.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met. friend. May I be of assistance?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Taruun_Joharr.lua b/sharvahl/Taruun_Joharr.lua new file mode 100644 index 0000000..616f202 --- /dev/null +++ b/sharvahl/Taruun_Joharr.lua @@ -0,0 +1,21 @@ +--Rogue --3 +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3466})) then + e.self:Emote("takes the buckler and spins it in his hand for a moment. Eventually he says"); + e.self:Say("I suppose assumin' you were sent here by Harbin isn't too far from the reality of things. I'll try to think of a few things for you to do, but in the meantime, take these daggers and practice until you can use both of them. You need to get out of the habit of toting this shield around. If your enemy is gettin' close enough to hit you on it, you ain't doin' your job right anyway. I'll do what I can to train you from here, but I'm going to need to eat first. It's been a while since my last meal. Take this meal voucher to Cook Yalkiin. Once they fill the order bring it back and we'll start your lesson. Now scoot."); + e.other:QuestReward(e.self,{items = {5559,5560,5561,}}); -- Item: Black Handled Dagger + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5563})) then + e.self:Emote("takes the bag and takes a huge bite of the sandwich."); + e.self:Say("This sandwich is almost worth the wait."); + e.self:Emote("rubs the crumbs from his mouth"); + e.self:Say("hope that you've been practicin' with those daggers. Elder Ternq came by while you were away. He stated that I, well... you... need to go scout the caves around the thicket. Gather the skulls of any Shak Dratha that you may... um... run into while you scout. Once you've filled this backpack, return it to me and I'll fill out a report for Ternq."); + e.other:Faction(e.self,1530,10); -- Faction: Taruun + e.other:QuestReward(e.self,0,0,0,0,17607,1250); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5568})) then + e.self:Say("Very good, " .. e.other:GetCleanName() .. "! Elder Ternq will be very pleased with the results of your patrol. Take this regional status report to him and see if he has anything else for you to do. Your skill as a hunter is really starting to show. You can keep the daggers that I gave you. Make good use of them. I'm sure that you're going to be too busy to come back this way for a bit. Take care."); + e.other:Faction(e.self,1530,10); -- Faction: Taruun + e.other:QuestReward(e.self,0,0,0,0,5564,1500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Taruun_Olmek.lua b/sharvahl/Taruun_Olmek.lua new file mode 100644 index 0000000..f39faaf --- /dev/null +++ b/sharvahl/Taruun_Olmek.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail " .. e.other:GetCleanName() .. ". may I assist you in some way?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Taruun_Rolom.lua b/sharvahl/Taruun_Rolom.lua new file mode 100644 index 0000000..94e7a96 --- /dev/null +++ b/sharvahl/Taruun_Rolom.lua @@ -0,0 +1,33 @@ +function event_spawn(e) + eq.set_timer("1",60000); +end + +function event_timer(e) + if(e.timer == "1") then + local rand = math.random(2); + if(rand == 1) then + e.self:Say("Keep running! I'll get him."); + end + if(rand == 2) then + e.self:Say("Hey down there... Behind you!"); + end + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail friend! Are you just out killing time or are you looking to earn a [wage]?"); + elseif(e.message:findi("wage")) then + e.self:Say("Hmmm... I see. Well friend, there is plenty for you to do here. There are all sorts of pests in the hollow that lies below the city. It would be nice if we could get rid of all of them. Perhaps then we could concentrate on real soldiering. With that in mind, we are always looking for another brave young citizen to go down there and kill some of the vermin. Tell Khala Dun Bokh that you are being [assigned] to help. He will tell you what to do."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Taruun_Sian.lua b/sharvahl/Taruun_Sian.lua new file mode 100644 index 0000000..28c259a --- /dev/null +++ b/sharvahl/Taruun_Sian.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("May I help you?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Tax_Collector_Khugra.lua b/sharvahl/Tax_Collector_Khugra.lua new file mode 100644 index 0000000..f8670ca --- /dev/null +++ b/sharvahl/Tax_Collector_Khugra.lua @@ -0,0 +1,34 @@ +---- Changes by Kagehi. +---- Shar_Vahl_Cit tracks the steps you take to gain your initiate cloak. +---- Since we don't want to hand people things that they can't normally get, or +---- stuff they haven't earned, we need to track which stage in the quest they +---- are at. 1 = Citizen Application. 2 = Cert. of Taxability, 3 = Stamped Cert., +---- 4 = Note to King Raja, 5 Note 'from' the king, 6 = Notarized Application +---- and 7 = Initiate's Cloak. +function event_say(e) + local qglobals = eq.get_qglobals(e.self,e.other); + if(e.message:findi("Hail")) then + e.self:Say("Well met. Friend. May I be of assistance?"); + elseif(e.message:findi("certificate") and tonumber(qglobals.Shar_Vahl_Cit) == 3) then -- Fixme for lost stamped certificate. + e.self:Say("I suppose I can issue another one. Just give me a second."); + e.other:SummonCursorItem(2875); -- Item: Stamped Certificate of Taxability + end +end + +function event_trade(e) + local item_lib = require("items"); + --Certificate of Taxability OR Application for Citizenship + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2874})) then + e.self:Emote("places his seal on the certificate before returning it to you."); + e.self:Say("Ahh, a new taxpayer, wonderful! You must always remember that it is a distinct privilege to contribute to the upkeep of our noble society and not merely a duty or a burden. I look forward to collecting your honorable taxes in the future. May the spirits prosper you, " .. e.other:GetCleanName() .. "."); + eq.set_global("Shar_Vahl_Cit","3",5,"F"); + -- Confirmed Live no-experience + e.other:QuestReward(e.self,0,0,0,0,2875); -- Stamped Certificate of Taxability + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Veteran_Azamin.lua b/sharvahl/Veteran_Azamin.lua new file mode 100644 index 0000000..643196a --- /dev/null +++ b/sharvahl/Veteran_Azamin.lua @@ -0,0 +1,75 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("It's a rare treat to meet a new face. How may I help you?"); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Warder_Keeper_Jyk.lua b/sharvahl/Warder_Keeper_Jyk.lua new file mode 100644 index 0000000..c22bd97 --- /dev/null +++ b/sharvahl/Warder_Keeper_Jyk.lua @@ -0,0 +1,43 @@ +function event_waypoint_arrive(e) + if(e.wp == 1) then + e.self:SetAppearance(3); + end + if(e.wp == 21) then + e.self:Emote("grabs a large chunk of raw owlbear meat from the storeroom."); + end + if(e.wp == 35) then + e.self:Say("hail Palav. It's feeding time my friend. Now now Rajyk, It's ladies first. I will return with your food shortly."); + eq.signal(155289,1); -- NPC: Palav + eq.signal(155288,1); -- NPC: Rajyk + end + if(e.wp == 47) then + e.self:Emote("grabs a large chunk of raw owlbear meat from the storeroom."); + end + if(e.wp == 59) then + e.self:Say("hail Rajyk. You didn't think I forgot to feed you did you? Eat well my friends, I will be back again."); + eq.signal(155289,1); -- NPC: Palav + eq.signal(155288,1); -- NPC: Rajyk + end + if(e.wp == 67) then + e.self:Say("My my, what a selection. I think I'll go with some ale today."); + end + if(e.wp == 78) then + e.self:SetAppearance(1); + end +end + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met. friend. May I be of assistance?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/Weapons_Master_Rahoul.lua b/sharvahl/Weapons_Master_Rahoul.lua new file mode 100644 index 0000000..fc641ec --- /dev/null +++ b/sharvahl/Weapons_Master_Rahoul.lua @@ -0,0 +1,89 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail friend, are you a new recruit or have you been at it for a bit?"); + elseif(e.message:findi("new recruit")) then + e.self:Say("Well... perhaps you should head to the combat training grounds and pick up a few pointers. Walk west along the ledge that runs just outside of the city's walls and you shouldn't be able to miss it."); + elseif(e.message:findi("at it for a bit")) then + e.self:Say("Good good... keep at it! We need all of the strong willed thick headed Khala Dun we can muster! Now, get back to the fight!"); + elseif(e.message:findi("ore")) then + e.self:Say("The ore that I require is often used to create living rock formations. These collections of rocks and boulders will often leave a trail of energy that causes other rocks to collect and come to life. Our scouts have seen these formations in a variety of areas. Take care when you attempt to gather this ore."); + elseif(e.message:findi("void")) then + e.self:Say("If you look in the Maiden's Eye, you will find entities that are the embodiment of darkness. Their twisted spirits are not allowed to escape the form that they inhabit. They have no hope of escape, unless they are released during the destruction of their material form. There are some occasions when the power that is used to keep them in this realm will turn upon itself during this period of destruction. This process is what produces the Gems of the Void."); + elseif(e.message:findi("padding")) then + e.self:Say("When traversing the Deep, you will run across a shrieking fungus. Those creatures are much more durable and dangerous than the other fungi that you may encounter in the caverns of Luclin. It is for this reason that we use their flesh as padding. Take care when hunting them, for they will provide a good challenge."); + elseif(e.message:findi("training camp")) then + e.self:Say("The training camp is located on the cliff behind the Royal Palace. Younger citizens are encouraged to go there if they wish to build their skills and combat proficiency. Just find the sergeant and sign up."); + elseif(e.message:findi("where.* barrel")) then + e.self:Say("I know many of the taverns and eateries have their own barrels, but you may want to try Jakhal and Kahala's Brewery. You can find it in the southwestern section of the Merchant's Quarter, or Corridor of Heroes, as I like to call it."); + elseif(e.message:findi("where.* bank")) then + e.self:Say("The bank is in the south-eastern end of the Merchants' Quarter."); + elseif(e.message:findi("where.* merchant.* quarter")) then + e.self:Say("The Merchants' Quarter lies in the middle of the city just east of the Royal Palace."); + elseif(e.message:findi("where.* food")) then + e.self:Say("Take a look around. If you're hungry, just follow your nose... or look around one of the barracks in either the South or North Gate districts."); + elseif(e.message:findi("where.* arena")) then + e.self:Say("You can find the arena in the east side of the city, but it is rarely used these days. It stands opposite of the pool in the Merchants' Corridor."); + elseif(e.message:findi("where.* drink")) then + e.self:Say("If you're looking for a good drink, just look around. The Taruun tend to frequent Rawlf's Place in the North Gate district of town. I prefer the busier taverns. Try the Trail's End just inside the South Gate district. It is always packed with soldiers moving back and forth to combat."); + elseif(e.message:findi("where.* forge")) then + e.self:Say("Hmm... I know that the Khala Dun are fond of smithing. Try looking near their barracks in the western section of the North Gate district. You can use the forge in Barkhem's shop as well. It's in the Merchants' Quarter."); + elseif(e.message:findi("corridor.* hero")) then + e.self:Say("The Corridor of Heroes is the section of town that houses many of our finest establishments. That area also houses our arena and Hall of Heroes. The Corridor of Heroes is also known as the Merchants' Quarter. I hope that I did not confuse you with the name. Its proper name stems from the fact that you must have served in combat to act as proprietor of a shop in that area."); + elseif(e.message:findi("hall.* hero")) then + e.self:Say("The Hall of Heroes was built overlooking the Arena. The Arena is rarely used these days, but you can almost always find activity in the Hall. Our greatest leaders and heroes gather there to direct the battle against the Grimling hordes."); + elseif(e.message:findi("where.* pottery")) then + e.self:Say("Pottery and other Jharin supplies are located in the northeastern section of the Corridor of Heroes."); + elseif(e.message:findi("where.* hollowshade")) then + e.self:Say("The Hollowshade is the moor located just outside of the North Gate. There have been a lot of grimling attacks around that area. Coupled with deadly owlbears and rhino beetles, you had best not go unprepared for a tough battle."); + elseif(e.message:findi("where.* north gate")) then + e.self:Say("The North Gate district lies between the Northern Bridge and the inner corridors of our city. That district houses our many Khala Dun barracks, Officers' quarters, and larger meeting halls. The North Bridge leads to the Hollowshade Moor."); + elseif(e.message:findi("where.* south gate")) then + e.self:Say("The South Gate district lies between the Southern Bridge and the inner corridors of our city. Many of our Scouts, Animists, and Taruun, live in that district. The South Bridge leads to the Shadeweaver's Thicket."); + elseif(e.message:findi("the pit")) then + e.self:Say("We call the crater that was formed around our city during the Shifting, the Pit. It is full of all sorts of nasty little creatures. Veteran guards watch the area closely and use it as a place to train our new recruits."); + elseif(e.message:findi("where.* loom")) then + e.self:Say("Many of our town's seamstresses and tailors can be found working together on the top floor of the general mercantile. I'm sure that you can find a loom there."); + elseif(e.message:findi("where.* mercantile")) then + e.self:Say("The general mercantile can be found on the southern side of the Corridor of Heroes. Just look for the sign."); + elseif(e.message:findi("royal corridor")) then + e.self:Say("The area surrounding the Royal Palace is known as the Royal Corridor."); + elseif(e.message:findi("where.* library")) then + e.self:Say("We have two libraries. The Library of War History and Related works is located on the southern side of the Royal Corridor and the Library of Spiritual and Natural Studies is located on the northern side."); + elseif(e.message:findi("where.* arrow")) then + e.self:Say("If you are looking to purchase arrows, perhaps you should check the South Gate district. The vendors in that area carry goods that appeal to the Taruun and other scouts that live in that district."); + elseif(e.message:findi("guildmaster") or e.message:findi("guildhall") or e.message:findi("guild master") or e.message:findi("guild hall")) then + e.self:Say("We have Guildhalls in several areas. You can find the Khala Dun under the Arena. The Jharin are housed near the stage above the Royal Palace. The Taruun, Dar Khura, and Khati Sha are housed near each other in under the Royal Palace."); + elseif(e.message:findi("who.* khura")) then + e.self:Say("The Dar Khura guide us with their wisdom. They are the ones who speak with the spirits and heal our wounds. They are named in honor of Dar Khura who taught us that we were brought here for a purpose."); + elseif(e.message:findi("who.* khati")) then + e.self:Say("He was a great hero among our people. It was he who learned to speak with the beasts. Khati Sha was the greatest of explorers who brought Acrylia to us. With these mystical stones, we have built our beloved city. Those who walk with the beasts are named in his honor."); + elseif(e.message:findi("who.* khala")) then + e.self:Say("The Khala Dun are the king's warriors. They are charged with defending the city of Shar Vahl and commanding any offensives necessary. They are named after Khala Dun who was King Vah Kerrath's protector during the times of the shifting. You can find their guild within the Arena Complex in the merchants quarter."); + elseif(e.message:findi("who.* taruun")) then + e.self:Say("The Taruun bring food for our city. They are among the most cunning of our people. The Taruun watch us and protect us from within the shadows. They are named in honor of Taruun, the lost orphan who lived and flourished among our people despite his shy nature. Taruun taught us the importance of stealth with honor. The location of their guild is in the heart of the city. To find it, you must find the delicate balance between honor and battle."); + elseif(e.message:findi("raja")) then + e.self:Say("King Raja Kerrath is our beloved and most noble king. He is the son of King Vah Kerrath and the grandson of our most honorable prophet Kejaan."); + elseif(e.message:findi("ragnar")) then + e.self:Say("Spiritist Ragnar has an alchemy shop within the Merchants' Quarter. He is a master of Alchemy and a knowledgeable shaman. You cannot miss his shop, it is located right next to the bank."); + elseif(e.message:findi("shifting")) then + e.self:Say("These were the troubled times when we were ripped from our world and brought to this soil. Our leader and beloved King Vah Kerrath led us to rebuild this great city and so we have taken his name in his honor."); + elseif(e.message:findi("grimling")) then + e.self:Say("The grimlings are the beings who attack our people around the Acrylia mines. They have the ability to use magic against us. Be careful if you wish to travel north. We have been waging war in that area."); + elseif(e.message:findi("acrylia")) then + e.self:Say("Acrylia is the magical ore found in the mines to the north. We use this ore to build our homes and weapons. It has been very difficult lately to mine for these stones due to the grimling attacks on our miners."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9050})) then + e.self:Say("You are just the time. The weapon that Elder Dumul requested has almost been completed. We need you to gather a few items in order to complete the weapon. These items will not require much effort to acquire, but I will need to tell you where to look. Place all of the items that I request in this box and return it to me as quickly as possible."); + e.self:Say("Now, seek out a large chunk of perfect acrylia [ore], two Gems of the [Void], and chunk of dense fungal [padding]. Once I have those items, I can finish the weapon that you will need to use to kill the dark animist."); + e.other:QuestReward(e.self,0,0,0,0,17363); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 9051})) then + e.self:Say("These claws should work well for you. The design was research by Historian Qua. They should work to neutralize the magical field that protects the dark animist and allow you to tear his scaly flesh from his frame. Remember that all of this is theoretical. Those claws are an original creation. You will be the first to prove their effectiveness in combat."); + e.self:Say("Take the claws back to Animist Dumul and show him their design. Use them well, " .. e.other:GetCleanName() .. ". May the spirits guide you in your attack. "); + e.other:QuestReward(e.self,{items = {9055,9056}}); -- Item: Jagged Claw of Rending + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sharvahl/Weapons_Master_Wygans.lua b/sharvahl/Weapons_Master_Wygans.lua new file mode 100644 index 0000000..b9956be --- /dev/null +++ b/sharvahl/Weapons_Master_Wygans.lua @@ -0,0 +1,45 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail friend. welcome to our workshop. This area once housed the arena's armory. but was converted to a weapons workshop during the initial stages of the war against the Horde. That was a few years before our time. but Kotahl. Saulgan. and I have been here for at least a decade now. We've been experimenting with new ways to fight against the Horde."); + elseif(e.message:findi("horde")) then + e.self:Say("The Grimling horde erupted from the mines many many years ago. It was like they just came through a hole in the mines or something. Our miners were all slaughtered in a matter of hours. Some of the residents of the mining camp in the forest made it out alive... but only a few. We have been fighting with little sign of progress for decades now, but that was before Kotahl made his discovery!"); + elseif(e.message:findi("discovery")) then + e.self:Say("Kotahl and Saulgan researched the horde and developed a theory about their origin. Kotahl was able to take those theories and find a way of injuring them by altering the magic of their weapons through alchemy. We have perfected the process and only need the weapons at this point."); + elseif(e.message:findi("weapons")) then + e.self:Say("If you meet with our forces in the Grimling Forest and can find a Grimling officer, you may be able to get one of the weapons that we need. Return those weapons to one of us and we can convert its magic to harm its former owner. The weapons come in three styles. I can convert the weapons of the Grunt. Saulgan can convert the weapons of the Horde. Kotahl works on the weapons of the High Grimling. Bring us those weapons and we'll convert them for you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7170})) then -- Claw of the Grunt + e.other:Faction(e.self,1513,2); -- Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,7171,300); -- Grimling Bane Claw + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7180})) then -- Dirk of the Grunt + e.other:Faction(e.self,1513,2); -- Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,7181,300); -- Grimling Bane Dirk + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7174})) then -- Great Sword of the Grunt + e.other:Faction(e.self,1513,2); -- Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,7175,300); -- Grimling Bane Great Sword + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7176})) then -- Hammer of the Grunt + e.other:Faction(e.self,1513,2); -- Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,7177,300); -- Grimling Bane Hammer + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7172})) then -- Short Sword of the Grunt + e.other:Faction(e.self,1513,2); -- Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,7173,300); -- Grimling Bane Short Sword + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7178})) then -- Staff of the Grunt + e.other:Faction(e.self,1513,2); -- Guardians of Shar Vahl + e.other:QuestReward(e.self,0,0,0,0,7179,300); -- Grimling Bane Staff + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/sharvahl/a_whisperling.lua b/sharvahl/a_whisperling.lua new file mode 100644 index 0000000..4bf2aab --- /dev/null +++ b/sharvahl/a_whisperling.lua @@ -0,0 +1,32 @@ +function event_spawn(e) + eq.set_timer("proxsay",2000); +end + +function event_timer(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 35, xloc + 35, yloc - 35, yloc + 35); + eq.enable_proximity_say(); + eq.stop_timer("proxsay"); +end + +function event_proximity_say(e) + local xloc = e.other:GetX(); + local yloc = e.other:GetY(); + local nxloc = e.self:GetX(); + local nyloc = e.self:GetY(); + local xdiff = xloc - nxloc; + local ydiff = yloc - nyloc; + if(e.message:findi("hail") and e.other:GetGM()) then -- debug only + e.self:Say("Your x is ".. xdiff .." and your y is " .. ydiff .." from me!"); + end + + if(e.message:findi("lumanes")) then + e.self:Emote("speaks softly, 'Lumanes " .. e.other:GetName() .. ", Our cousin, a spirit of frost, is trapped. We may not intervene. Only one of flesh may aid us. Are you one [able to help]? '"); + elseif(e.message:findi("able to help")) then + e.self:Say("speaks softly, 'Then we thank you. We will lure it here. But beware, it uses our cousins strength to protect itself.'"); + eq.unique_spawn(155005,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end +end diff --git a/skyfire/Felia_Goldenwing.lua b/skyfire/Felia_Goldenwing.lua new file mode 100644 index 0000000..a5e593d --- /dev/null +++ b/skyfire/Felia_Goldenwing.lua @@ -0,0 +1,14 @@ +-- Test of Charm - enchanter epic - Enchanted Sapphire +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10632})) then + e.self:Say("I have done as you wished, now leave me be."); + e.other:QuestReward(e.self,0,0,0,0,10619); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/skyfire/Jennus_Lyklobar.lua b/skyfire/Jennus_Lyklobar.lua new file mode 100644 index 0000000..9d74f80 --- /dev/null +++ b/skyfire/Jennus_Lyklobar.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello and well met! A " .. e.other:Race() .. " like you does not often come here.. Do you come seeking what I possess? Fire, fire, fire and fire is mine! I surround myself with fire, I bathe in fire, I consume fire, I am the Master of Fire! Hahahaha, but I digress. Have you come for the element of Fire, seeking to fall to the same fate as Trilith Magi'kot?"); + elseif(e.message:findi("i have come for the element of fire")) then + e.self:Say("The Element of Fire I can provide you, but you must prove you are able to contain its power. Bring me the Torch of the Elements now kept by a doomed lord of merchants, the burning embers from a notable member of wurmkind who can be found a short journey from here and a blazing wand, which you should be familiar with. And you must surrender the tome Rykas gave you. But I think you would be happier if you stayed with me and learned more of the beauty of the one true element, FIRE! FIRE! Hahahahahahah!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18958, item2 = 28007, item3 = 10376, item4 = 28008})) then + e.self:Say("I see that you are well versed in the ways of Fire. Indeed, if you are as adept in the other, lesser elements, you may just seize the Orb of Mastery after all, and avoid Magi'kot's fate. Take this element, and guard it well, for more trials are to come, I assure you. Succeed and you shall be remembered always! Oh, and " .. e.other:GetCleanName() .. "? Watch out for the puddles! HAHAHAHAHAHA!"); + e.other:QuestReward(e.self,0,0,0,0,28009,3000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/skyfire/Warder_Cecilia.lua b/skyfire/Warder_Cecilia.lua new file mode 100644 index 0000000..9c0b2bb --- /dev/null +++ b/skyfire/Warder_Cecilia.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, you have made excellent time. We received word that Zordak was gathering his power here, and we still have little knowledge of his true intentions. Scattered throughout these mountains there are small Pearlescent Shards, binding four of these shards together within a Box of Binding should allow me to create a Seal. This seal, when fused with a Swirling Pearl inside Zordak's heart should allow our seers to divine his true intentions, even after he has been slain. Once you have the seal I will release Zordak, make haste I will not be able to hold him for long."); + --e.other:SummonCursorItem(17175); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 24996})) then -- 24996 : An Assembled Pearlescent Shard + e.other:QuestReward(e.self,0,0,0,0,24997); -- 24997 Pearlescent Seal + eq.unique_spawn(91005,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ()):AddToHateList(e.other,1); -- Zordak_Ragefire, human form, he attacks the cleric + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/skyfire/Zordak_Ragefire.lua b/skyfire/Zordak_Ragefire.lua new file mode 100644 index 0000000..b2ce511 --- /dev/null +++ b/skyfire/Zordak_Ragefire.lua @@ -0,0 +1,14 @@ +-- EPIC CLERIC -skyfire- +function event_death_complete(e) + eq.spawn2(91006,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Zordakalicus_Ragefire +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/skyshrine/#Sentry_Kale.lua b/skyshrine/#Sentry_Kale.lua new file mode 100644 index 0000000..b8f841e --- /dev/null +++ b/skyshrine/#Sentry_Kale.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ah, outsiders, I have heard word of your travel here. Perhaps you wish to become a friend of the kin?"); + elseif(e.message:findi("friend")) then + e.self:Say("Good, then you would not mind assisting us with a matter of grave importance. We have received news of an alarming sort. There walks amongst us a spy of the storm giants, who feeds our every move to them and their accursed strategist. For the life of us, we cannot deduce whom the traitor is, however we have received word from Wenglawks of Kael, an associate of ours, that he has information concerning this. For a measly sum of 100 platinum, he has offered to give us the information to rid ourselves of this traitor. If you are indeed friend to the kin, take this note to Wenglawks and rid us of this traitor."); + e.other:SummonCursorItem(29068); -- Item: Note to Wenglawks + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29065},0)) then + e.self:Say("You have done us a great service, " .. e.other:GetCleanName() .. " . I cannot believe a mere child of Zek could infiltrate our society, this whole encounter has been very frightening. Soon a time will come when we can no longer cut ourselves off from the rest of the world. Soon we will be forced to fight every day of our lives to defend our heritage and way of life. Hopefully we shall have allies such as yourself when that time comes. I would like you to have this small token of our gratitude. A venerable wurm allowed us to grace this piece of armor with his teeth when he passed on, wear it well."); + e.other:Faction(e.self,430,5); --CoV + e.other:Faction(e.self,436,1); -- Yelinak + e.other:Faction(e.self,448,-2); -- Kromzek + e.other:QuestReward(e.self,math.random(10),math.random(10),math.random(10),math.random(0,10),29050,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/skyshrine/#The_Sleeper.lua b/skyshrine/#The_Sleeper.lua new file mode 100644 index 0000000..2c1a925 --- /dev/null +++ b/skyshrine/#The_Sleeper.lua @@ -0,0 +1,237 @@ +-- note: A_Guardian_of_the_Shrine spawns Kerafyrm using the NPC type #The_Sleeper from Sleeper's Tomb and renames it. +-- That is why this file is named #The_Sleeper instead of Kerafyrm. +local GRID = { + -328.00, 447.00, 46.20, + -264.00, 469.00, 46.20, + -265.00, 676.00, 46.20, + -328.00, 719.00, 46.20, + -327.00, 803.00, 46.20, + -508.00, 802.00, 46.20, + -590.00, 802.00, 46.20, + -621.00, 757.00, 46.20, + -718.00, 756.00, 46.20, + -717.00, 802.00, 46.20, + -767.00, 803.00, 46.20, + -768.00, 647.00, 46.20, + -685.00, 648.00, 46.20, + -693.00, 542.00, 46.20, + -562.00, 543.00, 101.20, + -562.00, 400.00, 101.20, + -562.00, 138.00, 141.10, + -669.00, 136.00, 176.10, + -802.00, 144.00, 176.10, + -806.00, 527.00, 191.10, + -1039.00, 624.00, 191.10, + -972.00, 790.00, 191.10, + -746.00, 788.00, 261.00, + -691.00, 790.00, 261.10, + -694.00, 1037.00, 261.10, + -495.00, 1038.00, 261.10, + -495.00, 749.00, 261.60, + -494.00, 636.00, 310.30, + -495.00, 562.00, 311.10, + -152.00, 562.00, 311.10, + -157.00, 649.00, 336.00, + -156.00, 720.00, 339.10, + -157.00, 728.00, 261.10, + -119.00, 744.00, 261.10, + -79.00, 712.00, 261.80, + -27.00, 713.00, 290.20, + 23.00, 713.00, 291.10, + 23.00, 894.00, 336.10, + -87.00, 1011.00, 336.10, + -223.00, 1010.00, 381.00, + -336.00, 856.00, 381.00, + -675.00, 862.00, 381.00, + -674.00, 1098.00, 381.00, + -705.00, 1150.00, 381.00, + -790.00, 1159.00, 381.00, + -804.00, 1185.00, 381.00, + -834.00, 1183.00, 381.00, + -856.00, 1160.00, 381.00, + -1064.00, 1179.00, 381.00, + -1105.00, 1212.00, 381.00, + -1106.00, 1444.00, 381.00, + -1646.00, 1439.00, 381.00, + -1644.00, 1620.00, 381.00, + -1823.00, 1621.00, 381.00, + -1822.00, 1444.00, 381.00, + -2005.00, 1445.00, 381.00, + -2005.00, 1981.00, 381.00, + -1877.00, 1984.00, 381.00, + -1079.00, 1590.00, 16.20, + -1083.00, 1932.00, 16.20, + 660.00, -60.00, 6.20, + 433.00, -61.00, 6.20, + 430.00, 122.00, 6.20, + 283.00, 121.00, 6.20, + 433.00, 120.00, 6.20, + 432.00, 209.00, 6.20, + 612.00, 212.00, 6.20, + 432.00, 208.00, 6.20, + 435.00, -62.00, 6.20, + 163.00, -57.00, 18.20, + 165.00, 478.00, 28.20, + 137.00, 554.00, 28.20, + 167.00, 655.00, 28.20, + 167.00, 987.00, 39.20, + 373.00, 990.00, 49.20, + 375.00, 855.00, 49.20, + 513.00, 856.00, 49.20, + 511.00, 999.00, 49.20, + 863.00, 991.00, 49.20, + 863.00, 855.00, 49.20, + 1031.00, 856.00, 49.20, + 1026.00, 997.00, 49.20, + 1244.00, 994.00, 61.20, + 1250.00, 760.00, 69.20, + 1096.00, 762.00, 69.20, + 1096.00, 683.00, 69.20, + 740.00, 684.00, 47.20, + 741.00, 553.00, 47.20, + 981.00, 558.00, 47.20, + 971.00, 340.00, 47.20, + 960.00, 57.00, 47.20, + 760.00, 57.00, 47.20, + 757.00, 320.00, 47.20, + 981.00, 339.00, 47.20, + 978.00, 445.00, 47.20, + 600.00, 445.00, 47.20, + 461.00, 445.00, 39.20, + 598.00, 445.00, 47.20, + 981.00, 448.00, 47.20, + 972.00, 561.00, 47.20, + 740.00, 559.00, 47.20, + 738.00, 681.00, 47.20, + 905.00, 685.00, 69.20, + 1094.00, 684.00, 69.20, + 1094.00, 609.00, 69.20, + 1251.00, 607.00, 69.20, + 1246.00, 231.00, 69.20, + 1094.00, 233.00, 69.20, + 1099.00, 102.00, 69.20, + 1250.00, 105.00, 69.20, + 1242.00, -59.00, 85.20, + 613.00, -57.00, 106.20, + 604.00, 88.00, 130.10, + 467.00, 76.00, 151.30, + 466.00, -62.00, 172.10, + 162.00, -53.00, 192.10, + 166.00, 413.00, 200.10, + 285.00, 495.00, 200.10, + 386.00, 495.00, 200.10, + 378.00, 636.00, 200.10, + 181.00, 656.00, 200.10, + 178.00, 766.00, 200.10, + 370.00, 771.00, 200.10, + 408.00, 280.00, 200.10, + 259.00, 273.00, 200.10, + 263.00, 69.00, 200.10, + 386.00, 73.00, 200.10, + 385.00, 191.00, 200.10, + 521.00, 191.00, 200.10, + 521.00, 356.00, 200.10, + 569.00, 442.00, 200.10, + 521.00, 516.00, 200.10, + 518.00, 883.00, 200.10, + 159.00, 879.00, 200.10, + 176.00, 992.00, 212.10, + 602.00, 995.00, 220.10, + 683.00, 877.00, 220.10, + 685.00, 657.00, 220.10, + 923.00, 675.00, 220.10, + 1075.00, 679.00, 220.10, + 1073.00, 866.00, 220.10, + 861.00, 864.00, 220.10, + 860.00, 996.00, 220.10, + 1247.00, 991.00, 232.10, + 1244.00, 227.00, 251.90, + 1096.00, 221.00, 274.10, + 1106.00, 78.00, 298.10, + 1243.00, 74.00, 318.10, + 1239.00, -61.00, 338.10, + 793.00, -61.00, 346.10, + 795.00, 120.00, 346.10, + 796.00, 301.00, 326.10, + 888.00, 299.00, 326.10, + 886.00, 466.00, 326.10, + 793.00, 467.00, 326.10, + 794.00, 625.00, 346.10, + 795.00, 709.00, 346.10, + 1198.00, 1231.00, 6.20, + 1200.00, 1360.00, 6.20, + 1059.00, 1360.00, 6.20, + 1061.00, 1619.00, 6.20, + 1203.00, 1620.00, 6.20, + 1200.00, 1840.00, 6.20, + 1047.00, 1843.00, 6.20, + 1043.00, 2000.00, 6.20, + 1215.00, 2000.00, 6.20, + 1050.00, 1992.00, 6.20, + 1050.00, 1843.00, 6.20, + 1348.00, 1836.00, 6.20, + 1353.00, 2000.00, -13.80, + 1503.00, 2000.00, -33.80, + 1512.00, 1840.00, -53.80, + 1858.00, 1839.00, -53.80, + 1513.00, 1839.00, -53.80, + 1507.00, 2007.00, -33.80, + 1350.00, 2003.00, -13.80, + 1354.00, 1736.00, 6.20, + 1607.00, 1736.00, 6.20, + 1609.00, 1317.00, 6.20, + 1606.00, 1239.00, 6.20, + 1442.00, 1236.00, 6.20, + 1510.00, 1106.00, -23.80, + 1607.00, 1001.00, -23.80, + 1929.00, 1005.00, -32.80, + 1930.00, 1307.00, -34.80, + 2078.00, 1313.00, -34.80, + 2087.00, 1409.00, -34.80, + 2267.00, 1409.00, -34.80, + 2267.00, 1908.00, -33.80, + 2268.00, 2018.00, -53.80, + 2536.00, 2016.00, -98.80, + 2539.00, 1741.00, -148.70, + 2319.00, 1741.00, -158.70, + 1975.00, 1737.00, -158.70, + 1969.00, 2336.00, -158.70, + 1460.00, 2348.00, -158.70, + 1459.00, 2980.00, -158.70, + 1975.00, 2981.00, -158.70, + 1976.00, 2645.00, -158.70, +}; + +function event_spawn(e) + e.self:SetSpecialAbility(24, 0); -- will not aggro + e.self:SetSpecialAbility(35, 0); -- no harm from players + e.self:SetWalkspeed(1.0); + e.self:SetRunspeed(2.5); + e.self:SetWanderType(6); + e.self:SetPauseType(1); + e.self:AddWaypoint(e.self:GetX(), e.self:GetY(), e.self:GetZ(), -1, 0, false); + e.self:AddWaypoint(e.self:GetX(), e.self:GetY(), e.self:GetZ(), -1, 1, false); + local i = 1; + while (GRID[i]) do + e.self:AddWaypoint(GRID[i], GRID[i+1], GRID[i+2], -1, 0, false); + i = i + 3; + end +end + +function event_waypoint_arrive(e) + + if ( e.wp == 59 ) then + e.self:GMMove(-1079, 1590, 16.20, 0); + + elseif ( e.wp == 61 ) then + e.self:GMMove(660, -60, 6.20, 0); + + elseif ( e.wp == 158 ) then + e.self:GMMove(1198, 1231, 6.20, 0); + end +end + +-- emotes aren't loaded if the NPC type is from another zone. this is dumb but just scripting this to fix the problem +function event_slay(e) + e.self:Shout("Begone insect, I have much slaying yet to do!"); +end diff --git a/skyshrine/A_Guardian_of_the_Shrine.lua b/skyshrine/A_Guardian_of_the_Shrine.lua new file mode 100644 index 0000000..843e8c0 --- /dev/null +++ b/skyshrine/A_Guardian_of_the_Shrine.lua @@ -0,0 +1,52 @@ +local SLEEPER_TYPE = 128094; -- #The_Sleeper +local SHOUT_TYPES = { 114618, 114508, 114435, 114564, 114434, 114501, 114014 }; + +function event_signal(e) + if ( e.signal == 1 ) then + eq.debug("Sleeper timer started"); + + local npc; + for i, id in ipairs(SHOUT_TYPES) do + npc = eq.get_entity_list():GetNPCByNPCTypeID(id); + if ( npc and npc.valid ) then + + if ( i == 1 ) then -- Yelinak + eq.get_entity_list():MessageClose(npc, true, 1500, 0, npc:GetCleanName().." shouts, 'BEWARE! The Sleeper has been awakened! Flee the shrine immediately, it intends death to all here!'"); + else + eq.get_entity_list():MessageClose(npc, true, 600, 0, npc:GetCleanName().." shouts, 'BEWARE! BEWARE! The Sleeper has been awakened! He means death for all who remain here! Time is short, flee the Skyshrine now if you value your life!'"); + end + end + end + + eq.set_timer("sleeper", 600000); + end +end + +function event_timer(e) + eq.stop_timer(e.timer); + if ( e.timer == "sleeper" ) then + eq.set_timer("repop", 86400000); + + eq.spawn2(SLEEPER_TYPE, 0, 0, -328, 447, 46, 0, "Kerafyrm"); + + local npcList = eq.get_entity_list():GetNPCList(); + for npc in npcList.entries do + + if ( npc.valid and npc:GetPrimaryFaction() == 430 ) then -- Claws of Veeshan + npc:SetNPCAggro(true); + end + end + + local spawnList = eq.get_entity_list():GetSpawnList(); + for spawn in spawnList.entries do + spawn:Disable(false); + end + + elseif ( e.timer == "repop" ) then + local spawnList = eq.get_entity_list():GetSpawnList(); + for spawn in spawnList.entries do + spawn:Enable(); + end + eq.debug("zone spawns enabled"); + end +end diff --git a/skyshrine/Abudan_Fe-Dhar.lua b/skyshrine/Abudan_Fe-Dhar.lua new file mode 100644 index 0000000..247f704 --- /dev/null +++ b/skyshrine/Abudan_Fe-Dhar.lua @@ -0,0 +1,48 @@ +-- necro + +local quest_helper = require('velious_quest_helper'); +local SKYSHRINE_ARMOR = quest_helper.SKYSHRINE_ARMOR; + +local QUEST_ITEMS = { + quest_helper:silk_helmet(SKYSHRINE_ARMOR.Silk_Turban, 31161), -- helm + quest_helper:silk_chest(SKYSHRINE_ARMOR.Silk_Robe, 31162), -- chest + quest_helper:silk_arms(SKYSHRINE_ARMOR.Silk_Sleeves, 31163), -- arms + quest_helper:silk_bracer(SKYSHRINE_ARMOR.Silk_Wristband, 31164), -- wrist + quest_helper:silk_gloves(SKYSHRINE_ARMOR.Silk_Gloves, 31165), -- gloves + quest_helper:silk_legs(SKYSHRINE_ARMOR.Silk_Pantaloons, 31166), -- legs + quest_helper:silk_boots(SKYSHRINE_ARMOR.Silk_Boots, 31167) -- boots +} + +function event_say(e) + if(e.other:GetFaction(e.self) < 2) then -- must be ally + if(e.message:findi("hail")) then + e.self:Emote("eyes you malevolently. 'I seek those who practice the dark magicks. I seek those who call themselves necromancers. Are you what I seek?'"); + elseif(e.message:findi("necromancer")) then + e.self:Say("Excellent. Are you sure enough of your skills to undertake my tasks? If not, get out of my sight weakling!"); + elseif(e.message:findi("task")) then + e.self:Say("I thought so. I have several tasks for you accomplish. Once you have completed them I will have a cap, a robe, sleeves, wristbands, gloves, leggings and boots to reward you with."); + elseif(e.message:findi("cap")) then + e.self:Say("For you to receive my gift, I shall require three crushed flame opals and a tattered silk turban."); + elseif(e.message:findi("robe")) then + e.self:Say("This exquisite robe shall be yours in exchange for a tattered silk robe and three pristine emeralds."); + elseif(e.message:findi("sleeve")) then + e.self:Say("For these durable sleeves, you must fetch me a pair of tattered silk sleeves and three flawed topaz."); + elseif(e.message:findi("wristband")) then + e.self:Say("The crafting of this wristband requires that you bring me a tattered silk wristband and three crushed onyx sapphires."); + elseif(e.message:findi("glove")) then + e.self:Say("For this fine pair of gloves you must seek out and return to me a pair of tattered silk gloves and three crushed topaz."); + elseif(e.message:findi("legging")) then + e.self:Say("This pair of leggings will be yours provided you supply me with a pair of tattered silk pantaloons and three nephrite."); + elseif(e.message:findi("boot")) then + e.self:Say("These supple boots shall be yours upon receipt of a pair of tattered silk boots and three crushed jaundice gems."); + end + else + e.self:Say("You must prove your dedication to the Claws of Veeshan before I will speak to you."); --Not ally + --If you try to speak with them without ally this dialogue should appear + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.skyshrine_armor_success) +end + diff --git a/skyshrine/Adwetram_Fe-Dhar.lua b/skyshrine/Adwetram_Fe-Dhar.lua new file mode 100644 index 0000000..5ff5b9d --- /dev/null +++ b/skyshrine/Adwetram_Fe-Dhar.lua @@ -0,0 +1,45 @@ +--Paladin + +local quest_helper = require('velious_quest_helper'); +local SKYSHRINE_ARMOR = quest_helper.SKYSHRINE_ARMOR; + +local QUEST_ITEMS={ + quest_helper:melee_helmet(SKYSHRINE_ARMOR.Plate_Helmet, 31119), --helm + quest_helper:melee_chest(SKYSHRINE_ARMOR.Breastplate, 31120), --breastplate + quest_helper:melee_arms(SKYSHRINE_ARMOR.Plate_Vambraces, 31121), --arms + quest_helper:melee_bracer(SKYSHRINE_ARMOR.Plate_Bracer, 31122), --bracer + quest_helper:melee_gloves(SKYSHRINE_ARMOR.Plate_Gauntlets, 31123), --glove + quest_helper:melee_legs(SKYSHRINE_ARMOR.Plate_Greaves, 31124), --leg + quest_helper:melee_boots(SKYSHRINE_ARMOR.Plate_Boots, 31125) -- boots +} + +function event_say(e) + if (e.other:GetFaction(e.self) < 2) then --must be ally + if(e.message:findi("hail")) then + e.self:Say("I wish to speak only to the knights called paladins. If you are what I seek do you wish to partake of my quests?"); + elseif(e.message:findi("partake")) then + e.self:Say("Excellent. By serving my cause, you, in turn, will further your own. I require certain components to aid me and if you bring them to me, I shall reward you for your honorable service. You may choose from among these items: a helm, a breastplate, armplates, bracers, gauntlets, greaves, and boots."); + elseif(e.message:findi("helm")) then + e.self:Say("All I require are an unadorned plate helmet and three pieces of crushed coral. This should be a small task for one such as you. Go now and I shall await your return."); + elseif(e.message:findi("breastplate")) then + e.self:Say("As the resolve of your faith protects you, so shall this breastplate. All that is required are three flawless diamonds and an unadorned breastplate. Do this quickly so that you may return to the field of battle."); + elseif(e.message:findi("armplate")) then + e.self:Say("So, a pair of armplates is what you require? Well, I require unadorned plate vambraces and three flawed emeralds before you may receive it."); + elseif(e.message:findi("bracer")) then + e.self:Say("Bracers for the mighty? Retrieve these components and I shall forge the item for you. Bring me three crushed flame emeralds and an unadorned plate bracer."); + elseif(e.message:findi("gauntlet")) then + e.self:Say("Mighty gauntlets to smite your foes for the glory of the greater good! It is no easy task but I shall require a pair of unadorned plate gauntlets as well as three crushed topaz."); + elseif(e.message:findi("greave")) then + e.self:Say("Sturdy are the pillars that support the temple. I shall make you just as strong with these leggings. Gather unadorned plate greaves and three flawed sea sapphires."); + elseif(e.message:findi("boot")) then + e.self:Say("A pair of boots you shall have once you have brought me a pair of unadorned plate boots, and three pieces of crushed black marble."); + end + else -- Not Ally + e.self:Say("You must prove your dedication to the Claws of Veeshan before I will speak to you."); + end + +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.skyshrine_armor_success) --Need to check SKYSHRINE_ARMOR_success to make sure it works +end diff --git a/skyshrine/Anex.lua b/skyshrine/Anex.lua new file mode 100644 index 0000000..da648e4 --- /dev/null +++ b/skyshrine/Anex.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". I would be careful around the cubes. Rumor is they've gotten some kind of intelligence now."); + end +end diff --git a/skyshrine/Asteinnon_Fe-Dhar.lua b/skyshrine/Asteinnon_Fe-Dhar.lua new file mode 100644 index 0000000..881af63 --- /dev/null +++ b/skyshrine/Asteinnon_Fe-Dhar.lua @@ -0,0 +1,44 @@ +--shaman + +local quest_helper = require('velious_quest_helper'); +local SKYSHRINE_ARMOR = quest_helper.SKYSHRINE_ARMOR; + +local QUEST_ITEMS = { + quest_helper:priest_helmet(SKYSHRINE_ARMOR.Chain_Coif, 31105), --helm + quest_helper:priest_chest(SKYSHRINE_ARMOR.Chain_Tunic, 31106), --bp + quest_helper:priest_arms(SKYSHRINE_ARMOR.Chain_Sleeves, 31107), -- arms + quest_helper:priest_bracer(SKYSHRINE_ARMOR.Chain_Bracer, 31108), --bracer + quest_helper:priest_gloves(SKYSHRINE_ARMOR.Chain_Gauntlets, 31109), -- gloves + quest_helper:priest_legs(SKYSHRINE_ARMOR.Chain_Leggings, 31110), -- legs + quest_helper:priest_boots(SKYSHRINE_ARMOR.Chain_Boots, 31111) -- boots +} + +function event_say(e) + if (e.other:GetFaction(e.self) < 2) then --must be ally + if (e.message:findi("hail")) then + e.self:Emote("speaks in a deep tone, 'Greetings. I wish to speak only to a shaman, so I might aid them with protection from the world in the form of armor.'"); + elseif(e.message:findi("armor")) then + e.self:Say("For you I shall make a coif, breastplate, sleeves, bracers, gauntlets, leggings, and boots. Each piece is a quest unto itself. To seek the components, you must search the lands for them and test the power of the spirit within."); + elseif(e.message:findi("coif")) then + e.self:Say("The coif I shall make will be comprised of an unadorned chain coif and three crushed onyx sapphires. I shall be waiting."); + elseif(e.message:findi("breastplate")) then + e.self:Say("A breastplate to protect the spirit within. I shall make one for you granted that you retrieve the components I shall need. An unadorned chain tunic and three pieces of black marble. I await your return."); + elseif(e.message:findi("sleeve")) then + e.self:Say("Sleeves I shall make upon receipt of unadorned chain sleeves and a set of three jaundice gems. Complete this simple task and they are yours."); + elseif(e.message:findi("bracer")) then + e.self:Say("A bracer of mystic power I shall grant you. All I require is the acquisition of an unadorned chain bracer and three crushed opals."); + elseif(e.message:findi("gauntlet")) then + e.self:Say("I shall require three crushed lava rubies and an unadorned pair of chain gauntlets to complete my ritual."); + elseif(e.message:findi("legging")) then + e.self:Say("You seek leggings? Then provide for me unadorned chain leggings and three chipped onyx sapphires and I will give them to you for your service."); + elseif(e.message:findi("boot")) then + e.self:Say("These boots will help you in your never-ending quest. I shall grant them upon receipt of a pair of unadorned chain boots and three crushed flame emeralds."); + end + else + e.self:Say("You must prove your dedication to the Claws of Veeshan before I will speak to you."); --Not ally + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.skyshrine_armor_success) +end diff --git a/skyshrine/Commander_Leuz.lua b/skyshrine/Commander_Leuz.lua new file mode 100644 index 0000000..7170a99 --- /dev/null +++ b/skyshrine/Commander_Leuz.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.other:GetFaction(e.self) < 4) then + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", I'm the new commander of the Sky Shrine Militia. This group of shrine residents and newly aligned outlanders are given various tasks to do for the benefit of the shrine. Are you here to request a task?"); + elseif(e.message:findi("task")) then + e.self:Say("We have had recent news from one of our scouts in the Western Wastes that there have been storm giants wandering the coastal area. We have not heard back from this scout in some time. What we need is a volunteer to go deliver some tools so the scout can accurately communicate what is happening back to us."); + elseif(e.message:findi("volunteer")) then + e.self:Say("Very good! Take this to the scout and wait for them to return the report."); + e.other:SummonCursorItem(29683); -- Scout Tools + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 4 and item_lib.check_turn_in(e.self, e.trade, {item1 = 29688}, 0)) then + e.self:Say("Well this artifact will defently need study. Thank you for this report. Perhaps after we have researched this object more we will have more for you to search for."); + e.other:Faction(e.self,430,20); -- Claws of Veeshan + e.other:Faction(e.self,436,5); -- Yelinak + e.other:Faction(e.self,448,-10); -- Kromzek + e.other:QuestReward(e.self,0,0,0,0,0,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/skyshrine/Crendatha_Fe-Dhar.lua b/skyshrine/Crendatha_Fe-Dhar.lua new file mode 100644 index 0000000..4493e9c --- /dev/null +++ b/skyshrine/Crendatha_Fe-Dhar.lua @@ -0,0 +1,44 @@ +--rogue + +local quest_helper = require('velious_quest_helper'); +local SKYSHRINE_ARMOR = quest_helper.SKYSHRINE_ARMOR; + +local QUEST_ITEMS = { + quest_helper:melee_helmet(SKYSHRINE_ARMOR.Chain_Coif, 31126), --helm + quest_helper:melee_chest(SKYSHRINE_ARMOR.Chain_Tunic, 31127), --bp + quest_helper:melee_arms(SKYSHRINE_ARMOR.Chain_Sleeves, 31128), -- arms + quest_helper:melee_bracer(SKYSHRINE_ARMOR.Chain_Bracer, 31129), --bracer + quest_helper:melee_gloves(SKYSHRINE_ARMOR.Chain_Gauntlets, 31130), -- gloves + quest_helper:melee_legs(SKYSHRINE_ARMOR.Chain_Leggings, 31131), -- legs + quest_helper:melee_boots(SKYSHRINE_ARMOR.Chain_Boots, 31132) -- boots +} + +function event_say(e) + if(e.other:GetFaction(e.self) < 2) then -- Must be Ally + if(e.message:findi("hail")) then + e.self:Say("What do we have here? A cutthroat, perhaps? If you are a rogue, I may have use for you. I am in need of certain components and will reward you well if they are brought to me. Do I have your services?"); + elseif(e.message:findi("service")) then + e.self:Say("Excellent. Now, down to business. I shall pay you in trade for the items I seek. What I have for you is as such, a coif, a breastplate, armplates, bracers, gauntlets, greaves and boots. These should aid you in your skullduggery."); + elseif(e.message:findi("coif")) then + e.self:Say("I am in need of an unadorned chain coif and three crushed pieces of coral. For your services I shall give you a coif suitable for one such as you."); + elseif(e.message:findi("breastplate")) then + e.self:Say("For the breastplate you must seek out an unadorned chain tunic and three flawless diamonds. Only then will you receive a breastplate of my crafting."); + elseif(e.message:findi("armplate")) then + e.self:Say("For the armplates I shall give you, I require these: unadorned chain sleeves and three flawed emeralds."); + elseif(e.message:findi("bracer")) then + e.self:Say("An unadorned bracer and three crushed flame emeralds are what I require of you. A bracer of my making is your reward."); + elseif(e.message:findi("gauntlet")) then + e.self:Say("I need unadorned chain gauntlets and a set of three crushed topaz. Once I have these, you shall have your reward."); + elseif(e.message:findi("legging")) then + e.self:Say("A pair of leggings will be yours once you complete this task for me, thief. A pair of unadorned chain leggings and three flawed sea sapphires are all I require."); + elseif(e.message:findi("boot")) then + e.self:Say("A fine pair of boots shall you have to skulk around in, once you bring me a pair of unadorned chain boots and three pieces of crushed black marble."); + end + else + e.self:Say("You must prove your dedication to the Claws of Veeshan before I will speak to you."); + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.skyshrine_armor_success); +end diff --git a/skyshrine/Elaend_Fe-Dhar.lua b/skyshrine/Elaend_Fe-Dhar.lua new file mode 100644 index 0000000..9b5d672 --- /dev/null +++ b/skyshrine/Elaend_Fe-Dhar.lua @@ -0,0 +1,46 @@ +--wizard + +local quest_helper = require('velious_quest_helper'); +local SKYSHRINE_ARMOR = quest_helper.SKYSHRINE_ARMOR; + +local QUEST_ITEMS = { + quest_helper:silk_helmet(SKYSHRINE_ARMOR.Silk_Turban, 31154), -- helm + quest_helper:silk_chest(SKYSHRINE_ARMOR.Silk_Robe, 31155), -- chest + quest_helper:silk_arms(SKYSHRINE_ARMOR.Silk_Sleeves, 31156), -- arms + quest_helper:silk_bracer(SKYSHRINE_ARMOR.Silk_Wristband, 31157), -- wrist + quest_helper:silk_gloves(SKYSHRINE_ARMOR.Silk_Gloves, 31158), -- gloves + quest_helper:silk_legs(SKYSHRINE_ARMOR.Silk_Pantaloons, 31159), -- legs + quest_helper:silk_boots(SKYSHRINE_ARMOR.Silk_Boots, 31160) -- boots +} + +function event_say(e) + if(e.other:GetFaction(e.self) < 2) then -- Must be ally + if(e.message:findi("hail")) then + e.self:Say("Greetings to you. I seek one who calls himself a wizard. What do you call yourself, manling?"); + elseif(e.message:findi("wizard")) then + e.self:Say("Excellent. Are you sure enough of your skills to undertake my tasks? If not, get out of my sight!"); + elseif(e.message:findi("task")) then + e.self:Say("I thought so. One should never back down from a challenge. Once you have completed them I will have a cap, a robe, sleeves, wristbands, gloves, leggings and boots."); + elseif(e.message:findi("cap")) then + e.self:Say("For you to receive my gift, I shall require three crushed flame opals and a tattered silk turban."); + elseif(e.message:findi("robe")) then + e.self:Say("This exquisite robe shall be yours in exchange for a tattered silk robe and three pristine emeralds."); + elseif(e.message:findi("sleeve")) then + e.self:Say("For these durable sleeves, you must fetch me a pair of tattered silk sleeves and three flawed topaz."); + elseif(e.message:findi("wristband")) then + e.self:Say("The crafting of this wristband requires that you bring me a tattered silk wristband and three crushed onyx sapphires."); + elseif(e.message:findi("glove")) then + e.self:Say("For this fine pair of gloves you must seek out and return to me a pair of tattered silk gloves and three crushed topaz."); + elseif(e.message:findi("legging")) then + e.self:Say("This pair of leggings will be yours provided you supply me with a pair of tattered silk pantaloons and three nephrite."); + elseif(e.message:findi("boot")) then + e.self:Say("These supple boots shall be yours upon receipt of a pair of tattered silk boots and three crushed jaundice gems."); + end + else --Not ally + e.self:Say("You must prove your dedication to the Claws of Veeshan before I will speak to you."); + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.skyshrine_armor_success); +end \ No newline at end of file diff --git a/skyshrine/Eldriaks_Fe-Dhar.lua b/skyshrine/Eldriaks_Fe-Dhar.lua new file mode 100644 index 0000000..717dd8b --- /dev/null +++ b/skyshrine/Eldriaks_Fe-Dhar.lua @@ -0,0 +1,58 @@ +function event_say(e) + if(e.other:GetFaction(e.self) < 2) then + if(e.message:findi("hail")) then + e.self:Emote("seems very intent on his current studies. After a few moments, the wyvern mutters, '...Hmmm?'"); + elseif(e.message:findi("not a master smith")) then + e.self:Say("You must be the one to forge the weapon, " .. e.other:GetCleanName() .. ". Go and learn the art of the smith. Return only when you are a master and tell me you are ready. I will then tell you what must be done."); + elseif(e.message:findi("am a master smith")) then + e.self:Say("Good. The weapon is extremely complicated to construct, your skills will be tested perhaps beyond your abilities. The weapon is known as a Naginata. You need not be proficient in its use to build it. The Naginata is constructed of four major parts. The shaft, the blade, the fittings, and the hilt, or tsuba. No ordinary materials can hope to bind the dragons spirit. Special materials must be found."); + e.other:SummonCursorItem(18282); -- The Blade + elseif(e.message:findi("make the shaft")) then + e.self:Say("The shaft must be strong enough to withstand the effects of the spirit’s presence, yet flexible enough to be wielded properly. Of the few dragons that returned to us from the Ring of Scale, some brough back knowledge of a type of wood that may be sufficient. It is known as bronzewood. One can find it amidst one of the forests on the continent of Kunark. I am sure it is being used by one of the sentient races there."); + elseif(e.message:findi("make the fitting")) then + e.self:Say("The fittings are the most important part. The spirit itself will be held there partially. We’ll discuss this later, when you have all the other pieces in your possesion."); + elseif(e.message:findi("make the hilt")) then + e.self:Say("The tsuba is where most of the enchanment will lie. It must be forged seperately of another ore created to be the bane of the dragon. It is called chronium and was developed by the Kromzek with the aid of their blood-thirsty @#%$. You must forge the ore into a plate and then find a craftsman with the skill to carve a detailed mandala of draconic binding into it. This mandala will hold arcane power and restrain the spirit from destroying the weapon."); + elseif(e.message:findi("chronium")) then + e.self:Say("Chronium is a sacred ore used only by the higher ranked priests of Rallos Zek. You may be able to find some in the city of the Kromzek, Kael Drakkel. Perhaps in one of their temples. Forging it into a plate is simple. Heat the ore in a forge and shape it with a Forging Hammer, then temper it with a Flask of Water."); + elseif(e.message:findi("make the blade")) then + e.self:Say("The blade will be the most difficult piece for you to build. First of all, no mundane ore will do. Long ago, Veeshan sent a gift to us in the form of a meteor. This meteor holds the ore you must build the blade with. Once you have the ore, follow the instructions in this book and forge the blade. Don’t forget, when melting the ore, use the bone dust I gave you."); + elseif(e.message:findi("craftsman")) then + e.self:Say("Since the mandala is so detailed, only a craftsman trained specifically in these matters will do. I'm sure you're a fine smith but an adventurer like yourself wouldn't have time to fully master the skill needed to create the tsuba. Find one whose entire life is the art of creating these types of weapons. The craftsman will need a sketch of the mandala as well as the plate of chronium."); + elseif(e.message:findi("mandala")) then + e.self:Say("The type of mandala we need is a diagram laced with powerful arcane enchantment. You'll need to find a sketch of the correct mandala for the craftsman to go by as he carves it into the chronium plate. There is one place you may be able to find a sketch of a mandala powerful enough to bind Garzicor."); + elseif(e.message:findi("place")) then + e.self:Say("The ones that returned to us from the Ring of Scale told us of the Sarnak. These are hybrids of dragons and a sentient lizard race known as the Iksar. Whoever created them had to bind a dragon to his will or restrain it at some point. Perhaps this being or one of his brood still has a recording of the mandala. Once you have the Tsuba, Blade, and Shaft, return here and show them to me. I will then explain what must be done next."); + elseif(e.message:findi("awaken")) then + e.self:Say("First you must awaken his spirit by speaking where you found his corpse. You must say exactly this: 'You are one but two. Your vengeance shall find a home.' Hopefully this will bring him to you. You must then hurry and splash the vial of Kromzek blood upon his ghostly form. The taste of the blood with bring him fully into existence. You must then do battle with him. If you defeat him, you will have split his being which will be represented by two more shades. Give them each a flawless diamond. He will comply and choose these gems as a phylactery. Once you have the dual phylactery, you need only combine them with the assembled naginata in a forge to create the Ethereal Bladed Naginata. Bring me the the weapon."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2053}, 0)) then -- Dragon Craft Urn (2nd combined version) + e.self:Say("Hmm? What's this? Oh! You are the " .. e.other:Race() .. " who has been helping us with the nameless one. Well, not so nameless anymore. A part of Garzicor clings to this world, eager to wreak vengeance upon the giants who murdered him. We've decided that a weapon must be constructed, and the restless spirit of Garzicor must be bound to it. You must be the one to construct this weapon. This dust must be used in the forging of the weapon's blade. Are you a master smith, " .. e.other:GetCleanName() .. "?"); + e.other:QuestReward(e.self,0,0,0,0,2054,1000); -- Sanctified bone dust + elseif(e.other:GetFaction(e.self) < 2 and item_lib.check_turn_in(e.self, e.trade, {item1 = 2055,item2 = 1868,item3 = 2056})) then -- Finished Tsuba, Bronzewood Staff, Finished Naginata Blade + e.self:Emote("takes the staff, blade, and tsuba and looks them over. He says, 'Excellent craftsmanship. These will make a fine weapon. But one part remains to join all the pieces together. That is the fitings.' The Wyvern then hands you the items back along with a vial of blood and says, 'This vial of blood will allow you to awaken Garzicor's spirit.'"); + e.other:QuestReward(e.self,{items = {2426,2063}}); -- assembled Naginata, vial of Kromzek blood + elseif(e.other:GetFaction(e.self) < 2 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1728}, 0)) then -- Ethereal Bladed Naginata + e.self:Say("You have succeeded " .. e.other:GetCleanName() .. ". Garzicor's spirit no longer calls to us from beyond. Now we ask that you do one more thing. You must wield this weapon against all giant kind to satiate Garzicor's thirst for vengeance. The Naginata has a special power against the Kromzek, they will fall easily before it. However, if you do not wish to, hand the weapon back to me and I'll give you an earring more worthy of a being of faith. If you are one of sorcerous powers, hand me the earring and I'll hand you a ring more suited to you."); + e.other:Faction(e.self,430,10); --CoV + e.other:Faction(e.self,436,2); -- Yelinak + e.other:Faction(e.self,448,-5); -- Kromzek + e.other:QuestReward(e.self,0,0,0,0,2097,10000); -- Ethereal Bladed Naginata (Eldriak's Verified Naginata) + elseif(e.other:GetFaction(e.self) < 2 and item_lib.check_turn_in(e.self, e.trade, {item1 = 2097}, 0)) then -- Ethereal Bladed Naginata (Eldriak's Verified Naginata) + e.self:Say("Tis sad to see that the weapon will not be wielded by its maker, but here is your earring. Wear it well."); + e.other:QuestReward(e.self,0,0,0,0,2065); -- Sanctum Guardian's Earring + elseif(e.other:GetFaction(e.self) < 2 and item_lib.check_turn_in(e.self, e.trade, {item1 = 2065}, 0)) then -- Sanctum Guardian's Earring + e.self:Say("So you prefer the ring? Very well. May it serve you well, " .. e.other:GetCleanName() .. "."); + e.other:QuestReward(e.self,0,0,0,0,2064); -- Pitted Iron Ring + elseif(e.other:GetFaction(e.self) < 2 and item_lib.check_turn_in(e.self, e.trade, {item1 = 2064}, 0)) then -- Pitted Iron Ring + e.self:Say("You have decided to wield the Naginata after all?"); + e.other:QuestReward(e.self,0,0,0,0,2097); -- Ethereal Bladed Naginata (Eldriak's Verified Naginata) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/skyshrine/Erepon.lua b/skyshrine/Erepon.lua new file mode 100644 index 0000000..6e6f657 --- /dev/null +++ b/skyshrine/Erepon.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("chuckles and goes back to studying."); + end +end diff --git a/skyshrine/Fardonad_Fe-Dhar.lua b/skyshrine/Fardonad_Fe-Dhar.lua new file mode 100644 index 0000000..0f2a2f6 --- /dev/null +++ b/skyshrine/Fardonad_Fe-Dhar.lua @@ -0,0 +1,45 @@ +-- cleric + +local quest_helper = require('velious_quest_helper'); +local SKYSHRINE_ARMOR = quest_helper.SKYSHRINE_ARMOR; + +local QUEST_ITEMS = { + quest_helper:priest_helmet(SKYSHRINE_ARMOR.Plate_Helmet, 31140), --helm + quest_helper:priest_chest(SKYSHRINE_ARMOR.Breastplate, 31141), --bp + quest_helper:priest_arms(SKYSHRINE_ARMOR.Plate_Vambraces, 31142), -- arms + quest_helper:priest_bracer(SKYSHRINE_ARMOR.Plate_Bracer, 31143), --bracer + quest_helper:priest_gloves(SKYSHRINE_ARMOR.Plate_Gauntlets, 31144), -- gloves + quest_helper:priest_legs(SKYSHRINE_ARMOR.Plate_Greaves, 31145), -- legs + quest_helper:priest_boots(SKYSHRINE_ARMOR.Plate_Boots, 31146) -- boots +} + +function event_say(e) + if (e.other:GetFaction(e.self) < 2) then --Must be ally + if(e.message:findi("hail")) then + e.self:Say("Hail, most pious one. I sense the aura of your devotion and conviction and it is strong about you. A shame you are so short lived, mortal. But I see potential in you and for that I shall aid you in your calling if you are a cleric. Do you wish my aid?"); + elseif(e.message:findi("aid")) then + e.self:Say("Then I have a set of goals for you. Once you have achieved them, you shall be rewarded with a helm, a breastplate, armplates, bracers, gauntlets, greaves and boots. May they protect you from your enemies."); + elseif(e.message:findi("helm")) then + e.self:Say("I shall craft a helm for you but you must seek these items out for me first. I have need of an unadorned plate helmet and three pieces of crushed onyx sapphire."); + elseif(e.message:findi("breastplate")) then + e.self:Say("As your faith protects you, so shall this breastplate. I must have an unadorned breastplate and three pieces of black marble."); + elseif(e.message:findi("armplate")) then + e.self:Say("Such lofty goals your kind sets for yourselves. But, that is the way of your kind, I suppose - to seek that which is the most difficult to attain. Bring to me a set of unadorned vambraces and three jaundice gems and you will receive your reward."); + elseif(e.message:findi("bracer")) then + e.self:Say("For the bracers, faithful one, I shall require the acquisition of an unadorned plate bracer as well as three crushed opals."); + elseif(e.message:findi("gauntlet")) then + e.self:Say("I will need a pair of unadorned gauntlets as well as three crushed lava rubies, so that I may make your reward."); + elseif(e.message:findi("greave")) then + e.self:Say("You shall acquire a pair of unadorned plate greaves and three chipped onyx sapphires for me. I await your return."); + elseif(e.message:findi("boot")) then + e.self:Say("With your aid, I shall make a pair of fine boots for you. All that is needed are a pair of unadorned plate boots and three crushed flame emeralds."); + end + else --Not ally + e.self:Say("You must prove your dedication to the Claws of Veeshan before I will speak to you."); + end + +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.skyshrine_armor_success) +end \ No newline at end of file diff --git a/skyshrine/Grudash_the_Baker.lua b/skyshrine/Grudash_the_Baker.lua new file mode 100644 index 0000000..33a3e63 --- /dev/null +++ b/skyshrine/Grudash_the_Baker.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ah, welcome stranger. Perhaps I could interest you in one of my famous Boysenberry pies, the delight of Sky Shrine."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(114496)) then + eq.get_entity_list():GetMobByNpcTypeID(114496):Say("Hah! Whatever Grudash. You know that my Roasted Walrus in Plum Sauce is better. You just don't want to admit it."); + e.self:Say("Why would I admit to such a lie? Everyone loves my pies. I rarely see anyone come in here asking for your Roasted Walrus."); + eq.get_entity_list():GetMobByNpcTypeID(114496):Say("Just you wait, just you wait! One of these days Grudash, you'll see."); + e.self:Say("Please ignore my friend Ruru here. He is a bit delusional."); + eq.get_entity_list():GetMobByNpcTypeID(114496):Say("Bah!"); + end + elseif(e.message:findi("boysenberry")) then + e.self:Emote("chuckles, 'I thought you might, what say you now Ruru? Who is the better cook between us now?'"); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(114496)) then + eq.get_entity_list():GetMobByNpcTypeID(114496):Emote("grumbles, 'Bah, this still doesn't settle anything Grudash. This stranger obviously has no taste for fine cuisine.'"); + end + end +end diff --git a/skyshrine/Guardian_Elgoyr.lua b/skyshrine/Guardian_Elgoyr.lua new file mode 100644 index 0000000..45c44be --- /dev/null +++ b/skyshrine/Guardian_Elgoyr.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("We were created to protect the Kin and the shrine from attack. This is what we've always done. Do not try to alter this."); + end +end diff --git a/skyshrine/Guardian_Olgax.lua b/skyshrine/Guardian_Olgax.lua new file mode 100644 index 0000000..c01728f --- /dev/null +++ b/skyshrine/Guardian_Olgax.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("There are many places for the likes of you. Why don't you go find one right now and leave me alone."); + end +end diff --git a/skyshrine/Guardian_Rolsa.lua b/skyshrine/Guardian_Rolsa.lua new file mode 100644 index 0000000..0ad6db3 --- /dev/null +++ b/skyshrine/Guardian_Rolsa.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("ignores you."); + end +end diff --git a/skyshrine/Guardian_Selbbep.lua b/skyshrine/Guardian_Selbbep.lua new file mode 100644 index 0000000..ec5a7f7 --- /dev/null +++ b/skyshrine/Guardian_Selbbep.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:Race() .. ". It may be wise to speak with Herald Ziglark before traveling further into the shrine."); + end +end diff --git a/skyshrine/Guardian_Silnark.lua b/skyshrine/Guardian_Silnark.lua new file mode 100644 index 0000000..121f728 --- /dev/null +++ b/skyshrine/Guardian_Silnark.lua @@ -0,0 +1,31 @@ +function event_waypoint_arrive(e) + if(e.wp == 5) then + e.self:Say("Greetings Xatyl, how goes the watch?"); + rand = math.random(2); + if(rand == 1) then + eq.get_entity_list():GetMobByNpcTypeID(114477):Say("Not very good, there are rumors that the giants are planning another invasion of the shrine."); + e.self:Say("I'm sure Kin Erepon will agree that we are prepared for any attack that anyone may throw at us."); + eq.get_entity_list():GetMobByNpcTypeID(114576):Say("Aye, the herald has prepared a very devastating welcome for any attackers."); + e.self:Say("Well, I have many more rounds to do before I can end my watch. Farewell."); + eq.get_entity_list():GetMobByNpcTypeID(114477):Say("Farewell"); + else + eq.get_entity_list():GetMobByNpcTypeID(114477):Say("It goes well, tho there are rumors of new creatures in the shrine, we must be ever watchful."); + e.self:Say("We have defended the shrine from many others, this one should be no more dangerous."); + eq.get_entity_list():GetMobByNpcTypeID(114477):Say("Perhaps, but the herald says these new creatures may have even killed dragons! This would be a most fearsome foe if that's true."); + e.self:Say("Aye, well I must see to the other Kin, fairwell."); + end + elseif(e.wp == 13) then + e.self:Say("Greetings Kin Sarot, How goes this day?"); + rand1 = math.random(3); + if(rand1 == 1) then + eq.get_entity_list():GetMobByNpcTypeID(114554):Say("I have a meeting with the herald later today about our new visitors"); + eq.get_entity_list():GetMobByNpcTypeID(114519):Say("Would you like me to accompany you to the meetIng Kin Sarot?"); + eq.get_entity_list():GetMobByNpcTypeID(114554):Say("I will be fine Synarus, after I leave just await my return."); + elseif(rand1 == 2) then + eq.get_entity_list():GetMobByNpcTypeID(114554):Say("We've been having trouble with the cubes again. They seem to have a new taste for our Velium servants."); + else + eq.get_entity_list():GetMobByNpcTypeID(114554):Say("The day goes well. I have nothing going on for me today."); + e.self:Say("This is Indeed great news. I was hoping to hear that from someone this day."); + end + end +end diff --git a/skyshrine/Guardian_Synarus.lua b/skyshrine/Guardian_Synarus.lua new file mode 100644 index 0000000..b3486c1 --- /dev/null +++ b/skyshrine/Guardian_Synarus.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("scowls at you and goes back to watching the door."); + end +end diff --git a/skyshrine/Guardian_Xatyl.lua b/skyshrine/Guardian_Xatyl.lua new file mode 100644 index 0000000..9994f06 --- /dev/null +++ b/skyshrine/Guardian_Xatyl.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks at Erepon and shrugs."); + end +end diff --git a/skyshrine/Guardian_Xilac.lua b/skyshrine/Guardian_Xilac.lua new file mode 100644 index 0000000..86ed6db --- /dev/null +++ b/skyshrine/Guardian_Xilac.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:Race() .. ", don't mind the other velium they are mighty suspicious of the new flesh dashing about."); + end +end diff --git a/skyshrine/Jaylorx.lua b/skyshrine/Jaylorx.lua new file mode 100644 index 0000000..d849699 --- /dev/null +++ b/skyshrine/Jaylorx.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Watch out in the water. Yelinak keeps a few small fish there."); + end +end diff --git a/skyshrine/Jendavudd_Fe-Dhar.lua b/skyshrine/Jendavudd_Fe-Dhar.lua new file mode 100644 index 0000000..c027772 --- /dev/null +++ b/skyshrine/Jendavudd_Fe-Dhar.lua @@ -0,0 +1,46 @@ +-- warrior + +local quest_helper = require('velious_quest_helper'); +local SKYSHRINE_ARMOR = quest_helper.SKYSHRINE_ARMOR; + +local QUEST_ITEMS = { + quest_helper:melee_helmet(SKYSHRINE_ARMOR.Plate_Helmet, 31182), --helm + quest_helper:melee_chest(SKYSHRINE_ARMOR.Breastplate, 31183), --bp + quest_helper:melee_arms(SKYSHRINE_ARMOR.Plate_Vambraces, 31184), -- arms + quest_helper:melee_bracer(SKYSHRINE_ARMOR.Plate_Bracer, 31185), --bracer + quest_helper:melee_gloves(SKYSHRINE_ARMOR.Plate_Gauntlets, 31186), -- gloves + quest_helper:melee_legs(SKYSHRINE_ARMOR.Plate_Greaves, 31187), -- legs + quest_helper:melee_boots(SKYSHRINE_ARMOR.Plate_Boots, 31188), -- boots +} + +function event_say(e) + if(e.other:GetFaction(e.self) <= 1 ) then --Must be ally + if(e.message:findi("hail")) then + e.self:Say("Greetings to you. I seek the service of a powerful warrior. If you are not what I seek leave me be.") + elseif(e.message:findi("warrior")) then + e.self:Say("Excellent. I admire strength and ferocity. Life is but a series of battles, is it not?"); + elseif(e.message:findi("battle")) then + e.self:Say("We share the same view then. I wish to test your skills in battle. Not with me of course, for I will destroy you where you stand. Instead I wish for you to retrieve some trinkets for me and once I have them I will reward you handsomely with a helm, a breastplate, armplates, bracers, gauntlets, greaves, or boots."); + elseif(e.message:findi("helm")) then + e.self:Say("All I require are an unadorned plate helmet and three pieces of crushed coral. This should be a small task for one such as you. Go now and I shall await your return."); + elseif(e.message:findi("breastplate")) then + e.self:Say("As the resolve of your discipline and strength shall endure through a battle, so shall this breastplate. All I required are an unadorned breastplate, and three flawless diamonds. Do this quickly so that you may return to the field of battle."); + elseif(e.message:findi("armplate")) then + e.self:Say("So, a pair of armplates is what you require? Well, I require unadorned plate vambraces, as well as three flawed emeralds before you may receive them. May your deeds be spread throughout the lands!"); + elseif(e.message:findi("bracer")) then + e.self:Say("Bracers for the mighty? Retrieve these components and I shall forge the item for you. Bring me an unadorned plate and three crushed flame emeralds."); + elseif(e.message:findi("gauntlet")) then + e.self:Say("Mighty gauntlets to aid in obliterating your foes, eh? It is no easy task but I shall require a pair of unadorned plate gauntlets and three crushed topaz."); + elseif(e.message:findi("greave")) then + e.self:Say("Strength and balance are important, are they not? I shall help give you an advantage with these leggings. Gather for me three flawed sea sapphires and a set of unadorned plate greaves."); + elseif(e.message:findi("boot")) then + e.self:Say("A pair of boots you shall have once you have gotten a pair of unadorned plate boots as well as three pieces of crushed black marble."); + end + else --Not ally + e.self:Say("You must prove your dedication to the Claws of Veeshan before I will speak to you."); + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.skyshrine_armor_success) +end diff --git a/skyshrine/Jualicn.lua b/skyshrine/Jualicn.lua new file mode 100644 index 0000000..cbcfc44 --- /dev/null +++ b/skyshrine/Jualicn.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Why hello there, " .. e.other:GetCleanName() .. ". I do not see many that pass through these chambers unless they are trusted. What brings you before me today?"); + elseif(e.message:findi("Teachings of Relinar")) then + e.self:Say("In order to receive the teachings, you need to gather four runes from the [descendants of Relinar]. Each descendant of Relinar has one of the four runes. You will find them where they stand six abreast in the wasteland. However in order to know that you have my blessing you must present them with a [treasure] that they would know came from me."); + elseif(e.message:findi("treasure")) then + e.self:Say("I do have an ancient token that I have carried with me for quite some time. It is very special to me, but if you have been sent here by Lawyla then you must be worthy, for she is quick to see through the lies that some believe will gain them admittance to our halls. Please take this and present it to each of the descendants so that they will know you are truthful when you say that you were sent by me"); + e.other:SummonCursorItem(1908); -- Jualicn's Token + elseif(e.message:findi("descendants of Relinar")) then + e.self:Say("Another wizard joining our ranks? Excellent. Listen closely, " .. e.other:GetCleanName() .. ". I will give you the Lexicon of Relinar, a great and well remembered sorcerer whose teachings are necessary in constructing a spell that is very powerful against the giants. I will give you his ancient lexicon which can harness his teachings if you can carry this large tome. You may need to rearrange your belongings. Are you [ready to receive the lexicon]?"); + elseif(e.message:findi("I am ready to receive the lexicon")) then + e.self:Say("Combine the four runes in this lexicon and you will then have the teachings of Relinar. After you have done this, you are required to speak again with Lawyla about the [problems] we are having [with Kromzek spies]."); + e.other:SummonCursorItem(17061); -- Lexicon of Relinar + end +end diff --git a/skyshrine/Komawin_Fe-Dhar.lua b/skyshrine/Komawin_Fe-Dhar.lua new file mode 100644 index 0000000..4725303 --- /dev/null +++ b/skyshrine/Komawin_Fe-Dhar.lua @@ -0,0 +1,46 @@ +--monk + +local quest_helper = require('velious_quest_helper'); +local SKYSHRINE_ARMOR = quest_helper.SKYSHRINE_ARMOR; + +local QUEST_ITEMS = { + quest_helper:melee_helmet(SKYSHRINE_ARMOR.Leather_Cap, 31189), --helm + quest_helper:melee_chest(SKYSHRINE_ARMOR.Leather_Tunic, 31190), --bp + quest_helper:melee_arms(SKYSHRINE_ARMOR.Leather_Sleeves, 31191), -- arms + quest_helper:melee_bracer(SKYSHRINE_ARMOR.Leather_Bracelet, 31192), --bracer + quest_helper:melee_gloves(SKYSHRINE_ARMOR.Leather_Gloves, 31193), -- gloves + quest_helper:melee_legs(SKYSHRINE_ARMOR.Leather_Leggings, 31194), -- legs + quest_helper:melee_boots(SKYSHRINE_ARMOR.Leather_Boots, 31195), -- boots +} + +function event_say(e) + if (e.other:GetFaction(e.self) < 2) then -- Must be ally + if(e.message:findi("hail")) then + e.self:Say("Greetings to you. I seek one that has chosen the path of monkhood. What do you call yourself?"); + elseif(e.message:findi("monk")) then + e.self:Say("Good. I had hoped you were one. As seeker of the way you are in constant training to push yourself to your physical and mental limits. It is an admirable quality and I wish to aid you. I will provide you with a cap, a tunic, sleeves, bracers, gloves, leggings and boots"); + elseif(e.message:findi("cap")) then + e.self:Say("I shall weave one of exceptional quality for you but you must gather the items first. I require an unadorned leather cap and three pieces of crushed coral."); + elseif(e.message:findi("tunic")) then + e.self:Say("You shall be an imposing force with this tunic. Solid as the unmoving mountains, it shall protect you. Once I have gained a set of three flawless diamonds and an unadorned leather tunic."); + elseif(e.message:findi("sleeve")) then + e.self:Say("As the mighty stone that parts the flow of water, so shall these sleeves divert harm against you. Bring me a pair of unadorned leather sleeves and three flawed emeralds."); + elseif(e.message:findi("bracer")) then + e.self:Say("For a bracer I shall require three crushed flame emeralds and an unadorned leather bracelet. Bring me these items and the reward shall be yours to keep."); + elseif(e.message:findi("glove")) then + e.self:Say("Your hands are like the wind, everflowing and moving. Subtle one moment, then a howling wind raining blow upon blow to your foes. These gloves shall aid you. In order for me to complete them, I require a pair of unadorned leather gloves and three crushed topaz."); + elseif(e.message:findi("legging")) then + e.self:Say("The leggings shall protect you, as the valley shelters the still pool within it from the howling winds. Furnish a pair of unadorned leather leggings and three flawed sea sapphires."); + elseif(e.message:findi("boot")) then + e.self:Say("Your feet are as hard as any stone and as swift as a coiled serpent but even the swiftest feet require protection so I shall provide you with these. They should help. Acquire a pair of unadorned leather boots and three crushed pieces of black marble.") + end + else --Not ally + e.self:Say("You must prove your dedication to the Claws of Veeshan before I will speak to you."); + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.skyshrine_armor_success) + +end + diff --git a/skyshrine/Larquin_Fe-Dhar.lua b/skyshrine/Larquin_Fe-Dhar.lua new file mode 100644 index 0000000..6cccf5e --- /dev/null +++ b/skyshrine/Larquin_Fe-Dhar.lua @@ -0,0 +1,45 @@ + --Beastlord + +local quest_helper = require('velious_quest_helper'); +local SKYSHRINE_ARMOR = quest_helper.SKYSHRINE_ARMOR; + +local QUEST_ITEMS = { + quest_helper:melee_helmet(SKYSHRINE_ARMOR.Leather_Cap, 5446), --helm + quest_helper:melee_chest(SKYSHRINE_ARMOR.Leather_Tunic, 5447), --bp + quest_helper:melee_arms(SKYSHRINE_ARMOR.Leather_Sleeves, 5448), -- arms + quest_helper:melee_bracer(SKYSHRINE_ARMOR.Leather_Bracelet, 5449), --bracer + quest_helper:melee_gloves(SKYSHRINE_ARMOR.Leather_Gloves, 5450), -- gloves + quest_helper:melee_legs(SKYSHRINE_ARMOR.Leather_Leggings, 5451), -- legs + quest_helper:melee_boots(SKYSHRINE_ARMOR.Leather_Boots, 5452), -- boots +} + +function event_say(e) + if (e.other:GetFaction(e.self) < 2) then --Must be ally + if(e.message:findi("hail")) then + e.self:Say("Greetings, I am looking for one who is one with the wild beasts of the world. Do you call yourself a Beastlord?"); + elseif(e.message:findi("beastlord")) then + e.self:Say("I have been waiting for one such as you to arrive. I have some equipment that is worthy of a great Beastlord. I have a cap, leggings, tunic, bracer, boots, sleeves, and gloves if you think you are worthy."); + elseif(e.message:findi("cap")) then + e.self:Say("I shall weave one of exceptional quality for you but you must gather the items first. I require an unadorned leather cap and three pieces of crushed coral."); + elseif(e.message:findi("tunic")) then + e.self:Say("You shall be an imposing force with this tunic. Solid as the unmoving mountains, it shall protect you. Once I have gained a set of three flawless diamonds and an unadorned leather tunic."); + elseif(e.message:findi("sleeve")) then + e.self:Say("As the mighty stone that parts the flow of water, so shall these sleeves divert harm against you. Bring me a pair of unadorned leather sleeves and three flawed emeralds."); + elseif(e.message:findi("bracer")) then + e.self:Say("For a bracer I shall require three crushed flame emeralds and an unadorned leather bracelet. Bring me these items and the reward shall be yours to keep."); + elseif(e.message:findi("glove")) then + e.self:Say("Your hands are like the wind, everflowing and moving. Subtle one moment, then a howling wind raining blow upon blow to your foes. These gloves shall aid you. In order for me to complete them, I require a pair of unadorned leather gloves and three crushed topaz."); + elseif(e.message:findi("legging")) then + e.self:Say("The leggings shall protect you, as the valley shelters the still pool within it from the howling winds. Furnish a pair of unadorned leather leggings and three flawed sea sapphires."); + elseif(e.message:findi("boot")) then + e.self:Say("Your feet are as hard as any stone and as swift as a coiled serpent but even the swiftest feet require protection so I shall provide you with these. They should help. Acquire a pair of unadorned leather boots and three crushed pieces of black marble."); + end + else --Not Ally + e.self:Say("You must prove your dedication to the Claws of Veeshan before I will speak to you."); + end + +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.skyshrine_armor_success) --Need to check SKYSHRINE_ARMOR_success to make sure it works +end diff --git a/skyshrine/Lawyla.lua b/skyshrine/Lawyla.lua new file mode 100644 index 0000000..703483e --- /dev/null +++ b/skyshrine/Lawyla.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail and well met," .. e.other:GetCleanName() .. ". I can see by your appearance that you are well traveled. I congratulate you on your thirst for adventure as you are obviously far from where you call home. Would you happen to [study the art of sorcery]?"); + elseif(e.message:findi("art of sorcery")) then + e.self:Say("Then I believe you would be interested in hearing of the sad tale of our beloved Hsagra. Many years ago, Hsagra was slain by the wicked Kromzek Porlos. Unfortunately, Porlos found out that Hsagra had discovered a new magic that was extremely powerful against the Giants. Hsagra was the mate of Yelinak. You might have heard the tale of Yelinak, for he still lives with the terrible memory of the horrid day that he lost his wingmate. The Giants even have the gall to have made the throne of King Tormax out of the skull of Hsagra. Do you [wish to avenge Hsagra] after what I have told you?"); + elseif(e.message:findi("avenge")) then + e.self:Say("The Kromzek have been a bane upon our very existence for far too long. If you wish to aid our cause, I will need proof of your devotion and allegiance. We will not waste our time educating anyone who does not have our best interests at heart. The journey will prove very dangerous both to you as well as whom you choose to accompany you. After knowing this, do you still [wish to prove your allegiance]?"); + elseif(e.message:findi("prove my allegiance")) then + e.self:Say("Before I divulge the secret behind the sorcery against the Kromzek, I require three items from you, and you alone. Please also keep in mind I will need to combine these three items together, so I will not accept them individually. First, we must start out with the teachings of Relinar, for it is necessary in recreating the magic against the vile giants. Our [lorekeeper] is one you must seek out to acquire those teachings, he resides within the confines of our dwelling."); + elseif(e.message:findi("lorekeeper")) then + e.self:Say("Jualicn is the one that you seek. Ask him of Relinar and he will guide you in acquiring the teachings of our Relinar who rediscovered the lost magic that once belonged to Hsagra. Once you have all of the items in hand that are needed to recreate this powerful spell, come back and we will continue this discussion then. Until that point, our business here is done. May you be blessed in your efforts to assist in the annihilation of the Kromzek."); + elseif(e.message:findi("problem")) then + e.self:Say("Hello again " .. e.other:GetCleanName() .. ". I see that you have spoken to Jualicn. We have been having problems with spies in this area. I require three items in order to recreate the magic necessary to scribe the spell. I need the head of a Kromzek spy, the teachings of Relinar, and finally a scale from Hsagra. In order for the magic of Hsagra to work, we must have some of her remains to complete the components. It is rumored that a high ranking giant noble that goes by the name Helssen, treasures a scale that came from the body of Hsagra herself. But I believe you will have to kill him in order to take the scale away from him. He resides in the giant city with the other vile creatures. Bring it to me along with the head of the spy and the teachings of Relinar and we will conclude our dealings."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1897,item2 = 1898,item3 = 1899})) then + e.self:Say("" .. e.other:GetCleanName() .. ", you are to be commended for your valor and determination in assisting my Kin. Here is the spell that Hsagra died so long ago over. I only ask that each time that you use the sorcery here, that you remember Hsagra in a silent prayer of thanks. For I hope that will help ease Yelinak's still tormented soul from his loss. I bid you farewell. You are welcome amongst our ranks."); + e.other:Faction(e.self,430,100); -- ClawsofVeeshan + e.other:Faction(e.self,436,25); -- Yelinak + e.other:Faction(e.self,448,-50); -- Kromzek + e.other:QuestReward(e.self,0,0,0,0,19470,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/skyshrine/Lord_Yelinak.lua b/skyshrine/Lord_Yelinak.lua new file mode 100644 index 0000000..10ece96 --- /dev/null +++ b/skyshrine/Lord_Yelinak.lua @@ -0,0 +1,51 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 200) then + e.self:Say("Welcome, young mortal. Word of your deeds has preceded your arrival. Your intentions seem honorable, young one, however my trust is not an easy thing to win these days. Like you, there has been another that came before me with the trust of the dragon kin, and trust them too I did, but alas that proved to be destructive. I note your deeds to this shrine young one, but should you wish my counsel, you must prove your worth beyond doubt. Perhaps a small challenge shall be of interest to you?"); + else + e.self:Say("I have nothing to speak about to the likes of you."); + end + elseif(e.message:findi("prove")) then + if(e.other:GetFactionValue(e.self) >= 200) then + e.self:Say("Then as agreed, young mortal, I will grant you one chance to prove your worth in my eyes. The Storm King Tormax sits on a throne carved from the skull of one of our fallen within the city of Kael, which disgraces the mighty children of Veeshan. His life alone is a blight upon the children of Veeshan. Should you be a true patriot to our cause, I seek of you but one task. Should you succeed in this task, not only will your actions offset the balance of this war in our favor, but will surely take a step in driving the vileness of the giants from our noble lands. Bring me, young one, the head of Tormax, and then we shall speak further."); + else + e.self:Say("I have nothing to speak about to the likes of you."); + end + elseif(e.message:findi("treasure")) then + if(e.other:GetFactionValue(e.self) >= 200) then + e.self:Say("This sword is a symbol of our evolution and ancient heritage. Back when our feathered relatives were not so distant, a sword was forged and enchanted with the spirit of an elder griffin. This noble griffin bound his soul to the sword, the essence of his being honing the blade to an edge imperceptible to mortal eyes. Although our races have evolved away from each other, we still hold them in high regard. But if you think you are not worthy to wield this honor, return the sword to me and I have other tokens you may find of more use."); + else + e.self:Say("I have nothing to speak about to the likes of you."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30516}, 0)) then + if(e.other:GetFactionValue(e.self) >= 200) then + e.self:Emote("watches as you drop the colossal head of King Tormax to the ground before him. You sense intense hatred within Yelinak as he stares down at the bloody remains of a descendent of the one who slew his mate. Obviously the death of Tormax has done little to console the ancient snow dragon. Finally Yelinak speaks, 'I look upon this face, and even though he is dead, the hatred burns on. My grief and anger are unchanged even in the face of ultimate fate. His grandfather's act was so despicable and all-encompassing that it instilled an. immortal loathing. Nevertheless, you have completed the task I set before you and, as such, you deserve my gratitude. Please accept this [treasure]."); + e.other:Faction(e.self,436,50); -- Faction: Yelinak + e.other:Faction(e.self,430,25); -- Faction: Claws of Veeshan + e.other:Faction(e.self,429,-25); -- Faction: King Tormax + e.other:QuestReward(e.self,0,0,0,0,29647,1000); + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29647}, 0)) then + if(e.other:GetFactionValue(e.self) >= 200) then + e.self:Say("I lost the scales that made these boots in a battle with Tormaxs minions. The casters of the shrine gathered these fallen scales up and fashioned a very powerful enchantment into these boots."); + e.other:QuestReward(e.self,0,0,0,0,29645); + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29645}, 0)) then + if(e.other:GetFactionValue(e.self) >= 200) then + e.self:Say("This helm was created by our smiths and enchanted by the priests of the shrine to provide protection to our new allies who have found that their heads are much more fragile than those of our kin."); + e.other:QuestReward(e.self,0,0,0,0,29648); + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29648}, 0)) then + if(e.other:GetFactionValue(e.self) >= 200) then + e.self:Say("This sword is a symbol of our evolution and ancient heritage. Back when our feathered relatives were not so distant, a sword was forged and enchanted with the spirit of an elder griffin. This noble griffin bound his soul to the sword, the essence of his being honing the blade to an edge imperceptible to mortal eyes. Although our races have evolved away from each other, we still hold them in high regard. But if you think you are not worthy to wield this honor, return the sword to me and I have other tokens you may find of more use."); + e.other:QuestReward(e.self,0,0,0,0,29647); + end + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/skyshrine/Lothieder_Fe-Dhar.lua b/skyshrine/Lothieder_Fe-Dhar.lua new file mode 100644 index 0000000..08c61a5 --- /dev/null +++ b/skyshrine/Lothieder_Fe-Dhar.lua @@ -0,0 +1,45 @@ +--enchanter + +local quest_helper = require('velious_quest_helper'); +local SKYSHRINE_ARMOR = quest_helper.SKYSHRINE_ARMOR; + +local QUEST_ITEMS = { + quest_helper:silk_helmet(SKYSHRINE_ARMOR.Silk_Turban, 31175), -- helm + quest_helper:silk_chest(SKYSHRINE_ARMOR.Silk_Robe, 31176), -- chest + quest_helper:silk_arms(SKYSHRINE_ARMOR.Silk_Sleeves, 31177), -- arms + quest_helper:silk_bracer(SKYSHRINE_ARMOR.Silk_Wristband, 31178), -- wrist + quest_helper:silk_gloves(SKYSHRINE_ARMOR.Silk_Gloves, 31179), -- gloves + quest_helper:silk_legs(SKYSHRINE_ARMOR.Silk_Pantaloons, 31180), -- legs + quest_helper:silk_boots(SKYSHRINE_ARMOR.Silk_Boots, 31181) -- boots +} + +function event_say(e) + if(e.other:GetFaction(e.self) < 2) then -- Must be ally + if(e.message:findi("hail")) then + e.self:Say("Greetings to you. I seek those who call themselves enchanters. Are you what I seek?"); + elseif(e.message:findi("enchanter")) then + e.self:Say("I thought so. I have several tasks for you accomplish. Once you have completed them I will have a cap, a robe, sleeves, wristbands, gloves, leggings and boots to reward you with."); + elseif(e.message:findi("cap")) then + e.self:Say("For you to receive my gift, I shall require three crushed flame opals and a tattered silk turban."); + elseif(e.message:findi("robe")) then + e.self:Say("This exquisite robe shall be yours in exchange for a tattered silk robe and three pristine emeralds."); + elseif(e.message:findi("sleeve")) then + e.self:Say("For these durable sleeves, you must fetch me a pair of tattered silk sleeves and three flawed topaz."); + elseif(e.message:findi("wristband")) then + e.self:Say("The crafting of this wristband requires that you bring me a tattered silk wristband and three crushed onyx sapphires."); + elseif(e.message:findi("glove")) then + e.self:Say("For this fine pair of gloves you must seek out and return to me a pair of tattered silk gloves and three crushed topaz."); + elseif(e.message:findi("legging")) then + e.self:Say("This pair of leggings will be yours provided you supply me with a pair of tattered silk pantaloons and three nephrite."); + elseif(e.message:findi("boot")) then + e.self:Say("These supple boots shall be yours upon receipt of a pair of tattered silk boots and three crushed jaundice gems."); + end + else --Not ally + e.self:Say("You must prove your dedication to the Claws of Veeshan before I will speak to you."); + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.skyshrine_armor_success) +end + diff --git a/skyshrine/Nalelin_Fe-Dhar.lua b/skyshrine/Nalelin_Fe-Dhar.lua new file mode 100644 index 0000000..e09f207 --- /dev/null +++ b/skyshrine/Nalelin_Fe-Dhar.lua @@ -0,0 +1,44 @@ +--ranger + +local quest_helper = require('velious_quest_helper'); +local SKYSHRINE_ARMOR = quest_helper.SKYSHRINE_ARMOR; + +local QUEST_ITEMS={ + quest_helper:melee_helmet(SKYSHRINE_ARMOR.Chain_Coif, 31112), --helm + quest_helper:melee_chest(SKYSHRINE_ARMOR.Chain_Tunic, 31113), --breastChain + quest_helper:melee_arms(SKYSHRINE_ARMOR.Chain_Sleeves, 31114), --arms + quest_helper:melee_bracer(SKYSHRINE_ARMOR.Chain_Bracer, 31115), --bracer + quest_helper:melee_gloves(SKYSHRINE_ARMOR.Chain_Gauntlets, 31116), --glove + quest_helper:melee_legs(SKYSHRINE_ARMOR.Chain_Leggings, 31117), --leg + quest_helper:melee_boots(SKYSHRINE_ARMOR.Chain_Boots, 31118), -- boots +} + +function event_say(e) + if (e.other:GetFaction(e.self) < 2) then --Must be ally + if (e.message:findi("hail")) then + e.self:Say("Greetings, I seek the ones who stalk through the forests protecting it. If you are one known as a ranger, submit to my will and become stronger. The tasks I set forth will not be easy. Are you ready to submit to my will?"); + elseif(e.message:findi("submit")) then + e.self:Say("That is good, for there is nothing like the wrath of nature, woodland warrior. And Nature's wrath shall you be, with this armor to protect you in your struggle. I shall forge a coif, breastplate, sleeves, bracers, gauntlets, leggings, and boots for you."); + elseif(e.message:findi("coif")) then + e.self:Say("This coif shall protect you from battle and the elements. What I require of you are these: an unadorned chain coif and three pieces of crushed coral. Do not waste precious time!"); + elseif(e.message:findi("breastplate")) then + e.self:Say("Even as the hardest tree in the forest gains protection from its bark, so shall you gain the protection of this breastplate. Bring these components for me - an unadorned chain tunic and three flawless diamonds."); + elseif(e.message:findi("sleeve")) then + e.self:Say("I require unadorned chain sleeves, as well as three flawed emeralds. Do this so that I may grant you them as a gift for your diligence."); + elseif(e.message:findi("bracer")) then + e.self:Say("This shall help shield your forearms from any stray blows. Bring me an unadorned chain bracelet and three crushed flame emeralds."); + elseif(e.message:findi("gauntlet")) then + e.self:Say("Bring me these items, for I will not grant you your pair until then - a pair of unadorned chain gauntlets and a set of three crushed topaz."); + elseif(e.message:findi("legging")) then + e.self:Say("A pair of leggings you seek? I seek something as well. Bring me a pair of unadorned chain leggings and three flawed sea sapphires. Go now. The struggle continues as we speak."); + elseif(e.message:findi("boot")) then + e.self:Say("For the boots, I shall require a pair of unadorned chain boots as well as three pieces of crushed black marble."); + end + else --Not ally + e.self:Say("You must prove your dedication to the Claws of Veeshan before I will speak to you."); + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.skyshrine_armor_success); +end diff --git a/skyshrine/Norsirx.lua b/skyshrine/Norsirx.lua new file mode 100644 index 0000000..b5b1415 --- /dev/null +++ b/skyshrine/Norsirx.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, traveler. I do not receive many visitors to my quarters here, besides the occasional unfortunate treasure seeker that often will make for a good snack."); + end +end diff --git a/skyshrine/Ocoenydd_Fe-Dhar.lua b/skyshrine/Ocoenydd_Fe-Dhar.lua new file mode 100644 index 0000000..697e297 --- /dev/null +++ b/skyshrine/Ocoenydd_Fe-Dhar.lua @@ -0,0 +1,45 @@ +--magician + +local quest_helper = require('velious_quest_helper'); +local SKYSHRINE_ARMOR = quest_helper.SKYSHRINE_ARMOR; + +local QUEST_ITEMS = { + quest_helper:silk_helmet(SKYSHRINE_ARMOR.Silk_Turban, 31168), -- helm + quest_helper:silk_chest(SKYSHRINE_ARMOR.Silk_Robe, 31169), -- chest + quest_helper:silk_arms(SKYSHRINE_ARMOR.Silk_Sleeves, 31170), -- arms + quest_helper:silk_bracer(SKYSHRINE_ARMOR.Silk_Wristband, 31171), -- wrist + quest_helper:silk_gloves(SKYSHRINE_ARMOR.Silk_Gloves, 31172), -- gloves + quest_helper:silk_legs(SKYSHRINE_ARMOR.Silk_Pantaloons, 31173), -- legs + quest_helper:silk_boots(SKYSHRINE_ARMOR.Silk_Boots, 31174), -- boots +} + +function event_say(e) + if(e.other:GetFaction(e.self) < 2) then -- Must be ally + if(e.message:findi("hail")) then + e.self:Say("Greetings to you. I seek those who call themselves magicians. Are you a magician, little one?"); + elseif(e.message:findi("magician")) then + e.self:Say("I thought so. I have several tasks for you accomplish. Once you have completed them I will have a cap, a robe, sleeves, wristbands, gloves, leggings and boots to reward you with."); + elseif(e.message:findi("cap")) then + e.self:Say("For you to receive my gift, I shall require three crushed flame opals and a tattered silk turban."); + elseif(e.message:findi("robe")) then + e.self:Say("This exquisite robe shall be yours in exchange for a tattered silk robe and three pristine emeralds."); + elseif(e.message:findi("sleeve")) then + e.self:Say("For these durable sleeves, you must fetch me a pair of tattered silk sleeves and three flawed topaz."); + elseif(e.message:findi("wristband")) then + e.self:Say("The crafting of this wristband requires that you bring me a tattered silk wristband and three crushed onyx sapphires."); + elseif(e.message:findi("glove")) then + e.self:Say("For this fine pair of gloves you must seek out and return to me a pair of tattered silk gloves and three crushed topaz."); + elseif(e.message:findi("legging")) then + e.self:Say("This pair of leggings will be yours provided you supply me with a pair of tattered silk pantaloons and three nephrite."); + elseif(e.message:findi("boot")) then + e.self:Say("These supple boots shall be yours upon receipt of a pair of tattered silk boots and three crushed jaundice gems."); + end + else --Not ally + e.self:Say("You must prove your dedication to the Claws of Veeshan before I will speak to you."); + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.skyshrine_armor_success) +end + diff --git a/skyshrine/Oglard.lua b/skyshrine/Oglard.lua new file mode 100644 index 0000000..530e4d6 --- /dev/null +++ b/skyshrine/Oglard.lua @@ -0,0 +1,44 @@ +function event_say(e) + if(e.other:GetFaction(e.self) < 2) then + if(e.message:findi("hail")) then + e.self:Say("Greetings, young " .. e.other:Race() .. ". Very few of your kind has ever seen the halls you now walk through. You must have provided a great service to our kin for them to allow you passage into this inner sanctum. We welcome you to our ancient home."); + elseif(e.message:findi("thank you")) then + e.self:Say("Might, wisdom, and manners? Quite a surprise to see all of these traits in one of the younger races. I am impressed. I see you are a noble creature, one who would treat another creature of nobility with respect... 'Oglard's eyes suddenly begin to shine with a magical golden light. He looks down upon you as if in judgement and asks, 'Tell me, " .. e.other:GetCleanName() .. ", have you done battle with dragons?'"); + elseif(e.message:findi("no I have not")) then + e.self:Emote("'s eyes begin to flare even brighter, then quickly fade, a frown left upon the wurm's face. He says, 'Hmmm. I see. Thank you for the information, and good luck in your travels.'"); + e.other:Faction(e.self,430,-200); -- Faction: Claws of Veeshan + elseif(e.message:findi("yes I have")) then + e.self:Emote("'s eyes slowly begin to lose the golden light that flared earlier. He then studies you carefully before saying 'There are many Dragons on this world that do not share our beliefs. If you have done battle with dragons and have lived, then you may be able to help us."); + elseif(e.message:findi("help")) then + e.self:Say("When a Dragon dies, his spirit leaves his corporeal body and joins Veeshan among the stars. It is our greatest desire, to be without desire, at the time of our death. Even in preperation for battle, we accept that we may die and strive to be empty of desire so that our spirits do not cling to this world when our end has come. For some, however, this is not the case"); + elseif(e.message:findi("who are the one")) then + e.self:Say("When a Dragon dies, and his heart is filled with desire, his spirit will remain here in the filth of this world. The greatest torment is to transcend one's body, and still be confined to this world. Like being trapped within a cell with a single locked door, having the key to unlock it and escape, yet having no hands to use the key. This has befallen one of our comrades"); + elseif(e.message:findi("comrade")) then + e.self:Say("And therein lies our plight. Our fellow Dragon now suffers eternally in unlife, between worlds. We hear his pained howls when we sleep, unable to aid our fallen comrade. He turned his back on us centuries ago, and joined the Ring of Scale. In response to this we erased his name and bloodline, along with the others who left, from our memories and books. He is still Dragon though, and does not deserve the fate he's been dealt. Without his name, we are helpless."); + elseif(e.message:findi("his name")) then + e.self:Say("Unfortunately our libraries have no record of him. We know of his death from 2 sources only. Our Lord Yelinak was the first to hear his tormented howling. Then the rest of us slowly began to hear him as well. A chosen few left our home to find his corpse if possible. We were surprised to find he had died here on this continent. Apparently he had returned to us, which pains us even more."); + elseif(e.message:findi("returned")) then + e.self:Say("His body was found in the Eastern Wastes, spears of Krom Zek make protruding from his side and chest.' The wurm pauses for a moment to sigh heavily. He continues, sorrow on his voice, 'We believe......we hope, one of the sentient races witnessed his murder. Chances are slim to nil. But perhaps one of those.....Caldoin? Or something? Found him and recorded his name. Will you investigate this for us Keyno ? "); + elseif(e.message:findi("will investigate")) then + e.self:Say("We are greatful for your service to us. We know you have little interest in our affairs, yet you risk your life to aid us. Once you find his name, then perhaps we can find a way to release his restless spirit. If you do this, you will be rewarded an item of your choice from our hoard of treasure. Begin with.....whatever they call themselves. The Giants refer to them as iron pellets. Return to me proof of his name and he will be remembered. "); + end + else + e.self:Say("I have nothing to speak about to the likes of you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1837}, 0)) then -- Onyxbrand + e.self:Emote("examines the axe closely. The Wurm's eyes widen as he makes out the name of Garzicor and immediately raises his head to the ceiling, letting out a howl of emotional pain. Your bones shake with the screach, an image of a man in the midst of a rain of his own child's blood comes to mind, the agony is so great. Out of breath, Oglard drops his head and focuses his attention back to you, barely able to hold himself up. He places an urn before you and says, 'You must find his corpse. Find his burial site and summon Garzicor's spirit by speaking your remembrance of him. Speak to him and find out all you can. Return to me with 2 pieces of his corpse combined in that urn. Help us " .. e.other:GetCleanName() .. ", you MUST!'"); + e.other:Faction(e.self,430,5); --CoV + e.other:Faction(e.self,436,1); -- Yelinak + e.other:Faction(e.self,448,-2); -- Kromzek + e.other:QuestReward(e.self,0,0,0,0,17050,5000); -- Dragon Craft Urn + elseif(e.other:GetFaction(e.self) < 2 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1887}, 0)) then -- Dragon Craft Urn (1st combined version) + e.self:Say("Thank you, " .. e.other:GetCleanName() .. ". With this urn, our fears are confirmed. His spirit is split, each striving for its own desire. We've decided what must be done. Your help is key in the success of our plans. If you wish to continue what you have started, please take this urn to Eldriaks Fe`Dhar. He will make known to you our plan."); + e.other:QuestReward(e.self,0,0,0,0,2053,5000); -- Dragon Craft Urn (2nd combined version) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/skyshrine/Onerind_Fe-Dhar.lua b/skyshrine/Onerind_Fe-Dhar.lua new file mode 100644 index 0000000..0e63b39 --- /dev/null +++ b/skyshrine/Onerind_Fe-Dhar.lua @@ -0,0 +1,44 @@ +--shadowknight + +local quest_helper = require('velious_quest_helper'); +local SKYSHRINE_ARMOR = quest_helper.SKYSHRINE_ARMOR; + +local QUEST_ITEMS = { + quest_helper:melee_helmet(SKYSHRINE_ARMOR.Plate_Helmet, 31098), --helm + quest_helper:melee_chest(SKYSHRINE_ARMOR.Breastplate, 31099), --bp + quest_helper:melee_arms(SKYSHRINE_ARMOR.Plate_Vambraces, 31100), -- arms + quest_helper:melee_bracer(SKYSHRINE_ARMOR.Plate_Bracer, 31101), --bracer + quest_helper:melee_gloves(SKYSHRINE_ARMOR.Plate_Gauntlets, 31102), -- gloves + quest_helper:melee_legs(SKYSHRINE_ARMOR.Plate_Greaves, 31103), -- legs + quest_helper:melee_boots(SKYSHRINE_ARMOR.Plate_Boots, 31104), -- boots +} + +function event_say(e) + if(e.other:GetFaction(e.self) <= 1 ) then --Must be ally + if(e.message:findi("hail")) then + e.self:Emote("looks around. 'Who dares address me? Oh, it is you. What is it you want? Some armor perhaps? To make a pretty corpse? There is something exquisite about a well-dressed meal. If you are not a shadowknight leave me now or you may end up as my next meal.'"); + elseif(e.message:findi("armor")) then + e.self:Emote("laughs deeply, 'You manlings are so transparent. Well, if armor is what you wish, then only the best shall you have for I will not waste my time on less than the best. This is what I will make for you, granted that you can acquire the components for me - a helm, breastplate, armplates, bracers, gauntlets, leggings, and boots.'"); + elseif(e.message:findi("helm")) then + e.self:Say("For the helm I shall require an unadorned plate helmet and three pieces of crushed coral for my trouble. Does your tiny mind comprehend the task set before you? If so, then get them immediately! I am beginning to get hungry and you are looking all the better as a snack."); + elseif(e.message:findi("breastplate")) then + e.self:Say("For the breastplate, I require an unadorned breastplate and three flawless diamonds. Nothing more, nothing less. For perfection, there is a price, insignificant one."); + elseif(e.message:findi("armplate")) then + e.self:Say("For the armplates, I need these components - unadorned plate vambraces as well as three flawed emeralds. Now go and fetch them before I change my mind."); + elseif(e.message:findi("bracer")) then + e.self:Say("For the bracers, I will require an unadorned plate bracer and a set of three crushed flame emeralds. Now go away before I use your insides as decoration for my gullet."); + elseif(e.message:findi("gauntlet")) then + e.self:Say("Your hands are quite important, aren't they? For without them, you cannot use your precious weapons or shields to protect yourselves. You humor me with your feeble attempts. Fetch me a set of unadorned plate gauntlets and three crushed topaz for your precious little gauntlets."); + elseif(e.message:findi("legging")) then + e.self:Say("Legs?? They are my favorite part of a meal. Some of my brethren consider them too tough, but I like them chewy. Don't you agree? Oh, yes, where was I? The leggings. Go and retrieve unadorned plate greaves as well as three flawed sea sapphires. Leave my sight before I sample one of yours."); + elseif(e.message:findi("boot")) then + e.self:Say("You wish to have a pair of boots? Then acquire these items for me. Three pieces of crushed black marble and a pair of unadorned plate boots. I tire of your prattle. Go away now."); + end + else --Not ally + e.self:Say("You must prove your dedication to the Claws of Veeshan before I will speak to you."); + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.skyshrine_armor_success) +end diff --git a/skyshrine/Propron.lua b/skyshrine/Propron.lua new file mode 100644 index 0000000..d580d1d --- /dev/null +++ b/skyshrine/Propron.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I'm trying to study please stop bothering me."); + end +end diff --git a/skyshrine/Pyrox.lua b/skyshrine/Pyrox.lua new file mode 100644 index 0000000..a3cfea9 --- /dev/null +++ b/skyshrine/Pyrox.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, traveler. I'm the keeper of possessions for the Skyshrine. Any friend of the shrine can safely store their belongings with me."); + end +end diff --git a/skyshrine/Qynydd_Fe-Dhar.lua b/skyshrine/Qynydd_Fe-Dhar.lua new file mode 100644 index 0000000..8009a37 --- /dev/null +++ b/skyshrine/Qynydd_Fe-Dhar.lua @@ -0,0 +1,45 @@ +--druid + +local quest_helper = require('velious_quest_helper'); +local SKYSHRINE_ARMOR = quest_helper.SKYSHRINE_ARMOR; + +local QUEST_ITEMS = { + quest_helper:priest_helmet(SKYSHRINE_ARMOR.Leather_Cap, 31147), --helm + quest_helper:priest_chest(SKYSHRINE_ARMOR.Leather_Tunic, 31148), --bp + quest_helper:priest_arms(SKYSHRINE_ARMOR.Leather_Sleeves, 31149), -- arms + quest_helper:priest_bracer(SKYSHRINE_ARMOR.Leather_Bracelet, 31150), --bracer + quest_helper:priest_gloves(SKYSHRINE_ARMOR.Leather_Gloves, 31151), -- gloves + quest_helper:priest_legs(SKYSHRINE_ARMOR.Leather_Leggings, 31152), -- legs + quest_helper:priest_boots(SKYSHRINE_ARMOR.Leather_Boots, 31153), -- boots +} + +function event_say(e) + if (e.other:GetFaction(e.self) < 2) then -- Must be ally + if(e.message:findi("hail")) then + e.self:Say("Greetings to you. I seek one who calls himself a druid. What do you call yourself, manling?"); + elseif(e.message:findi("druid")) then + e.self:Say("Good. I had hoped you were one. As nature's guardian, you fight the never-ending struggle against those who seek to defile it. It is an admirable quality and I wish to aid you. I will provide you with a cap, a tunic, sleeves, bracers, gloves, leggings and boots."); + elseif(e.message:findi("cap")) then + e.self:Say("I shall weave one of exceptional quality for you but you must gather the ingredients first. I require an unadorned leather cap and three crushed onyx sapphires."); + elseif(e.message:findi("tunic")) then + e.self:Say("You shall be a force of nature with this tunic. Once I have gained an unadorned leather tunic and three pieces of black marble, the item is yours."); + elseif(e.message:findi("sleeve")) then + e.self:Say("As the bark protects the limbs of the tree, so shall these sleeves protect your arms. Bring me a pair of unadorned leather sleeves and three jaundice gems."); + elseif(e.message:findi("bracer")) then + e.self:Say("For a bracer I shall require an unadorned leather bracelet as well as three crushed opals. Do this and the reward shall be yours to keep."); + elseif(e.message:findi("glove")) then + e.self:Say("The gloves shall help protect you from the elements and harm. In order for me to complete them, I require a pair of unadorned leather gloves and three crushed lava rubies."); + elseif(e.message:findi("legging")) then + e.self:Say("As the roots support the mighty oak, so shall these leggings support you. Furnish me three chipped onyx sapphires and a pair of unadorned leather leggings."); + elseif(e.message:findi("boot")) then + e.self:Say("Your feet are as hard as any stone and as swift as a coiled serpent but even the swiftest feet require protection so I shall provide you with these. They should help. Acquire a pair of unadorned leather boots and a set of three crushed flame emeralds.") + end + else --Not ally + e.self:Say("You must prove your dedication to the Claws of Veeshan before I will speak to you."); + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.skyshrine_armor_success) + +end \ No newline at end of file diff --git a/skyshrine/Ralgyn.lua b/skyshrine/Ralgyn.lua new file mode 100644 index 0000000..3d81ddf --- /dev/null +++ b/skyshrine/Ralgyn.lua @@ -0,0 +1,60 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 1000) then -- high warmly with CoV + e.self:Say("Hello, " .. e.other:GetCleanName() .. ", what brings you to these sacred quarters on this day? If it is treasure that you seek please ask someone else for I do not have time to think of such petty things. My worries are much greater at this time I am afraid."); + else + e.self:Say("I have nothing to speak about to the likes of you."); + end + elseif(e.message:findi("worries")) then + if(e.other:GetFactionValue(e.self) >= 1000) then + e.self:Say("Well I suppose I can tell you of my promise if you are willing to listen as I do not feel you have intentions of using anything I tell you against my dragonkin. Not many can walk these quarters unless they are very trusted amongst us."); + else + e.self:Say("I have nothing to speak about to the likes of you."); + end + elseif(e.message:findi("promise")) then + if(e.other:GetFactionValue(e.self) >= 1000) then + e.self:Say("I made a promise a very long time ago to my wingmate Faliana, a promise that I feel I may have broken."); + else + e.self:Say("I have nothing to speak about to the likes of you."); + end + elseif(e.message:findi("broken")) then + if(e.other:GetFactionValue(e.self) >= 1000) then + e.self:Say("I promised my dear Faliana that I would always keep her talisman close to me. If something has happened to my son I must retain his talisman so that I may keep Faliana's Talisman secure, as I promised her I always would. Before she perished she split her talisman into two pieces one of which I always will carry and the other half which my son Glanitar carries. My son has not returned to me for some time and I am deeply concerned for this is not normal behavior for him. I fear something must have happened to him for he has never been so involved in his training to not inform me of his whereabouts or to not come visit."); + else + e.self:Say("I have nothing to speak about to the likes of you."); + end + elseif(e.message:findi("training")) then + if(e.other:GetFactionValue(e.self) >= 1000) then + e.self:Say("It seems like it was only yesterday that my only son Glanitar was practicing his skills as a young Wurm. Before long he quickly mastered many fighting skills and the development of his magical skills rapidly progressed. He was coming along so well in his training that he was quickly drafted for the Patrol. Even when he was away for his training he would often return to me and tell me of his progress. I was very proud of him for his involvement with the Patrol. Although I am very proud of his accomplishments, I have not seen him for longer then I have ever been away from him and I fear for the worst."); + else + e.self:Say("I have nothing to speak about to the likes of you."); + end + elseif(e.message:findi("patrol")) then + if(e.other:GetFactionValue(e.self) >= 1000) then + e.self:Say("Ah yes, the patrol. Well in the Great Divide there is a collection of caves that the dragonkind holds as a sacred territory. For this reason we always have a number of our strongest up and coming younger ones train there with the great [Kardakor]. They patrol the caved labyrinth to make sure it is free from unwanted intruders who are quickly dealt with upon discovery."); + else + e.self:Say("I have nothing to speak about to the likes of you."); + end + elseif(e.message:findi("kardakor")) then + if(e.other:GetFactionValue(e.self) >= 1000) then + e.self:Say("Kardakor is a strong and powerful Warrior. He has fought in many battles against the vile Giants and is well respected amongst our people as a champion. For this reason when one was needed to train our young fighters seeking guidance in developing both their magical and fighting techniques it was clear to us who we should select for this honor, Kardakor."); + else + e.self:Say("I have nothing to speak about to the likes of you."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 1000 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1866}, 0)) then -- high warmly with CoV + e.self:Say("It is with great sorrow that I receive this talisman which clearly symbolizes the death of my son for he would first suffer a hundred deaths then rather then to willingly give up his only bind to his Mother. However your assistance and dedication to me is unquestioned. For your efforts I would like you to carry something very special to me. Please take this Circlet and treasure it always as it belonged to my Faliana. I feel as much as you assisted me in obtaining the whereabouts of my son I know that she would want you to have it as much as I do. Sadly, now I must mourn my lost son however I shall never forget your kindness, " .. e.other:GetCleanName() .. ", Thank you."); + -- verified faction hit + e.other:Faction(e.self,430,75); -- Claws of Veeshan + e.other:Faction(e.self,436,18); -- Yelinak + e.other:Faction(e.self,448,-37); -- Kromzek + e.other:QuestReward(e.self,0,0,0,0,1867,10000); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/skyshrine/Ruru_the_Cook.lua b/skyshrine/Ruru_the_Cook.lua new file mode 100644 index 0000000..c795986 --- /dev/null +++ b/skyshrine/Ruru_the_Cook.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey there stranger, pleased to meet you. I'm Ruru, I do the cooking around here. I'm the best cook around these parts. So, if you get hungry, you'd best be making sure you're coming to see me."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(114467)) then + eq.get_entity_list():GetMobByNpcTypeID(114467):Emote("laughs, 'I'm sure they'd prefer my Boysenberry pie to your Roasted Walrus with Plum Sauce any day.'"); + e.self:Emote("laughs, 'Don't get me started. You know that my cuisine Is prefered over yours two to one.'"); + end + end +end diff --git a/skyshrine/Sarot.lua b/skyshrine/Sarot.lua new file mode 100644 index 0000000..4b6fab3 --- /dev/null +++ b/skyshrine/Sarot.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Leave me be. I am trying to concentrate, " .. e.other:Race() .. "."); + end +end diff --git a/skyshrine/Sentry_Drahs.lua b/skyshrine/Sentry_Drahs.lua new file mode 100644 index 0000000..d9e9b51 --- /dev/null +++ b/skyshrine/Sentry_Drahs.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I would be careful wandering the maze. Many have gotten lost and never come out the other end."); + end +end diff --git a/skyshrine/Sentry_Dumtew.lua b/skyshrine/Sentry_Dumtew.lua new file mode 100644 index 0000000..ef25f63 --- /dev/null +++ b/skyshrine/Sentry_Dumtew.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Lord Yelinak created us to serve and protect the Kin."); + end +end diff --git a/skyshrine/Sentry_Emil.lua b/skyshrine/Sentry_Emil.lua new file mode 100644 index 0000000..13c91dc --- /dev/null +++ b/skyshrine/Sentry_Emil.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ah, hello, you must be the strangers that call yourselves friend to the Kin. Perhaps you would be interested in proving your worth?"); + elseif(e.message:findi("interest")) then + e.self:Say("Good, then perhaps you wouldn't mind performing a small task then? With the betrayal of Kragen Morshire, the kin retreated from the Skyshrine and have taken up residence in the Tunare Court. Before I was called to guard the gate, I had been assigned to deliver a report to them. If you indeed wish to be friend to the kin, take this report to the Wakening. Eysa Florawhisper. She will give you a token indicating that she has received the message, return this to me and we may see a reward."); + e.other:SummonCursorItem(29067); -- Item: Note to Tunares Court + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29623}, 0)) then + e.self:Say("Your service is appreciated, " .. e.other:GetCleanName() .. ". I cannot reward you well at this point but you have come closer to the kin, the citizens of Skyshrine. Continue to prove your loyalty and greater rewards you may see, perhaps the greatest of all.. in time. I must go now and report this to my superiors. Farewell."); + e.other:Faction(e.self,430,1); --CoV + e.other:Faction(e.self,436,1); -- Yelinak + e.other:Faction(e.self,448,-1); -- Kromzek + e.other:QuestReward(e.self,7,7,8,0,0,1000); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/skyshrine/Sentry_Enots.lua b/skyshrine/Sentry_Enots.lua new file mode 100644 index 0000000..febd4a8 --- /dev/null +++ b/skyshrine/Sentry_Enots.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Halt, beyond lies the home of the Kin, servants of the mighty Yelinak. Be forewarned, those who would be enemies to the Kin, shall find themselves fodder for the cubes."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(114581)) then + eq.get_entity_list():GetMobByNpcTypeID(114581):Say("You had best speak with the herald before journeying deep into the Sky Shrine."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local helmet = item_lib.count_handed_item(e.self, e.trade, {29062}); + + if(helmet > 0) then + repeat + e.self:Say("Very good, you are on your way to proving yourself."); + e.other:Faction(e.self,430,15); --CoV + e.other:Faction(e.self,436,3); -- Yelinak + e.other:Faction(e.self,448,-7); -- Kromzek + e.other:QuestReward(e.self,0,0,0,0,0,10000); + helmet = helmet - 1; + until helmet == 0; + end + + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if(e.wp == 10) then + e.self:Say("Pardon my intrusion master, but I bring you news from the gate."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(114343)) then + eq.get_entity_list():GetMobByNpcTypeID(114343):Say("It is all right Enots, what news do you bring me?"); + e.self:Say("My lord, outsiders have arrived at our gates. They are of a race I have never seen. Kcor is with them now attempting to discern their intent."); + eq.get_entity_list():GetMobByNpcTypeID(114343):Say("That is alarming indeed, thank you for this information. Please now return to your post and watch these outsiders. Guardian Selbbep, please inform the council that I wish a meeting on this latest news."); + e.self:Say("Very well, master. My will is but to obey the Kin."); + eq.get_entity_list():GetMobByNpcTypeID(114535):Say("Yes my lord, right away."); + end + elseif(e.wp == 21) then + e.self:Say("Herald Ziglark Whisperwing wishes an audience with the outsiders; please do not keep him waiting."); + e.self:CastToNPC():StopWandering(); + end +end diff --git a/skyshrine/Sentry_Iglotn.lua b/skyshrine/Sentry_Iglotn.lua new file mode 100644 index 0000000..3b831ce --- /dev/null +++ b/skyshrine/Sentry_Iglotn.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Move along."); + end +end diff --git a/skyshrine/Sentry_Kale.lua b/skyshrine/Sentry_Kale.lua new file mode 100644 index 0000000..86aaafa --- /dev/null +++ b/skyshrine/Sentry_Kale.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Why come you to the home of the kin? Seek a home amongst the kin perhaps? Perhaps if you wish to prove yourself I may have a task for you."); + elseif(e.message:findi("prove")) then + e.self:Say("Very well, it is a minor task, but I am sure you are quite capable. Lately the food supply in the guards' galley has been dwindling. I fear that there are spiders amongst us who are pilfering our food when we do not see. I would ask of you to please seek out and eliminate these vermin for us. Bring their legs back to me and I shall reward you for your effort."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local ringrew = 0; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29080,item2 = 29080,item3 = 29080,item4 = 29080})) then + e.self:Say("Excellent work, " .. e.other:GetCleanName() .. ". Here is your payment. I will also reward you for any more you bring."); + e.other:Faction(e.self,430,5); --CoV + e.other:Faction(e.self,436,1); -- Yelinak + e.other:Faction(e.self,448,-2); -- Kromzek + if(math.random(5) == 1) then + ringrew = 29063; -- Item: Ring of the Chameleon + end + e.other:QuestReward(e.self,math.random(10),math.random(10),math.random(10),math.random(0,10),ringrew,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/skyshrine/Sentry_Kale_.lua b/skyshrine/Sentry_Kale_.lua new file mode 100644 index 0000000..9bcfc0c --- /dev/null +++ b/skyshrine/Sentry_Kale_.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ah, the strangers, I have heard word of you. Why come you to the Skyshrine? Do you wish to be of assistance to the kin? If so, I may have a task, if you are willing."); + elseif(e.message:findi("willing")) then + e.self:Say("Very well, should you complete this task you will be doing a great service to the kin. As of late our supplies of velium ore have been growing short. We need to restock this supply but our normal source has run dry for the most part. Word has come to us that the Coldain are sitting on a large source of this ore and while we have no love for these Coldain, we have arranged a deal with one of their velium miners. Deliver this note along with a payment of 50 platinum to Ungdin, in the Coldain mines. Bring the velium shipment back to me and I will see about a reward."); + e.other:SummonCursorItem(1725); -- Item: Velium Delivery Note + end +end + +function event_trade(e) + local item_lib = require("items"); + local hammerrew = 0; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29064},0)) then + e.self:Say("You have shown us yet again your loyalty to our people. Please accept this token of our gratitude. This velium is badly needed, thank you, " .. e.other:GetCleanName() .. "."); + e.other:Faction(e.self,430,5); --CoV + e.other:Faction(e.self,436,1); -- Yelinak + e.other:Faction(e.self,448,-2); -- Kromzek + if(math.random(3) == 1) then + hammerrew = 1727; -- bracer of the hammerfall + end + e.other:QuestReward(e.self,math.random(10),math.random(10),math.random(10),math.random(0,10),hammerrew,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/skyshrine/Sentry_Kaop.lua b/skyshrine/Sentry_Kaop.lua new file mode 100644 index 0000000..b41fb0d --- /dev/null +++ b/skyshrine/Sentry_Kaop.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I've seen your kind dashing about. Just watch your footing, you never know when you might slip and fall."); + end +end diff --git a/skyshrine/Sentry_Kcor.lua b/skyshrine/Sentry_Kcor.lua new file mode 100644 index 0000000..5999a7d --- /dev/null +++ b/skyshrine/Sentry_Kcor.lua @@ -0,0 +1,67 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Halt, who goes there? Hmmm. What manner of strangers are you? Let it be known that the Kin hold no love for outsiders, only those truly worthy may walk amongst the Kin."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(114566) and eq.get_entity_list():GetMobByNpcTypeID(114566):GetX() == -686 and eq.get_entity_list():GetMobByNpcTypeID(114566):GetY() == 50) then + eq.get_entity_list():GetMobByNpcTypeID(114566):Say("It was because of an outsider that the dragons were forced to flee. Outsiders must not be trusted."); + e.self:Say("Perhaps, but then again these strangers may be worthy of our trust unlike that vile Kragen Morshire, perhaps we should give them a chance to prove themselves truly worthy to walk amongst the Kin."); + eq.get_entity_list():GetMobByNpcTypeID(114566):Say("Perhaps you are right Kcor, but we will see. "); + end + elseif(e.message:findi("worthy")) then + e.self:Say("The vile giants, their hearts colder than the ice of Velious, wish to slay our kind and take the land for their own. Their warriors wear helms of the finest steel, should you slay these warriors, return their helms and your worth to the Kin shall grow."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(114566) and eq.get_entity_list():GetMobByNpcTypeID(114566):GetX() == -686 and eq.get_entity_list():GetMobByNpcTypeID(114566):GetY() == 50) then + eq.get_entity_list():GetMobByNpcTypeID(114566):Say("I must speak with the Herald, Kcor please see to the gate until I return."); + eq.get_entity_list():GetMobByNpcTypeID(114566):CastToNPC():AssignWaypoints(1); + e.self:Say("Very well, Enots, but do not be long. Lord Yelinak would have your hide should invaders arrive while you are not at your post."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local helmet = item_lib.count_handed_item(e.self, e.trade, {29062}); + local storm_toe = item_lib.count_handed_item(e.self, e.trade, {29124}); + local assignment = item_lib.count_handed_item(e.self, e.trade, {29624}); + local frost_toe = item_lib.count_handed_item(e.self, e.trade, {29125}); + + if(helmet > 0) then + -- Confirmed Live Experience reward from Lieutenant Miliven + repeat + e.self:Say("Very good, you are on your way to proving yourself."); + e.other:Faction(e.self,430,15); --CoV + e.other:Faction(e.self,436,3); -- Yelinak + e.other:Faction(e.self,448,-7); -- Kromzek + e.other:QuestReward(e.self,0,0,0,0,0,10000); + helmet = helmet - 1; + until helmet == 0; + elseif(storm_toe > 0) then + -- Confirmed Live Experience reward from Lieutenant Miliven + repeat + e.self:Say("Ahh these will go nicely with the rest of my collection. Here is a small reward for your trouble."); + e.other:Faction(e.self,430,10); --CoV + e.other:Faction(e.self,436,2); -- Yelinak + e.other:Faction(e.self,448,-5); -- Kromzek + e.other:QuestReward(e.self,math.random(10),math.random(10),math.random(10),math.random(10),0,10000); + storm_toe = storm_toe - 1; + until storm_toe == 0; + elseif(assignment > 0) then + repeat + e.self:Say("Ahhh yes! Well done " .. e.other:Race() .. ". Here is your reward. Your status with our people grows with each interloper you eradicate."); + e.other:Faction(e.self,430,5); --CoV + e.other:Faction(e.self,436,1); -- Yelinak + e.other:Faction(e.self,448,-2); -- Kromzek + e.other:QuestReward(e.self,math.random(10),math.random(10),math.random(10),math.random(5),0,5000); + assignment = assignment - 1; + until assignment == 0; + elseif(frost_toe > 0) then + repeat + e.self:Say("Ahh these will go nicely with the rest of my collection. Here is a small reward for your trouble."); + e.other:Faction(e.self,430,5); --CoV + e.other:Faction(e.self,436,1); -- Yelinak + e.other:Faction(e.self,448,-2); -- Kromzek + e.other:QuestReward(e.self,math.random(10),math.random(10),math.random(10),math.random(5),0,5000); + frost_toe = frost_toe - 1; + until frost_toe == 0; + end + + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/skyshrine/Sentry_Maof.lua b/skyshrine/Sentry_Maof.lua new file mode 100644 index 0000000..f77ae13 --- /dev/null +++ b/skyshrine/Sentry_Maof.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I'd watch out for the cubes. They've been getting hostile lately."); + end +end diff --git a/skyshrine/Sentry_Nalox.lua b/skyshrine/Sentry_Nalox.lua new file mode 100644 index 0000000..bf22004 --- /dev/null +++ b/skyshrine/Sentry_Nalox.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I have no time to talk right now. I must keep watch for hostiles."); + end +end diff --git a/skyshrine/Sentry_Rotiart.lua b/skyshrine/Sentry_Rotiart.lua new file mode 100644 index 0000000..426b558 --- /dev/null +++ b/skyshrine/Sentry_Rotiart.lua @@ -0,0 +1,11 @@ +-- Friend of the Kin + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29626}, 0)) then + eq.spawn2(114004,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/skyshrine/Sentry_Trid.lua b/skyshrine/Sentry_Trid.lua new file mode 100644 index 0000000..53190d0 --- /dev/null +++ b/skyshrine/Sentry_Trid.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Can you not see we have our duties to perform, begone."); + end +end diff --git a/skyshrine/Sentry_Wegylx.lua b/skyshrine/Sentry_Wegylx.lua new file mode 100644 index 0000000..3d6e053 --- /dev/null +++ b/skyshrine/Sentry_Wegylx.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("There is rumor that a young N`Ogard is lost in the maze. Perhaps you should go find the father and see if you can help."); + end +end diff --git a/skyshrine/Sentry_Zalgoty.lua b/skyshrine/Sentry_Zalgoty.lua new file mode 100644 index 0000000..a3e8605 --- /dev/null +++ b/skyshrine/Sentry_Zalgoty.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Don't mind the velium in next room. They are too caught up in their duty to pay attention to anything else."); + end +end diff --git a/skyshrine/Suez.lua b/skyshrine/Suez.lua new file mode 100644 index 0000000..272c834 --- /dev/null +++ b/skyshrine/Suez.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Yes? Can't you see we are busy here."); + end +end diff --git a/skyshrine/Supreme_Laochsmith_Psorin.lua b/skyshrine/Supreme_Laochsmith_Psorin.lua new file mode 100644 index 0000000..b807a6f --- /dev/null +++ b/skyshrine/Supreme_Laochsmith_Psorin.lua @@ -0,0 +1,38 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It is most unfortunate that you do not have scales to defend your fragile mortal shell, " .. e.other:Race() .. ", I can only hope that the armor we in the Shrine can provide you with will extend your life another fraction of a century. In addition to that you also might want a [special helm] to cover up that scaleless face of yours. I understand that the Mother could not grace you with all our blessings, but at least we can try to make you look half-way decent."); + elseif(e.message:findi("special helm")) then + e.self:Say("Using my obviously superior skills I can customize a plate helm from the Shrine to suit a " .. e.other:Race() .. " such as yourself. Give me your Blood Lord's Crown, Scaled Knight's Helm, Helm of Twilight, Akkirus' Crown of the Risen, Cowl of Mortality, Frostreaver's Velium Crown, Crown of the Kromzek Kings, or Crown of the Myrmidon and I shall make you a new helm that will better hide and protect your unscaled features."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31140}, 0)) then + e.self:Say("Thank you, " .. e.other:GetCleanName() .. ". Please accept this Helm as a token of our gratitude for your service to the Shrine."); + e.other:QuestReward(e.self,0,0,0,0,31528); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31119}, 0)) then + e.self:Say("Thank you, " .. e.other:GetCleanName() .. ". Please accept this Helm as a token of our gratitude for your service to the Shrine."); + e.other:QuestReward(e.self,0,0,0,0,31526); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31133}, 0)) then + e.self:Say("Thank you, " .. e.other:GetCleanName() .. ". Please accept this Helm as a token of our gratitude for your service to the Shrine."); + e.other:QuestReward(e.self,0,0,0,0,31527); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31098}, 0)) then + e.self:Say("Thank you, " .. e.other:GetCleanName() .. ". Please accept this Helm as a token of our gratitude for your service to the Shrine."); + e.other:QuestReward(e.self,0,0,0,0,31525); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31182}, 0)) then + e.self:Say("Thank you, " .. e.other:GetCleanName() .. ". Please accept this Helm as a token of our gratitude for your service to the Shrine."); + e.other:QuestReward(e.self,0,0,0,0,31529); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 26025}, 0)) then + e.self:Say("Thank you, " .. e.other:GetCleanName() .. ". Please accept this Helm as a token of our gratitude for your service to the Shrine."); + e.other:QuestReward(e.self,0,0,0,0,2612); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 25194}, 0)) then + e.self:Say("Thank you, " .. e.other:GetCleanName() .. ". Please accept this Helm as a token of our gratitude for your service to the Shrine."); + e.other:QuestReward(e.self,0,0,0,0,2611); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30507}, 0)) then + e.self:Say("Thank you, " .. e.other:GetCleanName() .. ". Please accept this Helm as a token of our gratitude for your service to the Shrine."); + e.other:QuestReward(e.self,0,0,0,0,2610); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/skyshrine/Telnaq.lua b/skyshrine/Telnaq.lua new file mode 100644 index 0000000..a19a807 --- /dev/null +++ b/skyshrine/Telnaq.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:Race() .. ", did you know Lord Yelinak has built a maze to protect the upper levels of the towers from invasion. Keep that in mind when traveling through the shrine."); + end +end diff --git a/skyshrine/Umykith_Fe-Dhar.lua b/skyshrine/Umykith_Fe-Dhar.lua new file mode 100644 index 0000000..90dc210 --- /dev/null +++ b/skyshrine/Umykith_Fe-Dhar.lua @@ -0,0 +1,44 @@ +--bard + +local quest_helper = require('velious_quest_helper'); +local SKYSHRINE_ARMOR = quest_helper.SKYSHRINE_ARMOR; + +local QUEST_ITEMS = { + quest_helper:melee_helmet(SKYSHRINE_ARMOR.Plate_Helmet, 31133), --helm + quest_helper:melee_chest(SKYSHRINE_ARMOR.Breastplate, 31134), --bp + quest_helper:melee_arms(SKYSHRINE_ARMOR.Plate_Vambraces, 31135), -- arms + quest_helper:melee_bracer(SKYSHRINE_ARMOR.Plate_Bracer, 31136), --bracer + quest_helper:melee_gloves(SKYSHRINE_ARMOR.Plate_Gauntlets, 31137), -- gloves + quest_helper:melee_legs(SKYSHRINE_ARMOR.Plate_Greaves, 31138), -- legs + quest_helper:melee_boots(SKYSHRINE_ARMOR.Plate_Boots, 31139), -- boots +} + +function event_say(e) + if(e.other:GetFaction(e.self) <= 1 ) then --Must be ally + if(e.message:findi("hail")) then + e.self:Say("Hail! What news and stories have you from the New World? Perhaps if you are a bard you can spin me stories of those lands. Oh, I forget my manners. We shall exchange talk another time. You seek something, do you not? A new outfit perhaps?"); + elseif(e.message:findi("outfit")) then + e.self:Say("Well, then I have just what you need. Now, my terms of payment are thus, you gather some things for me and in return I shall craft you the finest armor a bard has ever seen! A new outfit comprised of a helm, breastplate, armplates, bracers, gauntlets, greaves, and boots shall make you the envy of your peers, my little friend."); + elseif(e.message:findi("helm")) then + e.self:Say("A brand new shiny helm shall be yours once I have an unadorned plate helmet and three pieces of crushed coral. May the audience swoon in your presence."); + elseif(e.message:findi("breastplate")) then + e.self:Say("For the breastplate, I require an unadorned breastplate and three flawless diamonds. Nothing more, nothing less. For perfection, there is a price, insignificant one."); + elseif(e.message:findi("armplate")) then + e.self:Say("For the armplates, I need these components - unadorned plate vambraces as well as three flawed emeralds. Now go and fetch them before I change my mind."); + elseif(e.message:findi("bracer")) then + e.self:Say("A pair of bracers shall be yours upon receipt of an unadorned plate bracer and three crushed flame emeralds. May your songs never falter during a tactical retreat."); + elseif(e.message:findi("gauntlet")) then + e.self:Say("It would be a shame if your hands were to be injured wouldn't it? I shall craft some gauntlets so that your nimble digits remain intact. Bring me a pair of unadorned plate gauntlets as well as three crushed topaz."); + elseif(e.message:findi("greave")) then + e.self:Say("Some new greaves would do you some good. The pair you have now looks quite stained and worn. Fetch me a pair of unadorned plate greaves and three flawed sea sapphires."); + elseif(e.message:findi("boot")) then + e.self:Say("You wish to have a pair of boots? Then acquire these items for me. Three pieces of crushed black marble and a pair of unadorned plate boots. I tire of your prattle. Go away now."); + end + else --Not ally + e.self:Say("You must prove your dedication to the Claws of Veeshan before I will speak to you."); + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 1, QUEST_ITEMS, quest_helper.skyshrine_armor_success) +end diff --git a/skyshrine/Ziglark_Whisperwing.lua b/skyshrine/Ziglark_Whisperwing.lua new file mode 100644 index 0000000..13bb6e7 --- /dev/null +++ b/skyshrine/Ziglark_Whisperwing.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ", I am the Herald of Lord Yelinak, the great ice dragon. I'm charged with taking care of all mundane tasks that are too trivial for the great dragon."); + elseif(e.message:findi("mundane task")) then + e.self:Say("I have many tasks. First, I must make sure all inhabitants of the Skyshrine are looked after, the cleaning cubes are keeping all things neat and orderly and also permit passage through the Skyshrine to those worthy."); + elseif(e.message:findi("passage")) then + e.self:Say("I hold the keys to all passage through the Skyshrine. Only followers of worth are allowed passage through the Skyshrine."); + elseif(e.message:findi("worth")) then + e.self:Say("You must first prove this to me before I allow you through our home. Wenglawks of Kael is an acquaintance of ours who has been feeding us information on the storm giants' movements through Velious. Lately our couriers to him have disappeared. What you must do is take this request to him along with 200 platinum as payment for the storm giants' locations and return the information to me. After you complete this task for me, we will discuss passage through the Skyshrine."); + e.other:SummonCursorItem(28600); -- Message to Wenglawks + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28601}, 0)) then + e.self:Say("Excellent, you have gotten the information back and you are still in one piece! Perhaps you could be useful to our cause. Here is the key to leave the Skyshrine. Just place it on the flaming pot of the dragon statue, near the center of the pool in the courtyard."); + e.other:QuestReward(e.self,0,0,0,0,28602,1000); -- Shrine Key + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/skyshrine/a_shambling_cube.lua b/skyshrine/a_shambling_cube.lua new file mode 100644 index 0000000..4f5fa7b --- /dev/null +++ b/skyshrine/a_shambling_cube.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("emits a low hum."); + end +end + +function event_death_complete(e) + if(e.self:GetLevel() < 43) then + eq.spawn2(114001,0,0,e.self:GetX()+5,e.self:GetY(),e.self:GetZ(),0); + eq.spawn2(114001,0,0,e.self:GetX()-5,e.self:GetY(),e.self:GetZ(),0); + else + eq.spawn2(114000,0,0,e.self:GetX()+5,e.self:GetY(),e.self:GetZ(),0); + eq.spawn2(114000,0,0,e.self:GetX()-5,e.self:GetY(),e.self:GetZ(),0); + end +end diff --git a/skyshrine/a_small_shambling_cube.lua b/skyshrine/a_small_shambling_cube.lua new file mode 100644 index 0000000..32c0f16 --- /dev/null +++ b/skyshrine/a_small_shambling_cube.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("emits a low hum."); + end +end + +function event_death_complete(e) + eq.spawn2(114001,0,0,e.self:GetX()+5,e.self:GetY(),e.self:GetZ(),0); + eq.spawn2(114001,0,0,e.self:GetX()-5,e.self:GetY(),e.self:GetZ(),0); +end diff --git a/skyshrine/player.lua b/skyshrine/player.lua new file mode 100644 index 0000000..1659a95 --- /dev/null +++ b/skyshrine/player.lua @@ -0,0 +1,31 @@ +function event_click_door(e) + local door_id = e.door:GetDoorID(); + if (door_id == 225) then + if(e.self:HasItem(28602) and not e.self:KeyRingCheck(28602)) then + e.self:KeyRingAdd(28602); + end + if( e.self:KeyRingCheck(28602) ) then + MoveGroup(e.self:GetGroup(),e.self, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 75, 894, -942, 315, 5); + end + end +end + +function MoveGroup(frozen_group, player, src_x, src_y, src_z, distance, tgt_x, tgt_y, tgt_z, tgt_h) + if ( frozen_group.valid ) then + local frozen_count = frozen_group:GroupCount(); + + for i = 0, frozen_count - 1, 1 do + local client_v = frozen_group:GetMember(i):CastToClient(); + + if (client_v.valid) then + -- check the distance and port them up if close enough + if (client_v:CalculateDistance(src_x, src_y, src_z) <= distance) then + -- port the player up + client_v:MovePC(117, tgt_x, tgt_y, tgt_z, tgt_h); + end + end + end + else + player:MovePC(117, tgt_x, tgt_y, tgt_z, tgt_h); + end +end \ No newline at end of file diff --git a/sleeper/A_wardstone.lua b/sleeper/A_wardstone.lua new file mode 100644 index 0000000..a9ba6b3 --- /dev/null +++ b/sleeper/A_wardstone.lua @@ -0,0 +1,8 @@ +function event_combat(e) + + if (e.joined) then + e.self:Say("DEPART!"); + e.self:CastSpell(863, e.other:GetID(), 0, 0); -- Spell: Telekinesis + eq.depop_with_timer(); + end +end diff --git a/sleeper/A_warning.lua b/sleeper/A_warning.lua new file mode 100644 index 0000000..9944936 --- /dev/null +++ b/sleeper/A_warning.lua @@ -0,0 +1,4 @@ +function event_combat(e) + e.self:Emote("fills your mind ``HEED THESE WORDS! This prison was made to hold the most dangerous being ever to walk the face of Norrath. The combined might of all Wurmkind was required to subdue The Sleeper, and only eternal vigilance will keep him imprisoned. If you are not here on behest of the Council, you will be destroyed unless you depart now. YOU HAVE BEEN WARNED!``"); + eq.depop_with_timer(); +end diff --git a/sleeper/encounters/Sleeper.lua b/sleeper/encounters/Sleeper.lua new file mode 100644 index 0000000..af3f161 --- /dev/null +++ b/sleeper/encounters/Sleeper.lua @@ -0,0 +1,134 @@ +local CONTROLLER_TYPE = 128134; -- StaticShoutOne +local SLEEPER_TYPE = 128094; -- #The_Sleeper +local GUARDIAN_TYPE = 114508; -- A_Guardian_of_the_Shrine in skyshrine +local WARDER_TYPES = { 128090, 128091, 128092, 128093 }; +local SIGNAL_TYPES = { 119112, 120084, 32040, 73057, 108510, 123011 }; -- nag, vox, klandicar etc +local GRID = { + -1487.00, -2149.00, -1049.80, + -1489.00, -2017.00, -990.30, + -1489.00, -1969.00, -989.80, + -1073.00, -1968.00, -989.80, + -1073.00, -2383.00, -989.80, + -613.00, -2384.00, -985.80, + -384.00, -2384.00, -917.60, + 24.00, -2384.00, -917.60, + 29.00, -2384.00, -697.80, + 382.00, -2385.00, -697.80, + 627.00, -2382.00, -704.70, + 621.00, -2338.00, -410.00, + 621.00, -2329.00, -409.80, + 624.00, -2262.00, -441.80, + 624.00, -975.00, -409.80, + 817.00, -975.00, -377.80, + 817.00, -1165.00, -345.80, + 623.00, -1165.00, -313.80, + 625.00, -973.00, -281.80, + 817.00, -974.00, -249.80, + 815.00, -1169.00, -217.80, + 620.00, -1167.00, -185.80, + 625.00, -976.00, -153.80, + 1009.00, -976.00, -121.80, + 1008.00, -1328.00, -121.80, + 1172.00, -1328.00, -121.80, + 1295.00, -1461.00, -121.80, + 1295.00, -2032.00, -89.80, + 1107.00, -2034.00, -57.80, + 1103.00, -1836.00, -25.80, + 1291.00, -1839.00, 6.20, + 1295.00, -2034.00, 38.20, + 1100.00, -2033.00, 70.20, + 1105.00, -1670.00, 106.20, + 971.00, -1626.00, 106.20, + 975.00, -1247.00, 106.20, + 1104.00, -1249.00, 106.20, + 1103.00, -977.00, 106.20, + 640.00, -975.00, 106.20, + 529.00, -977.00, 58.20, + 227.00, -976.00, 58.20, + 159.00, -976.00, 106.20, + -81.00, -975.00, 106.20, + -79.00, -618.00, 106.20, + -79.00, -978.00, 106.20, + 161.00, -975.00, 106.10, + 274.00, -975.00, 58.20, + 273.00, -928.00, 58.20, + 274.00, -810.00, 6.20, + 403.00, -483.00, 6.20, + 396.00, -19.00, 6.20, + -64.00, -12.00, 2.10, +}; + +function ControllerSignal(e) + if ( e.signal == 1 ) then + local sleeper = eq.get_entity_list():GetNPCByNPCTypeID(SLEEPER_TYPE); + if ( not sleeper.valid ) then + eq.debug("Sleeper NPC is missing; aborting"); + return; + end + local rng = math.random(33); -- 3% chance to wake + if ( rng > 1 ) then + eq.csr_notice("All warders killed and Sleeper roll failed. ("..rng..")"); + eq.debug("All warders killed and Sleeper roll failed. ("..rng..")"); + return; + end + + local kerafyrm = eq.spawn2(SLEEPER_TYPE, 0, 0, sleeper:GetX(), sleeper:GetY(), sleeper:GetZ(), sleeper:GetHeading(), "Kerafyrm"):CastToNPC(); + sleeper:Depop(); + kerafyrm:SetSpecialAbility(24, 0); -- will not aggro + kerafyrm:SetSpecialAbility(35, 0); -- no harm from players + kerafyrm:SetWalkspeed(1.0); + kerafyrm:SetRunspeed(2.5); + + kerafyrm:Shout("I AM FREE!"); + + kerafyrm:SetWanderType(6); + kerafyrm:SetPauseType(1); + kerafyrm:AddWaypoint(kerafyrm:GetX(), kerafyrm:GetY(), kerafyrm:GetZ(), -1, 0, false); + kerafyrm:AddWaypoint(kerafyrm:GetX(), kerafyrm:GetY(), kerafyrm:GetZ(), -1, 20, false); + local i = 1; + while (GRID[i]) do + kerafyrm:AddWaypoint(GRID[i], GRID[i+1], GRID[i+2], -1, 0, false); + i = i + 3; + end + + local npcList = eq.get_entity_list():GetNPCList(); + for npc in npcList.entries do + + if ( npc.valid and npc:GetPrimaryFaction() == 472 ) then -- Warders of The Claw + npc:SetNPCAggro(true); + end + end + + for _, t in ipairs(SIGNAL_TYPES) do + eq.signal(t, 1); + end + + eq.csr_notice("Sleeper awakened"); + end +end + +function WaypointArrive(e) + if ( e.wp == e.self:GetMaxWp() - 1 ) then + eq.signal(GUARDIAN_TYPE, 1); + eq.debug("Sleeper at end waypoint"); + end +end + +function WarderDeath(e) + for _, id in ipairs(WARDER_TYPES) do + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(id) ) then + return; + end + end + eq.debug("all warders slain"); + eq.signal(CONTROLLER_TYPE, 1, 25000); +end + +function event_encounter_load(e) + for _, id in ipairs(WARDER_TYPES) do + eq.register_npc_event("Sleeper", Event.death_complete, id, WarderDeath); + end + + eq.register_npc_event("Sleeper", Event.signal, CONTROLLER_TYPE, ControllerSignal); + eq.register_npc_event("Sleeper", Event.waypoint_arrive, SLEEPER_TYPE, WaypointArrive); +end diff --git a/sleeper/script_init.lua b/sleeper/script_init.lua new file mode 100644 index 0000000..10ca00d --- /dev/null +++ b/sleeper/script_init.lua @@ -0,0 +1 @@ +eq.load_encounter("Sleeper"); diff --git a/soldunga/#safetynet.lua b/soldunga/#safetynet.lua new file mode 100644 index 0000000..f7ca52c --- /dev/null +++ b/soldunga/#safetynet.lua @@ -0,0 +1,14 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + eq.set_proximity(xloc - 5, xloc + 5, yloc - 5, yloc + 5); +end + +function event_enter(e) + e.other:MovePC(31,-485,-476,73); -- Zone: butcher +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/soldunga/Marfen_Binkdirple.lua b/soldunga/Marfen_Binkdirple.lua new file mode 100644 index 0000000..e0da745 --- /dev/null +++ b/soldunga/Marfen_Binkdirple.lua @@ -0,0 +1,7 @@ +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20372})) then + e.self:Say("Ah! 'Bout time ye got yer lazy bones down here! I was beginnin' ta worry bout ya. Thought ye'd never pick the doll up. Me kin worked and toiled over this thing fer days. That Baenar was sure exact in every detail. For a special child, he said. Must be some child. He spent all he had and some he didn't. Still owes us a show! Anyway, I heard she passed away some time ago. Give the lad muh regards."); + e.other:SummonCursorItem(20370); -- Item: Mechanical Doll + end +end diff --git a/soldungb/Lord_Nagafen.lua b/soldungb/Lord_Nagafen.lua new file mode 100644 index 0000000..96c00ba --- /dev/null +++ b/soldungb/Lord_Nagafen.lua @@ -0,0 +1,65 @@ +-- Attempt to limit players level 53 and over from engaging nagafen and vox. +-- Banished to Lavastorm. +local SpawnX = 0; +local SpawnY = 0; +local SpawnZ = 0; +local SpawnH = 0; + +function event_spawn(e) + SpawnX = e.self:GetX(); + SpawnY = e.self:GetY(); + SpawnZ = e.self:GetZ(); + SpawnH = e.self:GetHeading(); + local range = 230; + eq.set_proximity(SpawnX - range, SpawnX + range, SpawnY - range, SpawnY + range); +end + +function event_enter(e) + if(e.other:GetLevel() > 52 and e.other:Admin() < 80) then + e.other:Message(4,"I will not fight you, but I shall banish you!"); + e.other:MovePC(27,534,913,55,0); -- Zone: bothunder + end +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("1",1000); --a 1 second leash timer. + else + eq.stop_timer("1"); + e.self:GMMove(SpawnX,SpawnY,SpawnZ,SpawnH); + end +end + +function event_timer(e) + if(e.timer == "1") then + if(e.self:GetX() < -1000 or e.self:GetX() > -650 or e.self:GetY() < -1500 or e.self:GetY() > -1170) then + e.self:GMMove(SpawnX,SpawnY,SpawnZ,SpawnH); + elseif(e.self:CountHateList() > 0) then + e.self:ForeachHateList( + function(ent, hate, damage, frenzy) + if(ent:IsClient()) then + ent:CastToClient():Message(4,"I will not fight you, but I shall banish you!"); + if(ent:CastToClient():GetBindZoneID() == 32) then + ent:CastToClient():SetBindPoint(27,534,913,55); + end + ent:CastToClient():MovePC(27,534,913,55,0); + end + end, + function(ent, hate, damage, frenzy) + if(ent:IsClient()) then + if(ent:CastToClient():GetLevel() > 52) then + return true; + end + end + return false; + end + ); + end + end +end + +function event_signal(e) + if ( e.signal == 1 ) then + e.self:Shout("Ha! The Ring and Claws are doomed! The Sleeper has been awakened, what a glorious day! Lady Vox, I will see you soon, our long delayed nuptials can now proceed!"); + end +end diff --git a/soldungb/Targin_the_Rock.lua b/soldungb/Targin_the_Rock.lua new file mode 100644 index 0000000..885518e --- /dev/null +++ b/soldungb/Targin_the_Rock.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("You have much to learn.' and 'Your actions and history are a personal affront to all I stand for."); + end +end + +function event_attack(e) + e.self:Say("You have much to learn.' and 'Your actions and history are a personal affront to all I stand for."); +end + +--END of FILE Zone:soldungb ID:4900 -- Targin_the_Rock +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/soldungb/Zordak_Ragefire.lua b/soldungb/Zordak_Ragefire.lua new file mode 100644 index 0000000..c2102dd --- /dev/null +++ b/soldungb/Zordak_Ragefire.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares at you with unblinking eyes. A wide grin crosses Zordak's face and flames flicker in the depths of his eyes, 'Welcome to the new fortress of the Plasmatic Priesthood! It's a shame about Lord Nagafen's untimely death, really it is! Such a powerful and noble creature should not perish at the hands of mortals.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28054})) then -- Shimmering Pearl + e.self:Emote("is engulfed by a shimmering blue light! An inhuman expression of rage crosses his face and flames leap in his eyes as he begins to vanish in the shimmering light! 'The Triumvirate may have succeeded in sending me back to my cursed homeland for the time being! I swear to you I shall return from Skyfire and destroy all of the Triumvirate Missionaries in flames!'"); + e.other:QuestReward(e.self,{items = {28059,17175}}); --28059 Swirling Pearl, 17175 Zordak's Box of Bindings + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- End of File, Zone:soldungb NPC:32038 -- Zordak_Ragefire \ No newline at end of file diff --git a/solrotower/#Rizlona.lua b/solrotower/#Rizlona.lua new file mode 100644 index 0000000..7ceb7a7 --- /dev/null +++ b/solrotower/#Rizlona.lua @@ -0,0 +1,37 @@ +function event_death_complete(e) + eq.spawn2(212413, 0, 0, -980, 2717, -908, 0); -- a_flaming_cauldron + eq.spawn2(212418, 0, 0, -1087, 2022, -902, 128); -- a_warder_of_Rizonla + eq.spawn2(212418, 0, 0, -1118, 2022, -902, 128); + eq.spawn2(212418, 0, 0, -1102, 1975, -914, 128); +end + +function event_spawn(e) + eq.set_timer("depop", 3600000); +end + +function event_timer(e) + + if ( e.timer == "bounds" ) then + + if ( e.self:GetY() < 2047 or e.self:GetY() > 2538 ) then + + e.self:GMMove(-1103, 2384, -905, 128); + e.self:SetGuardSpot(-1103, 2384, -905, 128); + e.self:WipeHateList(); + e.self:CastSpell(2830, e.self:GetID()); -- Annul Self + end + + elseif ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + eq.set_timer("bounds", 6000); + else + eq.resume_timer("depop"); + eq.stop_timer("bounds"); + end +end diff --git a/solrotower/A_Planar_Projection.lua b/solrotower/A_Planar_Projection.lua new file mode 100644 index 0000000..7f76d98 --- /dev/null +++ b/solrotower/A_Planar_Projection.lua @@ -0,0 +1,86 @@ +local FLAG_LIMIT = 72; + +local flags = 0; +local rid, gid, cid; + +function ClientCanFlag(mob) + if ( mob:IsClient() ) then + local client = mob:CastToClient(); + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( rid and raid.valid and raid:GetID() == rid ) then + return true; + elseif ( gid and group.valid and group:GetID() == gid ) then + return true; + elseif ( cid and client:GetID() == cid ) then + return true; + end + end + return false; +end + +function event_signal(e) + rid, gid, cid = nil, nil, nil; + local client = eq.get_entity_list():GetClientByID(e.signal); -- the signal # is the entity ID of a client with kill credit + + if ( client.valid ) then + + local raid = client:GetRaid(); + local group = client:GetGroup(); + + if ( raid.valid ) then + rid = raid:GetID(); + elseif ( group.valid ) then + gid = group:GetID(); + else + cid = client:GetID(); + end + eq.debug("Flagger NPC will acknowledge "..client:GetName().."'s raid/group; Raid ID == "..(rid or "(nil)").."; Group ID == "..(gid or "(nil)"), 1); + end +end + +function event_spawn(e) + flags = 0; + eq.set_timer("depop", 600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_say(e) + local qglobals = eq.get_qglobals(e.other); + + if ( ClientCanFlag(e.other) ) then + + -- this will need to be removed if the 85/15 thing gets implemented + if ( not qglobals.sol_room or qglobals.sol_room ~= "11111" ) then + return; + end + + if ( e.message:findi("hail") and flags < FLAG_LIMIT and (not qglobals.pofire or qglobals.pofire ~= "2") ) then + + if ( qglobals.pofire and qglobals.pofire == "1" and qglobals.zeks and qglobals.zeks == "7" ) then + + e.other:Message(0, "Miak the Searedsoul's thoughts enter into your own. 'That is it! The portal into the Plane of Fire lies within the Lava Well of Ro. You must now fall into this well to gain access into that plane. I will make adjustments to the Plane of Tranquility portal so that you can access that Element from here as well.'"); + eq.set_global("pofire", "2", 5, "F"); + e.other:Message(15, "You have received a character flag!"); + flags = flags + 1; + + if ( qglobals.cl_solusek ) then + eq.delete_global("cl_solusek"); + end + + elseif ( not qglobals.cl_solusek ) then + e.other:Message(0, "The Planar Projection flickers in and out of existence. It seems to be impressed by the defeat of Solusek Ro."); + eq.set_global("cl_solusek", "1", 5, "F"); + e.other:Message(15, "You have received a new checklist flag!"); + flags = flags + 1; + end + end + end +end diff --git a/solrotower/Arlyxir.lua b/solrotower/Arlyxir.lua new file mode 100644 index 0000000..3bb753d --- /dev/null +++ b/solrotower/Arlyxir.lua @@ -0,0 +1,33 @@ +function event_death_complete(e) + eq.spawn2(212411, 0, 0, 1607, 1891, 627, 0); -- a_flaming_cauldron + eq.spawn2(212416, 0, 0, 1726, 1165, 624, 128); -- a_warder_of_Arlyxir + eq.spawn2(212416, 0, 0, 1713, 1207, 633, 128); + eq.spawn2(212416, 0, 0, 1738, 1207, 633, 128); +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("bounds", 6000); + eq.set_timer("heal", 750000); + else + eq.stop_timer("bounds"); + eq.stop_timer("heal"); + end +end + +function event_timer(e) + + if ( e.timer == "bounds" ) then + + if ( e.self:GetY() < 1230 ) then + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + e.self:WipeHateList(); + e.self:CastSpell(2830, e.self:GetID()); -- Annul Self + end + + elseif ( e.timer == "heal" ) then + e.self:Emote("is immolated in flames, and is reborn!"); + e.self:Heal(); + e.self:CastSpell(1281, e.self:GetTarget():GetID()); -- Searing Flames + end +end diff --git a/solrotower/Galremos.lua b/solrotower/Galremos.lua new file mode 100644 index 0000000..c1d791c --- /dev/null +++ b/solrotower/Galremos.lua @@ -0,0 +1,39 @@ +function SpawnMagmite(x, y, z, num) + for i = 1, num do + eq.spawn2(212397, 0, 0, x, y, z, 0); -- a_magmite + end +end + +function event_spawn(e) + eq.set_next_hp_event(90); +end + +function event_hp(e) + + e.self:Emote("begins to break into smaller pieces!"); + + if (e.hp_event == 90) then + e.self:ChangeSize(25); + SpawnMagmite(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 1); + eq.set_next_hp_event(60); + + elseif (e.hp_event == 60) then + e.self:ChangeSize(20); + SpawnMagmite(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 2); + eq.set_next_hp_event(35); + + elseif (e.hp_event == 35) then + e.self:ChangeSize(15); + SpawnMagmite(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 1); + eq.set_next_hp_event(20); + + elseif (e.hp_event == 20) then + e.self:ChangeSize(10); + SpawnMagmite(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 4); + eq.set_next_hp_event(5); + + elseif (e.hp_event == 5) then + e.self:ChangeSize(6); + SpawnMagmite(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 6); + end +end diff --git a/solrotower/Guardian_of_Dresolik.lua b/solrotower/Guardian_of_Dresolik.lua new file mode 100644 index 0000000..4735459 --- /dev/null +++ b/solrotower/Guardian_of_Dresolik.lua @@ -0,0 +1,36 @@ +local GUARDIAN_SPAWNIDS = { 367793, 367794, 367795, 367796 }; + +function event_spawn(e) + local elist = eq.get_entity_list(); + for _, id in ipairs(GUARDIAN_SPAWNIDS) do + elist:GetSpawnByID(id):SetTimer(1); + end +end + +function event_death_complete(e) + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(212046) ) then -- Guardian_of_Dresolik + eq.unique_spawn(212408, 0, 0, 606, 1584, -152, 64); -- The_Protector_of_Dresolik + end +end + +function event_timer(e) + + if ( e.timer == "bounds" ) then + + if ( e.self:GetX() > 978 or e.self:GetX() < 558 ) then + + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + e.self:WipeHateList(); + e.self:CastSpell(2830, e.self:GetID()); -- Annul Self + end + + end +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("bounds", 6000); + else + eq.stop_timer("bounds"); + end +end diff --git a/solrotower/Jiva.lua b/solrotower/Jiva.lua new file mode 100644 index 0000000..be7fd42 --- /dev/null +++ b/solrotower/Jiva.lua @@ -0,0 +1,50 @@ +local TYPES = { 212404, 212399, 212403, 212406, 212405, 212400, 212401, 212402 }; +local LOCS = { + { -2255, -338, -1089.787 }, + { -2304, -312, -1097 }, + { -2328, -263, -1089.62 }, + { -2302, -214, -1089.574 }, + { -2255, -192, -1089.62 }, + { -2206, -216, -1097 }, + { -2183, -264, -1089.703 }, + { -2204, -314, -1090.085 }, +}; +local SAYS = { + "Makin, come to my aid!", + "Adeel, I require your assistance!", + "Jiri, lend me your help!", + "Seif, to my side!", + "Nabil, come to my aid!", + "Aydin, your knowledge of the arcane is needed!", + "Cemal, enchanted ones, I need your help!", + "Fahim, your control over the elements is needed!", +}; + +local add = 0; + +function event_death_complete(e) + eq.spawn2(212412, 0, 0, -2126, 105, -1100, 0); -- a_flaming_cauldron + eq.spawn2(212417, 0, 0, -2211, -790, -1094, 128); -- a_warder_of_Jiva + eq.spawn2(212417, 0, 0, -2255, -790, -1094, 128); + eq.spawn2(212417, 0, 0, -2301, -790, -1094, 128); +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("adds", 45000); + add = 0; + else + eq.stop_timer("adds"); + end +end + +function event_timer(e) + if ( e.timer == "adds" ) then + add = add + 1; + if ( add > #TYPES ) then + add = 1; + end + eq.spawn2(TYPES[add], 0, 0, LOCS[add][1], LOCS[add][2], LOCS[add][3], 0); + e.self:Say(SAYS[add]); + end +end diff --git a/solrotower/Rizlona.lua b/solrotower/Rizlona.lua new file mode 100644 index 0000000..bf12c87 --- /dev/null +++ b/solrotower/Rizlona.lua @@ -0,0 +1,23 @@ +function event_death_complete(e) + eq.spawn2(212407, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); -- #Rizlona +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("bounds", 6000); + else + eq.stop_timer("bounds"); + end +end + +function event_timer(e) + + if ( e.timer == "bounds" ) then + + if ( e.self:GetY() < 2047 or e.self:GetY() > 2538 ) then + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + e.self:WipeHateList(); + e.self:CastSpell(2830, e.self:GetID()); -- Annul Self + end + end +end diff --git a/solrotower/Solusek_Ro.lua b/solrotower/Solusek_Ro.lua new file mode 100644 index 0000000..c4a1757 --- /dev/null +++ b/solrotower/Solusek_Ro.lua @@ -0,0 +1,31 @@ +function event_combat(e) + if ( e.joined ) then + eq.set_timer("anti_cheat", 30000); + else + eq.stop_timer("anti_cheat"); + end +end + +function event_timer(e) + + if ( e.timer == "anti_cheat" ) then + + if ( e.self:GetZ() < 240 and e.self:GetHPRatio() < 50 ) then + + local npcList = eq.get_entity_list():GetNPCList(); + for npc in npcList.entries do + + if ( npc.valid and npc:GetNPCTypeID() == 212041 and not npc:IsEngaged() ) then -- Guardian_of_Fire + npc:GMMove(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + end + end + e.self:HealDamage(100000); + end + end +end + +function event_death_complete(e) + eq.spawn2(212420, 0, 0, 0, -815, 244, 128); + eq.signal(212420, e.killer:GetID()); -- e.killer for death_complete is somebody with kill rights, not death blow + eq.csr_notice(string.format("SolRoTower Solusek Ro slain by %s's raid <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end diff --git a/solrotower/The_Protector_of_Dresolik.lua b/solrotower/The_Protector_of_Dresolik.lua new file mode 100644 index 0000000..82be264 --- /dev/null +++ b/solrotower/The_Protector_of_Dresolik.lua @@ -0,0 +1,36 @@ +function event_death_complete(e) + eq.spawn2(212414, 0, 0, 166, 1449, -68, 0); -- a_flaming_cauldron + eq.spawn2(212419, 0, 0, 976, 1918, -158, 64); -- a_warder_of_Dresolik + eq.spawn2(212419, 0, 0, 1007, 1982, -158, 0); + eq.spawn2(212419, 0, 0, 1041, 1918, -158, 192); +end + +function event_spawn(e) + eq.set_timer("depop", 3600000); +end + +function event_timer(e) + + if ( e.timer == "bounds" ) then + + if ( e.self:GetX() > 978 or e.self:GetX() < 558 ) then + + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + e.self:WipeHateList(); + e.self:CastSpell(2830, e.self:GetID()); -- Annul Self + end + + elseif ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + eq.set_timer("bounds", 6000); + else + eq.resume_timer("depop"); + eq.stop_timer("bounds"); + end +end diff --git a/solrotower/Xuzl.lua b/solrotower/Xuzl.lua new file mode 100644 index 0000000..557f128 --- /dev/null +++ b/solrotower/Xuzl.lua @@ -0,0 +1,27 @@ +function event_death_complete(e) + eq.spawn2(212410, 0, 0, 1780, -336, 339, 0); -- a_flaming_cauldron + eq.spawn2(212415, 0, 0, 1837, -1040, 297, 128); -- a_warder_of_Xuzl + eq.spawn2(212415, 0, 0, 1880, -1091, 297, 192) + eq.spawn2(212415, 0, 0, 1800, -1091, 297, 64); +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("bounds", 6000); + else + eq.stop_timer("bounds"); + end +end + +function event_timer(e) + + if ( e.timer == "bounds" ) then + + if ( e.self:GetY() < -914 ) then + e.self:Emote("bellows in a deep voice, 'You shall not distract me from my conjurings!'"); + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + e.self:WipeHateList(); + e.self:CastSpell(2830, e.self:GetID()); -- Annul Self + end + end +end diff --git a/solrotower/a_flaming_cauldron.lua b/solrotower/a_flaming_cauldron.lua new file mode 100644 index 0000000..e73c87d --- /dev/null +++ b/solrotower/a_flaming_cauldron.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 1800000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/solrotower/a_focus_of_Sol.lua b/solrotower/a_focus_of_Sol.lua new file mode 100644 index 0000000..80cda0b --- /dev/null +++ b/solrotower/a_focus_of_Sol.lua @@ -0,0 +1,7 @@ +-- anti-cheat: these should not be able to enter Solusek Ro's chamber +function event_combat(e) + if ( e.self:GetZ() > 240 and e.self:Charmed() ) then + e.self:BuffFadeByEffect(22); + e.self:ModifyNPCStat("mr", "200"); + end +end diff --git a/solrotower/a_warder_of_Arlyxir.lua b/solrotower/a_warder_of_Arlyxir.lua new file mode 100644 index 0000000..5652e5d --- /dev/null +++ b/solrotower/a_warder_of_Arlyxir.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 3600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/solrotower/a_warder_of_Dresolik.lua b/solrotower/a_warder_of_Dresolik.lua new file mode 100644 index 0000000..5652e5d --- /dev/null +++ b/solrotower/a_warder_of_Dresolik.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 3600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/solrotower/a_warder_of_Jiva.lua b/solrotower/a_warder_of_Jiva.lua new file mode 100644 index 0000000..5652e5d --- /dev/null +++ b/solrotower/a_warder_of_Jiva.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 3600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/solrotower/a_warder_of_Rizlona.lua b/solrotower/a_warder_of_Rizlona.lua new file mode 100644 index 0000000..5652e5d --- /dev/null +++ b/solrotower/a_warder_of_Rizlona.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 3600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/solrotower/a_warder_of_Xuzl.lua b/solrotower/a_warder_of_Xuzl.lua new file mode 100644 index 0000000..5652e5d --- /dev/null +++ b/solrotower/a_warder_of_Xuzl.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop", 3600000); +end + +function event_timer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function event_combat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end diff --git a/solrotower/encounters/JivaAdds.lua b/solrotower/encounters/JivaAdds.lua new file mode 100644 index 0000000..68b6ad5 --- /dev/null +++ b/solrotower/encounters/JivaAdds.lua @@ -0,0 +1,31 @@ +-- depop timers for Jiva add spawns. We really, really need a database field for this instead of scripting this 1000 times + +local TYPES = { 212399, 212400, 212401, 212402, 212403, 212404, 212405, 212406 }; + +function EventSpawn(e) + eq.set_timer("depop", 600000); +end + +function EventTimer(e) + if ( e.timer == "depop" ) then + eq.depop(); + end +end + +function EventCombat(e) + if ( e.joined ) then + eq.pause_timer("depop"); + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + + for _, id in ipairs(TYPES) do + eq.register_npc_event("JivaAdds", Event.combat, id, EventCombat); + eq.register_npc_event("JivaAdds", Event.timer, id, EventTimer); + eq.register_npc_event("JivaAdds", Event.spawn, id, EventSpawn); + end + +end diff --git a/solrotower/player.lua b/solrotower/player.lua new file mode 100644 index 0000000..5ace984 --- /dev/null +++ b/solrotower/player.lua @@ -0,0 +1,106 @@ +function event_click_door(e) + local door_id = e.door:GetDoorID(); + + if ( door_id == 44 or door_id == 45 ) then + + local qglobals = eq.get_qglobals(e.self); + local pass = true; + + if ( not qglobals.sol_room or qglobals.sol_room ~= "11111" ) then + e.self:Message(0, "The lava runes scorch your skin as you run your hand across them."); + pass = false; + elseif ( not qglobals.zeks or qglobals.zeks ~= "7" ) then + e.self:Message(0, "The runes of lava begin to radiate, the knowledge of passing through slips through your mind but is lost. The lack of experience and a warring spirit prevents your passage."); + pass = false; + end + + if ( not pass ) then + e.self:Message(13, "You lack the will to pass through this portal safely."); + return; + end + + e.self:MovePC(212, 0, -847, 244, 128); + if ( e.self:GetPet().valid and not e.self:GetPet():Charmed() ) then + e.self:GetPet():GMMove(0, -847, 244, 128); + end + + elseif ( door_id == 6 ) then -- Rizlona + + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(212413) ) then + local qglobals = eq.get_qglobals(e.self); + local newGlobal = qglobals.sol_room or "00000"; + newGlobal = newGlobal:sub(1, 3).."1"..newGlobal:sub(5, 5); + eq.set_global("sol_room", newGlobal, 5, "F"); + e.self:Message(0, "As you place your hand on the burning cauldron, you feel relaxed as a short tune slips into your thoughts."); + e.self:Message(15, "You have received a character flag!"); + else + e.self:Message(0, "You become disoriented as you pass through the portal of flames."); + end + + elseif ( door_id == 7 ) then -- Arlyxir + + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(212411) ) then + local qglobals = eq.get_qglobals(e.self); + local newGlobal = qglobals.sol_room or "00000"; + newGlobal = newGlobal:sub(1, 1).."1"..newGlobal:sub(3, 5); + eq.set_global("sol_room", newGlobal, 5, "F"); + e.self:Message(0, "As you place your hand on the burning cauldron, you feel a wealth of knowledge enter your mind."); + e.self:Message(15, "You have received a character flag!"); + else + e.self:Message(0, "You become disoriented as you pass through the portal of flames."); + end + + elseif ( door_id == 10 ) then -- Dresolik + + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(212414) ) then + local qglobals = eq.get_qglobals(e.self); + local newGlobal = qglobals.sol_room or "00000"; + newGlobal = newGlobal:sub(1, 2).."1"..newGlobal:sub(4, 5); + eq.set_global("sol_room", newGlobal, 5, "F"); + e.self:Message(0, "As you place your hand on the burning cauldron, you feel a bolt of energy surge through your arm."); + e.self:Message(15, "You have received a character flag!"); + else + e.self:Message(0, "You become disoriented as you pass through the portal of flames."); + end + + elseif ( door_id == 11 ) then -- Jiva + + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(212412) ) then + local qglobals = eq.get_qglobals(e.self); + local newGlobal = qglobals.sol_room or "00000"; + newGlobal = newGlobal:sub(1, 4).."1"; + eq.set_global("sol_room", newGlobal, 5, "F"); + e.self:Message(0, "As you place your hand on the burning cauldron, you feel your body fill with strength."); + e.self:Message(15, "You have received a character flag!"); + else + e.self:Message(0, "You become disoriented as you pass through the portal of flames."); + end + + elseif ( door_id == 12 ) then -- Xuzl + + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(212410) ) then + local qglobals = eq.get_qglobals(e.self); + local newGlobal = qglobals.sol_room or "00000"; + newGlobal = "1"..newGlobal:sub(2, 5); + eq.set_global("sol_room", newGlobal, 5, "F"); + e.self:Message(0, "As you place your hand on the burning cauldron, you feel arcane wisdom pulsing in your mind."); + e.self:Message(15, "You have received a character flag!"); + else + e.self:Message(0, "You become disoriented as you pass through the portal of flames."); + end + + elseif ( door_id == 38 or door_id == 39 ) then + -- floor doors in Solusek's chamber + + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(212420) or e.self:GetGM() ) then -- A_Planar_Projection + eq.get_entity_list():GetDoorsByDoorID(38):ForceOpen(e.self); + eq.get_entity_list():GetDoorsByDoorID(39):ForceOpen(e.self); + end + end +end + +function event_zone(e) + if ( e.zone_id == 217 and e.self:HasZoneFlag(217) == false and eq.get_qglobals(e.self).pofire and eq.get_qglobals(e.self).pofire == "2" ) then + e.self:SetZoneFlag(217); + end +end diff --git a/solrotower/script_init.lua b/solrotower/script_init.lua new file mode 100644 index 0000000..fa2c3aa --- /dev/null +++ b/solrotower/script_init.lua @@ -0,0 +1 @@ +eq.load_encounter("JivaAdds"); diff --git a/soltemple/80002.lua b/soltemple/80002.lua new file mode 100644 index 0000000..29a7eb8 --- /dev/null +++ b/soltemple/80002.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("solusek ro")) then + e.self:Say("Solusek Ro is the Master of Fire and the Keeper of Power."); + elseif(e.message:findi("plasmatic priest")) then + e.self:Say("You speak of things that should not be spoken! It would be in your best interest to leave this temple at once and return to lands less consumed by flame!"); + end +end + +function event_trade(e) +local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28051})) then --Coral Statue of Tarew + e.self:Emote("shakes violently as his hand closes on the coral statue and flames dance in the depths of his eyes! The statue begins to emit a reddish glow then shatters in a burst of fire and smoke! The flames in the plasmatic priest's eyes vanish with the explosion and only madness remains! 'The Triumvirate thinks that destroying my spirit of flame will stop me?!! I will kill you all now, the goblins will continue to war, and when my spirit is restored I will ensure that Ixiblat Fer consumes all of Norrath in his flames!!'"); + eq.spawn2(80042,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/soltemple/80028.lua b/soltemple/80028.lua new file mode 100644 index 0000000..ebff1a3 --- /dev/null +++ b/soltemple/80028.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("solusek ro")) then + e.self:Say("Solusek Ro is the Master of Fire and the Keeper of Power."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/soltemple/Blaize_the_Radiant.lua b/soltemple/Blaize_the_Radiant.lua new file mode 100644 index 0000000..62bbe36 --- /dev/null +++ b/soltemple/Blaize_the_Radiant.lua @@ -0,0 +1,42 @@ +-- Cleric quests + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail, faithful one. I am Blaize the Radiant. Brother Gavel and I are well known among clerics for our forging skills, but special payment is required for our services. Special [Ingots and Icons] given to our members have been lost, and we will reward whoever retrieves them for us."); + elseif(e.message:findi("ingots and icons")) then + e.self:Say("The Ingots and Icons are all named after the virtues of the cleric who held them. The virtues I require are those of the [Reliant], the [Ardent], the [Fervent] and the [Penitent]."); + elseif(e.message:findi("reliant")) then + e.self:Say("Turgan the Reliant lived in a cabin in the Kithicor woods until there was a great fire. Searching the burned cabins there may turn something up. He always loved Lake Rathetear as well. Bring me the Ingot of the Reliant, the Icon of the Reliant, and one Enchanted Platinum Bar and I will forge them into a reward for you."); + elseif(e.message:findi("ardent")) then + e.self:Say("Theo the Ardent was in constant war with a gnome necromancer in Befallen named Babbinsbort, but he never could defeat him. Poor Theo drown on an expedition to Everfrost when the ice of the frozen river gave way underneath him. Bring me the Ingot of the Ardent, the Icon of the Ardent, and 1 Galvanized Platinum Bar and I will forge them into a reward for you."); + elseif(e.message:findi("fervent")) then + e.self:Say("Jovan the Fervent was always prone to vice. He lost his ingot in a game of Kings Court with an aviak named Gull in the Ocean of Tears. After that he became a drunkard and it has been said he lurks around the bars in Highpass Hold. Bring me the Ingot of the Fervent, the Icon of the Fervent, and 1 Vulcanized Platinum Bar and I will forge them into a reward for you."); + elseif(e.message:findi("penitent")) then + e.self:Say("Astrid the Penitent often visited the frogloks of Upper Guk. She once told me her ingot was hidden underwater there. I found that strange because she couldn't swim. She was also a good friend to the Kerrans of Kerra Ridge, where she lost her life fighting against the Erudite hereitic Maugarim. Bring me the Ingot of the Penitent, the Icon of the Penitent, and one Magnetized Platinum Bar and I will forge them into a reward for you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Impressive, do you have the rest?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19001,item2 = 19002,item3 = 16507},1,text)) then + e.self:Say("Wear this with pride!"); + e.other:QuestReward(e.self,0,0,0,0,4921,1000); -- boots of the reliant + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19007,item2 = 19008,item3 = 19049},1,text)) then + e.self:Say("Wear this with pride!"); + e.other:QuestReward(e.self,0,0,0,0,4924,1000); -- greaves of the penitent + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19003,item2 = 19004,item3 = 19047},1,text)) then + e.self:Say("Wear this with pride!"); + e.other:QuestReward(e.self,0,0,0,0,4922,1000); -- Gauntlets of the Ardent + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19005,item2 = 19006,item3 = 19048},1,text)) then + e.self:Say("Wear this with pride!"); + e.other:QuestReward(e.self,0,0,0,0,4923,1000); -- vambraces of the fervent + end +end + +-- Quest by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/soltemple/Cryssia_Stardreamer.lua b/soltemple/Cryssia_Stardreamer.lua new file mode 100644 index 0000000..1e6eac1 --- /dev/null +++ b/soltemple/Cryssia_Stardreamer.lua @@ -0,0 +1,56 @@ +-- Quests for Bard Lambent armor + +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 0) then + if(e.message:findi("hail")) then + e.self:Say("Well met " .. e.other:GetCleanName() .. ". I am Cryssia Stardreamer of the Temple of Solusek Ro, protector of a powerful armor that will aid any bard in their journey across Norrath. Are you a bard that desires this armor?"); + elseif(e.message:findi("no")) then + e.self:Say("Very well then."); + elseif(e.message:findi("yes")) then + e.self:Say("Very well. I can craft a special type of bardic armor called lambent. I can craft for you a set of [bracers], a [breastplate], a [helm], and [vambraces]. I require a special kind of lambent stone for each of my armor pieces. Find my friends Orstorm, Genni, Gardern, and Vilissia within the temple and they will help you create them."); + elseif(e.message:findi("bracers")) then + e.self:Say("Alright, I will be needing some items. Return to me with them and I will craft your bracers. I will be needing a Dark Boned Bracelet, a Griffenne Charm, and a Lambent Fire Opal."); + elseif(e.message:findi("breastplate")) then + e.self:Say("This is the most difficult piece to make. In order for me to craft it I will be needing a Basalt Carapace, a Gypsy Lute, and a Lambent Ruby. Return to me with these and I will craft your breastplate."); + elseif(e.message:findi("helm")) then + e.self:Say("In order to craft the helm, I will be needing a Mudwater Rune, an Opoline Helm, and a Lambent Star Ruby. Give these items to me and I will craft your helm"); + elseif(e.message:findi("vambraces")) then + e.self:Say("Very good, get me some Fiery Vambraces, the top portion of the Rune of the One Eye, and a Lambent Sapphire."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Wait, " .. e.other:GetCleanName() .. ", are you not forgetting something?"; + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10564, item2 = 10563, item3 = 10128}, 1, text)) then + e.self:Say("Good show, " .. e.other:GetCleanName() .. ", here is your lambent bracer"); + e.other:Faction(e.self,415,10); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,4156,1000); --bracers + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 4100, item2 = 10565, item3 = 10118}, 1, text)) then + e.self:Say("Exceptionally well done, " .. e.other:GetCleanName() .. ", here is your lambent breastplate. Wear it with pride."); + e.other:Faction(e.self,415,10); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,4154,1000); --breastplate + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10559, item2 = 4099, item3 = 10117}, 1, text)) then + e.self:Say("Well done, " .. e.other:GetCleanName() .. ", here is your lambent helm. Wear it with the praises of the League of Antonican Bards."); + e.other:Faction(e.self,415,10); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,4153,1000); --helm + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 4113, item2 = 10560, item3 = 10119}, 1, text)) then + e.self:Say("Excellent, " .. e.other:GetCleanName() .. ", you have proved yourself most resourceful. Here are your lambent vambraces."); + e.other:Faction(e.self,415,10); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,4155,1000); --vambraces + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/soltemple/Gardern.lua b/soltemple/Gardern.lua new file mode 100644 index 0000000..e067794 --- /dev/null +++ b/soltemple/Gardern.lua @@ -0,0 +1,48 @@ +-- Quest for Staff of Temperate Flux and Weeping Wand +-- Quest for Bard Lambent Sapphire + +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 0) then + if(e.message:findi("Hail")) then + e.self:Say("I am Gardern, listed among the chosen of Solusek Ro. I hold the lore to the [Staff of Temperate Flux] and the [Weeping Wand] - items coveted by my Wizardly brethren."); + elseif(e.message:findi("staff of temperate flux")) then + e.self:Say("The Staff of Temperate Flux is a boon to those who dabble in the elemental arts, for it can increase the susceptibility of a creature to both fire and cold. Are you [interested in the staff]?"); + elseif(e.message:findi("interested in the staff")) then + e.self:Say("I will craft you a Staff of Temperate Flux, but you must bring me the components which I require to make it. I will need a Heart of Fire from an Inferno Goblin Wizard in the Caverns of Solusek, a Heart of Frost from a Goblin Wizard in the Caverns of Permafrost, a Rod of Bone from a Stone Skeleton by the shores of Lake Rathe and a Staff of Ro. Bring me these items, and I will make you your staff."); + elseif(e.message:findi("weeping wand")) then + e.self:Say("The Weeping Wand is a fine item for a Wizard - it can aid as a focus for concentration, and, if needed, be used to parry as well. Are you [interested in the wand]?"); + elseif(e.message:findi("interested in the wand")) then + e.self:Say("I can make you a Weeping Wand, but you will need to bring me certain components. I will need a Silver Wand from a Silvered Guard in the Temple Cazic Thule, A Bloodblack Wand from the Mountains of Rathe, Twice-Woven Silk from a Faerie Guard in Faydark and a Scepter of Sorrow from the Tomb in Castle Mistmoore. Bring me these items and I will make for you a Weeping Wand."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Solusek Ro does not believe in half measures."; + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10548,item2 = 10549,item3 = 10550,item4 = 6048},1,text)) then + e.self:Say("Well done, " .. e.other:GetCleanName() .. " - here is the staff of Temperate Flux. Use it with the blessings of the Temple of Solusek Ro."); + e.other:Faction(e.self,415,10); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,6342,1000); -- Staff + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10551,item2 = 6338, item3 = 10557, item4 = 14364},1,text)) then + e.self:Say("Well done, " .. e.other:GetCleanName() .. ". Now I will craft your Weeping Wand, as promised."); + e.other:Faction(e.self,415,10); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,6341,1000); -- Wand + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10034,item2 = 10034,item3 = 10000},1,text)) then + e.self:Say("Here is your prize - a lambent sapphire."); + e.other:Faction(e.self,415,1); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,10119,1000); -- Lambent Sapphire + end +end + +-- Quest edited by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/soltemple/Gavel_the_Temperant.lua b/soltemple/Gavel_the_Temperant.lua new file mode 100644 index 0000000..fc17fd6 --- /dev/null +++ b/soltemple/Gavel_the_Temperant.lua @@ -0,0 +1,49 @@ +-- Cleric quests + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("May the fires of Solusek Ro warm your innards! I am Gavel the Temperant. I work with Sister Blaize to forge the most elegant finery for clerics known to man or beast. Because we have no need for material wealth here in the temple, we ask that you retrieve [ingots and icons] from the lost or fallen brothers and sisters of our order. When mixed with some enchanted, [galvanized], [vulcanized], or [magnetized] platinum into an alloy, the items I can forge are splendid indeed!"); + elseif(e.message:findi("ingots and icons")) then + e.self:Say("The ingots and icons are all named after the virtues of the cleric who held them. The virtues I require are those of the [reverent], the [constant], and the [devout]."); + elseif(e.message:findi("reverent")) then + e.self:Say("Regis the Reverent fell in love with a gypsy girl named Lianna Ferasa who lives in the Rathe Mountains. Ask her what has become of him. Bring me the ingot of the Reverent, the icon of the Reverent, and two enchanted platinum bars and I will forge them into a reward for you."); + elseif(e.message:findi("constant")) then + e.self:Say("Althuryn the Constant was brutally slain by two aqua goblins. The one called Sludge fled to Runnyeye. The one called Dwigus lives in Dagnor's Cauldron. Bring me the ingot of the Constant, the icon of the Constant, and two galvanized platinum bars and I will forge them into a reward for you."); + elseif(e.message:findi("devout")) then + e.self:Say("Nebbletob the Devout was once a slave in the mines of Meldrath. The Minotaur Sentry there was particularly cruel to him. He was in the expedition to Everfrost when Brother Theo drowned. When trying to rescue Theo, he came upon some caves under the river. He also narrowly escaped death when a great white beast attacked him. He never saw what the beast was, but it shredded his pack where he kept his icon. Bring me the ingot of the Devout, the icon of the Devout, and two vulcanized platinum bars and I will forge them into a reward for you."); + elseif(e.message:findi("sacrament")) then + e.self:Say("The Ingot and icon of Sacrament are believed to be just legend, but I sometimes dream of what I could forge with them and 2 magnetized platinum bars!"); + elseif(e.message:findi("galvanized")) then + e.self:Say("Enchanted platinum bars can be galvanized by Genni, vulcanized by Vilissia, and magnetized by Ostorm. Just give them the enchanted platinum bar and they will do the rest."); + elseif(e.message:findi("vulcanized")) then + e.self:Say("Enchanted platinum bars can be galvanized by Genni, vulcanized by Vilissia, and magnetized by Ostorm. Just give them the enchanted platinum bar and they will do the rest."); + elseif(e.message:findi("magnetized")) then + e.self:Say("Enchanted platinum bars can be galvanized by Genni, vulcanized by Vilissia, and magnetized by Ostorm. Just give them the enchanted platinum bar and they will do the rest."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Impressive, do you have the rest?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 16507, item2 = 16507, item3 = 19010, item4 = 19009},1,text)) then + e.self:Say("Wear this with pride!"); + e.other:QuestReward(e.self,0,0,0,0,4925,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19049, item2 = 19049, item3 = 19016, item4 = 19015},1,text)) then + e.self:Say("It is an honor to forge such a weapon. Wield it with pride!"); + e.other:QuestReward(e.self,0,0,0,0,6407,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19047, item2 = 19047, item3 = 19011, item4 = 19012},1,text)) then + e.self:Say("Wear this with pride!"); + e.other:QuestReward(e.self,0,0,0,0,4926,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 19048, item2 = 19048, item3 = 19013, item4 = 19014},1,text)) then + e.self:Say("Wear this with pride!"); + e.other:QuestReward(e.self,0,0,0,0,9427,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Quest edited by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/soltemple/Genni.lua b/soltemple/Genni.lua new file mode 100644 index 0000000..f263ac3 --- /dev/null +++ b/soltemple/Genni.lua @@ -0,0 +1,48 @@ +-- Quests for Bard Lambent Stones + +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 0) then + if(e.message:findi("hail")) then + e.self:Say("I am Genni of the temple of Solusek Ro. I serve as custodian of the [lambent stones]."); + elseif(e.message:findi("lambent stones")) then + e.self:Say("Lambent stones are receptacles of power. Alone they are not useful, but when combined with other gemstones they can be used for making magic items. I know of [star ruby] lambent, [ruby] lambent, [sapphire] lambent and [fire opal] lambent."); + elseif(e.message:findi("star.* lambent")) then + e.self:Say("To make a star ruby lambent stone, you must give me two star rubies and a lambent stone. Lambent stones can be found on hill giants, sand giants and griffons."); + elseif(e.message:findi("what ruby")) then + e.self:Say("My Sister Vilissia holds the secrets to making ruby lambent stones. Though she will not speak of it, if you give her two rubies and a lambent stone, she will make you ruby lambent."); + elseif(e.message:findi("sapphire")) then + e.self:Say("My Brother Gardern holds the secret to making sapphire lambent stones. Though he will not speak of it, if you give him two sapphires and a lambent stone, he will make you sapphire lambent."); + elseif(e.message:findi("fire opal")) then + e.self:Say("My Brother Ostorm holds the secret to making fire opal lambent stones. Though he will not speak of it, if you give him two fire opals and a lambent stone, he will make you fire opal lambent. If you are interested, I can [sell] you a [fire opal]."); + elseif(e.message:findi("sell")) then + e.self:Say("I will sell you a fire opal for 550 golden coins. Remember, gold! The metal of fire for a gem of fire."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Solusek Ro does not believe in half measures."; + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10032, item2 = 10032, item3 = 10000},1,text)) then + e.self:Say("Here is your prize - a lambent star ruby."); + e.other:Faction(e.self,415,1); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,10117); + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {gold = 550})) then + e.other:Faction(e.self,415,1); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,10031); + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 16507})) then + e.self:Say("I see that Gavel has sent you to me. Very well, I have galvanized your platinum bar - take it."); + e.other:QuestReward(e.self,0,0,0,0,19047); --Galvanized Platinum + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/soltemple/Joyce.lua b/soltemple/Joyce.lua new file mode 100644 index 0000000..2a91905 --- /dev/null +++ b/soltemple/Joyce.lua @@ -0,0 +1,64 @@ +-- Magician Quests + +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 0) then + if(e.message:findi("hail")) then + e.self:Say("I am Joyce of the Temple of Solusek Ro. I am the guardian of four of the items of the elementalist. If you are a magician, ask me about the [Robe of the Elements], the [Clay Bracelet], the [Earthen Boots] or the [Circlet of Mist]"); + elseif(e.message:findi("mist")) then + e.self:Say("The Circlet of Mist is a beautiful hoop that would look good atop your head. It produces a fine gleam, and is known to increase your mental power. Are you [interested in the circlet]?"); + elseif(e.message:findi("circlet")) then + e.self:Say("I will construct for you a Circlet of Mist, but I will need you to bring me the proper components. Bring me a globe of mist from a festering hag in the Estate of Unrest, a watery ring from an aqua goblin tidal lord in Dagnor's Cauldron, a ring of Evoluoy from one of the larger alligators in the Temple of Cazic-Thule and a sapphire. Bring me these components, and I will construct for you a Circlet of Mist."); + elseif(e.message:findi("clay")) then + e.self:Say("The clay bracelet is a wonderful piece of jewelry to wear on your wrist. It provides fine protection, enhances your resistance to magic, and lets you call forth a mystic eye to help you in your travels. Are you [interested in the bracelet]?"); + elseif(e.message:findi("bracelet")) then + e.self:Say("I will make you a clay bracelet, but you will need to bring me the proper components. I will need each of the four runes of clay. Three of them can be found in the Rathe Mountains, held by gnomish necromancers. The fourth one is somewhere in the Ocean of Tears, held by a goblin headmaster. Bring me these four components, and I will make you a clay bracelet."); + elseif(e.message:findi("earthen")) then + e.self:Say("Earthen Boots are a fine adornment for the feet of any Magician. They have a wonderful brown color, and are known to enhance the stamina of any Magician who wears them. As an added bonus, animals do not tend to notice those who wear Earthen Boots. Are you [interested in the boots]?"); + elseif(e.message:findi("boots")) then + e.self:Say("I will cobble you a pair of earthen boots, but you will need to bring me the proper components. I need a stone marker from a glyphed guard in Castle Mistmoore, a heart of stone from the stone skeleton near Lake Rathe, soiled boots from a froglok tonta knight in the caverns of Guk and a cat's eye agate. Bring me these four items, and I will cobble you a pair of earthen boots."); + elseif(e.message:findi("elements")) then + e.self:Say("The Robe of the Elements is a fine cloak for a Magician. It provides protection from the elements, protection from melee attacks and aids the Magician with her focus. Are you [interested in the robe]?"); + elseif(e.message:findi("robe")) then + e.self:Say("I will make for you the Robe of the Elements, but I will be needing the proper components. I will be needing a fire goblin skin, a frost goblin skin, a Twice-Woven Cloak which can be found on Faerie Guards in the Faydark, and a scroll of elemental armor. Return to me with these items and I will craft your robe."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Solusek Ro does not believe in half measures."; + + --circlet + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10545, item2 = 10547, item3 = 10034, item4 = 10546},1,text)) then + e.self:Say("Astounding! You found all four components that I need to make the Circlet of Mist. Wasn't that ring annoying ? I always find goblins hard to deal with. Well done! Take this circlet with my complements."); + e.other:Faction(e.self,415,5); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,2358,500); + --bracelet + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10539, item2 = 10542, item3 = 10540, item4 = 10541},1,text)) then + e.self:Say("One, two, three.. all four runes of clay! I knew you looked competent. I am very impressed! Please take the Clay Bracelet that you have earned."); + e.other:Faction(e.self,415,5); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,2359,500); + --boots + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10543, item2 = 10026, item3 = 10544, item4 = 2363},1,text)) then + e.self:Say("Marker, heart, boots and gem. All four items that I need to cobble earthen boots for you. Well done! Take these boots, and may they serve you well!"); + e.other:Faction(e.self,415,5); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,2357,500); + --robe + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 2361, item2 = 2362, item3 = 15109, item4 = 2360},1,text)) then + e.self:Say("Oh, you brought me all of the components! I knew you could do it. It is my pleasure to give you a Robe of the Elements."); + e.other:Faction(e.self,415,5); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,1356,500); + end +end + +-- Quest edited by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/soltemple/Lon_the_Redeemed.lua b/soltemple/Lon_the_Redeemed.lua new file mode 100644 index 0000000..d20ad08 --- /dev/null +++ b/soltemple/Lon_the_Redeemed.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome. friend. I am one of the redeemed. I once walked the path of evil and woe. My talents were those of the House of V'ree of Neriak. I now serve the Burning Prince. Are you a [rogue in need of redemption] also?"); + elseif(e.message:findi("i am a rogue in need of redemption")) then + e.self:Say("Then so be it. Ro commands you to aid the saved one. Ortallius of the hot sands. He is in need of two gems: the gem of stamina, also known as the gem of passion, and the gem of righteousness. I once owned these gems in my former life. They rest with my old friend, [Conium Darkblade]. Take this note to him and he shall give you the gems which you will then take to Ortallius. Be off."); + e.other:SummonCursorItem(18955); -- Item: a sealed note + elseif(e.message:findi("conium darkblade")) then + e.self:Say("When evil ruled my life, I hid in the shadows with a fellow thief. This dwarf's name was Conium Darkblade. He was a genius when it came to poisons. I believe he now taints this world with his evil toxins. No doubt he hides near his homeland."); + end +end + +--END of FILE Zone:soltemple ID:3307 -- Lon_the_Redeemed +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/soltemple/Lord_Lyfyx_of_Burwood.lua b/soltemple/Lord_Lyfyx_of_Burwood.lua new file mode 100644 index 0000000..cf866d3 --- /dev/null +++ b/soltemple/Lord_Lyfyx_of_Burwood.lua @@ -0,0 +1,36 @@ +--Zone: Soltemple NPC: Lord_Lyfyx_of_Burwood (80038) +--Qadar + +function event_say(e) + if(e.message:findi("hail")) then + e.self:DoAnim(24); + e.self:Emote("bows as a courtesy. His face gleams as if tinged with red. 'Greetings, my friend. Welcome to the Temple of Ro, sanctuary to those who follow the words of the Burning Prince.' "); + elseif(e.message:findi("scale")) then + if(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("Tektite and peridot shall get you what you desire."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("xyfyl")) then + e.self:Say("So you can pronounce my name backwards.. Is that your lot in life? Pronouncing names backwards? Be gone with your silliness! We need no court fool."); + elseif(e.message:findi("burning prince") or e.message:findi("temple of ro")) then + e.self:Emote("closes his eyes and shakes his head in sorrow. 'Far away and better forgotten.' "); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10028, item2 = 12831})) then + e.self:Emote("places the gems inside an ornate metal box. He begins to tug at his skin. Your vision blurs as he performs his magic. 'This is what you seek. Now leave and bother me no further.' "); + e.other:Faction(e.self,415,5); -- Temple of Solusek Ro better + e.other:Faction(e.self,416,-1); -- Shadow Men worse + e.other:QuestReward(e.self,0,0,0,0,12952,50000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/soltemple/Lord_Searfire.lua b/soltemple/Lord_Searfire.lua new file mode 100644 index 0000000..4b7200c --- /dev/null +++ b/soltemple/Lord_Searfire.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings! May the glory of Solusek Ro burn in your veins. I am the forge master of this temple. Called to service by the Burning Prince. Should you ever need my service and find me gone. have no fear. I shall return. I must occasionally venture to other realms in service of the temple. I shall always return. this is my eternal home."); + elseif(e.message:findi("ronium")) then + e.self:Say("You seek ronium. It is a fine blend of metals. I alone hold the secret of its formula. I, and I alone, can offer it to those who serve this temple. Do you wish a [bar of the alloy]?"); + elseif(e.message:findi("armor.* ro")) then + e.self:Say("So you wish to know more of the Armor of Ro? We have kept it's secret for a long time. It can only be worn by paladins of high esteem. They must be crafted by the one who wears it. Ro wishes his mighty paladins to also be adept in blacksmithing. They may take to the forge, a mold of the Ro Armor and a bar of the alloy [Ronium]. Then you may forge the armor of Ro."); + elseif(e.message:findi("bar of the alloy")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- must be amiable or better + e.self:Say("Take this Sol Cauldron. Within it shall be combined elements of this world. You will add to it, melatite, two bars of enchanted platinum, Mistmoore granite, the sands of Ro and soil of Underfoot. If you be a master blacksmith, the elements shall combine to make the enchanted metal I have named 'ronium.'"); + e.other:SummonCursorItem(17977); -- Sol Cauldron -- 6-slot container + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("There is much service to Ro which you must perform. I cannot trust you until you have proven your worth to us. Seek service within this temple or join the crusade within the desert of Ro."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look, a talking lump of refuse. How novel!")); + end + end +end diff --git a/soltemple/Ostorm.lua b/soltemple/Ostorm.lua new file mode 100644 index 0000000..afa618d --- /dev/null +++ b/soltemple/Ostorm.lua @@ -0,0 +1,58 @@ +-- Quest for respecialization +-- Quest for Bard Lambent Fire Opal + +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 0) then + if(e.message:findi("hail")) then + e.self:Say("I am Ostorm of the Temple of Solusek Ro, guardian of the sacred crystal of Kintaz. Be wary and keep your distance, lest the proximity of the crystal [steal] your [memories]."); + elseif(e.message:findi("steal")) then + e.self:Say("It is the nature of the crystal of Kintaz to steal the memories of those around it. Only I am safe, and then only because of the strong wardings placed on me by Solusek Ro himself. Are you interested in [losing] any [memories]?"); + elseif(e.message:findi("losing")) then + e.self:Say("Recently, I have been experimenting with the crystal, and have found that those exposed to ruby light filtered through it tend to lose the memories of their most specialized arcane skills. Are you sure you want to [lose advanced memory] of specialization?"); + elseif(e.message:findi("advanced")) then + e.self:Say("Be warned that once exposed to the crystal, I can not reverse the effects. If you desire exposure, fetch me a ruby."); + elseif(e.message:findi("gold")) then + e.self:Say("You do not remember? You promised me fifty gold coins for allowing you to be exposed to the sacred crystal of Kintaz."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Solusek Ro does not believe in half measures."; + + if(e.other:GetFactionValue(e.self) >= 0 and (e.other:GetClass() == 2 or e.other:GetClass() == 6 or e.other:GetClass() == 10 or e.other:GetClass() == 11 or e.other:GetClass() == 12 or e.other:GetClass() == 13 or e.other:GetClass() == 14) and item_lib.check_turn_in(e.self, e.trade, {item1 = 10035})) then + e.self:Say("..hear me? Ah, you seem to be coming out of your stupor. I think you have been exposed to the crystal long enough. By the time you leave the temple, your memories should have faded. Do you have the [fifty gold] coins that you owe me?"); + e.other:Faction(e.self,415,1); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + for skill=43,47,1 do + e.other:SetSkill(skill,49); + end + e.other:Message(7, "Your specialize skills have all been set to 49."); + e.other:QuestReward(e.self,0,0,0,0,0,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {gold = 50})) then + e.self:Say("Thank you."); + e.other:Faction(e.self,415, 2); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416, -2); -- Faction: Shadowed Men + e.other:Ding(); +--Lambent Fire Opal + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10031, item2 = 10031, item3 = 10000},1,text)) then + e.self:Say("Here is your prize - a lambent fire opal."); + e.other:Faction(e.self,415, 1); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416, -1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,10128,1000); +--magnetized platinum + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 16507})) then + e.self:Say("I see that Gavel has sent you to me. Very well, I have magnetized your platinum bar - take it."); + e.other:QuestReward(e.self,0,0,0,0,19049); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Quest by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/soltemple/Romar_Sunto.lua b/soltemple/Romar_Sunto.lua new file mode 100644 index 0000000..9208c23 --- /dev/null +++ b/soltemple/Romar_Sunto.lua @@ -0,0 +1,44 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 0) then + if(e.message:findi("hail")) then + e.self:Say("I am Romar Sunto, servant of Solusek Ro. I am searching for the [coin] of the mighty enchanter [Tash] - if you are interested in helping me acquire it, I will [reward] you with a powerful spell. I am also a dispenser of the Staff of Ro, sometimes also called [darkwood staves]."); + elseif(e.message:findi("darkwood staves")) then + e.self:Say("Bring me a lambent stone from a hill giant, a sand giant or a griffon and I will give you a darkwood staff."); + elseif(e.message:findi("tash")) then + e.self:Say("Tash was a mighty enchanter and a master jewelcrafter."); + elseif(e.message:findi("reward")) then + e.self:Say("'I will reward you with a scroll for the spell Tashania. For personal use, of course."); + elseif(e.message:findi("coin pouch")) then + e.self:Say("I will gladly lend you this coin pouch - put all 10 antique silver coins into it and combine them into the Coin of Tash."); + e.other:SummonCursorItem(17511); -- A coin pouch - to combine the coins in + elseif(e.message:findi("coin")) then + e.self:Say("Tash had a collection of ten antique silver coins that were left in different cities around the world. If you were to collect all 10 coins, I would give you a [coin pouch] that would let you combine them into the master coin of Tash. If you are interested, I will sell you a copy of the Tome of Tash, detailing where the coins were reportedly left, for a mere 50 gold."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10000})) then + e.self:Say("A stone for a staff - very well."); + e.other:Faction(e.self,415,1,0); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1,0); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,6048,1000); -- Darkwood Staff + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10793})) then -- Radiant Coin of Tash + e.self:Say("The Coin of Tash - fully enchanted! I am in your debt. Here is the scroll of Tashania that was promised to you."); + e.other:QuestReward(e.self,0,0,0,0,15678,20000); -- Spell: Tashania + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10790})) then -- Coin of Tash + e.self:Say("The Coin of Tash. It is of no use to me like this. You must take the coin to Tarn Visilin in High Keep to get it enchanted."); + e.other:QuestReward(e.self,{itemid = 10790}); -- Coin of Tash + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {gold = 50})) then -- 50 gold + e.other:Say("Once you combine the coins within the pouch, you must take the Coin of Tash to Tarn Vislin in the HighKeep library to get it enchanted. Give him the coin and he will enchant it for you."); + -- confirmed live faction + e.other:Faction(e.self,415,1,0); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1,0); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,18032,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/soltemple/Solomen.lua b/soltemple/Solomen.lua new file mode 100644 index 0000000..1b408af --- /dev/null +++ b/soltemple/Solomen.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Ah, I see you have found my study. This is where I study and scribe the history of magic in Norrath."); + elseif(e.message:findi("history")) then + e.self:Say("I have worked to chronicle everything from the beginnings of magic to what we consider the modern day of magic. Solusek Ro has been very generous to those who wield magic in Norrath. But throughout history there is one thing I have noticed - too much power corrupts the soul. I have seen and documented that the strongest wizards and those closest to Solusek Ro become corrupted by their power."); + elseif(e.message:findi("wizard")) then + e.self:Say("Unfortunately, I don't have time to speak of such things right now. But I could use your help since you are here. I have here an envelope that I need delivered to one Camin. You can find him near the wizard tower in the city of Erudin. He is a sage like myself whose knowledge rivals my own. Do you [agree] to undertake my task?"); + elseif(e.message:findi("agree")) then + e.self:Say("Here you are, then. Good luck on your journey."); + e.other:SummonCursorItem(18088); -- Item: Note to Camin + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14340})) then + e.self:Say("You actually did it! I never would have thought that anyone could have truly followed this path. This is a tribute to your intelligence and patience. Here, take this staff and know that you have made Solusek Ro and all the wizards of the world proud this day."); + e.other:Faction(e.self,404, -50,0); -- Truespirit + e.other:QuestReward(e.self,0,0,0,0,14341); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/soltemple/Sultin.lua b/soltemple/Sultin.lua new file mode 100644 index 0000000..4dd3394 --- /dev/null +++ b/soltemple/Sultin.lua @@ -0,0 +1,55 @@ +-- Enchanter quests + +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 0) then + if(e.message:findi("hail")) then + e.self:Say("I am Sultin - keeper of the three [Incandescent]s of power and the [Rod] of Insidious Glamour. If you are an Enchanter, perhaps we can deal."); + elseif(e.message:findi("incandescent")) then + e.self:Say("There are three Incandescent items of power - [Wand], [Mask] and [Gloves]. Are you [interested] in any of them?"); + elseif(e.message:findi("wand")) then + e.self:Say("Ahh, the Incandescent Wand. If you will get the components to make another, I will give you mine. I will need a Pouch of Silver Dust, found on the dusty Werebat in the Estate of Unrest. I will also need a Silver wand, found on a Silvered Guard in the Temple of Cazic Thule. This wand will not be enchanted - you will need to pay Esmirella of the Northern Karana Gypsy Camp 50 gold to enchant it for you. When the Wand is fully enchanted, bring it and the pouch to me and I will give you the Incandescent Wand."); + elseif(e.message:findi("mask")) then + e.self:Say("An item of power - the Incandescent Mask. If you will bring me the components to make another, I will give you an Incandescent Mask. I will need a Glowing Mask, found on the skeletal monk in the caverns of Guk. I will also need all three Runes of Fortune. One Rune can be found on the Dark Elf Enynti in the Chasm below Castle Mistmoore. The other two can each be purchased for 50 golden coins each - one from Mizr N`Mar in the Neriak City Library and the other from Madam Serena in the city of Qeynos. Bring me all three Runes and the Glowing Mask and I will give you your reward."); + elseif(e.message:findi("gloves")) then + e.self:Say("My personal favorite - Incandescent Gloves. If you bring me the components to make another pair, I will give you my gloves. Incandescent Gloves are made by sewing together four other sets of gloves. Glowing Gloves can be found on our mortal enemies - the Shadowed Men. Radiant Gloves can be found on Radiant in the Feerrott. Enchanted and Gleaming gloves can be purchased for 50 golden coins from Tizina of the Lavastrom Gypsies and a bloodstone from Tarn Vislin of HighKeep. Bring me all four sets of gloves and I will give you a pair of Incadescent ones."); + elseif(e.message:findi("interested")) then + e.self:Say("If I am to give you this rod, you must bring me the parts to make another. I will need the Golden Rod from the froglok priest in Guk, as well as a Shining Stone from our mortal enemies, the Shadowed Men. Once you have obtained the Shining Stone, you will need to get it enchanted. Cynthia of the Rathe Mountain Gypsy Clan will enchant the Shining Stone for you - give it to her with 50 golden coins. When the Stone is fully enchanted, bring it and the rod to me and I will give you a Rod of Insidious Glamour."); + elseif(e.message:findi("rod")) then + e.self:Say("I am keeper of the Rod of Insidious Glamour - a device of guile and deceit. The rod will increase the Charisma of whomever holds it. Are you [interested] in obtaining the [rod]?"); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Solusek Ro does not believe in half measures."; + + -- Rod of Insidious Glamour + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10087, item2 = 6337})) then + e.self:Say("Well done, adventurer. You have kept your part of the bargain, so I keep mine. Here is your rod."); + e.other:Faction(e.self,415,5); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,6329,1000); + -- Incandescent Wand + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 12240, item2 = 6340})) then + e.self:Say("I see that you are resourceful... you have earned your incandescent wand."); + e.other:Faction(e.self,415,5); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,6334,1000); + -- Incandescent Gloves + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 2353, item2 = 2354, item3 = 2355, item4 = 2356},1,text)) then + e.self:Say("Four pairs of gloves you have given me ? I will give you one pair in return. We shall see who had the better deal."); + e.other:Faction(e.self,415,5); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,2351,1000); + -- Incandescent Mask + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 2352, item2 = 10530, item3 = 10531, item4 = 10532},1,text)) then + e.self:Say("Fortune favors you .. as will this mask."); + e.other:Faction(e.self,415,5); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,2350,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/soltemple/Syllina.lua b/soltemple/Syllina.lua new file mode 100644 index 0000000..c0d267a --- /dev/null +++ b/soltemple/Syllina.lua @@ -0,0 +1,53 @@ +-- Necromancer quests + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello, I am Syllina, follower of Solusek Ro and keeper of the [Shadow Lore]."); + elseif(e.message:findi("lore")) then + e.self:Say("I hold the secrets to the Shadow Lore so highly prized by Necromancers. If you are interested, I can tell you about [ShadowBound Boots], [ShadowBound Gloves], the [Robe of Enshroudment] or the secrets to the making of [Shadow Silk]."); + elseif(e.message:findi("shadowbound boots")) then + e.self:Say("ShadowBound Boots are boots woven from purest shadow. If you are interested, I will weave you a pair - but I will need [boot components]."); + elseif(e.message:findi("boot components")) then + e.self:Say("I will need the following items to make you a pair of ShadowBound Boots: Shadow Silk, The Scepter of Sorrow from Castle Mistmoore, an Eye of Shadow from our mortal enemies the Shadowed Men and a Skeletal toe from a Rathe Giant Skeleton."); + elseif(e.message:findi("shadowbound gloves")) then + e.self:Say("ShadowBound Gloves are gloves woven from the purest shadow. If you are interested, I will weave you a pair - but I will need [glove components]."); + elseif(e.message:findi("glove components")) then + e.self:Say("I will need the following items to make you a pair of ShadowBound Gloves: Inky Shadow Silk, The Scepter of Tears from the circle-stair-waterfall of Guk, a Hand of Shadow from our mortal enemies the Shadowed Men and a Skeletal finger from a Rathe Giant Skeleton."); + elseif(e.message:findi("robe of enshroudment")) then + e.self:Say("The Robe of Enshroudment is a robe woven from the purest of shadow. If you are interested, I will weave you a robe - but I will need the following [robe components]."); + elseif(e.message:findi("robe components")) then + e.self:Say("I will need the following items to make you a Robe of Enshroudment: Large Shadow Silk, A Werebat Wing from the Estate of Unrest, A Mask of Shadow from our mortal enemies the Shadowed Men and a Globe of Shadow from a Nokta Shaman in Guk."); + elseif(e.message:findi("shadow silk")) then + e.self:Say("If you are interested, I will tell you the secrets of making Shadow Silk for a mere 50 pieces of gold."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Solusek Ro does not believe in half measures."; + + -- Shadow Silk info + if(item_lib.check_turn_in(e.self, e.trade, {gold = 50})) then + e.self:Say("You will need to give the following components to a tailor: a Shadow Wolf Pelt, a Silk Swatch and a Scroll of Gather Shadows. Have the tailor weave them together and she will make you Shadow Silk. To make large shadow silk add an extra shadow wolf pelt. To make inky shadow silk, add an extra scroll."); + e.other:Faction(e.self,415,1); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + -- Robe of Enshroudment + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 16484, item2 = 13239, item3 = 2309, item4 = 10535},1,text)) then + e.self:Say("Silk, wing, mask, globe... all of the components necessary for the making of a robe of Enshroudment. Well done. Here is your reward."); + e.other:Faction(e.self,415,5); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,1355,1000); + -- Shadowbound Gloves + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14363, item2 = 13234, item3 = 10534, item4 = 16485},1,text)) then + e.self:Say("So you have gathered all of the components for me to weave Shadowbound Gloves... Well done. You will be wanting these."); + e.other:Faction(e.self,415,5); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,3318,1000); + -- Shadowbound Boots + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 14364, item2 = 13180, item3 = 10533, item4 = 16483},1,text)) then + e.self:Say("I see that you have gathered all of the necessary components... Well done. Here are your Shadowbound Boots."); + e.other:Faction(e.self,415,5); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,3317,1000); + end +end diff --git a/soltemple/Tazgar.lua b/soltemple/Tazgar.lua new file mode 100644 index 0000000..4205c14 --- /dev/null +++ b/soltemple/Tazgar.lua @@ -0,0 +1,8 @@ +function event_say(e) + if(e.message:findi("hail")) then + -- confirmed live faction + e.other:Faction(e.self,415,-50,0); -- Faction: Temple of Sol Ro + elseif(e.message:findi("solusek ro")) then + e.self:Say("Solusek Ro is the Master of Fire and the Keeper of Power."); + end +end diff --git a/soltemple/Terblyn_Zelbus.lua b/soltemple/Terblyn_Zelbus.lua new file mode 100644 index 0000000..20b9c3a --- /dev/null +++ b/soltemple/Terblyn_Zelbus.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. " .. e.other:GetCleanName() .. ". I am the wizard known as Terblyn Zelbus. I became a merchant after I couldn't handle the pressures of being one of [Al'Kabor]'s assistants. He's an old fogey. but don't tell him I said that. I don't think he likes short people very much."); + elseif(e.message:findi("who is al")) then + e.self:Say("Master Al'Kabor is the most powerful living wizards on Norrath. His powers are rather scary to be around. When I was one of his assistants. he would often try out his new spells and experiments on me. Some of them left me not feeling so well. I must say. though. I don't think I suffered as much as poor [Sorko Talvazon] did."); + elseif(e.message:findi("sorko talvazon")) then + e.self:Say("Sorko Talvazon was one of the master's assistants for a long time. He did a fine job . . . At least that's what I thought. So what if he decided to sell me information? The old man can't keep all those [nifty secrets] to himself forever."); + elseif(e.message:findi("nifty secrets")) then + e.self:Say("Hehe.. Well. if I told you that. then they wouldn't be secrets anymore. now would they? Hehe.. okay. okay. you win. I will tell you part of one. Awhile ago. Sorko Talvazon brought some spell scrolls to me at the request of the master himself. He wanted the younger wizards of Norrath to experiment with the effects of the spells. That was when Sorko first informed me of other spells that Al'Kabor created back in his laboratory hidden away in Erudin. It seems to me that he was quite [selfish] about them."); + elseif(e.message:findi("selfish")) then + e.self:Say("Al'Kabor didn't want to distribute those spells for some reason. I told Sorko that I would pay him handsomely if he would bring me the scrolls. At first Sorko was worried about betraying Al'Kabor. but after I upped the offer. he willingly accepted. He brought me five new spell scrolls along with some [vital information] about them. Over time. Sorko and I sent a few letters back and forth. Unfortunately. one of the letters got intercepted by Al'Kabor. I tried to warn Sorko. but I guess the warning was too late. Enraged. Master Al'Kabor stripped Sorko of his wizardry and banned him from his laboratory."); + elseif(e.message:findi("vital information")) then + e.self:Say("Oh no. I can't give you that information. How else would I keep the edge on profitability? What I will tell you is that Sorko gave me the formula for Al'Kabor's portal fragment enchantment process. This process is needed in order to augment the power of the fragments. If you want a sample of the enchanted fragments. you'll have to buy them from me. These small portal fragments are a vital component of the [teleportation] spells that lead to several locations."); + elseif(e.message:findi("teleportation")) then + e.self:Say("Aye. teleportation. Translocation. to be exact. Apparently. with this magic power. a wizard can send his target to a location without needing to travel there himself. I have several scrolls for sale right now. Care to buy one? I even have some that reach the [dragon circles] on the icy continent of Velious."); + elseif(e.message:findi("dragon circles")) then + e.self:Say("The dragon circles.. you know those pretty circular locations that we can gate to using a special dragon's tooth. The teeth aren't enough for the translocation spells though. I tried to duplicate Al'Kabor's research. but I wasn't able to figure out how to reach that far. The grumpy ol' wizard figured it out though. He finally determined the right incantations needed to reach the icy land. A friend of mine happened to be delivering him a message when he figured it out. I'm willing to sell the scrolls and fragments to you if you promise not to tell."); + end +end + +--END of FILE Zone:soltemple ID:6473 -- Terblyn_Zelbus +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/soltemple/Vilissia.lua b/soltemple/Vilissia.lua new file mode 100644 index 0000000..378b863 --- /dev/null +++ b/soltemple/Vilissia.lua @@ -0,0 +1,45 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 0) then + if(e.message:findi("hail")) then + e.self:Say("I am Vilissia, chosen of Solusek Ro. I am a practitioner in the wizardly arts, and keeper of lore for the [runescale cloak], [Tishan's kilt] and the [acumen mask]."); + elseif(e.message:findi("runescale cloak")) then + e.self:Say("The Runescale cloak is a wonderful item of defense for any wizard. Are you [interested] in the [cloak]?"); + elseif(e.message:findi("interested in the cloak")) then + e.self:Say("I can assemble for you a runescale cloak, but I will need you to bring me the necessary components. I will need a lizardscale cloak from the temple of Cazic-Thule and the three Runes of Scale. All three can be found on crocodiles - saltwater crocodiles in the caverns of Guk, deepwater crocodiles in the Oasis of Marr and firescale crocodiles in the mountains of Lavastorm. Bring me these items, and I will make you a runescale cloak."); + elseif(e.message:findi("acumen mask")) then + e.self:Say("The acumen mask, as its name suggests, confers to its wearer certain powers of insight and knowledge. Are you [interested] in obtaining a [mask]?"); + elseif(e.message:findi("interested in the mask")) then + e.self:Say("I can make an acumen mask for you, but you will need to bring me the proper components. I will need a glowing mask from a skeletal monk in the caverns of Guk, a patch of Shadow from our mortal enemies, the shadowed men, a darkbone Skull from a darkbone skeleton in the Estate of Unrest, and a bonechipped mask from a goblin headmaster in the Ocean of Tears. Bring me these four items, and I will make for you an acumen mask."); + elseif(e.message:findi("Tishan's kilt")) then + e.self:Say("Tishan was once counted among the mightiest of wizards, and his items are items of power. If you are interested in acquiring Tishan's kilt, you must take a shadowed ball from our mortal enemies, the shadowed men, and bring it to Trankia in the Everfrost Mountains."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Solusek Ro does not believe in half measures."; + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 2352,item2 = 2367,item3 = 2368,item4 = 10558},1,text)) then + e.self:Say("Mask, patch, skull and mask. All of the items necessary for me to make an acumen mask. Excellent. All praise Solusek Ro!"); + e.other:Faction(e.self,415,10,0); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1,0); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,2366,1000); -- Acumen Mask + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10000, item2 = 10035, item3 = 10035},1,text)) then + e.other:Say("Here is your prize - a lambent ruby."); + e.other:Faction(e.self,415,1,0); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1,0); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,10118,1000); -- Lambent Ruby + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 2332, item2 = 10553, item3 = 10554, item4 = 10555},1,text)) then + e.other:Say("You impress me, adventurer! I had not expected you to return with all of the runes. Very well, I shall keep my half of the bargain. Here is your Runescale Cloak."); + e.other:Faction(e.self,415,10,0); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1,0); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,2364,1000); -- Runescale Cloak + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 16507})) then + e.other:Say("I see that Gavel has sent you to me. Very well, I have vulcanized your platinum bar - take it."); + e.other:QuestReward(e.self,0,0,0,0,19048,1000); -- Vulcanized Platinum Bar + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/soltemple/Vira.lua b/soltemple/Vira.lua new file mode 100644 index 0000000..48087c9 --- /dev/null +++ b/soltemple/Vira.lua @@ -0,0 +1,55 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 0) then + if(e.message:findi("hail")) then + e.self:Say("I am Vira, elementalist of Solusek Ro. I guard the secrets of the tools of [elemental summoning]. If you are a magician, you might be interested."); + elseif(e.message:findi("elemental summoning")) then + e.self:Say("I hold the secets to the construction of four tools which assist magicians with the summoning of elementals. I know about the [broom of Trilon], the [shovel of Ponz], the [torch of Alna] and the [stein of Ulissa]."); + elseif(e.message:findi("shovel of Ponz")) then + e.self:Say("The shovel of Ponz was crafted by the earthen master of the same name. Are you [interested] in the [shovel]?"); + elseif(e.message:findi("I am interested in the shovel")) then + e.self:Say("I will create a replica of the shovel of Ponz for you, but I will need the following components to make it: a ruby, the eyes of a gargoyle, a shovel from a magician in Najena and the toes of a hill giant. Bring me these four components, and I will construct for you an object of elemental power."); + elseif(e.message:findi("broom of Trilon")) then + e.self:Say("The broom of Trilon was held by the infamous Mistress of Air of the same name. Are you [interested] in the [broom]?"); + elseif(e.message:findi("I am interested in the broom")) then + e.self:Say("I will construct a replica of the broom of Trilon for you, but I will need the following components to make it: a star ruby; a feather from a griffon, a broom from a magician in Najena and the toes of a cyclops. Bring me these four components, and I will fashion for you an object of elemental power."); + elseif(e.message:findi("torch of Alna")) then + e.self:Say("The torch of Alna was constructed and held by the fire mistress of the same name. Are you [interested] in the [torch]?"); + elseif(e.message:findi("I am interested in the torch")) then + e.self:Say("I will make a replica of the torch of Alna for you, but I will need the following items to make it: a fire emerald, a scale from a fire drake, a torch from a magician in Najena and the toes of a fire giant. Bring me these four components, and I will build for you an object of elemental power."); + elseif(e.message:findi("stein of Ulissa")) then + e.self:Say("The stein of Ulissa was found and used by the mistress of water of the same name. Are you [interested] in the [stein]?"); + elseif(e.message:findi("I am interested in the stein")) then + e.self:Say("I will devise a replica of the stein of Ulissa for you, but I will need the following items to make it: a sapphire, a scale from a mermaid, a stein from a magician in Najena and the toes of an ice giant. Bring me these four components, and I will make for you an object of elemental power."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Solusek Ro does not believe in half measures."; + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 16544,item2 = 16543,item3 = 16538,item4 = 10032},1,text)) then + e.self:Say("All of the components to make the infamous broom of Trilon! Well done, adventurer. As you have proven yourself worthy, I grant you this broom."); + e.other:Faction(e.self,415,5,0); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1,0); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,6360,1000); -- Broom of Trilon + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10035, item2 = 10014, item3 = 16545, item4 = 16539},1,text)) then + e.self:Say("Each of the four items needed to construct the famed Shovel of Ponz! Very well. As you have displayed ingenuity, I grant you this shovel."); + e.other:Faction(e.self,415,5,0); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1,0); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,6361,1000); -- Shovel of Ponz + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 16546, item2 = 16534, item3 = 10033, item4 = 16541},1,text)) then + e.self:Say("All of the pieces of the famous Torch of Alna! I never thought you would find them all! As you have displayed courage, I grant you this torch."); + e.other:Faction(e.self,415,5,0); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1,0); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,6362,1000); -- Torch of Alna + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 16540, item2 = 16542, item3 = 10034, item4 = 16547},1,text)) then + e.self:Say("The four components required for the stein of Ulissa?! I am impressed! As you have displayed valor, I grant you this stein."); + e.other:Faction(e.self,415,5,0); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1,0); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,6363,1000); -- Stein of Ulissa + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/soltemple/Vurgo.lua b/soltemple/Vurgo.lua new file mode 100644 index 0000000..65c57f2 --- /dev/null +++ b/soltemple/Vurgo.lua @@ -0,0 +1,45 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 0) then + if(e.message:findi("hail")) then + e.self:Say("Welcome! I am Vurgo, follower of Solusek Ro and holder of the [harvester] and the [Words of Darkness]."); + elseif(e.message:findi("harvester")) then + e.self:Say("I can forge you one, but you will need to bring me the correct [scythe components]."); + elseif(e.message:findi("scythe components")) then + e.self:Say("The first thing I need is a shadowed scythe from our mortal enemies, the shadowed men."); + elseif(e.message:findi("words of darkness")) then + e.self:Say("I can scribe for you the Words of Darkness, but you will need to bring me the correct [word components]."); + elseif(e.message:findi("word components")) then + e.self:Say("The first thing that I need is a shadowed book from our mortal enemies, the shadowed men."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Solusek Ro does not believe in half measures."; + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 5103})) then + e.self:Say("A shadowed scythe! Well done! The only good shadowed man is a banished one. As the weapons of the shadowed men have a tendency to disappear, I have given you a note to remind me that you have indeed supplied me with a scythe. Give me the note with the following items and I will forge you a harvester: a fungus eye from a mortuary fungus in the Estate of Unrest, a shadowed knife from an island goblin headmaster in the Ocean of Tears and a fire opal. Give me these items, and I will forge for you a harvester."); + e.other:Faction(e.self,415,1); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,18944,500); -- a note(VurgoHarv) + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10529})) then + e.self:Say("A shadowed book! Well done! The more banished shadowed men the better. As the items of the shadowed men tend to disappear, I have given you a note to remind me that you have indeed supplied me with a book. Give me the note with the following items, and I will scribe for you Words of Darkness: a book of darkness from the Erudites in the tower by Lake Rathe, a book of frost from the icy goblin in Permafrost Keep and 300 golden coins. Bring me these items, and I will scribe for you the Words of Darkness."); + e.other:Faction(e.self,415,1); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,18945,500); -- a note(VurgoWord) + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10538,item2 = 10031,item3 = 7331,item4 = 18944},1,text)) then -- A Fungus Eye, Fire Opal, Shadowed Knife, a note(VurgoHarv) + e.self:Say("My note, a fungus eye, a shadowed knife and gold! All of the necessary components to make a harvester. Well done, adventurer!"); + e.other:Faction(e.self,415,1); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,5316,1000); -- Harvester + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10536,item2 = 10537,item3 = 18945,gold = 300},1,text)) then -- Book of Darkness, Book of Frost, a note(VurgoWord) + e.self:Say("All of the necessary components for me to scribe the Words of Darkness! Very good, adventurer. Take your tome, you have earned it."); + e.other:Faction(e.self,415,1); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,10527,1000); -- Words of Darkness + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/soltemple/Walthin_Fireweaver.lua b/soltemple/Walthin_Fireweaver.lua new file mode 100644 index 0000000..f679106 --- /dev/null +++ b/soltemple/Walthin_Fireweaver.lua @@ -0,0 +1,44 @@ +-- Quests for Bard Lambent Armor + +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 0) then + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am Walthin Fireweaver of the Temple of Solusek Ro. I am the protector of an ancient armor invented by long dead bards of the temple. This armor will help any bard in their journey across Norrath. Are you a bard that would desire to own some of this armor?"); + elseif(e.message:findi("no")) then + e.self:Say("Very well."); + elseif(e.message:findi("yes")) then + e.self:Say("Very well. I craft a type of bardic armor that I invented called Lambent Armor. I can craft for you [boots], [gauntlets], and [greaves]. My friend Cryssia Stardreamer will craft for you the other pieces. I require a special kind of lambent stone for each of my armor pieces. Find my friends Orstorm, Genni, Gardern, and Vilissia within the temple and they will help you create them."); + elseif(e.message:findi("boots")) then + e.self:Say("Alright, I will require some items. Go and get me some Firewalker Boots, a Lambent Sapphire, and the middle piece of the Rune of the One Eye. Return to me with these items and I will craft your boots."); + elseif(e.message:findi("gauntlets")) then + e.self:Say("Alright, I need you to retrieve for me some Black Silk Gloves, a Lambent Star Ruby, and Shin Gauntlets. Return to me with these and I will craft your gauntlets."); + elseif(e.message:findi("greaves")) then + e.self:Say("Very well, return to me with these items and I will craft them. A set of Icy Greaves, a Lambent Fire Opal, and Shin Greaves."); + end + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Wait, " .. e.other:GetCleanName() .. ", are you not forgetting something?"; + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 2318, item2 = 10119, item3 = 10561},1,text)) then + e.self:Say("Quality boots for a quality bard. Well done, " .. e.other:GetCleanName() .. "."); + e.other:Faction(e.self,415,10); -- Temple of Solusek Ro better + e.other:Faction(e.self,416,-1); -- Shadow Men worse + e.other:QuestReward(e.self,0,0,0,0,4159,1000); --boots + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 2319, item2 = 10117, item3 = 4114},1,text)) then + e.self:Say("Well done, " .. e.other:GetCleanName() .. ", you have justly earned your pair of lambent gauntlets."); + e.other:Faction(e.self,415,10); -- Temple of Solusek Ro better + e.other:Faction(e.self,416,-1); -- Shadow Men worse + e.other:QuestReward(e.self,0,0,0,0,4157,1000); --gauntlets + elseif(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 4115, item2 = 10128, item3 = 4116},1,text)) then + e.self:Say("I always knew that you would earn these lambent greaves, " .. e.other:GetCleanName() .. ", you just had that look about you. Well done!"); + e.other:Faction(e.self,415,10); -- Temple of Solusek Ro better + e.other:Faction(e.self,416,-1); -- Shadow Men worse + e.other:QuestReward(e.self,0,0,0,0,4158,1000); --greaves + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/soltemple/a_keeper.lua b/soltemple/a_keeper.lua new file mode 100644 index 0000000..aa4039d --- /dev/null +++ b/soltemple/a_keeper.lua @@ -0,0 +1,9 @@ +function event_death_complete(e) + eq.spawn2(80040, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); +end + +function event_say(e) + if(e.message:findi("who.* ro")) then + e.self:Say("Solusek Ro is the Master of Fire and the Keeper of Power."); + end +end \ No newline at end of file diff --git a/soltemple/a_seeker.lua b/soltemple/a_seeker.lua new file mode 100644 index 0000000..2f373e8 --- /dev/null +++ b/soltemple/a_seeker.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("who.* ro")) then + e.self:Say("Solusek Ro is the Master of Fire and the Keeper of Power."); + end +end \ No newline at end of file diff --git a/soltemple/a_ward_of_ro.lua b/soltemple/a_ward_of_ro.lua new file mode 100644 index 0000000..da5bc45 --- /dev/null +++ b/soltemple/a_ward_of_ro.lua @@ -0,0 +1,10 @@ +function event_death_complete(e) + local which = math.random(2); + + if (which == 1) then + eq.spawn2(80005, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + elseif (which == 2) then + eq.spawn2(80005, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + eq.spawn2(80005, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + end +end diff --git a/soltemple/an_incarnate.lua b/soltemple/an_incarnate.lua new file mode 100644 index 0000000..fb6342e --- /dev/null +++ b/soltemple/an_incarnate.lua @@ -0,0 +1,10 @@ +function event_death_complete(e) + local which = math.random(3); + + if (which == 1) then + eq.spawn2(80005, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + elseif (which == 2) then + eq.spawn2(80005, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + eq.spawn2(80005, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); + end +end diff --git a/soltemple/an_undead_knight.lua b/soltemple/an_undead_knight.lua new file mode 100644 index 0000000..11e828e --- /dev/null +++ b/soltemple/an_undead_knight.lua @@ -0,0 +1,38 @@ +-- Quest for Darkforge Gauntlets/Greaves/Boots + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Away from this place of torment! Make haste and flee before you, too, share my [gruesome fate]!!"); + elseif(e.message:findi("gruesome fate")) then + e.self:Say("I was once a proud shadowknight, but failed I did in my master's quest. I was sent into a lizard fortress deep in the swamplands. I was to seek out an ancient item for my master. I failed and was captured. The lizards stripped me of my [darkforge armor] and planned to boil me alive. Before they could do so, I escaped. Upon my return to my master's lair I found myself in a [worse predicament]."); + elseif(e.message:findi("worse predicament")) then + e.self:Say("I was torn apart by my master and my bones were given as toys to my master's associates!! I am now only half Grandyf the Vile. My hands, feet and legs were sent here and assembled with spare bones of other unfortunates. Since this is the case, I can only [create darkforge armor] in the form of boots, greaves and gauntlets."); + elseif(e.message:findi("create darkforge armor")) then + e.self:Say("I and I alone have the power to create darkforge armor!! It was crafted for me so naturally it is to be worn by shadowknights only. My armor was taken by the lizardman crusaders. Unfortunately for them, it lost all power and cannot be worn. I would be glad to see it put to good use. Do you [seek the darkforge armor]?"); + elseif(e.message:findi("seek the darkforge armor")) then + e.self:Say("Darkforge gauntlets require both of my decayed gauntlets and one enchanted platinum bar. For the darkforge greaves, I will need both decayed legplates and two pieces of melatite from the Solusek Mining Company. For the boots, I need both my decayed boots and two parts of fairy dust."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12292, item2 = 12291, item3 = 16507})) then + e.self:Say("Well done, " .. e.other:GetCleanName() .. ", here is your reward."); + e.other:QuestReward(e.self,0,0,0,0,3144); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12294, item2 = 12293, item3 = 12297, item4 = 12297})) then + e.self:Say("You have been granted the darkforge greaves!!"); + e.other:QuestReward(e.self,0,0,0,0,3145); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12296, item2 = 12295, item3 = 12106, item4 = 12106})) then + e.self:Say("Well done, " .. e.other:GetCleanName() .. ", here is your reward."); + e.other:QuestReward(e.self,0,0,0,0,3146); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Updated and corrected by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/soltemple/an_undead_knight_.lua b/soltemple/an_undead_knight_.lua new file mode 100644 index 0000000..f568b5b --- /dev/null +++ b/soltemple/an_undead_knight_.lua @@ -0,0 +1,44 @@ +-- Quest for Darkforge Helm/Breastplate/Vambraces/Bracers + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Leave this place or find yourself [bound to this land] as I am."); + elseif(e.message:findi("bound to this land")) then + e.self:Say("I was torn to pieces for my failure to complete a task for my master. I lost my life, my precious [shadowknight armor] and most of all, my [lower body]!!"); + elseif(e.message:findi("shadowknight armor")) then + e.self:Say("My darkforge armor!! It was taken into the land of lizards by the lizardmen crusaders!! It is worthless decayed armor now!! I cannot even wear it any more, but perhaps you can!! Would you like me to make [darkforge armor] for you?"); + elseif(e.message:findi("lower body")) then + e.self:Say("My lower body was taken from me, along with my hands. I was pieced together using portions of other failed champions. Now I can only create [darkforge armor] in the form of helms, breastplates, vambraces and bracers."); + elseif(e.message:findi("darkforge armor")) then + e.self:Say("Darkforge helms require my decayed helm and visor as well as two Freeport militia helms. The breastplate requires the decayed breastplate, decayed mail and two enchanted platinum bars. Vambraces need both decayed vambraces and a Qeynos Guard kite shield. The bracers require both decayed bracers and a horn from a minotaur lord."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "Two damaged Freeport Militia helms, the decayed helm and the decayed visor."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12283, item2 = 12284, item3 = 13921, item4 = 13921},1,text1)) then + e.self:Say("You now own the darkforge helm."); + e.other:QuestReward(e.self,0,0,0,0,3140); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12285, item2 = 12286, item3 = 16507, item4 = 16507})) then + e.self:Say("I grant you the darkforge breastplate!!"); + e.other:QuestReward(e.self,0,0,0,0,3141); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12288, item2 = 12287, item3 = 9023})) then + e.self:Say("Well done, " .. e.other:GetCleanName() .. ", here is your reward."); + e.other:QuestReward(e.self,0,0,0,0,3142); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12290, item2 = 12289, item3 = 19075})) then + e.self:Say("Well done, " .. e.other:GetCleanName() .. ", here is your reward."); + e.other:QuestReward(e.self,0,0,0,0,3143); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Edited and updated by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/southkarana/#Brother_Qwinn.lua b/southkarana/#Brother_Qwinn.lua new file mode 100644 index 0000000..cd5450e --- /dev/null +++ b/southkarana/#Brother_Qwinn.lua @@ -0,0 +1,36 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("In the name of the [Brotherhood of the Lost Circle], I greet you."); + elseif(e.message:findi("lost circle")) then + e.self:Say("The [monks of the Whistling Fist] are called the Lost Circle by others. We are an ancient league of monks, long forgotten and nearly extinct. Within this realm, there are only two. [Brother Zephyl] and myself. We seek the items stolen from us. I seek the [Code of Zan Fi]."); + elseif(e.message:findi("whistling fist")) then + e.self:Say("The monks of the Whistling fist were forged from the vision of the great master, Zan Fi. When the Combine Empire reigned supreme, a single bard grew to learn the ways of the monk. This bard was Zan Fi. The brotherhood was all but destroyed in the times that followed. Now only a few remain to carry on Zan Fi's legacy."); + elseif(e.message:findi("code of zan fi")) then + e.self:Say("The tome called the Code of the Whistling Fist has been stolen from me. It contains many secrets pertaining to our brotherhood. Thankfully, it is magically locked and only a Zan Fi master could unlock it. I require a monk to retrieve it. Would you be an [interested monk]?"); + elseif(e.message:findi("interested monk")) then + e.self:Say("Then venture into the depths beyond the great Solusek Mining Company. There, living among the kobolds, will be Targin the Rock. Get the book from him, then return here and wait for my reappearance. When we meet again, you shall hand me the book and a purple headband earned from the Silent Fist clan. Do so and you shall be closer to joining the brotherhood."); + elseif(e.message:findi("zephyl")) then + e.self:Say("Brother Zephyl is searching for one who can return the [idol of Zan Fi]. I believe he is somewhere in the vicinity of the Rathe Mountains."); + elseif(e.message:findi("idol of zan fi")) then + e.self:Say("The idol of Zan Fi is a totem that is sacred to our brotherhood. I cannot share its secrets, but I can tell you that [Brother Zephyl] will offer to you a reward for its return.."); + elseif(e.message:findi("return the headband")) then + e.self:Say("Then you will return that which was earned or the robe."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "We had an agreement. The proof of a skilled monk, the purple headband, and the Code of the Whistling Fist."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12316,item2 = 10114},1,text)) then -- Code of Zan Fi, Purple Headband + e.self:Say("We thank you for the return of the Code of the Whistling Fist. Take this sewing needle. You shall find it useful should you aid [Brother Zephyl] in his quest. His item, the needle, a swatch of shadow silk and a scroll containing Jonathan's Whistling Warsong. Into a sewing kit they will be going. And into the brotherhood will you. I hope you do not wish me to [return the headband].."); + e.other:QuestReward(e.self,0,0,0,0,12314,2000); -- Needle of the Void + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12314})) then -- Needle of the Void + e.other:QuestReward(e.self,0,0,0,0,10114); -- Purple Headband + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12256})) then -- Robe of the Lost Circle + e.other:QuestReward(e.self,0,0,0,0,10114); -- Purple Headband + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:southkarana ID:436 -- Brother_Qwinn \ No newline at end of file diff --git a/southkarana/#High_Shaman_Grisok.lua b/southkarana/#High_Shaman_Grisok.lua new file mode 100644 index 0000000..9e1bdf3 --- /dev/null +++ b/southkarana/#High_Shaman_Grisok.lua @@ -0,0 +1,3 @@ +function event_spawn(e) + e.self:AI_SetRoambox(1000,880,-3568,-5548,-7470,15000,30000); +end \ No newline at end of file diff --git a/southkarana/#High_Shaman_Phido.lua b/southkarana/#High_Shaman_Phido.lua new file mode 100644 index 0000000..7743c51 --- /dev/null +++ b/southkarana/#High_Shaman_Phido.lua @@ -0,0 +1,3 @@ +function event_spawn(e) + e.self:AI_SetRoambox(1500,3246,1020,1385,-7081,15000,30000); +end \ No newline at end of file diff --git a/southkarana/#Sentry_Alechin.lua b/southkarana/#Sentry_Alechin.lua new file mode 100644 index 0000000..cb61f8d --- /dev/null +++ b/southkarana/#Sentry_Alechin.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Please, heed my warning. Begone before nightfall. There are evil beasts that lurk this land. Begone!"); + end +end + diff --git a/southkarana/#Shaman_Lenrel.lua b/southkarana/#Shaman_Lenrel.lua new file mode 100644 index 0000000..c3a5844 --- /dev/null +++ b/southkarana/#Shaman_Lenrel.lua @@ -0,0 +1,7 @@ +function event_death_complete(e) + if(math.random(100) < 50) then + eq.unique_spawn(14124,0,0,2038,-4821,20,0); -- spawn High Shaman Phido + else + eq.unique_spawn(14124,0,0,2050,-1545,0,0); -- NPC: #High_Shaman_Phido + end +end diff --git a/southkarana/#Shaman_Ren-Rex.lua b/southkarana/#Shaman_Ren-Rex.lua new file mode 100644 index 0000000..8b627d6 --- /dev/null +++ b/southkarana/#Shaman_Ren-Rex.lua @@ -0,0 +1,7 @@ +function event_death_complete(e) + if(math.random(100) < 50) then + eq.unique_spawn(14011,0,0,-2482,-7426,53,0); -- spawn High Shaman Grisok + else + eq.unique_spawn(14011,0,0,-258,-6483,3,0); -- NPC: #High_Shaman_Grisok + end +end diff --git a/southkarana/#Theodore_Exanthem.lua b/southkarana/#Theodore_Exanthem.lua new file mode 100644 index 0000000..b0da5b2 --- /dev/null +++ b/southkarana/#Theodore_Exanthem.lua @@ -0,0 +1,58 @@ +-- #Theodore_Exantham in south karana +function event_spawn(e) + eq.signal(14050,1,5000); -- NPC: an_interrogator +end + +function event_signal(e) + if(e.signal == 1) then + eq.move_to(-2750,-5465,00,192,true); + eq.signal(14050,2,5000); -- NPC: an_interrogator + elseif(e.signal == 2) then + e.self:Say("What a joke! I'm not telling you a thing. You don't look like you could scare a moss snake. I'm not afraid of you!"); + eq.signal(14050,3,5000); -- NPC: an_interrogator + elseif(e.signal == 3) then + e.self:Emote("reels back, his eyes wide with shock. 'Ow,' he says nervously."); + eq.signal(14050,4,5000); -- NPC: an_interrogator + elseif(e.signal == 4) then + e.self:Emote("winces and says, 'Oh. Yeah right. Like I'm afraid of that moron or something.' Theodore glances nervously over at you"); + eq.signal(14050,5,5000); -- NPC: an_interrogator + elseif(e.signal == 5) then + e.self:Emote("gulps nervously"); + elseif(e.signal == 6) then + e.self:Say("Fine, follow me creeps."); + eq.move_to(-3098,-5872,94,160,true); + -- eq.signal(14050,7,5000); this call for an interrogator to continue its waypoint. the eq.resume() or e.self:ResumeWandering() currently isn't working as intended. + elseif(e.signal == 7) then + e.self:Say("There... They are hiding out just down the hill here... Now release me!"); + eq.signal(14050,8,5000); -- NPC: an_interrogator + end +end + +function event_combat(e) + if(e.joined == true) then + eq.set_timer("defeat",3000); + end +end + +function event_timer(e) + if(e.timer == "defeat") then + e.self:Say("Sweet father of rot, alright already! Stop hitting me and tell me what you want me to do!"); + eq.stop_timer("defeat"); + e.self:WipeHateList(); + eq.signal(14050,6,5000); -- NPC: an_interrogator + end +end + +function event_trade(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2344}) and (xloc == -3098 and yloc == -5872)) then -- confession document + e.self:Emote("makes a big X at the bottom of the document and hands it back saying, 'A bunch of worthless thugs is all you folks are!'"); + e.other:QuestReward(e.self,0,0,0,0,2395); -- Theodore's Confession + eq.signal(14050,9,5000); -- NPC: an_interrogator + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/southkarana/#Zrithsadioun.lua b/southkarana/#Zrithsadioun.lua new file mode 100644 index 0000000..793f6d2 --- /dev/null +++ b/southkarana/#Zrithsadioun.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("curls his lips back, revealing a row of jagged fangs lining his monstrous jaw. Arching his hunched, boney spine, the old and almost sickly looking gnoll glares down upon you with his yellow eyes, 'What " .. e.other:Race() .. " come to Zrithsadioun for? He cares nothing for " .. e.other:Race() .. " -- Zrithsadioun cares nothing for anyone but Zrithsadioun. Go. Now. Zrithsadioun is occupied with more important task than speaking with " .. e.other:Race() .. ", but soon his belly will grow with pain of hunger, and then young " .. e.other:Race() .. " may return...' The haggard gnoll swipes his black tongue quickly across his maw and then snaps at you with a snarling growl, 'Yes! Then you come back... then Zrithsadioun have use for young " .. e.other:Race() .. " that be of Zrithsadioun's while.' Another growl leaves the gnoll as he continues to eye you -- warily and in unveiled agitation."); + end +end + diff --git a/southkarana/Baenar_Swiftsong.lua b/southkarana/Baenar_Swiftsong.lua new file mode 100644 index 0000000..c89566e --- /dev/null +++ b/southkarana/Baenar_Swiftsong.lua @@ -0,0 +1,48 @@ +--Zone: South Karana +--Short Name: southkarana +--Zone ID: 14 +-- +--NPC Name: Baenar Swiftsong +--NPC ID: 14046 +--Quest Status: finished +-- Updated by Kilelen + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Please, I am trying to work here. If you bother me I will write a horrible song about you and sing it from the mountain tops!"); + elseif(e.message:findi("request")) then + e.self:Say("You have no request for me? How odd. Well, then. Perhaps a tale of [history] will do?"); + elseif(e.message:findi("history")) then + e.self:Emote("strums his lute and clears his throat. 'Here is a tale of the place of torment from which souls good and bad have come to call home upon this earthly [realm].'"); + elseif(e.message:findi("realm")) then + e.self:Say("The place I speak of is the Estate of Unrest. It is a place that the dead roam and the living detest. Garanel Rucksif was his name, a name that no longer came to be . A name that Quellious herself saw fit not to let anyone see, for a cleric loyal to her called the lands home. Open to all, the Fier'Dal, Koada'Dal and even the occasional [gnome]."); + elseif(e.message:findi("gnome")) then + e.self:Say("A mansion built by the cleric with care, for he came to spread the word of Quellious to Faydwer. Garanel mad with rage, killed his wife and children three. From his dwarven homelands he now will flee. Upon this place of tranquility he stumbled upon. He tortured and killed the cleric and his kin by morning's dawn. Within the sacred chapel walls the bloodshed took place. Eyes wild with rage, madness and blood upon his [face]."); + elseif(e.message:findi("face")) then + e.self:Say("Quellious, enraged by this act of violence and murder, decreed that this would continue no further! Garanel was struck down, his soul cursed forever more, to haunt the grounds of the defiled estate, guarding its bloody floor. Undead monsters, ghosts and [ghouls] slaughter all those who stray. They say his undead power grows within him to this day. This sad tale, my friends, is the Legend of Unrest."); + elseif(e.message:findi("ghouls")) then + e.self:Say("I've even heard of the ghosts of poor children haunting the estate. Have you ever [seen a child's ghost]?"); + elseif(e.message:findi("seen.* ghost")) then + e.self:Say("You have? Did it speak to you? What did it say? Only the essences of those unjustly wronged or the vilest of souls are bound to this realm and sometimes end up in that accursed place. Only that which binds them to this realm may set them free. Curse those who would harm an innocent child! I knew of one such unfortunate child. I was to bring her a [doll] for her birthday but she fell to a thieving cutthroat's sword!' Baenar's eyes fill with tears. 'Pardon me, friends, she was like a daughter to me. I loved her as I would my own!"); + elseif(e.message:findi("doll")) then + e.self:Say("What's that you say? You wish to have the doll I was to give her? Whatever for? Bah! Nevermind me. I rant like an old woman sometimes. I should let her memory go but I would stop my heart from beating before I forget that child. Here, take this invoice. I have no further use for it. Give it to Marfen Binkdirple."); + e.other:SummonCursorItem(20372); -- Solusek Mining Company Invoice + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20373})) then + e.self:Say("So, Belious Naliedin sent you, eh?' Baenar shakes his head. 'I hope your letter of introduction did not empty your purse. You have the audience you seek. What is your [request]? A song perhaps? To immortalize your heroic deeds in song? How about an epic battle with a gnoll pup? I'll make you famous."); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20371})) then + e.self:Say("A note from the child? How can that be! How could she know I was her father? Unless? Cyrah told her. Forgive me. Cyrah was the name of the woman to whom I was betrothed. Unfortunately her parents forbade her from marrying a lowly bard such as myself. Her father married her off to a young merchant in Qeynos named Maligar. She married him only out of respect to her father. Her heart was truly mine, at least, so she always said. When Serra was born, I visited them both often. She was like no other, so innocent and sweet. In those few years I watched her grow up to be more and more like her mother and I saw none of the father in her appearance. I do not like Maligar, but the least we can do is inform him of his child's death. I saw his caravan pass by not more than a day ago headed to Qeynos."); + e.other:QuestReward(e.self,0,0,0,0,20368); -- Item: Note to Maligar + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20367})) then + e.self:Say("That vile dog! I knew there was something not right with him, the way he stared at everyone with contempt! Even his own wife! I curse him! I curse him to stay upon the realm and deny him what he most desires! This is too much! I cannot play or write this day. The sadness overwhelms me. In honor of Serra, the daughter that was denied to me in spirit, I vow never to play this instrument again! It was her favorite and she listened to me play for hours on end. Here take it! Take it out of my sight! Leave me be with my grief and my loss."); + e.other:QuestReward(e.self,0,0,0,0,20366); -- Item: Mahlins Mystical Bongos + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:southkarana ID:14046 -- Baenar_Swiftsong \ No newline at end of file diff --git a/southkarana/Kelkim_Menkia.lua b/southkarana/Kelkim_Menkia.lua new file mode 100644 index 0000000..28bb29d --- /dev/null +++ b/southkarana/Kelkim_Menkia.lua @@ -0,0 +1,23 @@ +-- BEGIN FILE: southkarana\Kelkim_Menika.lua + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("sighs as she looks over her lute. 'My lute was mangled by those damnable gnolls. I have no idea how I'm going to get a new set of strings for it. They were so rare.'"); + elseif(e.message:findi("rare")) then + e.self:Say("I only use the finest lute strings on my lute. My uncle got them for me from across the world. His name was Zendrik the Wurmslayer. As his name implies, he killed many wurms and drakes. The strings for my lute were all made from the guts of the wurms and drakes he slew."); + elseif(e.message:findi("wurms and drakes")) then + e.self:Say("The strings were from a chromodrac, a red wurm and a huge onyx drake. It always sounded so wonderful.' Kelkim sighs, looking off to the horizon. As she shakes her lute angrily, she says, 'I'll kill all of you dirty gnolls!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20527,item2 = 20528,item3 = 20529})) then -- Chromodrac Gut, Red Wurm Gut, Onyx Drake Gut + e.self:Emote(string.format("snatches the gut strings from your hand and immediately begins to string her lute. 'This is wonderful, I will be able to play my lute again soon! Take this old sheet of music I found - I don't think I will have much use for it. My new desire is to bash gnoll heads in with my lute. Safe travels to you, %s.",e.other:GetName())); + e.other:QuestReward(e.self,0,0,0,0,20377,5000); -- Maestro's Symphony Page 25 + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:southkarana ID:14082 -- Kelkim_Menika \ No newline at end of file diff --git a/southkarana/Lord_Grimrot.lua b/southkarana/Lord_Grimrot.lua new file mode 100644 index 0000000..ff4b758 --- /dev/null +++ b/southkarana/Lord_Grimrot.lua @@ -0,0 +1,44 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -300) then + e.self:Say("Welcome to my field of decay. Won't you be so kind as to attack me? I have need of more bodies to join my diseased legion. Try it, maybe you shall win and gain my trusty [Pestilence]."); + else + e.self:Say("I believe your bones shall join those of my undead and diseased army."); + end + elseif(e.message:findi("pestilence")) then + if(e.other:GetFactionValue(e.self) >= -300) then + e.self:Say("My beloved scythe. Upon my death, my soul shall live within her. Such is the pact."); + else + e.self:Say("I believe your bones shall join those of my undead and diseased army."); + end + elseif(e.message:findi("Arlena")) then + if(e.other:GetFactionValue(e.self) >= -300) then + e.self:Say("My beloved Arlena is my most perfect creation. A bit of flesh here, a bit of bone there and I created her. She left my arms while I was away. Find her and stop her. Return her bones to me so that I may restore her. She has no doubt returned to where I first met.. most.. of her, [Mistmoore Castle]!!"); + else + e.self:Say("I believe your bones shall join those of my undead and diseased army."); + end + elseif(e.message:findi("Mistmoore Castle")) then + if(e.other:GetFactionValue(e.self) >= -300) then + e.self:Say("It stands on the continent of Faydwer. That is all you need to know."); + else + e.self:Say("I believe your bones shall join those of my undead and diseased army."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12137}, 0)) then + e.self:Say("The head for my commander. Let us see. I have a body ready for it. There. Hahahaha!! As for your fine work, take this. Also, I believe you can help me find my beloved [Arlena]."); + e.other:Faction(e.self,221,15); -- Faction: Bloodsabers + e.other:Faction(e.self,262,-2); -- Faction: Guards of Qeynos + e.other:Faction(e.self,296,1); -- Faction: Opal Dark Briar + e.other:Faction(e.self,341,-3); -- Faction: Priests of Life + e.other:Faction(e.self,230,1); -- Faction: Corrupt Qeynos Guards + e.other:QuestReward(e.self,0,0,0,0,0,0); + e.other:QuestReward(e.self,{gold = math.random(1,10), itemid = eq.ChooseRandom(2137,2138,2139,2140,2141,2142,2143,2144,2145,2146,2147,2148), exp = 1000}) + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/southkarana/Ryleen_Bladespur.lua b/southkarana/Ryleen_Bladespur.lua new file mode 100644 index 0000000..0f831f5 --- /dev/null +++ b/southkarana/Ryleen_Bladespur.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("blinks as she studies you. She smirks and chuckles cruelly before turning away, completely indifferent."); + end +end + diff --git a/southkarana/Shakrn_Meadowgreen.lua b/southkarana/Shakrn_Meadowgreen.lua new file mode 100644 index 0000000..e8fb116 --- /dev/null +++ b/southkarana/Shakrn_Meadowgreen.lua @@ -0,0 +1,54 @@ +-- warrior crafted armor +-- generic reward text - could only find the correct text for the bracer +-- updated the original file with correct text and used the handin plugin + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail. I am Shakrn Meadowgreen, Warrior extraordinaire and Master Armorer of the Meadowgreen family. My brother and I craft [armor] for the bravest warriors in the land -- do you think you [qualify]?"); + elseif(e.message:findi("armor")) then + e.self:Say("I smith [Helms], [Gauntlets], [Boots] and [Vambraces]. My brother Ulan smiths Bracers, Greaves, Pauldruns and Breastplates."); + elseif(e.message:findi("qualify")) then + e.self:Say("So you are a warrior of renown? [Prove] it to me and I will smith you [armor] befitting your exalted station."); + elseif(e.message:findi("prove")) then + e.self:Say("You will prove yourself to me the old fashioned way, by killing things and bringing me back proof of your deed. Bah. What other way is there?"); + elseif(e.message:findi("helm")) then + e.self:Say("One of my brethren spoke to me of the mystic properties of the Fire Totems carried by the Goblin High Shaman in Solusek's Eye. My mighty Centaur body will not fit down those twisty goblin passages, so I have not been able to acquire one on my own. As proof of your powers, I ask you to bring me a Fire Totem and one [Ruby] stone. Do so and I will reward you with a Crafted Helmet."); + elseif(e.message:findi("gauntlets")) then + e.self:Say("Crafted gauntlets - the mark of a distinguished warrior. I have a personal grudge to settle with those twice-cursed aviaks. They have been raiding our merchant convoys for the last few weeks, causing mischief to no end. Bring me an aviak charm from an avocet. I am sure I will not need to tell you how to get it. An aviak charm and two [star rubies], and I will reward you with crafted gauntlets."); + elseif(e.message:findi("boots")) then + e.self:Say("One of my brethren spoke to me of the mystic properties of the Frost Totems carried by the Goblin High Shamans in Permafrost Keep. I have been unable to fetch one for myself, as my Centaur's body will not fit through the tunnels of those sniveling wretches. Prove your might by gifting me a Frost Totem and two [Sapphire] stones. Do this and I will reward you with a pair of Crafted Boots."); + elseif(e.message:findi("vambraces")) then + e.self:Say("Come, warrior, and speak to me of your strength. Bring me the eye of a griffon that I might eat it raw in the fashion of my ancestors. Do this for me - then gift me with two [fire emeralds], and for you I will make a crafted vambrace."); + elseif(e.message:findi("ruby")) then + e.self:Say("I need a ruby for a piece of jewelry my brother and I are creating."); + elseif(e.message:findi("star rubies")) then + e.self:Say("I need a star ruby for a piece of jewelry my brother and I are creating."); + elseif(e.message:findi("fire emerald")) then + e.self:Say("i need a fire emerald for a piece of jewelry my brother and I are creating."); + elseif(e.message:findi("sapphire")) then + e.self:Say("I need a sapphire for a piece of jewelry my brother and I are creating"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Wait, " .. e.other:GetCleanName() .. ", are you not forgetting something?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13743,item2 = 10035},1,text)) then + e.self:Say("What strength you must have to return with a fire goblin totem. You have surprised me - I did not think you up to the task. Take this crafted helm - you have indeed earned it."); + e.other:QuestReward(e.self,0,0,0,0,4173,25000); -- Item: Crafted Helm + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13737,item2 = 10032,item3 = 10032},1,text)) then + e.self:Say("Ho ho! An aviak charm. These are not easy to come by. You have proven yourself a mighty warrior, and therefore deserve to wear these crafted warrior gauntlets."); + e.other:QuestReward(e.self,0,0,0,0,4178,25000); -- Item: Crafted Gauntlets + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13744,item2 = 10034,item3 = 10034},1,text)) then + e.self:Say("What strength you must have to return with a frost goblin totem. You have surprised me - I did not think you up to the task. Take these crafted boots - you have indeed earned them."); + e.other:QuestReward(e.self,0,0,0,0,4180,25000); -- Item: Crafted Plate Boots + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13739,item2 = 10033,item3 = 10033},1,text)) then + e.self:Say("A griffon eye - I shall eat well tonight, and toast you in the manner of my ancestors. Take these crafted vambraces - they will serve you well."); + e.other:QuestReward(e.self,0,0,0,0,4176,25000); -- Item: Crafted Vambraces + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- EOF zone: southkarana ID: 14075 NPC: Shakrn_Meadowgreen + diff --git a/southkarana/Ulan_Meadowgreen.lua b/southkarana/Ulan_Meadowgreen.lua new file mode 100644 index 0000000..2c002fc --- /dev/null +++ b/southkarana/Ulan_Meadowgreen.lua @@ -0,0 +1,56 @@ +-- warrior crafted armor + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. I am Ulan Meadowgreen of the family Meadowgreen. My brother and I are the best Armorers in all of Norrath. We craft [armor] for the bravest warriors in the land. If you are a Warrior of renown, and are interested in our armor, I have some mighty [labors] which you might attempt for me."); + elseif(e.message:findi("armor")) then + e.self:Say("I smith [Bracers], [Greaves], [Pauldrons] and [Breastplates]. My brother Shakrn smiths Helms, Gauntlets, Boots and Vambraces."); + elseif(e.message:findi("labors")) then + e.self:Say("Only those who can prove themselves mighty warriors deserve to wear our crafted armor. While my brother prefers trophies, I seek instead tasks which will help my craft and my people."); + elseif(e.message:findi("bracers")) then + e.self:Say("The fine sheen that you see on our Crafted Armor is produced by a mixture of river berries and juice squeezed from the Optic Nerves of an Evil Eye. We are always in need of more Optic nerves for our armor. Bring me a handful of Optic Nerves and a [Sapphire], and I will give you a Crafted Bracer for your trouble."); + elseif(e.message:findi("greaves")) then + e.self:Say("Years ago, a Necromancer most foul terrorized the people of the Karanas. This wretch stole a [circlet] that father was smithing for my sister. It was very easy to recognize - shining silver like the light of dawn breaking. I have heard rumors that this Necromancer has settled in the depths of Najena. Return this circlet to me and gift me with two [Star Rubies], and I will reward you with Crafted Greaves."); + elseif(e.message:findi("circlet")) then + e.self:Say("The circlet my father forged was of the finest silver, ready to be enchanted by our more magical cousins. It is a shame we never had the chance to finish the work."); + elseif(e.message:findi("pauldron")) then + e.self:Say("In the Caverns of Clan Runny Eye live several Evil Eyes of prestigious magical power. Split amongst them are the three lost pieces of the legendary [Rune of Dwarves]. When assembled, this Rune is said to impart a mystic skill to the smith who holds it. Bring me these three pieces and a [Fire Emerald], and I will smith for you a Pauldren worthy of the mightiest of warriors."); + elseif(e.message:findi("rune of dwarves")) then + e.self:Say("The Rune of Dwarves once rested in the heart of the city of Kaladim. Years ago, the goblins of Clan Runnyeye stole it from the dwarves. No one I have ever spoken to knows how it was broken. It is not hard to guess, however, why the evil eyes now hold them."); + elseif(e.message:findi("breastplate")) then + e.self:Say("Deep within the depths of Castle Mistmoore lives a particularly deadly clan of werewolves. These are the servants of [Mayong], and he has enchanted the most ferocious of them that their talons might cut through steel. I wish to study these talons, and see if I can transfer the enchantments from them to the crafted armor I make. If you bring me werewolf talons and 3 [rubies], I will give you a breastplate, the likes of which you have never before seen."); + elseif(e.message:findi("mayong")) then + e.self:Say("Mayong Mistmoore is the ruler of Castle Mistmoore. He has ruled there for centuries, and will most likely rule for centuries more to come. It is said that he does not age."); + elseif(e.message:findi("star rubies")) then + e.self:Say("I need a star ruby for a piece of jewelry my brother and I are creating."); + elseif(e.message:findi("sapphire")) then + e.self:Say("I need a sapphire for a piece of jewelry my brother and I are crafting."); + elseif(e.message:findi("^rubies$")) then + e.self:Say("I need rubies for a piece of jewelry my brother and I are crafting."); + elseif(e.message:findi("fire emerald")) then + e.self:Say("I need a fire emerald for a piece of jewelry my brother and I are crafting."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Wait, " .. e.other:GetCleanName() .. ", are you not forgetting something?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14019,item2 = 10034},1,text)) then + e.self:Say("Very good. I am always in need of more optic nerves. Take this crafted bracer with my thanks."); + e.other:QuestReward(e.self,0,0,0,0,4177,25000); -- Item: Crafted Bracers + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13742,item2 = 10032,item3 = 10032},1,text)) then + e.self:Say("Is this.. it is! I did not recognize it at first, but this is indeed the circlet my father once crafted. It seems to have been enchanted since. Take these crafted greaves with my thanks for a job well done."); + e.other:QuestReward(e.self,0,0,0,0,4179,25000); -- Item: Crafted Greaves + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13698,item2 = 13699,item3 = 13738,item4 = 10033},1,text)) then + e.self:Say("Most impressive - all three pieces of the dwarven rune. When joined, this shall serve me well. Take this crafted pauldron with my gratitude."); + e.other:QuestReward(e.self,0,0,0,0,4175,25000); -- Item: Crafted Pauldron + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13746,item2 = 10035,item3 = 10035,item4 = 10035},1,text)) then + e.self:Say("I am most impressed that you have returned from Castle Mistmoore with a werewolf talon. You have justly earned your crafted breastplate."); + e.other:QuestReward(e.self,0,0,0,0,4174,25000); -- Item: Crafted Breastplate + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- EOF zone: southkarana ID: 14073 NPC: Ulan_Meadowgreen + diff --git a/southkarana/Vhalen_Nostrolo.lua b/southkarana/Vhalen_Nostrolo.lua new file mode 100644 index 0000000..72df5a6 --- /dev/null +++ b/southkarana/Vhalen_Nostrolo.lua @@ -0,0 +1,51 @@ +-- Winds of Karana +-- Broken Lute + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Nice to meet you. Do not the plains of Karana abound with life? This land is truly blessed by the gods. Would you like to [hear a tune] or will you pass up the opportunity?"); + elseif(e.message:findi("hear a tune")) then + e.self:Say("Inside this heart, I am trapped with the sight of beautiful colors, all memories of your love. They attack me with full might. You left me here in this garden of grey Never to see the true colors of the happiness of day Here in my heart I sit and I cry. You have left me alone and my colors have all died... What do you think? Is it a [happy tune] or a [sad tune]?"); + elseif(e.message:findi("happy tune")) then + e.self:Say("It does need work. It should make the listener sad. I fear all my best tunes are behind me. That's why I am here. I am trying to write a [new composition]."); + elseif(e.message:findi("new composition")) then + e.self:Say("I have come here to create my greatest composition. I call it 'The Winds of Karana.' Alas, the song sheets have been taken from me. While I, ahem, attended to some personal business, a hermit came and stole two song sheets from my pack. It would be grand if, in your journeys, you were to come upon this hermit of the plains and return my song sheets to me. I would pay dearly. Now, I must get back to my thoughts. Please excuse me."); + elseif(e.message:findi("sad tune")) then + e.self:Say("It takes a broken heart to truly appreciate that tune. I'm glad you enjoyed it. My dear [Metala] left me one year ago. The wound has healed, but the scar remains. I am presently trying to complete a [new composition]. Maybe that will turn me around."); + elseif(e.message:findi("Metala")) then + e.self:Say("My dear sweet Metala Highflit. She was a bard I trained and fell in love with. We were perfect together. We composed many love ballads during those years. I just love the way she used to brush the hair away from her face and to see her in the moonlight brought daylight to my soul . We had such times ! I remember once, we had dinner at the Lion's Mane and we ordered a burrow pie for dessert. She got some whipped cream on her nose! Oh, it was so cute... am I [boring] you or should I tell you [where it went wrong]?"); + elseif(e.message:findi("boring")) then + e.self:Say("I understand. I must find a way to lift my spirits so that my audience will also be uplifted. I'm sure my new composition will help me overcome this sadness."); + elseif(e.message:findi("where it went wrong")) then + e.self:Say("It was like that for years and then it all just ended. She began to hang around some man called Garuc Anehm. She started attending evening functions. She said it was choir practice for the Temple of Life. Do you want to know [what I found out], or am I [boring] you?"); + elseif(e.message:findi("what I found out")) then + e.self:Say("Feeling neglected, I also went to join the choir. To my shock, I learned from High Priestess Jahnda that Metala was never in the choir. When I mentioned that fellow Garuc's name, she gave me a dirty look and would say nothing further. I must be boring you. You don't want to [hear the end]..."); + elseif(e.message:findi("hear the end")) then + e.self:Say("I went home to confront Metala. All I found was an empty house and a note. 'Sorry to leave. Thank you for all you have taught me. My new friends have shown me new paths of pain. My music shall sing for a new generation of bard. Goodbye.' I never saw her again . Whatever she has started is twisted and contorted. It is not the music of the soul. She must be stopped before it is too late. Please go! I cannot speak of this further."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13114})) then -- Lisera Lute + e.self:Say("Oh, dear! I forgot to repair Cassius' lute. I shall fix and return it to him myself. Thank you for bringing this to me. Here, please return this note to Cassius. He shall be most happy. Thank you again, good citizen!"); + e.other:Faction(e.self,284,20,0); -- League of Antonican Bards + e.other:Faction(e.self,281,3,0); -- Knights of Truth + e.other:Faction(e.self,262,3,0); -- Guards of Qeynos + e.other:Faction(e.self,304,-1,0); -- Ring of scale + e.other:Faction(e.self,230,-1,0); -- Mayong Mistmoore + e.other:QuestReward(e.self,0,0,0,0,18803,5000); -- Note To Cassius + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13116,item2 = 13119})) then -- Winds of Karana sheet 1, Winds of Karana sheet 2 + e.self:Say("Thank you, my friend. I have just completed the composition. It is a work of art. Here. Have a copy. I hope you have the musical talent required to play it. If not.. Practice, practice, practice!"); + e.other:Faction(e.self,284,30,0); -- League of Antonican Bards + e.other:Faction(e.self,281,4,0); -- Knights of Truth + e.other:Faction(e.self,262,4,0); -- Guards of Qeynos + e.other:Faction(e.self,304,-1,0); -- Ring of scale + e.other:Faction(e.self,230,-1,0); -- Mayong Mistmoore + e.other:QuestReward(e.self,5,0,0,0,eq.ChooseRandom(15722,15717,15703,15700),5000); -- Song: Jaxan's Jig o' Vigor or Song: Selo's Accelerando or Song: Chords of Dissonance or Song: Chant of Battle + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE zone:southkarana ID:14058 -- Vhalen_Nostrolo.pl diff --git a/southkarana/Yeka_Ias.lua b/southkarana/Yeka_Ias.lua new file mode 100644 index 0000000..acbb005 --- /dev/null +++ b/southkarana/Yeka_Ias.lua @@ -0,0 +1,18 @@ +function event_spawn(e) + eq.set_timer("daydream",2700000); +end + +function event_timer(e) + e.self:Emote("seems oblivious to the outside world. He stares into the water, chuckling every so often, as he drops in some sort of pebble that hisses for a moment on impact. His robes seem faded, tattered, and caked in dirt. A slight green shimmer surrounds his body."); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20695})) then + e.self:Emote("grabs the heart as you toss it to him before realizing what it is. As soon as it touches his hands, his body convulses, a sickly light emanating from his eyes and oozing cracks appear in his skin. As he melts into the ground, a small glowing ball floats where he once stood."); + e.other:QuestReward(e.self,0,0,0,0,20698,2000); -- Item: Cleansed Spirit of Antonica + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/southkarana/a_hermit.lua b/southkarana/a_hermit.lua new file mode 100644 index 0000000..cd37599 --- /dev/null +++ b/southkarana/a_hermit.lua @@ -0,0 +1,43 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Huh!? Leave now before my pets devour you!"); + elseif(e.message:findi("sheet of music")) then + e.self:Say("So you seek the two song sheets? If you truly want them, you will help the cause of the Unkempt Druids. Otherwise, you would have to fight me for it. So, which will it be? Will you help the Unkempt Druids or will you fight me?"); + elseif(e.message:findi("unkempt druids")) then + e.self:Say("The Unkempt Druids are the voices of the trees and the animals. We fight for the hunted prey and the vanishing forests. We are the true druids and rangers who fight for the preservation of nature. If humanoid lives must be sacrificed to meet this goal, then so be it!"); + elseif(e.message:findi("will help")) then + e.self:Say("Wise decision. I ask you then, to go to the western plains of Karana. Seek a farmer called Linaya Sowlin. Bring me her heart. A heart for a song sheet. Fitting, don't you think?"); + elseif(e.message:findi("flute")) then + e.self:Say("A flute, eh? I do have a flute I got from a bard named Cordelia. You can have it if you do me a favor."); + elseif(e.message:findi("favor")) then + e.self:Say("Oh!! Will you? Well then, go into the Plains of Karana and search for a man named Talym Shoontar. He is a murderer of Norrath's creatures. He must be stopped! Bring me his head and you shall have your flute."); + elseif(e.message:findi("kill you")) then + e.self:Say("So be it! Fool!"); + eq.attack(e.other:GetName()); + elseif(e.message:findi("join the unkempt")) then + e.self:Say("Then please wait outside for Master Jale Phlintoes. He will be arriving soon."); + eq.unique_spawn(14172, 16, 0, -3723, -5561, 0,0); -- NPC: Jale_Phlintoes + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13854})) then -- human heart + e.self:Say("Good work, my friend! I thank you and the Unkempt Druids thank you. Unfortunately I have sold the other song sheet to a traveling bard of the plains. I believe her name was Cordelia. Now be on your way. Unless you plan to join the Unkempt Druids..?"); + -- Confirmed Live Factions + e.other:Faction(e.self,324,20,0); -- unkempt druids + e.other:Faction(e.self,262,-5,0); -- guard of qeynos + e.other:Faction(e.self,272,-15,0); -- jaggedpine treefolks + e.other:Faction(e.self,343,10,0); -- qrg Protected animal + e.other:QuestReward(e.self,0,0,0,0,13116,1000); -- Winds of Karana sheet 1 + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13913})) then -- barbarian head (Talym's Head) + e.self:Say("What fine work you do! In the name of all Norrath's beasts and of the Unkempt Druids, I thank you. No longer will there be senseless slaughter. Here is the flute."); + e.other:Faction(e.self,324,10,0); -- unkempt druids + e.other:Faction(e.self,262,-10,0); -- guard of qeynos + e.other:Faction(e.self,272,-10,0); -- jaggedpine treefolks + e.other:Faction(e.self,343,10,0); -- qrg Protected animal + e.other:QuestReward(e.self,0,0,0,0,13310,1000); -- A cracked Flute + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/southkarana/an_interrogator.lua b/southkarana/an_interrogator.lua new file mode 100644 index 0000000..252bcf0 --- /dev/null +++ b/southkarana/an_interrogator.lua @@ -0,0 +1,90 @@ +-- an_interrogator in south karana +local brief; +local name; + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18292 })) then -- Interrogator's Briefing + e.self:Say("I see you wish to become an interrogator. This is not a duty for the weak of heart you know. This job sometimes requires..."); + e.other:QuestReward(e.self,0,0,0,0,2344,1000); -- confession document + eq.set_timer("brief",10000); + name = e.other:GetName(); + brief = 0; + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 2390,item2 = 2391,item3 = 2395})) then -- Head of Markus Cachexia, Head of Morley Murrain, Theodore's Confession + e.self:Say("Excellent work, you did just fine today. You'll make a fine interrogator. Talk to Vegalys about advancing further."); + e.other:QuestReward(e.self,0,0,0,0,2387,5000); -- Interrogator's Badge + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + if(e.timer == "brief") then + brief = brief + 1; + end + if(brief == 1) then + e.self:Emote("coughs, 'a little muscle I guess you would say.'"); + elseif(brief == 2) then + e.self:Say("Nevertheless, we have an important job to do. There is a man by the name of Theodore Exanthem who is a known member of the Bloodsaber cult. He fled from Qeynos some time ago and we have been hot on his tail ever since."); + elseif(brief == 3) then + e.self:Say("We have tracked this man down and we now know his whereabouts. However, we have bigger fish to fry today then just this low life. Theodore knows the location of two other individuals also suspected of hiding out here in the plains."); + elseif(brief == 4) then + e.self:Say("Sadly, these fiends were the two that slipped into Surefall Glade and poisoned the waters there. Though the druids were able to quickly combine their efforts and neutralize the toxins with their magicks, grievous damage was done none the less. Two of the great protectors of the hills and the glade, Holly Windstalker and Cros Treewind, became seriously ill as did one of the glade's sacred bears."); + elseif(brief == 5) then + e.self:Say("Holly and Cros, sickened as they were, removed themselves from the Hills to weather out their illness and to keep the disease from spreading further. During their absence, the Bloodsabers were easily able to traffic in the materials needed to complete their terrible work."); + elseif(brief == 6) then + e.self:Emote("shakes his head sadly and says, 'Tragically, Cros Treewind was attacked by one of the sacred bears which was maddened by its illness. In his weakened state Cros was unable to defend himself and was killed by this defiled grizzly, one of the very creatures he was sworn to protect.'"); + elseif(brief == 7) then + e.self:Say("So our goal is to pry the information we need from Theodore Exanthem so that we may bring these two fugitives to justice. After getting him to comply, you are to collect a confession from Theodore and have him lead us to the two fugitives. Give me Theodore's confession and the heads of these two fugitives and you shall have your badge"); + elseif(brief == 8) then + e.self:Say(string.format("follow me, %s",name)); + eq.start(4); -- start the grid (one way repop) + eq.stop_timer("brief"); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 1) then + --e.self:PauseWandering(60000); This does not seems to work properly on existing grid. + e.self:Say("Theodore Exanthem by order of the Council of Qeynos and his lordship Antonius Bayle, I order you to come out of there immediately!"); + eq.unique_spawn(14146,0,0,-2680,-5465,0,192); -- NPC: #Theodore_Exanthem + elseif(e.wp == 2) then -- a workaround for waypoint + eq.signal(14146,6,5000); -- NPC: #Theodore_Exanthem + elseif(e.wp == 3) then + eq.unique_spawn(14147,0,0,-3287,-6040,0,28); -- NPC: #Morley_Murrain + eq.unique_spawn(14127,0,0,-3280,-6050,0,31); -- NPC: #Markus_Cachexia + eq.spawn2(14140,0,0,-3285,-6075,0,78); -- NPC: Skeletal_Servant + eq.spawn2(14140,0,0,-3333,-6055,0,0); -- NPC: Skeletal_Servant + eq.spawn2(14148,0,0,-3306,-6056,0,66); -- NPC: Ghoul + eq.signal(14146,7,2000); -- NPC: #Theodore_Exanthem + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Theodore Exanthem, you will [take us to the location] of Marcus Cachexia and Morley Murrain immediately."); + eq.signal(14146,1,5000); -- NPC: #Theodore_Exanthem + elseif(e.signal == 2) then + e.self:Say("Vile beast! You are withholding information on two men guilty of terrible atrocities, not the least of which was causing the death of one of Qeynos' most respected and well known citizens, Cros Treewind! As an Interrogator I am authorized to use physical force if necessary."); + eq.signal(14146,2,5000); -- NPC: #Theodore_Exanthem + elseif(e.signal == 3) then + e.self:Say("[Take us to the location] of Markus Cachexia and Morley Murrain!"); + eq.signal(14146,3,5000); -- NPC: #Theodore_Exanthem + elseif(e.signal == 4) then + e.self:Say("Take us to Markus Chachexia and Morley Murrain this instant or I'll turn you over to my friend here who appears to be much stronger than I am!"); + eq.signal(14146,4,5000); -- NPC: #Theodore_Exanthem + elseif(e.signal == 5) then + e.self:Emote("smiles and says, 'Well, I'm getting tired. Why don't you hit him for a while. Maybe you will be more convincing then I have been."); + eq.signal(14146,5,5000); -- NPC: #Theodore_Exanthem + elseif(e.signal == 6) then + e.self:Say("[Take us to the location] of Markus Cachexia and Morley Murrain!"); + --eq.signal(14146,6,5000); using this for wp 2. + --elseif(e.signal == 7) then + --e.self:ResumeWandering(); This is not working as intended. this cause the mob to depop. + elseif(e.signal == 8) then + e.self:Say("Not so fast. If you want your freedom back, sign this confession immediately."); + elseif(e.signal == 9) then + e.self:Say(string.format("You are on your own for now, %s. You know what to do -- return to me when the deed is done.",name)); + eq.depop_with_timer(); + end +end diff --git a/sro/Andad_Filla.lua b/sro/Andad_Filla.lua new file mode 100644 index 0000000..9a9d7df --- /dev/null +++ b/sro/Andad_Filla.lua @@ -0,0 +1,23 @@ +-- Zone: Southern Ro +-- Short Name: sro +-- Zone ID: 35 + +-- NPC Name: Andad Filla +-- NPC ID: 35030 +-- Quest Status: finished +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello traveler, please do not bother me right now; I am waiting for someone."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20533})) then + e.self:Say("You still have a ways to go! Seek out Misty Tekcihta near the arena at Lake Rathe. Run like the wind!"); + e.other:QuestReward(e.self,0,0,0,0,20534,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sro/Ortallius.lua b/sro/Ortallius.lua new file mode 100644 index 0000000..5a861ff --- /dev/null +++ b/sro/Ortallius.lua @@ -0,0 +1,41 @@ +-- DEVELOPER: KOVOU +-- DEVELOPER: UNKOWN Gem Turn in text was already present + +-- *** NPC INFORMATION *** + +-- NAME: Ortallius +-- ID: 35036 +-- ZONE: sro +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the lands of Ro. Stand and fight with me. We shall fight to reclaim the desert in the name of Solusek Ro. Death to all [dervish cutthroats]!!"); + elseif(e.message:findi("dervish cutthroats")) then + e.self:Say("The dervish cutthroats are the vile scum who inhabit the desert. They are rogues who assault wayward travelers. Solusek Ro has commanded their extermination!! Do you wish to [join the crusade]?"); + elseif(e.message:findi("join the crusade")) then + e.self:Emote("grins enthusiastically. 'The scum rarely wander far from their camps. Hunt them down and I will reward you for every three insignia rings you bring as proof of their deaths."); + elseif(e.message:findi("solusek")) then + e.self:Say("Solusek Ro is the Burning Prince. He watches over this land which He created. He will soon come to burn the evil from the desert. He has chosen Ortallius to begin His crusade. He has bestowed upon me the power of righteousness, I am His paladin! All shall fall before His greatness!"); + elseif(e.message:findi("rathmana")) then + e.self:Say("Rathmana is a great wizard. He is also my best friend. [Solusek] sent him to save me from the savage desert when I was but a child in my dying mother's arms. He saved me from being captured by the [dervish cutthroats]."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I was instructed to wait for two gems."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12348, item2 = 12349},1,text)) then -- 2 Gems + e.self:Say("You serve the Burning Prince as I do. The Redeemed has instructed me to give you this reward upon completion of your test. Practice your arts and prepare yourself. Evil approaches our realm. Long live Ro!!"); + e.other:Faction(e.self,415,25,0); -- faction better: 'Temple Of Sol Ro' + e.other:Faction(e.self,416,-1,0); -- faction worse: 'Shadowed Men' + e.other:QuestReward(e.self,0,0,0,4,7041); -- Burning Rapier + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1903,item2 = 1903, item3 = 1903})) then + e.self:Say("You will make a fine addition to the crusade. Continue the cleansing of the desert. Let it be known that the Defenders of Ro are here to challenge the evils of the desert. I call upon the righteousness of all paladins to assist me."); + e.other:Faction(e.self,415,5,0); -- faction better: 'Temple Of Sol Ro' + e.other:Faction(e.self,416,-1,0); -- faction worse: 'Shadowed Men' + e.other:QuestReward(e.self,8,4,0,0,eq.ChooseRandom(5013,5014,5015,5016,5019,5020,5020,5021,5022,5023,5024,5025,5013,5014,5015,5016,5019,5020,5020,5021,5022,5023,5024,5025,5013,5014,5015,5016,5019,5020,5020,5021,5022,5023,5024,5025,3040,3042,3043,3044,3046,3047,3048,3049,3050,3051,4778,5028,5032,7012,5031,5027,6017,6019,7015,7013,6023,5034,5035),7500); -- Item(s): Rusty Short Sword (5013), Rusty Axe (5014), Rusty Scythe (5015), Rusty Broad Sword (5016), Rusty Long Sword (5019), Rusty Battle Axe (5020), Rusty Battle Axe (5020), Rusty Scimitar (5021), Rusty Bastard Sword (5022), Rusty Two Handed Sword (5023), Rusty Halberd (5024), Rusty Two Handed Battle Axe (5025), Rusty Short Sword (5013), Rusty Axe (5014), Rusty Scythe (5015), Rusty Broad Sword (5016), Rusty Long Sword (5019), Rusty Battle Axe (5020), Rusty Battle Axe (5020), Rusty Scimitar (5021), Rusty Bastard Sword (5022), Rusty Two Handed Sword (5023), Rusty Halberd (5024), Rusty Two Handed Battle Axe (5025), Rusty Short Sword (5013), Rusty Axe (5014), Rusty Scythe (5015), Rusty Broad Sword (5016), Rusty Long Sword (5019), Rusty Battle Axe (5020), Rusty Battle Axe (5020), Rusty Scimitar (5021), Rusty Bastard Sword (5022), Rusty Two Handed Sword (5023), Rusty Halberd (5024), Rusty Two Handed Battle Axe (5025), Blackened Iron Coif (3040), Blackened Iron Collar (3042), Blackened Iron Mail (3043), Blackened Iron Spaulder (3044), Blackened Iron Waistband (3046), Blackened Iron Armplates (3047), Blackened Iron Bracers (3048), Blackened Iron Gloves (3049), Blackened Iron Legplates (3050), Blackened Iron Boots (3051), Bronze Weapons + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sro/Rathmana_Allin.lua b/sro/Rathmana_Allin.lua new file mode 100644 index 0000000..ffbca31 --- /dev/null +++ b/sro/Rathmana_Allin.lua @@ -0,0 +1,39 @@ +-- NPC: Rathmana Allin. Location: South Ro + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Company?! Way out here in the desert of Ro? This is a pleasant surprise! Won't you stay for a while? I am sure the desert has dried your throat. I have supplies if necessary. At a price, of course. Are you [traveling] or are you here on [business]?"); + elseif(e.message:findi("business")) then + e.self:Say("Of course. You do not look like a traveling merchant or a lost adventurer. Someone has sent you to Rathmana. Well then, let's not waste time. Give me the item, or items, and my fee of twenty gold coins. It must be gold. I have no use for any other metals."); + elseif(e.message:findi("traveling")) then + e.self:Say("Oh, wonderful! Then you must need water and rations for your long journey. Be sure to approach any camp you may find in Ro with caution. There are many bandits in the desert. If it were not for Ortallius, they would have gutted me and thieved all my merchandise by now. If you have any use of magic then I believe I may have an [offer] for you."); + elseif(e.message:findi("offer")) then + e.self:Say("My offer to you is this, you give me thirty gold and I allow you to reach into my scroll bag and retrieve one scroll and only one. It may be the spell of a wizard or maybe not. The school of magic will not be known beforehand. The only knowledge you will have is that Rathmana will not exchange the spell for another. You get what you take. Do you wish to reach into my bag? Then give Rathmana his thirty gold coins."); + elseif(e.message:findi("solusek")) then + e.self:Say("Solusek Ro is the Burning Prince. It is He who watches over this desert and chooses who lives and who dies. It was He who saved Rathmana from the heretics and it was He who saved Ortallius from the sands."); + elseif(e.message:findi("heretic")) then + e.self:Say("As you can see, I am an Erudite, and I was raised in the great schools of magic in Erud. In my youth, I learned of a forbidden art. That art was necromancy. I secretly studied this art and eventually happened upon others who practiced the art of darkness. These magic users, or rather, necromancers, are called heretics. I learned their ways, but before I completely converted to their dark ways, I attempted to flee their circle. They caught me and through arcane means transported me to this desert. I would have died if it were not for a vision of Solusek Ro. He appeared to me and created a hole in Norrath. It was from this hole I drank and lived. Since then I call the desert of Ro home, and live my humble life in the name of the Burning Prince, Solusek Ro."); + elseif(e.message:findi("ortallius") or e.message:findi("orc")) then + e.self:Say("Pay no mind to him. He is my friend. I found him as a child, dying under the blazing sun of Ro. He was curled up next to his dead mother's body. I raised him since then. He is quite the opposite of what you would expect of an orc. He is a good person. To me, anyway."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I believe there is more yet."; + -- Rathmana's Scroll Offer + if(item_lib.check_turn_in(e.self, e.trade, {gold = 30})) then + e.self:Say("Good luck, my friend. May Solusek Ro guide your hand."); + e.other:Faction(e.self,415,5); -- Temple of Solusek Ro + e.other:Faction(e.self,416,-1); -- Shadowed Men + e.other:QuestReward(e.self,math.random(100),math.random(100),math.random(20),0,eq.ChooseRandom(15022, 15035, 15038, 15039, 15303, 15328, 15355, 15364, 15445, 15300, 13360, 13360, 13360, 13360, 13360, 13360, 13360, 13360, 13360, 13360, 13360, 13360, 13360, 13360, 13360, 13360, 13360, 13360, 13360, 13360),100); + -- Force Snap, Bind Affinity, Lightning Bolt, Quickness, Whirl Til You Hurl, Column of Fire, Engulfing Darkness, Banshee Aura, Lifedraw, Charm, Rotted Illegible Scroll (Multiple copies added to increase percentage) + -- The Bayle List quest + elseif (item_lib.check_turn_in(e.self, e.trade, {item1 = 18808, item2 = 18809, item3 = 18810, gold = 20},1,text)) then -- Bayle List I, Bayle List II, Bayle List III + e.self:Say("A simple code. Why do you even bother Rathmana with such child's play? Here is your translation. That was the easiest twenty gold coins I ever earned."); + e.other:Faction(e.self,415,5); -- Faction: Temple of Solusek Ro + e.other:Faction(e.self,416,-1); -- Faction: Shadowed Men + e.other:QuestReward(e.self,0,0,0,0,18825); -- Bayle List + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sro/Smith_Tv-ysa.lua b/sro/Smith_Tv-ysa.lua new file mode 100644 index 0000000..619a6be --- /dev/null +++ b/sro/Smith_Tv-ysa.lua @@ -0,0 +1,35 @@ +-- Evil Research +-- The xp from this quest was what made it worthwhile, more than the concordance. -Kilelen +-- Converted to .lua by Speedz + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFaction(e.self) <= 5) then + e.self:Say("I am Tv`ysa, guardian of the [Concordance of Research]."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("Concordance of Research")) then + e.self:Say("The 'Concordance of Research' is an aid to those who follow the path of academia. It, and its sister books, 'Runes and Research', volumes I and II, help those who are [interested] in researching spells."); + elseif(e.message:findi("interested")) then + e.self:Say("I have several copies of each book. If you want a copy of 'Runes and Research', volume I or II, bring me a lightstone and I will give you whichever book I have more of at the moment. Bring me a greater lightstone, and I will give you a copy of the 'Concordance of Research."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFaction(e.self) <= 5 and (item_lib.check_turn_in(e.self, e.trade, {item1 = 10300}))) then -- Lightstone + e.self:Say("A lightstone ? Thank you very much. Here is a copy of 'Runes and Research' for you."); + e.other:Faction(e.self,236,10,0); -- Dark Bargainers + e.other:Faction(e.self,334,1,0); -- Dreadguard Outer + e.other:Faction(e.self,370,1,0); -- Dreadguard Inner + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(18175, 18176),28000); -- Runes and Research Volume I or II + elseif(e.other:GetFaction(e.self) <= 5 and (item_lib.check_turn_in(e.self, e.trade, {item1 = 10400}))) then -- Greater Lightstone + e.self:Say("A greater lightstone? Thank you very much. Here is a 'Concordance of Research' for you."); + e.other:Faction(e.self,236,10,0); -- Dark Bargainers + e.other:Faction(e.self,334,1,0); -- Dreadguard Outer + e.other:Faction(e.self,370,1,0); -- Dreadguard Inner + e.other:QuestReward(e.self,0,0,0,0,17504,55000); -- Concordance of Research + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sro/Terrorantula.lua b/sro/Terrorantula.lua new file mode 100644 index 0000000..0761ad1 --- /dev/null +++ b/sro/Terrorantula.lua @@ -0,0 +1,12 @@ +-- Converted to .lua by Speedz + +function event_death_complete(e) + xloc = e.self:GetX(); + yloc = e.self:GetY(); + zloc = e.self:GetZ(); + myheading = e.self:GetHeading(); + eq.spawn2(35069,15,0,xloc + 5,yloc,zloc,myheading); -- NPC: a_terrorantuling + eq.spawn2(35069,15,0,xloc - 5,yloc,zloc,myheading); -- NPC: a_terrorantuling + eq.spawn2(35069,15,0,xloc,yloc + 5,zloc,myheading); -- NPC: a_terrorantuling + eq.spawn2(35069,15,0,xloc,yloc - 5,zloc,myheading); -- NPC: a_terrorantuling +end diff --git a/sseru/#Actuarii_Boyn.lua b/sseru/#Actuarii_Boyn.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Actuarii_Boyn.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Actuarii_Buccarn.lua b/sseru/#Actuarii_Buccarn.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Actuarii_Buccarn.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Actuarii_Othal.lua b/sseru/#Actuarii_Othal.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Actuarii_Othal.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Actuarii_Panus.lua b/sseru/#Actuarii_Panus.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Actuarii_Panus.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Actuarii_Runol.lua b/sseru/#Actuarii_Runol.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Actuarii_Runol.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Actuarii_Silverlake.lua b/sseru/#Actuarii_Silverlake.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Actuarii_Silverlake.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#An_Intervallum_Guard.lua b/sseru/#An_Intervallum_Guard.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#An_Intervallum_Guard.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Anafora_Silverlake.lua b/sseru/#Anafora_Silverlake.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Anafora_Silverlake.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Arx_Guardian_Brightway.lua b/sseru/#Arx_Guardian_Brightway.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Arx_Guardian_Brightway.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Arx_Guardian_McHaer.lua b/sseru/#Arx_Guardian_McHaer.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Arx_Guardian_McHaer.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Arx_Guardian_McMara.lua b/sseru/#Arx_Guardian_McMara.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Arx_Guardian_McMara.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Arx_Guardian_McMurto.lua b/sseru/#Arx_Guardian_McMurto.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Arx_Guardian_McMurto.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Arx_Guardian_Silverkey.lua b/sseru/#Arx_Guardian_Silverkey.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Arx_Guardian_Silverkey.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Arx_Guardian_Truefoot.lua b/sseru/#Arx_Guardian_Truefoot.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Arx_Guardian_Truefoot.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Breanna_Fisher.lua b/sseru/#Breanna_Fisher.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Breanna_Fisher.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Breelisa_Fisher.lua b/sseru/#Breelisa_Fisher.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Breelisa_Fisher.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Breena_Fisher.lua b/sseru/#Breena_Fisher.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Breena_Fisher.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Byorn_Hollowbelly.lua b/sseru/#Byorn_Hollowbelly.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Byorn_Hollowbelly.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Calana_Mani.lua b/sseru/#Calana_Mani.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Calana_Mani.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Caldori_Porva.lua b/sseru/#Caldori_Porva.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Caldori_Porva.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Castrorum_Braku.lua b/sseru/#Castrorum_Braku.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Castrorum_Braku.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Castrorum_Kutika.lua b/sseru/#Castrorum_Kutika.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Castrorum_Kutika.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Castrorum_Plita.lua b/sseru/#Castrorum_Plita.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Castrorum_Plita.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Castrorum_Sifu.lua b/sseru/#Castrorum_Sifu.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Castrorum_Sifu.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Castrorum_Tenak.lua b/sseru/#Castrorum_Tenak.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Castrorum_Tenak.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Castrorum_Urka.lua b/sseru/#Castrorum_Urka.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Castrorum_Urka.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Castrorum_Wunar.lua b/sseru/#Castrorum_Wunar.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Castrorum_Wunar.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Castrorum_Zifala.lua b/sseru/#Castrorum_Zifala.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Castrorum_Zifala.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Centurion_Antru.lua b/sseru/#Centurion_Antru.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Centurion_Antru.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Centurion_Brana.lua b/sseru/#Centurion_Brana.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Centurion_Brana.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Centurion_Brula.lua b/sseru/#Centurion_Brula.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Centurion_Brula.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Centurion_Casamonti.lua b/sseru/#Centurion_Casamonti.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Centurion_Casamonti.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Centurion_Rikola.lua b/sseru/#Centurion_Rikola.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Centurion_Rikola.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Centurion_Vashil.lua b/sseru/#Centurion_Vashil.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Centurion_Vashil.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Centurion_Xavi.lua b/sseru/#Centurion_Xavi.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Centurion_Xavi.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Centurion_Xaxi.lua b/sseru/#Centurion_Xaxi.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Centurion_Xaxi.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Centurion_Zalpha.lua b/sseru/#Centurion_Zalpha.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Centurion_Zalpha.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Cornicularii_Kalama.lua b/sseru/#Cornicularii_Kalama.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Cornicularii_Kalama.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Cornicularii_Mindo.lua b/sseru/#Cornicularii_Mindo.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Cornicularii_Mindo.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Cornicularii_Tista.lua b/sseru/#Cornicularii_Tista.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Cornicularii_Tista.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Cornicularii_Zigta.lua b/sseru/#Cornicularii_Zigta.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Cornicularii_Zigta.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Cornicularri_Risto.lua b/sseru/#Cornicularri_Risto.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Cornicularri_Risto.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Custos_Valka.lua b/sseru/#Custos_Valka.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Custos_Valka.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Darla_Pushwheel.lua b/sseru/#Darla_Pushwheel.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Darla_Pushwheel.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Druina_McFlagal.lua b/sseru/#Druina_McFlagal.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Druina_McFlagal.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Elom_Ryatal.lua b/sseru/#Elom_Ryatal.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Elom_Ryatal.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Elsa_McGornit.lua b/sseru/#Elsa_McGornit.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Elsa_McGornit.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Falina_Roughspinner.lua b/sseru/#Falina_Roughspinner.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Falina_Roughspinner.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Fand_Iftara.lua b/sseru/#Fand_Iftara.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Fand_Iftara.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Glis_Bluesky.lua b/sseru/#Glis_Bluesky.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Glis_Bluesky.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Grati_Gemfinder.lua b/sseru/#Grati_Gemfinder.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Grati_Gemfinder.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Groal_Ealdin.lua b/sseru/#Groal_Ealdin.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Groal_Ealdin.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Ilia_Hightree.lua b/sseru/#Ilia_Hightree.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Ilia_Hightree.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Landar_Eklin.lua b/sseru/#Landar_Eklin.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Landar_Eklin.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Aeblish.lua b/sseru/#Legionnaire_Aeblish.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Aeblish.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Aiddan.lua b/sseru/#Legionnaire_Aiddan.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Aiddan.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Angust.lua b/sseru/#Legionnaire_Angust.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Angust.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Balien.lua b/sseru/#Legionnaire_Balien.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Balien.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Brill.lua b/sseru/#Legionnaire_Brill.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Brill.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Caelum.lua b/sseru/#Legionnaire_Caelum.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Caelum.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Celox.lua b/sseru/#Legionnaire_Celox.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Celox.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Durus.lua b/sseru/#Legionnaire_Durus.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Durus.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Elari.lua b/sseru/#Legionnaire_Elari.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Elari.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Equus.lua b/sseru/#Legionnaire_Equus.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Equus.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Faieaie.lua b/sseru/#Legionnaire_Faieaie.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Faieaie.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Fenstra.lua b/sseru/#Legionnaire_Fenstra.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Fenstra.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Fircka.lua b/sseru/#Legionnaire_Fircka.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Fircka.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Fulgeo.lua b/sseru/#Legionnaire_Fulgeo.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Fulgeo.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Galea.lua b/sseru/#Legionnaire_Galea.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Galea.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Garffe.lua b/sseru/#Legionnaire_Garffe.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Garffe.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Glap.lua b/sseru/#Legionnaire_Glap.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Glap.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Gyarg.lua b/sseru/#Legionnaire_Gyarg.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Gyarg.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Haldrick.lua b/sseru/#Legionnaire_Haldrick.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Haldrick.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Hava.lua b/sseru/#Legionnaire_Hava.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Hava.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Kallazam.lua b/sseru/#Legionnaire_Kallazam.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Kallazam.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Kazzek.lua b/sseru/#Legionnaire_Kazzek.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Kazzek.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Lorica.lua b/sseru/#Legionnaire_Lorica.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Lorica.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Loricut.lua b/sseru/#Legionnaire_Loricut.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Loricut.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Meos.lua b/sseru/#Legionnaire_Meos.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Meos.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Mhits.lua b/sseru/#Legionnaire_Mhits.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Mhits.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Munsoon.lua b/sseru/#Legionnaire_Munsoon.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Munsoon.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Nefas.lua b/sseru/#Legionnaire_Nefas.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Nefas.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Ocius.lua b/sseru/#Legionnaire_Ocius.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Ocius.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Palati.lua b/sseru/#Legionnaire_Palati.lua new file mode 100644 index 0000000..d4bda07 --- /dev/null +++ b/sseru/#Legionnaire_Palati.lua @@ -0,0 +1,65 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I have too much on my mind to make chitchat, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("brother")) then + e.self:Say("My older brother Yill. He's a Praetorian, a fine fine soldier who was promoted from the Legion to Seru's personal guard. He has been doing that for years now. But he just had his Question a few weeks back, and since then, he has not been the same. This was his tenth Question. I have been through eight myself, they are rough at times, but it is for the good of the city. You can fail and are cast out, die in the process, or you pass and go on with your life. But what happened to Yill is different."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Pino.lua b/sseru/#Legionnaire_Pino.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Pino.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Potens.lua b/sseru/#Legionnaire_Potens.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Potens.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Rammi.lua b/sseru/#Legionnaire_Rammi.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Rammi.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Rodalek.lua b/sseru/#Legionnaire_Rodalek.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Rodalek.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Rotin.lua b/sseru/#Legionnaire_Rotin.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Rotin.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Rukos.lua b/sseru/#Legionnaire_Rukos.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Rukos.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Sedo.lua b/sseru/#Legionnaire_Sedo.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Sedo.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Skross.lua b/sseru/#Legionnaire_Skross.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Skross.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Tibos.lua b/sseru/#Legionnaire_Tibos.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Tibos.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Tulen.lua b/sseru/#Legionnaire_Tulen.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Tulen.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Tutela.lua b/sseru/#Legionnaire_Tutela.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Tutela.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Valde.lua b/sseru/#Legionnaire_Valde.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Valde.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Vaslan.lua b/sseru/#Legionnaire_Vaslan.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Vaslan.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Vindic.lua b/sseru/#Legionnaire_Vindic.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Vindic.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Vires.lua b/sseru/#Legionnaire_Vires.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Vires.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Visum.lua b/sseru/#Legionnaire_Visum.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Visum.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Voleo.lua b/sseru/#Legionnaire_Voleo.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Voleo.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Vulati.lua b/sseru/#Legionnaire_Vulati.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Vulati.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Wraeni.lua b/sseru/#Legionnaire_Wraeni.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Wraeni.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Xinn.lua b/sseru/#Legionnaire_Xinn.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Xinn.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Zavi.lua b/sseru/#Legionnaire_Zavi.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Zavi.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Legionnaire_Zota.lua b/sseru/#Legionnaire_Zota.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Legionnaire_Zota.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Lema_Aru.lua b/sseru/#Lema_Aru.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Lema_Aru.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Lendel_Trobo.lua b/sseru/#Lendel_Trobo.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Lendel_Trobo.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Linfa_Deepdark.lua b/sseru/#Linfa_Deepdark.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Linfa_Deepdark.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Lord_Inquisitor_Seru.lua b/sseru/#Lord_Inquisitor_Seru.lua new file mode 100644 index 0000000..69c5f30 --- /dev/null +++ b/sseru/#Lord_Inquisitor_Seru.lua @@ -0,0 +1,34 @@ +local SpawnX = 0; +local SpawnY = 0; +local SpawnZ = 0; +local SpawnH = 0; + +function event_spawn(e) + SpawnX = e.self:GetX(); + SpawnY = e.self:GetY(); + SpawnZ = e.self:GetZ(); + SpawnH = e.self:GetHeading(); + + e.self:SetSkill(11, 250); -- block +end + +function event_combat(e) + if(e.joined) then + eq.set_timer("goback",1000); --a 1 second leash timer. + else + eq.stop_timer("goback"); + e.self:GMMove(SpawnX,SpawnY,SpawnZ,SpawnH); + end +end + +function event_timer(e) + if(e.timer == "goback") then + if(e.self:GetX() < -364 or e.self:GetX() > -100 or e.self:GetY() < -564 or e.self:GetY() > -300) then + e.self:Shout("No! I must not leave the time chamber! If I do, I'll age and die!"); + e.self:GMMove(SpawnX,SpawnY,SpawnZ,SpawnH); + e.self:BuffFadeAll(); + e.self:WipeHateList(); + e.self:Heal(); + end + end +end diff --git a/sseru/#Maga_McMurta.lua b/sseru/#Maga_McMurta.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Maga_McMurta.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Mandro_Salma.lua b/sseru/#Mandro_Salma.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Mandro_Salma.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Marn_Loosefoot.lua b/sseru/#Marn_Loosefoot.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Marn_Loosefoot.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Meisa_Valk.lua b/sseru/#Meisa_Valk.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Meisa_Valk.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Mema_Dort.lua b/sseru/#Mema_Dort.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Mema_Dort.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Mose_Chewbeard.lua b/sseru/#Mose_Chewbeard.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Mose_Chewbeard.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Mrando_McGrannis.lua b/sseru/#Mrando_McGrannis.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Mrando_McGrannis.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Naldo_Ringer.lua b/sseru/#Naldo_Ringer.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Naldo_Ringer.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Ona_Strongback.lua b/sseru/#Ona_Strongback.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Ona_Strongback.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Optio_Crasa.lua b/sseru/#Optio_Crasa.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Optio_Crasa.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Optio_Dunar.lua b/sseru/#Optio_Dunar.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Optio_Dunar.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Optio_Ealna.lua b/sseru/#Optio_Ealna.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Optio_Ealna.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Optio_Gildan.lua b/sseru/#Optio_Gildan.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Optio_Gildan.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Optio_Halatini.lua b/sseru/#Optio_Halatini.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Optio_Halatini.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Optio_Manku.lua b/sseru/#Optio_Manku.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Optio_Manku.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Optio_Morgani.lua b/sseru/#Optio_Morgani.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Optio_Morgani.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Optio_Titha.lua b/sseru/#Optio_Titha.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Optio_Titha.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Optio_Wiknari.lua b/sseru/#Optio_Wiknari.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Optio_Wiknari.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Palo_Deepcreek.lua b/sseru/#Palo_Deepcreek.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Palo_Deepcreek.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Palti_McGar.lua b/sseru/#Palti_McGar.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Palti_McGar.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Praesertum_Bikun.lua b/sseru/#Praesertum_Bikun.lua new file mode 100644 index 0000000..3011ea9 --- /dev/null +++ b/sseru/#Praesertum_Bikun.lua @@ -0,0 +1,5 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Well hello " .. e.other:GetCleanName() .. "! Welcome to Sanctus Seru! Welcome to my chambers! Always glad to see new faces around here, it is good for business and good for morale."); + end +end diff --git a/sseru/#Praesertum_Matpa.lua b/sseru/#Praesertum_Matpa.lua new file mode 100644 index 0000000..6b68463 --- /dev/null +++ b/sseru/#Praesertum_Matpa.lua @@ -0,0 +1,5 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Busy man, can't chat. Important?"); + end +end diff --git a/sseru/#Praesertum_Rhugol.lua b/sseru/#Praesertum_Rhugol.lua new file mode 100644 index 0000000..a49be3d --- /dev/null +++ b/sseru/#Praesertum_Rhugol.lua @@ -0,0 +1,5 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ""); + end +end diff --git a/sseru/#Praesertum_Vantorus.lua b/sseru/#Praesertum_Vantorus.lua new file mode 100644 index 0000000..7a4ad9e --- /dev/null +++ b/sseru/#Praesertum_Vantorus.lua @@ -0,0 +1,7 @@ +function event_say(e) + if ( e.message:findi("hail") ) then + e.self:Say("You are a brave one, are you not? Few dare to disturb a Praesertum in his chambers, and fewer still dare to disturb me. Ha! I like that. What is it you seek? I promise nothing, but you earned some small portion of my time to listen to you. I also warn you, any treachery will meet a swift and final end. Of this have no doubt."); + elseif ( e.message:findi("loot") ) then + e.self:Say("Have you visited the Plane of Growth lately?"); + end +end diff --git a/sseru/#Praetor_Gralit.lua b/sseru/#Praetor_Gralit.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Praetor_Gralit.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Praetor_Iglak.lua b/sseru/#Praetor_Iglak.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Praetor_Iglak.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Praetor_Talga.lua b/sseru/#Praetor_Talga.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Praetor_Talga.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Praetorian_Aloma.lua b/sseru/#Praetorian_Aloma.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Praetorian_Aloma.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Praetorian_Archa.lua b/sseru/#Praetorian_Archa.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Praetorian_Archa.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Praetorian_Butre.lua b/sseru/#Praetorian_Butre.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Praetorian_Butre.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Praetorian_Chatez.lua b/sseru/#Praetorian_Chatez.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Praetorian_Chatez.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Praetorian_Fastina.lua b/sseru/#Praetorian_Fastina.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Praetorian_Fastina.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Praetorian_Glan.lua b/sseru/#Praetorian_Glan.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Praetorian_Glan.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Praetorian_Ligma.lua b/sseru/#Praetorian_Ligma.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Praetorian_Ligma.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Praetorian_Maklos.lua b/sseru/#Praetorian_Maklos.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Praetorian_Maklos.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Praetorian_Mere.lua b/sseru/#Praetorian_Mere.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Praetorian_Mere.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Praetorian_Molto.lua b/sseru/#Praetorian_Molto.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Praetorian_Molto.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Praetorian_Oritan.lua b/sseru/#Praetorian_Oritan.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Praetorian_Oritan.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Praetorian_Santu.lua b/sseru/#Praetorian_Santu.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Praetorian_Santu.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Praetorian_Silava.lua b/sseru/#Praetorian_Silava.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Praetorian_Silava.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Praetorian_Valka.lua b/sseru/#Praetorian_Valka.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Praetorian_Valka.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Praetorian_Yill.lua b/sseru/#Praetorian_Yill.lua new file mode 100644 index 0000000..165379a --- /dev/null +++ b/sseru/#Praetorian_Yill.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Praise to Seru. I...am...on...duty...I...will...not...converse...with...you. Praise to Seru."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Praetorian_Yvalda.lua b/sseru/#Praetorian_Yvalda.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Praetorian_Yvalda.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Primus_Benet.lua b/sseru/#Primus_Benet.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Primus_Benet.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Primus_Bilabi.lua b/sseru/#Primus_Bilabi.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Primus_Bilabi.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Primus_Elisora.lua b/sseru/#Primus_Elisora.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Primus_Elisora.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Primus_Ginval.lua b/sseru/#Primus_Ginval.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Primus_Ginval.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Primus_Kalani.lua b/sseru/#Primus_Kalani.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Primus_Kalani.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Primus_Niktar.lua b/sseru/#Primus_Niktar.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Primus_Niktar.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Primus_Palkani.lua b/sseru/#Primus_Palkani.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Primus_Palkani.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Primus_Rasha.lua b/sseru/#Primus_Rasha.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Primus_Rasha.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Primus_Sunar.lua b/sseru/#Primus_Sunar.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Primus_Sunar.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Primus_Tralo.lua b/sseru/#Primus_Tralo.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Primus_Tralo.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Questioner_Bakato.lua b/sseru/#Questioner_Bakato.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Questioner_Bakato.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Questioner_Bentarm.lua b/sseru/#Questioner_Bentarm.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Questioner_Bentarm.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Questioner_Broketoe.lua b/sseru/#Questioner_Broketoe.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Questioner_Broketoe.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Questioner_Finhorn.lua b/sseru/#Questioner_Finhorn.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Questioner_Finhorn.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Questioner_Longnight.lua b/sseru/#Questioner_Longnight.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Questioner_Longnight.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Questioner_Masaka.lua b/sseru/#Questioner_Masaka.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Questioner_Masaka.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Questioner_Misral.lua b/sseru/#Questioner_Misral.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Questioner_Misral.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Questioner_Monal.lua b/sseru/#Questioner_Monal.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Questioner_Monal.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Questioner_Rai.lua b/sseru/#Questioner_Rai.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Questioner_Rai.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Questioner_Redhands.lua b/sseru/#Questioner_Redhands.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Questioner_Redhands.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Questioner_Starpyre.lua b/sseru/#Questioner_Starpyre.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Questioner_Starpyre.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Questioner_Uila.lua b/sseru/#Questioner_Uila.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Questioner_Uila.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Raphar_Bal.lua b/sseru/#Raphar_Bal.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Raphar_Bal.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Rarg_McUltos.lua b/sseru/#Rarg_McUltos.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Rarg_McUltos.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Reane_Goldsun.lua b/sseru/#Reane_Goldsun.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Reane_Goldsun.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Sentry_Bangol.lua b/sseru/#Sentry_Bangol.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Sentry_Bangol.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Sentry_Eloka.lua b/sseru/#Sentry_Eloka.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Sentry_Eloka.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Sentry_Ris.lua b/sseru/#Sentry_Ris.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Sentry_Ris.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Sentry_Vak.lua b/sseru/#Sentry_Vak.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Sentry_Vak.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Sentry_Valamar.lua b/sseru/#Sentry_Valamar.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Sentry_Valamar.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Sentry_Valdair.lua b/sseru/#Sentry_Valdair.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Sentry_Valdair.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Sentry_Wiosk.lua b/sseru/#Sentry_Wiosk.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Sentry_Wiosk.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Shal_Wildleaf.lua b/sseru/#Shal_Wildleaf.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Shal_Wildleaf.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Siltan_Starfollower.lua b/sseru/#Siltan_Starfollower.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Siltan_Starfollower.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Skrea_Greenore.lua b/sseru/#Skrea_Greenore.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Skrea_Greenore.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Swit_Jestands.lua b/sseru/#Swit_Jestands.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Swit_Jestands.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Tigal_Cama.lua b/sseru/#Tigal_Cama.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Tigal_Cama.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Tral_Paltora.lua b/sseru/#Tral_Paltora.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Tral_Paltora.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Uls_McMannus.lua b/sseru/#Uls_McMannus.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Uls_McMannus.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Utos_McLarra.lua b/sseru/#Utos_McLarra.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Utos_McLarra.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Verda_Slowfire.lua b/sseru/#Verda_Slowfire.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Verda_Slowfire.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Vigilum_Cosaki.lua b/sseru/#Vigilum_Cosaki.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Vigilum_Cosaki.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Vigilum_Ealna.lua b/sseru/#Vigilum_Ealna.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Vigilum_Ealna.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Vigilum_Greel.lua b/sseru/#Vigilum_Greel.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Vigilum_Greel.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Vigilum_Mornus.lua b/sseru/#Vigilum_Mornus.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Vigilum_Mornus.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Vigilum_Nuno.lua b/sseru/#Vigilum_Nuno.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Vigilum_Nuno.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Vigilum_Pola.lua b/sseru/#Vigilum_Pola.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Vigilum_Pola.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Vigilum_Ripka.lua b/sseru/#Vigilum_Ripka.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Vigilum_Ripka.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Vigilum_Tsalf.lua b/sseru/#Vigilum_Tsalf.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Vigilum_Tsalf.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Vigilum_Uresko.lua b/sseru/#Vigilum_Uresko.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Vigilum_Uresko.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Vigilum_Vonari.lua b/sseru/#Vigilum_Vonari.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Vigilum_Vonari.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Vigilum_Warsala.lua b/sseru/#Vigilum_Warsala.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Vigilum_Warsala.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Vigulum_Pola.lua b/sseru/#Vigulum_Pola.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Vigulum_Pola.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Vysi_Caldo.lua b/sseru/#Vysi_Caldo.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Vysi_Caldo.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Waln_Isna.lua b/sseru/#Waln_Isna.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Waln_Isna.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Watcher_Caal.lua b/sseru/#Watcher_Caal.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Watcher_Caal.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Watcher_Grinnis.lua b/sseru/#Watcher_Grinnis.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Watcher_Grinnis.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Watcher_Kiba.lua b/sseru/#Watcher_Kiba.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Watcher_Kiba.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Watcher_Opa.lua b/sseru/#Watcher_Opa.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Watcher_Opa.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Watcher_Quen.lua b/sseru/#Watcher_Quen.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Watcher_Quen.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Watcher_Wilta.lua b/sseru/#Watcher_Wilta.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Watcher_Wilta.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Wiltan_Crushgrip.lua b/sseru/#Wiltan_Crushgrip.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Wiltan_Crushgrip.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Wilton_Valewalker.lua b/sseru/#Wilton_Valewalker.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Wilton_Valewalker.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Wisp_Nelonia.lua b/sseru/#Wisp_Nelonia.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Wisp_Nelonia.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Yika_Burrowbright.lua b/sseru/#Yika_Burrowbright.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Yika_Burrowbright.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#Yumik_Gropa.lua b/sseru/#Yumik_Gropa.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/#Yumik_Gropa.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/#a_lightcrawler.lua b/sseru/#a_lightcrawler.lua new file mode 100644 index 0000000..719283f --- /dev/null +++ b/sseru/#a_lightcrawler.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop() + end +end \ No newline at end of file diff --git a/sseru/#an_arena_tiger.lua b/sseru/#an_arena_tiger.lua new file mode 100644 index 0000000..719283f --- /dev/null +++ b/sseru/#an_arena_tiger.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop() + end +end \ No newline at end of file diff --git a/sseru/#an_arena_wolf.lua b/sseru/#an_arena_wolf.lua new file mode 100644 index 0000000..719283f --- /dev/null +++ b/sseru/#an_arena_wolf.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop() + end +end \ No newline at end of file diff --git a/sseru/A_Caravan_Master.lua b/sseru/A_Caravan_Master.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Caravan_Master.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Castrorum_Praetori.lua b/sseru/A_Castrorum_Praetori.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Castrorum_Praetori.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Castrorum_Seniori.lua b/sseru/A_Castrorum_Seniori.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Castrorum_Seniori.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Castrorum_Vigilum.lua b/sseru/A_Castrorum_Vigilum.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Castrorum_Vigilum.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Castrorum_of_the_Heart.lua b/sseru/A_Castrorum_of_the_Heart.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Castrorum_of_the_Heart.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Centurion_of_the_Arx.lua b/sseru/A_Centurion_of_the_Arx.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Centurion_of_the_Arx.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Centurion_of_the_Hand.lua b/sseru/A_Centurion_of_the_Hand.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Centurion_of_the_Hand.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Citizen_of_Seru.lua b/sseru/A_Citizen_of_Seru.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Citizen_of_Seru.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Cornicularius_Warder.lua b/sseru/A_Cornicularius_Warder.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Cornicularius_Warder.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Custos_Armorum.lua b/sseru/A_Custos_Armorum.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Custos_Armorum.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Custos_of_Seru.lua b/sseru/A_Custos_of_Seru.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Custos_of_Seru.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Defender_of_the_Arx.lua b/sseru/A_Defender_of_the_Arx.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Defender_of_the_Arx.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_File_Cabinet.lua b/sseru/A_File_Cabinet.lua new file mode 100644 index 0000000..bc374c9 --- /dev/null +++ b/sseru/A_File_Cabinet.lua @@ -0,0 +1,14 @@ +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) < 6) then + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29855}, 0)) then + e.self:Emote("slams shut after you take the original records out."); + e.other:QuestReward(e.self,0,0,0,0,29856); -- Original Records + eq.spawn2(159001,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + end + item_lib.return_items(e.self, e.other, e.trade) + else + e.self:Say("I will do nothing to aid beings like you."); + end +end \ No newline at end of file diff --git a/sseru/A_Guardian_of_the_Arx.lua b/sseru/A_Guardian_of_the_Arx.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Guardian_of_the_Arx.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Hand_Centurion.lua b/sseru/A_Hand_Centurion.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Hand_Centurion.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Hand_Recruit.lua b/sseru/A_Hand_Recruit.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Hand_Recruit.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Keeper_of_the_Truth.lua b/sseru/A_Keeper_of_the_Truth.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Keeper_of_the_Truth.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Legionnaire_of_the_Hand.lua b/sseru/A_Legionnaire_of_the_Hand.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Legionnaire_of_the_Hand.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Lictor_of_the_Heart.lua b/sseru/A_Lictor_of_the_Heart.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Lictor_of_the_Heart.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Praesertum_Courier.lua b/sseru/A_Praesertum_Courier.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Praesertum_Courier.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Praesertum_Functionary.lua b/sseru/A_Praesertum_Functionary.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Praesertum_Functionary.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Praesertum_Librarii.lua b/sseru/A_Praesertum_Librarii.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Praesertum_Librarii.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Praetor_of_the_Hand.lua b/sseru/A_Praetor_of_the_Hand.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Praetor_of_the_Hand.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Praetor_of_the_Heart.lua b/sseru/A_Praetor_of_the_Heart.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Praetor_of_the_Heart.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Praetorian_Decipio.lua b/sseru/A_Praetorian_Decipio.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Praetorian_Decipio.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Praetorian_Medicus.lua b/sseru/A_Praetorian_Medicus.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Praetorian_Medicus.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Praetorian_Peritus.lua b/sseru/A_Praetorian_Peritus.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Praetorian_Peritus.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Praetorian_Pius.lua b/sseru/A_Praetorian_Pius.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Praetorian_Pius.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Praetorian_Veneratius.lua b/sseru/A_Praetorian_Veneratius.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Praetorian_Veneratius.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Principia_Vigilum.lua b/sseru/A_Principia_Vigilum.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Principia_Vigilum.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Protector_of_the_Heart.lua b/sseru/A_Protector_of_the_Heart.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Protector_of_the_Heart.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Quaestor_Guard.lua b/sseru/A_Quaestor_Guard.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Quaestor_Guard.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Quaestorium_Guard.lua b/sseru/A_Quaestorium_Guard.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Quaestorium_Guard.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Questioner.lua b/sseru/A_Questioner.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Questioner.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Senior_Arx_Guardian.lua b/sseru/A_Senior_Arx_Guardian.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Senior_Arx_Guardian.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Signiferi_of_the_Hand.lua b/sseru/A_Signiferi_of_the_Hand.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Signiferi_of_the_Hand.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Tabularium_Factor.lua b/sseru/A_Tabularium_Factor.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Tabularium_Factor.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Veteran_Centurion.lua b/sseru/A_Veteran_Centurion.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Veteran_Centurion.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Vigilum_Centurio.lua b/sseru/A_Vigilum_Centurio.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Vigilum_Centurio.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Vigilum_Cohortis.lua b/sseru/A_Vigilum_Cohortis.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Vigilum_Cohortis.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Vigilum_Seniori.lua b/sseru/A_Vigilum_Seniori.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Vigilum_Seniori.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Vigilum_Senorii.lua b/sseru/A_Vigilum_Senorii.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Vigilum_Senorii.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Vigilum_of_the_Eye.lua b/sseru/A_Vigilum_of_the_Eye.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Vigilum_of_the_Eye.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Watcher.lua b/sseru/A_Watcher.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Watcher.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/A_Watcher_of_the_Eye.lua b/sseru/A_Watcher_of_the_Eye.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/A_Watcher_of_the_Eye.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Adelia_Jolanta.lua b/sseru/Adelia_Jolanta.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Adelia_Jolanta.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Aderyn_Goldleaf.lua b/sseru/Aderyn_Goldleaf.lua new file mode 100644 index 0000000..343a2e9 --- /dev/null +++ b/sseru/Aderyn_Goldleaf.lua @@ -0,0 +1,26 @@ +-- Jeweled Quiver of the Hand + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am a Ranger of Seru. There are not many that follow our ways within the city, as there is only limited need for us. Tracking is an invaluable tool at times though so our ways continue to be passed on. There is no way that [Katta] Castellium can match our tracking skills. What are you look... ah, I see you are eyeing my quiver. It is the Jeweled Quiver of the Hand. It is given to each ranger that is in the Hand's Ranks. "); + elseif(e.message:findi("katta")) then + e.self:Say("Katta Castellium is a dreary place. To show how vile it is, they have vampyres living within the city! My point though, is that they would easily spot one of us entering their city. You are just right. They would not question one from Norrath. If you with to prove your worth and earn your own Quiver go to Katta. Galren Fuzzytoes is know to us to be a spy, but we can never catch him. Surely it will be easier to find him within his own city. Defeat him, and retrieve any report that he is taking back to their Governors."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29892}, 0)) then + e.self:Say("You actually did it? You have done an invaluable service ridding us of that wretched little halfing. You deserve to be a soldier in Seru's army. Take this Quiver with my regard, " .. e.other:GetCleanName() .. "."); + e.other:Faction(e.self,1485,30); -- eye of seru + e.other:Faction(e.self,1484,-3); -- hand of seru + e.other:Faction(e.self,1486,-3); -- heart of seru + e.other:Faction(e.self,1483,1); -- seru + e.other:Faction(e.self,1542,-3); -- haven smugglers + e.other:Faction(e.self,1503,-3); -- validus custodus + e.other:Faction(e.self,1504,-7); -- magus conlegium + e.other:QuestReward(e.self,0,0,0,0,17120,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sseru/Adipiscorus_Glipo.lua b/sseru/Adipiscorus_Glipo.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Adipiscorus_Glipo.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Adren_Tholos.lua b/sseru/Adren_Tholos.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Adren_Tholos.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Aerik_Redember.lua b/sseru/Aerik_Redember.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Aerik_Redember.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Agrur_Halden.lua b/sseru/Agrur_Halden.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Agrur_Halden.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Aldis_Rynka.lua b/sseru/Aldis_Rynka.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Aldis_Rynka.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/An_Actuarius_Guard.lua b/sseru/An_Actuarius_Guard.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/An_Actuarius_Guard.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/An_Arx_Guardian.lua b/sseru/An_Arx_Guardian.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/An_Arx_Guardian.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/An_Arx_Praetorian.lua b/sseru/An_Arx_Praetorian.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/An_Arx_Praetorian.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/An_Intervallum_Guard.lua b/sseru/An_Intervallum_Guard.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/An_Intervallum_Guard.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/An_Optio_of_the_Hand.lua b/sseru/An_Optio_of_the_Hand.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/An_Optio_of_the_Hand.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Arena_Master_Ferin.lua b/sseru/Arena_Master_Ferin.lua new file mode 100644 index 0000000..a153177 --- /dev/null +++ b/sseru/Arena_Master_Ferin.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hurry, hurry step right up and buy a ticket! Show your skills at battle! Amaze the crowds with your great skill! Buy a ticket from me, and when you think you are prepared for the fight give me the ticket!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29866}, 0)) then -- Arena Ticket + e.self:Say("So you wish to show off your skills in the arena? Well come on let us see what you are made of! Be warned that this is a fight to the death, if a guard sees you fleeing like a coward they will assist in helping to finish you off!"); + eq.unique_spawn(eq.ChooseRandom(159108,159103,159109),0,0,-231,-1514,-68,128); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29867}, 0)) then -- Arena Medal + e.self:Say("Wonderful battle skills! You have pleased the audience. Here are a few coins for your valiant effort!"); + e.other:Faction(e.self,1499,10); -- Citizens of Seru + e.other:Faction(e.self,1484,1); -- Hand of Seru + e.other:Faction(e.self,1486,1); -- Heart of Seru + e.other:Faction(e.self,1485,1); -- Eye of Seru + e.other:Faction(e.self,1487,1); -- Shoulders of Seru + e.other:Faction(e.self,1502,-5); -- Katta Castellum Citizens + e.other:QuestReward(e.self,math.random(0,10),math.random(0,10),math.random(0,10),math.random(1,20),0,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sseru/Armorer_Caedus.lua b/sseru/Armorer_Caedus.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Armorer_Caedus.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Armorer_Jaeron.lua b/sseru/Armorer_Jaeron.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Armorer_Jaeron.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Asotha_Balais.lua b/sseru/Asotha_Balais.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Asotha_Balais.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Boloth_Daeron.lua b/sseru/Boloth_Daeron.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Boloth_Daeron.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Brendar_Mynden.lua b/sseru/Brendar_Mynden.lua new file mode 100644 index 0000000..0b0ceb5 --- /dev/null +++ b/sseru/Brendar_Mynden.lua @@ -0,0 +1,28 @@ +-- Poisoning Brendar + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Yeah, what do you want?"); + elseif(e.message:findi("compromise")) then + e.self:Say("A compromise? Zabaltin has fought me in every request asking for help protecting the delivery caravans! I will never work with him. Say what is that in your hand? The label looks like it is a bottle of my favorite ale. It's from Zabaltin you say? Maybe he really is trying to work things out. Well then let's open the bottle and have a drink!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29862}, 0)) then + e.self:Emote("opens the bottle and takes a large drink right from it. Immediately his eyes roll back into their sockets and he falls to the ground. You look around to make sure no one has seen and then take the ring from his finger."); + e.other:QuestReward(e.self,0,0,0,0,29863); + e.self:DoAnim(15); + e.self:SetAppearance(3); + eq.set_timer("depop",5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop_with_timer(); + end +end diff --git a/sseru/Caravan_Master_Goshul.lua b/sseru/Caravan_Master_Goshul.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Caravan_Master_Goshul.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Centurion_Jelin.lua b/sseru/Centurion_Jelin.lua new file mode 100644 index 0000000..20c14fd --- /dev/null +++ b/sseru/Centurion_Jelin.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to my home, my apologies for being untidy. I have been preoccupied with the thought of my brother lately. I love Seru and I love this town do not get me wrong, but it still makes me sad to see someone cast out. He was forced to submit to the Question when he was found to be supplying [Recuso] with food, water, and medical supplies. Because of the power of the question, they soon found this out, and now he has to live amongst the very people he was helping."); + elseif(e.message:findi("Recuso")) then + e.self:Say("The Recuso are the refused. They are cast out of Sanctus Seru because of their crimes against the city, their incompetence, or for any other number of political reasons. Because you are questioned by a Praesertum other than the one that you are in, it is kept unbiased. My brother committed crimes against the city by assisting the Recuso. The refused are sent to Marus Seru as punishment and [interfering] with that punishment is interfering with Seru's way."); + elseif(e.message:findi("interfering")) then + e.self:Say("I would never be able to aid him, let alone think of it without failing the question. I just wish I knew how he was doing. I could not check on him, and could not ask you to check on him either, or you would defy Seru. That is something that I could not ask of anyone. The Question is a horrible ordeal. You will either die from being cast to Marus Seru or from the draining power of the Question itself."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6269}, 0)) then + e.self:Emote("looks at you puzzled and takes the letter and reads it. 'Oh I am so glad that he is alive! I am happy that you took the time to ease my worries about him. I shall let the people of this town know that you come with good intentions. For now I will rest for I have not slept in days."); + e.other:Faction(e.self,1499,10); -- Citizens of Seru + e.other:Faction(e.self,1484,1); -- Hand of Seru + e.other:Faction(e.self,1486,1); -- Heart of Seru + e.other:Faction(e.self,1485,1); -- Eye of Seru + e.other:Faction(e.self,1487,1); -- Shoulders of Seru + e.other:Faction(e.self,1502,-5); -- Katta Castellum Citizens + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sseru/Centurion_Praedico.lua b/sseru/Centurion_Praedico.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Centurion_Praedico.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Cobaen_Venum.lua b/sseru/Cobaen_Venum.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Cobaen_Venum.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Cohortis_Emon.lua b/sseru/Cohortis_Emon.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Cohortis_Emon.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Consis_Sinsolus.lua b/sseru/Consis_Sinsolus.lua new file mode 100644 index 0000000..e69c602 --- /dev/null +++ b/sseru/Consis_Sinsolus.lua @@ -0,0 +1,79 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end + + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3878}, 0)) then + e.self:Emote("turns to look at you for a moment, but does not appear to notice that you made the swap."); + e.other:Faction(e.self,1484,5); -- Hand of Seru + e.other:Faction(e.self,1485,-1); -- Eye of Seru + e.other:Faction(e.self,1486,-1); -- Heart of Seru + e.other:Faction(e.self,1483,1); -- Seru + e.other:Faction(e.self,1541,6); -- Hand Legionnaires + e.other:Faction(e.self,1503,-2); -- Validus Custodus + e.other:Faction(e.self,1504,-1); -- Magus Conlegium + e.other:QuestReward(e.self,0,0,0,0,3879); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sseru/Cornicularius_Wassein.lua b/sseru/Cornicularius_Wassein.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Cornicularius_Wassein.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Crispin_Falca.lua b/sseru/Crispin_Falca.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Crispin_Falca.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Custos_Valar.lua b/sseru/Custos_Valar.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Custos_Valar.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Decurion_Ralla.lua b/sseru/Decurion_Ralla.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Decurion_Ralla.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Diendra_Berit.lua b/sseru/Diendra_Berit.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Diendra_Berit.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Dolus_Rical.lua b/sseru/Dolus_Rical.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Dolus_Rical.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Dorel_Boldan.lua b/sseru/Dorel_Boldan.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Dorel_Boldan.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Elanix_Harith.lua b/sseru/Elanix_Harith.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Elanix_Harith.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Erus_Ereptor_Yuka.lua b/sseru/Erus_Ereptor_Yuka.lua new file mode 100644 index 0000000..37eb149 --- /dev/null +++ b/sseru/Erus_Ereptor_Yuka.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("So you think you think you can help the Eye? I doubt it. You see we have plenty of men rooted in all the jobs that need to be done. So any service you have to offer would be of little use to us. I know every move that the Loyalists make. So please move along maybe someone has some other menial task for you. If you don't mind I need to get back to these [diagrams]."); + elseif(e.message:findi("diagram")) then + e.self:Say("Diagrams of the Loyalist City. They are nearly completed except for a few areas. We have our best operatives trying to map those areas. they always remain hidden, but due to the vampyres living in the city they are always detected. They have a sense for blood, they can smell it in the air. So far our operatives have been luck by [escaping] over the wall of Katta."); + elseif(e.message:findi("escaping")) then + e.self:Say("Yes but there is a rogue that is still unaccounted for. He had an escape route that was planned through the Twilight Sea. He was to swim to safety in the Twilight Sea. I am sure he is fine but if you want something to do so badly, take this letter to Elisah Astari and tell him you are taking over in his search for Tergus Raslin."); + e.other:SummonCursorItem(29868); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29869}, 0)) then -- Shattered Praetor Blade + e.self:Say("He was caught? I cannot believe one of my own men would fail me. If he was caught he deserved whatever they gave to him. Still though tainting him with vampyrism is something that could have seriously affected this town. He could have done much damage before his time for the question arose. You have done a great justice to Seru by purging us of the evil."); + e.other:Faction(e.self,1485,10); -- Eye of Seru + e.other:Faction(e.self,1484,-1); -- Hand of Seru + e.other:Faction(e.self,1486,-1); -- Heart of Seru + e.other:Faction(e.self,1483,1); -- Seru + e.other:Faction(e.self,1542,-1); -- Haven Smugglers + e.other:Faction(e.self,1503,-1); -- Validus Custodus + e.other:Faction(e.self,1504,-2); -- Magus Conlegium + e.other:QuestReward(e.self,0,0,0,0,29870,25000); -- Praetor's Blade of Debility + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sseru/Euzan_Jurek.lua b/sseru/Euzan_Jurek.lua new file mode 100644 index 0000000..260f024 --- /dev/null +++ b/sseru/Euzan_Jurek.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("Torsten")) then + e.self:Say("So Torsten has sent you? He must see the potential within you to help us. I cannot give you any information right now as to who we are. That is a trust you must [earn]."); + elseif(e.message:findi("earn")) then + e.self:Emote("leans in and whispers to you, 'Let it be known that assisting us will show your distrust in everything this city stands for. If you do not want to get involved I urge you to walk away now. However if you wish to [bring about change], stay and I will tell you how to earn our trust.'"); + elseif(e.message:findi("bring about change")) then + e.self:Say("Good, you must do something for us. One of our members, who needs not be named, is due to be called for the Question. We need you to go into the Heart [Consillium] and replace their records with this one. This false record shows that they have completed their Question and still have time until their next one. Changing the records will make the question pass over us so that we avoid being discovered. Go in stealth, when you have completed this task bring me back the original records and your Insignia Earring."); + e.other:SummonCursorItem(29855); -- 29855 Replacement Records + elseif(e.message:findi("Consillium")) then + e.self:Say("The Praesertum Consillium are the four structures found in the center of Sanctus Seru. They are surrounding the Arx Seru, which is where Seru himself resides. These buildings are heavily guarded with the leader of each."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29856,item2 = 29857})) then + e.self:Say("By now you must realize that we need to avoid the question because of whom we are. Seru is not the Noble Paladin this city would have you believe. You see they teach that Katta feared Seru and that he had faked his own poisoning so they could pin the blame on Seru. The next thing that I ask of you, I ask because you can travel without question from one city to another. Go to Katta and give this report to Tilbok Furrunner. Tell him we are successfully rooted within Sanctus Seru and await any commands."); + e.other:Faction(e.self,1503,15); -- Validus Custodus + e.other:Faction(e.self,1502,1); -- Katta Castellum Citizens + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1505,-1); -- Nathyn Illuminious + e.other:Faction(e.self,1506,-1); -- Coterie of the Eternal Night + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1484,-7); -- Hand of Seru + e.other:Faction(e.self,1485,-1); -- Eye of Seru + e.other:Faction(e.self,1541,-1); -- Hand Legionnaries + -- Confirmed no experience reward + e.other:QuestReward(e.self,{items = {29891,29858}}); -- 29891 Report to Tilbok, 29858 Etched Earring of Veracity + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sseru/Examiner_Malikin.lua b/sseru/Examiner_Malikin.lua new file mode 100644 index 0000000..1420022 --- /dev/null +++ b/sseru/Examiner_Malikin.lua @@ -0,0 +1,49 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day to you, " .. e.other:GetCleanName() .. ". I hope that you are enjoying the sanctuary that this beautiful city of ours provides. We go through great efforts to keep this city not only clean, but extremely safe as well. Have you ever wondered about the [lengths] to which we have to work to maintain the safety of a city as fine as this?"); + elseif(e.message:findi("lengths")) then + e.self:Say("We have to work with great diligence and determination to maintain the security of this sanctum. There are elements that are set on defiling our work here. These antagonists seem to prefer attempts at corrupting people from within our ranks. Weak minds are inevitable, so corruption is unavoidable. That is why the Eye is necessary. We are not here to pry or spy on anyone. We simply maintain the security of our sanctum and weed out any unsavory elements. If you're interested in learning more about [the Eye], I can assign you a [simple task] or two."); + elseif(e.message:findi("the eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("simple task")) then + e.self:Say("Simple tasks go a great distance to establish trust. I may know of someone who can help you establish yourself within the ranks of the Eye. If you are interested in performing a task of that nature I can get you started at this time. Would you like to [begin]?"); + elseif(e.message:findi("begin")) then + e.self:Say("Very well, " .. e.other:GetCleanName() .. ". Please, take this coin to Questioner Ontu. She will advise you on your next course of action. There is a decided lack of direction in this matter, for a member of the Eye should always be able to find people. This will be good practice for you. Take care. I hope to speak to you again soon."); + e.other:SummonCursorItem(3876); -- here there were 3 identical A Heavy Coin all with no lore 3876 3877 abd 3878 after finding no way to distinguish them i chose this one + elseif(e.message:findi("meaning")) then + e.self:Say("Very good, for I have another task to offer you if you would like to continue. This one is a bit more complicated. Im sure that you can handle it, but I need you to be sure as well. I need this to be a suprise. Do you think that you are [prepared] to handle an issue that will require both stealth and secracy?"); + elseif(e.message:findi("prepared")) then + e.self:Say("Please take the coin I have just given you and find my friend, Consis Sinsolus. He can often be found walking in one of the park areas. I'm beginning to believe that he has a mild infatuation with trees. Please take the coin that i have given you and slip it into my friend's left coat pocket. When you do so, please remove the coin that you will find in his pocket and bring it to me. Accomplish this task without error and I may have a special task for you. Take care not to get caught. I would prefer the swap remain a suprise for him to discover on his own."); + elseif(e.message:findi("with the attacks")) then + e.self:Say("We have found evidence that there is a traitor within the ranks of one of the other Praesurtum. We need you to help us remove this traitor and his contact in Katta Castellum. You will need to take this poison and pour it into our [target]'s ear while he sleeps."); + e.other:SummonCursorItem(3880); + elseif(e.message:findi("target")) then + e.self:Say("The traitor's name is Ornis Tranum. You should be able to get into his house with little to no resistance. Just be sure to take care when entering and leaving the building. We do not need to bring attention to the Eye in this matter. Once you have poured the poison into Ornis' ear, he will be unable to move. Just place the coin that you took from Consis on Ornis' body and leave. Bring me the empty poison vial, so that I can be sure that no evidence was left behind. Once that is done, we can deal with his contact."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3877}, 0)) then + e.self:Say("Good job! I'm glad that you have returned. I'm also very glad that you were able to see this task as what it was, a purpose to be fulfilled. I'm not sure that you understand, so please allow me to elaborate. The coin that i handed you has great value. That value is obvious in the fact that the coin is made of a precious metal and carries with it more wright than a standard coin. That said, you did not take the coin for your personal gain. You simple carried out your purpose. The fact that you can be trusted has earned you that coin. Do you understand the [meaning of the task] now?"); + e.other:QuestReward(e.self,0,0,0,0,3878); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3879}, 0)) then + e.self:Say("Splendid job, " .. e.other:GetCleanName() .. "! You managed that task quite nicely. Please, keep the coin. The most important part of that task was the fact that you did not stop to question what was being asked of you. That sort of trust is commendable. The Eye is looking for people like you. We need people who display not only integrity, but trust. Trust in our purpose here and you will do well. Out means may seem a bit harsh at times, but we are here to protect our people from an enemy whose methods are without honor. It is one of those very [attacks] on our people that I will need your help with at this time."); + e.other:QuestReward(e.self,0,0,0,0,3879); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3882}, 0)) then + e.self:Say("Your worth to us is not going unnoticed. There are many people within the Eye that are very pleased with your progress. Finish this next task and we will have something for you. Your willingness to assist us with this most unpleasant task is a great display of allegiance. We are very excited about your future with us, but let's finish with this before we talk further. Take this poison and do with it as you did to Ornis. This time the target is a guard within Katta Castellum. His name is Erallic. Find him when he is asleep after a guard shift and kill him. Be sure to bring me the empty vial and be careful. They will have guards posted. Stealth is key in this matter. Take care."); + e.other:QuestReward(e.self,0,0,0,0,3881); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 3883}, 0)) then + e.self:Say("It is good to see you again friend. Your deeds are well known within the ranks of the Eye. You have allowed us to remove several traintors from the walls of this sanctum. We are extremely tankful for you dedication and efforts. Please take this gift and watch for us to call upon you again in the bear future."); + -- verifed live faction + e.other:Faction(e.self,1499,-10); -- Citizens of Seru + e.other:Faction(e.self,1484,1); -- Hand of Seru + e.other:Faction(e.self,1486,1); -- Heart of Seru + e.other:Faction(e.self,1485,1); -- Eye of Seru + e.other:Faction(e.self,1487,1); -- Shoulders of Seru + e.other:Faction(e.self,1502,-5); -- Katta Castellum Citizens + e.other:QuestReward(e.self,0,0,0,0,3884); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sseru/Faber_Alazona.lua b/sseru/Faber_Alazona.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Faber_Alazona.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Faber_Hintoa.lua b/sseru/Faber_Hintoa.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Faber_Hintoa.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Faber_Rugon.lua b/sseru/Faber_Rugon.lua new file mode 100644 index 0000000..7dec13c --- /dev/null +++ b/sseru/Faber_Rugon.lua @@ -0,0 +1,84 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end + + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31787,item2 = 31787})) then + e.self:Say("Oh, this is a fine piece of armor I made for ya!"); + e.other:QuestReward(e.self,0,0,0,0,29879,10000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31788,item2 = 31788,item3 = 31966,item4 = 31966})) then + e.self:Say("Oh, this is a fine piece of armor I made for ya!"); + e.other:QuestReward(e.self,0,0,0,0,29878,10000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31965,item2 = 31965})) then + e.self:Say("Oh, this is a fine piece of armor I made for ya!"); + e.other:QuestReward(e.self,0,0,0,0,29876,10000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31968,item2 = 31968})) then + e.self:Say("Oh, this is a fine piece of armor I made for ya!"); + e.other:QuestReward(e.self,0,0,0,0,29880,10000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31967,item2 = 31967})) then + e.self:Say("Oh, this is a fine piece of armor I made for ya!"); + e.other:QuestReward(e.self,0,0,0,0,29877,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sseru/Falak_Tholos.lua b/sseru/Falak_Tholos.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Falak_Tholos.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Falwin_Sugero.lua b/sseru/Falwin_Sugero.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Falwin_Sugero.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Fareye_Yewback.lua b/sseru/Fareye_Yewback.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Fareye_Yewback.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Filtin_Meran.lua b/sseru/Filtin_Meran.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Filtin_Meran.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Fraeg_Coldblade.lua b/sseru/Fraeg_Coldblade.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Fraeg_Coldblade.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Fylin_Cyups.lua b/sseru/Fylin_Cyups.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Fylin_Cyups.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Gaif_Dula.lua b/sseru/Gaif_Dula.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Gaif_Dula.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Gaston_Facetmaker.lua b/sseru/Gaston_Facetmaker.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Gaston_Facetmaker.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Glendra_Torin.lua b/sseru/Glendra_Torin.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Glendra_Torin.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Grelan_Mandek.lua b/sseru/Grelan_Mandek.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Grelan_Mandek.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Guard_Hargrar.lua b/sseru/Guard_Hargrar.lua new file mode 100644 index 0000000..2d5393c --- /dev/null +++ b/sseru/Guard_Hargrar.lua @@ -0,0 +1,21 @@ +-- Guard Hargrar, spawned by a File Cabinet, in Sanctu Seru + +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop() + end +end \ No newline at end of file diff --git a/sseru/Jaeger_Mort.lua b/sseru/Jaeger_Mort.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Jaeger_Mort.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Jylian_Frostshade.lua b/sseru/Jylian_Frostshade.lua new file mode 100644 index 0000000..98583a2 --- /dev/null +++ b/sseru/Jylian_Frostshade.lua @@ -0,0 +1,30 @@ +-- Jylian's Research + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, as you can see I am quite busy with my [research]. If you don't mind I need silence to concentrate."); + elseif(e.message:findi("research")) then + e.self:Say("I am researching what went wrong in Mons Letalis. The spires constructed there should allow us passage back to Norrath freely. Upon completion of them something [went wrong]."); + elseif(e.message:findi("went wrong")) then + e.self:Say("Suddenly the spires were overwhelmed with eerie beings that seemed to have no essence to them. These spirits now plague the spires. Due to our lack of knowledge of these creatures we do not know how to deal with them. Fighting them seems useless because as soon as one is destroyed more would materialize. They seemed to feed off of death, especially ours. We must [find out more] about them."); + elseif(e.message:findi("find out more")) then + e.self:Say("If you think you can help, I charge you with the task of gathering information. Seek out these creatures, and if you can manage to destroy them bring me their robes. I will study the garment to see if I can determine its origin. Now please, leave me be so that I can get to my research."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29865}, 0)) then + e.self:Emote("delicately removes one of the embroidered symbols from the fading robe. Jylian then begins to weave spells to the robe until it becomes fully materialized. 'These robes have unusual symbols all about them. I must study this symbol in greater detail. Here you can have this robe, I have placed an enchantment on it to keep it from fading from this plane of existence any further. Your service to Seru is appreciated. Now go, I need silence to concentrate.'"); + e.other:Faction(e.self,1499,10); -- Citizens of Seru + e.other:Faction(e.self,1484,1); -- Hand of Seru + e.other:Faction(e.self,1486,1); -- Heart of Seru + e.other:Faction(e.self,1485,1); -- Eye of Seru + e.other:Faction(e.self,1487,1); -- Shoulders of Seru + e.other:Faction(e.self,1502,-5); -- Katta Castellum Citizens + e.other:QuestReward(e.self,0,0,0,0,29890,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/sseru/Kinten_Rhys.lua b/sseru/Kinten_Rhys.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Kinten_Rhys.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Laltar_Valka.lua b/sseru/Laltar_Valka.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Laltar_Valka.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Laren_Goldthimble.lua b/sseru/Laren_Goldthimble.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Laren_Goldthimble.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Legatarius_Banael.lua b/sseru/Legatarius_Banael.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Legatarius_Banael.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Legionnaire_Delaren.lua b/sseru/Legionnaire_Delaren.lua new file mode 100644 index 0000000..74ca351 --- /dev/null +++ b/sseru/Legionnaire_Delaren.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met " .. e.other:GetCleanName() .. ". Are you the new recruit that was sent to me to help exterminate the [Zelniaks] that attack our guards and caravans?"); + elseif(e.message:findi("zelniak")) then + e.self:Say("Weren't you briefed on this already? The Zelianks are highly aggressive scaled creatures with a large mane of fur that runs down the length of their back. They are a constant problem for the guards and caravans that used travel in [Dawnshroud]."); + elseif(e.message:findi("dawnshroud")) then + e.self:Say("Are you new here or something? Dawnshroud peaks are a range of mountains lush in vegetation and water. We used to utilize this area as a trade route to Shadowhaven. The caravans that would travel through were too often attacked by roaming Zelniaks. I thought you were the one that was sent to me to [help lower] the amount of Zelniaks in the area. So the trade route could be reestablished."); + elseif(e.message:findi("help lower")) then + e.self:Say("How ambitious of you to help the mighty warriors of the Hand. If you chose to serve Seru bring me back four pieces of Zelniak meat. I will reward you for your time in the field."); + elseif(e.message:findi("peran")) then + e.self:Say("Centurion Peran is new to the ranks. He gets things done I suppose it just takes him a long, long time. Since you did his job for him, take him these new orders. We will make a soldier out of him yet."); + e.other:SummonCursorItem(6514); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10692,item2 = 10692,item3 = 10692,item4 = 10692}, 0)) then + e.self:Say("Although your service to Seru is appreciated, I just received word that you were not the one that was sent to do this menial task. That lazy boy [Peran] was supposed to take the job."); + -- confirmed live faction + e.other:Faction(e.self,1499,5); -- Citizen of Seru + e.other:Faction(e.self,1484,1); -- Hand of Seru + e.other:Faction(e.self,1486,1); -- Heart of Seru + e.other:Faction(e.self,1485,1); -- Eye of Seru + e.other:Faction(e.self,1487,1); -- Shoulder of Seru + e.other:Faction(e.self,1502,-2); -- Katta Castellum Citizen + e.other:QuestReward(e.self,math.random(0,5),math.random(0,5),math.random(0,5),math.random(0,5),0,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sseru/Luki_Khara.lua b/sseru/Luki_Khara.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Luki_Khara.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Mal_Garton.lua b/sseru/Mal_Garton.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Mal_Garton.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Mallon_Fraz.lua b/sseru/Mallon_Fraz.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Mallon_Fraz.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Melda_Goldsmith.lua b/sseru/Melda_Goldsmith.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Melda_Goldsmith.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Miklos_Tiost.lua b/sseru/Miklos_Tiost.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Miklos_Tiost.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Milner_McHazlo.lua b/sseru/Milner_McHazlo.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Milner_McHazlo.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Nilibik_Driogo.lua b/sseru/Nilibik_Driogo.lua new file mode 100644 index 0000000..df21e2b --- /dev/null +++ b/sseru/Nilibik_Driogo.lua @@ -0,0 +1,30 @@ +-- Bronus' Amulet + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, you look like a battleworn traveller. Have you heard of the place where [grieg] resides?"); + elseif(e.message:findi("grieg")) then + e.self:Say("Aye, Grieg Veneficus. We do not know much about this madman, only where his [stronghold] is. One of my friends from the Eye was sent there to investigate it, but he has not returned. It has been quite some time and I am very worried about him."); + elseif(e.message:findi("stronghold")) then + e.self:Say("Grieg's End is what it has become to be known as. Some reports have come back that this place is cursed with foul visages. Any entering will surely loose their minds. I.. I would go but you see I am desperately busy here in the city doing..uh..many important things! You look like you could help, will you [travel] to Grieg's End and look for my friend?"); + elseif(e.message:findi("travel")) then + e.self:Say("Good, I am glad you would prove yourself useful to Seru. Look for Bronus, you should beware if he has lost his sanity for he is almost as powerful as myself."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6515}, 0)) then + e.self:Emote("speaks a small incantation as he pulls a branch from a nearby tree and ties it around the amulet 'I shall mourn him dearly, he was a good friend. This was the amulet that I had given him before he left to explore Grieg's End. I want you to have this for helping to find his lost soul. Go in peace my friend."); + e.other:Faction(e.self,1499,20); -- Faction: Citizens of Seru + e.other:Faction(e.self,1484,2); -- Faction: Hand of Seru + e.other:Faction(e.self,1486,2); -- Faction: Heart of Seru + e.other:Faction(e.self,1485,2); -- Faction: Eye of Seru + e.other:Faction(e.self,1487,2); -- Faction: Shoulders of Seru + e.other:Faction(e.self,1502,-10); -- Faction: Katta Castellum Citizens + e.other:QuestReward(e.self,0,0,0,0,6516,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/sseru/Nyrick_Exorno.lua b/sseru/Nyrick_Exorno.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Nyrick_Exorno.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Oraculum_Yalkin.lua b/sseru/Oraculum_Yalkin.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Oraculum_Yalkin.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Ornis_Tranum.lua b/sseru/Ornis_Tranum.lua new file mode 100644 index 0000000..42f4584 --- /dev/null +++ b/sseru/Ornis_Tranum.lua @@ -0,0 +1,79 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end + + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3880,item2 = 3879})) then + e.self:Emote("gasps suddenly then falls still."); + e.other:Faction(e.self,1487,1); -- Shoulders of Seru + e.other:Faction(e.self,1486,-1); -- Heart of Seru + e.other:Faction(e.self,1485,-1); -- Eye of Seru + e.other:Faction(e.self,1483,1); -- Seru + e.other:Faction(e.self,1502,-1); -- Katta Castellum Citizens + e.other:Faction(e.self,1505,-1); -- Nathyn Illuminious + e.other:QuestReward(e.self,0,0,0,0,3882); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sseru/Pawil_Ocirak.lua b/sseru/Pawil_Ocirak.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Pawil_Ocirak.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Pecuniosus_Kezzlek.lua b/sseru/Pecuniosus_Kezzlek.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Pecuniosus_Kezzlek.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Percontorius_Ontu.lua b/sseru/Percontorius_Ontu.lua new file mode 100644 index 0000000..ee5a736 --- /dev/null +++ b/sseru/Percontorius_Ontu.lua @@ -0,0 +1,79 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3876}, 0)) then + e.self:Emote("touches the coin to the back of her hand and then looks up with a smile. 'Please take this back to it's source,' she says and nods. You feel the coin return to your hand. Your palm tingles slightly and then the sensation fades."); + -- verified live faction + e.other:Faction(e.self,1485,1); -- Eye of Seru + e.other:Faction(e.self,1484,-1); -- Hand of Seru + e.other:Faction(e.self,1486,-1); -- Heart of Seru + e.other:Faction(e.self,1483,1); -- Seru + e.other:Faction(e.self,1542,-1); -- Haven Smugglers + e.other:Faction(e.self,1503,-1); -- Validus Custodus + e.other:Faction(e.self,1504,-1); -- Magus Conlegium + e.other:QuestReward(e.self,0,0,0,0,3877); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/sseru/Percontorius_Salnu.lua b/sseru/Percontorius_Salnu.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Percontorius_Salnu.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Pius_Truthtaker.lua b/sseru/Pius_Truthtaker.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Pius_Truthtaker.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Praetor_Falak.lua b/sseru/Praetor_Falak.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Praetor_Falak.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Qearin_Softbark.lua b/sseru/Qearin_Softbark.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Qearin_Softbark.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Quastorius_Martolin.lua b/sseru/Quastorius_Martolin.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Quastorius_Martolin.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Redeemer_Balakaz.lua b/sseru/Redeemer_Balakaz.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Redeemer_Balakaz.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Regan_Ellar.lua b/sseru/Regan_Ellar.lua new file mode 100644 index 0000000..4e36394 --- /dev/null +++ b/sseru/Regan_Ellar.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ", as she fiddles absently with the ring on her finger as though it were a gift from someone who meant a great deal to her..."); + elseif(e.message:findi("rifkin")) then + e.self:Emote("spills her drink as you speak, 'umm, who? I do not know anyone by that...' she trails off, unable to find the words. 'He... he failed the question. I didn't have anything to do with it, why would you ask me? On second thought, nevermind, I would really rather not talk about it thank you very much. Good day to you " .. e.other:GetCleanName() .. "."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 1) then + e.self:Emote("looks around a bit and says, 'I think I need a bit of fresh air.'"); + elseif(e.wp == 14) then + e.self:Emote("looks into the fountain and sighs, something sad about her, before saying aloud, 'perhaps a short walk will get my mind off of him.'"); + elseif(e.wp == 21) then + e.self:Emote("wanders aimlessly, something weighing heavily upon her soul."); + end +end \ No newline at end of file diff --git a/sseru/Rhowick_Dragus.lua b/sseru/Rhowick_Dragus.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Rhowick_Dragus.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Sclestus_Venator_Taol.lua b/sseru/Sclestus_Venator_Taol.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Sclestus_Venator_Taol.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Scriptor_Ducis_Yusi.lua b/sseru/Scriptor_Ducis_Yusi.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Scriptor_Ducis_Yusi.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Sill_Kardo.lua b/sseru/Sill_Kardo.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Sill_Kardo.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Stoic_Aealin.lua b/sseru/Stoic_Aealin.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Stoic_Aealin.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Tala_Praebo.lua b/sseru/Tala_Praebo.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Tala_Praebo.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Taldris_Copio.lua b/sseru/Taldris_Copio.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Taldris_Copio.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Thecia_Sulter.lua b/sseru/Thecia_Sulter.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Thecia_Sulter.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Top_McCallto.lua b/sseru/Top_McCallto.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Top_McCallto.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Torsten_Reidan.lua b/sseru/Torsten_Reidan.lua new file mode 100644 index 0000000..188f717 --- /dev/null +++ b/sseru/Torsten_Reidan.lua @@ -0,0 +1,41 @@ +-- Earring of Veracity #1 (Insignia) +-- Sanctus Seru : torsten reidan + +function event_spawn(e) + eq.set_timer("hum",300000); +end + +function event_timer(e) + e.self:Emote("looks through the bookcase as if searching for something."); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh, hello there. Sorry I didn't notice you before I was thinking of an [old friend]. This used to be his room. I guess no one else has been assigned to these quarters."); + elseif(e.message:findi("old friend")) then + e.self:Say("His name was Bregun Dorey. What a funny little halfling he was. He had a good heart and worked hard. That is up until one day he just started acting odd, very nervous like he was hiding something. Then all he would talk about was Bixie Treats and then show off some weird heirloom charm bracelet. His time for the question came and due to his odd behavior he was sent to Marus Seru. I sure wish I knew how he was doing."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29852}, 0)) then + e.self:Say("Bregun is still alive!? Amazing, I thought in his fragile state he wouldn't last long in Marus Seru or the Lair of the Netherbians for that matter. Here before anyone hears us talking, take this note to him. I believe he was onto something big and I must know what it was."); + e.other:QuestReward(e.self,{itemid = 29853}); -- Sealed Note to Bregun + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29854}, 0)) then + e.self:Emote("pulls out a hollow book entitled 'A Detailed Look at Etiquette and Proper Grammar' and opens it to find a journal placed inside. 'This is astounding. The information in this journal is invaluable and must be brought to the others attention. Take this insignia. When you are ready to help us further seek out Euzan Jurek, tell him you were sent by me, and he will tell you what you can do to further our cause. I can not tell you more than this, but keep the insignia close to you for now.'"); + e.other:Faction(e.self,1503,10); -- Validus Custodus + e.other:Faction(e.self,1502,1); -- Katta Castellum Citizens + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1505,-1); -- Nathyn Illuminious + e.other:Faction(e.self,1506,-1); -- Coterie of the Ethernal Night + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1484,-5); -- Hand of seru + e.other:Faction(e.self,1485,-1); -- Eye of seru + e.other:Faction(e.self,1541,-1); -- Hand legionnaries + e.other:QuestReward(e.self,{itemid = 29857}); -- Insignia Earring of Veracity + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/sseru/Vantak_Mere.lua b/sseru/Vantak_Mere.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Vantak_Mere.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Vassa_Nar.lua b/sseru/Vassa_Nar.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Vassa_Nar.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Veratas_Gastir.lua b/sseru/Veratas_Gastir.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Veratas_Gastir.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Vigilum_Naillo.lua b/sseru/Vigilum_Naillo.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Vigilum_Naillo.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Vrogar_Umerus.lua b/sseru/Vrogar_Umerus.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Vrogar_Umerus.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Wulan_Goldsmith.lua b/sseru/Wulan_Goldsmith.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Wulan_Goldsmith.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Yurik_Pyorale.lua b/sseru/Yurik_Pyorale.lua new file mode 100644 index 0000000..39ee9a7 --- /dev/null +++ b/sseru/Yurik_Pyorale.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("where.* tavern")) then + e.self:Say("There are four taverns in Sanctus Seru. The Red Eye, The Full Hand, The Unburdened Shoulders, and The Glad Heart. One for the members of each Praesertum."); + elseif(e.message:findi("where.* shop")) then + e.self:Say("There are many fine shops in Sanctus Seru. I suggest you browse them for yourselves."); + elseif(e.message:findi("where.* quest")) then + e.self:Say("Why surely, a city of this size will have many tasks for you to accomplish! That is, once the builders get around to it. Check back late in the summer or early in the fall, there should be much for you to do then."); + elseif(e.message:findi("where.* leader") or e.message:findi("who.* leader")) then + e.self:Say("Sanctus Seru is controlled by the four Praesertum, The Hand, The Eye, The Heart, and The Shoulders. Each Praesertum has their own responsibilities."); + elseif(e.message:findi("leave")) then + e.self:Say("If you wish to leave the city, you must first pass by the Vigulum. If they do not stop you, you are free to go."); + elseif(e.message:findi("lewt") or e.message:findi("loot")) then + e.self:Say("Have you visited the Plane of Growth lately?"); + elseif(e.message:findi("what.* question")) then + e.self:Say("The Question is what keeps us pure. Every two years, each citizen of Seru must submit to the Question. You can refuse the question, but then you are cast out of the city, one of The Recuso. Those that submit spend three days in the care of another Praesertum. If you are pure of thought and deed, you have nothing to worry about. If you are not pure, you can be cast out."); + elseif(e.message:findi("who.* seru")) then + e.self:Say("Seru is the genius behind the Combine Empire. A man of unfailing honor and honesty, he devised the Inquisition, to root out unclean elements in the Empire. His saddest day was when he discovered that Katta himself was a traitor. When confronted with proof of his treachery, Katta feigned his own murder, and fled to Luclin. Seru had no choice but to amass an expedition and follow after him."); + elseif(e.message:findi("who.* katta")) then + e.self:Emote("spits on the ground. Katta, bah! Betrayer and destroyer of the Combine! I curse his name, curse his name, thrice curse his name!"); + elseif(e.message:findi("caravan")) then + e.self:Say("We run many caravans to and from Shadow Haven. As much as we dislike dealing with that unsavory lot, we find ourselves needing supplies only they can provide at the moment. Since they are not fond of coming out of their hole in the earth, we provide them with raw materials from the Lightside in return."); + elseif(e.message:findi("arena")) then + e.self:Say("We have a fine coliseum here in Sanctus Seru. Many glorious events are held there throughout the year, from plays to races, to gladiator games. It can be found at the far south of the city."); + elseif(e.message:findi("suck")) then + e.self:Say("I know you do, but what about us?"); + elseif(e.message:findi("you.* suck")) then + e.self:Say("Verily, methInks YOU doth sucketh much more than I, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("mind")) then + e.self:Say("If you really must know, I am worried about my brother."); + elseif(e.message:findi("praesertum")) then + e.self:Say("The four Praesertum can be found in the center of the city. Each has their own building, easily identified by the symbol above the main entrance. Stay clear of the Arx Seru, the central building. This is the resting place of Seru, who does not allow anyone but the Praesertum to disturb him. To venture inside is death for all that are not invited."); + elseif(e.message:findi("what.* eye")) then + e.self:Say("The Eye keeps us informed of all that goes on beyond the walls. They are responsible for security and purity inside the walls as well. They also monitor the other three Praesertum."); + elseif(e.message:findi("what.* heart")) then + e.self:Say("The Heart is in charge of all things administrative. From collecting taxes to issuing swords, to making sure each citizen knows when it is time for the Question."); + elseif(e.message:findi("rogue guild")) then + e.self:Say("Um, er, I think you might want to visit either The Hand, The Eye, or The Shoulders. And stop looking at my purse."); + elseif(e.message:findi("druid guild") or e.message:findi("shaman guild")) then + e.self:Say("We have no primitives in our city. You might find them among the slovenly merchants in Fordel Midst. And I know there are some of them hiding in the foul Loyalist city."); + elseif(e.message:findi("necromancer guild")) then + e.self:Say("Do not speak to me of such foulness. It was evil of that nature that brought the Combine together in the first place. You will find nobody of that ilk here!"); + elseif(e.message:findi("monk guild")) then + e.self:Say("Check with The Eye. Their Manstoppers are all of that profession."); + elseif(e.message:findi("shadowknight guild")) then + e.self:Say("Perversions such as that are not welcome here."); + elseif(e.message:findi("ranger guild")) then + e.self:Say("The Hand and The Eye both employ Rangers. Check with them."); + elseif(e.message:findi("cleric guild")) then + e.self:Say("All four Praesertum have Clerics in their ranks."); + elseif(e.message:findi("magician guild")) then + e.self:Say("Well, lets see. I know The Heart and The Shoulders have Magicians that work for them. I would check there first."); + elseif(e.message:findi("enchanter guild")) then + e.self:Say("The Eye and The Heart have Enchanters."); + elseif(e.message:findi("wizard guild")) then + e.self:Say("All four Praesertum have Wizards in their employ, I'm sure you can find one that will be able to assist you."); + elseif(e.message:findi("warrior guild")) then + e.self:Say("There is a warrior guildmaster in every Praesertum building. Perhaps one would be willing to train you."); + end +end diff --git a/sseru/Zabaltin_Draux.lua b/sseru/Zabaltin_Draux.lua new file mode 100644 index 0000000..39e229d --- /dev/null +++ b/sseru/Zabaltin_Draux.lua @@ -0,0 +1,29 @@ +-- Poisoning Brendar + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Enough with the chit chat. Are you or are you not a rogue?"); + elseif(e.message:findi("rogue")) then + e.self:Say("Good, I need you to serve Seru. There is a member of the Shoulder that is cutting the delivery of supplies to us and he must be stopped. He is a traitor to this city. He must be a sympathizer with the loyalists of Katta. What I need from you is poison. Go make me four vials of Aching Blood. We will see how he likes his wine with some of that in it!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14058,item2 = 14058,item3 = 14058,item4 = 14058}, 0)) then + e.self:Emote("takes the poison from you and pours it into a bottle of ale. 'Here, deliver this to Brendar Mynden! Tell him first that I wish to find compromise between our differences to throw him off guard. Then give him the ale to drink. So that I know you were successful bring me that gaudy ring he always wears. I sure do hate that ugly ring.'"); + e.other:QuestReward(e.self,0,0,0,0,29862); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29863}, 0)) then + e.self:Say("Ha! His gaudy ring! You have done well young rogue. Perhaps you would be an asset to the Eye after all. You can have his nasty ring back, I am sure that it is worthless. Darn thing weighs as much as a Netherbian and is twice as ugly!"); + e.other:Faction(e.self,1485,10); -- eye of seru + e.other:Faction(e.self,1484,-1); -- hand of seru + e.other:Faction(e.self,1486,-1); -- heart of seru + e.other:Faction(e.self,1483,1); -- seru + e.other:Faction(e.self,1542,-1); -- haven smugglers + e.other:Faction(e.self,1503,-1); -- validus custodus + e.other:Faction(e.self,1504,-2); -- magus conlegium + e.other:QuestReward(e.self,0,0,0,0,29864,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/ssratemple/#Arch_Lich_Rhag-Zadune.lua b/ssratemple/#Arch_Lich_Rhag-Zadune.lua new file mode 100644 index 0000000..e2c024a --- /dev/null +++ b/ssratemple/#Arch_Lich_Rhag-Zadune.lua @@ -0,0 +1,5 @@ +-- Last of the arch lich rhag`zadune cycle + +function event_death_complete(e) + eq.delete_global("Lich"); +end diff --git a/ssratemple/#Rhag-Mozdezh.lua b/ssratemple/#Rhag-Mozdezh.lua new file mode 100644 index 0000000..c9b02e6 --- /dev/null +++ b/ssratemple/#Rhag-Mozdezh.lua @@ -0,0 +1,11 @@ +-- second part of the arch lich rhag`zadune cycle + +function event_death_complete(e) + eq.delete_global("Rhag"); + eq.set_global("Lich","1",7,"F"); + eq.unique_spawn(162030, 0, 0, 420, -144, 270.1, 0); -- Arch_Lich_Rhag`Zadune + eq.unique_spawn(162498, 0, 0, 449, -163, 268, 224); -- Rhag`Reshkazh + eq.unique_spawn(162495, 0, 0, 377, -71, 261, 64); -- Rath`Zihold + eq.unique_spawn(162496, 0, 0, 465, -71, 261, 192); -- Rath`Giloth + eq.unique_spawn(162497, 0, 0, 389, -163, 268, 32); -- Rhag`Vezozh +end diff --git a/ssratemple/#Rhag-Zhezum.lua b/ssratemple/#Rhag-Zhezum.lua new file mode 100644 index 0000000..3c8143b --- /dev/null +++ b/ssratemple/#Rhag-Zhezum.lua @@ -0,0 +1,10 @@ +-- beginning of the arch lich rhag`zadune cycle + +function event_death_complete(e) + eq.set_global("Rhag","1",7,"F"); + eq.unique_spawn(162192, 0, 0, 644, -280, 152, 196); -- rhag`mozdezh + eq.unique_spawn(162194, 0, 0, 660, -310, 149.5, 218); -- Rhag`Hilath + eq.unique_spawn(162196, 0, 0, 561, -324, 142, 0); -- Rhag`Rithal + eq.unique_spawn(162193, 0, 0, 561, -236, 142, 130); -- Rhag`Vithil + eq.unique_spawn(162195, 0, 0, 660, -247, 149.5, 165); -- Rhag`Zerath +end diff --git a/ssratemple/162007.lua b/ssratemple/162007.lua new file mode 100644 index 0000000..cb30c11 --- /dev/null +++ b/ssratemple/162007.lua @@ -0,0 +1,29 @@ +function event_spawn(e) + eq.set_timer("ssra",1000); +end + +function event_timer(e) + local qglobals = eq.get_qglobals(); + + if(e.timer == "ssra") then + + if ( qglobals["Rhag"] and qglobals["Rhag"] == "1" ) then + eq.unique_spawn(162192, 0, 0, 644, -280, 152, 196); -- rhag`mozdezh + eq.unique_spawn(162194, 0, 0, 660, -310, 149.5, 218); -- Rhag`Hilath + eq.unique_spawn(162196, 0, 0, 561, -324, 142, 0); -- Rhag`Rithal + eq.unique_spawn(162193, 0, 0, 561, -236, 142, 130); -- Rhag`Vithil + eq.unique_spawn(162195, 0, 0, 660, -247, 149.5, 165); -- Rhag`Zerath + end + + if ( qglobals["Lich"] and qglobals["Lich"] == "1" ) then + eq.unique_spawn(162030, 0, 0, 420, -144, 270.1, 0); -- Arch_Lich_Rhag`Zadune + eq.unique_spawn(162498, 0, 0, 449, -163, 268, 224); -- Rhag`Reshkazh + eq.unique_spawn(162495, 0, 0, 377, -71, 261, 64); -- Rath`Zihold + eq.unique_spawn(162496, 0, 0, 465, -71, 261, 192); -- Rath`Giloth + eq.unique_spawn(162497, 0, 0, 389, -163, 268, 32); -- Rhag`Vezozh + end + + end + eq.stop_timer("ssra"); + +end diff --git a/ssratemple/Elder_Glanoxx.lua b/ssratemple/Elder_Glanoxx.lua new file mode 100644 index 0000000..adee1f9 --- /dev/null +++ b/ssratemple/Elder_Glanoxx.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks like he's been sick for some time. He looks at you for a moment and motions for something to drink."); + elseif(e.message:findi("release")) then + e.self:Say("The ones that keep us here... the ones who defy the gods. They must be destroyed. I cannot recall a time outside of this place, but I believe the stories. I trust that we are from somewhere else. These creatures claim to be gods. They claim to have created us from the filth of the mines. This cannot be. I have seen the face of our true god. He told me of their blasphemy. He came to me and handed me the knowledge of how to reach their Emperor. He taught me to resist the prying magic of the fanatics. Are you the crusaders of prophecy... the ones who walk in the mist?"); + elseif(e.message:findi("crusaders of prophecy")) then + e.self:Say("The prophecy will come to pass at last. Take my knowledge... the knowledge of our lord. I will not last much longer. This sickness will kill me like the others. There is one other who can help you. He claims to know some weakness of these creatures, seek him at the smelting furnaces near the mines. Now I must tell you the secret of the key."); + elseif(e.message:findi("secret of the key")) then + e.self:Say("There is a pouch to be found. It was specially made and requires three separate components to function. Seek out the Idol of Zazuzh and the Ring of Zeruzsh. These items are kept by the Emperor's must loyal Taskmasters. Place with them the Ssreashzian Insignia. This item will be much harder to acquire. I am sure you will be successful... our lord walks with you. Please be swift."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13006}, 0)) then + e.self:Say("Are you here for them... are you here to release us?"); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/ssratemple/High_Priest_of_Ssraeshza.lua b/ssratemple/High_Priest_of_Ssraeshza.lua new file mode 100644 index 0000000..66376a1 --- /dev/null +++ b/ssratemple/High_Priest_of_Ssraeshza.lua @@ -0,0 +1,29 @@ +-- this script will reset adds that are pulled to a lower floor + +local ADD_TYPES = { 162115, 162112, 162114, 162113, 162121, 162119, 162122, 162120, 162118, 162116, 162117, 162111 }; + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("check", 10000); + else + eq.stop_timer("check"); + end +end + +function event_timer(e) + if ( e.timer == "check" ) then + + local elist = eq.get_entity_list(); + local npc; + + for _, typ in ipairs(ADD_TYPES) do + npc = elist:GetMobByNpcTypeID(typ):CastToNPC(); + if ( npc and npc.valid and npc:GetZ() < 240 ) then + npc:GMMove(npc:GetSpawnPointX(), npc:GetSpawnPointY(), npc:GetSpawnPointZ(), npc:GetSpawnPointH()); + npc:CastSpell(3230, npc:GetID()); -- Balance of the Nameless + npc:WipeHateList(); + return; -- do one at a time to fuck with them + end + end + end +end diff --git a/ssratemple/Warden_Mekuzh.lua b/ssratemple/Warden_Mekuzh.lua new file mode 100644 index 0000000..33bbb98 --- /dev/null +++ b/ssratemple/Warden_Mekuzh.lua @@ -0,0 +1,5 @@ +function event_waypoint_arrive(e) + if(e.wp > 1) then + e.self:Emote("hisses and spreads its hood. You don't suppose it sees us, do you?") + end +end \ No newline at end of file diff --git a/ssratemple/a_diseased_slave.lua b/ssratemple/a_diseased_slave.lua new file mode 100644 index 0000000..fdb6e4f --- /dev/null +++ b/ssratemple/a_diseased_slave.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + eq.set_timer("cough",math.random(1800000,10800000)); +end + +function event_timer(e) + if(e.timer == "cough") then + e.self:Emote("coughs."); + eq.set_timer("cough",math.random(1800000,10800000)); + end +end \ No newline at end of file diff --git a/ssratemple/an_Iksar_foreman.lua b/ssratemple/an_Iksar_foreman.lua new file mode 100644 index 0000000..bf55b4d --- /dev/null +++ b/ssratemple/an_Iksar_foreman.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("glanoxx sent me")) then + e.self:Say("So you've been talking to Elder Glanoxx eh? The disease has addled his mind, claiming gods speak to him. Nothing more than fever dreams if you ask me. Sometimes though... one could almost hope it was true. No! The fanatics will not catch me with unclean thoughts. If only there were some way to take advantage of the weakness I've discovered."); + elseif(e.message:findi("weakness")) then + e.self:Say("Shhh... Be quiet the Taskmasters have sharp hearing. There is a green metal found in the mines that our masters despise. We must carefully separate it from the ore before working with the purified metal. Any tainted metal is quickly destroyed. Many a slave has lost their life for not properly purifying the metal. I'm convinced the secret to the master's weakness lies in the tainted metal."); + elseif(e.message:findi("tainted metal")) then + e.self:Say("Yes, though none of us would dare wield a sacred weapon of the masters perhaps you could. Forge one of their weapons and some of the green metal from the mines and you can taint the metal of the weapon. Their own corrupted weapons shall be the instrument of their downfall."); + end +end diff --git a/ssratemple/an_Iksar_slave.lua b/ssratemple/an_Iksar_slave.lua new file mode 100644 index 0000000..e186bfc --- /dev/null +++ b/ssratemple/an_Iksar_slave.lua @@ -0,0 +1,11 @@ +function event_waypoint_arrive(e) + if(e.wp == 4) then + e.self:SetAppearance(1); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Salutations " .. e.other:GetCleanName() .. ", nice to meet you."); + end +end \ No newline at end of file diff --git a/ssratemple/encounters/ArchTormentor.lua b/ssratemple/encounters/ArchTormentor.lua new file mode 100644 index 0000000..192e2ba --- /dev/null +++ b/ssratemple/encounters/ArchTormentor.lua @@ -0,0 +1,80 @@ +local ThreadManager = require("thread_manager"); +local Zhesz = nil; + +function ZheszLecture() + Zhesz:Say("The Emperor is your god."); + call_iksar_bow(e); + ThreadManager:Wait(0.65); + + Zhesz:Say("You were created from filth by the will of the Emperor"); + call_iksar_bow(e); + ThreadManager:Wait(0.65); + + Zhesz:Say("You are no better than filth. Of no value to the Emperor"); + call_iksar_bow(e); + ThreadManager:Wait(0.65); + + Zhesz:Say("Yet only the will of the Emperor keeps you alive"); + call_iksar_bow(e); +end + +function call_iksar_bow(e) + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- move the mobs to the location that is calling to. + local include_npc_list = Set {162137}; -- north iksar mob + local npc_list = entity_list:GetNPCList(); + if (npc_list ~= nil) then + for npc in npc_list.entries do + if (include_npc_list[npc:GetNPCTypeID()] ~= nil) then + -- npc.valid will be true if the NPC is actually spawned + if (npc.valid) then + npc:CastToNPC():DoAnim(36); + end + end + end + end +end + +-- Set function example from Programming In Lua +-- http://www.lua.org/pil/11.5.html +function Set (list) + local set = {} + for _, l in ipairs(list) do set[l] = true end + return set +end + +function ZheszHeartbeat(e) + Zhesz = e.self; + if(e.timer == "start") then + ThreadManager:Create("ZheszLecture",ZheszLecture) + elseif(e.timer == "Zhesz_hb") then + ThreadManager:GarbageCollect(); + ThreadManager:Resume("ZheszLecture"); + end +end + +function ZheszSpawn(e) + eq.set_timer("start", 144000); + eq.set_timer("Zhesz_hb", 36000); +end + +function ZheszCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("start")) then + eq.pause_timer("start"); + end + if(not eq.is_paused_timer("Zhesz_hb")) then + eq.pause_timer("Zhesz_hb"); + end + else + eq.resume_timer("start"); + eq.resume_timer("Zhesz_hb"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("ArchTormentor", Event.timer, 162165, ZheszHeartbeat); + eq.register_npc_event("ArchTormentor", Event.spawn, 162165, ZheszSpawn); + eq.register_npc_event("ArchTormentor", Event.combat, 162165, ZheszCombat); +end diff --git a/ssratemple/encounters/CurseCycle.lua b/ssratemple/encounters/CurseCycle.lua new file mode 100644 index 0000000..83bb557 --- /dev/null +++ b/ssratemple/encounters/CurseCycle.lua @@ -0,0 +1,496 @@ +local StartEvent = 0; + +function SsrakezhSpawn(e) + eq.set_timer("SpawnSsrakezh",1000); +end + +function SsrakezhTimer(e) + if(e.timer == "SpawnSsrakezh") then + eq.stop_timer("SpawnSsrakezh"); + eq.unique_spawn(162258,0,0,-211,131,-183,134); + end +end + +function KavamezhDeath(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(162210)) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(162021) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162013) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162060) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162024) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162011) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162059) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162023) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162258) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162089) + ) then + eq.signal(162266,1); + elseif(not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162021) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162013) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162060) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162024) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162011) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162059) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162023) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162258) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162089) + ) then + eq.signal(162266,2); + end + end +end + +function KeuzozhDeath(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(162210)) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(162012) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162013) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162060) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162024) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162011) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162059) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162023) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162258) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162089) + ) then + eq.signal(162266,1); + elseif(not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162012) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162013) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162060) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162024) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162011) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162059) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162023) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162258) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162089) + ) then + eq.signal(162266,2); + end + end +end + +function MikazhaDeath(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(162210)) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(162012) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162021) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162060) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162024) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162011) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162059) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162023) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162258) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162089) + ) then + eq.signal(162266,1); + elseif(not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162012) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162021) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162060) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162024) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162011) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162059) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162023) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162258) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162089) + ) then + eq.signal(162266,2); + end + end +end + +function RevanDeath(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(162210)) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(162012) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162021) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162013) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162024) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162011) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162059) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162023) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162258) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162089) + ) then + eq.signal(162266,1); + elseif(not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162012) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162021) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162013) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162024) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162011) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162059) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162023) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162258) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162089) + ) then + eq.signal(162266,2); + end + end +end + +function VezhkahDeath(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(162210)) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(162012) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162021) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162013) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162060) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162011) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162059) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162023) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162258) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162089) + ) then + eq.signal(162266,1); + elseif(not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162012) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162021) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162013) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162060) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162011) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162059) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162023) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162258) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162089) + ) then + eq.signal(162266,2); + end + end +end + +function ZerumazDeath(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(162210)) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(162012) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162021) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162013) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162060) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162024) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162059) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162023) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162258) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162089) + ) then + eq.signal(162266,1); + elseif(not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162012) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162021) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162013) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162060) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162024) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162059) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162023) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162258) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162089) + ) then + eq.signal(162266,2); + end + end +end + +function ZheDeath(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(162210)) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(162012) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162021) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162013) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162060) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162024) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162011) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162023) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162258) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162089) + ) then + eq.signal(162266,1); + elseif(not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162012) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162021) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162013) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162060) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162024) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162011) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162023) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162258) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162089) + ) then + eq.signal(162266,2); + end + end +end + +function WardenDeath(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(162210)) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(162012) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162021) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162013) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162060) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162024) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162011) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162059) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162258) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162089) + ) then + eq.signal(162266,1); + elseif(not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162012) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162021) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162013) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162060) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162024) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162011) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162059) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162258) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162089) + ) then + eq.signal(162266,2); + end + end +end + +function SsrakezhDeath(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(162210)) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(162012) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162021) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162013) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162060) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162024) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162011) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162059) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162023) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162089) + ) then + eq.signal(162266,1); + elseif(not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162012) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162021) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162013) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162060) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162024) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162011) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162059) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162023) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162089) + ) then + eq.signal(162266,2); + end + eq.signal(162266,3); + end +end + +function SsravizhDeath(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(162210)) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(162012) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162021) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162013) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162060) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162024) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162011) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162059) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162023) and + eq.get_entity_list():IsMobSpawnedByNpcTypeID(162258) + ) then + eq.signal(162266,1); + elseif(not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162012) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162021) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162013) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162060) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162024) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162011) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162059) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162023) and + not eq.get_entity_list():IsMobSpawnedByNpcTypeID(162258) + ) then + eq.signal(162266,2); + end + end +end + +function EventSignal(e) + if(e.signal == 1) then + eq.set_timer("eventstart",3600000); + StartEvent = 1; + elseif(e.signal == 2) then + if(StartEvent == 1) then + eq.set_timer("spawnGlyph",46000); + end + elseif(e.signal == 3) then + eq.set_timer("SpawnSsrakezh",7200000); + elseif(e.signal == 4) then + eq.stop_timer("SpawnSsrakezh"); + end +end + +function EventTimer(e) + if(e.timer == "eventstart") then + eq.stop_timer("eventstart"); + StartEvent = 0; + elseif(e.timer == "spawnGlyph") then + eq.stop_timer("spawnGlyph"); + eq.zone_emote(0,"A roar fills the lower temple halls! The smell of burning ozone and decay fills the air!"); + if(eq.get_qglobals().glyphed_dead ~= nil) then + eq.unique_spawn(162038,0,0,-51,-9,-218,63); + else + eq.unique_spawn(162037,0,0,-51,-9,-218,63); + end + elseif(e.timer == "SpawnSsrakezh") then + eq.stop_timer("SpawnSsrakezh"); + eq.unique_spawn(162258,0,0,-211,131,-183,134); + end +end + +function GlyphSpawn(e) + eq.set_timer("depop",1800000); +end + +function GlyphTimer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function GlyphCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function GlyphDeath(e) + eq.set_global("glyphed_dead","1",3,"D5"); + if(eq.get_qglobals().exiled_dead ~= nil) then + eq.unique_spawn(162040,0,0,-51,-9,-218,63); -- spawn banished + else + eq.unique_spawn(162039,0,0,-51,-9,-218,63); -- spawn exiled + end +end + +function RuneSpawn(e) + eq.set_timer("depop",1800000); +end + +function RuneTimer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function RuneCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function RuneDeath(e) + if(eq.get_qglobals().exiled_dead ~= nil) then + eq.unique_spawn(162040,0,0,-51,-9,-218,63); -- spawn banished + else + eq.unique_spawn(162039,0,0,-51,-9,-218,63); -- spawn exiled + end +end + +function ExileSpawn(e) + eq.set_timer("depop",1500000); +end + +function ExileTimer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function ExileCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function ExileDeath(e) + eq.set_global("exiled_dead","1",3,"D5"); + eq.unique_spawn(162042,0,0,-51,-9,-218,63); +end + +function BanishSpawn(e) + eq.set_timer("depop",1500000); +end + +function BanishTimer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function BanishCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function BanishDeath(e) + eq.unique_spawn(162042,0,0,-51,-9,-218,63); +end + +function CurseSpawn(e) + eq.set_timer("depop",1200000); +end + +function CurseTimer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function CurseCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function CurseDeath(e) + eq.delete_global("glyphed_dead"); + eq.delete_global("exiled_dead"); + eq.signal(162266,4); + eq.depop_with_timer(162210); +end + +function event_encounter_load(e) + eq.register_npc_event("CurseCycle", Event.spawn, 162210, SsrakezhSpawn); + eq.register_npc_event("CurseCycle", Event.timer, 162210, SsrakezhTimer); + eq.register_npc_event("CurseCycle", Event.death, 162012, KavamezhDeath); + eq.register_npc_event("CurseCycle", Event.death, 162021, KeuzozhDeath); + eq.register_npc_event("CurseCycle", Event.death, 162013, MikazhaDeath); + eq.register_npc_event("CurseCycle", Event.death, 162060, RevanDeath); + eq.register_npc_event("CurseCycle", Event.death, 162024, VezhkahDeath); + eq.register_npc_event("CurseCycle", Event.death, 162011, ZerumazDeath); + eq.register_npc_event("CurseCycle", Event.death, 162059, ZheDeath); + eq.register_npc_event("CurseCycle", Event.death, 162023, WardenDeath); + eq.register_npc_event("CurseCycle", Event.death, 162258, SsrakezhDeath); + eq.register_npc_event("CurseCycle", Event.death, 162089, SsravizhDeath); + eq.register_npc_event("CurseCycle", Event.signal, 162266, EventSignal); + eq.register_npc_event("CurseCycle", Event.timer, 162266, EventTimer); + eq.register_npc_event("CurseCycle", Event.spawn, 162037, GlyphSpawn); + eq.register_npc_event("CurseCycle", Event.timer, 162037, GlyphTimer); + eq.register_npc_event("CurseCycle", Event.combat, 162037, GlyphCombat); + eq.register_npc_event("CurseCycle", Event.death, 162037, GlyphDeath); + eq.register_npc_event("CurseCycle", Event.spawn, 162038, RuneSpawn); + eq.register_npc_event("CurseCycle", Event.timer, 162038, RuneTimer); + eq.register_npc_event("CurseCycle", Event.combat, 162038, RuneCombat); + eq.register_npc_event("CurseCycle", Event.death, 162038, RuneDeath); + eq.register_npc_event("CurseCycle", Event.spawn, 162039, ExileSpawn); + eq.register_npc_event("CurseCycle", Event.timer, 162039, ExileTimer); + eq.register_npc_event("CurseCycle", Event.combat, 162039, ExileCombat); + eq.register_npc_event("CurseCycle", Event.death, 162039, ExileDeath); + eq.register_npc_event("CurseCycle", Event.spawn, 162040, BanishSpawn); + eq.register_npc_event("CurseCycle", Event.timer, 162040, BanishTimer); + eq.register_npc_event("CurseCycle", Event.combat, 162040, BanishCombat); + eq.register_npc_event("CurseCycle", Event.death, 162040, BanishDeath); + eq.register_npc_event("CurseCycle", Event.spawn, 162042, CurseSpawn); + eq.register_npc_event("CurseCycle", Event.timer, 162042, CurseTimer); + eq.register_npc_event("CurseCycle", Event.combat, 162042, CurseCombat); + eq.register_npc_event("CurseCycle", Event.death, 162042, CurseDeath); +end diff --git a/ssratemple/encounters/Emperor.lua b/ssratemple/encounters/Emperor.lua new file mode 100644 index 0000000..326e98d --- /dev/null +++ b/ssratemple/encounters/Emperor.lua @@ -0,0 +1,257 @@ +--[[ +blood death emp spawn +[Sat Apr 28 21:00:42 2012][Sat Apr 28 21:04:38 2012] 3:56 +[Sat Sep 1 19:43:51 2012][Sat Sep 1 19:47:47 2012] 3:56 +[Fri Apr 5 22:22:19 2013][Fri Apr 5 22:26:15 2013] 3:56 +[Sun May 26 13:27:57 2013][Sun May 26 13:31:53 2013] 3:54 +[Mon Jun 24 21:44:41 2013][Mon Jun 24 21:50:00 2013] 5:19 +[Tue Jul 9 22:14:09 2013][Tue Jul 9 22:19:29 2013] 5:20 +[Sat Aug 10 22:11:45 2013][Sat Aug 10 22:17:04 2013] 5:19 +[Thu Sep 26 13:36:34 2013][Thu Sep 26 13:41:53 2013] 5:19 +[Sun Sep 29 10:19:40 2013][Sun Sep 29 10:23:36 2013] 3:56 +[Fri Dec 21 22:28:05 2012][Fri Dec 21 22:33:25 2012] 5:20 +[Fri Aug 2 23:29:35 2013][Fri Aug 2 23:34:55 2013] 5:20 + +]] + +local GOVERNOR_TYPE = 162054; -- EmpInitSpawn +local FAKE_EMP_TYPE = 162065; -- untargetable emp +local FAKE_EMP_SPAWNPOINT = 352885; +local REAL_EMP_TYPE = 162491; +local GOLEM_TYPE = 162493; -- #Ssraeshzian_Blood_Golem +local BLOOD_TYPE = 162189; -- #Blood_of_Ssraeshza +local BLOOD_SPAWNPOINT = 352792; +local GOLEM_SPAWNPOINT = 369150; +local TRAP_TYPE = 162492; -- 4 corner traps that cast Avatar Power +local WRAITH_TYPE = 162494; +local CURSE_TRAP_TYPE = 162478; -- center room invis man that casts Curse of Ssraeshza after some time +local ROOM_GUARDS = { [162128] = 1, [162123] = 1, [162130] = 1, [162126] = 1, [162127] = 1, [162129] = 1, [162124] = 1, [162125] = 1 } + +local cursed = false; +local empDepopped = false; + +function GovernorTimer(e) + + if ( e.timer == "despawntraps" ) then + eq.stop_timer("traps"); + eq.depop_all(TRAP_TYPE); + cursed = false; + + elseif ( e.timer == "twitchesemote" ) then + eq.stop_timer("twitchesemote"); + eq.set_timer("spawnemp", 120000); + eq.zone_emote(7, " The Emperor twitches. He appears to have been weakened by the destruction of the golem."); + + elseif ( e.timer == "spawnemp" ) then + eq.stop_timer("spawnemp"); + + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(FAKE_EMP_TYPE) ) then + local fake = eq.get_entity_list():GetMobByNpcTypeID(FAKE_EMP_TYPE); + + if ( fake and fake.valid ) then + eq.spawn2(REAL_EMP_TYPE, 0, 0, fake:GetX(), fake:GetY(), fake:GetZ(), fake:GetHeading()); + end + + fake:Depop(true); + eq.update_spawn_timer(FAKE_EMP_SPAWNPOINT, 10800000); -- in case zone crashes or sleeps; timer will reset to full on emp death + end + --[[ + elseif ( e.timer == "trapscast" ) then + + local npcList = eq.get_entity_list():GetNPCList(); + + if ( npcList ) then + + for npc in npcList.entries do + + if ( npc.valid and npc:GetNPCTypeID() == TRAP_TYPE ) then + npc:CastSpell(808, e.self:GetID(), 0, 1); + end + end + end + ]] + + end +end + +function ActivateTraps() + + if ( not eq.get_entity_list():IsMobSpawnedByNpcTypeID(TRAP_TYPE) ) then + + for i = 1, 11 do + eq.spawn2(TRAP_TYPE, 0, 0, 691, -287, 402, 0); + eq.spawn2(TRAP_TYPE, 0, 0, 690, -354, 402, 0); + eq.spawn2(TRAP_TYPE, 0, 0, 626, -355, 402, 0); + eq.spawn2(TRAP_TYPE, 0, 0, 629, -292, 402, 0); + end + + --eq.set_timer("trapscast", 10000, eq.get_entity_list():GetMobByNpcTypeID(GOVERNOR_TYPE)); + end +end + +function BloodAggro(e) + + if ( e.joined ) then + ActivateTraps(); + else + eq.set_timer("despawntraps", 2880000, eq.get_entity_list():GetMobByNpcTypeID(GOVERNOR_TYPE)); + end +end + +function BloodDeath(e) + local t = 115; + if ( math.random(100) > 50 ) then + t = 200; + end + eq.set_timer("twitchesemote", t * 1000, eq.get_entity_list():GetMobByNpcTypeID(GOVERNOR_TYPE)); + eq.set_timer("despawntraps", 2880000, eq.get_entity_list():GetMobByNpcTypeID(GOVERNOR_TYPE)); + + eq.spawn_condition("ssratemple", 1, 0); -- disable blood respawn + eq.spawn_condition("ssratemple", 2, 1); -- enable lootless golem spawn + + eq.get_entity_list():GetSpawnByID(GOLEM_SPAWNPOINT):Reset(); + eq.get_entity_list():GetSpawnByID(BLOOD_SPAWNPOINT):Reset(); +end + +function FakeEmpSpawn(e) + + if ( empDepopped ) then -- only execute this function if this is a respawn from a kill + empDepopped = false; + return; + end + eq.spawn_condition("ssratemple", 1, 1); -- enable blood respawn + eq.spawn_condition("ssratemple", 2, 0); -- disable lootless golem spawn + + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(GOLEM_TYPE) ) then + + eq.get_entity_list():GetMobByNpcTypeID(GOLEM_TYPE):Depop(true); + eq.spawn_from_spawn2(BLOOD_SPAWNPOINT); + end +end + +function EmpDeath(e) + eq.spawn2(WRAITH_TYPE, 0, 0, 877, -326, 408, 192); + eq.spawn2(WRAITH_TYPE, 0, 0, 953, -293, 404, 176); + eq.spawn2(WRAITH_TYPE, 0, 0, 953, -356, 404, 203); + eq.spawn2(WRAITH_TYPE, 0, 0, 773, -360, 403, 52); + eq.spawn2(WRAITH_TYPE, 0, 0, 770, -289, 403, 72); + + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(FAKE_EMP_TYPE) ) then + -- possible if emp fight is super long + eq.get_entity_list():GetMobByNpcTypeID(FAKE_EMP_TYPE):Depop(true); + else + eq.get_entity_list():GetSpawnByID(FAKE_EMP_SPAWNPOINT):Reset(); + end +end + +function DepopCombat(e) + if ( e.joined ) then + if ( not eq.is_paused_timer("depop") ) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function EmpTimer(e) + + if ( e.timer == "sploitcheck" ) then + + if ( e.self:GetZ() < 400 or e.self:GetY() > -180 or e.self:GetY() < -468 ) then + empDepopped = true; + eq.spawn_from_spawn2(FAKE_EMP_SPAWNPOINT); + eq.depop(); -- depop Emp if somebody pulls him outside of room somehow + end + + -- make room adds aggro in case they avoid it somehow + local npcList = eq.get_entity_list():GetNPCList(); + local emp = eq.get_entity_list():GetMobByNpcTypeID(REAL_EMP_TYPE); + + if ( emp and emp.valid and emp:IsEngaged() and npcList ) then + + for npc in npcList.entries do + + if ( npc.valid and ROOM_GUARDS[npc:GetNPCTypeID()] ) then + + if ( not npc:IsEngaged() ) then + npc:AddToHateList(emp:GetHateTop()); + end + end + end + end + + elseif ( e.timer == "depop" ) then + empDepopped = true; + eq.spawn_from_spawn2(FAKE_EMP_SPAWNPOINT); + eq.depop(); + end +end + +function TrapCombat(e) + + if ( e.joined and not cursed ) then + eq.set_timer("blood", 240000); + eq.set_timer("curse", 1113000); + cursed = true; + end +end + +function TrapTimer(e) + + if ( e.timer == "curse" ) then + eq.stop_timer("curse"); + + if ( e.self:IsEngaged() ) then + e.self:Emote("Something tells you that this room isn't safe anymore..."); + eq.set_timer("curse2", 312000); + end + + elseif ( e.timer == "curse2" ) then + eq.stop_timer("curse2"); + + if ( e.self:IsEngaged() ) then + e.self:Emote("A hissing echos in your ears..."); + e.self:CastSpell(2069, e.self:GetID(), 0, 1); + end + eq.depop_with_timer(); + + elseif ( e.timer == "blood" ) then + eq.stop_timer("blood"); + e.self:Emote("You notice a splatter of oddly colored blood on the floor"); + end +end + +function event_encounter_load(e) + + eq.register_npc_event("Emperor", Event.timer, GOVERNOR_TYPE, GovernorTimer); + + eq.register_npc_event("Emperor", Event.combat, GOLEM_TYPE, BloodAggro); + eq.register_npc_event("Emperor", Event.death, GOLEM_TYPE, BloodDeath); + eq.register_npc_event("Emperor", Event.combat, BLOOD_TYPE, BloodAggro); + eq.register_npc_event("Emperor", Event.death, BLOOD_TYPE, BloodDeath); + + eq.register_npc_event("Emperor", Event.spawn, FAKE_EMP_TYPE, FakeEmpSpawn); + + eq.register_npc_event("Emperor", Event.death, REAL_EMP_TYPE, EmpDeath); + eq.register_npc_event("Emperor", Event.spawn, REAL_EMP_TYPE, function() + eq.set_timer("sploitcheck", 5000); + eq.set_timer("depop", 2700000); + end); + eq.register_npc_event("Emperor", Event.timer, REAL_EMP_TYPE, EmpTimer); + eq.register_npc_event("Emperor", Event.combat, REAL_EMP_TYPE, DepopCombat); + + eq.register_npc_event("Emperor", Event.combat, WRAITH_TYPE, DepopCombat); + eq.register_npc_event("Emperor", Event.spawn, WRAITH_TYPE, function() + eq.set_timer("depop", 2700000); + end); + eq.register_npc_event("Emperor", Event.timer, WRAITH_TYPE, function() + eq.depop(); + end); + + eq.register_npc_event("Emperor", Event.combat, CURSE_TRAP_TYPE, TrapCombat); + eq.register_npc_event("Emperor", Event.timer, CURSE_TRAP_TYPE, TrapTimer); + eq.register_npc_event("Emperor", Event.spawn, CURSE_TRAP_TYPE, function() + cursed = false; + end); +end diff --git a/ssratemple/encounters/PrimeEducator.lua b/ssratemple/encounters/PrimeEducator.lua new file mode 100644 index 0000000..c17b5f8 --- /dev/null +++ b/ssratemple/encounters/PrimeEducator.lua @@ -0,0 +1,85 @@ +local ThreadManager = require("thread_manager"); +local Ghozik = nil; + +function GhozikLecture() + Ghozik:Say("The Emperor is your god."); + IksarShoutBow(); + ThreadManager:Wait(0.65); + + Ghozik:Say("You were created from filth by the will of the Emperor"); + IksarShoutBow(); + ThreadManager:Wait(0.65); + + Ghozik:Say("You are no better than filth. Of no value to the Emperor"); + IksarShoutBow(); + ThreadManager:Wait(0.65); + + Ghozik:Say("Yet only the will of the Emperor keeps you alive"); + IksarShoutBow(); +end + +function IksarShoutBow() + eq.get_entity_list():GetMobByNpcTypeID(162234):Emote("shout in unison, 'All praises to our lord! We are but filth!'"); + call_iksar_bow(e); +end + +function call_iksar_bow(e) + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- move the mobs to the location that is calling to. + local include_npc_list = Set {162028}; -- south iksar mob + local npc_list = entity_list:GetNPCList(); + if (npc_list ~= nil) then + for npc in npc_list.entries do + if (include_npc_list[npc:GetNPCTypeID()] ~= nil) then + -- npc.valid will be true if the NPC is actually spawned + if (npc.valid) then + npc:CastToNPC():DoAnim(36); + end + end + end + end +end + +-- Set function example from Programming In Lua +-- http://www.lua.org/pil/11.5.html +function Set (list) + local set = {} + for _, l in ipairs(list) do set[l] = true end + return set +end + +function GhozikHeartbeat(e) + Ghozik = e.self; + if(e.timer == "start") then + ThreadManager:Create("GhozikLecture",GhozikLecture) + elseif(e.timer == "Ghozik_hb") then + ThreadManager:GarbageCollect(); + ThreadManager:Resume("GhozikLecture"); + end +end + +function GhozikSpawn(e) + eq.set_timer("start", 146000); + eq.set_timer("Ghozik_hb", 36000); +end + +function GhozikCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("start")) then + eq.pause_timer("start"); + end + if(not eq.is_paused_timer("Ghozik_hb")) then + eq.pause_timer("Ghozik_hb"); + end + else + eq.resume_timer("start"); + eq.resume_timer("Ghozik_hb"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("PrimeEducator", Event.timer, 162179, GhozikHeartbeat); + eq.register_npc_event("PrimeEducator", Event.spawn, 162179, GhozikSpawn); + eq.register_npc_event("PrimeEducator", Event.combat, 162179, GhozikCombat); +end diff --git a/ssratemple/script_init.lua b/ssratemple/script_init.lua new file mode 100644 index 0000000..4779685 --- /dev/null +++ b/ssratemple/script_init.lua @@ -0,0 +1,4 @@ +eq.load_encounter("PrimeEducator"); +eq.load_encounter("ArchTormentor"); +eq.load_encounter("CurseCycle"); +eq.load_encounter("Emperor"); diff --git a/steamfont/Brona_Frugrin.lua b/steamfont/Brona_Frugrin.lua new file mode 100644 index 0000000..102fa88 --- /dev/null +++ b/steamfont/Brona_Frugrin.lua @@ -0,0 +1,40 @@ +-- Quest for Staff of the Observers + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Well met, " .. e.other:GetCleanName() .. "! What brings you out this way? Are you interested in becoming an observer? No, you look like the adventuring type. The wilds of the Steamfont Mountains is as far as my body goes. But through my [duties] as an observer, my mind travels the cosmos."); + elseif(e.message:findi("duties")) then + if(e.other:GetFaction(e.self) <= 5) then + e.self:Say("Well, I am quite an accomplished enchanter but most of my time now is spent crafting the magical lenses that enable us to see beyond the ceiling of Norrath and into other realms and dimensions. Say, in your travels have you encountered any [evil eyes]?"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("evil eyes")) then + if(e.other:GetFaction(e.self) <= 5) then + e.self:Say("Evil Eyes are dangerous creatures of great magical power. You will know one if you see one. There is a rumor that somewhere on Antonica there lives a powerful Evil Eye by the name of Borxx. I believe that with the Lens from her eye and some expert tinkering I could create a device that will enable me to observe the gods themselves in their native planes. If you were to bring me this lens the Eldrich Collective will reward you greatly."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFaction(e.self) <= 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10170})) then + e.self:Say("Not only did you find Borxx but you were able to slay her as well?! You are truly a champion of great skill. This lens of Borxx's will greatly aid our research of other planes of existence. I have been authorized by the Eldritch Collective to offer you this Staff of the Observers. Carry it with pride.") + e.other:Faction(e.self,245, 15); -- Eldrich COllective + e.other:Faction(e.self,238, -2); -- Dark Reflection + e.other:Faction(e.self,239, -1); -- The Dead + e.other:Faction(e.self,255, 2); -- Gem Choppers + e.other:Faction(e.self,333, 2); -- King Ak'Anon + e.other:QuestReward(e.self,0,0,0,0,10171,100); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Quest by mystic414 + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/steamfont/Byrola_Bendil.lua b/steamfont/Byrola_Bendil.lua new file mode 100644 index 0000000..44d0e99 --- /dev/null +++ b/steamfont/Byrola_Bendil.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I really enjoy the evenings in the Steamfont Mountains. The air is so fresh!"); + end +end diff --git a/steamfont/Cargo_Clockwork.lua b/steamfont/Cargo_Clockwork.lua new file mode 100644 index 0000000..fa8c2f4 --- /dev/null +++ b/steamfont/Cargo_Clockwork.lua @@ -0,0 +1,43 @@ +local delivery = 0; + +function event_signal(e) + local qglobal = eq.get_qglobals(); + + if(e.signal == 1) then + e.self:Emote("Chuga.. Chug..Chug.. 'This unit requires maintenance.'"); + elseif(e.signal == 2) then + if(qglobal["CargoClockwork"] == nil) then + eq.set_global("CargoClockwork","1",7,"H2"); + eq.start(5); --Path to windmills + end + end +end + +function event_waypoint_depart(e) + if(e.wp == 1) then + if(delivery == 1) then + eq.stop(); + delivery = 0; + end + elseif(e.wp == 8) then + e.self:Say("kachunk .. kachunk.."); + eq.signal(56155,1); --Watchman_Halv + elseif(e.wp == 10) then + if(delivery == 0) then + delivery = 1; + e.self:Emote("Chuga.. Chug..Chug.."); + e.self:Emote("The chugging of the Cargo Clockwork comes to a halt."); + eq.unique_spawn(56178,0,0,30,-700,-109,62); --Hector + eq.unique_spawn(56179,0,0,95,-732,-108,240); --Renaldo + eq.unique_spawn(56180,0,0,53,-615,-107,113); --Jerald + e.self:Say("This is highway robbery."); + end + end +end + +function event_death_complete(e) + delivery = 0; + eq.signal(56178,0); --Hector + eq.signal(56179,0); --Renaldo + eq.signal(56180,0); --Jerald +end diff --git a/steamfont/Charlotte.lua b/steamfont/Charlotte.lua new file mode 100644 index 0000000..a6af865 --- /dev/null +++ b/steamfont/Charlotte.lua @@ -0,0 +1,21 @@ +function event_spawn(e) + e.self:SetRunning(true); +end + +function event_signal(e) + if((e.signal==1) and ((e.self:GetX() == -495) or (e.self:GetX() == -734)) and ((e.self:GetY() == -154) or (e.self:GetY() == 114))) then + e.self:Emote("Beep.. Beep.. Beep.."); + eq.pause(60); + end + if(e.signal==2) then + eq.start(6); + end + if(e.signal==3) then + eq.start(7); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/steamfont/Crusader_Swiftmoon.lua b/steamfont/Crusader_Swiftmoon.lua new file mode 100644 index 0000000..f1b0fee --- /dev/null +++ b/steamfont/Crusader_Swiftmoon.lua @@ -0,0 +1,17 @@ +--Crusader_Swiftmoon.pl +--Part of Innoruuk Regent +--Quickie to despawn him after an hour -Kilelen + +function event_spawn(e) + eq.set_timer("depop", 3600000); +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/steamfont/Ennixy_Frennor.lua b/steamfont/Ennixy_Frennor.lua new file mode 100644 index 0000000..30dc13b --- /dev/null +++ b/steamfont/Ennixy_Frennor.lua @@ -0,0 +1,19 @@ +--Ennixy_Frennor.pl +--Part of Innoruuk Regent + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Unless you have something to tell me about yourself that I could possibly be interested in, be gone!"); + elseif(e.message:findi("hate be my guide")) then + e.self:Say("So you work for Szorn eh? It's about time he sent someone to check up on me! The Koada'Dal in possession of the crate is on his way here right now to cut a deal with me. I have been trying to send word to Szorn for several days to send support as I do not plan on allowing the elf to leave these mountains alive. You have arrived just in time. Kill the elf and the crate is yours!"); + eq.unique_spawn(56150,0,0,-836,1385,-110,128); --Crusader Swiftmoon + elseif(e.message:findi("wormwood")) then + e.self:Say("Wormwood? Why do you want that? OH nevermind. Here! Take it and leave me alone! You're wasting my valuable time!"); + e.other:SummonCursorItem(10265); --Sprig of Wormwood + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/steamfont/Fodin_Frugrin.lua b/steamfont/Fodin_Frugrin.lua new file mode 100644 index 0000000..b08046a --- /dev/null +++ b/steamfont/Fodin_Frugrin.lua @@ -0,0 +1,33 @@ +------------------------------------------------------------------------------------------------------------------ +-- Fodin Frugrin (ID:56177) +-- Zone: Steamfont (steamfont) +-- Quest: Telescope Lenses +-- Quest: Air Tight Box +-- Author: a_sewer_rat +------------------------------------------------------------------------------------------------------------------ + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello " .. e.other:GetCleanName() .. ". Have you ever peered beyond our little world? Somewhere out there in the vast darkness is a world filled with great technology and adventure. Our people should concentrate on reaching these distant worlds beyond the sparkling skies."); + elseif(e.message:findi("who")) then + e.self:Say("I am Fodin Frugin, observer for the Library of Mechanimagica."); + elseif(e.message:findi("larkon sent me")) then + if(e.other:GetFaction(e.self) <= 4) then + e.self:Say("So they found another young member to attend to their putrid hunt, eh? Take this box. You will notice that your box has ten slots and does not smell very good. That is because each slot must be filled with the diseased livers of infected rats. Hop to it, then! Go get some diseased livers. And if you should get bitten and find yourself diseased or poisoned, be sure to visit the Abbey of Deep Musing. They have healers who can cure disease. Do not forget to return the box to Larkon"); + e.other:SummonCursorItem(17923); --air tight box (container) + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("There is much more you must do for the Library of Mechanimagica before such things can be revealed to you. Perhaps fetching minotaur horns and returning them to Professor Theardor will earn you membership to the Library of Mechanimagica."); + else + e.self:Say("You dare to speak to a member of the Eldritch Collective! You had best leave before you find your soul displaced from your body."); + end + elseif(e.message:findi("lens")) then + if(e.other:GetFaction(e.self) <= 4) then + e.self:Say("Spare Telescopic Lens?? I am sorry but I don't have any spares right now.. Oh wait!! I do. Here you are my friend. Careful with that. They are very rare."); + e.other:SummonCursorItem(13277); --telescope lens [fodin's lens] + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("There is much more you must do for the Library of Mechanimagica before such things can be revealed to you. Perhaps fetching minotaur horns and returning them to Professor Theardor will earn you membership to the Library of Mechanimagica."); + else + e.self:Say("You dare to speak to a member of the Eldritch Collective! You had best leave before you find your soul displaced from your body."); + end + end +end diff --git a/steamfont/Forpar_Fizfla.lua b/steamfont/Forpar_Fizfla.lua new file mode 100644 index 0000000..9303124 --- /dev/null +++ b/steamfont/Forpar_Fizfla.lua @@ -0,0 +1,46 @@ +--Zone: Steamfont Mountains +--Short Name: steamfont +--Zone ID: 56 +-- +--NPC Name: Forpar Fizfla +--NPC ID: 56130 +--Quest Status: finished + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Get out you pesky " .. e.other:Race() .. "! I don't need any " .. e.other:Race() .. " germs! Out, ye filthy beast!"); + elseif(e.message:findi("mystical instrument")) then + e.self:Say("I have made many mystical instruments in the past. Each one seemed to be better then the last. I have always had a dream of building the world's best lute, but I have yet to find someone brave enough to gather the components needed to make the instrument."); + elseif(e.message:findi("components")) then + e.self:Say("To make a mystical lute I will first need to make several pieces. If you bring me the backbone of an ancient fishman, a strong tentacle from one of the long lost amalgyms, and a petrified skull of a lycanthrope I may be able to create the head and neck of the instrument. If you go out and gather these things, make sure to bring me the note I gave you or I might forget who you are. I am getting quite old, you know."); + elseif(e.message:findi("next pieces")) then + e.self:Say("The next pieces are a little harder to come by than the last set. To make the body of an instrument that will last for ages to come, I need something very special. The scales of a big red dragon and the scales of a big white dragon will make it unbreakable, as well as giving it a unique look. Some metal bits will allow me to hold the body together. Please, if you gather up these things, bring them to me as soon as possible. I have not felt this good in years!"); + elseif(e.message:findi("to go")) then + e.self:Say("The lute has a head and body. The only thing missing is a set of strings that will never break! I have heard rumors of a living dead poison dragon in the lands of Kunark. If your were somehow able to get your hands on his guts, I could finish the lute. You would have to bring me the head, the body and the undead dragon gut for lute strings!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20378}, 0)) then --Note to Forpar Fizfla + e.self:Say("So you know Vedico! How is the lass? If Vedico would give you the time of day, you must be something special. What can I do for you? I hope you have not come to have me make another [mystical instrument]."); + e.other:QuestReward(e.self,0,0,0,0,20380); -- Forpar's Note to Himself + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20380, item2 = 20524, item3 = 20525, item4 = 5520})) then --Forpar's Note to Himself, Kedge Backbone, Petrified Werewolf Skull, Amygdalan Tendril + e.self:Say("Wow! I didn't think a " .. e.other:Race() .. " like you would be able to gather all of those things. Forpar rambles around and works with small tools for a good ten minutes before handing you a very fine looking lute head. 'Now, do you want to gather the next pieces for me?"); + e.other:QuestReward(e.self,0,0,0,0,20535); --Mystical Lute Head + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 11602, item2 = 11622, item3 = 16905})) then --White Dragon Scales, Red Dragon Scales, Metal Bits + e.self:Say("Wooooooo! You are doing a wonderful job, " .. e.other:GetCleanName() .. ". I wish I could go out and gather these things myself.' Forpar sits back down at his desk and pulls several very strange looking tools out. Eventually he looks up at you and says, 'The body is done! Only one more piece to go!"); + e.other:QuestReward(e.self,0,0,0,0,20536); --Mystical Lute Body + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 20535, item2 = 20536, item3 = 20526})) then --Mystical Lute Head, Mystical Lute Body, Undead Dragongut Strings + e.self:Say(" 'Goodness! I can hardly contain myself! This will be my greatest creation ever!' Forpar sits down, slides the lute head into place and screws it together. After a few minutes, he begins to string the lute with the gut strings of the poison dragon. A wonderful sound fills the air as he strums the lute once and hands it to you.'I hope you find a good use for that! I bet you could play it from the mountaintops and the people below would hear you. Thank you, " .. e.other:GetCleanName() .. ", for making my lifelong dream come true!'"); + e.other:QuestReward(e.self,0,0,0,0,20538); -- Mystical Lute + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:steamfont ID:56130 -- Forpar_Fizfla + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/steamfont/Frugo_Prigdish.lua b/steamfont/Frugo_Prigdish.lua new file mode 100644 index 0000000..2da9969 --- /dev/null +++ b/steamfont/Frugo_Prigdish.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings! I hope the walk out to the windmills was not too dangerous. You must be careful not to be snatched up by the slavers around these parts."); + end +end diff --git a/steamfont/Genda_Minyte.lua b/steamfont/Genda_Minyte.lua new file mode 100644 index 0000000..91489d5 --- /dev/null +++ b/steamfont/Genda_Minyte.lua @@ -0,0 +1,12 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello. I love to come out and gaze at the sky. Isn't it beautiful?"); + end +end +--END of FILE Zone:steamfont ID:56138 -- Genda_Minyte + + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/steamfont/Hector_the_highway_bandit.lua b/steamfont/Hector_the_highway_bandit.lua new file mode 100644 index 0000000..f09bec6 --- /dev/null +++ b/steamfont/Hector_the_highway_bandit.lua @@ -0,0 +1,13 @@ +function event_spawn(e) + eq.attack_npc_type(56105); +end + +function event_signal(e) + e.self:Say("Victory is mine!"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/steamfont/Jerald_the_highway_bandit.lua b/steamfont/Jerald_the_highway_bandit.lua new file mode 100644 index 0000000..3e4b838 --- /dev/null +++ b/steamfont/Jerald_the_highway_bandit.lua @@ -0,0 +1,13 @@ +function event_spawn(e) + eq.attack_npc_type(56105); +end + +function event_signal(e) + e.self:Say("I shall eat well tonight!"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/steamfont/Jogl_Doobraugh.lua b/steamfont/Jogl_Doobraugh.lua new file mode 100644 index 0000000..23a2cda --- /dev/null +++ b/steamfont/Jogl_Doobraugh.lua @@ -0,0 +1,38 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hellooo!! My name is Jogl, master engineer with the Eldrithch Collective. And this here is Charlotte. Pay no mind to her, She won't bite unless you attack me."); + eq.signal(56108,1); -- NPC: Charlotte + end +end + +function event_waypoint_arrive(e) + if(e.wp == 12) then + eq.signal(56108,2); -- NPC: Charlotte + end + if(e.wp == 18) then + eq.signal(56108,3); -- NPC: Charlotte + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13209})) then + e.self:Say("Hmmm. Here you go. Take this log to Drekon Vebnebber. He is the in-house merchant at Gemchoppers Hall. It is his duty to file away all these logs."); + -- verified live faction + e.other:Faction(e.self,245,5); -- Faction: Eldritch Collective + e.other:Faction(e.self,333,1); -- Faction: King Ak'Anon + e.other:Faction(e.self,255 ,1); -- Faction: Gem Choppers + e.other:Faction(e.self,287,-1); -- Faction: Meldrath + e.other:Faction(e.self,239,-1); -- Faction: The Dead + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(18837,18838),10); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--random 18837 and 18838 for two sepearte quests beginnings Red V and duster +--18837 used for Red V + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/steamfont/Minotaur_Hero.lua b/steamfont/Minotaur_Hero.lua new file mode 100644 index 0000000..fda5cc0 --- /dev/null +++ b/steamfont/Minotaur_Hero.lua @@ -0,0 +1,18 @@ +--NPC: Minotaur_Hero Zone: steamfont +-- +--by Qadar + +function event_combat(e) + if(e.joined) then + e.self:Say(".. For Meldrath!!"); + end +end + +function event_death_complete(e) + e.self:Say("I die soon! Meldrath, help me!"); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/steamfont/Minotaur_Lord.lua b/steamfont/Minotaur_Lord.lua new file mode 100644 index 0000000..28d2f1e --- /dev/null +++ b/steamfont/Minotaur_Lord.lua @@ -0,0 +1,16 @@ +--NPC: Minotaur_Lord Zone: steamfont + +function event_combat(e) + if(e.joined) then + e.self:Say("I survived the gladiator pens of Qeynos!! What can you do to one such as I?!!"); + end +end + +function event_death_complete(e) + e.self:Say("I die soon! Meldrath, help me!"); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/steamfont/Nilit_Druzlit.lua b/steamfont/Nilit_Druzlit.lua new file mode 100644 index 0000000..02237c5 --- /dev/null +++ b/steamfont/Nilit_Druzlit.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Eh? Eh?! Talk not now! My [creation] is running wild! Destroy it for me. please! If you do you can keep whatever parts you want from it."); + elseif(e.message:findi("what creation")) then + e.self:Say("Did you kill it yet? What? Bah! Yes. I made it. Nilit's clockwork it is. I made it to carry my toys to and from Ak'Anon but now it's gone wild and started attacking people. Please. destroy it!"); + end +end + +--END of FILE Zone:steamfont ID:56136 -- Nilit_Druzlit + + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/steamfont/Phiz_Frugrin.lua b/steamfont/Phiz_Frugrin.lua new file mode 100644 index 0000000..cc63c9c --- /dev/null +++ b/steamfont/Phiz_Frugrin.lua @@ -0,0 +1,21 @@ +------------------------------------------------------------------------------------------------------------------ +-- Phiz Frugrin (ID:56177) +-- Zone: Steamfont (steamfont) +-- Quest: Telescope Lenses +-- Author: a_sewer_rat +------------------------------------------------------------------------------------------------------------------ + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hello my friend. Good to meet you."); + elseif(e.message:findi("lens")) then + if(e.other:GetFaction(e.self) <= 4) then + e.self:Say("Oh my. I have bad news. It was stolen by a dark elf rogue. She fled very quickly. My little legs could not keep up. Here. She dropped this. You must find her. Get it back. We have very few Lenses."); + e.other:SummonCursorItem(18867); -- filthy towel + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("There is much more you must do for the Library of Mechanimagica before such things can be revealed to you. Perhaps fetching minotaur horns and returning them to Professor Theardor will earn you membership to the Library of Mechanimagica."); + else + e.self:Say("You dare to speak to a member of the Eldritch Collective! You had best leave before you find your soul displaced from your body."); + end + end +end diff --git a/steamfont/Renaldo_the_highway_bandit.lua b/steamfont/Renaldo_the_highway_bandit.lua new file mode 100644 index 0000000..853a973 --- /dev/null +++ b/steamfont/Renaldo_the_highway_bandit.lua @@ -0,0 +1,13 @@ +function event_spawn(e) + eq.attack_npc_type(56105); +end + +function event_signal(e) + e.self:Say("Your servos belong to me!"); + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/steamfont/Renux_Herkanor.lua b/steamfont/Renux_Herkanor.lua new file mode 100644 index 0000000..5276d43 --- /dev/null +++ b/steamfont/Renux_Herkanor.lua @@ -0,0 +1,21 @@ +-- Rogue Epic NPC -- Renux_Herkanor + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("BOO! I'm sure you didn't expect to see me here, but you've left quite a trail. Why did you go to all the trouble to get this scrap of parchment? What can be so important about it that Father would risk all for it? No matter, Hanns will figure it out. Now, will you tell me where to find Stanos?"); + elseif(e.message:findi("highpass hold")) then + e.self:Say("Excellent. Stanos shall meet his end, and soon. You, however, will not live another day. Can't have you warning him, now can I?"); + eq.attack(e.other:GetName()); + end +end + +function event_death_complete(e) + e.self:Say("Tell Hanns I tried, and will love him always. Tell Father I will save a seat in hell for him!"); +end + +--END of FILE Zone:steamfont ID:56172 -- Renux_Herkanor + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/steamfont/Tindo_Frugrin.lua b/steamfont/Tindo_Frugrin.lua new file mode 100644 index 0000000..41d26ab --- /dev/null +++ b/steamfont/Tindo_Frugrin.lua @@ -0,0 +1,27 @@ +------------------------------------------------------------------------------------------------------------------ +-- Tindo Frugrin (ID:56116) +-- Zone: Steamfont (steamfont) +-- Quest: Telescope Lenses +-- Author: a_sewer_rat +------------------------------------------------------------------------------------------------------------------ + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings! It is good to see a new face out here. I am Tindo Frugrin, observer for the Eldritch Collective."); + elseif(e.message:findi("lens")) then + if(e.other:GetFaction(e.self) <= 4) then + e.self:Say("I was hoping you were not the one they sent. I have a slight problem. My brother Bidl Frugrin is holding the lens. He went to Kelethin for a little observation. He has been there for quite some time. I fear he has found the local tavern. He will no doubt spend the day in the forest and every night at the tavern."); + elseif(e.other:GetFaction(e.self) == 5) then + e.self:Say("There is much more you must do for the Library of Mechanimagica before such things can be revealed to you. Perhaps fetching minotaur horns and returning them to Professor Theardor will earn you membership to the Library of Mechanimagica."); + else + e.self:Say("You dare to speak to a member of the Eldritch Collective! You had best leave before you find your soul displaced from your body."); + end + end +end + +--END of FILE Zone:steamfont ID:56116 -- Tindo_Frugrin + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/steamfont/Watchman_Halv.lua b/steamfont/Watchman_Halv.lua new file mode 100644 index 0000000..ebb951f --- /dev/null +++ b/steamfont/Watchman_Halv.lua @@ -0,0 +1,15 @@ +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + e.self:Say("What a glorious machine the cargo clockwork is!!"); + eq.signal(56105,1); -- NPC: Cargo_Clockwork +end + + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/steamfont/Watchman_Mylz.lua b/steamfont/Watchman_Mylz.lua new file mode 100644 index 0000000..6389041 --- /dev/null +++ b/steamfont/Watchman_Mylz.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings! You may rest inside one of the windmills. I will be on guard. No need for you to worry."); + end +end diff --git a/steamfont/Yendar_Starpyre.lua b/steamfont/Yendar_Starpyre.lua new file mode 100644 index 0000000..bfa562c --- /dev/null +++ b/steamfont/Yendar_Starpyre.lua @@ -0,0 +1,36 @@ +-- Rogue Epic NPC -- Yendar_Starpyre + + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, traveler! I sense you did not simply chance upon my isolation here, but are instead seeking me for something."); + elseif(e.message:findi("translate")) then + e.self:Say("Oh, if it is written in Eder Teir'Dal, most likely I can translate it. I will be happy to try, in any case. Let me see it, please."); + elseif(e.message:findi("key")) then + e.self:Say("In the Plane of Hate, where dwell Innoruuk and his minions, there is a tome. This tome is called the Book of Souls."); + elseif(e.message:findi("book of souls")) then + e.self:Say("The Book of Souls chronicles all the lives Innoruuk has tainted over the years. It is in the care of the Maestro of Rancor. I can use this tome as a basis for my translation, if you return it and the note to me. An experienced practitioner in the art of non-detection should be able to snatch it from its resting place, don't you think, " .. e.other:Race() .. "?'"); + elseif(e.message:findi("Eldreth sent me")) then + e.self:Say("Eldreth, Eldreth, hmm, was that a rather shabby Erudite? I have dealt with him in the past, I am sure. What does he want of me?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28053})) then + e.self:Say("I say, this is indeed a challenge. This is written in what I'm sure is the language of the High Priesthood of Innoruuk. I've often wished I could read this, but I have never had the key to unlock the language. Take this for now."); + e.other:QuestReward(e.self,0,0,0,0,28055,500); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 28055, item2 = 28016})) then + e.self:Say("My, this is quite a large list! Yes, I can use the names and dates recorded here to help me understand the script. It should be a simple matter now. A moment, please. Aha, yes, there we go. Translated as best I can! I do hope you're not involved in what is described here, as it is quite fiendish. Oi! You, woman! Give that back! " .. e.other:GetCleanName() .. ", that woman there took your letter! I think I should leave you to discuss it with her. Best of luck!."); + eq.unique_spawn(56172,0,0,e.self:GetX()-10,e.self:GetY()+10,e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Quest by: Solid11 Zone:steamfont ID:56012 -- Yendar_Starpyre +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/steamfont/Zondo_Hyzill.lua b/steamfont/Zondo_Hyzill.lua new file mode 100644 index 0000000..67bd633 --- /dev/null +++ b/steamfont/Zondo_Hyzill.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Glad to meet you. Our Cargo Clockwork is marvelous, no?"); + end +end diff --git a/steamfont/a_female_rat.lua b/steamfont/a_female_rat.lua new file mode 100644 index 0000000..431f112 --- /dev/null +++ b/steamfont/a_female_rat.lua @@ -0,0 +1,17 @@ +--Bertoxxulous Initiate quest npc + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10262})) then + e.self:Emote("ingests the virulent substance and becomes ill."); + e.other:QuestReward(e.self,0,0,0,0,10263,100); --Empty infectious vial + eq.spawn2(56003,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/steamfont/a_minotaur_slaver.lua b/steamfont/a_minotaur_slaver.lua new file mode 100644 index 0000000..23f94ed --- /dev/null +++ b/steamfont/a_minotaur_slaver.lua @@ -0,0 +1,9 @@ +--NPC: a_minotaur_slaver Zone: steamfont + +function event_death_complete(e) + ran = math.random(100); + if(ran > 99) then + eq.unique_spawn(56152,28,0,-1294,1360,-103); -- NPC: Minotaur_Hero + end + e.self:Say("I die soon! Meldrath, help me!"); +end diff --git a/steamfont/cargo_trigger.lua b/steamfont/cargo_trigger.lua new file mode 100644 index 0000000..d38b274 --- /dev/null +++ b/steamfont/cargo_trigger.lua @@ -0,0 +1,9 @@ +function event_spawn(e) + eq.set_timer("set",5000); +end + +function event_timer(e) + eq.signal(56105,2); -- NPC: Cargo_Clockwork + eq.stop_timer("set"); +end + \ No newline at end of file diff --git a/steamfont/diseased_female_rat.lua b/steamfont/diseased_female_rat.lua new file mode 100644 index 0000000..52c5051 --- /dev/null +++ b/steamfont/diseased_female_rat.lua @@ -0,0 +1,14 @@ +--Bertoxxulous Initiate quest npc + +function event_death_complete(e) + eq.spawn2(56086,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); --a_young_plague_rat + eq.spawn2(56086,0,0,e.self:GetX()+5,e.self:GetY()+5,e.self:GetZ(),e.self:GetHeading()); --a_young_plague_rat + eq.spawn2(56086,0,0,e.self:GetX()+5,e.self:GetY()-5,e.self:GetZ(),e.self:GetHeading()); --a_young_plague_rat + eq.spawn2(56086,0,0,e.self:GetX()-5,e.self:GetY()+5,e.self:GetZ(),e.self:GetHeading()); --a_young_plague_rat + eq.spawn2(56086,0,0,e.self:GetX()-5,e.self:GetY()-5,e.self:GetZ(),e.self:GetHeading()); --a_young_plague_rat +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/steamfont/minotaur_slaver.lua b/steamfont/minotaur_slaver.lua new file mode 100644 index 0000000..c408c78 --- /dev/null +++ b/steamfont/minotaur_slaver.lua @@ -0,0 +1,4 @@ +function event_death_complete(e) + e.self:Say("I die soon! Meldrath, help me!"); +end + diff --git a/steamfont/rogue_cleaner.lua b/steamfont/rogue_cleaner.lua new file mode 100644 index 0000000..fc34326 --- /dev/null +++ b/steamfont/rogue_cleaner.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + eq.set_timer("pick_up", 2000); +end + +function event_timer(e) + if ( e.timer == "pick_up" ) then + while ( e.self:CheckGround() ) do + e.self:Emote("clicks as a plate slides to the side revealing a hose that extends and sucks up an item from the ground"); + end + end +end \ No newline at end of file diff --git a/stonebrunt/#Giang_Yin.lua b/stonebrunt/#Giang_Yin.lua new file mode 100644 index 0000000..9f1cc98 --- /dev/null +++ b/stonebrunt/#Giang_Yin.lua @@ -0,0 +1,19 @@ +-- Giang Yin + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks down upon the creature standing beneath him and speaks. 'You are brave to approach a titan such as Giang Yin. I pray that the spirits have granted you honor and respect as well as courage.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6981}, 0)) then -- Kejekan Smithy Hammer + e.self:Say("Freeing long imprisoned spirits is a noble cause. Your hammer has our blessing to free the souls from their crystalline shadow tombs."); + e.other:Faction(e.self,5011,2); -- Faction: Kejek Village + e.other:Faction(e.self,298,1); -- Faction: Peace Keepers + e.other:QuestReward(e.self,0,0,0,0,6979,1000); -- Soulforge Hammer + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/stonebrunt/#Old_Ghostback.lua b/stonebrunt/#Old_Ghostback.lua new file mode 100644 index 0000000..76166ec --- /dev/null +++ b/stonebrunt/#Old_Ghostback.lua @@ -0,0 +1,18 @@ + -- Old Ghostback +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks down upon the creature standing beneath him and speaks. 'You are brave to approach a titan such as Old Ghostback. I pray that the spirits have granted you honor and respect as well as courage."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6981}, 0)) then -- Kejekan Smithy Hammer + e.self:Say("Freeing long imprisoned spirits is a noble cause. Your hammer has our blessing to free the souls from their crystalline shadow tombs."); + e.other:Faction(e.self,5011,2); -- Faction: Kejek Village + e.other:Faction(e.self,298,1); -- Faction: Peace Keepers + e.other:QuestReward(e.self,0,0,0,0,6979,1000); -- Soulforge Hammer + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/stonebrunt/#Prowler_of_the_Jungle.lua b/stonebrunt/#Prowler_of_the_Jungle.lua new file mode 100644 index 0000000..9c751e2 --- /dev/null +++ b/stonebrunt/#Prowler_of_the_Jungle.lua @@ -0,0 +1,19 @@ +-- Prowler of the Jungle + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("crouches and narrows his eyes, examining " .. e.other:GetCleanName() .. " attentively. 'I am Prowler of the Jungle, stalker of the corrupt, hunter of the impure. I am the guardian spirit of those who tread silently across the lands destroying that which has been tainted.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6981}, 0)) then -- Kejekan Smithy Hammer + e.self:Say("Freeing long imprisoned spirits is a noble cause. Your hammer has our blessing to free the souls from their crystalline shadow tombs."); + e.other:Faction(e.self,5011,2); -- Faction: Kejek Village + e.other:Faction(e.self,298,1); -- Faction: Peace Keepers + e.other:QuestReward(e.self,0,0,0,0,6979,1000); -- Soulforge Hammer + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/stonebrunt/#Scout_Malom.lua b/stonebrunt/#Scout_Malom.lua new file mode 100644 index 0000000..d776592 --- /dev/null +++ b/stonebrunt/#Scout_Malom.lua @@ -0,0 +1,20 @@ +function event_spawn(e) + eq.set_timer("depop",3600000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9040}, 0)) then + e.self:Say("Great work, friend. Take this totem and place it in the case that you were given in Shar Vahl. Do not unwrap the totem and be quick in your pursuit of the others. Once you have all of the totems, please seal the case and return it to Shar Vahl. I can only hope that you will get to all of the spirits in time. Take care, friend."); + e.other:QuestReward(e.self,{items = {9031,9041},exp = 5000}); -- Item: Official Seal of the Khati Sha + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/stonebrunt/#Slyder_the_Ancient.lua b/stonebrunt/#Slyder_the_Ancient.lua new file mode 100644 index 0000000..2782524 --- /dev/null +++ b/stonebrunt/#Slyder_the_Ancient.lua @@ -0,0 +1,13 @@ +-- Slyder the Ancient + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6981}, 0)) then -- Kejekan Smithy Hammer + e.self:Say("Freeing long imprisoned spirits is a noble cause. Your hammer has our blessing to free the souls from their crystalline shadow tombs."); + e.other:Faction(e.self,5011,2); -- Faction: Kejek Village + e.other:Faction(e.self,298,1); -- Faction: Peace Keepers + e.other:QuestReward(e.self,0,0,0,0,6979,1000); -- Soulforge Hammer + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/stonebrunt/#Snowbeast.lua b/stonebrunt/#Snowbeast.lua new file mode 100644 index 0000000..825b691 --- /dev/null +++ b/stonebrunt/#Snowbeast.lua @@ -0,0 +1,18 @@ +-- Snowbeast +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("emits a low rumble and slowly nods his head in " .. e.other:GetCleanName() .. "'s direction. 'I applaud your courage little one. You must either be strong of spirit or weak of mind to show such little fear of me. I am the embodiment of primal instincts and bestial rage and protector of the mighty warrior beasts."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6981}, 0)) then -- Kejekan Smithy Hammer + e.self:Say("Freeing long imprisoned spirits is a noble cause. Your hammer has our blessing to free the souls from their crystalline shadow tombs."); + e.other:Faction(e.self,5011,2); -- Faction: Kejek Village + e.other:Faction(e.self,298,1); -- Faction: Peace Keepers + e.other:QuestReward(e.self,0,0,0,0,6979,1000); -- Soulforge Hammer + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/stonebrunt/#The_Spirit_of_Torment.lua b/stonebrunt/#The_Spirit_of_Torment.lua new file mode 100644 index 0000000..59b60e6 --- /dev/null +++ b/stonebrunt/#The_Spirit_of_Torment.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + eq.set_timer("roar",1000); +end + +function event_timer(e) + if(e.timer == "roar") then + eq.stop_timer("roar"); + eq.set_timer("depop",1800000); + eq.zone_emote(0,"Something glows brightly from high above the falls."); + elseif(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_death_complete(e) + eq.unique_spawn(100024,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end diff --git a/stonebrunt/Disciple_Okarote.lua b/stonebrunt/Disciple_Okarote.lua new file mode 100644 index 0000000..4a84fec --- /dev/null +++ b/stonebrunt/Disciple_Okarote.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Emote("stares into empty space, seemingly in meditation. Around his neck is a heavy, iron beaded necklace. He holds the necklace in one hand and passes each bead through his fingers as he chants softly, a whisper for each bead. After a moment, his eyes come into focus and he says, 'How may I help you?"); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + end +end + +function event_death_complete(e) + eq.unique_spawn(100018, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); -- Ghost_of_Ridossan +end diff --git a/stonebrunt/Emylie_Steelclaws.lua b/stonebrunt/Emylie_Steelclaws.lua new file mode 100644 index 0000000..a2928ad --- /dev/null +++ b/stonebrunt/Emylie_Steelclaws.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("Shalom friend. My mate Kalaaro is the primary blacksmith of our village. I mostly create his tools, do touch ups and refurbishes, and maintain the [kejek forge]."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + elseif(e.message:findi("kejek forge")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("Our forge has received the blessings of the Titan Spirits to burn with a supernatural flame! This flame has many beneficial properties but most importantly it can aid in freeing the spirits that have been imprisoned in materials by evil sorcerers."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + elseif(e.message:findi("purification process")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("The crystalline shadow must be purified in the kejek forge using a special hammer blessed by the Titan Spirits. I will craft a hammer for you to take to the Titans for their blessings if you bring me a Large Brick of High Quality Ore and an Oak Shaft. Once the hammer is blessed you may use it in the kejek forge to purify the crystalline shadow and transfer the spirits contained within it to a Soul Orb that must be taken to our village seer."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -200 and item_lib.check_turn_in(e.self, e.trade, {item1 = 10469,item2 = 10456})) then -- Large Brick of High Quality Ore, Oak Shaft + e.self:Emote("takes the supplies and begins to work on the hammer. She works swiftly and efficiently then cools the finished hammer and hands it to you."); + e.other:Faction(e.self,5011,2); -- Faction: Kejek Village + e.other:Faction(e.self,298,1); -- Faction: Peace Keepers + e.other:QuestReward(e.self,0,0,0,0,6981,5000); -- Kejekan Smithy Hammer + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/stonebrunt/Ghost_of_Ridossan.lua b/stonebrunt/Ghost_of_Ridossan.lua new file mode 100644 index 0000000..a057cff --- /dev/null +++ b/stonebrunt/Ghost_of_Ridossan.lua @@ -0,0 +1,29 @@ +-- Ghost_Of_Ridossan +-- Stonebrunt + +function event_spawn(e) + eq.set_timer("depop",300000); + e.self:Say("Thank you, " .. e.other:GetCleanName() .. ". I am not long for this world. Before I leave, I would like to reward the one who helped me have my revenge. Please, hand me the token of my God, of Cazic-Thule, and I shall pass you the spear I once used. You've earned it."); +end + +function event_timer(e) + eq.stop_timer("depop"); + eq.depop(); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2297}, 0)) then -- Idol of Fear + e.self:Emote("takes the idol into his spectral hand and shoves the lance into your arms. After letting go of the lance, the ghost immediately begins to fade away. Before it is gone completely, it looks into your eyes and says, 'Suffer.'"); + e.other:Faction(e.self,265,10); -- Faction: Heretics + e.other:Faction(e.self,231,-10); -- Faction: Craftkeepers + e.other:Faction(e.self,233,-10); -- Faction: Crimson Hands + e.other:Faction(e.self,242,-10); -- Faction: Deepwater Knights + e.other:Faction(e.self,254,-10); -- Faction: Gate Callers + e.other:QuestReward(e.self,0,0,0,0,2099); -- Soulfiend Lance + eq.stop_timer("depop"); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/stonebrunt/Jali_Kaliio.lua b/stonebrunt/Jali_Kaliio.lua new file mode 100644 index 0000000..9a85e88 --- /dev/null +++ b/stonebrunt/Jali_Kaliio.lua @@ -0,0 +1,39 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("Greetings outsider. I trust you have [peaceful intentions] while visiting our village?"); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + elseif(e.message:findi("peaceful intention")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("That is good to hear. Those filthy kobolds have caused enough trouble. We do not need more enemies.' Jali turns around and glances at another Kejekan. This one seems somewhat ill. Her fur is coming out in patches and strange sores cover her body. 'That is my wife, Yuio. She has come down with a sickness, no doubt caused by those accursed kobolds.' Anger wracks Jali's face as he speaks. 'I would ask you for [help] but you are a stranger and owe us nothing. Of course if you did assist me, I would be forever grateful."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + elseif(e.message:findi("help")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("Oh thank you. You are most kind. I fear that there is not much time left for my dear Yuio. Please speak to [Khonza Ayssla]. She is most wise and perhaps can find some cure for this affliction."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + elseif(e.message:findi("khonza ayssla")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("Khonza Ayssla is the village's High Shaman. She teaches the ancient ways of Okanjo and is most wise. If she cannot assist you I do not know who can. I would go myself but I am too worried to leave my dear wife behind. When you find Khonza, tell her that Jali sent you. Please hurry, friend!"); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -200 and item_lib.check_turn_in(e.self, e.trade, {item1 = 6976}, 0)) then + e.self:Say("Khonza Ayssla gave this to you? We must try it at once then.' Jali opens the vial and gently tilts back Yuio's head. He pours the liquid into her mouth and waits. Miraculously, Yuios fur begins to take on a healthy sheen and the sores begin to disappear! Yuio falls into Jali's arms then goes slack, passing out. 'She needs much rest. I cannot begin to thank you enough for helping us. Please accept this as a reward. It is not much but it should be of some use. You are indeed a friend of ours and if you ever need shelter from the wilds, please visit us again."); + e.other:Faction(e.self,5011,5); -- Faction: Kejek Village + e.other:Faction(e.self,298,1); -- Faction: Peace Keepers + e.other:QuestReward(e.self,0,0,0,0,6952,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/stonebrunt/Khonza_Ayssla.lua b/stonebrunt/Khonza_Ayssla.lua new file mode 100644 index 0000000..357f28d --- /dev/null +++ b/stonebrunt/Khonza_Ayssla.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:Race() .. ". You are welcome in [Kejek] so long as you do not offend the [spirits] of these lands."); + elseif(e.message:findi("kejek")) then + e.self:Say("This is Kejek, our village on the peak of Mt. Klaw. It is here that we continue to cherish the customs and beliefs of our ancestors, the Vah'Shir. Our location here in the Stonebrunt Mountains and the protection of the spirits allows us to escape the persecution and war that is waged between our yellow furred cousins and the Erudites."); + elseif(e.message:findi("spirit")) then + e.self:Say("There are spirits around us always, the spirits of our ancestors, and the spirits of the beasts that have past on beyond the mortal realms. It is through our devotions to these spirits that we shaman are granted our mystical powers. A few of the more powerful spirits are capable of becoming flesh once again and wander the wild serving as protectors and guides."); + elseif(e.message:findi("jali sent me")) then + e.self:Say("Ah yes Jali, whose wife is ill. I have been looking for a cure for many moons. I do believe I can make one now if I had the proper ingredients. Unfortunately it will require the deaths of some of our lands creatures but the spirits will not be angered as it is for a noble cause. Perhaps you could [fetch them] for me?"); + elseif(e.message:findi("fetch them")) then + e.self:Say("Take this satchel and please listen closely. I need the following and they need to be relatively fresh. So dont waste time with frivolous strolls through the jungle. I require two Panda Claws, two Tiger Skins, two Asp Poison Sacs, a Bamboo Shoot, and a Kejekan Palm Fruit, which you will need to find somewhere in the jungle. Once you have these items, combine them in the bag and return to me."); + e.other:SummonCursorItem(17884); -- Item: Burlap Satchel + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6975}, 0)) then + e.self:Say("I thought the kobolds would have you for dinner, but you made it back.' Ayssla takes the satchel and begins to pour different vials of foul smelling liquid into it. She then takes the entire contents of the bag and dumps it into a large kettle and begins to chant in an unknown language. After a few minutes, she takes a small amount of the now boiling liquid and puts it in a vial. 'Take this vial back to Jali. I pray to the Titan Spirits that it works."); + e.other:Faction(e.self,5011,5); -- Faction: Kejek Village + e.other:Faction(e.self,298,1); -- Faction: Peace Keepers + e.other:QuestReward(e.self,0,0,0,0,6976,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/stonebrunt/Miranda.lua b/stonebrunt/Miranda.lua new file mode 100644 index 0000000..ef793c3 --- /dev/null +++ b/stonebrunt/Miranda.lua @@ -0,0 +1,38 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("I'm not supposed to talk to strangers but if my parents let you in here I guess it's ok. Do you like [candy]? I could give you some candy to play a game with me but my [dice] are gone now."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + elseif(e.message:findi("candy")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("Khonza Ayssla went away one time and came back with chocolate covered cherries and pixie powder cinnesticks for my sister and I. I like the chocolates the best."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + elseif(e.message:findi("dice")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("I had my dice in a little bag and lost it outside the walls of the village. I think the kobolds must have found it."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -200 and item_lib.check_turn_in(e.self, e.trade, {item1 = 19992}, 0)) then + e.self:Emote("claps her hands with excitement 'Chocolate cherries! My favorite! Here try some of this!'"); + e.other:Faction(e.self,5011,1); -- Faction: Kejek Village + e.other:Faction(e.self,298,1); -- Faction: Peace Keepers + e.other:QuestReward(e.self,0,0,0,0,20115,1000); + elseif(e.other:GetFactionValue(e.self) >= -200 and item_lib.check_turn_in(e.self, e.trade, {item1 = 2088}, 0)) then + e.self:Say("You found my dice!!! Thank you " .. e.other:GetCleanName() .. "!!"); + e.other:Faction(e.self,5011,2); -- Faction: Kejek Village + e.other:Faction(e.self,298,1); -- Faction: Peace Keepers + e.other:QuestReward(e.self,0,0,0,0,20116,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/stonebrunt/Mrowro_Wirewhisker.lua b/stonebrunt/Mrowro_Wirewhisker.lua new file mode 100644 index 0000000..1c0caa8 --- /dev/null +++ b/stonebrunt/Mrowro_Wirewhisker.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("Welcome to Kejek! I am Mrowro, apprentice Seer under Saemey Wirewhisker."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -200 and item_lib.check_turn_in(e.self, e.trade, {item1 = 6980,item2 = 6978})) then -- Kejek Spirit Powder, Fading Soul Orb + e.self:Say("I require a Fading Soul Orb and Kejek Spirit Dust in order to perform the ritual that will free the imprisoned souls."); + e.self:Emote("scrawls an arcane symbol on the ground with an odd powder and places the orb in its center. He then begins reciting an incantation and waving his arms over the symbol and orb. Moments later the orb shatters and an apparition appears."); + e.other:Faction(e.self,5011,2); -- Faction: Kejek Village + e.other:Faction(e.self,298,1); -- Faction: Peace Keepers + e.other:QuestReward(e.self,0,0,0,0,2577,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/stonebrunt/Ridossan_the_Unliving.lua b/stonebrunt/Ridossan_the_Unliving.lua new file mode 100644 index 0000000..8b7e76c --- /dev/null +++ b/stonebrunt/Ridossan_the_Unliving.lua @@ -0,0 +1,3 @@ +function event_spawn(e) + e.self:SetRunning(true); +end \ No newline at end of file diff --git a/stonebrunt/Saemey_Wirewhisker.lua b/stonebrunt/Saemey_Wirewhisker.lua new file mode 100644 index 0000000..bc35d18 --- /dev/null +++ b/stonebrunt/Saemey_Wirewhisker.lua @@ -0,0 +1,51 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("Welcome to Kejek friend. I am the seer of this village for I have been gifted by the spirits with an affinity for their realm. The barrier between the spirit and physical realms is thin in these lands. The heretics know this and must be prevented from committing [atrocities] similar to those that have been committed in the past."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + elseif(e.message:findi("atrocities")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("Long ago when our noble ancestors the Vah Shir were destroyed by an explosion that devastated the warring Heretic and Erudin armies an evil creature by the name of Tserrina Syl'Tor was attracted to the sudden abundance of new spirits in these lands. Tserrina was capable of capturing these spirits before they were able to cross over beyond the mortal realm and through her dark magic transformed them into a [crystalline shadow] substance."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + elseif(e.message:findi("crystalline shadow")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("The crystalline shadow substance was used as building blocks for Tserrina's tower on an Island near the frozen lands to the south as well as fashioned into armor and weapons for her mindless servants. Emylie Steelclaws has developed a means to purify the armor and weapons using the special properties of our Kejek forge and a smithy hammer blessed by the Titan Spirits. The purifying process transfers the imprisoned spirits into [soul orbs]. Ask Emylie about the purification process."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + elseif(e.message:findi("soul orb")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("I have perfected a ritual that will free the imprisoned spirits within the soul orbs. I simply require some kejek [spirit powder] to scrawl the proper sigils and a soul orb upon which to perform the ceremony. My apprentice will perform the ceremony on fading soul orbs. Simply bring him a fading soul orb and some kejek spirit powder."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + elseif(e.message:findi("spirit powder")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("The spirit power of which I speak is composed of ground spiritling stones. I will grind some powder for you if you would bring me a Valley Spiritling Stone, a Jungle Spiritling Stone, and a Mountain Spiritling Stone. Collecting the stones does not truly harm the spiritlings for when slain in this realm their essence simply disperses until it eventually reforms into a new spiritling."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -200 and item_lib.check_turn_in(e.self, e.trade, {item1 = 6970,item2 = 6971,item3 = 6972}, 0)) then -- Valley Spiritling Stone, Jungle Spiritling Stone, Mountain Spiritling Stone + e.self:Emote("grinds the spiritling stones in a mortar and pestle with foreign runes scratched into the ceramic. 'This powder will assist in matters concerning the contacting or freeing of spirits.'"); + e.other:Faction(e.self,5011,1); -- Faction: Kejek Village + e.other:Faction(e.self,298,1); -- Faction: Peace Keepers + e.other:QuestReward(e.self,{items = {6980,eq.ChooseRandom(0,6980),eq.ChooseRandom(0,6980),eq.ChooseRandom(0,6980)},exp = 5000}); + elseif(e.other:GetFactionValue(e.self) >= -200 and item_lib.check_turn_in(e.self, e.trade, {item1 = 6980,item2 = 6977}, 0)) then -- Kejek Spirit Powder, Soul Orb + e.self:Say("I require a Soul Orb and Kejek Spirit Dust in order to perform the ritual that will free the imprisoned souls."); + e.self:Emote("scrawls an arcane symbol on the ground with an odd powder and places the orb in its center. He then begins reciting an incantation and waving his arms over the symbol and orb. Moments later the orb shatters and an apparition appears."); + e.other:Faction(e.self,5011,1); -- Faction: Kejek Village + e.other:Faction(e.self,298,1); -- Faction: Peace Keepers + e.other:QuestReward(e.self,0,0,0,0,2576,5000); -- Shattered Soul Orb + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/stonebrunt/Scout_Malom.lua b/stonebrunt/Scout_Malom.lua new file mode 100644 index 0000000..a960a5f --- /dev/null +++ b/stonebrunt/Scout_Malom.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It is a pleasure to meet you, but I do not have time to speak. I am waiting on official word from Shar Vahl. If you have been sent to assist me, please show me the Official Seal of the Khati Sha at this time. If you are not such a person, please carry on with your business and leave me to tend to mine."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9031}, 0)) then + e.self:Say("Thank you for coming. I am surprised that you were able to find me. I barely know where I am at this point. I followed the vile beast that has been corrupting the spirits, but he eluded me after I followed him to that ridge up there. Fortunately, the spirit that you seek has remained at the site of its transformation. Use levitation to work your way up the falls and return to me with the totem that you will acquire from releasing the spirit."); + eq.unique_spawn(100019,0,0,-3346,4266,2057,0); -- NPC: The_Spirit_of_Torment + eq.unique_spawn(100022,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/stonebrunt/Sharik_the_Watcher.lua b/stonebrunt/Sharik_the_Watcher.lua new file mode 100644 index 0000000..feb4589 --- /dev/null +++ b/stonebrunt/Sharik_the_Watcher.lua @@ -0,0 +1,9 @@ +function event_spawn(e) + eq.set_timer("depop",20000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end diff --git a/stonebrunt/Shazda_Kaekwon.lua b/stonebrunt/Shazda_Kaekwon.lua new file mode 100644 index 0000000..5a15ed8 --- /dev/null +++ b/stonebrunt/Shazda_Kaekwon.lua @@ -0,0 +1,45 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("Shalom, " .. e.other:GetCleanName() .. "! I welcome you to our humble village in these [trying times]."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + elseif(e.message:findi("trying time")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("There are many threats currently facing this village. The kobolds of Clan Kolbok are becoming bolder in pushing the boundaries of the territory in which they usually hunt. A few of the kobolds now hunt recklessly, killing for pleasure instead of sustenance. [Rognarog] the Infuriated is the most murderous of such kobolds. Then there are the [heretics] that have been invading both Clan Kolbok and Kejek territories alike, practicing their dark sorceries as a show of devotion to their faceless god."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + elseif(e.message:findi("heretic")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("The heretics have not only corrupted their own spirits but they defile the spirits of the dead with their evil sorceries. Fill this satchel with the heads of invading heretics and I shall reward you for your allegiance to Kejek."); + e.other:SummonCursorItem(17883); -- Item: Burlap Satchel + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + elseif(e.message:findi("rognarog")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("Rognarog the Infuriated was once a mighty warrior for Clan Kolbok until his devotion to the kobold god Rolfron Zek devoured his spirit and drove him mad with anguish. Now he wanders the mountains and valleys of Stonebrunt shedding the blood of whatever creatures cross his path. Should you face Rognarog and release him from this life I will reward you for his severed head."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= -200 and item_lib.check_turn_in(e.self, e.trade, {item1 = 6969}, 0)) then + e.self:Say("Less heretics to defile the lands and spirits. You have the gratitude of Kejek for your assistance in repelling the heretic threat."); + e.other:Faction(e.self,5011,8); -- Faction: Kejek Village + e.other:Faction(e.self,298,1); -- Faction: Peace Keepers + e.other:QuestReward(e.self,math.random(9),math.random(9),math.random(9),math.random(3),eq.ChooseRandom(6955,6953),5000); + elseif(e.other:GetFactionValue(e.self) >= -200 and item_lib.check_turn_in(e.self, e.trade, {item1 = 6968}, 0)) then + e.self:Say("By slaying Rognarog you have spared the lives of those who would have crossed his path. I thank you for your assistance, the spirits have noticed your actions and are pleased."); + e.other:Faction(e.self,5011,3); -- Faction: Kejek Village + e.other:Faction(e.self,298,1); -- Faction: Peace Keepers + e.other:QuestReward(e.self,math.random(9),math.random(9),math.random(9),0,eq.ChooseRandom(6982,6983,6984),5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/stonebrunt/a_Kejekan_awrat.lua b/stonebrunt/a_Kejekan_awrat.lua new file mode 100644 index 0000000..0599b10 --- /dev/null +++ b/stonebrunt/a_Kejekan_awrat.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("I am sorry, friend, but my duties prevent me from conversing. There are others that will gladly greet you and introduce you to the customs of our society."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + end +end \ No newline at end of file diff --git a/stonebrunt/a_Kejekan_ispusar.lua b/stonebrunt/a_Kejekan_ispusar.lua new file mode 100644 index 0000000..0599b10 --- /dev/null +++ b/stonebrunt/a_Kejekan_ispusar.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("I am sorry, friend, but my duties prevent me from conversing. There are others that will gladly greet you and introduce you to the customs of our society."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + end +end \ No newline at end of file diff --git a/stonebrunt/a_Kejekan_mujahed.lua b/stonebrunt/a_Kejekan_mujahed.lua new file mode 100644 index 0000000..0599b10 --- /dev/null +++ b/stonebrunt/a_Kejekan_mujahed.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("I am sorry, friend, but my duties prevent me from conversing. There are others that will gladly greet you and introduce you to the customs of our society."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + end +end \ No newline at end of file diff --git a/stonebrunt/a_burly_kobold.lua b/stonebrunt/a_burly_kobold.lua new file mode 100644 index 0000000..a137738 --- /dev/null +++ b/stonebrunt/a_burly_kobold.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Grrrrr... These are the hunting grounds of Clan Kolbok. Your kind is not welcome here unless you plan on being our next meal!"); + end +end \ No newline at end of file diff --git a/stonebrunt/a_ferocious_kobold.lua b/stonebrunt/a_ferocious_kobold.lua new file mode 100644 index 0000000..a137738 --- /dev/null +++ b/stonebrunt/a_ferocious_kobold.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Grrrrr... These are the hunting grounds of Clan Kolbok. Your kind is not welcome here unless you plan on being our next meal!"); + end +end \ No newline at end of file diff --git a/stonebrunt/a_greater_kobold_shaman.lua b/stonebrunt/a_greater_kobold_shaman.lua new file mode 100644 index 0000000..a137738 --- /dev/null +++ b/stonebrunt/a_greater_kobold_shaman.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Grrrrr... These are the hunting grounds of Clan Kolbok. Your kind is not welcome here unless you plan on being our next meal!"); + end +end \ No newline at end of file diff --git a/stonebrunt/a_highland_graniteback.lua b/stonebrunt/a_highland_graniteback.lua new file mode 100644 index 0000000..5e6f3a4 --- /dev/null +++ b/stonebrunt/a_highland_graniteback.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares at you menacingly, smacks its chest, then turns away."); + end +end \ No newline at end of file diff --git a/stonebrunt/a_highland_kobold.lua b/stonebrunt/a_highland_kobold.lua new file mode 100644 index 0000000..a137738 --- /dev/null +++ b/stonebrunt/a_highland_kobold.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Grrrrr... These are the hunting grounds of Clan Kolbok. Your kind is not welcome here unless you plan on being our next meal!"); + end +end \ No newline at end of file diff --git a/stonebrunt/a_highland_kobold_shaman.lua b/stonebrunt/a_highland_kobold_shaman.lua new file mode 100644 index 0000000..a137738 --- /dev/null +++ b/stonebrunt/a_highland_kobold_shaman.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Grrrrr... These are the hunting grounds of Clan Kolbok. Your kind is not welcome here unless you plan on being our next meal!"); + end +end \ No newline at end of file diff --git a/stonebrunt/a_hunting_kobold.lua b/stonebrunt/a_hunting_kobold.lua new file mode 100644 index 0000000..a137738 --- /dev/null +++ b/stonebrunt/a_hunting_kobold.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Grrrrr... These are the hunting grounds of Clan Kolbok. Your kind is not welcome here unless you plan on being our next meal!"); + end +end \ No newline at end of file diff --git a/stonebrunt/a_kejekan_-amir.lua b/stonebrunt/a_kejekan_-amir.lua new file mode 100644 index 0000000..0599b10 --- /dev/null +++ b/stonebrunt/a_kejekan_-amir.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("I am sorry, friend, but my duties prevent me from conversing. There are others that will gladly greet you and introduce you to the customs of our society."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + end +end \ No newline at end of file diff --git a/stonebrunt/a_kejekan_archer.lua b/stonebrunt/a_kejekan_archer.lua new file mode 100644 index 0000000..0599b10 --- /dev/null +++ b/stonebrunt/a_kejekan_archer.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("I am sorry, friend, but my duties prevent me from conversing. There are others that will gladly greet you and introduce you to the customs of our society."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + end +end \ No newline at end of file diff --git a/stonebrunt/a_kejekan_ghulam.lua b/stonebrunt/a_kejekan_ghulam.lua new file mode 100644 index 0000000..0599b10 --- /dev/null +++ b/stonebrunt/a_kejekan_ghulam.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("I am sorry, friend, but my duties prevent me from conversing. There are others that will gladly greet you and introduce you to the customs of our society."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + end +end \ No newline at end of file diff --git a/stonebrunt/a_kejekan_lookout.lua b/stonebrunt/a_kejekan_lookout.lua new file mode 100644 index 0000000..0599b10 --- /dev/null +++ b/stonebrunt/a_kejekan_lookout.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("I am sorry, friend, but my duties prevent me from conversing. There are others that will gladly greet you and introduce you to the customs of our society."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + end +end \ No newline at end of file diff --git a/stonebrunt/a_kejekan_mamluk.lua b/stonebrunt/a_kejekan_mamluk.lua new file mode 100644 index 0000000..0599b10 --- /dev/null +++ b/stonebrunt/a_kejekan_mamluk.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("I am sorry, friend, but my duties prevent me from conversing. There are others that will gladly greet you and introduce you to the customs of our society."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + end +end \ No newline at end of file diff --git a/stonebrunt/a_kejekan_miner.lua b/stonebrunt/a_kejekan_miner.lua new file mode 100644 index 0000000..0599b10 --- /dev/null +++ b/stonebrunt/a_kejekan_miner.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("I am sorry, friend, but my duties prevent me from conversing. There are others that will gladly greet you and introduce you to the customs of our society."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + end +end \ No newline at end of file diff --git a/stonebrunt/a_kejekan_pasdar.lua b/stonebrunt/a_kejekan_pasdar.lua new file mode 100644 index 0000000..0599b10 --- /dev/null +++ b/stonebrunt/a_kejekan_pasdar.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -200) then + e.self:Say("I am sorry, friend, but my duties prevent me from conversing. There are others that will gladly greet you and introduce you to the customs of our society."); + else + e.self:Say("You have done much to anger the spirits thus you are not accepted by our people."); + end + end +end \ No newline at end of file diff --git a/stonebrunt/a_kobold_spiritslaver.lua b/stonebrunt/a_kobold_spiritslaver.lua new file mode 100644 index 0000000..a137738 --- /dev/null +++ b/stonebrunt/a_kobold_spiritslaver.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Grrrrr... These are the hunting grounds of Clan Kolbok. Your kind is not welcome here unless you plan on being our next meal!"); + end +end \ No newline at end of file diff --git a/stonebrunt/a_kobold_wanderer.lua b/stonebrunt/a_kobold_wanderer.lua new file mode 100644 index 0000000..a137738 --- /dev/null +++ b/stonebrunt/a_kobold_wanderer.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Grrrrr... These are the hunting grounds of Clan Kolbok. Your kind is not welcome here unless you plan on being our next meal!"); + end +end \ No newline at end of file diff --git a/stonebrunt/a_lesser_kobold_shaman.lua b/stonebrunt/a_lesser_kobold_shaman.lua new file mode 100644 index 0000000..a137738 --- /dev/null +++ b/stonebrunt/a_lesser_kobold_shaman.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Grrrrr... These are the hunting grounds of Clan Kolbok. Your kind is not welcome here unless you plan on being our next meal!"); + end +end \ No newline at end of file diff --git a/stonebrunt/a_mature_graniteback.lua b/stonebrunt/a_mature_graniteback.lua new file mode 100644 index 0000000..5e6f3a4 --- /dev/null +++ b/stonebrunt/a_mature_graniteback.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares at you menacingly, smacks its chest, then turns away."); + end +end \ No newline at end of file diff --git a/stonebrunt/a_raging_highland_kobold.lua b/stonebrunt/a_raging_highland_kobold.lua new file mode 100644 index 0000000..a137738 --- /dev/null +++ b/stonebrunt/a_raging_highland_kobold.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Grrrrr... These are the hunting grounds of Clan Kolbok. Your kind is not welcome here unless you plan on being our next meal!"); + end +end \ No newline at end of file diff --git a/stonebrunt/a_raging_kobold.lua b/stonebrunt/a_raging_kobold.lua new file mode 100644 index 0000000..a137738 --- /dev/null +++ b/stonebrunt/a_raging_kobold.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Grrrrr... These are the hunting grounds of Clan Kolbok. Your kind is not welcome here unless you plan on being our next meal!"); + end +end \ No newline at end of file diff --git a/stonebrunt/a_raging_kobold_savage.lua b/stonebrunt/a_raging_kobold_savage.lua new file mode 100644 index 0000000..a137738 --- /dev/null +++ b/stonebrunt/a_raging_kobold_savage.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Grrrrr... These are the hunting grounds of Clan Kolbok. Your kind is not welcome here unless you plan on being our next meal!"); + end +end \ No newline at end of file diff --git a/stonebrunt/a_savage_kobold.lua b/stonebrunt/a_savage_kobold.lua new file mode 100644 index 0000000..a137738 --- /dev/null +++ b/stonebrunt/a_savage_kobold.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Grrrrr... These are the hunting grounds of Clan Kolbok. Your kind is not welcome here unless you plan on being our next meal!"); + end +end \ No newline at end of file diff --git a/stonebrunt/a_scouting_kobold.lua b/stonebrunt/a_scouting_kobold.lua new file mode 100644 index 0000000..a137738 --- /dev/null +++ b/stonebrunt/a_scouting_kobold.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Grrrrr... These are the hunting grounds of Clan Kolbok. Your kind is not welcome here unless you plan on being our next meal!"); + end +end \ No newline at end of file diff --git a/stonebrunt/a_spirit.lua b/stonebrunt/a_spirit.lua new file mode 100644 index 0000000..ae60ced --- /dev/null +++ b/stonebrunt/a_spirit.lua @@ -0,0 +1,23 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("flares brightly as you attempt to speak with it. By listening very closely you're brely able to make out it's frantic whispering. It keep refering to one of the Kejekans, one that apparently slew him as he attempted to cleanse the land of them. It wants nothing more than to destroy who killed him, but it cannot in this [form]."); + elseif(e.message:findi("form")) then + e.self:Emote("flares brightly again as it explains there isn't enough time for it to explain. It then begins to whisper again, telling you that it commands you the aid it in it's revenge. You make out, through the barely audible whispering, that if you do help it, you will be rewarded."); + elseif(e.message:findi("revenge")) then + e.self:Emote("whispers that he will need to become whole again before he can defeat the fool animal that slew him. The spirit admits to one mistake before coming here to wipe the Kejekans. In an earlier campaign, he lost a very powerful weapon. That weapon would enable him to take on a form likened to his former self. If you return this weapon to the spirit, and then help him to defeat his enemy, the reward will be yours."); + elseif(e.message:findi("campaign")) then + e.self:Emote("seems hesitant to go into details and reacts harshly when asked further. He does say that he went to enlist an army of lesser beings to do it's bidding, but they refused. The spirit scoffs and says they believed the lord they shared favored them more than it. It goes on, explaining their utter foolishness and eventual demise in great detail. "); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2100}, 0)) then -- Grimy Lance + e.self:Say("Yes, the lance!' and begins to glow as it draws power from the lance, which now floats in mid air next to the spirit. The form of the spirit expands and takes on a humanoid shape. The air itself then seems to condense about the spirit as bits of matter appear within the glowing form. The bits soon take the shape of bones and ropes of muscle. Within minutes, an emaciated Erudite male stands before you. Despite his frail appearance, he stands upright and strong, a fierce red light burning in his eyes."); + e.other:QuestReward(e.self,0,0,0,0,2297,1000); -- Idol of Fear + eq.unique_spawn(100017,7,0,-70,474,509,33.5); -- Ridossan_the_Unliving + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/stonebrunt/a_young_gorilla.lua b/stonebrunt/a_young_gorilla.lua new file mode 100644 index 0000000..5e6f3a4 --- /dev/null +++ b/stonebrunt/a_young_gorilla.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares at you menacingly, smacks its chest, then turns away."); + end +end \ No newline at end of file diff --git a/stonebrunt/an_elder_graniteback.lua b/stonebrunt/an_elder_graniteback.lua new file mode 100644 index 0000000..5e6f3a4 --- /dev/null +++ b/stonebrunt/an_elder_graniteback.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stares at you menacingly, smacks its chest, then turns away."); + end +end \ No newline at end of file diff --git a/swampofnohope/#Scout_Eyru.lua b/swampofnohope/#Scout_Eyru.lua new file mode 100644 index 0000000..504544e --- /dev/null +++ b/swampofnohope/#Scout_Eyru.lua @@ -0,0 +1,20 @@ +function event_spawn(e) + eq.set_timer("depop",3600000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9042})) then + e.self:Say("Splendid job, " .. e.other:GetCleanName() .. ". This wrapping should help to shield you from any of the negative properties that may be manifested in the totem. You should be fine if you keep it in the box that you were given. Once you collect all of the totems, please seal the box and return it to Shar Vahl. Be careful to protect the totems during the course of your travels. The balance of power in several realms is reliant on your ability to fulfill this mission. Please do not fail us."); + e.other:QuestReward(e.self,{items = {9043,9031},exp = 5000}); -- Item: Wrapped Alligator Totem + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/swampofnohope/#The_Spirit_of_Sorrow.lua b/swampofnohope/#The_Spirit_of_Sorrow.lua new file mode 100644 index 0000000..ac3cf6e --- /dev/null +++ b/swampofnohope/#The_Spirit_of_Sorrow.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + eq.set_timer("roar",1000); +end + +function event_timer(e) + if(e.timer == "roar") then + eq.stop_timer("roar"); + eq.set_timer("depop",1800000); + eq.zone_emote(0,"A giant reptile roars, as it sinks below the surface of the pond. It appears that is senses your approach."); + elseif(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_death_complete(e) + eq.unique_spawn(83056,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end diff --git a/swampofnohope/Captain_Nedar.lua b/swampofnohope/Captain_Nedar.lua new file mode 100644 index 0000000..a49114a --- /dev/null +++ b/swampofnohope/Captain_Nedar.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Come to serve the garrison? Good. I aim to offer a reward for the return of four froglok tad tongues. Best if we handle the pesky critters before they grow too big and too numerous."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "There shall be no coins for you until I have four of these."; + + --Handin: 4x Froglok Tad Tongues (12439) + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12439, item2 = 12439, item3 = 12439, item4 = 12439},1,text)) then + e.self:Say("Well done. It is good to serve the Warlord. Here is a small reward befitting such a small task."); + e.other:Faction(e.self,441,3); -- +Legion of Cabilis + e.other:Faction(e.self,440,1); -- +Cabilis Residents + e.other:Faction(e.self,445,1); -- +Scaled Mystics + e.other:Faction(e.self,442,1); -- +Crusaders of Greenmist + e.other:Faction(e.self,444,1); -- +Swifttails + e.other:QuestReward(e.self,math.random(10),0,0,0,12616,100); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/swampofnohope/Dugroz.lua b/swampofnohope/Dugroz.lua new file mode 100644 index 0000000..8fbc344 --- /dev/null +++ b/swampofnohope/Dugroz.lua @@ -0,0 +1,28 @@ +-- Quest for Charasis (Howling Stones) Key + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Fffrroaaak!! Go away! I don't want to [work for them] anymore! Go find another slave!"); + elseif(e.message:findi("work")) then + e.self:Emote("looks relieved and eyes you, considering. Finally, he begins to recant his tale. 'I was once the slave of an important Iksar necromancer. I was his Dugroz, his head slave. One night, I heard two other slaves talking about me. I could barely hear them but what I did hear frightened me. My master was going to use me one last time. He was going to sacrifice me to craft a spell component for one of his most powerful spells. Hearing this, I used my privileges as his head slave and made my [escape].'"); + elseif(e.message:findi("escape")) then + e.self:Say("After I escaped, I lost myself in the depths of the swamp. I discarded all the keys but one. I will gladly give it to you if you can do me a [small favor]."); + elseif(e.message:findi("small favor")) then + e.self:Emote("Dugroz blinks his eyes and leans forward. He whispers so quietly you must strain to hear him, 'I have taken up the same magics as my master. I require two components to complete a spell I have been researching for quite some time. The first is a vampire's fang. I have heard tales of a vampire who haunts the ruins of Kaesora. I also need a jade weapon stained by the blood of a chokidai. Look in the Lake of Ill Omen at the sarnak outpost. The leader used to herd chokidai, or so I am told.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7236, item2 = 7256})) then + e.self:Say("My thanks to you, " .. e.other:GetCleanName() .. ". Take this key--I know not what door it opens. Now if I can just find that necklace of power that I took from my master's lair!"); + e.other:QuestReward(e.self,0,0,0,0,20600); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Quest by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/swampofnohope/Footman_Moglok.lua b/swampofnohope/Footman_Moglok.lua new file mode 100644 index 0000000..46343f8 --- /dev/null +++ b/swampofnohope/Footman_Moglok.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks at you with sorrowful eyes and wipes his dripping nose. 'Woe is me. I am nothing more than a lowly footman. And spare me the smart remarks - 'Moglok the Froglok' - I have heard all the jokes.' "); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18234})) then + e.self:Emote("beams a big smile. 'Oh, joy! They have finally sent someone to help me on my mission! I was once a trooper, but I got demoted. I failed to bring Warlord Hikyg the three heads of the Gubbnubb triplets. Here is one head, but we need them all. Track the other two down and take all three heads and your soldier pike to Warlord Hikyg. I quit this outfit!!'"); + e.other:QuestReward(e.self,0,0,0,0,12435); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/swampofnohope/Grik_the_Exile.lua b/swampofnohope/Grik_the_Exile.lua new file mode 100644 index 0000000..2f7e8d9 --- /dev/null +++ b/swampofnohope/Grik_the_Exile.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I'm busy, " .. e.other:GetCleanName() .. ", go away."); + elseif(e.message:findi("mission")) then + e.self:Say("If you have not noticed the new intelligent races that have found it's way to our land, you will see soon. They have built a small outpost far to the south along the ocean. If they go unchecked, their outpost will become a city from which they will cause us much discomfort. They are strong and have experienced [mercenaries] in their employ."); + elseif(e.message:findi("mercenaries")) then + e.self:Say("Yes. In particular, a company of mercenaries commanded by a human known as Streaven. He has personally thwarted an operation I was in charge of. I will make him pay for his interference. You will kill Streaven. But first you must [draw him out], as he is not a fool."); + elseif(e.message:findi("draw him out")) then + e.self:Say("While Streaven is not foolish he has made a mistake. He's taken a young and ambitious noble on as an officer in his company. This noble represents a source of funds and as such Streaven most likely will come to his aid if endangered. Our spies have reported that he has been implanted with some sort of device that will alert the commander of any danger. You must retrieve this [implant]."); + elseif(e.message:findi("implant")) then + e.self:Say("The implant is buried deep within this noble's head. Retrieving it will most likely leave quite a traumatic wound. Once you have the implant you must take it to an agent that will be in the area. This agent is one of the Kotiz Brood, a necromancer. Her name is Vekis and she will be able to activate the implant and draw Streaven out. She will only appear after you have dispatched the noble and she will go back into hiding shortly there after, so you must [find her] quickly."); + elseif(e.message:findi("find her")) then + e.self:Say("She will be near one of our ancient statues along the coast. You need only hand her the implant for her to activate it. Once he is away from the guards you will have your chance. Bring me Streaven's Head and 3 rubies and you will have your reference for the Arcut. Remember that your perseverance is your greatest virtue and will carry you to victory always."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "I thought I told you to bring me the head of Streaven and 3 rubies. Do not interupt me until you have all that I have asked of you." + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 14789})) then + e.self:Emote("snickers to himself and looks out over the swamp for a moment before saying,"); + e.self:Say("Perseverance is indeed our greatest virtue. Perhaps if we as warriors looked more to cultivate our virtue rather than to hoard glory our people would be rulers of this entire land. I will send you on a [mission] to learn of perseverance. If you complete it I will give you my reference."); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10035, item2 = 10035, item3 = 10035, item4 = 14819},1,text1)) then + e.self:Emote("watches as you drop the head onto the soft earth of the swamp. With his foot,Grik tactfully pushes the head off into the water.A sly grin passes over his gace briefly as watches it sink and pockets the rubies. He says, 'Excellent work " .. e.other:Race() .. ". Here is your reference as promissed.'"); + e.other:QuestReward(e.self,0,0,0,0,14816,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/swampofnohope/Herikol_the_Lurker.lua b/swampofnohope/Herikol_the_Lurker.lua new file mode 100644 index 0000000..feb4589 --- /dev/null +++ b/swampofnohope/Herikol_the_Lurker.lua @@ -0,0 +1,9 @@ +function event_spawn(e) + eq.set_timer("depop",20000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end diff --git a/swampofnohope/Mystic_Dovan.lua b/swampofnohope/Mystic_Dovan.lua new file mode 100644 index 0000000..4fdafef --- /dev/null +++ b/swampofnohope/Mystic_Dovan.lua @@ -0,0 +1,50 @@ +--Shaman Skull Quest 4 +--Shaman Skull Quest 5 +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Emote("shows the signs of a great mystic. You can feel the power resonating from his aura. 'Greetings and may the cursed blessings of Cazic-Thule be yours. What may I do for you this fine evening? Perhaps I can [cure disease] or [heal] you, perhaps even [purge toxins] from your system?"); + elseif(e.message:findi("cure disease")) then + e.self:Say("Your malady shall dissipate once you deliver to me one giant blood sac."); + elseif(e.message:findi("heal")) then + e.self:Say("I can call upon the power of the ancients to mend your wounds if you can deliver to me two brittle Iksar skulls."); + elseif(e.message:findi("purge toxins")) then + e.self:Say("The toxins shall surely be purged from your system when I have proof of your allegiance to the empire. Let that proof be one goblin watcher signal torch."); + elseif(e.message:findi("rok nilok") and e.other:GetFaction(e.self) < 6) then + e.self:Say("Mystic Dovan lowers his head in sorrow let us have a moment of peace. I cannot find the words to speak of the unspeakable act of the gods which took the lives of the legendary Crusaders of Rok Nolok. You must find the answers for yourself. All I can do is wait for their return. "); + elseif(e.message:findi("galdon vok nir?") and e.other:GetFaction(e.self) < 8) then + e.self:Say("He is a merchant hiding in The Overthere. He is greedy and will not give the skull up easily. Seek him out and ask him what he would [trade] for the skull."); + end +end + +function event_trade(e) + local item_lib = require("items"); + --Full C.O.R.N. Chest turn in and Cudgel of the Mystic + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12736, item2 = 5143})) then + e.self:Say("I see that you have found your answers. Now I must ask you to to retrieve for the council the skulls of the Di Nozok. The sarnak in Lake of Ill Omen hold one of the skulls, while [Galdon Vok Nir] holds the other. Once you have retrieved them, give them to Hierphant Zand."); + e.other:Faction(e.self,445, 10); --Scaled Mystics + e.other:Faction(e.self,441, 10); --Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,5144,100000); --Give the player the Iron Cudgel of the Prophet + --Cure disease. + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12671})) then--giant blood sac + e.self:Emote("grabs from his beltpouch a fine dust and cakes the slimy blood sac with it. He then punctures the sac and smears the blood upon your chest. Your chest tingles. Your fill your lungs and exhale a bitter mist."); + -- Confirmed Live Faction + e.self:CastSpell(213,e.other:GetID()); -- Spell: Cure Disease + e.other:Faction(e.self,445, 1); --Scaled Mystics + e.other:Faction(e.self,441, 1); --Legion of Cabilis + --Heal (Light Healing) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12739, item2 = 12739})) then--2x Brittle Iksar Skull + e.self:Emote("takes the skulls and holds them before your wounds. They shatter into a fine glowing powder and you feel your wounds being cauterized with no visible flame upon them."); + -- Confirmed Live Faction + e.self:CastSpell(17,e.other:GetID()); -- Spell: Light Healing + e.other:Faction(e.self,445, 1); --Scaled Mystics + e.other:Faction(e.self,441, 1); --Legion of Cabilis + --Cure Poison + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12441})) then--Watcher Signal Torch + e.self:Emote("chants in an unknown tongue as he takes a dagger and slits your forearm. He then takes a tiny glowing vein worm from his beltpouch and forces it into the open wound. You feel the worm explode within. The pain is unbearable, but then, a coolness courses through your body."); + -- Confirmed Live Faction + e.self:CastSpell(203,e.other:GetID()); -- Spell: Cure Poison + e.other:Faction(e.self,445, 1); --Scaled Mystics + e.other:Faction(e.self,441, 1); --Legion of Cabilis + end + item_lib.return_items(e.self, e.other, e.trade) --return items if not the ones required +end diff --git a/swampofnohope/Scout_Eyru.lua b/swampofnohope/Scout_Eyru.lua new file mode 100644 index 0000000..020558e --- /dev/null +++ b/swampofnohope/Scout_Eyru.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It is a pleasure to meet you, but I do not have time to speak. I am waiting on official word from Shar Vahl. If you have been sent to assist me, please show me the Official Seal of the Khati Sha at this time. If you are not such a person, please carry on with your business and leave me to tend to mine."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9031})) then + e.self:Say("It is a relief to see you. I was beginning to fear that no one would be able to find me in this miserable swamp. I wanted to get word back to Shar Vahl about my location, but I was afraid that I would lose the trail off this spirit if I were to break off my pursuit. This location is as strange of a destination for our spirit as it is dangerous. I have seen the spirit several times and it is very out of place here. I can't help but think that the transformation has left the spirit confused beyond all repair."); + eq.spawn2(83244,0,0,2170,-2903,4,0); -- NPC: The_Spirit_of_Sorrow + eq.unique_spawn(83046,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/swampofnohope/Ssessthrass.lua b/swampofnohope/Ssessthrass.lua new file mode 100644 index 0000000..8704c72 --- /dev/null +++ b/swampofnohope/Ssessthrass.lua @@ -0,0 +1,24 @@ +-- Necromancer Epic NPC -- Ssessthrass +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("I do not wisssh to be bothered."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20644})) then + e.self:Say("Sssso, Emkel ssssent you to retrieve the manisi herb? I do not have the herb. The ssssarnak guard the herb. Apparently it is ssssacred to them. Only memberssss of their royal family are allowed to partake of it. They live deep in Chardok. They are hoarding what little of the precious herb there is. If you have an army, perhapssss you can bring me the herb and I can prepare it for Emkel. Bring back this ssssymbol as well."); + e.other:QuestReward(e.self,0,0,0,0,20645,500); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20654, item2 = 20645})) then + e.self:Emote("looks at you and bows. 'You are truly a fearsome sssshadow weaver! Or you have powerful alliessss,' he adds a moment later. Ssessthrass pulls the manisi herb apart and hands a piece to you. 'Emkel will be most pleased with us both!'"); + e.other:QuestReward(e.self,0,0,0,0,20650,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/swampofnohope/Trooper_Fodcod.lua b/swampofnohope/Trooper_Fodcod.lua new file mode 100644 index 0000000..064c402 --- /dev/null +++ b/swampofnohope/Trooper_Fodcod.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail. adventurer! Watch your step and don't get lost in the swamplands. The frogloks will have you for stew."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/swampofnohope/Trooper_Harkee.lua b/swampofnohope/Trooper_Harkee.lua new file mode 100644 index 0000000..a3193b1 --- /dev/null +++ b/swampofnohope/Trooper_Harkee.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("If you find yourself deep in the swamp and starving. try foraging. I am sure you'll find something to eat. If not. there are always froglok tongues."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/swampofnohope/Trooper_Inkin.lua b/swampofnohope/Trooper_Inkin.lua new file mode 100644 index 0000000..0d61dc8 --- /dev/null +++ b/swampofnohope/Trooper_Inkin.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Many frogloks in here. Beware! They can be a sneaky bunch. I hear tales of a froglok village nearby."); + elseif(e.message:findi("sign the restraining order")) then + e.self:Say("I have been expecting this. Oh, well... Can't argue with the Baron or he will have both our heads. Keeping that in mind, I will make you a deal. I will sign the order if you bring me one of those grand skipping stones these Frogloks are said to have. Bring me the stone and the order and I shall sign."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "No deal! You bring me the legion order and the froglok skipping stone."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18243, item2 = 12425},1,text)) then --Legion Order (3 signed), Skipping Stone + e.self:Say("So smooth. I shall be the skipping stone champion! Here. You may have my autograph."); + e.other:QuestReward(e.self,math.random(10),0,0,0,18244,500); --Legion Order (4 signed) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/swampofnohope/Trooper_Keat.lua b/swampofnohope/Trooper_Keat.lua new file mode 100644 index 0000000..cd972f2 --- /dev/null +++ b/swampofnohope/Trooper_Keat.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("takes a stone from his pocket and skips it across the ground. It goes quite far. 'Did you see that? Skipping stone champion three seasons in a row! Good thing I found these great stones on the corpses of dead frogloks."); + end +end \ No newline at end of file diff --git a/swampofnohope/Trooper_Lorgen.lua b/swampofnohope/Trooper_Lorgen.lua new file mode 100644 index 0000000..6e71af0 --- /dev/null +++ b/swampofnohope/Trooper_Lorgen.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("It is assumed that the froglok stronghold is well defended. None of the troopers sent from this garrison to find it have ever returned. At least. not in one piece."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/swampofnohope/Trooper_Nilzik.lua b/swampofnohope/Trooper_Nilzik.lua new file mode 100644 index 0000000..8f31379 --- /dev/null +++ b/swampofnohope/Trooper_Nilzik.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("sniffs the air around you. 'I thought I smelled something horrible."); + end +end \ No newline at end of file diff --git a/swampofnohope/Ulump_Pujluk.lua b/swampofnohope/Ulump_Pujluk.lua new file mode 100644 index 0000000..b711033 --- /dev/null +++ b/swampofnohope/Ulump_Pujluk.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("croaks slowly and wipes a filthy muck from its eyes as it tries to look at you. 'Something come to talk to Ulump. Too much pain. Just go.' It goes back to scratching and wiping at its muck and filth covered body."); + elseif(e.message:findi("pain")) then + e.self:Say("Much pain. Much pain since tiny priest came to swamp. Found Ulump, once mighty warrior, and caught his soul in bottle. Twisted it and tied it to the earth. All day Ulump feels the corruption and pain of the earth beneath his feet."); + elseif(e.message:findi("corruption")) then + e.self:Say("Corruption spread by priests of disease. It slides and moves just beneath the surface of the land. Ulump not able to hold on any more. If you stormwalker and trying to cleanse the land then you must kill Ulump. Kill him and take his essence and the three foci from the corrupted beasts to the filthy gnome who hurts the land. Ulump can feel him, far off near the large water."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/swampofnohope/Warlord_Hikyg.lua b/swampofnohope/Warlord_Hikyg.lua new file mode 100644 index 0000000..73a64da --- /dev/null +++ b/swampofnohope/Warlord_Hikyg.lua @@ -0,0 +1,55 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What business do you have speaking to an Iksar Warlord? Be gone before you find yourself served as my evening meal. Go to Captain Nedar if you wish to assist my garrison. Fool."); + elseif(e.message:findi("trooper reporting for duty")) then + e.self:Say("It is about time they sent new troopers for my garrison!! This is the toughest garrison in Kunark!! And you're going to help prove it. The legion needs to get a hold of some new frog shields called Krup warrior guards. You're going to take this pack and fill it with not one, but four!! When you can return a full, combined pack to me, maybe you will show me that you're not as weak as you look!!"); + e.other:SummonCursorItem(17043); -- Item: Swamp Garrison Pack + elseif(e.message:findi("geozite")) then + e.self:Say("Do not speak to me of the geozite tool. Seek out Drill Master Vygan within the Fortress of Talishan. He shall answer your questions."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text1 = "I was expecting the heads of Narsh, Barsh and Flendle, as well as your soldier's pike. Then, you will be promoted to the rank of Trooper."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18211})) then + e.self:Say("Ah!! Good to have you on board. We lack strong young recruits such as yourself. Take this bag. Your task is to seek escaped frogloks near this gate. Apparently, the slaves have been breaking loose from their shackles and attempting to head home. Fill and combine within the bag their broken shackles and return the filled box to me for your geozite tool."); --not live text + e.other:QuestReward(e.self,0,0,0,0,17994); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12661})) then + e.self:Say("Good work, " .. e.other:GetCleanName() .. ". You would make a fine trooper in my garrison. As instructed by the War Baron, I reward you with the geozite tool. May you find your place among the Legion of Cabilis and win many battles."); + e.other:Faction(e.self, 440,2); -- Faction: Cabilis Residents + e.other:Faction(e.self, 441,10); -- Faction: Legion of Cabilis + e.other:Faction(e.self, 445,2); -- Faction: Scaled Mystics + e.other:Faction(e.self, 444,2); -- Faction: Swift Tails + e.other:Faction(e.self, 442,2); -- Faction: Crusaders of Greenmist + e.other:QuestReward(e.self,0,math.random(10),0,0,12657); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12435, item2 = 12436, item3 = 12437, item4 = 5133},1,text1)) then + e.self:Emote("hands you plans for a trooper's pike head. Congratulations. You are now a trooper of the Legion of Cabilis. Now you may fight with honor and a mighty weapon."); + e.other:Faction(e.self, 440,2); -- Faction: Cabilis Residents + e.other:Faction(e.self, 441,2); -- Faction: Legion of Cabilis + e.other:Faction(e.self, 445,2); -- Faction: Scaled Mystics + e.other:Faction(e.self, 444,2); -- Faction: Swift Tails + e.other:Faction(e.self, 442,2); -- Faction: Crusaders of Greenmist + e.other:QuestReward(e.self,0,0,0,0,12477,1200); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12913})) then + e.self:Say("What?!! You crushed all the shields!! You croak-faced skulking brute!! You don't deserve to be in my garrison!! I am going to recommend you for a promotion in hopes that you will be sent to hunt dragons and meet your end!"); + e.other:Faction(e.self, 440,2); -- Faction: Cabilis Residents + e.other:Faction(e.self, 441,2); -- Faction: Legion of Cabilis + e.other:Faction(e.self, 445,2); -- Faction: Scaled Mystics + e.other:Faction(e.self, 444,2); -- Faction: Swift Tails + e.other:Faction(e.self, 442,2); -- Faction: Crusaders of Greenmist + e.other:QuestReward(e.self,0,0,0,0,18073,2000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Scripted By: Fatty Beerbelly +--additional work by: Jaekob +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/templeveeshan/#Eashen_of_the_Sky.lua b/templeveeshan/#Eashen_of_the_Sky.lua new file mode 100644 index 0000000..f9c46fa --- /dev/null +++ b/templeveeshan/#Eashen_of_the_Sky.lua @@ -0,0 +1,16 @@ +-- #Eashen_of_the_Sky NPCID: 124017 +function event_combat(e) + if (e.joined) then + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- also aggro Belijor_the_Emerald_Eye (124057) and Nelaarn_the_Ebon_Claw (124089) + -- and Ajorek_the_Crimson_Fang (124088) and Yendilor_the_Cerulean_Wing (124056) if they are up + local npc_table = {124056,124057,124088,124089}; + for k,v in pairs(npc_table) do + local npc = entity_list:GetMobByNpcTypeID(v); + if (npc.valid) then + npc:AddToHateList(e.other,1); + end + end + end +end \ No newline at end of file diff --git a/templeveeshan/#Gozzrem.lua b/templeveeshan/#Gozzrem.lua new file mode 100644 index 0000000..2d6ecb8 --- /dev/null +++ b/templeveeshan/#Gozzrem.lua @@ -0,0 +1,49 @@ +-- Gozzrem's WToV tests: 1st & 2nd arcane tests, wisdom long and short battles + +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 500) then -- req kindly cov + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". If you seek wisdom or the arcane I have tasks in the halls of testing you may complete to gain what you seek."); + elseif(e.message:findi("arcane")) then + e.self:Say("To garner a reward fit for one who walks the arcane path return to me the poison tear and the poison symbol. Along with these return the serrated symbol and the runed symbol. If this task is not hard enough for you, I have a second quest for you."); + elseif(e.message:findi("second")) then + e.self:Say("Tears may fall to the ground but not the ones you seek now. The black tear and the ruby tear you must seek. For more power I require the ruby symbol and a white symbol to bind the powers together. Upon the return of these four objects you will receive a wondrous reward."); + elseif(e.message:findi("wisdom")) then + e.self:Say("Wisdom can be gleaned from battle and that is what I wish you to do. Battle in the halls of testing may give you a different outlook on life. Which do you seek, the short battle or the long battle?"); + elseif(e.message:findi("long")) then + e.self:Say("You will spend much time in the halls of testing. Seek out a runed tear and a flame kissed tear, bring them back to me with a symbol black as midnight and a glowing orb of the ancient drakes."); + elseif(e.message:findi("short")) then + e.self:Say("For the shortest time in the halls, seek out a Platinum tear held by the cursed one, a platinum symbol, a silver symbol and an emerald symbol as green as the forests. If you are able to return these to me I will reward you with a simple idol of the white dragons."); + end + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 31266,item2 = 31255,item3 = 31252,item4 = 31254})) then -- first test of the arcane + FactionHits(e); + e.other:QuestReward(e.self,0,0,0,0,31466,20000); + elseif(e.other:GetFactionValue(e.self) >= 500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 31262,item2 = 31270,item3 = 31259,item4 = 31250})) then -- second test of the arcane + FactionHits(e); + e.other:QuestReward(e.self,0,0,0,0,31468,20000); + elseif(e.other:GetFactionValue(e.self) >= 500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 31267,item2 = 31263,item3 = 31251,item4 = 31260})) then -- test of long battle + FactionHits(e); + e.other:QuestReward(e.self,0,0,0,0,31467,20000); + elseif(e.other:GetFactionValue(e.self) >= 500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 31253,item2 = 31258,item3 = 31257,item4 = 31269})) then -- test of short battle + FactionHits(e); + e.other:QuestReward(e.self,0,0,0,0,31465,20000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionHits(e) + e.self:Say("You have done well, ".. e.other:Race() .. ". You have proven that you are strong, but do you dare enter those halls again?"); + e.other:Faction(e.self,430,75); -- Faction: Claws of Veeshan + e.other:Faction(e.self,436,18); -- Faction: Yelinak + e.other:Faction(e.self,448,-37); -- Faction: Kromzek +end diff --git a/templeveeshan/#Lady_Mirenilla.lua b/templeveeshan/#Lady_Mirenilla.lua new file mode 100644 index 0000000..152b3f5 --- /dev/null +++ b/templeveeshan/#Lady_Mirenilla.lua @@ -0,0 +1,43 @@ +-- #Lady_Mirenilla NPCID: 124077 + +function event_spawn(e) + eq.spawn2(124157, 0, 0, -686, 562, 129, 163); -- a_guardian_spirit +end + +function event_death(e) + + local npc_list = eq.get_entity_list():GetNPCList(); + + if ( npc_list ) then + for npc in npc_list.entries do + if ( npc:GetNPCTypeID() == 124157 and npc:GetX() == -686 and npc:GetY() == 562 ) then + npc:Depop(); + break; + end + end + end +end + +function event_combat(e) + + if (e.joined) then + eq.set_timer("help", 300000); + HelpMe(e); + else + eq.stop_timer("help"); + end +end + +function event_timer(e) + if(e.timer == "help") then + HelpMe(e); + end +end + +function HelpMe(e) + local aaryonar = eq.get_entity_list():GetMobByNpcTypeID(124010); + + if (aaryonar.valid) then + aaryonar:CastToNPC():MoveTo(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0, false); + end +end diff --git a/templeveeshan/#Lady_Nevederia.lua b/templeveeshan/#Lady_Nevederia.lua new file mode 100644 index 0000000..5757cdb --- /dev/null +++ b/templeveeshan/#Lady_Nevederia.lua @@ -0,0 +1,19 @@ +-- #Lady_Nevederia NPCID: 124076 + +function event_spawn(e) + eq.spawn2(124157, 0, 0, -795, 564, 129, 104); -- a_guardian_spirit +end + +function event_death(e) + + local npc_list = eq.get_entity_list():GetNPCList(); + + if ( npc_list ) then + for npc in npc_list.entries do + if ( npc:GetNPCTypeID() == 124157 and npc:GetX() == -795 and npc:GetY() == 564 ) then + npc:Depop(); + break; + end + end + end +end diff --git a/templeveeshan/#Lendiniara_the_Keeper.lua b/templeveeshan/#Lendiniara_the_Keeper.lua new file mode 100644 index 0000000..b1e3615 --- /dev/null +++ b/templeveeshan/#Lendiniara_the_Keeper.lua @@ -0,0 +1,56 @@ +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 500) then -- req kindly cov + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I am the keeper of relics. If you are brave I have tasks to test your might and perhaps rewards."); + elseif(e.message:findi("rewards")) then + e.self:Say("One should ask of the tasks before worrying about rewards," .. e.other:Race() .. "."); + elseif(e.message:findi("tasks")) then + e.self:Say("Enter into the halls of testing to complete these tasks. Seek out the ancient ones inside and see if your might is as great as theirs and fear not, those who you slay will be returned to the temple by the gift of Veeshan's great power. I have three tasks, which any may complete, as well as a request of both the arcane and the strong."); + elseif(e.message:findi("arcane")) then + e.self:Say("Those who seek knowledge, will seek this task out for its reward is great. Three tears and a glowing orb will garner one an ancient mask. The White tear and the black tear for balance the runed tear to hold the balance and a glowing orb to return raw energy to the ancient mask."); + elseif(e.message:findi("strong")) then + e.self:Say("Those who believe they are strong may be surprised after such a task. Seek out the cursed one and slay him, return to me when you have gathered a silver tear, a poison tear, a flame kissed tear and a serrated tear. End the cursed ones torment for a short time, before the high priest raises him to continue his suffering for eternity."); + elseif(e.message:findi("three")) then + e.self:Say("Tears from the cursed you much seek for each task. The test of the Ruby Tear, the test of the Platinum Tear and the test of the Emerald Tear await all who wish to partake of them."); + elseif(e.message:findi("ruby tear")) then + e.self:Say("The test of the ruby tear sounds simple enough, enter the halls of testing, secure a ruby tear, a white symbol, a silver symbol and a ruby symbol. I warn you mortal, those who walk the halls will rend your body and mind if you are not worthy."); + elseif(e.message:findi("platinum tear")) then + e.self:Say("Seek the platinum tear and three symbols to bind its powers to a bracelet. The black symbol to add raw power, the serrated symbol to enchant its powers and the runed symbol to hold the powers to the bracelet."); + elseif(e.message:findi("emerald tear")) then + e.self:Say("The emerald tear of Veeshan entrusted to the cursed one. Return this tear to me so I may return the powers of an ancient shield. Three symbols you must also seek. Emerald like the tear, one kissed by the flames of the elder wurms and one made of the ancient wyverns venomous poison."); + end + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 31262,item2 = 31261,item3 = 31263,item4 = 31260})) then -- request of the arcane + FactionHits(e); + e.other:QuestReward(e.self,0,0,0,0,31463,20000); + elseif(e.other:GetFactionValue(e.self) >= 500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 31267,item2 = 31266,item3 = 31265,item4 = 31264})) then -- request of the strong + FactionHits(e); + e.other:QuestReward(e.self,0,0,0,0,31464,20000); + elseif(e.other:GetFactionValue(e.self) >= 500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 31259,item2 = 31270,item3 = 31253,item4 = 31250})) then -- test of the ruby tear + FactionHits(e); + e.other:QuestReward(e.self,0,0,0,0,31460,20000); + elseif(e.other:GetFactionValue(e.self) >= 500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 31251,item2 = 31269,item3 = 31252,item4 = 31254})) then -- test of the platinum tear + FactionHits(e); + e.other:QuestReward(e.self,0,0,0,0,31461,20000); + elseif(e.other:GetFactionValue(e.self) >= 500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 31257,item2 = 31268,item3 = 31256,item4 = 31255})) then -- test of the emerald tear + FactionHits(e); + e.other:QuestReward(e.self,0,0,0,0,31462,20000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionHits(e) + e.self:Say("You have done well, ".. e.other:Race() .. ". You have proven that you are strong, but do you dare enter those halls again?"); + e.other:Faction(e.self,430,75); -- Faction: Claws of Veeshan + e.other:Faction(e.self,436,18); -- Faction: Yelinak + e.other:Faction(e.self,448,-37); -- Faction: Kromzek +end diff --git a/templeveeshan/#Lepethida.lua b/templeveeshan/#Lepethida.lua new file mode 100644 index 0000000..b021553 --- /dev/null +++ b/templeveeshan/#Lepethida.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.csr_notice(string.format("TempleVeeshan Lepethida slain by %s's group <%s>", e.killer:GetName(), e.killer:CastToClient():GetGuildName())); +end diff --git a/templeveeshan/#Lord_Feshlak.lua b/templeveeshan/#Lord_Feshlak.lua new file mode 100644 index 0000000..49a613f --- /dev/null +++ b/templeveeshan/#Lord_Feshlak.lua @@ -0,0 +1,43 @@ +-- #Lord_Feshlak NPCID: 124008 + +function event_spawn(e) + eq.spawn2(124157, 0, 0, -810, 470, 129, 34); -- a_guardian_spirit +end + +function event_death(e) + + local npc_list = eq.get_entity_list():GetNPCList(); + + if ( npc_list ) then + for npc in npc_list.entries do + if ( npc:GetNPCTypeID() == 124157 and npc:GetX() == -810 and npc:GetY() == 470 ) then + npc:Depop(); + break; + end + end + end +end + +function event_combat(e) + + if (e.joined) then + eq.set_timer("help", 300000); + HelpMe(e); + else + eq.stop_timer("help"); + end +end + +function event_timer(e) + if(e.timer == "help") then + HelpMe(e); + end +end + +function HelpMe(e) + local aaryonar = eq.get_entity_list():GetMobByNpcTypeID(124010); + + if (aaryonar.valid) then + aaryonar:CastToNPC():MoveTo(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0, false); + end +end diff --git a/templeveeshan/#Lord_Koi-Doken.lua b/templeveeshan/#Lord_Koi-Doken.lua new file mode 100644 index 0000000..2774bdb --- /dev/null +++ b/templeveeshan/#Lord_Koi-Doken.lua @@ -0,0 +1,19 @@ +-- #Lord_Koi`Doken NPCID: 124103 + +function event_spawn(e) + eq.spawn2(124157, 0, 0, -679, 509, 129, 194); -- a_guardian_spirit +end + +function event_death(e) + + local npc_list = eq.get_entity_list():GetNPCList(); + + if ( npc_list ) then + for npc in npc_list.entries do + if ( npc:GetNPCTypeID() == 124157 and npc:GetX() == -679 and npc:GetY() == 509 ) then + npc:Depop(); + break; + end + end + end +end diff --git a/templeveeshan/#Lord_Kreizenn.lua b/templeveeshan/#Lord_Kreizenn.lua new file mode 100644 index 0000000..026d55e --- /dev/null +++ b/templeveeshan/#Lord_Kreizenn.lua @@ -0,0 +1,43 @@ +-- #Lord_Kreizenn NPCID: 124074 + +function event_spawn(e) + eq.spawn2(124157, 0, 0, -810, 509, 129, 64); -- a_guardian_spirit +end + +function event_death(e) + + local npc_list = eq.get_entity_list():GetNPCList(); + + if ( npc_list ) then + for npc in npc_list.entries do + if ( npc:GetNPCTypeID() == 124157 and npc:GetX() == -810 and npc:GetY() == 509 ) then + npc:Depop(); + break; + end + end + end +end + +function event_combat(e) + + if (e.joined) then + eq.set_timer("help", 300000); + HelpMe(e); + else + eq.stop_timer("help"); + end +end + +function event_timer(e) + if(e.timer == "help") then + HelpMe(e); + end +end + +function HelpMe(e) + local aaryonar = eq.get_entity_list():GetMobByNpcTypeID(124010); + + if (aaryonar.valid) then + aaryonar:CastToNPC():MoveTo(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0, false); + end +end diff --git a/templeveeshan/#Lord_Vyemm.lua b/templeveeshan/#Lord_Vyemm.lua new file mode 100644 index 0000000..70f9b1b --- /dev/null +++ b/templeveeshan/#Lord_Vyemm.lua @@ -0,0 +1,43 @@ +-- #Lord_Vyemm NPCID: 124003 + +function event_spawn(e) + eq.spawn2(124157, 0, 0, -679, 461, 129, 228); -- a_guardian_spirit +end + +function event_death(e) + + local npc_list = eq.get_entity_list():GetNPCList(); + + if ( npc_list ) then + for npc in npc_list.entries do + if ( npc:GetNPCTypeID() == 124157 and npc:GetX() == -679 and npc:GetY() == 461 ) then + npc:Depop(); + break; + end + end + end +end + +function event_combat(e) + + if (e.joined) then + eq.set_timer("help", 300000); + HelpMe(e); + else + eq.stop_timer("help"); + end +end + +function event_timer(e) + if(e.timer == "help") then + HelpMe(e); + end +end + +function HelpMe(e) + local aaryonar = eq.get_entity_list():GetMobByNpcTypeID(124010); + + if (aaryonar.valid) then + aaryonar:CastToNPC():MoveTo(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0, false); + end +end diff --git a/templeveeshan/#Telkorenar.lua b/templeveeshan/#Telkorenar.lua new file mode 100644 index 0000000..1d0133f --- /dev/null +++ b/templeveeshan/#Telkorenar.lua @@ -0,0 +1,49 @@ +-- Telkorenar's WToV tests: Test of Protection, Fire Storm, Living Flame, Tooth + +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 500) then -- req kindly cov + if(e.message:findi("hail")) then + e.self:Say("The Strong seek me out, for one reason or another. It seems you have come here in peace. Perhaps you wish to prove yourself a mighty fighter? I respect only might, " .. e.other:Race() .. "."); + elseif(e.message:findi("prove")) then + e.self:Say("For the mighty I have four tests. The test of the tooth, the test of the flame, the test of the fire storm, and the test of protection. Which test do you wish to undertake?"); + elseif(e.message:findi("tooth")) then + e.self:Say("With tooth and nail you must fight, deep into the halls of testing. Recover the white tear of power, the white symbol for purity, the silver symbol to calm ones self, and a glowing orb. If you can return these to me I will know you are a mighty fighter indeed."); + elseif(e.message:findi("flame")) then + e.self:Say("Return the black tear, the black symbol, the poison symbol, and the serrated symbol to me and you will have completed the test of flame. Your reward will be quite suitable to one who enters the fray of battle."); + elseif(e.message:findi("fire storm")) then + e.self:Say("Become like a fire storm and bring your wrath upon the inhabitants of the halls of testing. Return when you have the tear of poison and the serrated tear along with the a symbol kissed by flames and a ruby symbol."); + elseif(e.message:findi("protection")) then + e.self:Say("My fire will protect you if you are strong enough to endure this test. A ruby tear like my flames, an emerald tear like a forest ready to burn, an emerald symbol, and a platinum symbol are what I seek. With these I will forge pauldrons unlike any you have ever seen mortal. Go now and seek out what I desire."); + end + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 31257,item2 = 31268,item3 = 31270,item4 = 31258})) then -- protection + FactionHits(e); + e.other:QuestReward(e.self,0,0,0,0,31472,20000); + elseif(e.other:GetFactionValue(e.self) >= 500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 31260,item2 = 31253,item3 = 31261,item4 = 31250})) then -- test of the tooth + FactionHits(e); + e.other:QuestReward(e.self,0,0,0,0,31469,20000); + elseif(e.other:GetFactionValue(e.self) >= 500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 31262,item2 = 31251,item3 = 31255,item4 = 31254})) then -- test of living flame + FactionHits(e); + e.other:QuestReward(e.self,0,0,0,0,31470,20000); + elseif(e.other:GetFactionValue(e.self) >= 500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 31256,item2 = 31266,item3 = 31265,item4 = 31259})) then -- test of the fire storm + FactionHits(e); + e.other:QuestReward(e.self,0,0,0,0,31471,20000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionHits(e) + e.self:Say("You have done well, ".. e.other:Race() .. ". You have proven that you are strong, but do you dare enter those halls again?"); + e.other:Faction(e.self,430,75); -- Faction: Claws of Veeshan + e.other:Faction(e.self,436,18); -- Faction: Yelinak + e.other:Faction(e.self,448,-37); -- Faction: Kromzek +end diff --git a/templeveeshan/A_deafening_roar.lua b/templeveeshan/A_deafening_roar.lua new file mode 100644 index 0000000..a8f4989 --- /dev/null +++ b/templeveeshan/A_deafening_roar.lua @@ -0,0 +1,11 @@ +-- A_deafening_roar NPCID: 124135 +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.other:CastToClient():Message(0,"A deafening roar fills the halls."); +end diff --git a/templeveeshan/A_feeling.lua b/templeveeshan/A_feeling.lua new file mode 100644 index 0000000..3f762e8 --- /dev/null +++ b/templeveeshan/A_feeling.lua @@ -0,0 +1,11 @@ +-- A_feeling NPCID: 124140 +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.other:CastToClient():Message(0,"A feeling of danger washes over you."); +end \ No newline at end of file diff --git a/templeveeshan/A_raging_wind.lua b/templeveeshan/A_raging_wind.lua new file mode 100644 index 0000000..2f7720e --- /dev/null +++ b/templeveeshan/A_raging_wind.lua @@ -0,0 +1,12 @@ +-- The_sound_of NPCID: 124130 +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("whistles through the great cavern nearly bowling you over."); + eq.depop_with_timer(); +end diff --git a/templeveeshan/A_sense_of_awe.lua b/templeveeshan/A_sense_of_awe.lua new file mode 100644 index 0000000..cd51955 --- /dev/null +++ b/templeveeshan/A_sense_of_awe.lua @@ -0,0 +1,12 @@ +-- The_sound_of NPCID: 124130 +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("overcomes you."); + eq.depop_with_timer(); +end diff --git a/templeveeshan/Ajorek_the_Crimson_Fang.lua b/templeveeshan/Ajorek_the_Crimson_Fang.lua new file mode 100644 index 0000000..fed5d20 --- /dev/null +++ b/templeveeshan/Ajorek_the_Crimson_Fang.lua @@ -0,0 +1,16 @@ +-- Ajorek_the_Crimson_Fang NPCID: 124088 +function event_combat(e) + if (e.joined) then + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- also aggro #Eashen_of_the_Sky (124017) and Yendilor_the_Cerulean_Wing (124056) + -- and Belijor_the_Emerald_Eye (124057) and Nelaarn_the_Ebon_Claw (124089) if they are up + local npc_table = {124017,124056,124057,124089}; + for k,v in pairs(npc_table) do + local npc = entity_list:GetMobByNpcTypeID(v); + if (npc.valid) then + npc:AddToHateList(e.other,1); + end + end + end +end \ No newline at end of file diff --git a/templeveeshan/As_you_pass.lua b/templeveeshan/As_you_pass.lua new file mode 100644 index 0000000..0b6f878 --- /dev/null +++ b/templeveeshan/As_you_pass.lua @@ -0,0 +1,11 @@ +-- As_you_pass NPCID: 124148 +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.other:CastToClient():Message(0,"As you pass the archway a faint glow surrounds your body."); +end \ No newline at end of file diff --git a/templeveeshan/Belijor_the_Emerald_Eye.lua b/templeveeshan/Belijor_the_Emerald_Eye.lua new file mode 100644 index 0000000..81cb432 --- /dev/null +++ b/templeveeshan/Belijor_the_Emerald_Eye.lua @@ -0,0 +1,16 @@ +-- Belijor_the_Emerald_Eye NPCID: 124057 +function event_combat(e) + if (e.joined) then + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- also aggro #Eashen_of_the_Sky (124017) and Yendilor_the_Cerulean_Wing (124056) + -- and Yendilor_the_Cerulean_Wing (124056) and Nelaarn_the_Ebon_Claw (124089) if they are up + local npc_table = {124017,124056,124088,124089}; + for k,v in pairs(npc_table) do + local npc = entity_list:GetMobByNpcTypeID(v); + if (npc.valid) then + npc:AddToHateList(e.other,1); + end + end + end +end \ No newline at end of file diff --git a/templeveeshan/Bryrym.lua b/templeveeshan/Bryrym.lua new file mode 100644 index 0000000..a82cac5 --- /dev/null +++ b/templeveeshan/Bryrym.lua @@ -0,0 +1,15 @@ +-- Bryrym NPCID: 124005 +function event_combat(e) + if (e.joined) then + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- also aggro #Lord_Feshlak (124008) and Vukuz (124015) if they are up + local npc_table = {124008,124015}; + for k,v in pairs(npc_table) do + local npc = entity_list:GetMobByNpcTypeID(v); + if (npc.valid) then + npc:AddToHateList(e.other,1); + end + end + end +end \ No newline at end of file diff --git a/templeveeshan/Carx-Vean.lua b/templeveeshan/Carx-Vean.lua new file mode 100644 index 0000000..03d83e0 --- /dev/null +++ b/templeveeshan/Carx-Vean.lua @@ -0,0 +1,15 @@ +-- Carx`Vean (124094) NPCID: 124094 +function event_combat(e) + if (e.joined) then + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- also aggro #Lord_Kreizenn (124074) and Kedrak (124093) if they are up + local npc_table = {124074,124093}; + for k,v in pairs(npc_table) do + local npc = entity_list:GetMobByNpcTypeID(v); + if (npc.valid) then + npc:AddToHateList(e.other,1); + end + end + end +end \ No newline at end of file diff --git a/templeveeshan/Empty_egg_shells.lua b/templeveeshan/Empty_egg_shells.lua new file mode 100644 index 0000000..c2cd922 --- /dev/null +++ b/templeveeshan/Empty_egg_shells.lua @@ -0,0 +1,11 @@ +-- Empty_egg_shells NPCID: 124117 +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.other:CastToClient():Message(0,"Empty egg shells crack beneath your feet."); +end \ No newline at end of file diff --git a/templeveeshan/Gra-Vloren.lua b/templeveeshan/Gra-Vloren.lua new file mode 100644 index 0000000..d1e78dc --- /dev/null +++ b/templeveeshan/Gra-Vloren.lua @@ -0,0 +1,15 @@ +-- Gra`Vloren NPCID: 124091 +function event_combat(e) + if (e.joined) then + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- also aggro #Lady_Mirenilla (124077) and Wel`Wnas (124092) if they are up + local npc_table = {124077,124092}; + for k,v in pairs(npc_table) do + local npc = entity_list:GetMobByNpcTypeID(v); + if (npc.valid) then + npc:AddToHateList(e.other,1); + end + end + end +end \ No newline at end of file diff --git a/templeveeshan/Hsrek.lua b/templeveeshan/Hsrek.lua new file mode 100644 index 0000000..68c77ca --- /dev/null +++ b/templeveeshan/Hsrek.lua @@ -0,0 +1,15 @@ +-- Hsrek NPCID: 124014 +function event_combat(e) + if (e.joined) then + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- also aggro Lurian (124013) and #Lord_Vyemm (124003) if they are up + local npc_table = {124013,124003}; + for k,v in pairs(npc_table) do + local npc = entity_list:GetMobByNpcTypeID(v); + if (npc.valid) then + npc:AddToHateList(e.other,1); + end + end + end +end \ No newline at end of file diff --git a/templeveeshan/Kal-Vunar.lua b/templeveeshan/Kal-Vunar.lua new file mode 100644 index 0000000..c0fd577 --- /dev/null +++ b/templeveeshan/Kal-Vunar.lua @@ -0,0 +1,25 @@ +-- Aaryonar guard drake + +function event_combat(e) + + if (e.joined) then + eq.set_timer("help", 300000); + HelpMe(e); + else + eq.stop_timer("help"); + end +end + +function event_timer(e) + if(e.timer == "help") then + HelpMe(e); + end +end + +function HelpMe(e) + local aaryonar = eq.get_entity_list():GetMobByNpcTypeID(124010); + + if (aaryonar.valid) then + aaryonar:CastToNPC():MoveTo(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0, false); + end +end diff --git a/templeveeshan/Kedrak.lua b/templeveeshan/Kedrak.lua new file mode 100644 index 0000000..42eaf7d --- /dev/null +++ b/templeveeshan/Kedrak.lua @@ -0,0 +1,15 @@ +-- Kedrak NPCID: 124093 +function event_combat(e) + if (e.joined) then + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- also aggro #Lord_Kreizenn (124074) and Carx`Vean (124094) if they are up + local npc_table = {124074,124094}; + for k,v in pairs(npc_table) do + local npc = entity_list:GetMobByNpcTypeID(v); + if (npc.valid) then + npc:AddToHateList(e.other,1); + end + end + end +end \ No newline at end of file diff --git a/templeveeshan/Lurien.lua b/templeveeshan/Lurien.lua new file mode 100644 index 0000000..63afd77 --- /dev/null +++ b/templeveeshan/Lurien.lua @@ -0,0 +1,15 @@ +-- Lurian NPCID: 124013 +function event_combat(e) + if (e.joined) then + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- also aggro Hsrek (124014) and #Lord_Vyemm (124003) if they are up + local npc_table = {124014,124003}; + for k,v in pairs(npc_table) do + local npc = entity_list:GetMobByNpcTypeID(v); + if (npc.valid) then + npc:AddToHateList(e.other,1); + end + end + end +end \ No newline at end of file diff --git a/templeveeshan/Mazrien.lua b/templeveeshan/Mazrien.lua new file mode 100644 index 0000000..123d572 --- /dev/null +++ b/templeveeshan/Mazrien.lua @@ -0,0 +1,25 @@ +-- Lord Koi`Doken guard drake + +function event_combat(e) + + if (e.joined) then + eq.set_timer("help", 300000); + HelpMe(e); + else + eq.stop_timer("help"); + end +end + +function event_timer(e) + if(e.timer == "help") then + HelpMe(e); + end +end + +function HelpMe(e) + local koi = eq.get_entity_list():GetMobByNpcTypeID(124103); + + if (koi.valid) then + koi:CastToNPC():MoveTo(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0, false); + end +end diff --git a/templeveeshan/Nelaarn_the_Ebon_Claw.lua b/templeveeshan/Nelaarn_the_Ebon_Claw.lua new file mode 100644 index 0000000..98084e4 --- /dev/null +++ b/templeveeshan/Nelaarn_the_Ebon_Claw.lua @@ -0,0 +1,16 @@ +-- Nelaarn_the_Ebon_Claw NPCID: 124089 +function event_combat(e) + if (e.joined) then + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- also aggro Belijor_the_Emerald_Eye (124057) and #Eashen_of_the_Sky (124017) + -- and Ajorek_the_Crimson_Fang (124088) and Yendilor_the_Cerulean_Wing (124056) if they are up + local npc_table = {124017,124056,124057,124088}; + for k,v in pairs(npc_table) do + local npc = entity_list:GetMobByNpcTypeID(v); + if (npc.valid) then + npc:AddToHateList(e.other,1); + end + end + end +end \ No newline at end of file diff --git a/templeveeshan/Nir-Tan.lua b/templeveeshan/Nir-Tan.lua new file mode 100644 index 0000000..c0fd577 --- /dev/null +++ b/templeveeshan/Nir-Tan.lua @@ -0,0 +1,25 @@ +-- Aaryonar guard drake + +function event_combat(e) + + if (e.joined) then + eq.set_timer("help", 300000); + HelpMe(e); + else + eq.stop_timer("help"); + end +end + +function event_timer(e) + if(e.timer == "help") then + HelpMe(e); + end +end + +function HelpMe(e) + local aaryonar = eq.get_entity_list():GetMobByNpcTypeID(124010); + + if (aaryonar.valid) then + aaryonar:CastToNPC():MoveTo(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0, false); + end +end diff --git a/templeveeshan/Something_seems.lua b/templeveeshan/Something_seems.lua new file mode 100644 index 0000000..33f8f2d --- /dev/null +++ b/templeveeshan/Something_seems.lua @@ -0,0 +1,12 @@ +-- The_sound_of NPCID: 124130 +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.self:Emote("to be moving in the water."); + eq.depop_with_timer(); +end diff --git a/templeveeshan/The_sound_of.lua b/templeveeshan/The_sound_of.lua new file mode 100644 index 0000000..1b66f91 --- /dev/null +++ b/templeveeshan/The_sound_of.lua @@ -0,0 +1,11 @@ +-- The_sound_of NPCID: 124130 +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.other:CastToClient():Message(0,"The sound of a thousand wings fills the halls."); +end \ No newline at end of file diff --git a/templeveeshan/Vukuz.lua b/templeveeshan/Vukuz.lua new file mode 100644 index 0000000..77f6faf --- /dev/null +++ b/templeveeshan/Vukuz.lua @@ -0,0 +1,15 @@ +-- Vukuz NPCID: 124015 +function event_combat(e) + if (e.joined) then + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- also aggro Bryrym (124005) and #Lord_Feshlak (124008) if they are up + local npc_table = {124005,124008}; + for k,v in pairs(npc_table) do + local npc = entity_list:GetMobByNpcTypeID(v); + if (npc.valid) then + npc:AddToHateList(e.other,1); + end + end + end +end \ No newline at end of file diff --git a/templeveeshan/Wel-Wnas.lua b/templeveeshan/Wel-Wnas.lua new file mode 100644 index 0000000..74261e9 --- /dev/null +++ b/templeveeshan/Wel-Wnas.lua @@ -0,0 +1,15 @@ +-- Wel`Wnas (124092) NPCID: 124092 +function event_combat(e) + if (e.joined) then + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- also aggro #Lady_Mirenilla (124077) and Gra`Vloren (124091) if they are up + local npc_table = {124077,124091}; + for k,v in pairs(npc_table) do + local npc = entity_list:GetMobByNpcTypeID(v); + if (npc.valid) then + npc:AddToHateList(e.other,1); + end + end + end +end \ No newline at end of file diff --git a/templeveeshan/Yendilor_the_Cerulean_Wing.lua b/templeveeshan/Yendilor_the_Cerulean_Wing.lua new file mode 100644 index 0000000..2cfae91 --- /dev/null +++ b/templeveeshan/Yendilor_the_Cerulean_Wing.lua @@ -0,0 +1,16 @@ +-- Yendilor_the_Cerulean_Wing NPCID: 124056 +function event_combat(e) + if (e.joined) then + -- grab the entity list + local entity_list = eq.get_entity_list(); + -- also aggro Belijor_the_Emerald_Eye (124057) and Nelaarn_the_Ebon_Claw (124089) + -- and Ajorek_the_Crimson_Fang (124088) and #Eashen_of_the_Sky (124017) if they are up + local npc_table = {124017,124057,124088,124089}; + for k,v in pairs(npc_table) do + local npc = entity_list:GetMobByNpcTypeID(v); + if (npc.valid) then + npc:AddToHateList(e.other,1); + end + end + end +end \ No newline at end of file diff --git a/templeveeshan/encounters/VulakRing.lua b/templeveeshan/encounters/VulakRing.lua new file mode 100644 index 0000000..b303fcf --- /dev/null +++ b/templeveeshan/encounters/VulakRing.lua @@ -0,0 +1,668 @@ +local RING_NPCS = { + 124316, -- Essence_of_Veeshan + 124287, -- an_emerald_hatchling + 124285, -- an_onyx_hatchling + 124288, -- a_cerulean_hatchling + 124286, -- a_crimson_hatchling + 124297, -- a_pearl_destroyer + 124298, -- a_crimson_destroyer + 124294, -- an_onyx_warden 400 dmg + 124291, -- a_cerulean_warden 400 dmg war + 124289, -- a_jade_warden 400 dmg + 124296, -- a_molten_warden 400 dmg + 124295, -- an_onyx_warden 340 dmg + 124290, -- a_jade_warden 340 dmg + 124299, -- a_crimson_warden 340 dmg + 124292, -- a_cerulean_warden 340 dmg war + 124293, -- a_cerulean_warden 340 dmg cleric + 124300, -- a_molten_destroyer + 124302, -- an_onyx_destroyer + 124301, -- a_cerulean_destroyer + 124303, -- a_jade_destroyer + 124308, -- a_swiftclaw_racnar + 124309, -- a_tiger_stripe_racnar + 124307, -- an_onyx_Templar + 124305, -- a_jade_templar + 124304, -- a_crimson_templar + 124306, -- a_cerulean_templar + 124311, -- an_acolyte_of_Veeshan + 124319, -- an_acolyte_of_Veeshan + 124318, -- a_templar_of_Veeshan + 124310, -- a_carrion_drake + 124314, -- Vethrol_the_Skycaller + 124312, -- Zruk_the_Lifestealer + 124315, -- The_Herald_of_Vulak`Aerr + 124313, -- Rarthek_the_Swiftclaw +}; +local RING_CLIENT_CHECK_TIMER = 10000; -- how often to check for clients in the ring +local RING_END_TIMER = 180000; -- shut down the event if no clients in range for this long +local RING_DEBUG_MODE = false; +local RING_WAVES = { + [1] = { + waveTime = 526000, + waveFunc = function() + -- Two drakes and a wurm destroyer spawn in the ring, and two more drakes come from the bridge. + eq.spawn2(eq.ChooseRandom(124297, 124298), 0, 0, -740, 510, 140, 1); -- pit Wurm + eq.spawn2(eq.ChooseRandom(124311, 124319), 0, 0, -698, 510, 123, 192); -- pit an_acolyte_of_Veeshan + eq.spawn2(eq.ChooseRandom(124311, 124319), 40, 0, -756, 815, 125, 124); -- bridge an_acolyte_of_Veeshan + eq.spawn2(eq.ChooseRandom(124294, 124291, 124289, 124296), 0, 0, -779, 510, 123, 65); -- pit warden (400 dmg) + eq.spawn2(eq.ChooseRandom(124294, 124291, 124289, 124296), 41, 0, -725, 816, 125, 131); -- bridge warden (400 dmg) + end + }, + [2] = { + waveTime = 150000, + waveFunc = function() + -- A vortex of mana fires. One flurry drake spawns with a number of hatchlings, some of which spawn on a delay + -- I'm not sure how many hatchlings spawned. I don't think more than 6 ever popped at once, so my best guess is that there were 6 to start, and a couple more mini-waves of 3 or 4 each. + + eq.spawn2(124317, 0, 0, -740, 543, 130, 127); -- a vortex of mana + eq.spawn2(124318, 0, 0, -740, 510, 130, 1); -- pit a_templar_of_Veeshan + + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, math.random(255)); -- pit hatchling + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, math.random(255)); -- pit hatchling + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, math.random(255)); -- pit hatchling + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, math.random(255)); -- pit hatchling + if ( math.random(100) > 50 ) then + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, math.random(255)); -- pit hatchling + end + if ( math.random(100) > 50 ) then + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, math.random(255)); -- pit hatchling + end + end + }, + [3] = { -- wave 2 part 2 + waveTime = 150000, + waveFunc = function() + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, math.random(255)); -- pit hatchling + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, math.random(255)); -- pit hatchling + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, math.random(255)); -- pit hatchling + if ( math.random(100) > 50 ) then + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, math.random(255)); -- pit hatchling + end + end + }, + [4] = { -- wave 2 part 3 + waveTime = 227000, + waveFunc = function() + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, math.random(255)); -- pit hatchling + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, math.random(255)); -- pit hatchling + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, math.random(255)); -- pit hatchling + if ( math.random(100) > 50 ) then + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, math.random(255)); -- pit hatchling + end + end + }, + [5] = { -- wave 3 + waveTime = 200000, + waveFunc = function() + -- A vortex of mana fires. Two wurm destroyers and two drakes spawn. Four minutes in, four more drakes spawn. + + eq.spawn2(124317, 0, 0, -740, 543, 130, 127); -- a vortex of mana + + eq.spawn2(eq.ChooseRandom(124297, 124298), 40, 0, -756, 815, 125, 124); -- bridge wurm + eq.spawn2(eq.ChooseRandom(124297, 124298), 41, 0, -725, 816, 125, 131); -- bridge wurm + eq.spawn2(eq.ChooseRandom(124294, 124291, 124289, 124296), 0, 0, -679, 509, 125, 192); -- pit warden (400 dmg) + eq.spawn2(eq.ChooseRandom(124294, 124291, 124289, 124296), 0, 0, -802, 510, 125, 65); -- pit warden (400 dmg) + end + }, + [6] = { -- wave 3 part 2 + waveTime = 331000, + waveFunc = function() + -- (On one occasion, the second half of this wave was only two drakes.) + + if ( math.random(100) > 25 ) then + eq.spawn2(eq.ChooseRandom(124294, 124291, 124289, 124296), 40, 0, -756, 815, 125, 124); -- bridge warden (400 dmg) + eq.spawn2(eq.ChooseRandom(124294, 124291, 124289, 124296), 41, 0, -725, 816, 125, 131); -- bridge warden (400 dmg) + end + eq.spawn2(eq.ChooseRandom(124294, 124291, 124289, 124296), 0, 0, -698, 510, 123, 192); -- pit warden (400 dmg) + eq.spawn2(eq.ChooseRandom(124294, 124291, 124289, 124296), 0, 0, -779, 510, 123, 65); -- pit warden (400 dmg) + end + }, + [7] = { -- wave 4 + waveTime = 524000, + waveFunc = function() + -- A vortex of mana fires. Zruk the Lifestealer (named drake - black, I think) spawns, and another vortex goes off on his death. Zruk is a bellycaster, and will spawn carrion drake adds after any deaths - including swarm pets! + + eq.spawn2(124317, 0, 0, -740, 543, 130, 127); -- a vortex of mana + eq.spawn2(124312, 0, 0, -740, 510, 130, 1); -- Zruk + end + }, + [8] = { -- wave 5 + waveTime = 150000, + waveFunc = function() + -- Two wurms spawn down the bridge. Two drakes spawn in the ring. Hatchlings pop at intervals. Watch out for runners and DT aggro. + eq.spawn2(eq.ChooseRandom(124297, 124298), 40, 0, -756, 815, 125, 124); -- bridge wurm + eq.spawn2(eq.ChooseRandom(124297, 124298), 41, 0, -725, 816, 125, 131); -- bridge wurm + eq.spawn2(eq.ChooseRandom(124311, 124319), 0, 0, -698, 510, 123, 192); -- pit an_acolyte_of_Veeshan + eq.spawn2(eq.ChooseRandom(124311, 124319), 0, 0, -779, 510, 123, 65); -- pit an_acolyte_of_Veeshan + end + }, + [9] = { -- wave 5 part 2 + waveTime = 150000, + waveFunc = function() + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, 65); -- pit hatchling + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, 65); -- pit hatchling + end + }, + [10] = { -- wave 5 part 3 + waveTime = 220000, + waveFunc = function() + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, 65); -- pit hatchling + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, 65); -- pit hatchling + end + }, + [11] = { -- wave 6 + waveTime = 585000, + waveFunc = function(splitters) + -- Two drakes (wardens) spawn in the ring, one on each side of the room. When each dies, two more pop at their original spawn points, and so on. Wave includes 22 drakes in total, 10 splitting from each original. + + -- pit wardens (340 dmg) + local parent = eq.spawn2(eq.ChooseRandom(124295, 124290, 124299, 124292, 124293), 0, 0, -698, 510, 123, 192):GetID(); + table.insert(splitters, { + parent = parent, + children = {}, + x = -698, + y = 510, + z = 123, + splits = 2, + limit = 10, + types = 1, + }); + parent = eq.spawn2(eq.ChooseRandom(124295, 124290, 124299, 124292, 124293), 0, 0, -779, 510, 123, 65):GetID(); + table.insert(splitters, { + parent = parent, + children = {}, + x = -779, + y = 510, + z = 123, + splits = 2, + limit = 10, + types = 1, + }); + end + }, + [12] = { -- wave 7 + waveTime = 584000, + waveFunc = function() + -- Two templars (flurry drakes) and one regular drake spawn in the ring. Carrion drakes spawn if players die. + -- Templars (flurry) spawn at the left and right sides of room. The non-flurry drake spawns in the middle in back. + + eq.spawn2(eq.ChooseRandom(124311, 124319), 0, 0, -740, 510, 130, 1); -- pit an_acolyte_of_Veeshan + eq.spawn2(eq.ChooseRandom(124307, 124305, 124304, 124306), 0, 0, -679, 509, 125, 192); -- pit templar + eq.spawn2(eq.ChooseRandom(124307, 124305, 124304, 124306), 0, 0, -802, 510, 125, 65); -- pit templar + end + }, + [13] = { -- wave 8 + waveTime = 526000, + waveFunc = function() + -- Rarthek the Swiftclaw and a swiftclaw racnar spawn. A vortex fires on Rarthek's death. + eq.spawn2(124313, 0, 0, -740, 510, 130, 1); -- Rarthek_the_Swiftclaw + eq.spawn2(124308, 0, 0, -740, 475, 125, 1); -- a_swiftclaw_racnar + end + }, + [14] = { -- wave 9 + waveTime = 529000, + waveFunc = function() + -- Five destroyer drakes spawn. + eq.spawn2(eq.ChooseRandom(124300, 124302, 124301, 124303), 0, 0, -768, 482, 125, 31); -- pit destroyer drake + eq.spawn2(eq.ChooseRandom(124300, 124302, 124301, 124303), 0, 0, -715, 484, 125, 226); -- pit destroyer drake + eq.spawn2(eq.ChooseRandom(124300, 124302, 124301, 124303), 0, 0, -716, 538, 125, 158); -- pit destroyer drake + eq.spawn2(eq.ChooseRandom(124300, 124302, 124301, 124303), 0, 0, -770, 536, 125, 93); -- pit destroyer drake + eq.spawn2(eq.ChooseRandom(124300, 124302, 124301, 124303), 42, 0, -740, 816, 125, 127); -- bridge destroyer drake + end + }, + [15] = { -- wave 10 + waveTime = 587000, + waveFunc = function() + -- Two templars (flurry drakes) spawn at the east and west ends of the main room. Carrion drakes spawn if players die. + eq.spawn2(eq.ChooseRandom(124307, 124305, 124304, 124306), 0, 0, -802, 510, 125, 63); -- pit templar + eq.spawn2(eq.ChooseRandom(124307, 124305, 124304, 124306), 0, 0, -679, 509, 125, 192); -- pit templar + end + }, + [16] = { -- wave 11 + waveTime = 586000, + waveFunc = function(splitters) + -- spawns random NPCs. Log 1 spawned with tiger+acolyte+templar+warden; log 2 spawned with 3 tigers+warden + -- 2 more wardens seemed to spawn after the warden was killed. (both splitting wardens was a jade incidentally) + + -- pit warden (400 dmg) + local parent = eq.spawn2(eq.ChooseRandom(124294, 124291, 124289, 124296), 0, 0, -740, 510, 125, 1):GetID(); + table.insert(splitters, { + parent = parent, + children = {}, + x = -740, + y = 510, + z = 125, + splits = 2, + limit = 2, + types = 0, + }); + + local roll = math.random(100); + + if ( roll < 33 ) then + eq.spawn2(eq.ChooseRandom(124307, 124305, 124304, 124306), 0, 0, -740, 479, 125, 1); -- pit templar + elseif ( roll < 33 ) then + eq.spawn2(eq.ChooseRandom(124311, 124319), 0, 0, -749, 479, 125, 1); -- pit an_acolyte_of_Veeshan + else + eq.spawn2(124309, 0, 0, -740, 479, 125, 1); -- pit a_tiger_stripe_racnar + end + + roll = math.random(100); + if ( roll < 25 ) then + eq.spawn2(124309, 0, 0, -774, 510, 125, 64); -- pit a_tiger_stripe_racnar + elseif ( roll < 50 ) then + eq.spawn2(eq.ChooseRandom(124297, 124298), 0, 0, -774, 510, 125, 64); -- pit wurm + elseif ( roll < 75 ) then + eq.spawn2(eq.ChooseRandom(124311, 124319), 0, 0, -774, 510, 125, 64); -- pit an_acolyte_of_Veeshan + else + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, 65); -- pit hatchling + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, 127); -- pit hatchling + end + + roll = math.random(100); + if ( roll < 25 ) then + eq.spawn2(124309, 0, 0, -705, 510, 125, 192); -- pit a_tiger_stripe_racnar + elseif ( roll < 50 ) then + eq.spawn2(eq.ChooseRandom(124297, 124298), 0, 0, -705, 510, 125, 192); -- pit wurm + elseif ( roll < 75 ) then + eq.spawn2(eq.ChooseRandom(124311, 124319), 0, 0, -705, 510, 125, 192); -- pit an_acolyte_of_Veeshan + else + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, 65); -- pit hatchling + eq.spawn2(eq.ChooseRandom(124287, 124285, 124288, 124286), 0, 0, math.random(-782, -695), math.random(468, 555), 123, 127); -- pit hatchling + end + end + }, + [17] = { -- wave 12 + waveTime = 527000, + waveFunc = function() + eq.spawn2(124314, 0, 0, -740, 510, 130, 1); -- Vethrol_the_Skycaller + end + }, + [18] = { -- wave 13 + waveTime = 527000, + waveFunc = function() + -- Three templars (flurry drakes) spawn. Deaths trigger carrion drakes. Two of the spawns are in the room on the left and right sides; the third comes from down the bridge. + eq.spawn2(eq.ChooseRandom(124307, 124305, 124304, 124306), 0, 0, -802, 510, 125, 65); -- pit templar + eq.spawn2(eq.ChooseRandom(124307, 124305, 124304, 124306), 0, 0, -679, 509, 125, 192); -- pit templar + eq.spawn2(eq.ChooseRandom(124307, 124305, 124304, 124306), 42, 0, -740, 816, 125, 127); -- bridge templar + end + }, + [19] = { -- wave 14 + waveTime = 582000, + waveFunc = function(splitters) + -- Three drakes (wardens) spawn. Two more drakes spawn each time one dies. Two of the initial spawns are in the room on the left and right sides; the third comes from down the bridge. + local parent = eq.spawn2(eq.ChooseRandom(124294, 124291, 124289, 124296), 0, 0, -802, 510, 125, 63):GetID(); + table.insert(splitters, { + parent = parent, + children = {}, + x = -802, + y = 510, + z = 125, + splits = 2, + limit = 2, + types = 0, + }); + parent = eq.spawn2(eq.ChooseRandom(124294, 124291, 124289, 124296), 0, 0, -679, 509, 125, 192):GetID(); + table.insert(splitters, { + parent = parent, + children = {}, + x = -679, + y = 509, + z = 125, + splits = 2, + limit = 2, + types = 0, + }); + parent = eq.spawn2(eq.ChooseRandom(124294, 124291, 124289, 124296), 42, 0, -740, 816, 125, 127):GetID(); + table.insert(splitters, { + parent = parent, + children = {}, + x = -740, + y = 816, + z = 125, + splits = 2, + limit = 2, + types = 0, + move = true, + }); + end + }, + [20] = { -- wave 15 + waveTime = 583000, + waveFunc = function(splitters) + -- Two drakes (wardens) spawn in the ring. When each dies, two more pop, and so on. Wave includes 22 drakes in total, 10 splitting from each original. + -- pit wardens (340 dmg) + local parent = eq.spawn2(eq.ChooseRandom(124295, 124290, 124299, 124292, 124293), 0, 0, -698, 510, 123, 192):GetID(); + table.insert(splitters, { + parent = parent, + children = {}, + x = -698, + y = 510, + z = 123, + splits = 2, + limit = 10, + types = 1, + }); + parent = eq.spawn2(eq.ChooseRandom(124295, 124290, 124299, 124292, 124293), 0, 0, -779, 510, 123, 65):GetID(); + table.insert(splitters, { + parent = parent, + children = {}, + x = -779, + y = 510, + z = 123, + splits = 2, + limit = 10, + types = 1, + }); + end + }, + [21] = { -- wave 16 + waveTime = 588000, + waveFunc = function() + eq.spawn2(124315, 0, 0, -740, 510, 130, 1); -- The_Herald_of_Vulak`Aerr + end + }, + [22] = { -- wave 17 + waveTime = 7200000, -- unknown if Vulak has some sort of timer. Makes sense to have one in case a solo player manages to keep the ring going + waveFunc = function() + eq.spawn2(124128, 0, 0, -740, 510, 130, 1); -- #Vulak`Aerr + end + }, + [23] = { + waveTime = 1000, + waveFunc = function() + eq.depop(124128); -- #Vulak`Aerr + EndRingEvent(); + end + }, +}; + +local ringActive = false; +local victory = false; +local wave = 0; +local clientsInRing = 0; +local invisClientTime = 0; +local orb; +local splitters; + +function GlowingOrbEnterEvent(event) + if ( RING_DEBUG_MODE ) then eq.zone_emote(7,": Entered Proximity"); end + + if ( not ringActive ) then + + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(124000) and not event.other:GetGM() ) then -- Thylex_of_Veeshan + + ringActive = true; + victory = false; + wave = 0; + clientsInRing = 1; + invisClientTime = 0; + splitters = {}; + + eq.depop_with_timer(124000); -- Thylex_of_Veeshan + + eq.spawn2(124316, 0, 0, -760, 960, 128, 128); -- Essence_of_Veeshan + eq.spawn2(124316, 0, 0, -740, 960, 128, 128); -- Essence_of_Veeshan + eq.spawn2(124316, 0, 0, -720, 960, 128, 128); -- Essence_of_Veeshan + + eq.set_timer("wave", 10000); + eq.set_timer("proximity", RING_CLIENT_CHECK_TIMER); + + if ( RING_DEBUG_MODE ) then eq.zone_emote(7,": Ring Event Active"); end + end + end +end + +function EndRingEvent() + + for _, id in ipairs(RING_NPCS) do + eq.depop_all(id); + end + + if ( not victory ) then + eq.depop(124128); -- #Vulak`Aerr + eq.spawn_from_spawn2(354475); -- Thylex_of_Veeshan's spawn point ID + if ( RING_DEBUG_MODE ) then eq.zone_emote(7,": Respawning Thylex"); end + end + + ringActive = false; + + if ( RING_DEBUG_MODE ) then eq.zone_emote(7,": Ring Event Inactive"); end +end + +function CountClientsInRing() + local clientList = eq.get_entity_list():GetClientList(); + local clients = 0; + local invisibleClients = 0; + + if ( clientList ) then + for client in clientList.entries do + + -- these strictly defined regions are to prevent SoS rogues or FD characters + -- from hiding in corners to avoid the AoE cast by the orb + if ( not client:GetGM() and client:GetZ() > 110 and client:GetZ() < 131 and client:GetY() > 435 and client:GetY() < 700) then + + if ( (client:GetX() > -779 and client:GetX() < -701) + or + (client:GetX() > -820 and client:GetX() < -660 and client:GetY() < 595) + ) then + + clients = clients + 1; + if ( client:IsInvisible(orb) or client:GetFeigned() ) then + invisibleClients = invisibleClients + 1; + end + end + end + end + end + + return clients, invisibleClients; +end + +function GlowingOrbSpawnEvent(event) + eq.set_proximity(-820, -660, 435, 700, 110, 131); + + ringActive = false; + orb = event.self; + + if ( RING_DEBUG_MODE ) then eq.zone_emote(7,": Orb Spawn Event"); end +end + +function GlowingOrbTimerEvent(event) + + if ( not ringActive ) then + eq.stop_timer("wave"); + eq.stop_timer("proximity"); + eq.stop_timer("end"); + return; + end + + if ( event.timer == "wave" ) then + wave = wave + 1; + if ( RING_DEBUG_MODE ) then eq.zone_emote(7,": Beginning Wave "..wave); end + RING_WAVES[wave].waveFunc(splitters); + + if ( RING_DEBUG_MODE ) then + eq.set_timer("wave", RING_WAVES[wave].waveTime / 10); + else + eq.set_timer("wave", RING_WAVES[wave].waveTime); + end + + elseif ( event.timer == "proximity" ) then + + local clients, invisClients = CountClientsInRing(); + + if ( clients == 0 ) then + + if ( clientsInRing > 0 ) then + if ( RING_DEBUG_MODE ) then + eq.set_timer("end", RING_END_TIMER / 5); + else + eq.set_timer("end", RING_END_TIMER); + end + end + if ( RING_DEBUG_MODE ) then eq.zone_emote(7,": No clients in ring"); end + else + eq.stop_timer("end"); + + if ( clients == invisClients and wave > 1 ) then + event.self:CastSpell(1490, event.self:GetID()); -- Wave of Heat. What Sony used is unknown. This fits the best from + -- what I can find in the spell data + invisClientTime = invisClientTime + RING_CLIENT_CHECK_TIMER; + + if ( RING_DEBUG_MODE ) then eq.zone_emote(7,": No clients visible"); end + + if ( invisClientTime > RING_END_TIMER ) then + EndRingEvent(); -- shutdown event if client(s) is/are hidden for too long + -- there are places where Orb AoEs can't hit + end + else + invisClientTime = 0; + end + end + clientsInRing = clients; + + elseif ( event.timer == "end" ) then + + if ( CountClientsInRing() == 0 ) then + EndRingEvent(); + else + eq.stop_timer("end"); + eq.set_timer("proximity", RING_CLIENT_CHECK_TIMER); + if ( RING_DEBUG_MODE ) then eq.zone_emote(7,": Clients in ring; 3 minute timer ended"); end + end + end +end + +function VortexOfManaSpawnEvent(event) + + if ( wave == 2 ) then + event.self:CastSpell(2090, event.self:GetID()); -- Greater Mana Surge + + elseif ( wave == 5 ) then + event.self:CastSpell(2087, event.self:GetID()); -- Greater Infusion + + else + event.self:CastSpell(2093, event.self:GetID()); -- Greater Rejuvenation + end + + eq.depop(event.self:GetNPCTypeID()); +end + +function BossDeathEvent(event) + eq.spawn2(124317, 0, 0, -740, 543, 130, 127); -- a vortex of mana +end + +function SlayEvent(event) + + if ( wave == 7 or wave == 12 or wave == 15 or wave == 18 ) then + + if ( event.self:GetID() == 0 or event.self:GetID() == event.other:GetID()) then + return; + end + eq.spawn2(124310, 0, 0, event.other:GetX(), event.other:GetY(), event.other:GetZ() + 5, 1); -- a_carrion_drake + end +end + +function SplitDrakeDeathEvent(event) + + local npcType, t, grid; + local depth = 1; + + for _, v in ipairs(splitters) do + if ( v.parent == event.self:GetID() ) then + t = v; + break; + end + end + + if ( not t ) then + for j, v in ipairs(splitters) do + + for i, childTable in ipairs(v.children) do + if ( childTable.spawnId == event.self:GetID() ) then + t = v; + depth = childTable.depth; + if ( depth > 3 ) then + return + end + break; + end + end + end + end + + if ( not t ) then + return; + end + + for i = 1, t.splits do + + grid = 0; + + if ( #t.children < t.limit ) then + + if ( t.types == 1 ) then + npcType = eq.ChooseRandom(124295, 124290, 124299, 124292, 124293); -- warden 340 dmg + else + npcType = eq.ChooseRandom(124294, 124291, 124289, 124296); -- warden 400 dmg + end + + if ( t.move ) then + grid = 42; + end + + table.insert(t.children, { + spawnId = eq.spawn2(npcType, grid, 0, t.x or event.self:GetX(), t.y or event.self:GetY(), t.z or event.self:GetZ() + 1, math.random(255)):GetID(), + depth = depth + 1, + } + ); + end + + if ( depth > 2 ) then + return + end + end +end + +function VulakDeathEvent(event) + victory = true; + EndRingEvent(); +end + +function event_encounter_load(e) + -- #A_Glowing_Orb + eq.register_npc_event("VulakRing", Event.spawn, 124125, GlowingOrbSpawnEvent); + eq.register_npc_event("VulakRing", Event.enter, 124125, GlowingOrbEnterEvent); + eq.register_npc_event("VulakRing", Event.timer, 124125, GlowingOrbTimerEvent); + + -- ensure GlowingOrbSpawnEvent() executes + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(124125) ) then + eq.depop_with_timer(124125); + end + + eq.register_npc_event("VulakRing", Event.spawn, 124317, VortexOfManaSpawnEvent); -- a vortex of mana + + eq.register_npc_event("VulakRing", Event.death, 124312, BossDeathEvent); -- Zruk_the_Lifestealer + eq.register_npc_event("VulakRing", Event.death, 124313, BossDeathEvent); -- Rarthek_the_Swiftclaw + eq.register_npc_event("VulakRing", Event.death, 124314, BossDeathEvent); -- Vethrol_the_Skycaller + eq.register_npc_event("VulakRing", Event.death, 124315, BossDeathEvent); -- The_Herald_of_Vulak`Aerr + + eq.register_npc_event("VulakRing", Event.death, 124295, SplitDrakeDeathEvent); -- an_onyx_warden 340 dmg + eq.register_npc_event("VulakRing", Event.death, 124290, SplitDrakeDeathEvent); -- a_jade_warden 340 dmg + eq.register_npc_event("VulakRing", Event.death, 124299, SplitDrakeDeathEvent); -- a_crimson_warden 340 dmg + eq.register_npc_event("VulakRing", Event.death, 124292, SplitDrakeDeathEvent); -- a_cerulean_warden 340 dmg war + eq.register_npc_event("VulakRing", Event.death, 124293, SplitDrakeDeathEvent); -- a_cerulean_warden 340 dmg cleric + + eq.register_npc_event("VulakRing", Event.death, 124294, SplitDrakeDeathEvent); -- an_onyx_warden 400dmg + eq.register_npc_event("VulakRing", Event.death, 124291, SplitDrakeDeathEvent); -- a_cerulean_warden 400dmg war + eq.register_npc_event("VulakRing", Event.death, 124289, SplitDrakeDeathEvent); -- a_jade_warden 400 dmg + eq.register_npc_event("VulakRing", Event.death, 124296, SplitDrakeDeathEvent); -- a_molten_warden 400 dmg + + eq.register_npc_event("VulakRing", Event.death, 124128, VulakDeathEvent); -- #Vulak`Aerr + + for _, id in ipairs(RING_NPCS) do + eq.register_npc_event("VulakRing", Event.slay, id, SlayEvent); + end +end diff --git a/templeveeshan/script_init.lua b/templeveeshan/script_init.lua new file mode 100644 index 0000000..dc7437d --- /dev/null +++ b/templeveeshan/script_init.lua @@ -0,0 +1 @@ +eq.load_encounter("VulakRing"); diff --git a/tenebrous/#Aellana_Barleou.lua b/tenebrous/#Aellana_Barleou.lua new file mode 100644 index 0000000..b20ba96 --- /dev/null +++ b/tenebrous/#Aellana_Barleou.lua @@ -0,0 +1,14 @@ +function event_spawn(e) + eq.set_timer("sit",1000); +end + +function event_timer(e) + e.self:SetAppearance(1); + eq.stop_timer("sit"); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("The Coterie of the Eternal Night is holding us captive! We can not leave until all the vampyres that reside in this village have been destroyed! If any of them are missing I assure you they will return! My brother Johanius is an experienced vampyre slayer and will coming for us soon!"); + end +end diff --git a/tenebrous/#Heratius_Grolden.lua b/tenebrous/#Heratius_Grolden.lua new file mode 100644 index 0000000..a803452 --- /dev/null +++ b/tenebrous/#Heratius_Grolden.lua @@ -0,0 +1,23 @@ +function event_spawn(e) + eq.set_timer("depop",3600000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_death_complete(e) + eq.unique_spawn(172014,0,0,-1425,576,317,64); -- spawn Valdanov Zevfeer +end \ No newline at end of file diff --git a/tenebrous/#Hoober.lua b/tenebrous/#Hoober.lua new file mode 100644 index 0000000..563882e --- /dev/null +++ b/tenebrous/#Hoober.lua @@ -0,0 +1,41 @@ +local elixer = 0; + +function event_spawn(e) + eq.set_timer("feign",1000); + eq.set_timer("depop",300000); +end + +function event_timer(e) + if(e.timer == "feign") then + e.self:SetAppearance(3); + eq.stop_timer("feign"); + elseif(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5994}, 0)) then + e.self:Emote("coughs a bit as you feed him the elixir. With a bit o a start he comes around to full consciousness with a calm in his eyes. 'Do I know you?' he asks."); + elixer = 1; + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_say(e) + if(elixer == 1 and e.message:findi("happened to behari")) then + e.self:Emote("sobs into his hands, 'horrible tings... such horrible things... I remember this man named Behari, take this, it belonged to him before... before I... 'suddenly, Hoober begins to shake uncontrollably. He starts to look at you, something between fear and dementia behind his eyes, 'Go! GO NOW! It's starting again, I shouldn't be around decent people! LEAVE ME ALONE! Stop treating me like a fool, I will leave the money in a sack under the seventy-third pillar from the giant froglok just as I agreed with your master NOW GET AWAY FROM ME!' His shouts echo throughout the mountains as he tears off at a full sprint."); + e.other:QuestReward(e.self,0,0,0,0,5996,500); + elixer = 0; + eq.depop(); + end +end + + +function event_death_complete(e) + elixer = 0; + eq.spawn2(172012, 0, 0, e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end \ No newline at end of file diff --git a/tenebrous/#Johanius_Barleou.lua b/tenebrous/#Johanius_Barleou.lua new file mode 100644 index 0000000..77a49d8 --- /dev/null +++ b/tenebrous/#Johanius_Barleou.lua @@ -0,0 +1,14 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFaction(e.self) < 6) then + e.self:Say("Greetings traveler! You seem like a brave individual for having dared the Tenebrous Mountains without a patrol of Validus Custodus to defend you! I am need of some assistance in an [urgent matter]!"); + else + e.self:Say("You are a brave individual but unfortunately I cannot trust that you will use what I have to offer to its fullest potential against the foes of Katta Castellum. Perhaps when you have established a stronger reputation as a vampyre slayer I will aid you further."); + end + elseif(e.other:GetFaction(e.self) < 6 and e.message:findi("urgent matter")) then + e.self:Say("My sister and my beloved Lyrra have been captured by the vile blood suckers are being held in the largest of their dark settlements. I can not face that number of blood suckers alone. Are you prepared to slay the wicked undead?"); + elseif(e.other:GetFaction(e.self) < 6 and e.self:GetGrid() == 0 and e.message:findi("prepared to slay")) then + e.self:Say("Excellent, I commend you in advance for your courage. Let us make haste lest something awful happen to my loved ones!"); + eq.start(6); + end +end diff --git a/tenebrous/#Johanius_Barleou_the_Slayer.lua b/tenebrous/#Johanius_Barleou_the_Slayer.lua new file mode 100644 index 0000000..7767d20 --- /dev/null +++ b/tenebrous/#Johanius_Barleou_the_Slayer.lua @@ -0,0 +1,25 @@ +function event_spawn(e) + eq.set_timer("depop",600000); +end + +function event_timer(e) + eq.depop(); +end + +function event_say(e) + if(e.other:GetFaction(e.self) < 6 and e.message:findi("vampyre slayer")) then + e.self:Emote("hands " .. e.other:GetCleanName() .. " his bloodied stake and rifles through his backpack. 'Here, hand me back my stake and you can have this brand new one that has been enchanted by the Praecantors of the Magus Conlegium.'"); + e.other:SummonCursorItem(2690); -- Blood Crusted Stake + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 2690}, 0)) then + e.self:Say("On behalf of the citizens of Katta Castellum I extend our gratitude for your assistance in our war with the Coterie of the Eternal Night!"); + e.other:QuestReward(e.self,0,0,0,0,2689,5000); -- Johanius Stake of Slaying + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/tenebrous/#Kerzar_Clawtore.lua b/tenebrous/#Kerzar_Clawtore.lua new file mode 100644 index 0000000..55dd597 --- /dev/null +++ b/tenebrous/#Kerzar_Clawtore.lua @@ -0,0 +1,24 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_say(e) + if(e.message:findi("valdanov")) then + e.self:Say("I have not seen Valdanov Zevfeer in many years. He came to me once when I was still newly reborn wanting to extract a vial of my blood. When I refused he attacked me and extracted it against my will. I was still new and unfamiliar with my vampyric powers, Valdanov's [abilities] were far more developed than my own."); + elseif(e.message:findi("abilities")) then + e.self:Say("His vampyric abilities of course. Valdanov had either been reborn in undeath far before myself or had a powerful mentor and the time and facilities in which to train. I did my best to resist his attack but I was still subdued by his superior skills and strength. He dropped this key in the struggle. I have no use for it, consider it yours. I must be going before I'm seen by the others. Oh no! It's too late! We've been spotted! May you continue your investigations in the afterlife!"); + e.self:Emote(" rapidly transforms into swirling mist indistinguishable from the wind swept mountain fog as other forms begin to solidify from the fog nearby."); + eq.spawn2(172185,0,0,e.self:GetX()-5,e.self:GetY()-5,e.self:GetZ(),e.self:GetHeading()); -- a_coterie_general + eq.spawn2(172185,0,0,e.self:GetX()-5,e.self:GetY()+5,e.self:GetZ(),e.self:GetHeading()); -- a_coterie_general + eq.spawn2(172185,0,0,e.self:GetX()+5,e.self:GetY()+5,e.self:GetZ(),e.self:GetHeading()); -- a_coterie_general + eq.spawn2(172185,0,0,e.self:GetX()+5,e.self:GetY()-5,e.self:GetZ(),e.self:GetHeading()); -- a_coterie_general + e.other:QuestReward(e.self,0,0,0,0,31758); -- Old Bone Key + eq.depop(); + end +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end diff --git a/tenebrous/#Lyrra_Rutledge.lua b/tenebrous/#Lyrra_Rutledge.lua new file mode 100644 index 0000000..824b9c9 --- /dev/null +++ b/tenebrous/#Lyrra_Rutledge.lua @@ -0,0 +1,8 @@ +function event_spawn(e) + eq.set_timer("sit",1000); +end + +function event_timer(e) + e.self:SetAppearance(1); + eq.stop_timer("sit"); +end diff --git a/tenebrous/#Valdanov_Zevfeer.lua b/tenebrous/#Valdanov_Zevfeer.lua new file mode 100644 index 0000000..47776a4 --- /dev/null +++ b/tenebrous/#Valdanov_Zevfeer.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",1800000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end diff --git a/tenebrous/#a_coterie_general.lua b/tenebrous/#a_coterie_general.lua new file mode 100644 index 0000000..da04bb3 --- /dev/null +++ b/tenebrous/#a_coterie_general.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",300000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end \ No newline at end of file diff --git a/tenebrous/172186.lua b/tenebrous/172186.lua new file mode 100644 index 0000000..7a818e0 --- /dev/null +++ b/tenebrous/172186.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + eq.set_timer("depop",1800000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.spawn2(172183,2,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop(); + end +end \ No newline at end of file diff --git a/tenebrous/Courier_Balious.lua b/tenebrous/Courier_Balious.lua new file mode 100644 index 0000000..7988cf8 --- /dev/null +++ b/tenebrous/Courier_Balious.lua @@ -0,0 +1,11 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 3872}, 0)) then -- note from kellari + e.self:Say("Of all of the horrid coincidences! Colian just walked by me a few moments ago! She was heading to the Northeast. Please run and catch her. Do not let her escape! I will go and notify the authorities. Take her back to Governor Unja, if you capture her before help arrives. Good luck!"); + eq.spawn2(172000,1,0,820,743,-61,201); + e.other:QuestReward(e.self,0,0,0,0,0,1000); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/tenebrous/Daksins.lua b/tenebrous/Daksins.lua new file mode 100644 index 0000000..9c5a97a --- /dev/null +++ b/tenebrous/Daksins.lua @@ -0,0 +1,29 @@ +-- Daksins' Vampyre Antidote + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello traveller, what brings you to these cursed mountains? If I were you I would turn back now, all that really lies ahead of you is certain death. The vampires that inhabitant these mountains are some of the fiercest and most skilled."); + elseif(e.message:findi("return the extract")) then -- can retrieve the item without any advances and at dubious + e.self:Say("I suppose I could trust you to return it to Zimloro. You have earned my trust by going and slaying this beast for me. This will help me greatly as well as I must rest in Katta for a few days to recover from the wounds I received at the hands of these monsters. Please return this bag that contains the extract along with other components that Zimloro asked me to retrieve to him. Thank you, " .. e.other:GetCleanName() .. ", I am forever in your debt."); + e.other:SummonCursorItem(4765); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4764}, 0)) then + e.self:Say("I see you were sent by my friends from back home. I understand that they are very worried about me but they must understand that I am doing this to help my sister and anyone else infected by this horrible beasts. If only I could receive some help in collecting a vampyre blood extract sample I could return it home along with the other components that Zimloro decribes in this letter."); + -- confirmed faction from live. + e.other:Faction(e.self,1512,25); -- house of stout + e.other:Faction(e.self,1508,2); -- trader of the haven + e.other:QuestReward(e.self,0,0,0,0,0,5000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 2693}, 0)) then + e.self:Say("The blood of one of the cursed! You have done it, " .. e.other:GetCleanName() .. ". You must be a very skilled fighter to have bested one of these vile creatures. All that needs to be done now is to return this extract along with the other antidote supplies that I have prepared to Zimloro. Will you return this extract?"); + -- confirmed faction from live. + e.other:Faction(e.self,1512,25); -- house of stout + e.other:Faction(e.self,1508,2); -- trader of the haven + e.other:QuestReward(e.self,0,0,0,0,0,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/tenebrous/Felodius_Sworddancer.lua b/tenebrous/Felodius_Sworddancer.lua new file mode 100644 index 0000000..a3de43a --- /dev/null +++ b/tenebrous/Felodius_Sworddancer.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello. " .. e.other:GetCleanName() .. ". I am Felodius Sworddancer. A travelling historian and storyteller. Would you care to hear a [story]?"); + elseif(e.message:findi("story")) then + e.self:Say("I could treat you to a story about an ogre legend! Or perhaps you would like to hear a story about the [gnome] who cried kobold?"); + elseif(e.message:findi("gnome")) then + e.self:Say("Once upon a time. there was a young gnome boy. His job was to repair the clockworks outside Ak'Anon and tell the guards if there was any trouble from kobolds. Well. one day. the boy decided to play a prank on the guards. He decided it would be fun to watch the guards. in full plate armor. run from the gates of Ak'Anon to the valley that led to the Faydark [forest]."); + elseif(e.message:findi("forest")) then + e.self:Say("The boy cried out as loud as he could. running to the guard. Kobolds! Kobolds! They are dragging off a girl into the forest! The guard sprinted off in the direction of the forest. looking to destroy the kobold menace. The boy jogged after him. laughing the whole time. When the guard arrived there were. of course. no kobolds. He trudged back to Ak'Anon waiting for some [excitement]."); + elseif(e.message:findi("excitement")) then + e.self:Say("The next day. the boy claimed that kobolds were attacking one of the local farms. The guards all ran to save the farm and of course. no kobolds. and no sign of a battle. Angered by another prank the guards cursed the boy and went back to their stations at the [entrance] to Ak'Anon."); + elseif(e.message:findi("entrance")) then + e.self:Say("The following day. the boy was fixing a small clockwork just out of view of the guards. A vicious kobold sprang at him and ripped into him with its big claws. The boy screamed and cried! Kobolds! Kobolds! But the guards did not come. they had grown tired of the boy's pranks the kobolds had a fine meal that night. The end."); + end +end diff --git a/tenebrous/Hoober.lua b/tenebrous/Hoober.lua new file mode 100644 index 0000000..613f4e8 --- /dev/null +++ b/tenebrous/Hoober.lua @@ -0,0 +1,58 @@ +function event_spawn(e) + eq.set_timer("chat",math.random(96000,480000)); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("snaps his eyes in your direction. He gestures wildly with his hands and face, his voice crackling with insanity as he speaks, 'Are you talking to me? I don't see anyone else around so you must be talking to me. Did you come to discuss matters of high importance like the struggle between the Violet Tri-tubes and their oppression under the iron fist of the Barrel Trees? Or perhaps you wish to speak directly with the animals for I can show you how. If you came in search of the power of flight, you would not be the first.'"); + elseif(e.message:findi("Behari")) then + e.self:Say("He was a man. He was a good man. Born on a rock in a lake in world from a reality far from this coil you and I call our homes. He was the hero of his existence, fighting for those that sought to destroy you as part of the endless struggle to remove the giant rat from power. Did you know that with the proper care and education, elemental pets can make wonderful conversationalists?"); + elseif(e.message:findi("love potion")) then + e.self:Emote("sort of calms as he speaks very clearly, very deliberately, 'Do not trifle with me on this. A luclin clover, a drop of moonlight and the essence of sonnet- bring me these things and you will shar eternity with whomever you treasure most.'"); + elseif(e.message:findi("luclin clover")) then + e.self:Say("These are abundant throughout the thicket, now go."); + elseif(e.message:findi("drop of moonlight")) then + e.self:Say("Any skilled astrologer can get you this thing. Bring it to me now."); + elseif(e.message:findi("essence of sonnet")) then + e.self:Say("A difficult thing to acquire, find a bard and get it done, waste no more of time, bring me the ingredients!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5994}, 0)) then + e.self:Emote("struggles as you try to force-feed him the elixir, making you think twice about the wisdom of force-feeding something to a madman. 'I DON'T WANT TO DRINK MY JUICE, MOTHER! NOW GET YOUR HANDS OFF OF ME!' he shouts."); + eq.attack(e.other:GetName()); + e.other:QuestReward(e.self,0,0,0,0,5994); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + Chatone = "says 'Well my mother lived underground with the rest of them, don't you know. Where would you expect a royal envoy to live, in the middle of a raging storm? Of course she would, but enough about me, tell me about your mother...' He looks at his elemental pet for a moment as though awaiting a reply, and responds to the absolute silence, 'really, is it as drafty up there as one would assume?'" + Chattwo = "appears to be playing a game with invisible pieces. He stares intently at the air in front of him, deep in strategic planning before reaching out, grabbing an unseen token and moving it silently to another space in midair. A moment later, his head jerks up and he stares directly at his pet, 'what? I did not and I resent your implication that I did. Like I would need to! If this is the way you are going to be then I don't even want to play!' he states and spins around indignantly. The elemental pet has no apparent response." + Chatthree = "blurts out 'you can keep the whole lot of 'em I tell you!' He stares at his elemental companion a moment, who does not seem to respond in any way, to which Hoober retorts, 'Well that may be what you think, but what do you know? You aren't even a day old for pity's sake! And who have you ever been in love with anyway?' After giving his silent, summoned companion ample time to respond, Hoober continues, 'Sure she does and how come you've never mentioned her before now? Cause you're full of crackers I say. You really get under my skin with that high and mighty attitude you know?'" + Chatfour = "is fuming angry. It takes you a moment to be sure, but it looks as if he is upset with his elemental pet. 'Well you broke it, that's why, you idiot! I always tell you that you play to rough, but no you don't want to hear it, no,' he hollers as he waves a locket in the face of the summoned creature. The chain on the locket is broken and the elemental has no response whatsoever to the continued berating, 'I'll need you to fetch me a pitcher of water and a bunch of vegetables for a salad otherwise we may never hear from her again and then all hope for peace among the tribes will be lost. Now go.' Hoober looks satisfied as his pet stands at his side, resolute and unmoving." + Chatfive = "looks utterly exasperated and yells at his elemental pet, 'No, no, no! First the rabbit goes around the bend and then the child can enter so that the flowers will bloom giving new life to the faceless jar of wisdom. If I have told you that once I have told you that one thousand times, please do not make me repeat myself.' He pauses a moment, collecting himself, before addressing his animated companion once more, 'now, we were discussing the affairs of state?'" + Chatsex = "assumes a very serious and conspiratorial air as he whispers so that he thinks only his elemental pet may hear, 'The wombats will come, for they have a new leader, and he brings them frightening power, he does. It will he be he who is foolish indeed that does not fear the wombat.' The summoned creature sits in silence, no response forthcoming." + if(e.timer == "chat") then + e.self:Emote(eq.ChooseRandom(Chatone,Chattwo,Chatthree,Chatfour,Chatfive,Chatsex)); + eq.set_timer("chat",math.random(96000,480000)); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("chat")) then + eq.pause_timer("chat"); + end + else + eq.resume_timer("chat"); + end +end + +function event_death_complete(e) + eq.depop_with_timer(172010); + eq.unique_spawn(172012, 0, 0, e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end diff --git a/tenebrous/Kerzar_Clawtore.lua b/tenebrous/Kerzar_Clawtore.lua new file mode 100644 index 0000000..1a0a674 --- /dev/null +++ b/tenebrous/Kerzar_Clawtore.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("glares with eyes that seem to pierce through you like fiery daggers. 'Run while you can weakling! My appetite grows stronger with the presence of your mortal scent!'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31754}, 0)) then + e.self:Say("You've been sent by the Validus Custodus to question me!! You mortals are more foolish than I had presumed! The only information I have for you is the fact that you are about to face your death!!"); + e.other:QuestReward(e.self,0,0,0,0,31757); -- Third Badge of Service + eq.attack(e.other:GetName()); + e.self:Emote("roars flashing glistening fangs that are sharper and longer than the average Vah Shirs!"); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_death_complete(e) + eq.unique_spawn(172187,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end \ No newline at end of file diff --git a/tenebrous/Legionnaire_Doctalious.lua b/tenebrous/Legionnaire_Doctalious.lua new file mode 100644 index 0000000..516a695 --- /dev/null +++ b/tenebrous/Legionnaire_Doctalious.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Katta Castellum, brave traveler! It is not safe to dally for long in these mountains, as there are many unsavory creatures living amongst these shadowy peaks... some of which may find the blood in your veins a savory treat!"); + end +end diff --git a/tenebrous/Legionnaire_Falion.lua b/tenebrous/Legionnaire_Falion.lua new file mode 100644 index 0000000..00de7ab --- /dev/null +++ b/tenebrous/Legionnaire_Falion.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings traveler! You look like you're still breathing and have your blood running through your veins so I suppose you may seek shelter behind the mighty walls of Katta Castellum."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31756}, 0)) then + e.self:Say("A Vah Shir vampyre!! Isn't that disturbing! How are you supposed to spot its pale skin under all that fur! Come to think of it I've heard that a strange Vah Shir has occasionally been spotted heading towards the villages of the Coterie of the Eternal Night here in the Tenebrous Mountains. This may be the Vah Shir you are seeking. I will be sure to question any arriving travelers if they have spotted him."); + e.other:Faction(e.self,1503,4); + e.other:Faction(e.self,1502,1); + e.other:Faction(e.self,1504,1); + e.other:Faction(e.self,1505,-1); + e.other:Faction(e.self,1506,-1); + e.other:Faction(e.self,1483,-1); + e.other:Faction(e.self,1484,-2); + e.other:Faction(e.self,1485,-1); + e.other:Faction(e.self,1541,-1); + eq.unique_spawn(172186,0,0,-1414,-1265,-38,0); + e.other:QuestReward(e.self,0,0,0,0,0,100000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/tenebrous/Legionnaire_Kovenic.lua b/tenebrous/Legionnaire_Kovenic.lua new file mode 100644 index 0000000..f768289 --- /dev/null +++ b/tenebrous/Legionnaire_Kovenic.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You're looking a little battle worn friend. I assume you aren't in the merchant business. The Validus Custodus could always use a few more good [vampyre hunters]."); + elseif(e.message:findi("vampyre hunter")) then + e.self:Say("Speak with Kroldar Strongarm the Governor of War about slaying vampyres. His office is located in the Iustus Castellanus."); + end +end diff --git a/tenebrous/Legionnaire_Spaldres.lua b/tenebrous/Legionnaire_Spaldres.lua new file mode 100644 index 0000000..2113a44 --- /dev/null +++ b/tenebrous/Legionnaire_Spaldres.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks you over observantly. 'Welcome to Katta Castellum. Don't be causing any trouble whilst visiting our grand city or you may end up on the receiving end of a Validus Custodus blade."); + end +end diff --git a/tenebrous/Renaldok_Masric.lua b/tenebrous/Renaldok_Masric.lua new file mode 100644 index 0000000..28cb377 --- /dev/null +++ b/tenebrous/Renaldok_Masric.lua @@ -0,0 +1,36 @@ +-- Renaldok_Masric.pl +-- Coterie Mask of the Dead + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("Greetings mortal. The aura of death that surrounds you is the only reason you are not already a feast for my minions. Have you come to me as a sacrifice or are you offering your [services] to the Coterie of the Eternal Night?"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("services")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("If you are powerful enough to be of use to me you will journey to the Twilight regions on the south side of Luclin and fill this wineskin with the blood of Akheva. Failure is final death, either at the hands of the Akheva or the hands of the Coterie."); + e.other:QuestReward(e.self,0,0,0,0,17096); -- Empty Blood Skin + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("sacrifice")) then + e.self:Say("Your choice has been made. We shall feast on your death scented blood."); + eq.attack(e.other:GetName()); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10799}, 0)) then -- Skin of Akheva Blood + e.self:Say("Well done, for a mortal you have served us well"); + e.other:Faction(e.self,1506,20); --Faction: Coterie of Eternal Night + e.other:Faction(e.self,1503,-2); --Faction: Validus Custodus + e.other:Faction(e.self,1505,-2); --Faction: Nathyn Illuminous + e.other:Faction(e.self,1507,2); --Faction: Valadov Zevfeer + e.other:QuestReward(e.self,0,0,0,0,7778,5000); -- Coterie Mask of the Dead + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/tenebrous/Trilexior_Aeridia.lua b/tenebrous/Trilexior_Aeridia.lua new file mode 100644 index 0000000..d85e5e8 --- /dev/null +++ b/tenebrous/Trilexior_Aeridia.lua @@ -0,0 +1,7 @@ +function event_death_complete(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(172013) == false and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172014) == false) then + if(math.random(100) < 5) then + eq.unique_spawn(172013,0,0,-1391,632,317,128); -- spawn Heratius Grolden + end + end +end diff --git a/tenebrous/Tymoz.lua b/tenebrous/Tymoz.lua new file mode 100644 index 0000000..5a78cff --- /dev/null +++ b/tenebrous/Tymoz.lua @@ -0,0 +1,39 @@ +-- Custodus Helms + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("So " .. e.other:Race() .. ", you dare to stand before the mighty Tymoz? I am the Governor of this village of the Coterie of the Eternal Night. Do you wish to assist the Coterie, or will you better serve us as sustenance for our eternal lives?"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("assist the coterie")) then + if(e.other:GetFactionValue(e.self) >= -500) then + e.self:Say("You have made an intelligent decision my friend. Our primary foe is the meddling Validus Custodus, the militia of Katta Castellum. I will reward you for every two damaged custodus legionnaire helms or two damaged custodus centurion helms that you present to me as proof that you have slain members of our enemies ranks."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "I require two damaged custodus helms as proof of your deeds."; + + if(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 31748,item2 = 31748},1,text)) then + e.self:Say("Excellent! Two less of those self righteous Validus Custodus goons to worry about!"); + e.other:Faction(e.self,1506,1); + e.other:Faction(e.self,1503,-1); + e.other:Faction(e.self,1505,-1); + e.other:Faction(e.self,1507,1); + e.other:QuestReward(e.self,{items = {31750,eq.ChooseRandom(0,31750),eq.ChooseRandom(0,31750),eq.ChooseRandom(0,31750),eq.ChooseRandom(0,31750)},exp = 5000}); + elseif(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 31749,item2 = 31749},1,text)) then + e.self:Say("Excellent! Two less of those self righteous Validus Custodus goons to worry about!"); + e.other:Faction(e.self,1506,1); + e.other:Faction(e.self,1503,-1); + e.other:Faction(e.self,1505,-1); + e.other:Faction(e.self,1507,1); + e.other:QuestReward(e.self,0,0,0,0,31833,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/tenebrous/a_coterie_legionnaire.lua b/tenebrous/a_coterie_legionnaire.lua new file mode 100644 index 0000000..384c962 --- /dev/null +++ b/tenebrous/a_coterie_legionnaire.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ahhh, the sweet aroma of " .. e.other:Race() .. " blood! Join us mortal, or we shall drain your body of all traces of life and leave your carcass to the wolves."); + end +end diff --git a/tenebrous/a_darkwing_bat.lua b/tenebrous/a_darkwing_bat.lua new file mode 100644 index 0000000..ac17185 --- /dev/null +++ b/tenebrous/a_darkwing_bat.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("emits a barely audible screech and flutters around " .. e.other:GetCleanName() .. "."); + end +end diff --git a/tenebrous/a_grimling_runner.lua b/tenebrous/a_grimling_runner.lua new file mode 100644 index 0000000..b9e515d --- /dev/null +++ b/tenebrous/a_grimling_runner.lua @@ -0,0 +1,25 @@ +function event_spawn(e) + eq.set_timer("depop",1620000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop_with_timer(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 10) then + e.self:Say("I'm here for the next ore shipment comrades!") + end +end diff --git a/tenebrous/encounters/johanius.lua b/tenebrous/encounters/johanius.lua new file mode 100644 index 0000000..f800dbc --- /dev/null +++ b/tenebrous/encounters/johanius.lua @@ -0,0 +1,135 @@ +local coterie_event = 0; + +function JohaniusWaypoint(e) + if(e.wp == 15) then + eq.unique_spawn(172006,0,0,-377,1268,-28,0); + eq.unique_spawn(172005,0,0,-366,1254,-28,0); + eq.signal(172136,1); + coterie_event = 1; + end +end + +function JohaniusSignal(e) + if(e.signal == 1) then + eq.set_timer("kill",660000); + elseif(e.signal == 2) then + coterie_event = 0; + eq.stop_timer("kill"); + end +end + +function JohaniusTimer(e) + if(e.timer == "kill") then + eq.depop_with_timer(172032); + eq.depop(172005); + eq.depop(172006); + coterie_event = 0; + eq.stop_timer("kill"); + end +end + +function Johanius2Waypoint(e) + Lyrra = eq.get_entity_list():GetMobByNpcTypeID(172005); + Aellana = eq.get_entity_list():GetMobByNpcTypeID(172006); + if(e.wp == 4) then + e.self:Say("We had best save our sentiments for later and make haste back to the safety of Katta Castellum!"); + elseif(e.wp == 5) then + if(Aellana.valid and Lyrra.valid) then + Aellana:Say("Dearest brother, how releaved I am to see you again!"); + Aellana:CastToNPC():AssignWaypoints(8); + Lyrra:Say("Johanius my love! You and your companions have rescued us from those horrible creatures!"); + Lyrra:CastToNPC():AssignWaypoints(8); + else + eq.depop(172005); + eq.depop(172006); + eq.depop(172007); + end + elseif(e.wp == 25) then + e.self:Say("Hurry inside the gates ladies I will be in shortly after rewarding the brave individuals that assisted me in your rescue."); + elseif(e.wp == 26) then + eq.unique_spawn(172008,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop(); + end +end + +function LyrraWaypoint(e) + if(e.wp == 21) then + e.self:Say("We will see you at home Johanius, please hurry."); + end +end + +function AellanaWaypoint(e) + if(e.wp == 21) then + e.self:Say("We will see you at home Johanius, please hurry."); + end +end + +function CoterieDeath(e) + local Johanius = eq.get_entity_list():GetMobByNpcTypeID(172032); + if(coterie_event == 1 and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172003) == false + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172041) == false + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172020) == false + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172044) == false + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172032) + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172005) + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172006)) then + eq.unique_spawn(172007,7,0,Johanius:CastToNPC():GetX(),Johanius:CastToNPC():GetY(),Johanius:CastToNPC():GetZ(),Johanius:CastToNPC():GetHeading()); + eq.depop_with_timer(172032); + eq.signal(172136,2); + end +end + +function Coterie1Death(e) + local Johanius = eq.get_entity_list():GetMobByNpcTypeID(172032); + if(coterie_event == 1 and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172003) == false + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172020) == false + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172044) == false + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172032) + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172005) + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172006)) then + eq.unique_spawn(172007,7,0,Johanius:CastToNPC():GetX(),Johanius:CastToNPC():GetY(),Johanius:CastToNPC():GetZ(),Johanius:CastToNPC():GetHeading()); + eq.depop_with_timer(172032); + eq.signal(172136,2); + end +end + +function Coterie2Death(e) + local Johanius = eq.get_entity_list():GetMobByNpcTypeID(172032); + if(coterie_event == 1 and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172003) == false + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172041) == false + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172044) == false + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172032) + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172005) + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172006)) then + eq.unique_spawn(172007,7,0,Johanius:CastToNPC():GetX(),Johanius:CastToNPC():GetY(),Johanius:CastToNPC():GetZ(),Johanius:CastToNPC():GetHeading()); + eq.depop_with_timer(172032); + eq.signal(172136,2); + end +end + +function Coterie3Death(e) + local Johanius = eq.get_entity_list():GetMobByNpcTypeID(172032); + if(coterie_event == 1 and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172003) == false + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172041) == false + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172020) == false + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172032) + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172005) + and eq.get_entity_list():IsMobSpawnedByNpcTypeID(172006)) then + eq.unique_spawn(172007,7,0,Johanius:CastToNPC():GetX(),Johanius:CastToNPC():GetY(),Johanius:CastToNPC():GetZ(),Johanius:CastToNPC():GetHeading()); + eq.depop_with_timer(172032); + eq.signal(172136,2); + end +end + +function event_encounter_load(e) + eq.register_npc_event("johanius", Event.waypoint_arrive, 172032, JohaniusWaypoint); + eq.register_npc_event("johanius", Event.signal, 172136, JohaniusSignal); + eq.register_npc_event("johanius", Event.timer, 172136, JohaniusTimer); + eq.register_npc_event("johanius", Event.waypoint_arrive, 172007, Johanius2Waypoint); + eq.register_npc_event("johanius", Event.waypoint_arrive, 172005, LyrraWaypoint); + eq.register_npc_event("johanius", Event.waypoint_arrive, 172006, AellanaWaypoint); + eq.register_npc_event("johanius", Event.death_complete, 172003, CoterieDeath); + eq.register_npc_event("johanius", Event.death_complete, 172041, Coterie1Death); + eq.register_npc_event("johanius", Event.death_complete, 172020, Coterie2Death); + eq.register_npc_event("johanius", Event.death_complete, 172044, Coterie3Death); +end diff --git a/tenebrous/script_init.lua b/tenebrous/script_init.lua new file mode 100644 index 0000000..79cd36d --- /dev/null +++ b/tenebrous/script_init.lua @@ -0,0 +1 @@ +eq.load_encounter("johanius"); diff --git a/thedeep/An_Enthralled_Razorfiend.lua b/thedeep/An_Enthralled_Razorfiend.lua new file mode 100644 index 0000000..3b8abc5 --- /dev/null +++ b/thedeep/An_Enthralled_Razorfiend.lua @@ -0,0 +1,24 @@ +rand = 0; + +function event_waypoint_arrive(e) + rand = math.random(1,2); + if(e.wp > 0 and e.self:GetWaypointPause() > 1) then + if(rand == 1) then + e.self:Emote("nibbles on a small mushroom at its feet."); + else + e.self:Emote("peers around the cavern. You get the distinct impression it knows you're here."); + end + end +end + +function event_waypoint_depart(e) + if(e.wp > 0 and e.self:GetWaypointPause() > 1) then + if(rand == 1) then + e.self:Emote("finishes feeding and moves on."); + else + e.self:Emote("gives up on what ever it was looking for and goes back into the caves."); + end + end + rand = 0; +end + diff --git a/thedeep/An_Enthralled_Underbulk.lua b/thedeep/An_Enthralled_Underbulk.lua new file mode 100644 index 0000000..76efbf9 --- /dev/null +++ b/thedeep/An_Enthralled_Underbulk.lua @@ -0,0 +1,12 @@ +function event_waypoint_arrive(e) + if(e.wp > 0 and e.self:GetWaypointPause() > 1) then + e.self:Emote("nibbles on a small mushroom at its feet."); + end +end + +function event_waypoint_depart(e) + if(e.wp > 0 and e.self:GetWaypointPause() > 1) then + e.self:Emote("finishes feeding and moves on."); + end +end + diff --git a/thedeep/Deklean_Korgad.lua b/thedeep/Deklean_Korgad.lua new file mode 100644 index 0000000..91820ff --- /dev/null +++ b/thedeep/Deklean_Korgad.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("eyes you suspiciously. His beard is tangled in completely impossible knots, and you wonder very much if he has ever seen fresh water in his life. He seems to be completely oblivious of the small insects that crawl freely across his tattered clothing. He speaks to you in a low growl. 'Go away! I don't like being bothered! Your making too much noise! The horrors will hear you and then I'll have to [move again]!'"); + elseif(e.message:findi("move again")) then + e.self:Emote("glares at you. 'You're really out to get me killed aren't you? How am I supposed to find [deep spores] with you thrashing about waking up the beasties and scaring all the shriekers!'"); + elseif(e.message:findi("deep spore")) then + e.self:Say("Never heard of deep spores have you? Well if you're going to be spending some time down here you'd best learn quickly. Deepspores are the only thing edible in this cavern. Most of the mushrooms down here will sooner eat you then allow them selves to be eaten! The Deepspores are different though, if you cook them a bit they're the most delicious food in the universe!"); + elseif(e.message:findi("chasm")) then + e.self:Emote("rolls his eyes at you. 'Hmm...I'm not sure, maybe that big gaping hole in the ground down through the second corridor! You haven't even explored the cavern yet have you. I wouldn't wander around too much unless you're feeling lucky. There's nothing the thought horrors like more than a loud obnoxious band of would be heros that come crashing into their home. They especially like playing with the corpses of those that fall through that fake bridge out there.'"); + elseif(e.message:findi("fake bridge")) then + e.self:Say("Yes that bridge out there is fake, I'm sure more than a few of your kind will end up falling straight through it like lemmings. I'll be taking the safe route thank you very much. Just have to be careful about sneaking past all the beasties. Somehow I doubt you'd make it past any of them as careless as you prance around. Few can face the thought horrors and get away with their sanity. I'm one of the lucky ones, yup!"); + elseif(e.message:findi("thought horror")) then + e.self:Emote("laughs uncontrollably. When he finally regains his composure he looks at you and says, 'All right chief, if you can prove to me that you can stand up to horrors then I'll show you the way across the chasm. Bring me 2 thought horror tentacles and that hunk of rock I gave you and we'll see about getting you across that bridge. Oh and by the way, since you're so full of energy, go run to shadowhaven and bring me back some Deep Cavern Bourbon along with those tentacles.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 32400,item2 = 32400,item3 = 32400,item4 = 32400})) then + e.self:Emote("eyes the spores hungrily. He shoves them all in his pockets and looks at you. 'I appreciate that friend, you've proven yourself worth a bit of trust. I hate to take the mushrooms and run, but I have to get across the [chasm] soon. Here take this, thanks for the mushrooms!'"); + e.other:Faction(e.self,1569,2); + e.other:QuestReward(e.self,0,0,0,0,32402,500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/thedeep/an_enthralled_outcast.lua b/thedeep/an_enthralled_outcast.lua new file mode 100644 index 0000000..b87337b --- /dev/null +++ b/thedeep/an_enthralled_outcast.lua @@ -0,0 +1,24 @@ +rand = 0; + +function event_waypoint_arrive(e) + rand = math.random(1,2); + if(e.wp > 0 and e.self:GetWaypointPause() > 1) then + if(rand == 1) then + e.self:Emote("sniffs the air around them. Apparently it smells an intruder."); + else + e.self:Emote("peers around the cavern. You get the distinct impression it knows you're here."); + end + end +end + +function event_waypoint_depart(e) + if(e.wp > 0 and e.self:GetWaypointPause() > 1) then + if(rand == 1) then + e.self:Emote("gives an indication of indifference and goes back to searching for food."); + else + e.self:Emote("gives up on what ever it was looking for and goes back into the caves."); + end + end + rand = 0; +end + diff --git a/thedeep/encounters/BurrowerBeast.lua b/thedeep/encounters/BurrowerBeast.lua new file mode 100644 index 0000000..daa74c5 --- /dev/null +++ b/thedeep/encounters/BurrowerBeast.lua @@ -0,0 +1,131 @@ +local ringActive = false; +local wave = 0; + +function BeastSpawn(e) + eq.set_proximity(e.self:GetX()-100,e.self:GetX()+165,e.self:GetY()-325,e.self:GetY()+225,e.self:GetZ()-10,e.self:GetZ()+50); + ringActive = false; +end + +function BeastEnter(e) + if ( e.other:GetGM()) then + return + end + if ( not ringActive and eq.get_entity_list():IsMobSpawnedByNpcTypeID(164098)) then + eq.zone_emote(0,"The ground shakes momentarily. You sense motion beneath the surface on which you are standing."); + ringActive = true; + eq.set_timer("wave",10000); + eq.set_timer("proximity",2000); + end +end + +function BeastTimer(e) + if ( not ringActive ) then + eq.stop_timer("wave"); + eq.stop_timer("proximity"); + return; + end + if(e.timer == "wave") then + wave = wave + 1; + if(wave == 1) then + eq.unique_spawn(164012,0,0,1561,284,-53,64); + SpawnFirstType() + eq.set_timer("wave",192000); + elseif(wave <= 3) then + SpawnFirstType(); + eq.set_timer("wave",240000); + elseif(wave <= 6) then + SpawnSecondType() + eq.set_timer("wave",240000); + elseif(wave == 7) then + SpawnThirdType(); + eq.set_timer("wave",480000); + elseif(wave == 8) then + eq.spawn2(164011,9,0,1790,20,-77,250); + eq.stop_timer("wave"); + end + elseif(e.timer == "proximity") then + if ( CountClientsInRing() == 0 ) then + eq.set_timer("endring",120000); + eq.stop_timer("wave"); + eq.stop_timer("proximity"); + end + elseif(e.timer == "endring") then + eq.set_timer("resetevent",600000); + eq.stop_timer("endring"); + EndRingEvent(); + elseif(e.timer == "resetevent") then + eq.stop_timer("resetevent"); + RingReset(); + end +end + +function BeastDeath(e) + eq.depop_with_timer(164098); + EndRingEvent(); +end + +function EndRingEvent() + eq.depop(164012); +end + +function RingReset() + wave = 0; + ringActive = false; +end + +function CountClientsInRing() + local clientList = eq.get_entity_list():GetClientList(); + local clients = 0; + + if ( clientList ) then + for client in clientList.entries do + + if ( not client:GetGM() and not client:GetFeigned() + and client:GetY() > 170 and client:GetY() < 350 + and client:GetX() > 1675 and client:GetX() < 1850 + and client:GetZ() > -100 and client:GetZ() < 50 + ) then + + clients = clients + 1; + end + end + end + + return clients; +end + +function SpawnFirstType() + eq.spawn2(164005,9,0,1837,146,-33,240); + eq.spawn2(164005,9,0,1671,165,-21,29); + eq.spawn2(eq.ChooseRandom(164005,164006,164007),9,0,1649,233,-32,48); + eq.spawn2(164005,9,0,1666,392,-17,88); + eq.spawn2(164005,9,0,1747,392,-27,118); + eq.spawn2(eq.ChooseRandom(164005,164006,164007),9,0,1847,403,-36,162); + eq.spawn2(164005,9,0,1870,389,-21,150); + eq.spawn2(164005,9,0,1882,321,-32,192); + eq.spawn2(eq.ChooseRandom(164005,164006,164007),9,0,1903,160,-16,226); + eq.spawn2(164005,9,0,1852,206,-67,222); + eq.spawn2(164005,9,0,1770,294,-59,50); + eq.spawn2(eq.ChooseRandom(164005,164006,164007),9,0,1790,20,-77,250); +end + +function SpawnSecondType() + eq.spawn2(164009,9,0,1837,146,-33,240); + eq.spawn2(164009,9,0,1649,233,-32,48); + eq.spawn2(164009,9,0,1666,392,-17,88); + eq.spawn2(164009,9,0,1747,392,-27,118); + eq.spawn2(164009,9,0,1903,160,-16,226); + eq.spawn2(164009,9,0,1770,294,-59,50); +end + +function SpawnThirdType() + eq.spawn2(164010,9,0,1790,20,-77,250); + eq.spawn2(164010,9,0,1810,20,-77,250); +end + +function event_encounter_load(e) + eq.register_npc_event("BurrowerBeast", Event.spawn, 164116, BeastSpawn); + eq.register_npc_event("BurrowerBeast", Event.enter, 164116, BeastEnter); + eq.register_npc_event("BurrowerBeast", Event.timer, 164116, BeastTimer); + eq.register_npc_event("BurrowerBeast", Event.death, 164011, BeastDeath); +end diff --git a/thedeep/script_init.lua b/thedeep/script_init.lua new file mode 100644 index 0000000..b49f0b9 --- /dev/null +++ b/thedeep/script_init.lua @@ -0,0 +1 @@ +eq.load_encounter("BurrowerBeast"); diff --git a/thegrey/#Boulder.lua b/thegrey/#Boulder.lua new file mode 100644 index 0000000..2ac4a53 --- /dev/null +++ b/thegrey/#Boulder.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",120000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end diff --git a/thegrey/#Stonehand.lua b/thegrey/#Stonehand.lua new file mode 100644 index 0000000..2ac4a53 --- /dev/null +++ b/thegrey/#Stonehand.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",120000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end diff --git a/thegrey/A_foreboding.lua b/thegrey/A_foreboding.lua new file mode 100644 index 0000000..c4f273f --- /dev/null +++ b/thegrey/A_foreboding.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.other:CastToClient():Message(0,"A foreboding tunnel seems to lead deeper into the pyramid."); +end diff --git a/thegrey/A_plain.lua b/thegrey/A_plain.lua new file mode 100644 index 0000000..39664ac --- /dev/null +++ b/thegrey/A_plain.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.other:CastToClient():Message(0,"A plain of grey void extends into the distance."); +end diff --git a/thegrey/An_airless.lua b/thegrey/An_airless.lua new file mode 100644 index 0000000..755d82f --- /dev/null +++ b/thegrey/An_airless.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.other:CastToClient():Message(0,"An airless stretches out in front of you, seemingly devoid of life."); +end diff --git a/thegrey/The_sand.lua b/thegrey/The_sand.lua new file mode 100644 index 0000000..63e60be --- /dev/null +++ b/thegrey/The_sand.lua @@ -0,0 +1,9 @@ +-- scripts to randomly spawn one of these npc : a_Xakra_Shah or a_Xakra_Sei + +function event_combat(e) + if(e.joined) then + e.self:Emote("at your feet explodes into violent motion!"); + eq.spawn2(eq.ChooseRandom(171001,171003),0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end +end diff --git a/thegrey/The_skin.lua b/thegrey/The_skin.lua new file mode 100644 index 0000000..7da942b --- /dev/null +++ b/thegrey/The_skin.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.other:CastToClient():Message(0,"The skin around your eyes tightens in reaction to the vacuum."); +end diff --git a/thegrey/Your_breath.lua b/thegrey/Your_breath.lua new file mode 100644 index 0000000..725e6c4 --- /dev/null +++ b/thegrey/Your_breath.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 30, ex + 30, ey - 30, ey + 30, ez - 30, ez + 30); +end + +function event_enter(e) + e.other:CastToClient():Message(0,"Your breath catches as you step into airless space."); +end diff --git a/thegrey/a_Xakra_Sei.lua b/thegrey/a_Xakra_Sei.lua new file mode 100644 index 0000000..2ac4a53 --- /dev/null +++ b/thegrey/a_Xakra_Sei.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",120000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end diff --git a/thegrey/a_Xakra_Shah.lua b/thegrey/a_Xakra_Shah.lua new file mode 100644 index 0000000..2ac4a53 --- /dev/null +++ b/thegrey/a_Xakra_Shah.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",120000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end diff --git a/thegrey/a_boulder_fiend.lua b/thegrey/a_boulder_fiend.lua new file mode 100644 index 0000000..2ac4a53 --- /dev/null +++ b/thegrey/a_boulder_fiend.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",120000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end diff --git a/thegrey/a_boulderling.lua b/thegrey/a_boulderling.lua new file mode 100644 index 0000000..2ac4a53 --- /dev/null +++ b/thegrey/a_boulderling.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",120000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end diff --git a/thegrey/a_creature.lua b/thegrey/a_creature.lua new file mode 100644 index 0000000..abc7bc2 --- /dev/null +++ b/thegrey/a_creature.lua @@ -0,0 +1,28 @@ +-- scripts to randomly spawn one of these npc : boulder fiend, a stone beast, a boulderling, stonehead, Boulder + +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 65, ex + 65, ey - 65, ey + 65, ez - 60, ez + 60); +end + +function event_enter(e) + e.self:Emote("of living stone leaps out at you from amongst the rocks!"); + creature = math.random(100); + if(creature < 30) then + eq.spawn2(171004,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.spawn2(171004,0,0,e.self:GetX()+ 5,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.spawn2(171004,0,0,e.self:GetX(),e.self:GetY() + 5,e.self:GetZ(),e.self:GetHeading()); + elseif(creature < 60) then + eq.spawn2(171006,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.spawn2(171006,0,0,e.self:GetX()+5,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + elseif(creature < 80) then + eq.spawn2(171007,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + elseif(creature < 90) then + eq.spawn2(171008,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + else + eq.spawn2(171009,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + end + eq.depop_with_timer(); +end diff --git a/thegrey/a_stone_beast.lua b/thegrey/a_stone_beast.lua new file mode 100644 index 0000000..2ac4a53 --- /dev/null +++ b/thegrey/a_stone_beast.lua @@ -0,0 +1,19 @@ +function event_spawn(e) + eq.set_timer("depop",120000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end diff --git a/thurgadina/##Loremaster_Sarl.lua b/thurgadina/##Loremaster_Sarl.lua new file mode 100644 index 0000000..d9cc916 --- /dev/null +++ b/thurgadina/##Loremaster_Sarl.lua @@ -0,0 +1,16 @@ +function event_waypoint_arrive(e) + if(e.wp == 2) then + e.self:SetAppearance(4); + e.self:Say("Ah hah! Here it is! Let's see here... Yes, I remember now. This here has a recordin' o Burdael's tale. I'll lend ya the book, but it'll cost ya 50 platinum."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {platinum = 50}, 0)) then + e.self:Emote("pockets the change and hands you the book. He says, 'Be careful with that now, it's very old. If it comes back all ripped up, ye owe me a beer.'"); + e.other:QuestReward(e.self,0,0,0,0,18237,1000); -- Worn Coldain Tome + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/thurgadina/#Loremaster_Sarl.lua b/thurgadina/#Loremaster_Sarl.lua new file mode 100644 index 0000000..2babee8 --- /dev/null +++ b/thurgadina/#Loremaster_Sarl.lua @@ -0,0 +1,40 @@ +function event_spawn(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(115000)) then + eq.depop(115000); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ahhh, hello there. What can I do for you, " .. e.other:GetCleanName() .. ""); + elseif((e.message:findi("name of the slain") or e.message:findi("name of a slain")) and e.self:GetGrid() == 22) then + e.self:Say("The name of Dragon, you say? One that was slain? Hmmm, sounds interesting. Like I said, we've had little contact with Dragons, but I vaguely recall an ancient legend about a slain dragon and one of our people meeting. Follow me to the Library and we'll talk along the way."); + e.self:CastToNPC():AssignWaypoints(31); + elseif(e.message:findi("dragon")) then + e.self:Say("Dragons, ye say? Well, you might just be in luck. I'm the resident Lore Keeper on the subject of dragons, though we don't know very much about them as a community. We've had very little contact with the majestic beasts. Only the Bravest of our kin have ever found the guts to stand their ground when facing a Dragon, let alone speak with them. What are you looking for exactly?"); + elseif(e.message:findi("black") and e.self:GetX() == 751 and e.self:GetY() == -225) then + e.self:Say("Excellent, I know what we're lookin fer now."); + eq.spawn2(115000,32,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end +end + +function event_waypoint_arrive(e) + if(e.self:GetGrid() == 31) then + if(e.wp == 10) then + e.self:Say("There are only a few myths we've recorded havin to do with Dragons, many less legends. There's a story of an ancestor of the Dain ridin a 'Wurm' into battle against Giants. A Wurm be a lesser form of a Dragon, not able to use magic or fly, but still just as mean. There's another story, more recent, about a pair a Coldain that rampaged through the countryside along side a magical sea turtle, undoing evil and saving this and that. Heheh, more likely a drunken wive's tale."); + elseif(e.wp == 18) then + e.self:Say("'Ye may not know this, but we didn't always make our home here in Thurgadin. Centuries ago we lived deep down in the ground, close to Brell. That was our first home after we became stranded on this chunk of ice. We lived there peacefully for a while, until the Giant kin found us. They drove us out, though we didn't leave without a fight. This statue coming up here is of a hero that sacrificed his life in that battle to bring a great cavern down on the heads of many o those giants."); + elseif(e.wp == 25) then + e.self:Say("I brung up our old home o Froststone because we had many books and tablets that were lost when we were forced to flee. We had a long history during our peaceful time there, much of it is lost to us now. Still, we were able to save a few slim volumes. I'm thinkin we may find yer answer in o those old recordings. We'll see...Ahhh, here we are. Remember to keep yer voice down, it is a library ye know."); + elseif(e.wp == 27) then + e.self:Say("If we Coldain just work together, obeying Brell's teachings, nothing can stop us from overcoming our enemies. Even the Kromrif will fall before us if we are undivided. It is only when we stray from our fundamental knowledge that we are vulnerable."); + elseif(e.wp == 29) then + e.self:SetAppearance(4); + elseif(e.wp == 33) then + e.self:Say("Ok, here we are. Let me see.' Sarl runs a finger along the book labels searching for a particular volume..."); + elseif(e.wp == 34) then + e.self:Say("Do ye know anythin about this dragon? Ye need his name right? Some o these older ones are organized in strange ways. I love me fore fathers, but they made some funny kinda rules. Do you know what color this dragon was?"); + end + end +end \ No newline at end of file diff --git a/thurgadina/115041.lua b/thurgadina/115041.lua new file mode 100644 index 0000000..fc56770 --- /dev/null +++ b/thurgadina/115041.lua @@ -0,0 +1,3 @@ +function event_spawn(e) + eq.spawn_condition("thurgadina",2,0); +end diff --git a/thurgadina/Adia_Coldbeard.lua b/thurgadina/Adia_Coldbeard.lua new file mode 100644 index 0000000..9f41d99 --- /dev/null +++ b/thurgadina/Adia_Coldbeard.lua @@ -0,0 +1,9 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {gold = 5}, 0)) then + e.self:Say("Thank ye for yer Patronage. Enjoy yer mug and be sure ta visit us often."); + e.other:QuestReward(e.self,0,0,0,0,30145); -- The Icy Mug Souvenir Stein + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/thurgadina/Agar.lua b/thurgadina/Agar.lua new file mode 100644 index 0000000..96a679e --- /dev/null +++ b/thurgadina/Agar.lua @@ -0,0 +1,6 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What ye want? A torch? I be puttin' that torch some place fer ya if that's what ye want. Right there in that satchel o' yers if I do say meself. Got the best prices, I do, even fer ya outlanders. Mebbe ye should take a gander round me store, ye may be openin' that coin purse then, eh?"); + e.self:DoAnim(48); + end +end diff --git a/thurgadina/Argash.lua b/thurgadina/Argash.lua new file mode 100644 index 0000000..0ea54a9 --- /dev/null +++ b/thurgadina/Argash.lua @@ -0,0 +1,34 @@ +-- ranger +local quest_helper = require('velious_quest_helper'); +local THURG_ARMOR = quest_helper.THURG_ARMOR; +local QUEST_TEXT = { + hail="Greetin's, -name, you look like a -race who knows the value of a good bow when ye see one. I'll let ye in on a li'l secret, the bow is the greatest of all weapons as it allows you to inflict maximum punishment on yer foes with minimum risk. How can ye possibly go wrong? Or better yet, if'n ye be a ranger, I can see my way clear to making you a coif, tunic, sleeves, bracer, gauntlets, leggings, or boots that I'm sure ye would enjoy.", +} + +QUEST_TEXT = quest_helper.merge_tables(QUEST_TEXT, quest_helper.THURG_CHAIN_TEXT); + +local QUEST_ITEMS = { + -- boots + quest_helper:melee_boots(THURG_ARMOR.Chain_Boots, 31020), + -- legs + quest_helper:melee_legs(THURG_ARMOR.Chain_Leggings, 31019), + -- gloves + quest_helper:melee_gloves(THURG_ARMOR.Chain_Gauntlets, 31018), + -- wrist + quest_helper:melee_bracer(THURG_ARMOR.Chain_Bracer, 31017), + -- arms + quest_helper:melee_arms(THURG_ARMOR.Chain_Sleeves, 31016), + -- chest + quest_helper:melee_chest(THURG_ARMOR.Chain_Tunic, 31015), + -- helm + quest_helper:melee_helmet(THURG_ARMOR.Chain_Coif, 31014) +} + +function event_say(e) + quest_helper.quest_text(e, QUEST_TEXT, 3); +end + + +function event_trade(e) + quest_helper:quest_turn_in(e, 3, QUEST_ITEMS, quest_helper.thurg_armor_success) +end diff --git a/thurgadina/Avalanche.lua b/thurgadina/Avalanche.lua new file mode 100644 index 0000000..98d944a --- /dev/null +++ b/thurgadina/Avalanche.lua @@ -0,0 +1,9 @@ +function event_spawn(e) + eq.set_timer("follow", 150000); +end + +function event_timer(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(115102)) then + eq.follow(eq.get_entity_list():GetMobByNpcTypeID(115102):GetID()); + end +end diff --git a/thurgadina/Battlepriest_Daragor.lua b/thurgadina/Battlepriest_Daragor.lua new file mode 100644 index 0000000..ccb6285 --- /dev/null +++ b/thurgadina/Battlepriest_Daragor.lua @@ -0,0 +1,36 @@ +-- paladin +local quest_helper = require('velious_quest_helper'); +local THURG_ARMOR = quest_helper.THURG_ARMOR; +local QUEST_TEXT = { + hail="Greetings to you. I seek the service of devout knights who have distinguished themselves. Are you a paladin, -name?", + paladin="A paladin of your kind has not made it this far for quite some time. Well, I wonder what it is you seek here? Do you seek heroic and chivalrous deeds to distinguish yourself from your brethren? Do you need accoutrements to aid you in your battles perhaps? You are in luck, knight, for I have both for you. Do you wish to partake of my quests?", + partake="Excellent! By serving my cause, you, in turn, will further your own. I require certain components and if you bring them to me I shall reward you for your honorable service. You may choose from among these items: a helm, a breastplate, armplates, bracers, gauntlets, greaves, and boots.", +} + +QUEST_TEXT = quest_helper.merge_tables(QUEST_TEXT, quest_helper.THURG_PLATE_TEXT); + +local QUEST_ITEMS = { + -- boots + quest_helper:melee_boots(THURG_ARMOR.Plate_Boots, 31027), + -- legs + quest_helper:melee_legs(THURG_ARMOR.Plate_Greaves, 31026), + -- gloves + quest_helper:melee_gloves(THURG_ARMOR.Plate_Gauntlets, 31025), + -- wrist + quest_helper:melee_bracer(THURG_ARMOR.Plate_Bracer, 31024), + -- arms + quest_helper:melee_arms(THURG_ARMOR.Plate_Vambraces, 31023), + -- chest + quest_helper:melee_chest(THURG_ARMOR.Breastplate, 31022), + -- helm + quest_helper:melee_helmet(THURG_ARMOR.Plate_Helmet, 31021) +} + +function event_say(e) + quest_helper.quest_text(e, QUEST_TEXT, 3); +end + + +function event_trade(e) + quest_helper:quest_turn_in(e, 3, QUEST_ITEMS, quest_helper.thurg_armor_success) +end diff --git a/thurgadina/Betti_Frostweaver.lua b/thurgadina/Betti_Frostweaver.lua new file mode 100644 index 0000000..4ff9d30 --- /dev/null +++ b/thurgadina/Betti_Frostweaver.lua @@ -0,0 +1,24 @@ +-- sixth coldain prayer shawl + + function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well, hello there, dear. It sure gets cold here, doesn't it? Perhaps I can interest you in a sewing pattern to pass the time and keep you warm."); + elseif(e.message:findi("embroidered")) then + e.self:Say("It will be an honor to assist you in fashioning an embroidered shawl. It is a very demanding product and I can see from the look in your eyes that you desire to burn your sewing kit in our furnace, but if you persevere, your efforts will be richly rewarded. When you are ready you must carefully weave a spool of sacred Coldain thread. Take the thread, this pattern, and the silk shawl and carefully embroider the pattern. The result will be most exquisite. Please show me if you manage to create one."); + e.other:SummonCursorItem(1833); -- Item: Embroidered Shawl Pattern + elseif(e.message:findi("pattern")) then + e.self:Say("Let me have another look at the Embroidered shawl please, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("sacred coldain thread")) then + e.self:Say("Take a woven frost giant beard, two siren's hairs, two manticore manes and two drakkel dire wolf whiskers, and combine them in a sewing kit. The resulting thread will enhance your shawl's power when embroidered in a special pattern."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1198}, 0)) then + e.self:Say("Spectacular artistry! I doubt I could have done better myself. You'll have to forgive me, I know time is short and I tend to carry on. This is the pattern for the making of a rune sacred to our people. It will be our final test of your craftsmanship and will put many of your skills to the test, but I trust you'll find the finished product to be more than worth the effort. Show Gilthan the embroidered shawl, he will set you on the path. May Brell always be with you outlander."); + e.other:QuestReward(e.self,{items = {1198,1849}}); -- Item: Embroidered Coldain Prayer Shawl + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/thurgadina/Boris.lua b/thurgadina/Boris.lua new file mode 100644 index 0000000..c3a0cc2 --- /dev/null +++ b/thurgadina/Boris.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey. you der! Dis privot propertee! Is you here to do sumthin bad to me master Valdicar?"); + end +end diff --git a/thurgadina/Brimgald_Brightsteel.lua b/thurgadina/Brimgald_Brightsteel.lua new file mode 100644 index 0000000..9d7368a --- /dev/null +++ b/thurgadina/Brimgald_Brightsteel.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ye have the look of an aspirin' velium smith about ye, " .. e.other:GetCleanName() .. ". Well, ye won't get very far in the field without purchasin' some o' the finest smithin' molds in Thurgadin. Lucky for you I can help ye in that department, so what'll it be?"); + end +end diff --git a/thurgadina/Brina_Snowfox.lua b/thurgadina/Brina_Snowfox.lua new file mode 100644 index 0000000..4587ad6 --- /dev/null +++ b/thurgadina/Brina_Snowfox.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("There doesn't seem to be much call for a sketch artist in Thurgadin these days. what with all the sculptures and such. but I get by. Care to purchase one of my sketches. " .. e.other:Race() .. "?"); + end +end diff --git a/thurgadina/Captain_Njall.lua b/thurgadina/Captain_Njall.lua new file mode 100644 index 0000000..bfccbb0 --- /dev/null +++ b/thurgadina/Captain_Njall.lua @@ -0,0 +1,34 @@ +-- warrior +local quest_helper = require('velious_quest_helper'); +local THURG_ARMOR = quest_helper.THURG_ARMOR; +local QUEST_TEXT = { + hail="Well met, -race! I am Captain Njall, commander of the city gaurds here in Thurgadin. If ye seek ta join our ranks, I welcome ye with open arms and have an offer to make if you are interested. If ye seek to be our enemy, I hope ye can run swifter than my archers arrows.", + interested="Aye, I thought ye might be. My elite warriors are in sore need of some enchanted armor. Unfortunately, I can't spare the men to go out and fetch me the components. If you can do this for me, I'll gladly reward you with a piece of it. I need materials for a helm, a breastplate, armplates, bracers, gauntlets, greaves, and boots.", +} + +QUEST_TEXT = quest_helper.merge_tables(QUEST_TEXT, quest_helper.THURG_PLATE_TEXT); + +local QUEST_ITEMS = { + -- boots + quest_helper:melee_boots(THURG_ARMOR.Plate_Boots, 31090), + -- legs + quest_helper:melee_legs(THURG_ARMOR.Plate_Greaves, 31089), + -- gloves + quest_helper:melee_gloves(THURG_ARMOR.Plate_Gauntlets, 31088), + -- wrist + quest_helper:melee_bracer(THURG_ARMOR.Plate_Bracer, 31087), + -- arms + quest_helper:melee_arms(THURG_ARMOR.Plate_Vambraces, 31086), + -- chest + quest_helper:melee_chest(THURG_ARMOR.Breastplate, 31085), + -- helm + quest_helper:melee_helmet(THURG_ARMOR.Plate_Helmet, 31084) +} + +function event_say(e) + quest_helper.quest_text(e, QUEST_TEXT, 3); +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 3, QUEST_ITEMS, quest_helper.thurg_armor_success) +end diff --git a/thurgadina/Clifus.lua b/thurgadina/Clifus.lua new file mode 100644 index 0000000..056543e --- /dev/null +++ b/thurgadina/Clifus.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey, what do ye think yer lookin' at, ugly? Yeah, that's right. I called ye ugly. You gonna make somethin of it, " .. e.other:Race() .. "? Yeah, I didn't think ye would. The last guy that looked at me wrong took me fist right in his mouth, laid him out flat on the ground! He been drinkin' an' all but he woulda been laid out flat even if he hadna been."); + elseif(e.message:findi("drink")) then + e.self:Say("Oh, I don't know what he was drinkin' but I'm sure it were a woman's drink. Me, I like me a nice big barrel o' fish wine. It don't do much fer yer breath but it'll kick ya in the behind if ye're not careful. Hmmm, boy, I could sure go fer one right now. "); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13040}, 0)) then + e.self:Emote("accepts the drink and gulps it down. 'Thanks, lad! Ye know, I guess ye're all right"); + e.other:QuestReward(e.self,0,0,0,0,0,50); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/thurgadina/Cobi_Frostbeard.lua b/thurgadina/Cobi_Frostbeard.lua new file mode 100644 index 0000000..fc62bf4 --- /dev/null +++ b/thurgadina/Cobi_Frostbeard.lua @@ -0,0 +1,44 @@ +--druid + +local quest_helper = require('velious_quest_helper'); +local THURG_ARMOR = quest_helper.THURG_ARMOR; + +local QUEST_ITEMS = { + quest_helper:priest_helmet(THURG_ARMOR.Leather_Cap, 31049), + quest_helper:priest_boots(THURG_ARMOR.Leather_Boots, 31055), + quest_helper:priest_chest(THURG_ARMOR.Leather_Tunic, 31050), + quest_helper:priest_arms(THURG_ARMOR.Leather_Sleeves, 31051), + quest_helper:priest_gloves(THURG_ARMOR.Leather_Gloves, 31053), + quest_helper:priest_bracer(THURG_ARMOR.Leather_Bracelet, 31052), + quest_helper:priest_legs(THURG_ARMOR.Leather_Leggings, 31054), +} + +function event_say(e) + if(e.other:GetFaction(e.self) <= 3 ) then --kindly or better + if(e.message:findi("hail")) then + e.self:Say("Greetings to you. I seek one who calls himself a druid. What do you call yourself, manling?"); + elseif(e.message:findi("druid")) then + e.self:Say("Good. I had hoped you were one. As nature's guardian, you fight the never-ending struggle against those who seek to defile it. It is an admirable quality and I wish to aid you. I will provide you with a cap, a tunic, sleeves, bracers, gloves, leggings, and boots."); + elseif(e.message:findi("tunic")) then + e.self:Say("If you find an eroded leather tunic and three pieces of black marble bring them to me and I shall attempt to create an enchanted tunic that will serve you well."); + elseif(e.message:findi("cap")) then + e.self:Say("Those who are as wise as we are know that protection of the head is most important. I may be able to forge you something most interesting if you were to bring me three pieces of crushed onyx sapphire and an eroded leather cap."); + elseif(e.message:findi("sleeves")) then + e.self:Say("Three jaundice gems and a set of eroded leather sleeves might be an interesting combination. The powers of the gems may be harvested to imbue the sleeves."); + elseif(e.message:findi("gloves")) then + e.self:Say("Strong protection for one's hands is important. I may be able to craft you a set of powerful leather gloves if you find a set of eroded leather gloves and three crushed lava rubies."); + elseif(e.message:findi("bracers")) then + e.self:Say("Bracers are quite easy to imbue. Simply find three crushed opals and an eroded leather bracer and I will complete the ritual to enchant them."); + elseif(e.message:findi("leggings")) then + e.self:Say("Leggings are a bit trickier to imbue. Three chipped onyx sapphires will allow me to channel the correct energies into a pair of eroded leather leggings. However, those chipped onyx sapphires are somewhat rare. Return to me if you find such things in your journeys."); + elseif(e.message:findi("boots")) then + e.self:Say("Simply bring me a set of three crushed flame emeralds and a pair of eroded leather boots and I will imbue them. I bid you good luck in finding such things."); + end + else + e.self:Say("I do not know you well enough to entrust you with such a quest, yet."); + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 3, QUEST_ITEMS, quest_helper.thurg_armor_success) +end diff --git a/thurgadina/Dalgrim_Underbelly.lua b/thurgadina/Dalgrim_Underbelly.lua new file mode 100644 index 0000000..ed0c4da --- /dev/null +++ b/thurgadina/Dalgrim_Underbelly.lua @@ -0,0 +1,44 @@ +--shadowknight + +local quest_helper = require('velious_quest_helper'); +local THURG_ARMOR = quest_helper.THURG_ARMOR; + +local QUEST_ITEMS = { + quest_helper:melee_helmet(THURG_ARMOR.Plate_Helmet, 31000), --helm + quest_helper:melee_chest(THURG_ARMOR.Breastplate, 31001), --bp + quest_helper:melee_arms(THURG_ARMOR.Plate_Vambraces, 31002), -- arms + quest_helper:melee_bracer(THURG_ARMOR.Plate_Bracer, 31003), --bracer + quest_helper:melee_gloves(THURG_ARMOR.Plate_Gauntlets, 31004), -- gloves + quest_helper:melee_legs(THURG_ARMOR.Plate_Greaves, 31005), -- legs + quest_helper:melee_boots(THURG_ARMOR.Plate_Boots, 31006), -- boots +} + +function event_say(e) + if(e.other:GetFaction(e.self) <= 3) then + if(e.message:findi("hail")) then + e.self:Say("I wasn't always just a merchant, ye know, I used to work at the temple and spent most of my time in the study of ancient texts and arts. I actually learned a lot about the dark arts in those days. Ye know... necromancy. Oh, I'd never touch the stuff, mind ye, but I'll bet I could make a fine set of plate fer shadowknights if'n I had the right materials."); + elseif(e.message:findi("material")) then + e.self:Say("Glad to see ye're interested, "..e.other:GetName()..". The materials would vary by the piece of armor o' course. I could probably forge a fine set of bracers, gauntlets, greaves, boots, armplates, a helm, or a breastplate."); + elseif(e.message:findi("helm")) then + e.self:Say("To create a piece of armor to protect your skull I will require three pieces of crushed coral as well as a corroded plate helmet."); + elseif(e.message:findi("breastplate")) then + e.self:Say("For the breastplate, I will need a corroded breastplate and three flawless diamonds. Once I have them in my possession it will not take long to craft a sturdy breastplate."); + elseif(e.message:findi("armplates")) then + e.self:Say("Protection for your arms will come at the price of a set of corroded plate vambraces and three flawed emeralds."); + elseif(e.message:findi("bracers")) then + e.self:Say("For the bracers, I will require a corroded plate bracer and a set of three crushed flame emeralds. Return to me if you happen to find these things in your travels."); + elseif(e.message:findi("gauntlets")) then + e.self:Say("Protecting your hands is very important. I can forge protection for your hands if you bring me a pair of corroded plate gauntlets and three crushed topaz."); + elseif(e.message:findi("greaves")) then + e.self:Say("A set of corroded greaves might be salvageable if you were to find three flawed sea sapphires. With the right techniques almost anything is possible."); + elseif(e.message:findi("boots")) then + e.self:Say("Boots made for battle are not always the most comfortable available. However, if you seek a fine set for battle bring me a set of corroded plate boots and three pieces of crushed black marble."); + end + else + e.self:Say("I do not know you well enough to entrust you with such a quest, yet."); + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 3, QUEST_ITEMS, quest_helper.thurg_armor_success); +end diff --git a/thurgadina/Doogle_McBanick.lua b/thurgadina/Doogle_McBanick.lua new file mode 100644 index 0000000..05cf9bd --- /dev/null +++ b/thurgadina/Doogle_McBanick.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome ta me bar. I suggest ye sit down and have a drink cause if'n ye ai'nt drinkin ye've no business bein 'ere."); + elseif(e.message:findi("mug")) then + e.self:Say("Mug, yeah we got a lot of mugs here but what has that got to do with anything."); + end +end diff --git a/thurgadina/Dorin_Amberfeld.lua b/thurgadina/Dorin_Amberfeld.lua new file mode 100644 index 0000000..677b325 --- /dev/null +++ b/thurgadina/Dorin_Amberfeld.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks up at you with sad eyes and says, 'Hail there, " .. e.other:GetCleanName() .. "."); + elseif(e.message:findi("sad")) then + e.self:Emote("sighs and says, 'Oh well, the mines been overrun with nasty critters, so I'm outta work. What's a dwarf who can't mine? Like a fish outta water. Hopefully, the Dain'll send in some troops to clear 'em out. I'm not holdin' me breath though, he's got lots of other things to take care of, I guess."); + elseif(e.message:findi("mine")) then + e.self:Say("Well, I mine velium, and sometimes I kin pull some iron outta the stone round here. Well I used to. The only one down there now is crusty ol' Normon, he ain't all there. They say he been down there so long he eats rocks, no one ever sees 'im but we all know he's down there."); + end +end diff --git a/thurgadina/Durgan_Bottlenip.lua b/thurgadina/Durgan_Bottlenip.lua new file mode 100644 index 0000000..ce3ce16 --- /dev/null +++ b/thurgadina/Durgan_Bottlenip.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ye need a swig of some fine dwarven ale!"); + end +end diff --git a/thurgadina/Elder_Reevis.lua b/thurgadina/Elder_Reevis.lua new file mode 100644 index 0000000..3dfe37a --- /dev/null +++ b/thurgadina/Elder_Reevis.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("WHY, HELLO THAR, YOUNG LAD! GREAT DAY FER IT, AIN'T IT? YESSIREE! WHY THIS REMINDS ME O' THE DAYS BACK WHEN WE'D GATHER ROUND THE FIRE LIKE THIS AND.... OH. HELLO THAR, YOUNG LAD! ER... WHAT WAS I SAYIN'?"); + elseif(e.message:findi("day")) then + e.self:Emote("speaks very loudly, as would one with a hearing problem common to one of great age. He shouts, 'EH?...WHAT'S THAT? YE GOTS TA SPEAK UP SOME, YOUNG " .. e.other:Race() .. "! I DON'T HEAR NONE TOO GOOD THESE DAYS! SO YE WANT TA HEAR ABOUT THE OL' DAYS, EH?! WELL BE SURE'N I'LL TELL YA! BRELL KNOWS I SEEN IT ALL! HAAHAAHAAAA!...hehehee...heh...huh?"); + elseif(e.message:findi("seen")) then + e.self:Say("Ooohhh, yes, I've seen plenty. Back before we hid ourselves in the mountain, when we were without a home. They called it the War of Yesterwinter. Brave men fought and died. As we traveled across the wastes, we littered the land with cairns. The Kromrif and Kromzek also fell under our axes, but we were a race always running. Back then we were united in the cause of survival. Nowadays, these younguns... Ye never know."); + end +end diff --git a/thurgadina/Erdarf_Restil.lua b/thurgadina/Erdarf_Restil.lua new file mode 100644 index 0000000..0e75e45 --- /dev/null +++ b/thurgadina/Erdarf_Restil.lua @@ -0,0 +1,30 @@ +-- Crystal Caverns' Ancient Artifacts + +function event_say(e) + if(e.other:GetFaction(e.self) <= 3) then + if(e.message:findi("hail")) then + e.self:Say("Huh? Don't you know better than to interrupt a Coldain enjoying his ale? I may be a user of priestly magic but that doesnt mean I can't bash your head in."); + elseif(e.message:findi("priestly magic")) then + e.self:Say("Aye. An old one not much taken with idle chit chat."); + elseif(e.message:findi("old one")) then + e.self:Say("Very old, very wise, and on and on. You must have some point to bothering me. I'm not a merchant and I don't contract myself out for work. I've performed works for the Dain. There isn't much I haven't done.."); + elseif(e.message:findi("done")) then + e.self:Emote("chuckles at you. 'If you want to impress me, and let me make certain you understand I doubt you can, then you can do what I never was able. For years I adventured and attempted to venture to the bottom of the Crystal Caverns in search of ancient artifacts from my people. Do that, show me that you have, and I will be impressed.'"); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30269}, 0)) then -- Sceptre of the Coldain Ancients + e.self:Emote("smirks at you. 'Hrm, you again eh? Did you come back to bother me with more...Wait a minute, let me see that. This is... This must be, yes it is. This is one of the ancient coldain priests sceptres of channeling. This is too good to be true. Haha! Oh, what I can do with this. Here, take this gem from the sceptre. If ancient lore proves right it will allow you to persuade beasts of many kinds.' He grins at you strangely and then leaves."); + e.other:QuestReward(e.self,0,0,0,0,30270,25000); -- Gem of Persuasion + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30271}, 0)) then -- Bottle of Karsin Acid + e.self:Emote("turns his head long enough for you to slip the contens of the karsin bottle into his mug. As he drinks heavily his face turns even more pale until he looks as if in pain. He rushes from the bar and as he does a trinket slips from his pocket."); + e.other:QuestReward(e.self,0,0,0,0,30270,25000); -- Gem of Persuasion + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/thurgadina/Fergus_Sawdust.lua b/thurgadina/Fergus_Sawdust.lua new file mode 100644 index 0000000..ebd6566 --- /dev/null +++ b/thurgadina/Fergus_Sawdust.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Can I help you with something? If you want anything to do with carpentry, somethin' I grew up with and was raised on, I can't help ya. Nope."); + elseif(e.message:findi("carpentry")) then + e.self:Say("Well, good citizen Argash, that patriot to the Coldain people, pushed me out of my business by lining the pockets of the council with his money. Now the council and Argash sit pretty while I can barely feed meself. Somethin's rotten in the state o' Thurgadin."); + elseif(e.message:findi("rotten")) then + e.self:Say("I don't know. I've never met the Dain, never even really seen 'im. But what's goin' on ain't right and somethin' needs to be done about it. But who would stand against Brell's own chosen? Times are a changin', " .. e.other:GetCleanName() .. "."); + end +end diff --git a/thurgadina/Flonts.lua b/thurgadina/Flonts.lua new file mode 100644 index 0000000..7c0f26a --- /dev/null +++ b/thurgadina/Flonts.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("jumps at your voice and turns to you in anger, 'HEY! Don't ye know ne'er ta sneak up on a man like that?! Well ferget it. Anyway, I got this spot staked out fer starin' out this here winda so ye kin move along!"); + end +end diff --git a/thurgadina/Foreman_Felspar.lua b/thurgadina/Foreman_Felspar.lua new file mode 100644 index 0000000..9cf9c77 --- /dev/null +++ b/thurgadina/Foreman_Felspar.lua @@ -0,0 +1,34 @@ +--rogue +local quest_helper = require('velious_quest_helper'); +local THURG_ARMOR = quest_helper.THURG_ARMOR; +local QUEST_TEXT = { + hail="Welcome to the Thurgadin Minin' Company, -name. As foreman it's my job to see that me lads are well trained and well cared fer. Unfortunately, we're not in too good shape right now. Ye see, it seems a new vein was struck recently and a bunch of unwelcome critters have come crawlin outta the works attackin' me lads. In order ta help combat this menace I've engineered a new set of armor for the miners, but need some raw materials to get them started.", + armor="Excellent, -name! I knew ye were the right -race for the job. The pieces I can make are a coif, a tunic, sleeves, bracers, gauntlets, leggings, and boots. This stuff might not be fitting ya if ye're not stealthy like us miners though.", +} + +QUEST_TEXT = quest_helper.merge_tables(QUEST_TEXT, quest_helper.THURG_CHAIN_TEXT); + +local QUEST_ITEMS = { + -- boots + quest_helper:melee_boots(THURG_ARMOR.Chain_Boots, 31034), + -- legs + quest_helper:melee_legs(THURG_ARMOR.Chain_Leggings, 31033), + -- gloves + quest_helper:melee_gloves(THURG_ARMOR.Chain_Gauntlets, 31032), + -- wrist + quest_helper:melee_bracer(THURG_ARMOR.Chain_Bracer, 31031), + -- arms + quest_helper:melee_arms(THURG_ARMOR.Chain_Sleeves, 31030), + -- chest + quest_helper:melee_chest(THURG_ARMOR.Chain_Tunic, 31029), + -- helm + quest_helper:melee_helmet(THURG_ARMOR.Chain_Coif, 31028) +} + +function event_say(e) + quest_helper.quest_text(e, QUEST_TEXT, 3); +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 3, QUEST_ITEMS, quest_helper.thurg_armor_success) +end diff --git a/thurgadina/Frostpaw.lua b/thurgadina/Frostpaw.lua new file mode 100644 index 0000000..5aaf384 --- /dev/null +++ b/thurgadina/Frostpaw.lua @@ -0,0 +1,9 @@ +function event_spawn(e) + eq.set_timer("follow", 150000); +end + +function event_timer(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(115101)) then + eq.follow(eq.get_entity_list():GetMobByNpcTypeID(115101):GetID()); + end +end diff --git a/thurgadina/Frundle_Frenkler.lua b/thurgadina/Frundle_Frenkler.lua new file mode 100644 index 0000000..e91dac4 --- /dev/null +++ b/thurgadina/Frundle_Frenkler.lua @@ -0,0 +1,16 @@ +-- Frundle Frenkler - vial of velium vapors + +function event_say(e) + if (e.other:GetFaction(e.self) < 6) then + if(e.message:findi("velium vapor")) then + e.self:Say("Ahh, you come seeking my family recipe? After all you've done for our people it's the least I can do. First you must fashion a velium vial, then combine the vial with two small pieces of velium in this jar. That's all there is to it. Please keep the recipe a secret."); + e.other:SummonCursorItem(17513); -- Item: Velium Purifier + elseif(e.message:findi("velium vial")) then + e.self:Say("I'm no potter mind you, but if I remember correctly it's a small brick of velium, three crystalline silks, and two glass shards. Then you'll have to finish up by firing it in a kiln with a high quality firing sheet."); + end + elseif(e.other:GetFaction(e.self) > 5) then + if(e.message:findi("velium vapor") or e.message:findi("velium vial")) then + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end diff --git a/thurgadina/Gilthan_Brittleblade.lua b/thurgadina/Gilthan_Brittleblade.lua new file mode 100644 index 0000000..65106a9 --- /dev/null +++ b/thurgadina/Gilthan_Brittleblade.lua @@ -0,0 +1,17 @@ +-- part of seventh coldain prayer shawl + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I wasn't always a pottery salesman ye know, I used to forge fine velium weapons and even had me own shop. Unfortunately no one wanted to buy anything from Brittleblade's, sl I work with clay now, care to purchase somethin?"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1198}, 0)) then + e.self:Say("So, you've been chosen to attempt the rune, eh? Been ages since anyone's even made an attempt. The rune represents the very essence of our people, our culture, and our religion. Take a sea shell runed with enduring breath and a small brick of velium and grind them together in a mortar and pestle. Add water to the powder and model the rune. Fire the rune with water and the best of firing sheets. Show the product to Trademaster Kroven."); + e.other:QuestReward(e.self,0,0,0,0,1198); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/thurgadina/Grand_Historian_Thoridain.lua b/thurgadina/Grand_Historian_Thoridain.lua new file mode 100644 index 0000000..a5555c6 --- /dev/null +++ b/thurgadina/Grand_Historian_Thoridain.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + eq.signal(115015,1); -- NPC: Loremaster_Dorinan + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1428,item2 = 1418})) then + e.self:Say("My compliments, " .. e.other:GetCleanName() .. ", what a wonderful dish! Please accept my personal Seal as a token of my appreciation. May it give you power over your adversaries."); + e.other:Faction(e.self,406,5); -- coldain + e.other:Faction(e.self,405,1); -- dain + e.other:Faction(e.self,448,-1); -- kzek + e.other:Faction(e.self,419,-2); -- krif + e.other:QuestReward(e.self,0,0,0,0,1422,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/thurgadina/Grimthor_Brewbeard.lua b/thurgadina/Grimthor_Brewbeard.lua new file mode 100644 index 0000000..054d2fe --- /dev/null +++ b/thurgadina/Grimthor_Brewbeard.lua @@ -0,0 +1,21 @@ +-- part of 7th coldain prayer shawl + +function event_say(e) + if(e.message:findi("cutlass fish oil")) then + e.self:Say("Grab a pole and fish the waters in Iceclad until you catch yourself three Iceclad Cutlass fish. Place them in this oil extractor and you'll have whatcha need."); + e.other:SummonCursorItem(17514); -- Item: Fish oil extractor + elseif(e.message:findi("liquid velium")) then + e.self:Say("Collect a small piece of velium and a bottle of rubbing alcohol and brew them together in a barrel. It aint easy, but it should prove to be a minor task for the likes of you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1856}, 0)) then + e.self:Say("That looks about right. You're moving along well outlander. Next you'll be needin to brew up a sacred ink to fill the grooves in your rune. Take Iceclad Cutlass fish oil, liquid velium, and some Royal Kromrif blood, brew them in the barrel here then take the product and the rune and combine them in a fletching kit. Show Talem Tucker the resulting item if yer successful."); + e.other:QuestReward(e.self,0,0,0,0,1856); + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/thurgadina/Guard_Baldvin.lua b/thurgadina/Guard_Baldvin.lua new file mode 100644 index 0000000..a2d8a19 --- /dev/null +++ b/thurgadina/Guard_Baldvin.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Beyond these gates is the city of our people. Be respectful and obey our laws else I'll toss yer carcass into the pit meself."); + end +end diff --git a/thurgadina/Guard_Bjorn.lua b/thurgadina/Guard_Bjorn.lua new file mode 100644 index 0000000..d7234f9 --- /dev/null +++ b/thurgadina/Guard_Bjorn.lua @@ -0,0 +1,3 @@ +function event_signal(e) + e.self:Emote("chuckles saying, 'Have fun Lieutenant, bring me back an ale while yer at it why don't ye!'"); +end diff --git a/thurgadina/Guard_Clorn.lua b/thurgadina/Guard_Clorn.lua new file mode 100644 index 0000000..d7234f9 --- /dev/null +++ b/thurgadina/Guard_Clorn.lua @@ -0,0 +1,3 @@ +function event_signal(e) + e.self:Emote("chuckles saying, 'Have fun Lieutenant, bring me back an ale while yer at it why don't ye!'"); +end diff --git a/thurgadina/Guard_Dagur.lua b/thurgadina/Guard_Dagur.lua new file mode 100644 index 0000000..8508240 --- /dev/null +++ b/thurgadina/Guard_Dagur.lua @@ -0,0 +1,8 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings and welcome to Thurgadin, " .. e.other:Race() .. ". Ye best watch yer step on the bridge there, it can be a bit slippery."); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(115132)) then + eq.get_entity_list():GetMobByNpcTypeID(115132):Say("Aye, we wouldn't want ye fallin into the pit now would we."); -- Make Guard Baldvin also talk. + end + end +end diff --git a/thurgadina/Guard_Dobbs.lua b/thurgadina/Guard_Dobbs.lua new file mode 100644 index 0000000..d7234f9 --- /dev/null +++ b/thurgadina/Guard_Dobbs.lua @@ -0,0 +1,3 @@ +function event_signal(e) + e.self:Emote("chuckles saying, 'Have fun Lieutenant, bring me back an ale while yer at it why don't ye!'"); +end diff --git a/thurgadina/Guard_Enre.lua b/thurgadina/Guard_Enre.lua new file mode 100644 index 0000000..d7234f9 --- /dev/null +++ b/thurgadina/Guard_Enre.lua @@ -0,0 +1,3 @@ +function event_signal(e) + e.self:Emote("chuckles saying, 'Have fun Lieutenant, bring me back an ale while yer at it why don't ye!'"); +end diff --git a/thurgadina/Guard_Eyvindur.lua b/thurgadina/Guard_Eyvindur.lua new file mode 100644 index 0000000..bcea204 --- /dev/null +++ b/thurgadina/Guard_Eyvindur.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Just because the Dain ordered us to let you offlanders into our city does not mean I have to speak with ye. Now move along."); + end +end diff --git a/thurgadina/Guard_Gord.lua b/thurgadina/Guard_Gord.lua new file mode 100644 index 0000000..d7234f9 --- /dev/null +++ b/thurgadina/Guard_Gord.lua @@ -0,0 +1,3 @@ +function event_signal(e) + e.self:Emote("chuckles saying, 'Have fun Lieutenant, bring me back an ale while yer at it why don't ye!'"); +end diff --git a/thurgadina/Guard_Kristrun.lua b/thurgadina/Guard_Kristrun.lua new file mode 100644 index 0000000..dcb5bc3 --- /dev/null +++ b/thurgadina/Guard_Kristrun.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("staggers in surprise, then quickly regains her composure. Guard Kristrun says, 'Oh, I'm sorry, it's just that I haven't ever seen a " .. e.other:Race() .. " before. Tell me something, is it true that your people sacrifice your own people to foreign gods?"); + end +end diff --git a/thurgadina/Guard_Leif.lua b/thurgadina/Guard_Leif.lua new file mode 100644 index 0000000..72ee5b8 --- /dev/null +++ b/thurgadina/Guard_Leif.lua @@ -0,0 +1,15 @@ +-- tundrabear sandwich portion of 3rd coldain prayer shawl + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1415,item2 = 1425})) then + e.self:Say("Well I'll be derned. An outlander that can make a good Bearmeat 'n Bread! Thank ye, " .. e.other:GetCleanName() .. "."); + e.other:Faction(e.self,406,2); -- Faction: Coldain + e.other:Faction(e.self,405,1); -- Faction: Dain Frostreaver IV + e.other:Faction(e.self,419,-1); -- Faction: Kromrif + e.other:Faction(e.self,448,-1); -- Faction: Kromzek + e.other:QuestReward(e.self,0,0,0,0,1419,50000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/thurgadina/Guard_Mason.lua b/thurgadina/Guard_Mason.lua new file mode 100644 index 0000000..d7234f9 --- /dev/null +++ b/thurgadina/Guard_Mason.lua @@ -0,0 +1,3 @@ +function event_signal(e) + e.self:Emote("chuckles saying, 'Have fun Lieutenant, bring me back an ale while yer at it why don't ye!'"); +end diff --git a/thurgadina/Guard_Pert.lua b/thurgadina/Guard_Pert.lua new file mode 100644 index 0000000..d7234f9 --- /dev/null +++ b/thurgadina/Guard_Pert.lua @@ -0,0 +1,3 @@ +function event_signal(e) + e.self:Emote("chuckles saying, 'Have fun Lieutenant, bring me back an ale while yer at it why don't ye!'"); +end diff --git a/thurgadina/Hakon_Brightsteel.lua b/thurgadina/Hakon_Brightsteel.lua new file mode 100644 index 0000000..04dd9ba --- /dev/null +++ b/thurgadina/Hakon_Brightsteel.lua @@ -0,0 +1,24 @@ +-- The Velium Focus + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Busy, busy, busy. Must get all these tools sharpened before the miners get cranky."); + elseif(e.message:findi("stonetooth")) then + e.self:Say("You spoke with old Stonetooth? Eeegads man! No one talks to 'im. Legend says he spent so much time down there that he eats nothin' but rocks now and drinks melted velium. Well I guess I should sharpen his axe, but I'll need some velium ore to repair it some. Bring me a chunk o' Velium Ore along with his axe and I'll get to work."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Hey, I can't start me work without both Stonetooth's axe and the small piece of Velium. Get to it, lad!"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 22569,item2 = 1690},1,text)) then -- Small piece of Velium, Norman's Axe (unsharpened axe) + e.self:Say("Excellent! I'll get ta work now. Hakon whistles an unfamiliar tune as he repairs and sharpens the pick axe. Here ye are, " .. e.other:GetCleanName() .. ". Watch that old Stonetooth, he's a few steins short of a keg, if ye know what I mean."); + e.other:Faction(e.self,406,5); -- Coldain + e.other:Faction(e.self,405,1); -- Dain Frostreaver IV + e.other:Faction(e.self,448,-1); -- Kromzek + e.other:Faction(e.self,419,-2); -- Kromrif + e.other:QuestReward(e.self,0,0,0,0,1691,1000); -- Norman's Axe (sharpened axe) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/thurgadina/Hunter_Tarvin.lua b/thurgadina/Hunter_Tarvin.lua new file mode 100644 index 0000000..2d097d3 --- /dev/null +++ b/thurgadina/Hunter_Tarvin.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day, stranger. I would love to sit and chat with you but I don't much like gabbing it up with total strangers. I have other things to think on, Good day."); + elseif(e.message:findi("thing")) then + e.self:Say("Well, I am a hunter. I travel out over the wastes to the east and bring back hides and meat. The businesses pay me a bit of coin for what I bring back and I buy me a room at the inn for a little bit. Then I get low on cash and go back out into the wastes. Although lately I find myself out hunting more often than I stay in the city."); + elseif(e.message:findi("hunter")) then + e.self:Say("I hunt wolf and walrus meat. The city guard also pays me a small bounty for every gnoll pelt I bring in, but I rarely hunt gnolls. Bein' out in the wilderness, away from the politics and shortcomings of humanity, is my way of escapin' my own shortcomings. Hehehe, sometimes I think I might just decide to stay out there all the time until Brell beckons me. Well, now I'm babblin'."); + end +end diff --git a/thurgadina/Initiate_Corrith.lua b/thurgadina/Initiate_Corrith.lua new file mode 100644 index 0000000..66e5c98 --- /dev/null +++ b/thurgadina/Initiate_Corrith.lua @@ -0,0 +1,13 @@ +-- Initiate Corrith fighting + +function event_spawn(e) + eq.set_timer("fight",math.random(30000) + 10000); +end + +function event_timer(e) + e.self:DoAnim(2); + e.self:DoAnim(7); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(115176)) then + eq.get_entity_list():GetMobByNpcTypeID(115176):CastToNPC():DoAnim(2); + end +end diff --git a/thurgadina/Initiate_Kroskain.lua b/thurgadina/Initiate_Kroskain.lua new file mode 100644 index 0000000..9a28342 --- /dev/null +++ b/thurgadina/Initiate_Kroskain.lua @@ -0,0 +1,9 @@ +-- Initiate Krostain + +function event_spawn(e) + eq.set_timer("talk",320000); +end + +function event_timer(e) + e.self:Say("Sir, you said Royt face. Guard Royt is just on the other side of this wall!"); +end diff --git a/thurgadina/Jorumin.lua b/thurgadina/Jorumin.lua new file mode 100644 index 0000000..42676ce --- /dev/null +++ b/thurgadina/Jorumin.lua @@ -0,0 +1,7 @@ +function event_waypoint_arrive(e) + if(e.wp == 4) then + e.self:SetRunning(false); + elseif(e.wp == 9) then + eq.stop(); + end +end diff --git a/thurgadina/Karey.lua b/thurgadina/Karey.lua new file mode 100644 index 0000000..7807877 --- /dev/null +++ b/thurgadina/Karey.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh hello there! I'm sorta new here so I ask ye to be patient with me heheh. What kin I get fer ya, " .. e.other:GetCleanName() .. "?"); + end +end diff --git a/thurgadina/Kyla_Frostbeard.lua b/thurgadina/Kyla_Frostbeard.lua new file mode 100644 index 0000000..b8da8a2 --- /dev/null +++ b/thurgadina/Kyla_Frostbeard.lua @@ -0,0 +1,35 @@ +-- mage + +local quest_helper = require('velious_quest_helper'); +local THURG_ARMOR = quest_helper.THURG_ARMOR; +local QUEST_TEXT = { + hail="Greetings to you. I seek those who call themselves magicians. Are you a magician, little one?", + magician="I thought so. I have several tasks for you accomplish. Once you have completed them I will have a cap, a robe, sleeves, wristbands, gloves, leggings and boots to reward you with.", +} + +QUEST_TEXT = quest_helper.merge_tables(QUEST_TEXT, quest_helper.THURG_SILK_TEXT); + +local QUEST_ITEMS = { + -- boots + quest_helper:silk_boots(THURG_ARMOR.Silk_Boots, 31076), + -- legs + quest_helper:silk_legs(THURG_ARMOR.Silk_Pantaloons, 31075), + -- gloves + quest_helper:silk_gloves(THURG_ARMOR.Silk_Gloves, 31074), + -- wrist + quest_helper:silk_bracer(THURG_ARMOR.Silk_Wristband, 31073), + -- arms + quest_helper:silk_arms(THURG_ARMOR.Silk_Sleeves, 31072), + -- chest + quest_helper:silk_chest(THURG_ARMOR.Silk_Robe, 31071), + -- helm + quest_helper:silk_helmet(THURG_ARMOR.Silk_Turban, 31070) +} + +function event_say(e) + quest_helper.quest_text(e, QUEST_TEXT, 3); +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 3, QUEST_ITEMS, quest_helper.thurg_armor_success) +end diff --git a/thurgadina/Leifur.lua b/thurgadina/Leifur.lua new file mode 100644 index 0000000..fb3df4c --- /dev/null +++ b/thurgadina/Leifur.lua @@ -0,0 +1,51 @@ +--bard + +local quest_helper = require('velious_quest_helper'); +local THURG_ARMOR = quest_helper.THURG_ARMOR; + +local QUEST_ITEMS = { + -- boots + quest_helper:melee_boots(THURG_ARMOR.Plate_Boots, 31041), + -- legs + quest_helper:melee_legs(THURG_ARMOR.Plate_Greaves, 31040), + -- gloves + quest_helper:melee_gloves(THURG_ARMOR.Plate_Gauntlets, 31039), + -- wrist + quest_helper:melee_bracer(THURG_ARMOR.Plate_Bracer, 31038), + -- arms + quest_helper:melee_arms(THURG_ARMOR.Plate_Vambraces, 31037), + -- chest + quest_helper:melee_chest(THURG_ARMOR.Breastplate, 31036), + -- helm + quest_helper:melee_helmet(THURG_ARMOR.Plate_Helmet, 31035) +} + +function event_say(e) + if (e.other:GetFaction(e.self) <= 3) then --kindly or better + if(e.message:findi("hail")) then + e.self:Say("The one thing this bar is sorely missin' is a good bard I tell ye. Ye know, someone to sing a catchy tune and tell us a story from time to time. Forgive me fer seemin' a bit sentimental but my family has always had close ties with bards datin' back ta even before we crossed the ocean. In fact, me great-great-grandfather used ta forge enchanted armor for the ancient bards of Faydark. Oh, the set of bard velium armor I could make if only I had the right components!"); + elseif(e.message:findi("component")) then + e.self:Say("With the proper components I could make a helm, a breastplate, armplates, bracers, gauntlets, greaves, and even a pair o' boots!"); + elseif(e.message:findi("helm")) then + e.self:Say("To create a piece of armor to protect your skull I will require three pieces of crushed coral as well as a corroded plate helmet.") ; + elseif(e.message:findi("breastplate")) then + e.self:Say("For the breastplate I will need a corroded breastplate and three flawless diamonds. Once I have them in my possession it will not take long to craft a sturdy breastplate."); + elseif(e.message:findi("armplate")) then + e.self:Say("Protection for your arms will come at the price of a set of corroded plate vambraces and three flawed emeralds."); + elseif(e.message:findi("bracers")) then + e.self:Say("For the bracers I will require a corroded plate bracer and a set of three crushed flame emeralds. Return to me if you happen to find these things in your travels."); + elseif(e.message:findi("gauntlets")) then + e.self:Say("Protecting your hands is very important. I can forge protection for your hands if you bring me a pair of corroded plate gauntlets and three crushed topaz."); + elseif(e.message:findi("greaves")) then + e.self:Say("A set of corroded greaves might be salvageable if you were to find three flawed sea sapphires. With the right techniques almost anything is possible."); + elseif(e.message:findi("boots")) then + e.self:Say("Boots made for battle are not always the most comfortable available. However if you seek a fine set for battle bring me a set of corroded plate boots and three pieces of crushed black marble."); + end + else + e.self:Say("I do not know you well enough to entrust you with such a quest, yet."); + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 3, QUEST_ITEMS, quest_helper.thurg_armor_success) +end diff --git a/thurgadina/Lieutenant_Grimur.lua b/thurgadina/Lieutenant_Grimur.lua new file mode 100644 index 0000000..c55b16d --- /dev/null +++ b/thurgadina/Lieutenant_Grimur.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("You got a dispute to settle or are ya here to yap it up?"); + elseif(e.message:findi("yap")) then + e.self:Say("Well then ye kin turn yerself right around and walk out the door! I ain't got time fer the ramblings of a fool, " .. e.other:Race() .. "."); + elseif(e.message:findi("dispute")) then + e.self:Say("Well then, get down there with who ye got the argument with and duke it out! That's how we do things here in this great city. Might is right. Brell don't let the dishonest overcome the honest. An the dishonest never get ta see Brell's Table, either. We kin only hope we earn a seat at that table when our time is at hand. Roasted walrus, steamed mushrooms, gingered lichen, and several types of gravy... Mmmmm... Gravy..."); + end +end diff --git a/thurgadina/Lieutenant_Ulfur.lua b/thurgadina/Lieutenant_Ulfur.lua new file mode 100644 index 0000000..aafcb56 --- /dev/null +++ b/thurgadina/Lieutenant_Ulfur.lua @@ -0,0 +1,29 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, there, " .. e.other:Race() .. ". How goes it? Much fairer than I, I'll wager. Me troops can't hit the broad side of a mammoth with their crossbows. Oh, by the way, I'm Lieutenant Ulfur, Commander of the 23rd Coldain crossbow regiment, if ye kin call it a regiment."); + elseif(e.message:findi("regiment")) then + e.self:Say("Yes. we assist our troops in military endeavors. Although we're almost more harm than good. All me troops have soldier envy. They want in the middle of the rumble, face ta face with their enemies stompin them into the ground. That's all well and good but a contingent of crossbowmen can be the difference in winning or losing. Do you favor ranged weapons, " .. e.other:GetCleanName() .. "?"); + elseif(e.message:findi("yes")) then + e.self:Say("Ahh, well, maybe sometime I'll let ya try out one of our famed crossbows. Maybe even give ye one if ye prove yerself to the Coldain cause. Unfortunately. though. we can spare no crossbows now. Perhaps in the future we will be able to."); + elseif(e.message:findi("no")) then + e.self:Say("Heh, figures. Almost no one kin fully appreciate the warm feelin' ye get when a bolt ye fired splits the skull of yer adversary. They don't even see it comin'; kinda absolvers yer guilt fer killin' another bein'. Anonymous killin', heheheh."); + end +end + +function event_waypoint_arrive(e) + if(e.wp == 15) then + e.self:Emote("yawns and says, 'Well, time fer me ta walk the floor again lads.'"); + eq.signal(115104); + eq.signal(115206); + eq.signal(115105); + eq.signal(115207); + eq.signal(115107); + eq.signal(115208); + eq.signal(115109); + eq.signal(115110); + eq.signal(115209); + eq.signal(115112); + eq.signal(115113); + eq.signal(115211); + end +end diff --git a/thurgadina/Lorekeeper_Brita.lua b/thurgadina/Lorekeeper_Brita.lua new file mode 100644 index 0000000..f19fd20 --- /dev/null +++ b/thurgadina/Lorekeeper_Brita.lua @@ -0,0 +1,62 @@ +--Enchanter + +local quest_helper = require('velious_quest_helper'); +local THURG_ARMOR = quest_helper.THURG_ARMOR; + +function event_say(e) + if(e.other:GetFaction(e.self) <= 3 ) then --kindly or better + if(e.message:findi("hail")) then + e.self:Say("Greetings to you. I seek those who call themselves enchanters. Are you an enchanter?"); + elseif(e.message:findi("enchanter")) then + e.self:Say("I thought so. I have several tasks for you accomplish. Once you have completed them I will have a cap, a robe, sleeves, wristbands, gloves, leggings and boots to reward you with."); + elseif(e.message:findi("cap")) then + e.self:Say("For an enchanted head guard bring me a torn enchanted silk turban as well as three pieces of crushed flame opal."); + elseif(e.message:findi("robe")) then + e.self:Say("With three pristine emeralds and a torn enchanted silk robe I will fashion a wonderous robe for you."); + elseif(e.message:findi("sleeve")) then + e.self:Say("Bring unto me a set of torn enchanted silk sleeves as well as three flawed topaz. With these in my possession I can create a set of enchanted sleeves the likes of which spellcasters like you dream of."); + elseif(e.message:findi("wristband")) then + e.self:Say("An enchanted silk wristguard and three crushed onyx sapphires is all that I require to create an imbued wrist wrap of great power. Seek out these items and return to me when you have acquired them."); + elseif(e.message:findi("legging")) then + e.self:Say("Three nephrite and a pair of torn enchanted silk leggings will net you a fine set of pantaloons."); + elseif(e.message:findi("boot")) then + e.self:Say("Three crushed jaundice gems combined with torn enchanted silk boots would make a most interesting set of footwear. The latent powers of the gems can be harnessed to create magical effects."); + elseif(e.message:findi("glove")) then + e.self:Say("If you seek gloves of great power, bring to me three crushed topaz and a pair of torn enchanted silk gloves. I will use the power of the gems to imbue the gloves."); + end + else + e.self:Say("I do not know you well enough to entrust you with such a quest, yet."); + end +end + +local QUEST_ITEMS = { + -- boots + quest_helper:silk_boots(THURG_ARMOR.Silk_Boots, 31083), + -- legs + quest_helper:silk_legs(THURG_ARMOR.Silk_Pantaloons, 31082), + -- gloves + quest_helper:silk_gloves(THURG_ARMOR.Silk_Gloves, 31081), + -- wrist + quest_helper:silk_bracer(THURG_ARMOR.Silk_Wristband, 31080), + -- arms + quest_helper:silk_arms(THURG_ARMOR.Silk_Sleeves, 31079), + -- chest + quest_helper:silk_chest(THURG_ARMOR.Silk_Robe, 31078), + -- helm + quest_helper:silk_helmet(THURG_ARMOR.Silk_Turban, 31077), +} + +function event_trade(e) + + local item_lib = require('items'); + + if (item_lib.check_turn_in(e.self, e.trade, {item1 = 1427, item2 = 1417})) then + e.self:Say("Ohh, that's better. I get so touchy when I'm hungry. I should probably go apologize to Derrin for being snappy. Please return this to Mordin for me."); + e.other:Faction(e.self,406, 3); --coldain + e.other:Faction(e.self,405, 1); --Dain + e.other:Faction(e.self,419, -1); --kromrif + e.other:Faction(e.self,448, -1); --kromzek + e.other:QuestReward(e.self, 0, 0, 0, 0, 1424, 15000); + end + quest_helper:quest_turn_in(e, 3, QUEST_ITEMS, quest_helper.thurg_armor_success) +end diff --git a/thurgadina/Lorekeeper_Derrin.lua b/thurgadina/Lorekeeper_Derrin.lua new file mode 100644 index 0000000..04bf3e4 --- /dev/null +++ b/thurgadina/Lorekeeper_Derrin.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings traveler. and welcome to the Temple of Lore. This library contains the sacred scrolls and texts of our ancestors, detailing both the history of their lives and the trials of our people. Previously the lore contained within these halls was forbidden to enter the hands of outsiders such as yourself. However, his majesty Dain Frostreaver IV has recently decreed that certain tomes of our heritage should be shared with the newly arrived offlanders so that they might better understand our culture. I have recently inscribed and translated several of these books which you may purchase for a modest donation."); + end +end diff --git a/thurgadina/Lorekeeper_Einar.lua b/thurgadina/Lorekeeper_Einar.lua new file mode 100644 index 0000000..c580792 --- /dev/null +++ b/thurgadina/Lorekeeper_Einar.lua @@ -0,0 +1,44 @@ +--monk + +local quest_helper = require('velious_quest_helper'); +local THURG_ARMOR = quest_helper.THURG_ARMOR; + +local QUEST_ITEMS = { + quest_helper:melee_helmet(THURG_ARMOR.Leather_Cap, 31091), + quest_helper:melee_boots(THURG_ARMOR.Leather_Boots, 31097), + quest_helper:melee_chest(THURG_ARMOR.Leather_Tunic, 31092), + quest_helper:melee_arms(THURG_ARMOR.Leather_Sleeves, 31093), + quest_helper:melee_gloves(THURG_ARMOR.Leather_Gloves, 31095), + quest_helper:melee_bracer(THURG_ARMOR.Leather_Bracelet, 31094), + quest_helper:melee_legs(THURG_ARMOR.Leather_Leggings, 31096), +} + +function event_say(e) + if (e.other:GetFaction(e.self) <= 3) then + if(e.message:findi("hail")) then + e.self:Say("Greetings to you. I seek one that has chosen the path of monkhood. What do you call yourself?"); + elseif(e.message:findi("monk")) then + e.self:Say("Good. I had hoped you were one. I have heard that as seeker of the way you are in constant training to push yourself to your physical and mental limits. It is an admirable quality and I wish to aid you. I will provide you with a cap, a tunic, sleeves, bracers, gloves, leggings and boots."); + elseif(e.message:findi("cap")) then + e.self:Say("To create a piece of armor to protect your sensitive skull I will require three pieces of crushed coral as well as a eroded leather cap."); + elseif(e.message:findi("tunic")) then + e.self:Say("To create a spectacular tunic fit for your kind I will require three flawless diamonds and an eroded leather tunic. With the gems and my skills I may be able to draw out some of its magical powers."); + elseif(e.message:findi("sleeve")) then + e.self:Say("Protection for your arms will come at the price of three flawed emeralds and a set of eroded leather sleeves."); + elseif(e.message:findi("legging")) then + e.self:Say("I may be able to craft a set of wondrous leggings from a set of old eroded leather leggings and three flawed sea sapphires. It is amazing what you can do with a bit of magic."); + elseif(e.message:findi("glove")) then + e.self:Say("Protecting your hands is very important. I can create some excellent protection for your hands if you bring me three crushed topaz and a pair of eroded leather gloves."); + elseif(e.message:findi("bracer")) then + e.self:Say("For the bracers, I will require a eroded leather bracelet as well as three crushed flame emeralds. Return to me when you find such things."); + elseif(e.message:findi("boot")) then + e.self:Say("We use our feet so often, should not they be protected as well as any other portion of our bodies? If you seek fine protection for your feet return to me with three pieces of crushed black marble and a pair of eroded leather boots."); + end + else + e.self:Say("I do not know you well enough to entrust you with such a quest, yet."); + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 3, QUEST_ITEMS, quest_helper.thurg_armor_success) +end diff --git a/thurgadina/Lorekeeper_Gundlt.lua b/thurgadina/Lorekeeper_Gundlt.lua new file mode 100644 index 0000000..5e9a348 --- /dev/null +++ b/thurgadina/Lorekeeper_Gundlt.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ahem....yes, hail. I suppose that would suffice in this case. Well, then, hail to you, sir. I am Lorekeeper Gundlt, master keeper of etiquette. It is my duty, as ordained by the Grand Historian, to keep all records and rules on all royal audiences and dealings."); + elseif(e.message:findi("royal")) then + e.self:Say("Why, Frostreaver IV, of course! All who wish an audience must first consult with me to be educated on the proper way to address our great Dain. Do you wish an audience with the crown?"); + elseif(e.message:findi("crown")) then + e.self:Say("Very well, then. When you approach our king you must keep your head bowed and eyes focused approximately 5 to 6 feet in front of you. When you first see the boots of our Lord you must kneel before him and touch your forehead to your knee. At this point you may rise and address the king. He will not respond to the popular and mundane \"Hail.\" You must say, 'Greetings and good fortune to you, honored Dain Frostreaver IV.' Remember to mind your manners when in the presence of the Dain for his guards are fiercely protective of him."); + end +end diff --git a/thurgadina/Lorekeeper_Zorik.lua b/thurgadina/Lorekeeper_Zorik.lua new file mode 100644 index 0000000..1212b47 --- /dev/null +++ b/thurgadina/Lorekeeper_Zorik.lua @@ -0,0 +1,36 @@ +-- necromancer + +local quest_helper = require('velious_quest_helper'); +local THURG_ARMOR = quest_helper.THURG_ARMOR; +local QUEST_TEXT = { + hail="I seek those who practice the art of dark magicks. I seek those who call themselves necromancers. Are you a necromancer?", + necromancer="Excellent. Are you sure enough of your skills to undertake my tasks? If not, get out of my sight, weakling!", + tasks="'I thought so. One should never back down from a challenge. Once you have completed them, I will have a cap, a robe, sleeves, wristbands, gloves, leggings and boots to reward you with.", +} + +QUEST_TEXT = quest_helper.merge_tables(QUEST_TEXT, quest_helper.THURG_SILK_TEXT); + +local QUEST_ITEMS = { + -- boots + quest_helper:silk_boots(THURG_ARMOR.Silk_Boots, 31069), + -- legs + quest_helper:silk_legs(THURG_ARMOR.Silk_Pantaloons, 31068), + -- gloves + quest_helper:silk_gloves(THURG_ARMOR.Silk_Gloves, 31067), + -- wrist + quest_helper:silk_bracer(THURG_ARMOR.Silk_Wristband, 31066), + -- arms + quest_helper:silk_arms(THURG_ARMOR.Silk_Sleeves, 31065), + -- chest + quest_helper:silk_chest(THURG_ARMOR.Silk_Robe, 31064), + -- helm + quest_helper:silk_helmet(THURG_ARMOR.Silk_Turban, 31063) +} + +function event_say(e) + quest_helper.quest_text(e, QUEST_TEXT, 3); +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 3, QUEST_ITEMS, quest_helper.thurg_armor_success) +end diff --git a/thurgadina/Loremaster_Borannin.lua b/thurgadina/Loremaster_Borannin.lua new file mode 100644 index 0000000..3fb0416 --- /dev/null +++ b/thurgadina/Loremaster_Borannin.lua @@ -0,0 +1,57 @@ +-- prayer shawl quests + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ", please be seated and hear the Grand Historian, he is among the wisest of our people."); + elseif(e.message:findi("for the crown")) then + e.self:Say("Those eager to prove their loyalty to the Dain may do so by completing tasks that I have been commissioned to assign. If you wish to begin your service, return to me with four toes of our enemy, the Kromrif."); + elseif(e.message:findi("task")) then + e.self:Say("Every year the Dain replaces the trophies in his trophy room. There is a reward given for the best new trophy obtained. I intend to win this year and I will upgrade your prayer shawl for assisting me. Fill this box with ten Kromrif heads and bring me the combined contents along with the burlap shawl. I will submit the best one for the Dain's consideration."); + e.other:SummonCursorItem(17102); -- Item: Preservationists Box + elseif(e.message:findi("chore")) then + e.self:Say("The council agrees that you have demonstrated a disdain for our enemy, the Kromrif, that rivals our own. They now ask that you demonstrate your loyalty to the Dain by humbling yourself and serving our people. Give this, my seal, to Mordin. He will instruct you further."); + e.other:SummonCursorItem(1420); -- Item: Borannin's Seal + elseif(e.message:findi("brewing")) then + e.self:Say("Ahh yes, good to see you again, " .. e.other:GetCleanName() .. ". I wish it were under better circumstances that we meet today. For some time now we have sent teams of our finest rogues to gather intelligence for the Dain. Tanik Greskil is one of our best. He was recently sent into the heart of Kael Drakkel on a very important mission and has not returned. He is now long overdue, and fearing the worst, our wise council has asked me to dispatch a rescue party to determine what has become of him and return him to safety. I have decided to give you this opportunity to build upon the trust you have earned from the council. Will you accept this mission?"); + elseif(e.message:findi("accept this mission")) then + e.self:Say("The council will be pleased to hear of your acceptance. Scour the regions surrounding the city of the Giants. Discover what happened to Tanik and, if possible, return him to Thurgadin. If you are successful, remember to hand me your woven shawl. We seem to be running low on them, but I must say Mordin has never had so much help in the kitchen. Anyway, I will eagerly await word of your findings. Good luck, and may Brell protect you."); + elseif(e.message:findi("advance my reputation")) then + e.self:Say("" .. e.other:GetCleanName() .. "! Thank Brell you're here. I was about to send one of my Lorekeepers looking for you. It appears that the information Tanik acquired is most perilous indeed. The Dain has called an emergency session of the council and I must attend. We don't have the luxury of waiting for an appropriate task to arise, you must advance as soon as possible. Unfortunately, I have neither the time, nor the components to fashion the next few shawls for you. Ask Rexx Frostweaver about the prayer shawl and follow his direction carefully."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1199}, 0)) then + e.self:Say("Incredible! Never before has an outlander been skilled and determined enough to craft our sacred rune. You are now worthy of the Dain's most perilous task. You should seek an audience with the Dain immediately. Show him your Runed Prayer Shawl; he will give you the task that has been prepared for you. If the Dain is away show your Shawl to Chamberlain Krystorf and he will call for him."); + e.other:QuestReward(e.self,0,0,0,0,1199); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29125,item2 = 29125,item3 = 29125,item4 = 29125}, 0)) then -- 4 frost giant toes + e.self:Say("Ahh, well done! On behalf of the Dain I thank you for making a dent in the number of our sworn enemy. Please accept this as a token of our appreciation. It is trivial, I know, but if you are as loyal as you claim to be, it will increase in power over time. It just so happens I have a [task] to further demonstrate your loyalty, " .. e.other:GetCleanName() .. "."); + ColdainFaction(e); + e.other:QuestReward(e.self,0,0,0,0,1175,10000); -- xp reward verified from live packet + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1175,item2 = 1174})) then -- burlap shawl and preserved kromrif heads + e.self:Say("Ahh, some fine specimens indeed, " .. e.other:GetCleanName() .. ". I will have the best of these mounted at once, wish me luck in the contest! Here is the Cloth Prayer Shawl of our people. Before I forget, the council has issued yet another [chore] for you to complete."); + ColdainFaction(e); + e.other:QuestReward(e.self,0,0,0,0,1176,25000); -- xp reward verified from live packet + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1176,item2 = 1422})) then -- thoridains seal and cloth shawl + e.self:Say("Well done, " .. e.other:GetCleanName() .. ", the council will be impressed with your effort. Here is the woven prayer shawl, wear it with pride. I know there is talk of great plans for you, be sure to come back and ask me what the council has [brewing]."); + ColdainFaction(e); + e.other:QuestReward(e.self,{items = {1422,1177},exp = 50000}); -- Item: Seal of Thoridain + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1177,item2 = 1560})) then -- tanik's note and woven shawl + e.self:Say("Words cannot express our gratitude for your deeds outlander, you have saved a hero of our people from certain death. Please accept this, the Fur-lined shawl, as a token of our sincere appreciation. You are indeed among the most highly regarded " .. e.other:Race() .. "s to set foot in Thurgadin. The next time we meet be sure to ask me how to further advance your reputation with the coldain."); + e.other:Faction(e.self,406,20); -- coldain + e.other:Faction(e.self,405,5); -- dain + e.other:Faction(e.self,448,-2); -- kzek + e.other:Faction(e.self,419,-10); -- krif + e.other:QuestReward(e.self,0,0,0,0,1178,100000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function ColdainFaction(e) + e.other:Faction(e.self,406,10); -- coldain + e.other:Faction(e.self,405,2); -- dain + e.other:Faction(e.self,448,-1); -- kzek + e.other:Faction(e.self,419,-5); -- krif +end diff --git a/thurgadina/Loremaster_Dorinan.lua b/thurgadina/Loremaster_Dorinan.lua new file mode 100644 index 0000000..23fd3bd --- /dev/null +++ b/thurgadina/Loremaster_Dorinan.lua @@ -0,0 +1,59 @@ +-- cleric + +local quest_helper = require('velious_quest_helper'); +local THURG_ARMOR = quest_helper.THURG_ARMOR; + +local QUEST_ITEMS = { + -- boots + quest_helper:priest_boots(THURG_ARMOR.Plate_Boots, 31048), + -- legs + quest_helper:priest_legs(THURG_ARMOR.Plate_Greaves, 31047), + -- gloves + quest_helper:priest_gloves(THURG_ARMOR.Plate_Gauntlets, 31046), + -- wrist + quest_helper:priest_bracer(THURG_ARMOR.Plate_Bracer, 31045), + -- arms + quest_helper:priest_arms(THURG_ARMOR.Plate_Vambraces, 31044), + -- bp + quest_helper:priest_chest(THURG_ARMOR.Breastplate, 31043), + -- helm + quest_helper:priest_helmet(THURG_ARMOR.Plate_Helmet, 31042) +} + +function event_say(e) + if (e.other:GetFaction(e.self) <= 3) then + if(e.message:findi("hail")) then + e.self:Say("Greetings to you. You are far away from your homelands, stranger. I am looking for someone. We here at the Temple of Lore are always seeking fellow priests of various faiths. Tell me, "..e.other:Race()..", are you a cleric?"); + elseif(e.message:findi("cleric")) then + e.self:Say("Ah, a most pious one indeed. I sense the aura of your devotion and conviction and they are strong about you. A shame you are so short-lived. But I see potential in you and for that I shall aid you in your calling, cleric. Do you wish my aid?"); + elseif(e.message:findi("aid")) then + e.self:Say("Then I have a set of goals for you. Once you have achieved them, you shall be rewarded with such as these: a helm, a breastplate, armplates, bracers, gauntlets, greaves and boots. May they protect you from your enemies."); + elseif(e.message:findi("helm")) then + e.self:Say("Those who are wise as we are know that protection of the head is most important. I may be able to forge you something most interesting if you were to bring me a corroded plate helm and three pieces of crushed onyx sapphire."); + elseif(e.message:findi("breastplate")) then + e.self:Say("If you find a corroded breastplate and three pieces of black marble bring them to me and I shall attempt to create an enchanted breastplate that will serve you well.") + elseif(e.message:findi("armplate")) then + e.self:Say("Three jaundice gems and a set of corroded plate vambraces might be an interesting combination. The powers of the gems may be harvested to imbue the vambraces."); + elseif(e.message:findi("bracer")) then + e.self:Say("Bracers are quite easy to imbue. Simply find three crushed opals and a corroded plate bracer and I will complete the ritual to enchant them."); + elseif(e.message:findi("boot")) then + e.self:Say("Simply bring me a set of three crushed flame emeralds and a pair of corroded plate boots and I will imbue them. I bid you good luck in finding such things."); + elseif(e.message:findi("gauntlet")) then + e.self:Say("Strong protection for one's hands is important. I may be able to craft you a set of powerful plate gauntlets if you find a set of corroded plate gauntlets and three crushed lava rubies."); + elseif(e.message:findi("greave")) then + e.self:Say("'A set of corroded greaves might be salvageable if you were to find three chipped onyx sapphires. With the right techniques almost anything is possible."); + end + else + e.self:Say("I do not know you well enough to entrust you with such a quest, yet."); + end +end + +function event_signal(e) + if (e.signal == 1) then + e.self:Say("The Grand Historian cannot be disturbed right now. Loremaster Borannin will assist you if you seek to perform duties for the crown. If you wish to learn more of our history and culture please speak to the loremasters in the Temple's library here."); + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 3, QUEST_ITEMS, quest_helper.thurg_armor_success) +end diff --git a/thurgadina/Loremaster_Einar.lua b/thurgadina/Loremaster_Einar.lua new file mode 100644 index 0000000..f98d7f3 --- /dev/null +++ b/thurgadina/Loremaster_Einar.lua @@ -0,0 +1,36 @@ +-- monk +local quest_helper = require('velious_quest_helper'); +local THURG_ARMOR = quest_helper.THURG_ARMOR; +local QUEST_TEXT = { + hail="Greetings to you. I seek one that has chosen the path of monkhood. What do you call yourself?", + monk="Good. I had hoped you were one. I have heard that as seeker of the way you are in constant training to push yourself to your physical and mental limits. It is an admirable quality and I wish to aid you. I will provide you with a cap, a tunic, sleeves, bracers, gloves, leggings and boots.", + +} + +QUEST_TEXT = quest_helper.merge_tables(QUEST_TEXT, quest_helper.THURG_LEATHER_TEXT); + +local QUEST_ITEMS = { + -- boots + quest_helper:melee_boots(THURG_ARMOR.Leather_Boots, 31097), + -- legs + quest_helper:melee_legs(THURG_ARMOR.Leather_Leggings, 31096), + -- gloves + quest_helper:melee_gloves(THURG_ARMOR.Leather_Gloves, 31095), + -- wrist + quest_helper:melee_bracer(THURG_ARMOR.Leather_Bracelet, 31094), + -- arms + quest_helper:melee_arms(THURG_ARMOR.Leather_Sleeves, 31093), + -- chest + quest_helper:melee_chest(THURG_ARMOR.Leather_Tunic, 31092), + -- helm + quest_helper:melee_helmet(THURG_ARMOR.Leather_Cap, 31091) +} + +function event_say(e) + quest_helper.quest_text(e, QUEST_TEXT, 3); +end + + +function event_trade(e) + quest_helper:quest_turn_in(e, 3, QUEST_ITEMS, quest_helper.thurg_armor_success) +end \ No newline at end of file diff --git a/thurgadina/Mandla_Klolp.lua b/thurgadina/Mandla_Klolp.lua new file mode 100644 index 0000000..c1334a9 --- /dev/null +++ b/thurgadina/Mandla_Klolp.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("What can I do fer ya? If yer lookin' fer a handout I got nothin for ya. Me darn husband wastes what little money we make on gamblin'. What a sucker! I don't know why I married him."); + elseif(e.message:findi("him") or e.message:findi("husband")) then + e.self:Say("Yeah, he's out there somewheres. Oh well, what's a woman to do? I can't sit around and moan all day. I should just learn to have fun with what I have."); + end +end diff --git a/thurgadina/Mauren_Frostbeard.lua b/thurgadina/Mauren_Frostbeard.lua new file mode 100644 index 0000000..fa48c53 --- /dev/null +++ b/thurgadina/Mauren_Frostbeard.lua @@ -0,0 +1,35 @@ +-- wizard + +local quest_helper = require('velious_quest_helper'); +local THURG_ARMOR = quest_helper.THURG_ARMOR; +local QUEST_TEXT = { + hail="Greetings to you. I seek those who call themselves wizards. Are you a wizard, -name?", + wizard="I thought so. I have several tasks for you accomplish. Once you have completed them I will have a cap, a robe, sleeves, wristbands, gloves, leggings and boots to reward you with.", +} + +QUEST_TEXT = quest_helper.merge_tables(QUEST_TEXT, quest_helper.THURG_SILK_TEXT); + +local QUEST_ITEMS = { + -- boots + quest_helper:silk_boots(THURG_ARMOR.Silk_Boots, 31062), + -- legs + quest_helper:silk_legs(THURG_ARMOR.Silk_Pantaloons, 31061), + -- gloves + quest_helper:silk_gloves(THURG_ARMOR.Silk_Gloves, 31060), + -- wrist + quest_helper:silk_bracer(THURG_ARMOR.Silk_Wristband, 31059), + -- arms + quest_helper:silk_arms(THURG_ARMOR.Silk_Sleeves, 31058), + -- chest + quest_helper:silk_chest(THURG_ARMOR.Silk_Robe, 31057), + -- helm + quest_helper:silk_helmet(THURG_ARMOR.Silk_Turban, 31056) +} + +function event_say(e) + quest_helper.quest_text(e, QUEST_TEXT, 3); +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 3, QUEST_ITEMS, quest_helper.thurg_armor_success) +end diff --git a/thurgadina/Meg_Tucter.lua b/thurgadina/Meg_Tucter.lua new file mode 100644 index 0000000..9792999 --- /dev/null +++ b/thurgadina/Meg_Tucter.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("The gems I carry were actually collected by geonids, a race of rock and gem people that communicate with their minds alone. If'n ye haven't had the chance to see one yet I suggest ye journey to the Wakenin' Lands; they've reportedly got a colony somewhere in that area."); + elseif(e.message:findi("pure enchanted velium")) then + e.self:Say("Wow that is an odd request " .. e.other:GetCleanName() .. ". Very rarely do we make an item that requires a pure bar of metal. Pure enchanted velium bars are made by combing three enchanted velium bars in a forge along with a coldain velium temper, pure water and a Coldain smithy hammer. Tis quite expensive but it enables the crafter to obtain pure working materials."); + elseif(e.message:findi("etching tool")) then + e.self:Say("Oh, really? There are not many that work in faceting gems. I am surprised to see your interest. You can have this old set of mine. There is no need to return the tools, Talem recently made me a new sturdy set. Brell bless him."); + e.other:SummonCursorItem(8893); -- Item: Etching Tools + end +end diff --git a/thurgadina/Mordin_Frostcleaver.lua b/thurgadina/Mordin_Frostcleaver.lua new file mode 100644 index 0000000..b8b101a --- /dev/null +++ b/thurgadina/Mordin_Frostcleaver.lua @@ -0,0 +1,52 @@ +-- lead in text to figure out what to say to loremaster borannin to start +-- the prayer shawl quests +-- +-- involved in 3rd prayer shawl quest + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ah, allo there, and welcome to me shop, " .. e.other:GetCleanName() .. ". Ye'll have to excuse the mess but I've been havin a bloody good time here lately. . . HAR HAR, ye get it? Anyways, thanks to you offlanders I now have a selection of some exotic meats never afore seen here on Velious. I've been amazed at the demand for some of 'em. I can't seem to keep shark meat in stock any more. I wonder if eatin' raw fish is catching on? In addition to supplyin' the freshest meat in Thurgadin I also offer tasks to would-be hunters in the wastes."); + elseif(e.message:findi("tasks")) then + e.self:Say("Sorry, " .. e.other:GetCleanName() .. ", but I've got no tasks to offer ye this week. If ye be seriously lookin fer sumthin ta do ask ole Borannin 'bout duties fer the crown.."); + elseif(e.message:findi("tundrabear sandwich")) then + e.self:Say("Dat's easy, ye just take a slab o' dat Tundra Kodiak meat and a jug o' sauce, put it in da oven, den combine the product with a loaf o' bread in a mixin' bowl an' there ye be."); + elseif(e.message:findi("snow bunny stew")) then + e.self:Say("Simple enuff, getcherself two hunksa Bunny meat and a jug o' sauces. Stir 'em in a mixin bowl, then put spices and two flasks o' water with it and cook it in a pot. Mmmm, zesty!"); + elseif(e.message:findi("ulthork meat pie")) then + e.self:Say("Hmm, lemme look that one up. Been a while since I made one. Here we are, two Ulthork meats, a vinegar and a spices in a mixin' bowl. Put yer meat mix, a clump o' dough, an' a pie tin in da oven an' yer good ta go."); + elseif(e.message:findi("snow griffin souffle")) then + e.self:Say("This one's a bit tricky, ya toss four snow griffin eggs and a pack of spices in de oven. Ye must bake it just right or it's all gunna be wasted. When yer done bring it to Thoridain and if ye did it right he'll give ye his special seal. Just show Borannin that seal and yer shawl and he'll know that yer finished in the kitchen."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1420}, 0)) then + e.self:Say("Hullo, " .. e.other:GetCleanName() .. ", I see you've signed on for a bit of food service eh? Well, we can always use an extra pair o' hands here dat's fer sure. First things first, warsh yer grubby mitts an' cook up dinner fer good ol' Leif. Should'n be too tough fer ye, he has simple enough taste. Make him a Tundrabear sandwich an' lemme know when he's been fed. Don'tcha ferget ta give him this with his meal."); + e.other:QuestReward(e.self,0,0,0,0,1415); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1419}, 0)) then + e.self:Say("Well don, outlander! We'll make a chef of you before we're through. Next you'll need to whip up some Snow Bunny stew fer Missus Coldheart. Again, give her this napkin with her meal an' lemme know when she's been served."); + e.other:Faction(e.self,406,2); -- coldain + e.other:Faction(e.self,405,1); -- dain + e.other:Faction(e.self,448,-1); -- kzek + e.other:Faction(e.self,419,-1); -- krif + e.other:QuestReward(e.self,0,0,0,0,1416,100000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1423}, 0)) then + e.self:Say("Now yer cookin! Letsee here... Guard Leif, check... Trita Coldheart, check... Ahh yes, next we need an Ulthork meat pie fer Brita. She's a doll, smart too, but she can be testy when she's hungry so get movin'!"); + e.other:Faction(e.self,406,3); -- coldain + e.other:Faction(e.self,405,1); -- dain + e.other:Faction(e.self,448,-1); -- kzek + e.other:Faction(e.self,419,-1); -- krif + e.other:QuestReward(e.self,0,0,0,0,1417,150000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1424}, 0)) then + e.self:Say("More dirty dishes, eh? Well outlander, only one more meal to serve and I'll be done with ye. Make a snow griffin souffle fer the Grand Historian himself. It's his favorite."); + e.other:Faction(e.self,406,3); -- coldain + e.other:Faction(e.self,405,1); -- dain + e.other:Faction(e.self,448,-1); -- kzek + e.other:Faction(e.self,419,-1); -- krif + e.other:QuestReward(e.self,0,0,0,0,1418,200000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/thurgadina/Nimren_Stonecutter.lua b/thurgadina/Nimren_Stonecutter.lua new file mode 100644 index 0000000..6ded33f --- /dev/null +++ b/thurgadina/Nimren_Stonecutter.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("The finest ore fresh from the mines I have! Take a look, why don't ye, " .. e.other:GetCleanName() .. ". I'm sure I've got somethin' ye be needin'."); + end +end diff --git a/thurgadina/Normon_Stonetooth.lua b/thurgadina/Normon_Stonetooth.lua new file mode 100644 index 0000000..8aea94f --- /dev/null +++ b/thurgadina/Normon_Stonetooth.lua @@ -0,0 +1,28 @@ +-- The Velium Focus + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("seems to ignore your greeting, peering at the stone in front of him intently as if reading some invisible text. After a long while he sighs deeply and says, 'Somethin I kin help ye with, whoever you are?"); + elseif(e.message:findi("who are you")) then + e.self:Emote("speaks as he continues staring at the stone, 'I mine. So they call me a miner. Name's Normon, Normon Stonetooth, Normon the miner.. Did I say I mine?"); + elseif(e.message:findi("mine")) then + e.self:Say("Well I look fer velium o'course. But ye know, I pull very little of it out o the mundane rock these days. Sometimes I hear it whisperin' to me. The stone, the velium, everything down here talks to each other. If ye're lucky enough they tell ya secrets. That be why I listen more these days than pull velium."); + elseif(e.message:findi("secret")) then + e.self:Say("Now if'n I told ye that it wouldn't be a secret no more now would it? No, I can't tell ya what they tells me, but I kin help ya ta listen. But first ye'll need ta do me a favor heheh."); + elseif(e.message:findi("favor")) then + e.self:Say("Ahh, well me pick is a bit dull, don't cut like it should. Up in the city proper ye kin find a weapons smith named Hakon. Take me pick axe and and tell him Stonetooth sent ye. Then give it to him, wait fer him ta sharpen it, an bring it back to me. Then I'll help ya ta listen to the stone."); + e.other:SummonCursorItem(1690); -- Norman's Axe (unsharpened axe) + elseif(e.message:findi("stone")) then + e.self:Say("If ye gots brains ye kin probably figure the Stonetooth clan were a family o' miners. I been down 'ere so long though, I can't rightly remember if they be aroun' anymore, aside from me that is. Oh well, I don't care much really, I got me rocks."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1691}, 0)) then -- Norman's Axe + e.self:Say("Ahhhh, good work, " .. e.other:GetCleanName() .. ". Now ta speak with the stone ye need somethin' ta focus on. Use this piece o' velium as yer focus. Ta speak the language o' the stone ye need ta slow down like the stone. Rock looks like it don't move but it does, just real slow. So place yer focus on the stones ye wish ta speak with and get yerself real slow, both yer body an' yer noggin. Then if yer quiet enough ye might hear 'em. An' that's what's to it."); + e.other:QuestReward(e.self,0,0,0,0,1692,500); -- Velium Focus V1 + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/thurgadina/Pearce_Icefang.lua b/thurgadina/Pearce_Icefang.lua new file mode 100644 index 0000000..4b4dc9f --- /dev/null +++ b/thurgadina/Pearce_Icefang.lua @@ -0,0 +1,46 @@ +--beastlord + +local quest_helper = require('velious_quest_helper'); +local THURG_ARMOR = quest_helper.THURG_ARMOR; + +local QUEST_ITEMS = { + quest_helper:melee_helmet(THURG_ARMOR.Leather_Cap, 5453), --helm + quest_helper:melee_chest(THURG_ARMOR.Leather_Tunic, 5454), --bp + quest_helper:melee_arms(THURG_ARMOR.Leather_Sleeves, 5455), -- arms + quest_helper:melee_bracer(THURG_ARMOR.Leather_Bracelet, 5456), --bracer + quest_helper:melee_gloves(THURG_ARMOR.Leather_Gloves, 5457), -- gloves + quest_helper:melee_legs(THURG_ARMOR.Leather_Leggings, 5458), -- legs + quest_helper:melee_boots(THURG_ARMOR.Leather_Boots, 5459), -- boots +} + +function event_say(e) + if (e.other:GetFaction(e.self) <= 3) then + if(e.message:findi("hail")) then + e.self:Emote("speaks in a rumbling tone. 'Greetings. I only wish to speak to a beastlord. Are you a beastlord?'"); + elseif(e.message:findi("beastlord")) then + e.self:Say("I sense that you are in tune with yourself and with nature. You have learned much from your travels and I shall help you by providing you with protection from harm and the elements in the form of armor."); + elseif(e.message:findi("armor")) then + e.self:Say("For you I shall make a cap, tunic, sleeves, bracers, gloves, leggings, and boots. Each piece is a quest unto itself. To seek the components you must search the lands for them and test the power of the spirit within."); + elseif(e.message:findi("cap")) then + e.self:Say("Those who are wise as we are know that protection of the head is most important. I may be able to sew you something most interesting if you were to bring me an eroded leather cap and three pieces of crushed coral."); + elseif(e.message:findi("tunic")) then + e.self:Say("If you find an eroded leather tunic and three flawless diamonds bring them to me and I shall attempt to create an enchanted tunic that will serve you well."); + elseif(e.message:findi("sleeves")) then + e.self:Say("Three flawed emeralds and a set of eroded leather sleeves might be an interesting combination. The powers of the gems may be harnessed to imbue the sleeves."); + elseif(e.message:findi("bracers")) then + e.self:Say("Bracers are quite easy to imbue. Simply find three crushed flame emeralds and a eroded leather bracelet and I will complete the ritual to enchant them."); + elseif(e.message:findi("gloves")) then + e.self:Say("Strong protection for one's hands is important. I may be able to craft you a set of enchanted leather gloves if you find a set of eroded leather gloves and a set of three crushed topaz."); + elseif(e.message:findi("leggings")) then + e.self:Say("Leggings are a bit trickier to imbue. Three flawed sea sapphires will allow me to channel the correct energies into a pair of eroded leather leggings. However, those flawed sea sapphires are somewhat rare. Return to me if you find such things in your journeys."); + elseif(e.message:findi("boots")) then + e.self:Say("Simply bring me a set of three crushed black marbles and a pair of eroded leather boots and I will imbue them. I bid you good luck in finding such things."); + end + else + e.self:Say("I do not know you well enough to entrust you with such a quest, yet."); + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 3, QUEST_ITEMS, quest_helper.thurg_armor_success) +end diff --git a/thurgadina/Perkins_Doughbeard.lua b/thurgadina/Perkins_Doughbeard.lua new file mode 100644 index 0000000..e751120 --- /dev/null +++ b/thurgadina/Perkins_Doughbeard.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("As far as I'm concerned there are only two arts in this world: alcohol and food. The Velium Keg is probably the best place to go for the former but I've got all yer needs for the latter covered right here."); + end +end diff --git a/thurgadina/Petcas_Coldbeard.lua b/thurgadina/Petcas_Coldbeard.lua new file mode 100644 index 0000000..a17a9bd --- /dev/null +++ b/thurgadina/Petcas_Coldbeard.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail to ye as well offlander. I bid you welcome to the Icy Mug, one o' the finest establishments for a drink in Thurgadin. Whether it's [souvenirs] or stories yer lookin for, you've come to the right place."); + elseif(e.message:findi("souvenir")) then + e.self:Say("Here at the Icy Mug we have our own signature stein fer yer drinkin pleasure. For only 5 gold pieces ye can take one home to show yer kinfolk."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {gold = 5}, 0)) then + e.self:Say("Here ya go!"); + e.other:QuestReward(e.self,0,0,0,0,30145); -- The Icy Mug Souvenir Stein + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/thurgadina/Pythic_Urson.lua b/thurgadina/Pythic_Urson.lua new file mode 100644 index 0000000..fbc4820 --- /dev/null +++ b/thurgadina/Pythic_Urson.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("turns and looks at you. 'What? He goes back to drinking his ale and resting."); + elseif(e.message:findi("ale")) then + e.self:Say("Its a fine Coldain ale. Good for quenchin yer thirst after a hard day of minin. The ales name doesnt matter cause ya wouldnt be able to hold it down anyways. Har har."); + elseif(e.message:findi("mining")) then + e.self:Say("Aye. Mining. Im a miner. Thats a hard one to put together eh? Yer about as sharp as me hammer and as quick as the mining crud on me boots."); + elseif(e.message:findi("crud")) then + e.self:Say("Mining crud, thats what I said. Mixture o' velium dust, mud, and whatever other junk is left on the floor after I be minin. Hard as a giant to fight off me boots."); + elseif(e.message:findi("boots")) then + e.self:Say("There used ta be a mixture we used ta clean off our boots but that was when we had more warriors ta get ta different places. Now it aint possible so the crud just keeps buildin up on me boots."); + elseif(e.message:findi("warriors")) then + e.self:Say("If you think ya can get what's needed then go ahead. The mixture used ta be made out of saps and acidic oozes. You find some and bring it to me maybe I can slap it together."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30058,item2 = 30060})) then -- fresh tree sap and Bladder of Acidic Ooze + e.self:Emote("laughs at you and then takes the sap and bladder. He mixes the two together and then adds something from a small pouch he carries. With a quick sizzle he pours some on his boots and the crud melts away. 'See that? Didnt do anythin but get rid of the crud. This stuff is great. It doesnt burn yer skin or valuables. Here ya go, ya can have the rest.'"); + e.other:QuestReward(e.self,0,0,0,0,30061,5000); -- Dissolving liquid + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/thurgadina/Rexx_Frostweaver.lua b/thurgadina/Rexx_Frostweaver.lua new file mode 100644 index 0000000..a158c9c --- /dev/null +++ b/thurgadina/Rexx_Frostweaver.lua @@ -0,0 +1,22 @@ +-- fifth coldain prayer shawl + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hmmm, ye be one o them offlanders, don't ye? I've heard some strange tales o yer kind so don't be tryin' any funny business with me. I know the value of a platinum piece and I'll not get cheated by yer foreign coin."); + elseif(e.message:findi("prayer shawl")) then + e.self:Say("Gather five strands of crystalline silk thread and combine them in a sewing kit to make a crystalline silk fiber. Take this container and combine a glowing shardwurm bile with three of the fibers to form a piece of glowing crystalline silk. Five pieces of glowing crystalline silk sewn to your fur-lined shawl will yield a beautiful silk shawl. Become a master in the art of tailoring before risking all you've worked for and be sure to let me inspect your work when it's complete."); + e.other:SummonCursorItem(17879); -- Item: Glowing Bile Soaker + elseif(e.message:findi("worthy")) then + e.self:Say("To ensure your worthiness you must continue to refine your prayer shawl. Speak with my wife Betti regarding the embroidered shawl and listen carefully to her words. Hurry now, there seems to be a sense of urgency about."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1179}, 0)) then + e.self:Say("Splendid, " .. e.other:GetCleanName() .. ", this is beautiful workmanship! As the Grand Historian may have mentioned, our esteemed Dain Frostreaver the fourth is making some important plans with his council. These plans will doubtlessly include you if the Dain deems you worthy."); + e.other:QuestReward(e.self,{itemid = 1179}); -- Item: Silk Coldain Prayer Shawl + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/thurgadina/Rumagur.lua b/thurgadina/Rumagur.lua new file mode 100644 index 0000000..e3d0586 --- /dev/null +++ b/thurgadina/Rumagur.lua @@ -0,0 +1,7 @@ +function event_waypoint_arrive(e) + if(e.wp == 4) then + e.self:SetRunning(false); + elseif(e.wp == 9) then + eq.stop(); + end +end \ No newline at end of file diff --git a/thurgadina/Talem_Tucter.lua b/thurgadina/Talem_Tucter.lua new file mode 100644 index 0000000..4273d79 --- /dev/null +++ b/thurgadina/Talem_Tucter.lua @@ -0,0 +1,19 @@ +-- part of 7th coldain prayer shawl + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("A ring or necklace for yer sweetheart, traveler? It'll be sure ta brighten their day and ye'll not find finer craftmanship this side o' the Gretespeign."); + elseif(e.message:findi("casing")) then + e.self:Say("Combine two platinum bars, a small piece of velium and the casing pattern in a Jeweler's kit. Take the completed casing and the rune and combine them in the same kit. When this is done all that's left is to tailor the rune to the shawl with the pattern. Take the finished product to Borannin, I'm sure he's eager to speak with you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1859}, 0)) then-- Item: Velium etched rune + e.self:Say("I've heard of your mission, " .. e.other:GetCleanName() .. ". I must admit that I had my doubts you'd make it this far. The rune's creation is nearly impossible for even the most skilled of Coldain craftsmen. You should be exceedingly proud. Many have attempted this feat and nearly all have lacked the skill, faith, patience and persistence that is prerequisite for what destiny holds in store for you. You are now ready to use this pattern to construct the sacred rune's casing and complete the runed shawl."); + e.other:QuestReward(e.self,{items = {1859,2040}}); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/thurgadina/Tavir.lua b/thurgadina/Tavir.lua new file mode 100644 index 0000000..9b702e8 --- /dev/null +++ b/thurgadina/Tavir.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I've found it at last! By calculating the aerodynamic plane of the shaft and measuring it against the wind resistance and downward pull of the head I've managed to create the perfect arrow! I suggest ye take advantage of my stock while it lasts, " .. e.other:GetCleanName() .. ". it sure as Brell won't be around for long."); + end +end diff --git a/thurgadina/Templar_Franchus.lua b/thurgadina/Templar_Franchus.lua new file mode 100644 index 0000000..a8d107f --- /dev/null +++ b/thurgadina/Templar_Franchus.lua @@ -0,0 +1,9 @@ +-- Templar Franchus + +function event_spawn(e) + eq.set_timer("command", 480000); -- Make him say speech every 8 mins +end + +function event_timer(e) + e.self:Say("Ok lads, remember what I taught you now. Thrust, block, slash..."); +end diff --git a/thurgadina/Templar_Tingar.lua b/thurgadina/Templar_Tingar.lua new file mode 100644 index 0000000..90a2914 --- /dev/null +++ b/thurgadina/Templar_Tingar.lua @@ -0,0 +1,19 @@ +-- Templar Tingar + +function event_spawn(e) + eq.set_timer("talk",480000); +end + +function event_timer(e) + local count = 0; + if(e.timer == "talk") then + count = count + 1; + if(count == 1) then + e.self:Say("Oh Brell, what ever did I do to inspire your wrath?"); + elseif(count == 2) then + e.self:Say("Ok, let's try this again."); + e.self:Say("ROYGHT FACE!"); + count = 0; + end + end +end diff --git a/thurgadina/Terman_Underbelly.lua b/thurgadina/Terman_Underbelly.lua new file mode 100644 index 0000000..ed1a64e --- /dev/null +++ b/thurgadina/Terman_Underbelly.lua @@ -0,0 +1,46 @@ +-- shaman + +local quest_helper = require('velious_quest_helper'); +local THURG_ARMOR = quest_helper.THURG_ARMOR; + +local QUEST_ITEMS = { + quest_helper:priest_helmet(THURG_ARMOR.Chain_Coif, 31007), --helm + quest_helper:priest_chest(THURG_ARMOR.Chain_Tunic, 31008), --bp + quest_helper:priest_arms(THURG_ARMOR.Chain_Sleeves, 31009), -- arms + quest_helper:priest_bracer(THURG_ARMOR.Chain_Bracer, 31010), --bracer + quest_helper:priest_gloves(THURG_ARMOR.Chain_Gauntlets, 31011), -- gloves + quest_helper:priest_legs(THURG_ARMOR.Chain_Leggings, 31012), -- legs + quest_helper:priest_boots(THURG_ARMOR.Chain_Boots, 31013) -- boots +} + +function event_say(e) + if (e.other:GetFaction(e.self) <= 3) then + if (e.message:findi("hail")) then + e.self:Emote("speaks in a rumbling tone. 'Greetings. I only wish to speak to a shaman. Are you a shaman?'"); + elseif (e.message:findi("shaman")) then + e.self:Say("I sense the strength of your mystical powers within you and they vibrate with power. You have learned much from your travels and I shall help you by providing you with protection from harm and the elements in the form of armor."); + elseif (e.message:findi("armor")) then + e.self:Say("For you I shall make a coif, tunic, sleeves, bracers, gauntlets, leggings, and boots. Each piece is a quest unto itself. To find the components you must search the lands for them and test the power of the spirit within."); + elseif (e.message:findi("coif")) then + e.self:Say("Those who are wise as we are know that protection of the head is most important. I may be able to forge you something most interesting if you were to bring me a corroded chain coif and three pieces of crushed onyx sapphire."); + elseif (e.message:findi("tunic")) then + e.self:Say("If you find a corroded chain tunic and three pieces of black marble bring them to me and I shall attempt to create an enchanted tunic that will serve you well."); + elseif (e.message:findi("sleeve")) then + e.self:Say("Three jaundice gems and a set of corroded chain sleeves might be an interesting combination. The powers of the gems may be harnessed to imbue the sleeves."); + elseif (e.message:findi("bracer")) then + e.self:Say("Bracers are quite easy to imbue. Simply find three crushed opals and a corroded chain bracer and I will complete the ritual to enchant them."); + elseif (e.message:findi("gauntlet")) then + e.self:Say("Strong protection for one's hands is important. I may be able to craft you a set of powerful chain gauntlets if you find a set of corroded chain gauntlets and three crushed lava rubies."); + elseif (e.message:findi("legging")) then + e.self:Say("Leggings are a bit trickier to imbue. Three chipped onyx sapphires will allow me to channel the correct energies into a pair of corroded chain leggings. However, those chipped onyx sapphires are somewhat rare. Return to me if you find such things in your journeys."); + elseif (e.message:findi("boot")) then + e.self:Say("Simply bring me a set of three crushed flame emeralds and a pair of corroded chain boots and I will imbue them. I bid you good luck in finding such things."); + end + else + e.self:Say("I do not know you well enough to entrust you with such a quest, yet."); + end +end + +function event_trade(e) + quest_helper:quest_turn_in(e, 3, QUEST_ITEMS, quest_helper.thurg_armor_success) +end diff --git a/thurgadina/Thermin_Wandereye.lua b/thurgadina/Thermin_Wandereye.lua new file mode 100644 index 0000000..3af5870 --- /dev/null +++ b/thurgadina/Thermin_Wandereye.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh. HI! Hey, you're an adventurer aren't you? Yeah I thought so from your worn clothes and weapons. Wow, is that a real bloodstain? Some day I'll be adventuring out there too, some day, they'll see..."); + elseif(e.message:findi("they")) then + e.self:Say("Ooohh, everyone at work. They always say I'll never do it, that I don't have the guts. Well, I do. They'll see. We'll see who's laughing when I pack up and go on a grand quest to win my fortune and glory. "); + elseif(e.message:findi("quest")) then + e.self:Say("Well, I haven't figured out that part yet. I guess I'll slay a dragon, maybe save a princess or two. You know, the normal stuff. I don't want to get too crazy, heheh, you know... like calculate which weapon is the most efficient and debate over it in public forums to no end."); + end +end diff --git a/thurgadina/Timer.lua b/thurgadina/Timer.lua new file mode 100644 index 0000000..d98af8a --- /dev/null +++ b/thurgadina/Timer.lua @@ -0,0 +1,8 @@ +function event_spawn(e) + eq.set_timer("zonereset",7200000); +end + +function event_timer(e) + eq.stop_timer("zonereset"); + eq.repop_zone(); +end diff --git a/thurgadina/Tobart_Dirkins.lua b/thurgadina/Tobart_Dirkins.lua new file mode 100644 index 0000000..cde234d --- /dev/null +++ b/thurgadina/Tobart_Dirkins.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail and welcome to the Broken Glacier, " .. e.other:GetCleanName() .. ". Ye'll find the bar downstairs and comfortable rooms up top. Can I interest you in one of our signature mugs, only a platinum piece they are!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {platinum = 1}, 0)) then + e.self:Emote("Thank ye and enjoy it. All the bars here in Thurgadin have their own mugs, just ask the barkeep if'n yer interested."); + e.other:QuestReward(e.self,0,0,0,0,30146,5); + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/thurgadina/Trademaster_Kroven.lua b/thurgadina/Trademaster_Kroven.lua new file mode 100644 index 0000000..7517472 --- /dev/null +++ b/thurgadina/Trademaster_Kroven.lua @@ -0,0 +1,17 @@ +-- part of seventh coldain prayer shawl + +function event_say(e) + if(e.message:findi("burin")) then + e.self:Say("You'll need a fletching kit and a fair bit of skill for this one, " .. e.other:GetCleanName() .. ". Round up a tooth from a swordfish and attatch it to an Ulthork tusk wrapped in a Molkor hide."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1852}, 0)) then -- Item: Blank rune + e.self:Say("Fine piece of work there, " .. e.other:GetCleanName() .. ", especially fer an outlander. Now yer gunna need to make a burin to etch the rune with. Once that's done ye need to kneel in front of the Grand Historian in the chapel and recite this prayer to him with total sincerity in yer heart. If yer plea be heard by our Father Brell he'll bless ya with the knowledge necessary to carry on. With that knowledge you'll take the blank rune, the burin and a fletching kit to etch the rune. Show Grimthor the etched rune and he'll guide you from there."); + e.other:QuestReward(e.self,{items = {1852,18281}}); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/thurgadina/Travit_Conwil.lua b/thurgadina/Travit_Conwil.lua new file mode 100644 index 0000000..22f5d32 --- /dev/null +++ b/thurgadina/Travit_Conwil.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Uuuhh, this be a private room, me friend. Mayhap ye should leave before somethin' unfortunate happens."); + elseif(e.message:findi("unfortunate")) then + e.self:Say("Oh, I don't know. A guard could suddenly run into the room holdin' his axe straight up in the air like we're taught not to. Ye could be right in his way. Oh, the thought of it just makes me lau... err sick...Maybe ye should leave, eh?"); + end +end diff --git a/thurgadina/Trita_Coldheart.lua b/thurgadina/Trita_Coldheart.lua new file mode 100644 index 0000000..c508348 --- /dev/null +++ b/thurgadina/Trita_Coldheart.lua @@ -0,0 +1,15 @@ +-- frost bunny stew portion of 3rd coldain prayer shawl + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1426,item2 = 1416})) then + e.self:Say("Thanks for the Snow Bunny Stew, " .. e.other:GetCleanName() .. ", I haven't tasted snow bunny stew this good in quite some time. Be a dear and take this back to Mordin for me."); + e.other:Faction(e.self,406,2); -- coldain + e.other:Faction(e.self,405,1); -- dain + e.other:Faction(e.self,448,-1); -- kzek + e.other:Faction(e.self,419,-1); -- krif + e.other:QuestReward(e.self,0,0,0,0,1423,10000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/thurgadina/Ungdin.lua b/thurgadina/Ungdin.lua new file mode 100644 index 0000000..1f876ff --- /dev/null +++ b/thurgadina/Ungdin.lua @@ -0,0 +1,18 @@ +-- Velium Retreival + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Uuuuhhh, how goes it, " .. e.other:Race() .. "? Oh, I'm doin' jest fine down here, just hanging around... Mining! Yes mining for our fearless leader, the Dain. Yessiree... sssoooooo..."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Hmmm, not sure why you're giving me all this. 50 pieces of platinum Whew, wow, I may be coming down with and the note something."; + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1725, platinum = 50},1,text)) then + e.self:Emote("darts his eyes about the room before retrieving a large box from under the table. He takes the platinum and the note, then hands you the box without a word."); + e.other:QuestReward(e.self,0,0,0,0,29064); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/thurgadina/Valdicar_Shadowfrost.lua b/thurgadina/Valdicar_Shadowfrost.lua new file mode 100644 index 0000000..ab02501 --- /dev/null +++ b/thurgadina/Valdicar_Shadowfrost.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well, hello there, my good fellow. I see you've somehow found your way into my private quarters, very adventurous. Normally I'd have you removed but it's refreshing to see someone with guts like you have. Too many people in this cit... err ... world have no guts. No initiative. Someday that will change, though."); + elseif(e.message:findi("guts")) then + e.self:Emote("chuckles as he thinks back on days of old. He says, 'Oh yes, back when I wore a scabbard as you do, I saw more than my share of guts. Ahh, but I am retired now, although I still negotiate contracts for specific services now and again."); + elseif(e.message:findi("contract")) then + e.self:Say("Unfortunately, I have none currently, but I'll let you know if I do get some in. Farewell, " .. e.other:GetCleanName() .. "."); + end +end diff --git a/thurgadina/Yates_the_Butler.lua b/thurgadina/Yates_the_Butler.lua new file mode 100644 index 0000000..d300881 --- /dev/null +++ b/thurgadina/Yates_the_Butler.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I'm terribly sorry, good fellow, but this residence is privately owned. Your presence here is quite disconcerting for my master. I implore you to take your leave. Thaaaaanks."); + end +end diff --git a/thurgadina/You.lua b/thurgadina/You.lua new file mode 100644 index 0000000..e6623cd --- /dev/null +++ b/thurgadina/You.lua @@ -0,0 +1,36 @@ +local count = 0; + +function event_spawn(e) + eq.set_timer("proxsay",2000); +end + +function event_timer(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 25, xloc + 25, yloc - 25, yloc + 25); + eq.enable_proximity_say(); + eq.stop_timer("proxsay"); +end + +function event_proximity_say(e) + local xloc = e.other:GetX(); + local yloc = e.other:GetY(); + local nxloc = e.self:GetX(); + local nyloc = e.self:GetY(); + local xdiff = xloc - nxloc; + local ydiff = yloc - nyloc; + if(e.message:findi("hail") and e.other:GetGM()) then -- debug only + e.self:Say("Your x is ".. xdiff .." and your y is " .. ydiff .." from me!"); + end + + if(e.message:findi("oh brell, thank you for protecting me and seeing me through my trials. forgive me for the things I think and say and do that displease you. Please reveal to me your will and bless me with the patience and obedience to do that which you desire. amen")) then + count = count + 1; + end + + if (count == 3) then + e.self:Emote("have been inspired. The sacred pattern of the Coldain rune materializes on the ground before you."); + eq.create_ground_object(1855,793,-320,-17,0); + count = 0; + end +end diff --git a/thurgadina/encounters/fronden.lua b/thurgadina/encounters/fronden.lua new file mode 100644 index 0000000..c89caaf --- /dev/null +++ b/thurgadina/encounters/fronden.lua @@ -0,0 +1,110 @@ +local ThreadManager = require("thread_manager"); +local fronden = nil; + +function frondenConversation() + local saramor = eq.get_entity_list():GetMobByNpcTypeID(115010); + if(saramor.valid) then + saramor:Say("So good to see you, Rumagur. I hope you're feelin better today."); + end + ThreadManager:Wait(0.65); + + local rumagur = eq.get_entity_list():GetMobByNpcTypeID(115187); + if(rumagur.valid) then + rumagur:Say("Aye Sara, much better indeed. With the help of good Fronden here I think I've finally figured out what was causing the alarming condition under me left arm. I must admit it was givin me quite a scare for a while, not to mention the pain was drivin me to drink."); + end + ThreadManager:Wait(0.65); + + if(saramor.valid) then + saramor:Say("Well, don't ya just keep us in suspense now. What in the world was it?"); + end + ThreadManager:Wait(0.65); + + if(rumagur.valid) then + rumagur:Say("Every day I come here to wet me whistle and I stand in the same spot, facin' the same way. As yer good wares take effect on me I lean more and more upon the bar here. The constant pressure was causin' me to develop... well... barsores. So I'll just have to face the other way from now on."); + end + local jorumin = eq.get_entity_list():GetMobByNpcTypeID(115188); + if(jorumin.valid) then + jorumin:CastToNPC():DoAnim(63); + end + ThreadManager:Wait(0.65); + + if(jorumin.valid) then + jorumin:CastToNPC():DoAnim(63); + end + fronden:Say("Seramor, please remind me to water down the spirits a bit."); + ThreadManager:Wait(0.65); + ThreadManager:Wait(0.65); + + fronden:Say("So I was polishing up the bar the other day when in hops this piece of rope and says, 'I'll take a bottle of Frostreaver's Frozen Vodka.' I look at him and I says, 'We don't serve no ropes here, now beat it!' Hehe. . ."); + ThreadManager:Wait(0.65); + + fronden:Say("Not ten minutes later a piece of rope comes hoppin' in and says the same thing, only this one's tied up in the middle and one end is all messed up. So I says, 'Hey, ain't you the same piece o' rope I just kicked outta here?'"); + ThreadManager:Wait(0.65); + + fronden:Say("He looks me dead in the eyes and says, 'Nope, I'm afraid not.' "); + if(rumagur.valid) then + rumagur:CastToNPC():DoAnim(65); + end + if(jorumin.valid) then + jorumin:CastToNPC():DoAnim(65); + end + ThreadManager:Wait(0.65); + + if(rumagur.valid) then + rumagur:Say("Say, Fronden, ya got anything stronger lyin' around back there?"); + end + ThreadManager:Wait(0.65); + + fronden:Say("Hmm, let's see here, aah yes. This is a special bottle handed down to me by my father, and it's been in my family for ages. Not really sure what it's made of, but yer welcome to give it a try."); + ThreadManager:Wait(0.65); + + if(rumagur.valid) then + rumagur:Say("I'd be honored to try your family recipe. Thank ye."); + end + ThreadManager:Wait(0.65); + + fronden:Emote("watches as Rumagur pours the contents of the bottle into his mouth."); + ThreadManager:Wait(0.65); + + if(rumagur.valid) then + rumagur:Emote("looks at Fronden through crossed eyes and whispers hoarsely, 'Smooth'."); + end + ThreadManager:Wait(0.65); + ThreadManager:Wait(0.65); + + if(rumagur.valid) then + rumagur:CastToNPC():DoAnim(15); + end +end + +function SaramorWaypoint(e) + if(e.wp == 4) then + e.self:SetRunning(false); + elseif(e.wp == 9) then + eq.stop(); + eq.signal(115014,1); -- NPC: Loremaster_Fronden + end +end + +function frondenHeartbeat(e) + if(e.timer == "fromden_hb") then + fronden = e.self; + ThreadManager:GarbageCollect(); + ThreadManager:Resume("frondenConversation"); + end +end + +function frondenSignal(e) + ThreadManager:Create("frondenConversation", frondenConversation); +end + +function frondenSpawn(e) + eq.set_timer("fromden_hb", 20000); +end + +function event_encounter_load(e) + eq.register_npc_event("fronden", Event.waypoint_arrive, 115010, SaramorWaypoint); + eq.register_npc_event("fronden", Event.timer, 115014, frondenHeartbeat); + eq.register_npc_event("fronden", Event.spawn, 115014, frondenSpawn); + eq.register_npc_event("fronden", Event.signal, 115014, frondenSignal); +end diff --git a/thurgadina/encounters/horasug.lua b/thurgadina/encounters/horasug.lua new file mode 100644 index 0000000..9236519 --- /dev/null +++ b/thurgadina/encounters/horasug.lua @@ -0,0 +1,112 @@ +local ThreadManager = require("thread_manager"); +local horasug = nil; + +function HorasugConversation() + horasug:Say("My beloved brethren! Hear me now, I have seen a sacred vision..."); + + local rumagur = eq.get_entity_list():GetMobByNpcTypeID(115187); + if(rumagur.valid) then + rumagur:Say("Hey Fronden, I want a double of whatever you've been serving him!"); + end + ThreadManager:Wait(0.65); + + horasug:Say("In my vision, Brell himself spoke to me! He indicated that the path to true enlightenment could only be found through sobriety. Substances such as alcohol only serve to cloud the mind and keep us from our true destiny!"); + + local saramor = eq.get_entity_list():GetMobByNpcTypeID(115010); + if(saramor.valid) then + saramor:Say("Blasphemer!"); + end + + local froden = eq.get_entity_list():GetMobByNpcTypeID(115014); + if(froden.valid) then + froden:Emote("raises an eyebrow at Horasug."); + end + ThreadManager:Wait(0.65); + horasug:Say("Mock me if you will brothers, I am off to seek audience with the Dain where I will convince him of the evils of liquor. I am sure he will have our taverns serving only water and juice by day's end."); + + if(saramor.valid) then + saramor:Say("Get him boys!"); + end + + local jorumin = eq.get_entity_list():GetMobByNpcTypeID(115188); + if(jorumin.valid) then + jorumin:Say("Over my dead body!"); + end +end + +function HorasugBar() + horasug:Say("Whew, that was a close one!"); + + local doogle = eq.get_entity_list():GetMobByNpcTypeID(115142); + if(doogle.valid) then + doogle:Say("Hello there Horasug! What brings ya here?") + end + ThreadManager:Wait(0.65); + + horasug:Say("I had a sacred vision from Brell himself!"); + + if(doogle.valid) then + doogle:Say("A vision you say? What exactly was this a vision of?") + end + ThreadManager:Wait(0.65); + + horasug:Emote("thinks for a moment, looking at the roomful of rugged patrons."); + ThreadManager:Wait(0.65); + + horasug:Say("Heh, I saw meself here at Doogie's Drinks partaking of the finest Coldain ale in the land, of course!"); + + if(doogle.valid) then + doogle:Say("Well, you came to the right place, Horasug. A few of these ales will fill you with all the visions you can handle.") + end +end + +function HorasugWaypoint(e) + horasug = e.self; + if(e.wp == 1) then + ThreadManager:Create("HorasugConversation", HorasugConversation); + elseif(e.wp == 2) then + horasug:SetRunning(true); + horasug:Say("Uh oh"); + local rumagur = eq.get_entity_list():GetMobByNpcTypeID(115187); + if(rumagur.valid) then + rumagur:SetRunning(true); + rumagur:CastToNPC():AssignWaypoints(7); + end + + local saramor = eq.get_entity_list():GetMobByNpcTypeID(115010); + if(saramor.valid) then + saramor:SetRunning(true); + saramor:CastToNPC():AssignWaypoints(6); + end + + local jorumin = eq.get_entity_list():GetMobByNpcTypeID(115188); + if(jorumin.valid) then + jorumin:SetRunning(true); + jorumin:CastToNPC():AssignWaypoints(8); + end + elseif(e.wp == 19) then + horasug:SetRunning(false); + ThreadManager:Create("HorasugBar", HorasugBar); + elseif(e.wp == 42) then + horasug:SetAppearance(1); + end +end + +function HorasugHeartbeat(e) + if(e.timer == "horasug_hb") then + horasug = e.self; + ThreadManager:GarbageCollect(); + ThreadManager:Resume("HorasugConversation"); + ThreadManager:Resume("HorasugBar"); + end +end + +function HorasugSpawn(e) + eq.set_timer("horasug_hb", 9000); +end + +function event_encounter_load(e) + eq.register_npc_event("horasug", Event.waypoint_arrive, 115013, HorasugWaypoint); + eq.register_npc_event("horasug", Event.timer, 115013, HorasugHeartbeat); + eq.register_npc_event("horasug", Event.spawn, 115013, HorasugSpawn); +end diff --git a/thurgadina/encounters/ronodun.lua b/thurgadina/encounters/ronodun.lua new file mode 100644 index 0000000..e04a859 --- /dev/null +++ b/thurgadina/encounters/ronodun.lua @@ -0,0 +1,73 @@ +local ThreadManager = require("thread_manager"); +local ronodun = nil; + +function ronodunConversation() + ronodun:Say("Hullo, Petcas. Four dwarven ales please. Line 'em up for me, I need to knock 'em down quick."); + ThreadManager:Wait(0.65); + + local Petcas = eq.get_entity_list():GetMobByNpcTypeID(115141); + if(Petcas.valid) then + Petcas:Say("What's the rush there, youngster?") + end + + ronodun:Say("Long story, Pet. I was studying with Grand Historian Thoridain's daughter last week. Outta nowhere she came and kissed me right on the mouth! Just then her father walked in and wouldn't listen when I tried to explain."); + ThreadManager:Wait(0.65); + + if(Petcas.valid) then + Petcas:Say("That's not good, the Grand Historian's mighty protective of his daughter. What he do after he caught ya?") + end + + ronodun:Say("He went and told the Dain himself! I was summoned to the throne the next day where his highness sentenced me to a month of Thoridain's sermons. I just now managed to sneak away for a little refreshment."); + eq.set_timer("hiccup",4000); + ThreadManager:Wait(0.65); + + if(Petcas.valid) then + Petcas:Say("Well, coulda been worse. A month's worth of sermons is a far sight better than a trip to the bottom of the Dain's well."); + end + ThreadManager:Wait(0.65); + + if(Petcas.valid) then + Petcas:Say("Here ya go, Ronodun, on the house this time. Drink fast, don't need the Grand Historian to come lookin' fer ya..."); + end + + ronodun:Say("Thank ye, Pet. Yer most kind."); + ThreadManager:Wait(0.65); + + if(Petcas.valid) then + Petcas:Say("My pleasure, son. You just remember to keep me in all those prayers you'll be sayin this month. Hahhahah!"); + end +end + +function ronodunWaypoint(e) + ronodun = e.self; + if(e.wp == 1) then + ronodun:SetAppearance(1); + ronodun:Emote("belches"); + elseif(e.wp == 23) then + ThreadManager:Create("ronodunConversation", ronodunConversation); + elseif(e.wp == 45) then + ronodun:SetAppearance(1); + end +end + +function ronodunHeartbeat(e) + ronodun = e.self; + if(e.timer == "ronodun_hb") then + ThreadManager:GarbageCollect(); + ThreadManager:Resume("ronodunConversation"); + end + if(e.timer == "hiccup") then + ronodun:Emote("hiccups!"); + eq.stop_timer("hiccup"); + end +end + +function ronodunSpawn(e) + eq.set_timer("ronodun_hb", 8000); +end + +function event_encounter_load(e) + eq.register_npc_event("ronodun", Event.waypoint_arrive, 115019, ronodunWaypoint); + eq.register_npc_event("ronodun", Event.timer, 115019, ronodunHeartbeat); + eq.register_npc_event("ronodun", Event.spawn, 115019, ronodunSpawn); +end diff --git a/thurgadina/encounters/thoridain.lua b/thurgadina/encounters/thoridain.lua new file mode 100644 index 0000000..a46b6a5 --- /dev/null +++ b/thurgadina/encounters/thoridain.lua @@ -0,0 +1,84 @@ +local ThreadManager = require("thread_manager"); +local thoridain = nil; + +function thoridainLecture() + thoridain:Say("We are taught from day one that the truth lies underfoot. It is simple common sense then, that the taller a being is, the farther his mind and heart are from the truth. Always be wary of those larger in stature than us.") + eq.signal(115197,1, 6000); -- NPC: Bintain + ThreadManager:Wait(0.65); + + thoridain:Say("If we Coldain just work together, obeying Brell's teachings, nothing can stop us from overcoming our enemies. Even the Kromrif will fall before us if we are undivided. It is only when we stray from our fundamental knowledge that we are vulnerable.") + ThreadManager:Wait(0.65); + + thoridain:Say("Allow me to share a short story from my youth. It begins when I was just tail high to a snow bunny. Instead of tending to my studies, I snuck out and participated in what was then our 300th annual snowball fighting tournament...") + eq.signal(115191,1, 6000); -- NPC: Doriggan + ThreadManager:Wait(0.65); + + thoridain:Say("I have an important announcement to make today. The Dain has heard rumor of a faction of our brethren who openly oppose the crown. If you come forth with any information leading to the discovery of any such traitorous vermin you will be richly rewarded. Their fate most certainly lies at the bottom of the well.") +end + +function thoridainHeartbeat(e) + thoridain = e.self; + if(e.timer == "start") then + ThreadManager:Create("thoridainLecture",thoridainLecture) + elseif(e.timer == "thoridain_hb") then + ThreadManager:GarbageCollect(); + ThreadManager:Resume("thoridainLecture"); + end +end + +function thoridainSpawn(e) + eq.set_timer("start", 360000); + eq.set_timer("thoridain_hb", 90000); +end + +function dorigganWaypoint(e) + if(e.wp == 5) then + eq.stop(); + e.self:SetAppearance(1); + end +end + +function bintainSignal(e) + e.self:Say("That explains why the dern Kromrif are so thickheaded..."); + eq.signal(115194,1, 6000); -- NPC: Arikain +end + +function arikainSignal(e) + e.self:Emote("whispers into Lorran's ear, 'He's so wise, no wonder the Dain made him Grand Historian.'"); +end + +function dorigganSignal(e) + if(e.signal == 1) then + e.self:Emote("snores loudly"); + eq.signal(115021,1, 6000); -- NPC: Durfa + elseif(e.signal == 2) then + e.self:Say("OWW!"); + eq.signal(115135,1, 14000); -- NPC: Grand_Historian_Thoridain + elseif(e.signal == 3) then + e.self:Say("Yes, Grand Historian Thoridain"); + eq.start(11); + end +end + +function durfaSignal(e) + if(e.signal == 1) then + e.self:Emote("pinches Doriggan"); + eq.signal(115191,2); -- NPC: Doriggan + end +end + +function thoridainSignal(e) + e.self:Say("Young Doriggan, perhaps you will find it easier to focus on my words from a standing position. That corner will do fine."); + eq.signal(115191,3); -- NPC: Doriggan +end + +function event_encounter_load(e) + eq.register_npc_event("thoridain", Event.timer, 115135, thoridainHeartbeat); + eq.register_npc_event("thoridain", Event.spawn, 115135, thoridainSpawn); + eq.register_npc_event("thoridain", Event.waypoint_arrive, 115191, dorigganWaypoint); + eq.register_npc_event("thoridain", Event.signal, 115197, bintainSignal); + eq.register_npc_event("thoridain", Event.signal, 115194, arikainSignal); + eq.register_npc_event("thoridain", Event.signal, 115191, dorigganSignal); + eq.register_npc_event("thoridain", Event.signal, 115021, durfaSignal); + eq.register_npc_event("thoridain", Event.signal, 115135, thoridainSignal); +end diff --git a/thurgadina/script_init.lua b/thurgadina/script_init.lua new file mode 100644 index 0000000..e7049dc --- /dev/null +++ b/thurgadina/script_init.lua @@ -0,0 +1,4 @@ +eq.load_encounter("horasug"); +eq.load_encounter("fronden"); +eq.load_encounter("thoridain"); +eq.load_encounter("ronodun"); diff --git a/thurgadinb/#Dain_Frostreaver_IV.lua b/thurgadinb/#Dain_Frostreaver_IV.lua new file mode 100644 index 0000000..2de4430 --- /dev/null +++ b/thurgadinb/#Dain_Frostreaver_IV.lua @@ -0,0 +1,60 @@ +function event_say(e) + if(e.message:findi("greetings and good fortune to you, honored dain frostreaver iv")) then + if(e.other:GetFaction(e.self) >= 5) then + e.self:Emote("seems to stare right into your soul with his one good eye. A chill runs down your spine."); + elseif(e.other:GetFaction(e.self) >= 3) then + e.self:Emote("smiles at you and nods his head indicating he has been pleased with your progress."); + else + e.self:Say("Greetin's and good fortune to yerself, " .. e.other:Race() .. ". Chamberlain Krystorf speaks highly of the deeds you have performed for our people and so I welcome you to my Keep. I ask you now to take up a most dangerous duty for our people. Would you accept such a challenge from the King of a people not your own?"); + e.self:DoAnim(48); + end + elseif(e.message:findi("accept")) then + if(e.other:GetFaction(e.self) < 3) then + e.self:Emote("smiles at you with pride and says, 'Something told me you would, " .. e.other:GetCleanName() .. ". For years upon years the plagues of King Tormax have been unleashed upon my people. And indeed it was also by Tormax's hand that me own father, Dain Frostreaver the Third was slain. My attempts at assassinating him have only met with failure, and our forces, while strong, are not yet mighty enough to assault Kael Drakkel. Therefore I have ye and yer companions as my last hope, " .. e.other:GetCleanName() .. ". Kill that bastard who calls himself King Tormax... and bring me his head!'"); + end + elseif(e.message:findi("mission")) then + if(e.other:GetFaction(e.self) < 3) then + e.self:Say("After General Bragmur has equipped the armor you have created for him, give him these orders. He is a skilled diplomat and will need to reach the pirate Gnomes. We must enter into a pact with them. We will supply them the velium that they need to build their silly gadgets, and they will take their ship back to Antonica and call for reinforcements from out ancestors. We hope they will acceppt this pact, after all Brell has been known to align himself with Bristlebane whom the Gnomes of Iceclad follow. You may be an important [factor] in their success."); + end + elseif(e.message:findi("factor")) then + if(e.other:GetFaction(e.self) < 3) then + e.self:Say("I fear that spies lurk in every corner. You may need to help the General reach the gnomish camp if the Kromrif have gotten word of our efforts. You should call on any allies that you have to assist in case they ambush you. Brell bless you " .. e.other:GetCleanName() .. ", good luck."); + end + elseif(e.message:findi("count on my help")) then + e.self:Say("Several of our greatest officers, including a few veterans from the war on Yesterwinter are assembling just outside our city. Gather your army at once and give this parchment and the ninth ring to Sentry Badian. I will remain inside the city with a few of my troops to defend it against any who might penetrate your defense. May Brell be with you, " .. e.other:GetCleanName() .. "."); + e.other:SummonCursorItem(1567); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 8886}, 0)) then -- Coldain Standard Issue Kit + e.self:Say("Excellent work " .. e.other:GetCleanName() .. ". If I didn't know I would assume this was made by our most skilled artisans. You must hurry, General Bragmur has formed camp in Iceclad. Take the kit to the General, he had to drudge forward without any armor. His [mission] must be a success if we hope to successfully defend Thurgadin against the Giants."); + e.other:QuestReward(e.self,{items = {8898,8897}}); -- Expedition Orders, Approved Issue Kit + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1199}, 0) or item_lib.check_turn_in(e.self, e.trade, {item1 = 8895}, 0)) then + e.self:Say("Ah " .. e.other:GetCleanName() .. ". I was hoping to see you. We require your skilled hand. The Armory is overtaxed preparing armor for the war we are preparing to wage on the Kromzek. We need you to help by creating some Field Plate for a mission that is near to execution. Go see Loremaster Solstrin in the Hall of Ancestors, give him these orders. He holds the lore recorded on how to make the field plate. Return to me when you have completed a Standard Issue Kit."); + e.other:QuestReward(e.self,{items = {8895,8896}}); -- Royal Coldain Orders, Runed Coldain Prayer Shawl (mark 2) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1465}, 0)) then + e.self:Say("My good " .. e.other:GetCleanName() .. ", you have served me well. You have flushed out all who sought to oppose me and my people. I am afraid I need to call upon you and your friends one final time. The dissention and treason ran deeper than I had anticipated. Our population has been cleansed, but we lost a full third of our army to the poisonous words of those rebels. In retaliation for your deeds, the Kromrif have made plans to attack us in this, our weakest hour. Can I count on your help outlander?"); + e.other:QuestReward(e.self,0,0,0,0,1465); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30516}, 0)) then + if(e.other:GetFaction(e.self) <= 2) then -- warmly or better + e.self:Say("You have done what no Coldain could do, " .. e.other:GetCleanName() .. "! This is indeed a glorious say in our people's history. In return for your invaluable service I present you with the Tri-plated Golden Hackle Hammer. Its magic is powerful and I am sure it will serve you well."); + e.self:Shout("Let it be know from this day forth that " .. e.other:GetCleanName() .. " and their companions are Heros of the Coldain Kingdom. King Tormax has been slain, it is a time for celebration. Let no tankard go unfilled!"); + e.other:Faction(e.self,405,100); -- Faction: Dain Frostreaver IV + e.other:Faction(e.self,406,100); -- Faction: Coldain + e.other:Faction(e.self,429,-50); -- Faction: King Tormax + e.other:QuestReward(e.self,0,0,0,0,30502); + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30385},0)) then -- 10th ring + if(e.other:GetFaction(e.self) <= 1) then + e.self:Say("" .. e.other:GetCleanName() .. ", your deeds have changed the fate of my people forever. Not since the sacrifice of Colin Dain himself has anyone so selflessly risked so much for our well being. Accept this blessing as a token of my gratitude."); + e.other:QuestReward(e.self,{items = {1747,30385}}); -- Protection of the Dain, 10th ring + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1500,item2 = 30164})) then + e.self:Say("The people of Thurgadin are in your debt, " .. e.other:GetCleanName() .. ". Please accept the Coldain Hero's Ring as a token of our gratitude. The curse has been removed from the blade as well. I hope you find it useful against our common foes. When you are interested in assisting me further please show me the blade. Until that day, may Brell bless and protect you."); + e.other:QuestReward(e.self,{items = {1465,30369}}); -- dirk of the Dain, 9th ring + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/thurgadinb/129005.lua b/thurgadinb/129005.lua new file mode 100644 index 0000000..80a7027 --- /dev/null +++ b/thurgadinb/129005.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("By Brell's black beard, ye startled me! So, it seems you have survived the dangers of the pit like we did. At first we thought it a blessing, but now we know that it is the curse of our dishonor."); + elseif(e.message:findi("dishonor")) then + e.self:Say("It hurts me still to speak of it, but I shall try. The three of us were banished from holy Thurgadin and cast into the pit for crimes we did commit. I myself was guilty of trading gems to the Kromrif. I thought nothing of it at the time save that they paid well. If only I had known back then, if only I wasn't so foolish."); + end +end diff --git a/thurgadinb/129006.lua b/thurgadinb/129006.lua new file mode 100644 index 0000000..2c594b5 --- /dev/null +++ b/thurgadinb/129006.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Yer not the first to come thru here ye know. O'er the years there have been a few who escaped a death in the pit and left thru the Tizmak caves below. It is to make up for my disgrace that I choose to stay."); + elseif(e.message:findi("tizmak")) then + e.self:Say("The Tizmak are a race of Yakmen that live in the caves below us. They're not the brightest lot but they have been good to us over the years. We have a nice little deal with them really, they bring us food and supplies and in exchange we make weapons and arms for them. They are a peaceful people unless provoked, but have proven themselves a useful ally against the Kromrif. It is in this secret manner that we may still serve our people and the will of Brell."); + end +end diff --git a/thurgadinb/129008.lua b/thurgadinb/129008.lua new file mode 100644 index 0000000..d18eaf2 --- /dev/null +++ b/thurgadinb/129008.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("starts to speak with you and then breaks down sobbing. Coldain Outcast says, 'I'm sorry, but I still can't bring myself to talk about it. It's too horrible, what I did. Please, either just buy something or leave me to my sorrows."); + end +end diff --git a/thurgadinb/129032.lua b/thurgadinb/129032.lua new file mode 100644 index 0000000..02b385d --- /dev/null +++ b/thurgadinb/129032.lua @@ -0,0 +1,3 @@ +function event_spawn(e) + eq.spawn_condition("thurgadinb",5,0); +end diff --git a/thurgadinb/Chamberlain_Krystorf.lua b/thurgadinb/Chamberlain_Krystorf.lua new file mode 100644 index 0000000..9657cf9 --- /dev/null +++ b/thurgadinb/Chamberlain_Krystorf.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings and welcome to Thurgadin, " .. e.other:GetCleanName() .. ". I am Chamberlain Krystorf and it is my duty to assist the Dain in the management of Icewell Keep and the Royal Court. One could say that Seneschal Aldikar is the Sword of the Dain while I am the Shield, protecting all of his interests and those of the kingdom."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "For storage reasons I'm afraid I can only accept four of these at once for the bounty." + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29062,item2 = 29062,item3 = 29062,item4 = 29062}, 1, text)) then + e.self:Say("Well done, " .. e.other:GetCleanName() .. ", the Dain is pleased with your efforts. With a few more brave allies like you, we'll soon be tearing down the halls of Kael Drakkel."); + -- Confirmed Live Faction and Experience + e.other:Faction(e.self,405, 50); -- Faction: Dain Frostreaver IV + e.other:Faction(e.self,406, 50); -- Faction: Coldain + e.other:Faction(e.self,429, -25); -- Faction: King Tormax + e.other:QuestReward(e.self,0,0,0,math.random(20),eq.ChooseRandom(30215,30219,30212,30263),5000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1199}, 0)) then + e.self:Say("One moment the Dain has been waiting for you. I will call for him.. oh here he is now, show your shawl to him."); + e.other:QuestReward(e.self,0,0,0,0,8895); + if(not e.other:HasItem(17651)) then + e.other:QuestReward(e.self,{itemid = 17651}); -- Item: Empty Coldain Issue Kit + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(129003) == false and eq.get_entity_list():IsMobSpawnedByNpcTypeID(129101) == false) then + eq.spawn_condition("thurgadinb",3,0); + eq.spawn_condition("thurgadinb",3,1); + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 8895}, 0)) then + e.self:Say("As I stated previously, you should show this to the Dain."); + e.other:QuestReward(e.self,{itemid = 8895}); -- Item: Runed Coldain Prayer Shawl + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/thurgadinb/Councilor_Amberfeld.lua b/thurgadinb/Councilor_Amberfeld.lua new file mode 100644 index 0000000..2d63167 --- /dev/null +++ b/thurgadinb/Councilor_Amberfeld.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail there, " .. e.other:GetCleanName() .. ". Amberfeld's the name and minin' is my trade. As the council representative of the Snowchippers, it be my duty ta make sure all these politicians and warmongers don't forget one thing. And that's that it's us miners that bring in the ore for weapons and the stones for their fancy houses."); + end +end diff --git a/thurgadinb/Councilor_Coldember.lua b/thurgadinb/Councilor_Coldember.lua new file mode 100644 index 0000000..6317a09 --- /dev/null +++ b/thurgadinb/Councilor_Coldember.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Watch yer step around the Icewell there, " .. e.other:GetCleanName() .. ". I've heard that a giant beast lives down in the pit waiting to devour those who earn the punishment of being dropped down there. Might be just I rumor but I swear I've heard some sounds comin up from the well that don't resemble any of the creatures we put in there."); + end +end diff --git a/thurgadinb/Councilor_Darakor.lua b/thurgadinb/Councilor_Darakor.lua new file mode 100644 index 0000000..41ac669 --- /dev/null +++ b/thurgadinb/Councilor_Darakor.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hmmph, if you've come here to actually get something accomplished yer wastin yer time. This lot'll babble on endlessly about politics and luxuries. Only the Dain and a few others like myself want to deal with the actual problems of the Coldain, that being the bloody Kromrif of course."); + end +end diff --git a/thurgadinb/Councilor_Darkfrost.lua b/thurgadinb/Councilor_Darkfrost.lua new file mode 100644 index 0000000..7cd4c10 --- /dev/null +++ b/thurgadinb/Councilor_Darkfrost.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It's that bastard Tormax whats the cause of all our trouble. What we need to do is send some specially trained assasins to take him out. Sure it's not the most honorable thing to do, but without him the giants wouldn't know what to do."); + end +end diff --git a/thurgadinb/Councilor_Deynekn.lua b/thurgadinb/Councilor_Deynekn.lua new file mode 100644 index 0000000..7c196fd --- /dev/null +++ b/thurgadinb/Councilor_Deynekn.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("smells strongly of ale. Councilor Deynekn says, '-hic-, whoa there lad, ye startled me! I'm uhhh -hic- just tired is all. Leave me -hic- be please. I've got umm important work to do! -hic-"); + end +end diff --git a/thurgadinb/Councilor_Dirkins.lua b/thurgadinb/Councilor_Dirkins.lua new file mode 100644 index 0000000..743cb9b --- /dev/null +++ b/thurgadinb/Councilor_Dirkins.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I'm sure if you've listened to my fellow councilors babble on for awhile you must surely think our nation is in chaos. Thats far from the truth however as we do not make the decisions for our people. It is the Dain's will alone that decides what course our people take, we simply offer our advice and opinions. Dain Frostreaver IV is a good and wise man, trust in him will take our people far I promise you."); + end +end diff --git a/thurgadinb/Councilor_Glacierbane.lua b/thurgadinb/Councilor_Glacierbane.lua new file mode 100644 index 0000000..44dc344 --- /dev/null +++ b/thurgadinb/Councilor_Glacierbane.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("The giants aren't our only problem ya know? Them Rygorr Orcs in the wastes are up ta no good as well. But I wouldn't worry too much about them if'n I were you. Me own son Garadain is out there takin care of them. I almost feel sorry for those orcs hehe."); + end +end diff --git a/thurgadinb/Councilor_Icelok.lua b/thurgadinb/Councilor_Icelok.lua new file mode 100644 index 0000000..bf3e739 --- /dev/null +++ b/thurgadinb/Councilor_Icelok.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Isn't Icewell the most beautiful Keep ye have ever seen stranger? I do hope you've taken the time to visit some of our other attractions in Thurgadin. I often go to remembrance park just to stare at the sculptures. Our people may be cold and simple, but keep in mind there is an artistic side to us as well."); + end +end diff --git a/thurgadinb/Councilor_Icepike.lua b/thurgadinb/Councilor_Icepike.lua new file mode 100644 index 0000000..0b8d3a0 --- /dev/null +++ b/thurgadinb/Councilor_Icepike.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("King Tormax must be stopped, no matter what the cost."); + end +end diff --git a/thurgadinb/Councilor_Juliah_Lockheart.lua b/thurgadinb/Councilor_Juliah_Lockheart.lua new file mode 100644 index 0000000..eba6a36 --- /dev/null +++ b/thurgadinb/Councilor_Juliah_Lockheart.lua @@ -0,0 +1,18 @@ +-- Councilor_Juliah_Lockheart +-- Part of the Coldain 9th Ring + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, my what a nice looking " .. e.other:Race() .. " you are, not that I've seen many of your kind mind you. I am Councilor Lockheart, representing the people of Thurgadin. Here is where we aid the Dain by presenting the peoples' will to him in the hopes that laws are made with the good interest of all our people in mind."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1464}, 0)) then -- Ring of the coldain council + eq.unique_spawn(129063,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()):AddToHateList(e.other,1); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/thurgadinb/Councilor_Thubins.lua b/thurgadinb/Councilor_Thubins.lua new file mode 100644 index 0000000..8c319ac --- /dev/null +++ b/thurgadinb/Councilor_Thubins.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Come to see the excitement of the court have you friend? I'm just now working on my latest draft for a new waste disposal ordinance to present to the Dain, it's absolutely fascinating!"); + end +end diff --git a/thurgadinb/Councilor_Wintershade.lua b/thurgadinb/Councilor_Wintershade.lua new file mode 100644 index 0000000..5ae7e67 --- /dev/null +++ b/thurgadinb/Councilor_Wintershade.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Councilor Darakor here would have you believe we should march every man, woman, and child in the city to Kael tommorow. He is a fool and so are those who support him. I for one would like to see greater steps in ending this senseless conflict. Oh sure the giants are unreasonable right now, but reason can be bought in time."); + end +end diff --git a/thurgadinb/Grand_Huntsman_Darral.lua b/thurgadinb/Grand_Huntsman_Darral.lua new file mode 100644 index 0000000..ca95941 --- /dev/null +++ b/thurgadinb/Grand_Huntsman_Darral.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail and welcome to the Dain's trophy room. Not many people realize that aside from bein' a great warrior and king. Frostreaver is also one of our nation's greatest hunters. Here you can see some examples of his handiwork including orcs, a frost giant, a snow griffin, and even a rare albino manticore! You can find many such rare critters in the Eastern Wastes. Good luck and happy huntin'."); + end +end diff --git a/thurgadinb/Loremaster_Solstrin.lua b/thurgadinb/Loremaster_Solstrin.lua new file mode 100644 index 0000000..57a946c --- /dev/null +++ b/thurgadinb/Loremaster_Solstrin.lua @@ -0,0 +1,72 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("bows before you and says, 'Greetings to you as well, " .. e.other:GetCleanName() .. ". I have recently heard many tales of your people and their glory. I am honored to welcome you to the Hall of Ancestors. Here our people come to pay tribute to the bravest and wisest of our kin who have passed from this life into Brell's holy domain. If you are interested I'd be happy to tell you a little bit about the heroes buried here."); + e.self:DoAnim(70); + elseif(e.message:findi("heroes")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- need faction requirement, only know its higher than indiff + e.self:Emote("smiles at you, obviously pleased by your interest. 'This hall contains the bodies of Dain Frostreavers the I, II, and III as well as his grace Grand Historian Nicmar. There is also an empty bier in the back awaiting the next hero of our people. But the most sacred tomb of all lies right behind me here.'"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("My instincts tell me you are almost ready to share in the knowledge of our greatest people, but you have a little ways to go to prove yourself worthy of such an honor."); + else + e.self:Say("You have yet to prove yourself as an ally to my people, " .. e.other:GetCleanName() .. ". Therefore, you have yet to earn the honor of sharing in the knowledge of these heroes."); + end + elseif(e.message:findi("nicmar")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- need faction requirement, only know its higher than indiff + eq.move_to(244,746,-41,0,false); + e.self:Say("Here lies the body of his grace Grand Historian Nicmar. Nicmar was a very prominent priest, scholar, architect, and artist. As an advisor to both Dain Frostreaver II and his son, Dain Frostreaver III, Nicmar still holds the record for oldest Coldain before dying of old age at the onset of the War of Yesterwinter. Nicmar was the chief architect of Thurgadin. He also built this Hall of Ancestors and sculpted the statues in Remembrance Park."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("My instincts tell me you are almost ready to share in the knowledge of our greatest people, but you have a little ways to go to prove yourself worthy of such an honor."); + else + e.self:Say("You have yet to prove yourself as an ally to my people, " .. e.other:GetCleanName() .. ". Therefore, you have yet to earn the honor of sharing in the knowledge of these heroes."); + end + elseif(e.message:findi("dain frostreaver i")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- need faction requirement, only know its higher than indiff + eq.move_to(244,714,-41,128,false); + e.self:Say("Here lies the body of his majesty Dain Frostreaver I. As the son of Colin Dain, he was the first crowned Dain of our people and also the first to carry the name Frostreaver, which was given to him by our people for his skills of dispatching Kromrif in melee combat. Original keeper of the magic axe Frostreaver, which has been passed down to our current Dain, he was a close friend of Glight Snowchipper and aided him in engineering the crystal caverns. It was there he met his death on a mining expedition deep into the caverns. No one was ever quite sure what killed him, only that the bodies of him and his party were found bloated and corrupted by foul poisons."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("My instincts tell me you are almost ready to share in the knowledge of our greatest people, but you have a little ways to go to prove yourself worthy of such an honor."); + else + e.self:Say("You have yet to prove yourself as an ally to my people, " .. e.other:GetCleanName() .. ". Therefore, you have yet to earn the honor of sharing in the knowledge of these heroes."); + end + elseif(e.message:findi("dain frostreaver ii")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- need faction requirement, only know its higher than indiff + eq.move_to(214,714,-41,128,false); + e.self:Say("Here lies the body of his majesty Dain Frostreaver II. Known as the Priest King, he was the only Dain whot was a loremaster before his father died and he was crowned Dain. It was by his will that we left our home in the Crystal Caves and founded Thurgadin. He worked closely with the architects and miners to ensure Thurgadin would be built secretly and defensively. Dain Frostreaver II died of old age with his dream intact, our city had yet to be discovered and our people lived in relative peace and safety for more than five centuries."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("My instincts tell me you are almost ready to share in the knowledge of our greatest people, but you have a little ways to go to prove yourself worthy of such an honor."); + else + e.self:Say("You have yet to prove yourself as an ally to my people, " .. e.other:GetCleanName() .. ". Therefore, you have yet to earn the honor of sharing in the knowledge of these heroes."); + end + elseif(e.message:findi("dain frostreaver iii")) then + if(e.other:GetFactionValue(e.self) >= 100) then -- need faction requirement, only know its higher than indiff + eq.move_to(214,746,-41,0,false); + e.self:Say("Here lies the body of his majesty Dain Frostreaver III. Known as the War King for his hot temper and brutal combat tactics, he ran a brutally offensive campaign that routed most of the giants from the Great Divide and half of the Eastern Wastes. Eventually, with the powerful magic of the Kromzek and the overwhelming might of the Kromrif, his armies were forced to retreat to the border of the Great Divide where he was killed on the battlefield in single combat at the hand of King Tormax. This war is now known as the War of Yesterwinter."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("My instincts tell me you are almost ready to share in the knowledge of our greatest people, but you have a little ways to go to prove yourself worthy of such an honor."); + else + e.self:Say("You have yet to prove yourself as an ally to my people, " .. e.other:GetCleanName() .. ". Therefore, you have yet to earn the honor of sharing in the knowledge of these heroes."); + end + elseif(e.message:findi("sacred tomb")) then + e.self:Say("In this block of ice lie the sole remnants of our great father, leader, and founder, Colin Dain. While leading our people to the safety of the mountains following the destruction of our beloved Froststone. Colin came to a grim realization. He knew that there was no way our people could outrun the giants and safely get away. And so he took thirty volunteers and led them in a suicide ambush to halt the giants' chase while the rest of our people got away. Without his sacrifice, the Coldain might very well have been wiped out that day. Once we were safe, scouts were dispatched to the battle with the hope of finding survivors. Amidst the field of bodies they found this crown, axe, and breastplate which belonged to our beloved leader. Of Colin's actual body, no remnant was ever found."); + elseif(e.message:findi("working with gemstone")) then + e.self:Say("Aye, gems are placed within the armor. Brell is pleased with this fusion of ore and gem. The combination produces a sturdy piece of armor. You will need some Etching Tools to work with the gems. If you ask Meg Tucter for a set, she should have some laying about."); + elseif(e.message:findi("issue kit")) then + e.self:Say("The Standard Issue Kit is what we issue to soldiers at the beginning of their mission. I have this empty one here. Before I give it to you, could you show me your Runed Coldain Prayer Shawl? I would like to see how skilled you are."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 8896}, 0)) then + e.self:Say("So, the Dain needs your assistance with the Field Plate. The Dain must trust you a great deal to impart the wisdom of our armor creation to you. Here are the tomes. The first details how to make the basic armor, the other details how to begin [working with gemstones]. If the Dain is asking you for them you should place them in an [Issue Kit]. May Brell guide your hand friend, good luck to you."); + e.other:QuestReward(e.self,{items = {18611,18610}}); -- Forge of Icewell Arms (Precious Gem Study), Forge of Icewell Arms (Royal Field Plate Study) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1199}, 0)) then -- Runed Coldain Prayer Shawl (mark 1) + e.self:Say("Incredible! Never before has an outlander been skilled and determined enough to craft our sacred rune. You are now worthy of the Dain's most perilous task. You should seek an audience with the Dain immediately. Show him your Runed Prayer Shawl; he will give you the task that has been prepared for you. If the Dain is away show your Shawl to Chamberlain Krystorf and he will call for him."); + e.other:QuestReward(e.self,{items = {1199,17651}}); -- Runed Coldain Prayer Shawl (mark 1), Empty Coldain Issue Kit + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 8895}, 0)) then -- Runed Coldain Prayer Shawl (mark 2) + e.self:Say("Incredible! Never before has an outlander been skilled and determined enough to craft our sacred rune. You are now worthy of the Dain's most perilous task. You should seek an audience with the Dain immediately. Show him your Runed Prayer Shawl; he will give you the task that has been prepared for you. If the Dain is away show your Shawl to Chamberlain Krystorf and he will call for him."); + e.other:QuestReward(e.self,{items = {8895,17651}}); -- Runed Coldain Prayer Shawl (mark 2), Empty Coldain Issue Kit + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/thurgadinb/Royal_Armorer_Slade.lua b/thurgadinb/Royal_Armorer_Slade.lua new file mode 100644 index 0000000..10a546b --- /dev/null +++ b/thurgadinb/Royal_Armorer_Slade.lua @@ -0,0 +1,55 @@ +-- Quest for Royal Armorer Slade in Icewell Keep - Custom Crown Quest + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("Welcome, " .. e.other:GetCleanName() .. ". I'm Slade, Royal Armorer to the Dain and his personal guardsmen. I've heard yer name once or twice in these halls and apparently ye've earned the respect of my people. In light of that I'm willin ta offer my [services] to you if'n ye need them."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I'm sorry, " .. e.other:GetCleanName() .. ", while I've heard good things about ye you've yet to prove yerself enough to my people to earn my services."); + else + e.self:Say("Leave me be, " .. e.other:Race() .. ". I have no reason to trust you yet."); + end + elseif(e.message:findi("service")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("If'n ye've had the fortune to earn any of the plate helms that are made by my people in the city then I can use my skills to custom fit and detail it for a " .. e.other:Race() .. " of yer like. I can do this fer the Dark Runed Crown, the Runed Protector's Helm, the Resonant Helm, the Crown of Forbidden Rites, Crown of the Kromzek Kings, Frostreaver's Velium Crown, Cowl of Mortality, and the Champions Crown. Simply hand me one of these and I'll do the work for you."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I'm sorry, " .. e.other:GetCleanName() .. ", while I've heard good things about ye you've yet to prove yerself enough to my people to earn my services."); + else + e.self:Say("Leave me be, " .. e.other:Race() .. ". I have no reason to trust you yet."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFaction(e.self) <= 3) then -- Require warmly and greater faction + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 31084}, 0)) then + e.self:Say("Here you are " .. e.other:GetCleanName() .. ". Ah, a perfect fit! May it serve you well."); + e.other:QuestReward(e.self,0,0,0,0,31519); -- Custom Champions Crown + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 26025}, 0)) then + e.self:Say("Here you are " .. e.other:GetCleanName() .. ". Ah, a perfect fit! May it serve you well."); + e.other:QuestReward(e.self,0,0,0,0,2612); -- Custom Cowl of Mortality + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31042}, 0)) then + e.self:Say("Here you are " .. e.other:GetCleanName() .. ". Ah, a perfect fit! May it serve you well."); + e.other:QuestReward(e.self,0,0,0,0,31518); -- Custom Crown of Forbidden Rites + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 25194}, 0)) then + e.self:Say("Here you are " .. e.other:GetCleanName() .. ". Ah, a perfect fit! May it serve you well."); + e.other:QuestReward(e.self,0,0,0,0,2611); -- Custom Crown of the Kromzek Kings + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31000}, 0)) then + e.self:Say("Here you are " .. e.other:GetCleanName() .. ". Ah, a perfect fit! May it serve you well."); + e.other:QuestReward(e.self,0,0,0,0,31515); -- Custom Dark Runed Crown + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 30507}, 0)) then + e.self:Say("Here you are " .. e.other:GetCleanName() .. ". Ah, a perfect fit! May it serve you well."); + e.other:QuestReward(e.self,0,0,0,0,2610); -- Custom Frostreavers Velium Crown + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31035}, 0)) then + e.self:Say("Here you are " .. e.other:GetCleanName() .. ". Ah, a perfect fit! May it serve you well."); + e.other:QuestReward(e.self,0,0,0,0,31517); -- Custom Resonant Helm + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 31021}, 0)) then + e.self:Say("Here you are " .. e.other:GetCleanName() .. ". Ah, a perfect fit! May it serve you well."); + e.other:QuestReward(e.self,0,0,0,0,31516); -- Custom Runed Protectors Helm + end + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/thurgadinb/Royal_Scribe_Kaavin.lua b/thurgadinb/Royal_Scribe_Kaavin.lua new file mode 100644 index 0000000..446ecf6 --- /dev/null +++ b/thurgadinb/Royal_Scribe_Kaavin.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, as the official Royal Scribe of Dain Frostreaver IV, it is my duty to pen, NO . . . WAIT. . . write. NO . . . I mean scribe, yes that's the word I'm looking for. I scribe the thoughts of the Dain for posterity. I currently have record books with a combined 11,982 pages of notes detailing the life and business of our present Dain. You see, I have a rather bad memory, so I write everything down. My latest entry is that on this day " .. e.other:GetCleanName() .. " came and talked to me. Anyhow, I'm sure you have much better things to do than talk to me, so good luck in your ventures, " .. e.other:GetCleanName() .. ", and come visit me any time."); + end +end diff --git a/thurgadinb/Seneschal_Aldikar.lua b/thurgadinb/Seneschal_Aldikar.lua new file mode 100644 index 0000000..60917a3 --- /dev/null +++ b/thurgadinb/Seneschal_Aldikar.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("And a good day to you, " .. e.other:Race() .. ". I must say that I'm impressed that your people were even able to make it to our continent, let alone survive the frigid temperatures of it. I am Seneschal Aldikar, Commander of the Armies of Thurgadin, known by some as the Sword of the Dain. My armies are currently undergoing intensive training and are ready for a full assault on Kael Drakkel as soon as his majesty gives the order."); + elseif(e.message:findi("accept this task")) then + e.self:Say("In this box, place the accursed dirk of the fallen Rodrick. With it combine the heads of every traitor you dispose of. When this is done give the box and the velium insignia ring to the Dain directly. On behalf of the crown and all good Coldain, I thank you ... May Brell be with you."); + e.other:SummonCursorItem(17055); -- Item: Traitors Bane Box + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30164}, 0)) then + if(e.self:GetX() == -3 and e.self:GetY() == 693) then + e.self:Say("'Well done, " .. e.other:GetCleanName() .. ", I have heard of your victory over the Ry`Gorr. If you are willing to assist the crown further please follow me."); + e.other:QuestReward(e.self,{itemid = 30164}); -- Item: Velium Coldain Insignia Ring + e.self:CastToNPC():AssignWaypoints(14); + else + e.self:Say("" .. e.other:GetCleanName() .. " I must speak to the Dain before I instruct you further. Please speak to me while the royal court is in session."); + e.other:QuestReward(e.self,{itemid = 30164}); -- Item: Velium Coldain Insignia Ring + end + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if(e.wp == 15) then + e.self:Say("Please, shut the door behind you. What I am about to share with you must not be overheard."); + elseif(e.wp == 16) then + e.self:Say("My army stands prepared to launch an assault on Kael itself, but one task must be completed before this can happen."); + elseif(e.wp == 17) then + e.self:Say("It seems Rodrick was not alone in his treachery. There is a faction of Coldain who believe that a treaty should be signed with the Kromrif, ending our hostilities with them. This, of course, is impossible. If there is one thing our history here has taught us, it is that the Kromrif simply cannot be trusted."); + elseif(e.wp == 18) then + e.self:Say("These traitors are poisoning the minds of our citizens, promising great rewards to those who will betray the Dain. It will take the unbiased eye of an outlander to flush out the masterminds behind this plan. Once again we turn to you."); + elseif(e.wp == 19) then + e.self:Say("Will you accept this task, outlander?"); + elseif(e.wp == 20) then + e.self:Say("Farewell."); + elseif(e.wp == 31) then + e.self:CastToNPC():StopWandering(); + end +end diff --git a/thurgadinb/Sentinel_Paxin.lua b/thurgadinb/Sentinel_Paxin.lua new file mode 100644 index 0000000..b3baf80 --- /dev/null +++ b/thurgadinb/Sentinel_Paxin.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings offlander. I see you are exploring our beloved Keep. By order of the Dain all offlanders that have been friendly to our people are permitted to explore all parts of Icewell Keep save this door I guard. Enjoy your stay."); + elseif(e.message:findi("door")) then + e.self:Say("Why this door behind me which I stand in front of course. You didn't by chance fall on the ice and hit your head I hope good " .. e.other:Race() .. ". By order of the Dain, none are permitted to see or go beyond this entrance."); + elseif(e.message:findi("beyond")) then + e.self:Say("Why beyond this door lies the most wonderous. . . oh wait, I can't tell you that " .. e.other:Race() .. ". All I can tell you is that the door has also been magically sealed by our Grand Historian. Please move along now and enjoy the rest of the Keep."); + end +end diff --git a/thurgadinb/Sentry_Ellison.lua b/thurgadinb/Sentry_Ellison.lua new file mode 100644 index 0000000..3d7a844 --- /dev/null +++ b/thurgadinb/Sentry_Ellison.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("snorts and jumps up before you. His eyes are red and he appears to be quite drowsy. Sentry Ellison says, 'Whatzi upit Jon? Huh... oh, hello there. I wasn't sleepin' ya know, just dropped somethin' up here and was lookin' for it. Now, if'n you'll excuse me I've got a job to do. Move along please."); + end +end diff --git a/thurgadinb/Timer.lua b/thurgadinb/Timer.lua new file mode 100644 index 0000000..d98af8a --- /dev/null +++ b/thurgadinb/Timer.lua @@ -0,0 +1,8 @@ +function event_spawn(e) + eq.set_timer("zonereset",7200000); +end + +function event_timer(e) + eq.stop_timer("zonereset"); + eq.repop_zone(); +end diff --git a/thurgadinb/Watcher_Devin.lua b/thurgadinb/Watcher_Devin.lua new file mode 100644 index 0000000..f022a86 --- /dev/null +++ b/thurgadinb/Watcher_Devin.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings to you as well, " .. e.other:GetCleanName() .. ". Down these stairs lies the hall of our ancestors. May Brell guide my axe swiftly to the necks of those who dare attempt to desecrate such a sacred place."); + elseif(e.message:findi("hall")) then + e.self:Say("The Hall of Ancestors is one of the most sacred places in all of Thurgadin. Therein lie the bodies of some of our greatest heroes and leaders. Loremaster Solstrin is the current Keeper of the Hall and can surely tell you more than I."); + elseif(e.message:findi("loremaster")) then + e.self:Say("As I said, Loremaster Solstrin is the current Keeper of the Hall. He rarely leaves to eat or sleep so can almost always be found down there. If he's not there you should only have to wait around a short while before he returns."); + end +end diff --git a/thurgadinb/Watcher_Scots.lua b/thurgadinb/Watcher_Scots.lua new file mode 100644 index 0000000..8cf191d --- /dev/null +++ b/thurgadinb/Watcher_Scots.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("points at his throat and shakes his head sadly."); + end +end diff --git a/thurgadinb/an_Icewell_Sentinel.lua b/thurgadinb/an_Icewell_Sentinel.lua new file mode 100644 index 0000000..29d649e --- /dev/null +++ b/thurgadinb/an_Icewell_Sentinel.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("glances towards you, looking you up and down then continues about their duty. It is apparent to you that this guard does not wish to speak with you."); + end +end diff --git a/thurgadinb/an_Icewell_Sentry.lua b/thurgadinb/an_Icewell_Sentry.lua new file mode 100644 index 0000000..29d649e --- /dev/null +++ b/thurgadinb/an_Icewell_Sentry.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("glances towards you, looking you up and down then continues about their duty. It is apparent to you that this guard does not wish to speak with you."); + end +end diff --git a/thurgadinb/encounters/krystorf.lua b/thurgadinb/encounters/krystorf.lua new file mode 100644 index 0000000..56d195f --- /dev/null +++ b/thurgadinb/encounters/krystorf.lua @@ -0,0 +1,160 @@ +local ThreadManager = require("thread_manager"); +local krystorf = nil; + +function krystorfDayAnnoucement() + krystorf:Shout("The Royal Court of Dain Frostreaver IV and his council of advisors is now in session. Those citizens with official business for the crown please report to the throne room at this time."); + + local dain1 = eq.get_entity_list():GetMobByNpcTypeID(129003); -- Dain_Frostreaver_IV + local dain2 = eq.get_entity_list():GetMobByNpcTypeID(129101); -- Dain_Frostreaver_IV + + if(dain1.valid) then + dain1:CastToNPC():MoveTo(5,690,69,128,true); + end + if(dain2.valid) then + dain2:CastToNPC():MoveTo(5,690,69,128,true); + end + local Aldikar = eq.get_entity_list():GetMobByNpcTypeID(129000); -- Seneschal_Aldikar + if(Aldikar.valid) then + Aldikar:CastToNPC():MoveTo(-3,693,69,126,true); + end + local Amberfeld = eq.get_entity_list():GetMobByNpcTypeID(129073); -- Councilor_Amberfeld + if(Amberfeld.valid) then + Amberfeld:CastToNPC():MoveTo(25,542,65,0,true); + end + local Coldember = eq.get_entity_list():GetMobByNpcTypeID(129075); -- Councilor_Coldember + if(Coldember.valid) then + Coldember:CastToNPC():MoveTo(15,543,66,0,true); + end + local Darakor = eq.get_entity_list():GetMobByNpcTypeID(129043); -- Councilor_Darakor + if(Darakor.valid) then + Darakor:CastToNPC():MoveTo(-15,544,66,0,true); + end + local Darkfrost = eq.get_entity_list():GetMobByNpcTypeID(129078); -- Councilor_Darkfrost + if(Darkfrost.valid) then + Darkfrost:CastToNPC():MoveTo(-5,543,66,0,true); + end + local Deynekn = eq.get_entity_list():GetMobByNpcTypeID(129074); -- Councilor_Deynekn + if(Deynekn.valid) then + Deynekn:CastToNPC():MoveTo(20,534,68,0,true); + end + local Dirkins = eq.get_entity_list():GetMobByNpcTypeID(129077); -- Councilor_Dirkins + if(Dirkins.valid) then + Dirkins:CastToNPC():MoveTo(0,535,68,0,true); + end + local Glacierbane = eq.get_entity_list():GetMobByNpcTypeID(129076); -- Councilor_Glacierbane + if(Glacierbane.valid) then + Glacierbane:CastToNPC():MoveTo(5,545,66,0,true); + end + local Icelok = eq.get_entity_list():GetMobByNpcTypeID(129038); -- Councilor_Icelok + if(Icelok.valid) then + Icelok:CastToNPC():MoveTo(10,535,68,0,true); + end + local Icepike = eq.get_entity_list():GetMobByNpcTypeID(129072); -- Councilor_Icepike + if(Icepike.valid) then + Icepike:CastToNPC():MoveTo(30,533,68,0,true); + end + local Lockheart = eq.get_entity_list():GetMobByNpcTypeID(129045); -- Councilor_Juliah_Lockheart + if(Lockheart.valid) then + Lockheart:CastToNPC():MoveTo(-25,542,65,0,true); + end + local Thubins = eq.get_entity_list():GetMobByNpcTypeID(129080); -- Councilor_Thubins + if(Thubins.valid) then + Thubins:CastToNPC():MoveTo(-20,535,68,0,true); + end + local Wintershade = eq.get_entity_list():GetMobByNpcTypeID(129079); -- Councilor_Wintershade + if(Wintershade.valid) then + Wintershade:CastToNPC():MoveTo(-10,534,67,0,true); + end +end + +function krystorfNightAnnouncement() + krystorf:Shout("The Royal Court of Dain Frostreaver the IV is now closed for the night. Those with official business for the crown may return in the morning."); + + local dain = eq.get_entity_list():GetMobByNpcTypeID(129003); -- Dain_Frostreaver_IV + if(dain.valid) then + dain:CastToNPC():MoveTo(5,769,66,128,true); + end + local Amberfeld = eq.get_entity_list():GetMobByNpcTypeID(129073); -- Councilor_Amberfeld + if(Amberfeld.valid) then + Amberfeld:CastToNPC():MoveTo(108,665,38,63,true); + end + local Coldember = eq.get_entity_list():GetMobByNpcTypeID(129075); -- Councilor_Coldember + if(Coldember.valid) then + Coldember:CastToNPC():MoveTo(90,664,39,248,true); + end + local Darakor = eq.get_entity_list():GetMobByNpcTypeID(129043); -- Councilor_Darakor + if(Darakor.valid) then + Darakor:CastToNPC():MoveTo(-80,666,39,0,true); + end + local Darkfrost = eq.get_entity_list():GetMobByNpcTypeID(129078); -- Councilor_Darkfrost + if(Darkfrost.valid) then + Darkfrost:CastToNPC():MoveTo(-2,878,-1,40,true); + end + local Deynekn = eq.get_entity_list():GetMobByNpcTypeID(129074); -- Councilor_Deynekn + if(Deynekn.valid) then + Deynekn:CastToNPC():MoveTo(91,697,39,133,true); + end + local Dirkins = eq.get_entity_list():GetMobByNpcTypeID(129077); -- Councilor_Dirkins + if(Dirkins.valid) then + Dirkins:CastToNPC():MoveTo(-104,695,39,134,true); + end + local Glacierbane = eq.get_entity_list():GetMobByNpcTypeID(129076); -- Councilor_Glacierbane + if(Glacierbane.valid) then + Glacierbane:CastToNPC():MoveTo(65,661,39,259,true); + end + local Icelok = eq.get_entity_list():GetMobByNpcTypeID(129038); -- Councilor_Icelok + if(Icelok.valid) then + Icelok:CastToNPC():MoveTo(66,694,39,136,true); + end + local Icepike = eq.get_entity_list():GetMobByNpcTypeID(129072); -- Councilor_Icepike + if(Icepike.valid) then + Icepike:CastToNPC():MoveTo(117,691,39,130,true); + end + local Lockheart = eq.get_entity_list():GetMobByNpcTypeID(129045); -- Councilor_Juliah_Lockheart + if(Lockheart.valid) then + Lockheart:CastToNPC():MoveTo(13,875,-2,236,true); + end + local Thubins = eq.get_entity_list():GetMobByNpcTypeID(129080); -- Councilor_Thubins + if(Thubins.valid) then + Thubins:CastToNPC():MoveTo(-54,695,39,131,true); + end + local Wintershade = eq.get_entity_list():GetMobByNpcTypeID(129079); -- Councilor_Wintershade + if(Wintershade.valid) then + Wintershade:CastToNPC():MoveTo(5,887,-2,130,true); + end + ThreadManager:Wait(0.65); + ThreadManager:Wait(0.65); + + local Aldikar = eq.get_entity_list():GetMobByNpcTypeID(129000); -- Seneschal_Aldikar + if(Aldikar.valid) then + Aldikar:CastToNPC():MoveTo(6,772,38,130,true); + end +end + +function daySpawn(e) + ThreadManager:Create("krystorfDayAnnoucement", krystorfDayAnnoucement); +end + +function nightSpawn(e) + ThreadManager:Create("krystorfNightAnnouncement", krystorfNightAnnouncement); +end + +function krystorfHeartbeat(e) + if(e.timer == "krystorf_hb") then + krystorf = e.self; + ThreadManager:GarbageCollect(); + ThreadManager:Resume("krystorfDayAnnoucement"); + ThreadManager:Resume("krystorfNightAnnouncement"); + end +end + +function krystorfSpawn(e) + eq.set_timer("krystorf_hb", 10000); +end + +function event_encounter_load(e) + eq.register_npc_event("krystorf", Event.timer, 129028, krystorfHeartbeat); + eq.register_npc_event("krystorf", Event.spawn, 129028, krystorfSpawn); + eq.register_npc_event("krystorf", Event.spawn, 129098, daySpawn); + eq.register_npc_event("krystorf", Event.spawn, 129097, nightSpawn); +end diff --git a/thurgadinb/script_init.lua b/thurgadinb/script_init.lua new file mode 100644 index 0000000..908824a --- /dev/null +++ b/thurgadinb/script_init.lua @@ -0,0 +1 @@ +eq.load_encounter("krystorf"); diff --git a/timorous/#Faydedar.lua b/timorous/#Faydedar.lua new file mode 100644 index 0000000..fc7257a --- /dev/null +++ b/timorous/#Faydedar.lua @@ -0,0 +1,9 @@ +function event_spawn(e) + eq.depop(96089); + e.self:MoveTo(-1855,-11821,-0.13,-1,true); +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/timorous/#Scout_Sihmoj.lua b/timorous/#Scout_Sihmoj.lua new file mode 100644 index 0000000..3c53745 --- /dev/null +++ b/timorous/#Scout_Sihmoj.lua @@ -0,0 +1,20 @@ +function event_spawn(e) + eq.set_timer("depop",5400000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9047})) then + e.self:Say("I knew that this creature had power, but how do you explain this? That fight was well beyond my comprehension. I'm not sure what to do other than have you return the bag to Elder Dumul. I'm sure that he will know what to do next. Take care and be swift."); + e.other:QuestReward(e.self,0,0,0,0,9048); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/timorous/Alrik_Farsight.lua b/timorous/Alrik_Farsight.lua new file mode 100644 index 0000000..66ad933 --- /dev/null +++ b/timorous/Alrik_Farsight.lua @@ -0,0 +1,58 @@ +-- ancient pattern quest -- ranger epic +function event_say(e) + if(e.other:GetFaction(e.self) < 5) then --amiable or better Keepers of the Art + if(e.message:findi("hail")) then + e.self:Say("Ah. Hello there, adventurer. Come to search for ancient artifacts with Fizzlebik and myself?"); + elseif(e.message:findi("ancient artifacts")) then + e.self:Say("Oh. All types of things. This area is great. So many artifacts and remains of things all over. It's starting to fall into the pattern of things."); + elseif(e.message:findi("ancient bowl") or e.message:findi("ancient type of bowl")) then + e.self:Emote("rummages through his tattered bag and throws aside a towel. 'Too many towels. Oh well, someone told me they were good to have once. Here it is, a bowl pattern. Interesting bowl. Looks almost like a magical bowl but I'm no potter. You need it, you say? Well, it is interesting. Part of my research here is for the wizard guild in Felwithe. I'm sure they'd put a high price on this one, the enchanters guild being so interested in trading for magical paraphernalia and all. Of course if you helped me out on a chore I have, I'd be happy to give it to you. I need to deliver an artifact to the guild and I'd much rather stay here exploring. If you wish, you can take the artifact and return with the receipt and I'll give you the pattern.'"); + elseif(e.message:findi("take the artifact")) then + e.self:Say("Hah! Okay, then. Here take this to Farios Elianos in Felwithe. He will give you the receipt."); + e.other:SummonCursorItem(20457); + end + elseif(e.other:GetFaction(e.self) > 4) then + local random = math.random(3); + if(random == 1) then + e.self:Say("I didn't know Slime could speak common. Go back to the sewer before I lose my temper."); + elseif(random == 2) then + e.self:Say("Is that your BREATH, or did something die in here? Now go away!"); + elseif(random == 3) then + e.self:Say("I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFaction(e.self) < 5) then --amiable or better Keepers of the Art + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20474})) then + e.self:Emote("grins happily. 'Excellent! Was he pleased with the artifact? Oh, that's not even worth answering. I'm sure he was. He's always happy with the things I send him. That's why he honored me with this position of esteem, searching for useful and powerful items in this newly discovered land.'"); + e.other:QuestReward(e.self,0,0,0,0,18960); + if(e.wp >= 3 and e.wp <= 10) then + eq.signal(96035,2,30); -- NPC: Xiblin_Fizzlebik + end + end + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_waypoint_arrive(e) + if(e.wp == 8) then + e.self:Say("Hey there again, Xib! Still a great day, isn't it?"); + eq.signal(96035,1,30); -- NPC: Xiblin_Fizzlebik + end + if(e.wp == 14) then + e.self:Emote("grins a little and mumbles. 'This place is great. Feels like I'm at the end of the universe.'"); + end +end + +function event_signal(e) + e.self:Say("What was that, Xib?"); + eq.signal(96035,3,30); -- NPC: Xiblin_Fizzlebik +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/timorous/Avatar_of_Water.lua b/timorous/Avatar_of_Water.lua new file mode 100644 index 0000000..c50b70b --- /dev/null +++ b/timorous/Avatar_of_Water.lua @@ -0,0 +1,24 @@ +-- EPIC CLERIC (Timorous deep) +function event_spawn(e) + eq.set_timer("depop", 3600000); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28023})) then --Orb of the triumvirate + e.self:Emote("takes the orb from you. The avatar has determined that you are worthy!"); + e.other:QuestReward(e.self,0,0,0,0,5532,200000); -- Water Sprinkler of Nem Ankh + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) -- return unused items +end + +function event_timer(e) + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/timorous/Barrel_Barge.lua b/timorous/Barrel_Barge.lua new file mode 100644 index 0000000..53fe7fb --- /dev/null +++ b/timorous/Barrel_Barge.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Shuttle spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + if(e.wp == 22) then + eq.debug("Shuttle to oasis (5) has reached the island. Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + elseif(e.wp == 49) then + eq.debug("Shuttle to oasis (5) has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(37,-1185,1568,-4,0); + end, + function(ent) + if(ent:GetBoatID() == 840) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/timorous/Bloated_Belly.lua b/timorous/Bloated_Belly.lua new file mode 100644 index 0000000..3098a67 --- /dev/null +++ b/timorous/Bloated_Belly.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Boat spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + if(e.wp == 40) then + eq.debug("Boat to overthere (15) has reached the docks. Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + elseif(e.wp == 65) then + eq.debug("Boat to overthere (15) has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(93,1589,4846,-161, 0); + end, + function(ent) + if(ent:GetBoatID() == 839) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/timorous/Captains_Skiff.lua b/timorous/Captains_Skiff.lua new file mode 100644 index 0000000..6a0e422 --- /dev/null +++ b/timorous/Captains_Skiff.lua @@ -0,0 +1,38 @@ +function event_signal(e) + if(e.signal == 1) then + eq.start(4); + end + end + + function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + if(e.wp == 2) then + eq.stop(); + eq.debug("Shuttle to butcherblock (4) has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.get_entity_list():ForeachClient( + function(ent) + ent:Signal(2); + end, + function(ent) + -- Server thinks we're on Maidens_Voyage and are about to zone. + if(ent:GetBoatID() == 838 and ent:GetX() < -7100) then + return true; + end + return false; + end + ); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(68,3658,476,-13, 0); + end, + function(ent) + if(ent:GetBoatID() == 842) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/timorous/Cursed_Traveler.lua b/timorous/Cursed_Traveler.lua new file mode 100644 index 0000000..55793d5 --- /dev/null +++ b/timorous/Cursed_Traveler.lua @@ -0,0 +1,16 @@ +-- warning dialogue not to bind near the firepot room in timorous deep +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks at you with eyes that are bleak and dreary as though the essence which keeps it standing is not really there; a surreal look into the future for those who make their stay in the immediate room around you. The ominous figure does not make any sound but nods in your direction as if to tell you that he died here long ago by resting by the nearby fire for too long. In your mind you hear the eerie thoughts of this undead figure, alluding to the fact that it is unwise for you to remain here for too long, lest the mighty water dragon overtake you, as it overtook him."); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/timorous/Dolgin_Codslayer.lua b/timorous/Dolgin_Codslayer.lua new file mode 100644 index 0000000..4a0fcc0 --- /dev/null +++ b/timorous/Dolgin_Codslayer.lua @@ -0,0 +1,27 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("ARGH! Dangit, ya scared me! Tread cautiously, fri. This here place ain't as frily as it seems. There's a beast lurkin' in this here puddle."); + elseif(e.message:findi("beast")) then + e.self:Say("Aye lad. I seen it come from the ocean. It was fightin' a group of adventurers, not unlike yerself. The battle raged long and hard, and at the the beast lay still among countless of the adventurers bodies. They left assuming it had been slain by their hands. But, once they left, I seen it come crawlin in this here place. They called it by the name Fayde, er, Fayred. Hrmm. What was it they called it? I can't remember."); + elseif(e.message:findi("faydedar")) then + e.self:Say("Ya! That's what they called it! A great water dragon as the legs say. Only way to find him now is to lure him out from hiding. Not that I would suggest doin such a thing. The dern thing's broken, bleedin, and cornered. That's a mighty deadly position to put a critter in if ye ask me. Course if yer wantin' to try it, there might be a way. Ya willin to risk it?"); + elseif(e.message:findi("risk it")) then + e.self:Say("Well jus' before that there beast ended up in combat, I watched him from the shores. Only reason he got into such a mess was 'cause of his belly. He swam right into those adventurers chasin' down a wandering froglok. You wanna catch a fish, use the right bait. If only we had us some frogloks essence, then mebbe he'd come out agin. But I must warn ye laddies that the bloke over by the inn already warned me to leave all the natural critters in this here oasis in peace. He might get right mad if he sees a battle brewin' here."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20696}) and e.other:GetClass() == 6) then + e.self:Say("What's this? Egads! It's perfect. Now all we gotta do is hope he bites.' Dolgin takes a little of the essence and smears it on a piece of bread. He places the bait into the water and watches intently."); + e.other:QuestReward(e.self,0,0,0,0,20696); + eq.spawn2(96073,0,0,-2178,-11745,-0.63,63):AddToHateList(e.other,1); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) -- return unused items +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/timorous/Draz_Nurakk.lua b/timorous/Draz_Nurakk.lua new file mode 100644 index 0000000..30727fc --- /dev/null +++ b/timorous/Draz_Nurakk.lua @@ -0,0 +1,29 @@ +function event_spawn(e) + eq.set_timer("depop",1800000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_death_complete(e) + eq.spawn2(96010,0,0,1985,-9170,10,0); + eq.spawn2(96010,0,0,1986,-9204,10,0); + eq.spawn2(96010,0,0,1958,-9204,10,0); + eq.spawn2(96010,0,0,1975,-9218,10,0); + eq.spawn2(96010,0,0,2009,-9214,11,0); + eq.spawn2(96010,0,0,2004,-9181,10,0); +end diff --git a/timorous/Draz_Nurakks_Image.lua b/timorous/Draz_Nurakks_Image.lua new file mode 100644 index 0000000..4b30e0a --- /dev/null +++ b/timorous/Draz_Nurakks_Image.lua @@ -0,0 +1,20 @@ +function event_spawn(e) + eq.set_timer("depop",3600000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.stop_timer("depop"); + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end diff --git a/timorous/Drendico_Metalbones.lua b/timorous/Drendico_Metalbones.lua new file mode 100644 index 0000000..8f14cf5 --- /dev/null +++ b/timorous/Drendico_Metalbones.lua @@ -0,0 +1,24 @@ +-- Necromancer Epic NPC -- Drendico_Metalbones +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("The hills ears keep spinning the wonders of wells. Twisting twisting fly in water scar hot horses. Teach me! Bring floating water islands of doom!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20648})) then + e.self:Say("Seek, search, turn, twist! Kazen hopes to death master truly! Read out, read in between! Talk to the pretty clouds.' Drendico turns his back to you and throws a book over his shoulder. 'Bring back book! Bring back reagents three!!' He shouts as he mumbles some more gibberish."); + e.other:QuestReward(e.self,0,0,0,0,18086,1000); + end + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1278, item2 = 20656, item3 = 20655, item4 = 18086})) then + e.self:Emote("turns to you in amazement. 'You actually did it! These are the correct components! Kazen will be most pleased. I searched the planes for almost a year and could not find all the correct components.' Drendico fiddles with the components, puts them into a box and hands it to you. 'You must have access to an army, " .. e.other:GetCleanName() .. ". Return the components to Kazen quickly!"); + e.other:QuestReward(e.self,0,0,0,0,20653); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/timorous/Faydedar.lua b/timorous/Faydedar.lua new file mode 100644 index 0000000..8c8b49c --- /dev/null +++ b/timorous/Faydedar.lua @@ -0,0 +1,15 @@ +function event_spawn(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(96073)) then + eq.depop(); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/timorous/Grandmaster_Rinmark.lua b/timorous/Grandmaster_Rinmark.lua new file mode 100644 index 0000000..4eaac39 --- /dev/null +++ b/timorous/Grandmaster_Rinmark.lua @@ -0,0 +1,24 @@ +--Grandmaster Rinmark is spawned from an iksar master in this zone and is part of the Test of Patience. Please see the iksar master's quest file for details. +function event_spawn(e) + eq.set_timer("Depop1",90000); +end + +function event_timer(e) + if(e.timer == "Depop1") then + e.self:Emote("seems to lose a small amount of concentration."); + eq.unique_spawn(96319,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.stop_timer("Depop1"); + eq.depop(); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/timorous/Island_Shuttle.lua b/timorous/Island_Shuttle.lua new file mode 100644 index 0000000..90c7161 --- /dev/null +++ b/timorous/Island_Shuttle.lua @@ -0,0 +1,7 @@ +function event_signal(e) + if(e.signal == 1) then + eq.start(3); + elseif(e.signal == 2) then + eq.stop(); + end + end \ No newline at end of file diff --git a/timorous/Jhassad_Oceanson.lua b/timorous/Jhassad_Oceanson.lua new file mode 100644 index 0000000..29d8156 --- /dev/null +++ b/timorous/Jhassad_Oceanson.lua @@ -0,0 +1,17 @@ +-- EPIC CLERIC (Timorous deep) +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28048, item2 = 28049, item3 = 28050})) then --Orb of Clear Water, Orb of Frozen Water, Orb of Vapor + e.self:Emote("kneels in the sand and places the three orbs into a large abalone shell bowl. A blue glow surrounds his hands as he waves them over the orbs resting in the bowl. The orbs crack and fall apart, releasing their contents, then reform into a single glowing orb. Jhassad Oceanson gently removes the Orb of the Triumvirate and places it in your hands."); + e.self:Say("The Avatar of Water approaches. You must hand him the Orb of the Triumvirate and it will be decided if it is your destiny to wield the Nem Ankh Sprinkler."); + e.other:QuestReward(e.self,0,0,0,0,28023); -- Orb of the triumvirate + eq.unique_spawn(96086,21,0,-1886,-11661,1,192); --Avatar of water + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/timorous/Lheao.lua b/timorous/Lheao.lua new file mode 100644 index 0000000..16c9267 --- /dev/null +++ b/timorous/Lheao.lua @@ -0,0 +1,31 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("jumps at your voice and begins laughing at his skittishness. 'Ahh, hello there. Not many people know of this place, so visitors are quite rare. Hehehe. Its a very beautiful place indeed, so.. ummm, dont go telling everyone you know about it. Heheh. Thanks, Friend.'"); + elseif(e.message:findi("immortals")) then + -- Monk Epic 1.0 + e.self:Emote("looks up at you, eyes wide in astonishment. 'My god, you found Immortals?! Where did you find it? Nevermind, that is unimportant. I have in my possession a book that explains more of these individuals. Its value is unimaginable as well as the impact it is capable of. As you can see, I grow old. I need an individual to watch over this book and make sure it is protected. Would you be willing to take this [responsibility]?'"); + elseif(e.message:findi("responsibility")) then + -- Monk Epic 1.0 + e.self:Say("Im sorry, " .. e.other:GetCleanName() .. ", but I could only give this book to a true master, such as a member of the Whistling Fists Order. And unless you can give me proof that you are one, in addition to Danls reference, which is very unlikely, there is no way I'll let you take charge of the [Celestial Fists]."); + elseif(e.message:findi("celestial fists")) then + -- Monk Epic 1.0 + e.self:Say("The Celestial Fists is the title of a book written by an unknown author. His writing is sub par but the legend is interesting from a biographical standpoint alone. Its rarity commands top dollar in the scholarly community but the secrets revealed in the book are what truely makes it dangerous. I hope Im able to find someone to watch over it soon."); + end +end + +function event_trade(e) + local item_lib = require("items"); + -- Handin: Robe of the Whistling Fists & Danl's Reference + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12970, item2 = 1682})) then + -- Monk Epic 1.0 + e.self:Say("Astonishing! To think that you are a master of an order thought to be lost in our world. Forgive my earlier doubts. I believe you are indeed worthy to be given the responsibility of watching over this book. Take great care that it does not fall into the wrong hands as it would be truly disatrous."); + -- Summon: Celestial Fists (Book) + e.other:QuestReward(e.self,0,0,0,0,1683); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/timorous/Maidens_Voyage.lua b/timorous/Maidens_Voyage.lua new file mode 100644 index 0000000..aa13990 --- /dev/null +++ b/timorous/Maidens_Voyage.lua @@ -0,0 +1,46 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Boat spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + if(e.wp == 4) then + eq.signal(96075,1); -- NPC: Island_Shuttle + eq.debug("Boat to firiona (2) has reached the Elf docks. Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + elseif(e.wp == 5) then + eq.signal(96075,2); -- NPC: Island_Shuttle + elseif(e.wp == 19) then + eq.debug("Boat to firiona (2) has reached the shuttle. Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.signal(842,1); -- NPC: Captains_Skiff + elseif(e.wp == 30) then + eq.debug("Boat to firiona (2) has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.get_entity_list():ForeachClient( + function(ent) + ent:Signal(1); + end, + function(ent) + -- Server thinks we're on Island_Shuttle and are about to zone. + if(ent:GetBoatID() == 96075 and ent:GetX() < -2000 and ent:GetY() > 500) then + return true; + end + return false; + end + ); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(84,4421,-5685,-67, 0); + end, + function(ent) + if(ent:GetBoatID() == 838) then + return true; + end + return false; + end + ); + end +end diff --git a/timorous/Master_Rinmark.lua b/timorous/Master_Rinmark.lua new file mode 100644 index 0000000..b7ff1ce --- /dev/null +++ b/timorous/Master_Rinmark.lua @@ -0,0 +1,24 @@ +--Master Rinmark is spawned from an iksar master in this zone and is part of the Test of Patience. Please see the iksar master's quest file for details. +function event_spawn(e) + eq.set_timer("Depop2",90000); +end + +function event_timer(e) + if(e.timer == "Depop2") then + e.self:Emote("stares off into the horizon, lost in his thoughts."); + eq.unique_spawn(96320,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.stop_timer("Depop2"); + eq.depop(); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/timorous/Muckskimmer.lua b/timorous/Muckskimmer.lua new file mode 100644 index 0000000..93f0cc8 --- /dev/null +++ b/timorous/Muckskimmer.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug("Shuttle spawned! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); +end + +function event_waypoint_arrive(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + if(e.wp == 22) then + eq.debug("Shuttle to oasis (5) has reached the island. Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + elseif(e.wp == 49) then + eq.debug("Shuttle to oasis (5) has reached its destination! Name is: " .. e.self:GetName() .. " Time is: " .. hour ..":" .. minute .. "", 1); + eq.get_entity_list():ForeachClient( + function(ent) + ent:MovePC(37,-1185,1568,-4,0); + end, + function(ent) + if(ent:GetBoatID() == 841) then + return true; + end + return false; + end + ); + end +end \ No newline at end of file diff --git a/timorous/Natasha_Whitewater.lua b/timorous/Natasha_Whitewater.lua new file mode 100644 index 0000000..88cd8ae --- /dev/null +++ b/timorous/Natasha_Whitewater.lua @@ -0,0 +1,24 @@ +-- NPC:96080 -- Natasha Whitewater, Cleric epic 1.0 quest NPC +function event_spawn(e) + eq.set_timer("NatashaDepop",600000); +end + +function event_timer(e) + if(e.timer == "NatashaDepop") then + eq.depop(); + end +end + +function event_trade(e) + local item_lib =require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28018},0)) then + e.self:Say("Thank you, " .. e.other:GetCleanName() .. ", for your services thus far. The Triumvirate missionaries are, so far, impressed. However, there is yet another threat rising from the Plasmatic Priesthood that may have dire effects on all of Norrath if it is not stopped. An Iksar member of the Triumvirate missionaries has discovered that the Plasmatic Priesthood has somehow convinced the sarnak summoners of Chardok to assist them in summoning Ixilblat Fer to Norrath. Take this shell to Naxot Deepwater in the Burning Woods so that she knows I have sent you. We ask that you return with the Sceptre of Ixiblat Fer as well as evidence to show that the Plasmatic Priesthood is dealing with sarnaks. High Priest Omat will await your return. I must depart now. I pray for your success."); + e.other:QuestReward(e.self,0,0,0,0,28056); + eq.depop(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 28052},0)) then + e.self:Say("lowers her head in mourning and whispers a prayer. 'It is a shame that fate has decided one so young and from such a background should perish, but we must not attempt to change what was destined to be. Priestess Naxot sacrificed herself selflessly so that others may be spared the horrors Ixiblat would have brought to Norrath. May the waters of Norrath forever remember her reflection. I thank you for delivering Naxot's message to me and give you this pearl imbued with the power of the Triumvirate. Should you find Zordak Ragefire, speak with him before all else and hand him this pearl. No mortal enemy of the Triumvirate can resist its enchantments.'"); + e.other:QuestReward(e.self,0,0,0,0,28054); + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/timorous/Omat_Vastsea.lua b/timorous/Omat_Vastsea.lua new file mode 100644 index 0000000..77622f3 --- /dev/null +++ b/timorous/Omat_Vastsea.lua @@ -0,0 +1,38 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("bows deeply. 'I have been expecting you, " .. e.other:GetCleanName() .. ". The waters have foretold your arrival. I am High Priest Omat Vastsea of the Triumvirate missionaries. Please feel free to enjoy the quiet solitude of this inn.'"); + elseif(e.message:findi("Triumvirate")) then + e.self:Say("The Triumvirate of Water are: E'ci, the mistress of ice; Tarew Marr, the lord of water; and Povar, the formless master of vapor and mist. We Triumvirate missionaries are granted great divinatory powers and wisdom through our devotion to the Triumvirate and must defend the waters of Norrath from the ravages of the Tyrant of Fire, Fennin Ro."); + elseif(e.message:findi("Fennin Ro")) then + e.self:Say("The Tyrant of Fire, Fennin Ro, is the merciless lord of fire in all its forms. The rivalry between the tyrant and the Triumvirate is as old as the gods themselves and is an eternal battle. We witness the struggle every moment of our lives as the Oasis of Marr succumbs to the heat of the surrounding desert and is replenished by the swelling of the Lifire River. That fragile balance between the elements must be maintained but the Plasmatic Priesthood threatens that balance."); + elseif(e.message:findi("plasmatic priesthood")) then + e.self:Say("The Plasmatic Priesthood are worshipers of the Tyrant of Fire, but they have been driven mad by their fanaticism and have forgotten the importance of the balance. In their madness they would set the whole world aflame, leaving nothing but lifeless ash."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 28047},0)) then --Ornate Sea Shell + e.self:Say("So, you are a friend of Natasha's? That is good to see. She is a very wise and gifted woman. The Riptide goblins have adopted a new king but are still in a vulnerable state until his subjects accept his rule. The Plasmatic Priesthood is aware of the weakened state of the Riptides and has convinced the Fire Peak goblins to strike against them. Although I do not agree with the mannerisms or actions of any goblin clan, such a war would be detrimental to all who are caught in its path. Lord Gimblox of the Fire Peak clan has been meeting with a member of the Plasmatic Priesthood in the Temple of Solusek Ro. Locate the Plasmatic Priest, hand him this statue to hinder his powers, then eliminate him and bring me his robe."); + e.other:QuestReward(e.self,0,0,0,0,28051); --Coral Statue of Tarew + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1299},0)) then --Blood Soaked Plasmatic Priest Robe + e.self:Say("You have proven yourself to be one who is willing to take responsibility for his own actions. Such a trait is desired by all deities to be present in their faithful. I pray that you had the wisdom to slay Lord Gimblox as well as the Plasmatic Priest in order to prevent further advancement in the incursion against the Riptides. Priestess Natasha awaits inside the inn for Lord Gimblox's ring, make haste for she is a busy women and will depart soon."); + e.other:QuestReward(e.self,0,0,0,0,28049,100000); --Orb of Frozen Water + eq.unique_spawn(96080,0,0,-2198,-11601,76,192); --Natasha Whitewater + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 18170, item2 = 28017})) then --A Singed Scrol (overkind bathezid), Sceptre of Ixiblat Ferl + e.self:Say("I commend you on your success over the fire elemental lord, Ixiblat Fer. The fact that the Plasmatic Priesthood has mustered up the power to summon such a being means drastic actions must be taken to stop the fanatic cult of Fennin Ro. I wonder what kind of favor Zordak Ragefire performed for the sarnak summoners to convince them to assist in the ritual that brought forth Ixiblat Fer. The dragon Iksar hybrid abominations are not beings who ally with others easily. All I have seen in my divinations of the High Plasmatic Priest are riddles, and signs that the one who slays him may be awarded an Orb of the Triumvirate. If you are the one whom my visions foretell, then seek Zordak Ragefire and bring me his heart."); + e.other:QuestReward(e.self,0,0,0,0,28048,100000); --Orb of Clear Water + eq.unique_spawn(96080,0,0,-2198,-11601,76,192); --Natasha Whitewater + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 28019})) then--Zordak Ragefire's Heart (combined after the death of zordakalicus in SF) + e.self:Say("I see now that Zordak Ragefire and the exiled elder dragon Zordakalicus were the same being. That explains how he resisted our attempts to divine his affairs and past. Each of these orbs I have granted you represents one of the Triumvirate. Jhassad Oceanson awaits on the shore below to perform the ritual that will merge the orbs into a single Orb of the Triumvirate and summon an avatar from the Plane of Water. Present the Orb of the Triumvirate to the Avatar of Water when it arrives and allow your destiny to be unraveled."); + e.other:QuestReward(e.self,0,0,0,0,28050,100000); --Orb of Vapor + eq.unique_spawn(96074,0,0,-1781,-11959,14.3,1); --Jhassad Oceanson + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/timorous/Rinmark.lua b/timorous/Rinmark.lua new file mode 100644 index 0000000..22b56d5 --- /dev/null +++ b/timorous/Rinmark.lua @@ -0,0 +1,27 @@ +--Rinmark is spawned from an iksar master in this zone and is part of the Test of Patience. Please see the iksar master's quest file for details. +function event_spawn(e) + eq.set_timer("Depop3",90000); +end + +function event_combat(e) + if(e.joined == true) then + e.self:Say("Good, your sense of timing is correct. Now begin! Show me that your training has not been wasted."); + end +end + +function event_timer(e) + if(e.timer == "Depop3") then + eq.stop_timer("Depop3"); + eq.depop(); + end +end + +function event_death_complete(e) + eq.stop_timer("Depop3"); + e.self:Say("Your ability is strong, may you serve Cazic Thule with all your might."); +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/timorous/Scout_Sihmoj.lua b/timorous/Scout_Sihmoj.lua new file mode 100644 index 0000000..2124d3c --- /dev/null +++ b/timorous/Scout_Sihmoj.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings friend, please show me the Seal of Elder Dumul and I will brief you on the situation."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 9045})) then + e.self:Say("Good to see you, now keep your head down friend. He may look out here at any moment, though he's been asleep most of the day. He's been staying in a ruined building on that island over there. I'm sure you can see it from here. You should be able to surprise him with little trouble. Just take care to avoid any traps he may have set. He's proven to be a very capable magic-user."); + e.other:QuestReward(e.self,0,0,0,0,17360); + eq.spawn2(96003,0,0,1988,-9203,10,0) + eq.unique_spawn(96011,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),0); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/timorous/The_Great_Oowomp.lua b/timorous/The_Great_Oowomp.lua new file mode 100644 index 0000000..bbeb64c --- /dev/null +++ b/timorous/The_Great_Oowomp.lua @@ -0,0 +1,36 @@ +--Quest Name: McMerrin's Feast - "Evil" Races, or any with VS faction +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("gestures as if casting a powerful spell...'Come forward, adventurer! Come and [see the dancing skeleton]. I shall cast a powerfull spell and bring forth this operatic, clattering jumble of bones and he shall do a fine dance for you. From the nether regions and planes beyond, I call forth this bardic, magical, rhyming, tap-dancing hunk of undead!! I am Oowomp the Great!!'"); + e.self:DoAnim(43); + elseif(e.message:findi("see the dancing skeleton")) then + e.self:Say("Oh!! You wish to see the great Oowomp perform his magic!! I have studied with the grand mages and wise [McMerin clan] of Norrath. as my speech implies. I can call forth the skeleton with but a twinkling of my power and five of your gold."); + e.self:DoAnim(49); + elseif(e.message:findi("McMerin clan")) then + e.self:Say("Clan McMerin were wise shamans from the North. They allowed me to study with them. I learned many spells while I communed with them. From them, I sto.., I mean, I learned the secret of McMerin's Feast. If you want to know the secret, you could [help gather components] for future rituals."); + e.self:DoAnim(48); + elseif(e.message:findi("gather components")) then + e.self:Say("Actually... Not so much help as do - ALL - of the gathering. In the lands of Kunark are clay of Ghiosk, crushed dread diamond and powder of Yun. A rare find would be the bones of one who touched the Bath of Obulus. Find and return these to me and the shaman secret of McMerin's Feast is yours."); + e.self:DoAnim(65); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {gold = 5})) then + e.self:Emote("flings the coins into the air and they all fall neatly into his oversized coin pouch. 'Gaze upon my awsome powers of the arcane!! You, a simple " .. e.other:Race() .. ", shall see my power. Allakabam!!'"); + eq.unique_spawn(96088,0,0,3122.8,5725.2,7.9,13.0); -- NPC: a_dancing_skeleton + eq.set_timer(1,3000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12942, item2 = 12945, item3 = 12944, item4 = 12943})) then + e.self:Emote("begins to jump for joy. The ground trembles. 'Grand! Here is the secret of McMerin's Feast. Scribe it and you shall learn more of its power."); + e.other:QuestReward(e.self,0,0,0,0,12941,45000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + if(timer == 1) then + eq.signal(96088,5,0); -- NPC: a_dancing_skeleton + eq.stop_timer(1); + end +end diff --git a/timorous/Xiblin_Fizzlebik.lua b/timorous/Xiblin_Fizzlebik.lua new file mode 100644 index 0000000..b4a4660 --- /dev/null +++ b/timorous/Xiblin_Fizzlebik.lua @@ -0,0 +1,52 @@ +-- Part of quest for Veeshan's Peak key +function event_spawn(e) + eq.set_timer("sit",10000); +end + +function event_timer(e) + if(e.timer == "sit") then + e.self:SetAppearance(1); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. "! I am Xiblin Fizzlebik, renowned archeologist and historian of Ak'Anon. I'm currently in search of artifacts and relics on the Iksar [Jarsath tribe]. If you stumble upon anything, please bring it to me."); + elseif(e.message:findi("Jarsath tribe")) then + e.self:Say("About two thousand years ago, there were five different tribes of Iksar who dwelled on the continent of Kunark. One of these tribes was the Jarsath. They were a very primitive sort, proud and tribal, but also cannibalistic. Often, they went to war with the other tribes that co-existed with them back then. The ruins found on this island were of structures created by the Jarsath. I've been excavating for quite some time now, but haven't been able to find anything of significance."); + elseif(e.message:findi("looking for")) then + e.self:Say("In my studies, I have learned that the Jarsath believed they could draw power from a holy symbol... specifically a medallion that represented their tribe. When Salthir became king of the Iksar empire Sebilis, he had the medallion broken into three pieces and hid them on the Kunark continent so that they would never be found. I'm searching for the pieces so that I can put it back together and learn more about this tribe. Perhaps you wish to help?"); + elseif(e.message:findi("help")) then + e.self:Say("All I know is that the pieces were most likely hidden in water regions. If you manage to find them, bring them to me and I will be able to put the medallion of the Jarsath back together. I am sure there is much to be learned from it."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Yes yes, now where is the rest of the medallion?"; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19959, item2 = 19960, item3 = 19961},1,text)) then + e.self:Emote("tinkers with the three pieces and snaps the pieces together. 'Wow.. You've done it.. but I suddenly feel very.. strange.. This medallion is cursed! Here, you take it!'"); + e.other:QuestReward(e.self,0,0,0,0,19954,100); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Emote("sighs to himself in resignation and continues to dig with obvious annoyance."); + end + if(e.signal == 2) then + e.self:Emote("mutters to himself. 'Yeah, not because you're a goblin headed moron or anything.'"); + eq.signal(96032,30); -- NPC: Alrik_Farsight + end + if(e.signal == 3) then + e.self:Say("I didn't say anything! Now get back on your side of the island, you're getting dirt and junk all over mine!"); + end +end + +-- Quest by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/timorous/a_dancing_skeleton.lua b/timorous/a_dancing_skeleton.lua new file mode 100644 index 0000000..5b31b70 --- /dev/null +++ b/timorous/a_dancing_skeleton.lua @@ -0,0 +1,76 @@ +function event_say(e) + if(e.message:findi("gomoz")) then + e.self:Emote("stops in suprise."); + e.self:Say("Gomoz!! Why, that is me! I was heading off to be with the elements when I was captured by this smelly ogre. Actually, he is not as smelly as most."); + eq.stop_timer(10); + eq.stop_timer(11); + eq.stop_timer(12); + eq.stop_timer(100); + eq.set_timer(100,40000); -- Get the conversation out the way in 40s, or depop + elseif(e.message:findi("talon southpaw")) then + e.self:Say("Master Talon Southpaw!! He was my master. Dead, he became. Off to the elements. I keep his special hand with me. Perhaps I should have it returned. Maybe I shall find a young adventurer to [return the hand to Cabilis]."); + eq.stop_timer(100); + eq.set_timer(100,30000); -- Get the conversation out the way in 30s, or depop + elseif(e.message:findi("return the hand to cabilis")) then + e.self:Say("Yes!! Return the hand. Here it is. Missing four it is. Within the tower of past pain and torture is where the four lie. Taken by bones similar to myself."); + e.other:SummonCursorItem(17037); -- hand with one only a thumb + eq.set_timer(100,4000); + end +end + +function event_signal(e) + if(e.signal == 5) then + eq.set_timer(10,2000); --start dancing in 2s + e.self:Emote("shambles to its feet and begins to jig somewhat grudingly."); + end +end + +function event_timer(e) + if(e.timer == 10) then + --If I'd wanted a career in dancing, I'd have better hips + eq.stop_timer(10); + eq.set_timer(11,2000); + e.self:DoAnim(58); + end + if(e.timer == 11) then + --do the monkey with me + eq.stop_timer(11); + eq.set_timer(12,2000); + e.self:DoAnim(45); + end + if(e.timer == 12) then + --shake it, baby + eq.stop_timer(12); + eq.set_timer(13,2000); + e.self:DoAnim(58); + end + if(e.timer == 13) then + --falldowndead + eq.stop_timer(13); + eq.set_timer(100,2000); + e.self:DoAnim(16); + end + if(e.timer == 100) then + --danceover + eq.stop_timer(100); + eq.depop_with_timer(); + end +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end + +--Quest Name: Talon Southpaw's fate +--Author: BWStripes +-- +-- Updated by BWStripes +-- The text and dialog was in the original file, credit to original author. I've never tried collecting the fingers. -Stripes +-- +--Original submission: +--Submitted by: Senzo aka Fatty Beerbelly +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/timorous/an_Iksar_master.lua b/timorous/an_Iksar_master.lua new file mode 100644 index 0000000..c34efcd --- /dev/null +++ b/timorous/an_Iksar_master.lua @@ -0,0 +1,54 @@ +--This iksar master is actually Master Rinmark, for the monk shackle quest line that eventually culminates in the Whistling Fists +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("is humming and chanting softly. He seems oblivious to your presence."); + elseif(e.message:findi("master rinmark")) then + e.self:Emote("squints one eye open, then returns to his meditation."); + elseif(e.message:findi("talon southpaw")) then + e.self:Emote("waves his arms in the air. 'The great master. His soul is the wind. He speaks to us in words of thunder. He strikes Norrath with bolts of lightning. I seek to be as he is. I have traveled the globe in search of his fists. I have found only one. Another is said to be with [Gomoz]. I shall return it when I am finished with my seasons-long meditation or perhaps I shall find a monk to [return the hand to Cabilis].'"); + elseif(e.message:findi("Gomoz")) then + e.self:Say("Disciple Gomoz was once Talon Southpaw's pupil. It is rumored that he has only one hand. Unfortunately, a horde of ogre raiders swiped his bones, along with others, from their place in Kurn's Tower. What those simple oafs plan to do with them is a mystery. Only one who has studied the arcane sciences could use them. They most likely used them as soup bones."); + elseif(e.message:findi("return the hand to Cabilis")) then + e.self:Emote("hands you an old tattered sack. 'This shall be your proof of allegiance. Prove that you are strong with an intact mandible of a skulking brutling and the claws of a burynai excavator. Prove that you are a monk of fist and tail with a sash of an exiled human monk and the sparring gloves of a goblin pit fighter. Combined, these items make the sack full. This will earn my trust and the hand.'"); + e.other:SummonCursorItem(17036); -- Item: Tattered Sack from Rinmark + elseif(e.message:findi("assist old Rinmark in completing his rock garden")) then + e.self:Emote("pours the pebbles into his pocket and hands the box to you. 'Take my box. Fill and combine within my box the following; a radiant meteorite, frontier fool's gold, petrified redwood, Rile's sand coin, sulfur stone, fragment of tektite, plains pebble, jade magma, heart of ice and an unholy coldstone. Return the full tin box to me and I shall reward you with a shackle of bronze.'"); + e.other:SummonCursorItem(17039); -- Item: Empty Tin Box + elseif(e.message:findi("student")) then + e.self:Emote("hands you what appears to be the base of a key. 'This was delivered to me by a dying student. He collapsed just after handing it to me. He was accompanying a student of mine named Veltar. They were questing for the legendary Whistling Fists. The key is made of a metal I have never felt or heard of. Find him.'"); + e.other:SummonCursorItem(17040); -- Item: Part of a Large Key + elseif(e.message:findi("test of patience") or e.message:findi("trial of patience")) then + e.self:Say("So your time has finally come to be tested for the final rung. To show your patience you shall spar with me. When you have gained the insight and strategy to strike you will know when. Strike me too soon and you will perish, too late and I will be gone. Come at me when the time is right. Let us begin."); + eq.unique_spawn(96318,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + elseif(e.message:findi("whistling fists")) then + e.self:Say("The Whistling Fists are rumored to be magical instruments of destruction which can only be wielded by monks. The founder, Supreme Master Tynn, was the only lizard to ever gaze upon the weapon. He only spoke of it to his student Marthor. Marthor rarely spoke of it and when he did it was usually after a few flagons of Trog Brew. That is why many consider it to be babble."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12815})) then + e.self:Emote("bows before you and takes a wrinkled, mummified hand from a pouch at his side. 'Take the hand. Let it rest within Cabilis and be reunited with the left.'"); + e.other:Faction(e.self,444,20); -- Faction: Swift Tails + e.other:Faction(e.self,441,10); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,{itemid = 12797,exp = 20000}); -- Item: Iksar Right Hand =|- + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12829})) then + e.self:Emote("opens the box to reveal a variety of pebbles. 'How grand!! My pebbles!! Now I can continue with my rock garden!! Hmmm. You look familiar. Hey!! I bet you can help me complete my garden!! Would you please [assist old Rinmark in completing his rock garden]?'"); + e.other:Faction(e.self,444,20); -- Faction: Swift Tails + e.other:Faction(e.self,441,10); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,0,30000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12836})) then + e.self:Emote("graciously accepts the tin box filled with precious rocks and gems. 'Thank you greatly, young " .. e.other:GetCleanName() .. ". For your deed, I bestow upon you the shackle of bronze!! You have completed the third rung. Alas, there is no time for celebration. I need your help in rescuing a [student] of mine.'"); + e.other:Faction(e.self,444,20); -- Faction: Swift Tails + e.other:Faction(e.self,441,10); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,4195,30000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/timorous/player.lua b/timorous/player.lua new file mode 100644 index 0000000..9a2d3e3 --- /dev/null +++ b/timorous/player.lua @@ -0,0 +1,22 @@ +function event_board_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + local minute = zone_time["zone_minute"]; + eq.debug(" At: " .. hour .. ":" .. minute .. " BoatID: " .. e.boat_id .. " was boarded. Its name is: " .. e.self:GetBoatName() .. ".", 1); +end + +function event_signal(e) + if(e.signal == 1) then + e.self:SetBoatID(838); + e.self:SetBoatName("Maidens_Voyage000"); + elseif(e.signal == 2) then + e.self:SetBoatID(842); + e.self:SetBoatName("Captains_Skiff000"); + end +end + +function event_leave_boat(e) + local zone_time = eq.get_zone_time(); -- Time here is off by 1, so 6AM = 5. + local hour = zone_time["zone_hour"] + 1; + eq.debug(" At: " .. hour .. ":00 I left BoatID: " .. e.boat_id .. ".", 1); +end \ No newline at end of file diff --git a/tox/##a_skeleton.lua b/tox/##a_skeleton.lua new file mode 100644 index 0000000..bfcb562 --- /dev/null +++ b/tox/##a_skeleton.lua @@ -0,0 +1,25 @@ +function event_spawn(e) + eq.set_timer("rant",math.random(180000,450000)); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Can't you see we're busy here?!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13894})) then + e.self:Say("Aye.. You cut out the middleman.. I shall reward you.. hmm.. I have not found anything. how about.. How about something off meself?"); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(9304,12195,13073,13074),500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + if(e.timer == "rant") then + e.self:Say("Yo ho. No sun!"); + eq.set_timer("rant",math.random(180000,450000)); + end +end diff --git a/tox/#Phaeril_Nightshire.lua b/tox/#Phaeril_Nightshire.lua new file mode 100644 index 0000000..de1dddc --- /dev/null +++ b/tox/#Phaeril_Nightshire.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there, " .. e.other:GetCleanName() .. ". I am currently patrolling and can not be disturbed. After I am done with my patrol, perhaps I will speak with you. When the night shift comes on duty, I shall be free then."); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/tox/#Veisha_Fathomwalker.lua b/tox/#Veisha_Fathomwalker.lua new file mode 100644 index 0000000..2c222f4 --- /dev/null +++ b/tox/#Veisha_Fathomwalker.lua @@ -0,0 +1,29 @@ +--BeginFile: --Veisha_Fathomwalker.pl +--Quest for Toxullia Forest - Veisha Fathomwalker: Experienced Courier +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello, " .. e.other:GetCleanName() .. ". I fear I do not have time to speak with you as I am working my shift. Please contact me at a later time."); + elseif(e.message:findi("phaeril")) then + e.self:Say("Phaeril Nightshire is the man with whom I have found comfort during these years of hardship. He has also taken the [position] that belonged to Davorre many years ago."); + elseif(e.message:findi("position")) then + e.self:Say("Davorre was once the Captain of Erudin's forces. He was relieved of those duties shortly before he disappeared. Again, thank you, good sir. I shall rest easier tonight, knowing that he is alive."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12998})) then --Rolled up Note + e.self:Say("Davorre, he is still alive! All these years I had thought him dead. He has kept his promise to me, and yet my most recent actions betray him so. I did not know. Here. Please give this to him with my most sincere regrets. I have moved on with my life and it is good to know that he is alive and well. But [Phaeril] is now my life."); + e.other:QuestReward(e.self,0,0,0,0,12997,1000); --Veisha's Engagement Ring + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12995})) then --A Locked Chest + e.self:Say("Vile creature! Child of heresy! My love's death shall be avenged! How dare you bring me his head in a box!"); + eq.attack(e.other:GetName()); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--EndFile: --Veisha_Fathomwalker.pl +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/tox/#a_skeleton.lua b/tox/#a_skeleton.lua new file mode 100644 index 0000000..5c68172 --- /dev/null +++ b/tox/#a_skeleton.lua @@ -0,0 +1,25 @@ +function event_spawn(e) + eq.set_timer("rant",math.random(180000,450000)); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Grab a pick. Give us a hand!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13894})) then + e.self:Say("Good work, you should be running this operation instead of that Talrigar fellow. Have a small reward. A little bit of the gems I found while tunneling through this rock."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10015,10016,10017,10018),500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + if(e.timer == "rant") then + e.self:Say("A skeleton's day is never done."); + eq.set_timer("rant",math.random(180000,450000)); + end +end diff --git a/tox/#abandoned_heretic_pet.lua b/tox/#abandoned_heretic_pet.lua new file mode 100644 index 0000000..5f72c49 --- /dev/null +++ b/tox/#abandoned_heretic_pet.lua @@ -0,0 +1,15 @@ +function event_waypoint_arrive(e) + if(e.wp == 5) then + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(38009) or eq.get_entity_list():IsMobSpawnedByNpcTypeID(38010)) then + e.self:Say("Speed up the digging my pets!"); + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(38009)) then + eq.get_entity_list():GetMobByNpcTypeID(38009):Say("We are not your pets!"); + end + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(38010)) then + eq.get_entity_list():GetMobByNpcTypeID(38010):Say("We will speed up when you return our mining caps. There are falling rocks all over this place! We could get killed!"); + end + end + elseif(e.wp == 7) then + e.self:Say("Blast you, skeletons! Why I ever resurrected you, I don't know!"); + end +end diff --git a/tox/Aglthin_Dasmore.lua b/tox/Aglthin_Dasmore.lua new file mode 100644 index 0000000..4e9ddaa --- /dev/null +++ b/tox/Aglthin_Dasmore.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am so tired. Leave me be. All I wish to do is fish! Can't I have even a few seconds alone?!"); + end +end \ No newline at end of file diff --git a/tox/Elial_Brook.lua b/tox/Elial_Brook.lua new file mode 100644 index 0000000..4cc0135 --- /dev/null +++ b/tox/Elial_Brook.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Good day to you. This is a dangerous forest for adventuring. Watch out for the [beasts of these woods]."); + elseif(e.message:findi("beast")) then + e.self:Say("These lands are most abundant in poisonous creatures. Watch your step. I have even heard tales of some seeing the dreaded [plague dragon], but I believe that to be sheer myth."); + elseif(e.message:findi("dragon")) then + e.self:Say("Like I told you, that is sheer myth. A great dragon whose breath can rot the flesh from your body in seconds?! Pfaw! This is surely another tale told by senile old men. Ha!!"); + elseif(e.message:findi("heretic")) then + e.self:Say("Heretics!! Thank Quellious the High Guard Sentinels are around to keep us safe from those evildoers!"); + elseif(e.message:findi("prisoner")) then + e.self:Say("There was an escaped prisoner named E'lial B'roon. He was supposed to be a crafty heretic from what I hear. Thank Quellious I have not met up with such an evil man. I shall watch my back for suspicious men such as that [magician in the forest]."); + elseif(e.message:findi("magician")) then + e.self:Say("There is a magician running around on the other side of the stream. I know because from time to time he comes to the stream. He never fishes or gets water, he just stands there as he is if waiting for something. He dropped something, a tunic. Can you [return the tunic] to him?"); + elseif(e.message:findi("tunic")) then + e.self:Say("Oh, good. Be careful! He may be the heretic escapee."); + e.other:SummonCursorItem(18830); -- this is a placeholder item, should be "Tunic" that ID's as "Stained Tunic" + end +end \ No newline at end of file diff --git a/tox/Emil_Parsini.lua b/tox/Emil_Parsini.lua new file mode 100644 index 0000000..be5b3f8 --- /dev/null +++ b/tox/Emil_Parsini.lua @@ -0,0 +1,34 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Good to meet you. " .. e.other:GetCleanName() .. ". Please look around. I have much to offer. I am a master woodworker. It runs in the Parsini family."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18833})) then + e.self:Say("I have been waiting for someone to come and retrieve this staff. Here you are. You will have to combine it with treant resin and an Odus pearl. You can find Odus pearls in the water in the harbor. As for the resin. I can make it if you can find me some treant shards. Maybe another woodworker or cobbler in Qeynos has some."); + -- Confirmed Live Factions + e.other:Faction(e.self,289,5); -- +Merchants of Erudin + e.other:Faction(e.self,266,3); -- +High Council of Erudin + e.other:Faction(e.self,267,3); -- +High Guard of Erudin + e.other:QuestReward(e.self,0,0,0,0,17917,2500); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 13824})) then--Wooden Shards + e.self:Say("Wonderful work!! These shards will work nicely. Here you are then. I found a few flasks of treant resin in the back. You can have one. Thanks again. It kept me from having to go out and hunt treants."); + -- Confirmed Live Factions + e.other:Faction(e.self,289,5); -- +Merchants of Erudin + e.other:Faction(e.self,266,3); -- +High Council of Erudin + e.other:Faction(e.self,267,3); -- +High Guard of Erudin + e.other:QuestReward(e.self,0,0,0,0,13822,2500); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--END of FILE Zone:tox ID:38122 -- Emil_Parsini + + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/tox/Ilanics_skeleton.lua b/tox/Ilanics_skeleton.lua new file mode 100644 index 0000000..c5379e5 --- /dev/null +++ b/tox/Ilanics_skeleton.lua @@ -0,0 +1,29 @@ +-- Ilanic's Scroll +function event_spawn(e) + eq.set_timer("depop",3600000); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am no more."); + elseif(e.message:findi("scroll")) then + e.self:Say("Kobold! Kobold!"); + eq.unique_spawn(38172,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop(); + end +end + +function event_timer(e) + eq.depop(); +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end +--END of FILE Zone:erudnint ID:38150 -- Ilanics_skeleton + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/tox/Jalen_Goldsinger.lua b/tox/Jalen_Goldsinger.lua new file mode 100644 index 0000000..f86468b --- /dev/null +++ b/tox/Jalen_Goldsinger.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("A fine day. Quite murky and quiet, is it not? May your path be filled with fortunes. Be well."); + elseif(e.message:findi("crystal")) then + e.self:Say("Hrm? A crystal of capturing? Aye. I do know the secret of their making. Not that I would tell you. I will, however, create one for you. Provided you bring some of their components and a large coin reserve, that is. I require a potion of sorrow and 1000 gold coins. A tidy sum, in return for which, I will do you the favor of not asking why you need such a... dark item."); + elseif(e.message:findi("potion")) then + e.self:Say("An interesting little concoction. Gorth Bearsoul is the only alchemist I know of who can make such an item. Loud and quite smelly, he is. Not unusual for a barbarian. He calls the icy city of Halas home."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 7113, platinum = 100})) then --Potion of Sorrow + e.self:Say("Excuse me while I add some other items to this mix. There. Finished. Here you go, and thank you for your business."); + e.other:Faction(e.self,254,3); -- Faction: Gate Callers + e.other:Faction(e.self,267,1); -- Faction: High Guard of Erudin + e.other:Faction(e.self,266,1); -- Faction: High Council of Erudin + e.other:Faction(e.self,265,-1); -- Faction: Heretics + e.other:QuestReward(e.self,0,0,0,0,7112,1000); --Empty Crystal Sphere + end + item_lib.return_items(e.self, e.other, e.trade) +end + + +---Needs Dialogue, Elroz \ No newline at end of file diff --git a/tox/Knarthenne_Skurl.lua b/tox/Knarthenne_Skurl.lua new file mode 100644 index 0000000..4411731 --- /dev/null +++ b/tox/Knarthenne_Skurl.lua @@ -0,0 +1,10 @@ +-- Part of SK Epic 1.0 + +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Ah, you do not possess the heart of an innocent. Be gone with you!"); + elseif(e.message:findi("heart of an innocent")) then + e.self:Say("What's that? Heart of the Innocent, you say?! Ages, it has been, since I was last asked that. The Heart of the Innocent is an item of great power. Few are they who have ever commanded the dark magic of such an object. It is the bound soul of a pure mortal, rare indeed. Take this hollow gem, and combine with it the heart of one who is pure. If your hand is steady and your mind is clear, you shall have what you seek."); + e.other:SummonCursorItem(17051); -- Item: Soulcase + end +end diff --git a/tox/Lanivon_Baxer.lua b/tox/Lanivon_Baxer.lua new file mode 100644 index 0000000..51c1d4b --- /dev/null +++ b/tox/Lanivon_Baxer.lua @@ -0,0 +1,25 @@ +-- Al'Kabor's Research - Ring of the Messenger +-- + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". Safe travels to you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6069})) then + e.self:Say("Excellent work! Thank you for delivering this to me. I will get it to the High Council as soon as possible. Take this Ring of the Messenger as an insignia of your service to the city."); + e.other:QuestReward(e.self,0,0,0,0,1573,85000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- EOF zone: tox ID: 38064 NPC: Lanivon_Baxer + + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/tox/Rungupp.lua b/tox/Rungupp.lua new file mode 100644 index 0000000..251b4e1 --- /dev/null +++ b/tox/Rungupp.lua @@ -0,0 +1,10 @@ +function event_waypoint_arrive(e) + if(e.wp == 2) then + e.self:SetRunning(true); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/tox/Sentinel_Creot.lua b/tox/Sentinel_Creot.lua new file mode 100644 index 0000000..73addcb --- /dev/null +++ b/tox/Sentinel_Creot.lua @@ -0,0 +1,14 @@ +function event_waypoint_arrive(e) + if((e.wp == 1) or (e.wp == 3)) then + e.self:Say("Hail citizens. Sentinel Creot of the High Guard is on watch."); + elseif(e.wp == 1) then + e.self:SetRunning(true); + elseif(e.wp == 2) then + e.self:SetRunning(false); + end +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/tox/Sentinel_Drom.lua b/tox/Sentinel_Drom.lua new file mode 100644 index 0000000..50f1e03 --- /dev/null +++ b/tox/Sentinel_Drom.lua @@ -0,0 +1,12 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail. " .. e.other:GetCleanName() .. "! Be careful out in Toxxulia Forest! There are many venomous creatures out here. If things get too scary for you. run back to us and we shall take care of the threat."); + end +end +--END of FILE Zone:tox ID:38124 -- Sentinel_Drom + + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/tox/Sentinel_Flavius.lua b/tox/Sentinel_Flavius.lua new file mode 100644 index 0000000..4120481 --- /dev/null +++ b/tox/Sentinel_Flavius.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Hail. good citizen! You are safe when you are near a sentinel of the High Guard. Feel free to rest and recuperate."); + end +end + +--END of FILE Zone:tox ID:38123 -- Sentinel_Flavius +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/tox/Shintar_Vinlail.lua b/tox/Shintar_Vinlail.lua new file mode 100644 index 0000000..90f75e1 --- /dev/null +++ b/tox/Shintar_Vinlail.lua @@ -0,0 +1,41 @@ +function event_spawn(e) + eq.set_timer("where",3100000); +end + +function event_timer(e) + e.self:Say("Where are they?! I can't wait forever!"); +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I have no time to answer questions. whelp! Now. leave this place before the sting of death finds the life in your veins!"); + elseif(e.message:findi("mission")) then + e.self:Say("All right, already, if you must know! We were hunting down the escaped prisoner for the bounty. We tracked him here. We saw him take a boat downstream. Moohank and Binnlin grabbed a canoe and went after him. Being the weakest, I stayed behind to make sure the escapee did not backtrack. Of course Moohank and Binnlin will not be bested by one man, so I'm just waiting for their return. Now, will you just leave?!"); + elseif(e.message:findi("moohank")) then + e.self:Say("Moohank has the worst temper of any Erudite I know. To keep from going insane with anger, he started fishing constantly. He lives by a small pier on the other side of the stream. He and Binnlin are on a mission."); + elseif(e.message:findi("binnlin")) then + e.self:Say("Binnlin is about seven feet tall and all muscle. He is very shy with a bad temper which frequently causes him to beat strangers to a pulp."); + elseif(e.message:findi("heretic")) then + e.self:Say("I have no time to answer questions about those madmen!"); + elseif(e.message:findi("prisoner")) then + e.self:Say("Listen. That escaped prisoner is already out of this land. Don't waste your time looking for him any more. If you do, you will end up dead like the others."); + elseif(e.message:findi("wait")) then + e.self:Say("I am waiting for some old friends who are headed down the stream this way. I am sure you don't want to be here when they get here. They are a temperamental lot and hate new faces. Go home!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18830})) then -- this is a placeholder item, should be "Tunic" that ID's as "Stained Tunic" + e.self:Say("You beast! I shall send you back to the sty where you belong!"); + eq.attack(e.other:GetName()); + end +end + +--END of FILE Zone:tox ID:4508 -- Shintar_Vinlail +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- + diff --git a/tox/a_kobold_caster.lua b/tox/a_kobold_caster.lua new file mode 100644 index 0000000..dc76eae --- /dev/null +++ b/tox/a_kobold_caster.lua @@ -0,0 +1,13 @@ +-- Ilanic's Scroll +function event_spawn(e) + eq.set_timer("depop",600000); +end + +function event_timer(e) + eq.depop(); +end + +function event_trade(e) + local item_lib = require("items"); + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/tox/abandoned_heretic_pet.lua b/tox/abandoned_heretic_pet.lua new file mode 100644 index 0000000..f1c9055 --- /dev/null +++ b/tox/abandoned_heretic_pet.lua @@ -0,0 +1,8 @@ +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 13894})) then + e.self:Say("Good work, you should be running this operation instead of that Talrigar fellow. Have a small reward. A little bit of the gems I found while tunneling through this rock."); + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(10015,10016,10017,10018),500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/trakanon/#Kaiaren.lua b/trakanon/#Kaiaren.lua new file mode 100644 index 0000000..f84a788 --- /dev/null +++ b/trakanon/#Kaiaren.lua @@ -0,0 +1,41 @@ +--Quest for Trakanon's Teeth - Kaiaren (True): Monk Epic 1.0 +function event_spawn(e) + eq.set_timer("1",3600000); --Depop in 1 hour +end + +function event_say(e) + if(e.other:HasItem(1689)) then + if(e.message:findi("lheao")) then + e.self:Say("Hmmm, never heard of him. Well, it doesn't matter, the book is here now. Curse that idiot for writing it in the first place. Not even sure why I let him stick around. If you ever see that clown monk Aradiel kick him in the shins for me! At any rate, I suppose you'd like to find the Fists and [have a nice chat with them], eh? Their master owes me much. I would reward you well if you were to bring me proof of the master's defeat."); + elseif(e.message:findi("have a nice chat with them")) then + e.self:Say("Yes, I suppose you would. All you children looking for fame and glory will eventually learn the poison of ambition. But how will you find them? They are able to meld with their elements seamlessly and they certainly have no interest in fooling with the likes of you. No, you will need to get their attention. Fortunately, I know [how you can do this]."); + elseif(e.message:findi("how can i do this")) then + e.self:Say("My guess is that the weakest of the Fists will be the easiest to draw out. He is egotistical and arrogant. How he came to master the Discipline of Fire, I do not know. He will most likely be in another form, one of his element. When you find the one you believe to be the Fist, you must challenge him. If you use his true name, Eejag, in your formal challenge, he will respond. A flame can burn intensely but it cannot last for long. Know this when you battle him."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1683},0)) then --Celestial Fists (Book) + e.self:Say("Now, then. Where did you find this, monk? This is not just some light reading to be borrowed from the town library. Who gave this to you?"); + e.other:QuestReward(e.self,0,0,0,0,1689); --Book of Celestial Fists + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1684},0)) then --Charred Scale + e.self:Say("Ahhh, impressive indeed! Now that you have broken the chain of the Fists, the others may come toppling down if you persevere. The Fist of Air is now the weakest, then Earth, and finally Water before the master of them all, Vorash. You must defeat them in order, proving the demise of the last to draw out the one you are after. The task before you now is to take this scale and show it to the Fist of Air wherever he may be. Good luck."); + e.other:QuestReward(e.self,0,0,0,0,1684); --Charred Scale + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1688, item2 = 1689})) then --Demon Fangs and Book of Celestial Fists + e.self:Emote("bows his head and breathes a long sigh as if relived of a great weight. He then looks up at you and says, 'I honestly did not believe you could have defeated Vorash. Even though he sought nothing but war and bloodshed, it is a life nonetheless and we must mourn him. I will sew these fangs into magical fist wraps and they shall be yours. Remember Xenevorash. A purpose can be found for every situation and individual. To achieve perfection is to perceive this truth.'"); + e.other:QuestReward(e.self,0,0,0,0,10652); --Celestial Fists (Epic) + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.depop(); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/trakanon/Crusader_Vragor.lua b/trakanon/Crusader_Vragor.lua new file mode 100644 index 0000000..14c071a --- /dev/null +++ b/trakanon/Crusader_Vragor.lua @@ -0,0 +1,29 @@ +--Crusader Vragor is used for spawning Zhaoku, a Trakasaur who drops one of the pieces for the Whistling Fists quest. +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Perhaps you would care to hear a tale, and perhaps you could help me with the ending. It is the tale of the end of Grandmaster Tynn. We all know that Tynn came into Sebilis with no rebirth. I suppose you know he created the caste of Iksar monks, but I doubt you know where he now [rests] do you?"); + elseif(e.message:findi("rests")) then + e.self:Say("Then I shall tell you. Master Tynn chose a place of rest in his old age. While deep in meditation he slipped away and breathed no more. His corpse remained in the stance of meditation for many years unyielding to the elements. This brings us to recent times. A Trakanasaur that has been named Zhaoku came along the remains and devoured them. The bones too hard to be chewed, he swallowed them whole. To this day he wanders with them lodged in his stomach. Are you interested in knowing [where] Zhaoku is?"); + elseif(e.message:findi("where")) then + e.self:Say("I will tell you but you must help me first. I have been tied to this plane because of deeds unfinished. I was questing for the stupendous tome for ages to no avail. Without this tome I can not pass on in peace. Finish my quest, bring me the stupendous tome and a crusader coffin. I will tell you where the beast rests before I pass on. I doubt you can finish this, but I can always hope."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18051, item2 = 17031})) then + e.self:Say("The tome! I can finally pass on in peace. Before I go I will tell you that Zhaoku rests to the east of here near Old Sebilis. He is gigantic and not easily missed."); + eq.spawn2(95184,0,0,-1801,-2260,-365,38); -- NPC: Zhaoku + e.other:Faction(e.self,444,10); -- Faction: Swift Tails + e.other:Faction(e.self,441,5); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,0,20000); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/trakanon/Emperor_Ganak.lua b/trakanon/Emperor_Ganak.lua new file mode 100644 index 0000000..a62a613 --- /dev/null +++ b/trakanon/Emperor_Ganak.lua @@ -0,0 +1,35 @@ +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Greetings..It has been long since I have been aware on this plane.. Who are you and what do you want of I, Ganak, slayer of Jaled-Dar?"); + elseif(e.message:findi("veeshan's peak")) then + e.self:Say("You wish to know of Veeshans Peak?! You are either very brave or very foolish! There is nothing there for the uninvited but a fiery death. I have been away from this plane of existence for a long time yet still I feel the presence of the ancient wurms. I am sure they sense my presence as well, being as I hold the only [key to the chambers] of the Ring of Scale."); + elseif(e.message:findi("key to the chambers")) then + e.self:Say("I am not so quick to grant someone the key to their death! If you truly wish your doom to fall upon you so soon then bring me the three medallions of the fallen Iksar tribes, Kylong, Obulus, and Jarsath. The tribes were long ago crushed by the warriors of the Kunzar and their remains lie buried beneath ages of rubble. Finding the lost medallions of my people will not be enough to prove yourself worthy of entry into the fortress of the great wurms -- there is another task that you must complete before you return the [medallions]."); + elseif(e.message:findi("medallions")) then + e.self:Say("There were five different tribes of my people. The Kunzar, Kylong, Nathsar, Obulus, and Jarsath. Each of these tribes had a medallion that represented it. If you can return to me the Medallion of the Kunzar and Nathsar, I will give you the idol of Trakanon."); + elseif(e.message:findi("task")) then + e.self:Say("Those who enter Veeshans Peak uninvited by the lords of the Ring of Scale become nothing more than a snack for the wurms that dwell within its halls. Once you cross the threshold of the Peak there Is no escape. Any fool dedicated enough to locate the medallions can do so, but it takes a truly mighty individual to slay the dragon that has plagued my people for ages. I speak of the poison dragon Trakanon, the vile undead wurm that has conquered my peoples greatest wurmslayers. Bring me proof of Trakanons death with the medallions I request and I may deem you worthy of the key to the Ring of Scale."); + elseif(e.message:findi("glowing orb")) then + e.self:Say("The glowing orb is activated by a special key, an idol crafted in the likeness of the dread Trakanon, Reaver of Sebilis. I have this idol and will give it to you, but only if you give me two [medallions] representing the Iksar tribes of old."); + elseif(e.message:findi("Sebilis")) then + e.self:Say("An adventurer that wishes to enter the inner city of Sebilis you say?? There are only two ways in, either the [glowing orb] in the heart of the ruins in the outer city, or via one of the tortured souls that wanders the jungles nearby."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 19951, item2 = 19952}, 0)) then + e.self:Say("You have returned to me two medallions of my people. In return, I give you this key to enter the ruins of Sebilis. Be wary though, for Trakanon, Scourge of the Sibilisian empire resides within. "); + e.other:QuestReward(e.self,0,0,0,0,20883,10000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 7276, item2 = 19953, item3 = 19954, item4 = 19955})) then + e.self:Say("I must say, I thought your flesh would be rotting from your bones alongside the remains of the ancient Sebilisians. I commend you on your victory over the poison dragon and thank you for returning the ancient medallions of my people. I reward you with the key you seek. A place shall be prepared for your souls among the most honored of the dead. Soon you will be seeing the world through the shroud of death."); + e.other:QuestReward(e.self,0,0,0,0,20884); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Quest by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/trakanon/Kaiaren.lua b/trakanon/Kaiaren.lua new file mode 100644 index 0000000..58bc232 --- /dev/null +++ b/trakanon/Kaiaren.lua @@ -0,0 +1,35 @@ +--Quest for Trakanon's Teeth - Kaiaren (Mad): Monk Epic 1.0 +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("AHHH get it away from me go away .. leave me alone"); + elseif(e.message:findi("celestial fists")) then + e.self:Say("Eh? What's that? Bah! That was destroyed long ago. Don't waste my time with fairy taAAAAAGGHHH GET IT AWAY!!!! HELP!!! They're all over MEHEHEHEHEEEEEEee!!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1683},0)) then --Celestial Fists + e.self:Emote("eyes open wide and he attacks you!"); + e.other:QuestReward(e.self,0,0,0,0,1683); -- Celestial Fists + eq.attack(e.other:GetName()); + eq.unique_spawn(95040,0,0,2470,306,-339,0); --Kaiaren (True) + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1684},0)) then --Charred Scale + e.self:Say("Ahhh, impressive indeed! Now that you have broken the chain of the Fists, the others may come toppling down if you persevere. The Fist of Air is now the weakest, then Earth, and finally Water before the master of them all, Vorash. You must defeat them in order, proving the demise of the last to draw out the one you are after. The task before you now is to take this scale and show it to the Fist of Air wherever he may be. Good luck."); + e.other:QuestReward(e.self,0,0,0,0,1684); --Charred Scale + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1688, item2 = 1689})) then --Demon Fangs and Book of Celestial Fists + e.self:Emote("bows his head and breathes a long sigh as if relived of a great weight. He then looks up at you and says, 'I honestly did not believe you could have defeated Vorash. Even though he sought nothing but war and bloodshed, it is a life nonetheless and we must mourn him. I will sew these fangs into magical fist wraps and they shall be yours. Remember Xenevorash. A purpose can be found for every situation and individual. To achieve perfection is to perceive this truth.'"); + e.other:QuestReward(e.self,0,0,0,0,10652); --Celestial Fists (Epic) + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_death_complete(e) + e.self:Say("Not bad.. Now lets see if you can find my trueform if you do we discuss this further."); +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/trakanon/Zhaoku.lua b/trakanon/Zhaoku.lua new file mode 100644 index 0000000..6565a0e --- /dev/null +++ b/trakanon/Zhaoku.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.set_timer("depop",2700000); +end + +function event_timer(e) + eq.depop(); +end diff --git a/trakanon/a_human_skeleton.lua b/trakanon/a_human_skeleton.lua new file mode 100644 index 0000000..f66441d --- /dev/null +++ b/trakanon/a_human_skeleton.lua @@ -0,0 +1,21 @@ +-- Quest: Brain Bite (Concussion) +function event_say(e) + if(e.message:findi("Hail")) then + e.self:Say("Save my.. Soul.. Find.. Wizard.. Desp.."); + end +end + +function event_trade(e) + local item_lib = require("items"); + -- Hand in Hampton's Bottle + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12962})) then + e.other:QuestReward(e.self,0,0,0,0,12965); -- Bottle of swirling smoke (Hampton's soul) + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/twilight/Alton_Daleson.lua b/twilight/Alton_Daleson.lua new file mode 100644 index 0000000..4781a7c --- /dev/null +++ b/twilight/Alton_Daleson.lua @@ -0,0 +1,63 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to Jern's Rest! I'm the owner and proprietor of this inn, it's been in my family for generations. My great grandaddy, Jern, built it back when Katta Castellum was first being built. If ya be wantin' of anything don't hesitate to ask."); + elseif(e.message:findi("armor")) then + e.self:Say("His armor has also been in the family for generations, if ye be a [ranger] I don't have much use for it running this inn. I'll just need something in return for it."); + elseif(e.message:findi("ranger")) then + e.self:Say("Excellent! If you are interested I have the Woodsman's [Helm], Woodsmand's [Mail], Woodsman's [Vambraces], Woodsman's [Greaves], Woodsman's [Bracer], Woodsman's [Boots], and the Woodsman's [Axe]. If youa re interested in the rest of his armor you'll have to ask my wife Ellen, she'll have some errands you can run for her."); + elseif(e.message:findi("axe")) then + e.self:Say("If you want the Woodsman's Axe you will have to aquire these items: a sun jewel, a mark of the naturalist, some ancient pottery, and a fossilized skull."); + elseif(e.message:findi("boots")) then + e.self:Say("If you want the Woodsman's Boots you will have to acquire these items: a star jewel, a mark of timber, and a gilded steel rod."); + elseif(e.message:findi("bracer")) then + e.self:Say("If you want the Woodsman's Bracer you will have to acquire these items: a moon jewel, a mark of lakes, and some lightning dust."); + elseif(e.message:findi("greaves")) then + e.self:Say("If you want the Woodsman's Greaves you will have to acquire these items: an astral jewel, a mark of oceans, a pouch of fire stones, and a cat skin pouch."); + elseif(e.message:findi("helm")) then + e.self:Say("For the Woodsman's Helm you will have to acquire these items: a cloud jewel, a mark of leaves, a frost covered leaf, and some sea grass."); + elseif(e.message:findi("mail")) then + e.self:Say("To get the Woodsman's Mail you will have to acquire these items: a sky jewel, a mark of forests, a frozen vial, and a tro jeg brain."); + elseif(e.message:findi("vambraces")) then + e.self:Say("If you want the Woodsman's Vambraces you will have to acquire these items: a meteor jewel, a mark of mountains, a tro jeg eye, and a solstice rune."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5852,item2 = 5853,item3 = 5851,item4 = 4488},1,text)) then -- axe + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3958,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5695,item2 = 5694,item3 = 4490},1,text)) then -- boots + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3952,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5693,item2 = 5692,item3 = 4489},1,text)) then -- bracer + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3951,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 5689,item3 = 5687,item4 = 5688},1,text)) then -- greaves + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3949,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 5679,item3 = 5678,item4 = 5680},1,text)) then -- helm + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3946,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5682,item2 = 5681,item3 = 4492,item4 = 5683},1,text)) then -- bp + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3947,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5684,item2 = 4493,item3 = 5686,item4 = 5685},1,text)) then -- vambs + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3948,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end + diff --git a/twilight/Bella_Stremi.lua b/twilight/Bella_Stremi.lua new file mode 100644 index 0000000..06f1d1e --- /dev/null +++ b/twilight/Bella_Stremi.lua @@ -0,0 +1,64 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ah hello and welcome, " .. e.other:GetCleanName() .. ". 'Tis a pleasure to see some new faces. I have the finest wares to be found, be sure to check them out."); + elseif(e.message:findi("wares")) then + e.self:Say("Oh I carry the usual items, food and various other things. I may have something you would be interested in if you are a practitioner of the dark arts."); + elseif(e.message:findi("dark art")) then + e.self:Say("Frantip and I once accepted in trade this set of armor from a necromancer for services rendered. If you happen to be a necromancer perhaps we could work out a deal for the armor."); + elseif(e.message:findi("necromancer")) then + e.self:Say("I have a cap, robes, sleeves, pants, shawl, bracer, and sandals for a necromancer. Frantip has the rest just ask him about armor and I'm sure he'll help you. Which are you interested in?"); + elseif(e.message:findi("cap")) then + e.self:Say("For the cap of pestilence you'll have to bring me a sky jewel, an aged gold coin, a dark gem, and a priceless book."); + elseif(e.message:findi("robe")) then + e.self:Say("For the robe of pestilence you'll have to bring me a meteor jewel, a miniature armband, a mark of fortune, and a sun wraith eye."); + elseif(e.message:findi("sleeves")) then + e.self:Say("For the sleeves of pestilence you'll have to bring me an astral jewel, a petrified totem, a frozen hailstone, and a glowing crystal."); + elseif(e.message:findi("pants")) then + e.self:Say("For the pants of pestilence you'll have to bring me a sun jewel, a divining rod, an aged platinum symbol, and a silver sign."); + elseif(e.message:findi("shawl")) then + e.self:Say("For the shawl of pestilence you'll have to bring me a moon jewel an ancient fossil, and some wrought iron shavings."); + elseif(e.message:findi("bracer")) then + e.self:Say("For the bracer of pestilence you'll have to bring me a star jewel, a granite idol, and an ancient silver coin."); + elseif(e.message:findi("sandals")) then + e.self:Say("For the sandals of pestilence you'll have to bring me a cloud jewel, a blackened ornament, and a snake scale sceptre."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 4741,item3 = 4742,item4 = 4743},1,text)) then -- cap + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3723,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4493,item2 = 4744,item3 = 4745,item4 = 4746},1,text)) then -- robe + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3724,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 4748,item3 = 4749,item4 = 4750},1,text)) then -- sleeves + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3725,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4488,item2 = 4751,item3 = 4752,item4 = 4753},1,text)) then -- pants + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3726,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4489,item2 = 4771,item3 = 4772},1,text)) then -- shawl + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3727,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 4773,item3 = 4774},1,text)) then -- bracer + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3728,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 4775,item3 = 4776},1,text)) then -- sandals + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3729,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end diff --git a/twilight/Bolli_Hillfoot.lua b/twilight/Bolli_Hillfoot.lua new file mode 100644 index 0000000..05d6432 --- /dev/null +++ b/twilight/Bolli_Hillfoot.lua @@ -0,0 +1,62 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks at " .. e.other:GetCleanName() .. " and smirks. 'I be Bolli and it's sure an honor to meet such a fine person such as yourself! I have plenty of deals for any stealthy types'"); + elseif(e.message:findi("deal")) then + e.self:Say("Ah, " .. e.other:GetCleanName() .. ", you fancy yerself to be a rogue. Well I can cut ya a deal on some armor if you be wantin' some."); + elseif(e.message:findi("armor")) then + e.self:Emote("smiles widely. 'Ah excellent, I have a coif, tunic, vambraces, greaves, mantle, bracer, and boots just ask about each one and Ill tell ya just what I want in return. Youll have to talk to my partner Liteema if you want the rest of the armor.'"); + elseif(e.message:findi("boots")) then + e.self:Say("If you want the Boots of Concealment go gather for me a meteor jewel, a mark of silence, and an engraved fire emerald statuette."); + elseif(e.message:findi("bracer")) then + e.self:Say("If you want the Bracer of Concealment go gather for me a sky jewel, a mark of cunning, and an engraved black diamond statuette."); + elseif(e.message:findi("tunic")) then + e.self:Say("If you want the Tunic of Concealment go gather for me a sun jewel, a mark of stealth, an engraved diamond statuette, and a tethered leash."); + elseif(e.message:findi("greaves")) then + e.self:Say("If you want the Greaves of Concealment go gather for me a star jewel, a mark of burglary, an engraved ruby statuette, and a small brass figurine."); + elseif(e.message:findi("coif")) then + e.self:Say("If you want the Coif of Concealment go gather for me an astral jewel, a mark of thievery, an engraved sapphire statuette, and a brass linked chain."); + elseif(e.message:findi("mantle")) then + e.self:Say("If you want the Mantle of Concealment go gather for me a cloud jewel, a mark of forgery, and an engraved star sapphire statuette."); + elseif(e.message:findi("vambraces")) then + e.self:Say("If you want the Vambraces of Concealment go gather for me a moon jewel, a mark of robbery, an engraved emerald statuette, and a half melted blade."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4493,item2 = 5285,item3 = 5286},1,text)) then -- meteor jewel. a mark of silence. and an engraved fire emerald statuette + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3794,25000); -- boots + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 5283,item3 = 5284},1,text)) then -- sky jewel. a mark of cunning. and an engraved black diamond statuette + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3793,25000); -- bracer + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4488,item2 = 5296,item3 = 5273,item4 = 5274},1,text)) then -- sun jewel. a mark of stealth. an engraved diamond statuette. and a tethered leash. + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3789,25000); -- tunic + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 5278,item3 = 5279,item4 = 5280},1,text)) then -- star jewel. a mark of burglary. an engraved ruby statuette. and a small brass figurine + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3791,25000); -- Greaves + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 5269,item3 = 5270,item4 = 5271},1,text)) then -- astral jewel. a mark of thievery. an engraved sapphire statuette. and a brass linked chain + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3788,25000); -- Coif + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 5281,item3 = 5282},1,text)) then -- cloud jewel. a mark of forgery. and an engraved star sapphire statuette + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3792,25000); -- mantle + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4489,item2 = 5275,item3 = 5276,item4 = 5277},1,text)) then -- moon jewel, a mark of robbery, an engraved emerald statuette, and a half melted blade + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3790,25000); -- Vambraces + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end diff --git a/twilight/Brodlan_Remdo.lua b/twilight/Brodlan_Remdo.lua new file mode 100644 index 0000000..da0fb3a --- /dev/null +++ b/twilight/Brodlan_Remdo.lua @@ -0,0 +1,67 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Why hello, I'm in charge of the fishing operations here on Jern's Isle. [Fish] are my area of expertise."); + elseif(e.message:findi("fish")) then + e.self:Say("We have fish come in here all the time. Sometimes we catch an [oddity] now and again."); + elseif(e.message:findi("oddity")) then + e.self:Say("Once we pulled up this ancient chest filled with this [dark plate armor]."); + elseif(e.message:findi("armor")) then + e.self:Say("Looked the like kind of armor a dark knight would wear. if ya want it I'm sure we could arrange a [trade] of some sort."); + elseif(e.message:findi("trade")) then + e.self:Say("Since Trevor and I are the ones that found it we split it between ourselves. I have a [helm], [breastplate], [vambraces], [greaves], [pauldrons], [bracer], and [boots]. Ask Trevor about the rest of the armor."); + elseif(e.message:findi("breastplate")) then + e.self:Say("For the darkened knight's breastplate fetch me a cloud jewel. a mark of fear. a delicate glass sculpture. and a painted ornament."); + elseif(e.message:findi("vambraces")) then + e.self:Say("For the darkened knight's vambraces fetch me a sky jewel. a mark of terror. a runed ornamental mace. and an ancient tablet."); + elseif(e.message:findi("greaves")) then + e.self:Say("For the darkened knight's greaves fetch me a meteor jewel. a mark of dread. the King's Tome. and a polished ivory idol."); + elseif(e.message:findi("pauldrons")) then + e.self:Say("For the darkened knight's pauldrons fetch me an astral jewel. a mark of hatred. and an ancient petrified tulip."); + elseif(e.message:findi("bracer")) then + e.self:Say("For the darkened knight's bracer fetch me a sun jewel. a mark of intimidation. and a small rough marble figurine."); + elseif(e.message:findi("boots")) then + e.self:Say("For the darkened knight's boots fetch me a moon jewel. a mark of horror. and a fanged talisman."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4489,item2 = 5871,item3 = 5872},1,text)) then -- moon jewel, a mark of horror, and a fanged talisman + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3965,25000); -- Darkened Knight's Boots + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4488,item2 = 5869,item3 = 5870},1,text)) then -- sun jewel, a mark of intimidation, and a small rough marble figurine + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3964,25000); -- Darkened Knight's Bracer + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 5857,item3 = 5860,item4 = 5859},1,text)) then -- cloud jewel, a mark of fear, a delicate glass sculpture, and a painted ornament + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3960,25000); -- Darkened Knight's Breastplate + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4493,item2 = 5864,item3 = 5865,item4 = 5866},1,text)) then -- meteor jewel, a mark of dread, the Kings Tome, and a polished ivory idol + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3962,25000); -- Darkened Knight's Greaves + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 5854,item3 = 5855,item4 = 5856},1,text)) then -- star jewel, a mark of shadows, a primitive totem, and a golden spoon + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3959,25000); -- Darkened Knight's Helm + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 5873,item3 = 5874},1,text)) then -- star jewel, a mark of dark fate, and a crystalline idol + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3966,25000); -- Darkened Knight's Mask + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 5867,item3 = 5868},1,text)) then -- astral jewel, a mark of hatred, and an ancient petrified tulip + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3963,25000); -- Darkened Knight's Pauldrons + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 5861,item3 = 5862,item4 = 5863},1,text)) then -- sky jewel, a mark of terror, a runed ornamental mace, and an ancient tablet + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3961,25000); -- Darkened Knight's Vambraces + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end diff --git a/twilight/Brolan_Geppal.lua b/twilight/Brolan_Geppal.lua new file mode 100644 index 0000000..eeedec2 --- /dev/null +++ b/twilight/Brolan_Geppal.lua @@ -0,0 +1,57 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Well met friend, lovely day isn't it?"); + elseif(e.message:findi("armor")) then + e.self:Say("Yes Shelia told me I may have some people asking me about the armor I have. Are ya a bard?"); + elseif(e.message:findi("bard")) then + e.self:Say("Good, I have a [mask], [cloak], [gauntlets], [gorget], [girdle], and a [sword]."); + elseif(e.message:findi("cloak")) then + e.self:Say("For the cloak you must gather these things. An Astral jewel, a mark of melody, an onyx studded medal, and a porous rock."); + elseif(e.message:findi("gauntlets")) then + e.self:Say("For the gauntlets you must gather these things. A sun jewel, a mark of anthems, and a fire emerald studded medal."); + elseif(e.message:findi("girdle")) then + e.self:Say("For the girdle you must gather these things. A star jewel, a mark of composition, a peridot studded medal, and a seared brand."); + elseif(e.message:findi("gorget")) then + e.self:Say("For the gorget you must gather these things a moon jewel, a mark of psalms, and a black pearl studded medal."); + elseif(e.message:findi("mask")) then + e.self:Say("For the mask you must gather these things a meteor jewel, a mark of tenor, and a star sapphire studded medal."); + elseif(e.message:findi("sword")) then + e.self:Say("For the sword you must gather these things a cloud jewel, a mark of chants, a red stone idol, and a moonstone studded medal."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 5393,item3 = 5394,item4 = 5395},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3928,25000); -- cloak + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5397,item2 = 5396,item3 = 4488},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3929,25000); -- gaunts + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5474,item2 = 5475,item3 = 5476,item4 = 4490},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3931,25000); -- girdle + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5399,item2 = 5398,item3 = 4489},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3930,25000); -- gorget + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5349,item2 = 4493,item3 = 5354},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3910,25000); -- mask + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 5477,item3 = 5479,item4 = 5478},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3932,25000); -- sword + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end diff --git a/twilight/Derron_Gramjon.lua b/twilight/Derron_Gramjon.lua new file mode 100644 index 0000000..2ca61a0 --- /dev/null +++ b/twilight/Derron_Gramjon.lua @@ -0,0 +1,62 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("'s piercing eyes meets yours. 'Are ye a guest of Vornol's too? Have faith my friend but don't let that durn mage fool you, I know him better than anyone else. Well except for Valana of course.'"); + elseif(e.message:findi("cleric")) then + e.self:Say("I thought you might be. I have some armor to reward those that prove to be most holy."); + elseif(e.message:findi("armor")) then + e.self:Say("The armor I have is a helm, breastplate, vambraces, greaves, pauldrons, bracer, and boots. The rest you will have to get from my friend and guard Kayn. Just ask him about armor."); + elseif(e.message:findi("boots")) then + e.self:Say("For the boots you must prove yourself by bringing me a star jewel, a mark of belief and a light etched sapphire."); + elseif(e.message:findi("bracer")) then + e.self:Say("For the bracer you must prove yourself by bringing me a moon jewel, a mark of truth, and a light etched ruby."); + elseif(e.message:findi("breastplate")) then + e.self:Say("For the breastplate you must prove yourself by bringing me a sky jewel, a mark of faith, genuine leather padding, and a brazier of light."); + elseif(e.message:findi("greaves")) then + e.self:Say("For the greaves you must prove yourself by bringing me an astral jewel, a mark of purity, a lexicon of omens, and a candle of rites."); + elseif(e.message:findi("helm")) then + e.self:Say("For the helm you must prove yourself by bringing me a cloud jewel, a mark of remedy, a vial of holy water, and a holy statuette."); + elseif(e.message:findi("pauldrons")) then + e.self:Say("For the pauldrons you must prove yourself by bringing me a sun jewel, a mark of the divine, and decorative bracers of wistfulness."); + elseif(e.message:findi("vambraces")) then + e.self:Say("For the vambraces you must prove yourself by bringing me a meteor jewel, a mark of the holy, a tome of deities, and a restored tapestry."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 4839,item3 = 4840},1,text)) then -- boots + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3742,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4838,item2 = 4829,item3 = 4489},1,text)) then -- bracer + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3741,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4798,item2 = 4797,item3 = 4796,item4 = 4492},1,text)) then -- breastplate + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3737,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 4818,item3 = 4810,item4 = 4809},1,text)) then -- greaves + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3739,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 4795,item3 = 4793,item4 = 4794},1,text)) then -- helm + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3736,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4820,item2 = 4819,item3 = 4488},1,text)) then -- pauldrons + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3740,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4799,item2 = 4493,item3 = 4808,item4 = 4800},1,text)) then -- vambs + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3738,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end diff --git a/twilight/Edgar_Lemoof.lua b/twilight/Edgar_Lemoof.lua new file mode 100644 index 0000000..2ab7071 --- /dev/null +++ b/twilight/Edgar_Lemoof.lua @@ -0,0 +1,57 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hiya. I be a fishin'. What, ya need somethin?"); + elseif(e.message:findi("armor")) then + e.self:Say("Oh ya want some of the druid equipment that Rilla and I make?"); + elseif(e.message:findi("druid")) then + e.self:Say("I can make ya a mask, cloak, gloves, talisman, belt, and a crook. Just ask about each one and I'll tell ya what ya need to bring so I can make it."); + elseif(e.message:findi("mask")) then + e.self:Say("'For the earth blessed mask you need to bring me a moon jewel, a mark of storms, and an etched fire opal of nature."); + elseif(e.message:findi("cloak")) then + e.self:Say("For the earth blessed cloak you need to bring me a star jewel, a mark of the earth, an etched peridot of nature, and a tablet of wolves."); + elseif(e.message:findi("gloves")) then + e.self:Say("'For the earth blessed gloves you need to bring me a cloud jewel, a mark of blossoms, and an etched pearl of nature."); + elseif(e.message:findi("talisman")) then + e.self:Say("For the earth blessed talisman you need to bring me a sky jewel, a mark of rain, and an etched opal of nature."); + elseif(e.message:findi("belt")) then + e.self:Say("For the earth blessed belt you need to bring me a meteor jewel, a mark of flora, an etched onyx of nature, and an ancient writ of nature."); + elseif(e.message:findi("crook")) then + e.self:Say("For the earth blessed crook you need to bring me an astral jewel, mark of fauna, an etched fire emerald of nautre, and a vial of moon dew."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4489,item2 = 5097,item3 = 5098},1,text)) then -- mask + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3769,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 5099,item3 = 5107,item4 = 6395},1,text)) then -- cloak + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3770,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 5108,item3 = 5109},1,text)) then -- gloves + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3771,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 5110,item3 = 5116},1,text)) then -- talisman + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3772,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4493,item2 = 5117,item3 = 5118,item4 = 5119},1,text)) then -- belt + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3773,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 5129,item3 = 5190,item4 = 5191},1,text)) then -- crook + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3774,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end diff --git a/twilight/Elisah_Astari.lua b/twilight/Elisah_Astari.lua new file mode 100644 index 0000000..21d2a46 --- /dev/null +++ b/twilight/Elisah_Astari.lua @@ -0,0 +1,24 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Not to be rude, but I am on a very important mission right now and I cannot be bothered."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29868}, 0)) then -- Letter of Relief + e.self:Say("So you have been sent to relieve me? Not that I need I need it but if you were ordered by Yuka then I will tell you what I know. Tergus Raslin was given the escape route that leads through Twilight Sea. He was to suppose to come through Scarlet Desert, so he should be coming this way. It has been a few days though and I do not know what has become of him. I will head back to Sanctus Seru to let Yuka know you are on the case."); + e.other:Faction(e.self,1485,10); -- Eye of Seru + e.other:Faction(e.self,1484,-1); -- Hand of Seru + e.other:Faction(e.self,1486,-1); -- Heart of Seru + e.other:Faction(e.self,1483,1); -- Seru + e.other:Faction(e.self,1542,-1); -- Haven Smugglers + e.other:Faction(e.self,1503,-1); -- Validus Custodus + e.other:Faction(e.self,1504,-2); -- Magus Conlegium + eq.unique_spawn(170002,1,0,1859,903,55,0); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + diff --git a/twilight/Ellen_Daleson.lua b/twilight/Ellen_Daleson.lua new file mode 100644 index 0000000..7b306b7 --- /dev/null +++ b/twilight/Ellen_Daleson.lua @@ -0,0 +1,59 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Oh hello there. I'm in charge of the docks here and wife to Alton."); + elseif(e.message:findi("alton")) then + e.self:Say("My husband is the owner of Jern's Rest. It's been his family for ages ever since his great grandaddy Jern built it."); + elseif(e.message:findi("ranger")) then + e.self:Say("Very well. If you want the Woodsman's [Mantle], Woodsman's [Mask], Woodsman's [Cape], Woodsman's [Guantlets], Woodsman's [Choker], or Woodsman's [Belt] I have some errands that need to be done."); + elseif(e.message:findi("armor")) then + e.self:Say("Oh you wish to get the armor that Alton's great granddaddy used to wear. If you are a ranger just let me know."); + elseif(e.message:findi("belt")) then + e.self:Say("If you want the Woodsman's Belt bring me a moon jewel, a mark of the environment, a gold pointer, and a broken ancient blade."); + elseif(e.message:findi("cape")) then + e.self:Say("If you want the Woodsman's Cape bring me a sky jewel, a mark of creatures, a wondrous stone, and a marble statuette."); + elseif(e.message:findi("choker")) then + e.self:Say("If you want the Woodsman's Choker bring me an astral jewel, a mark of ambidexterity, and a small ancient sculpture."); + elseif(e.message:findi("gauntlets")) then + e.self:Say("If you want the Woodsman's Guantlets bring me a meteor jewel, a mark of animals, and a tattered old card."); + elseif(e.message:findi("mantle")) then + e.self:Say("If you want the Woodsman's Mantle bring me a sun jewel, a mark of rivers, and a temporal sack."); + elseif(e.message:findi("mask")) then + e.self:Say("If you want the Woodsman's Mask bring me a cloud jewel, a mark of stone, and a platinum chain."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5850,item2 = 5849,item3 = 5848,item4 = 4489},1,text)) then -- belt + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3957,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5844,item2 = 5698,item3 = 4492,item4 = 5699},1,text)) then -- cape + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3954,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 5981,item3 = 5847},1,text)) then -- choker + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3956,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5845,item2 = 4493,item3 = 5846},1,text)) then -- gaunts + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3955,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5690,item2 = 4488,item3 = 5691},1,text)) then -- mantle + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3950,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 5696,item3 = 5697},1,text)) then -- mask + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3953,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end diff --git a/twilight/Frantip_Dalonus.lua b/twilight/Frantip_Dalonus.lua new file mode 100644 index 0000000..d1c4e29 --- /dev/null +++ b/twilight/Frantip_Dalonus.lua @@ -0,0 +1,57 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("smiles briefly. 'Greetings to ye " .. e.other:GetCleanName() .. ". If you be needin' the goods I've got 'em."); + elseif(e.message:findi("armor")) then + e.self:Say("Ah yes, I've been trying to get rid of this armor for some time. Do you happen to be a necromancer?"); + elseif(e.message:findi("necromancer")) then + e.self:Say("Very good! I have the veil, cloak, gloves, choker, belt, and staff. Which do you want?"); + elseif(e.message:findi("veil")) then + e.self:Say("For the veil of pestilence you will have to go retrieve for me a sky jewel, a jeweled rod, and a bronze brazier."); + elseif(e.message:findi("cloak")) then + e.self:Say("For the cloak of pestilence you will have to go retrieve for me a meteor jewel, a hardened agate, a veiled lantern, and a white garnet."); + elseif(e.message:findi("gloves")) then + e.self:Say("For the gloves of pestilence you will have to go retrieve for me an astral jewel, an antique lantern, and a glowing meteor fragment."); + elseif(e.message:findi("choker")) then + e.self:Say("For the choker of pestilence you will have to go retrieve for me a sun jewel, an ancient relic of Tzon, and a fluorescent gem."); + elseif(e.message:findi("belt")) then + e.self:Say("For the belt of pestilence you will have to go retrieve for me a moon jewel, an ancestral statuette, some dark hued wood, and an ocher gem."); + elseif(e.message:findi("staff")) then + e.self:Say("For the staff of pestilence you will have to go retrieve for me a star jewel, some cultured spirits, some golden mushrooms, and a gem of awe."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 4777,item3 = 4778},1,text)) then -- veil + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3730,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4493,item2 = 4779,item3 = 4781,item4 = 4782},1,text)) then -- cloak + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3731,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 4783,item3 = 4784},1,text)) then -- gloves + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3732,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4488,item2 = 4785,item3 = 4786},1,text)) then -- choker + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3733,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4489,item2 = 4787,item3 = 4788,item4 = 4789},1,text)) then -- belt + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3734,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 4790,item3 = 4791,item4 = 4792},1,text)) then -- staff + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3735,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end diff --git a/twilight/Galdara_Swiftwind.lua b/twilight/Galdara_Swiftwind.lua new file mode 100644 index 0000000..24d634b --- /dev/null +++ b/twilight/Galdara_Swiftwind.lua @@ -0,0 +1,57 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi, I'm one of master Vornol's four apprentices. My specialty is with all things concerning the element of air."); + elseif(e.message:findi("armor")) then + e.self:Say("You must have spoken with master Vornol. He has me keeping this armor for him and various tasks for those to do who wish to wear it. Tell me are you a magician?"); + elseif(e.message:findi("magician")) then + e.self:Say("Very good, the pieces that I have are the sandals, mask, cloak, gloves, choker, belt, and a staff."); + elseif(e.message:findi("sandals")) then + e.self:Say("For the sandals you must bring me an astral jewel, a talisman of wind, and a mark of aeration."); + elseif(e.message:findi("mask")) then + e.self:Say("For the mask you must bring me a sun jewel, a talisman of earth, and a sack of shadowed soil."); + elseif(e.message:findi("cloak")) then + e.self:Say("For the cloak you must bring me a moon jewel, a water idol, a water marked scroll, and a runed ring of water."); + elseif(e.message:findi("gloves")) then + e.self:Say("For the gloves you must bring me a star jewel, petrified bones, and a vial of dark earth."); + elseif(e.message:findi("choker")) then + e.self:Say("For the choker you must bring me a cloud jewel, fiery gourd, and a flaming candle."); + elseif(e.message:findi("belt")) then + e.self:Say("For the belt you must bring me a sky jewel, a vial of the morning mist, fastened links and a water etched wand."); + elseif(e.message:findi("staff")) then + e.self:Say("For the staff you must me a meteor jewel, a fire etched wand, an earth etched wand, and an air etched wand."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 4586,item3 = 4587},1,text)) then -- sandals + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3690,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4488,item2 = 4588,item3 = 4589},1,text)) then -- mask + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3691,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4489,item2 = 4597,item3 = 4598,item4 = 4599},1,text)) then -- cloak + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3692,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 4600,item3 = 4601},1,text)) then -- gloves + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3693,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 4602,item3 = 4603},1,text)) then -- choker + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3694,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 4604,item3 = 4828,item4 = 4605},1,text)) then -- belt + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3695,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4493,item2 = 4672,item3 = 4674,item4 = 4673},1,text)) then -- staff + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3696,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1547,5); -- Vornol Transon +end diff --git a/twilight/Gazoon_Noihzog.lua b/twilight/Gazoon_Noihzog.lua new file mode 100644 index 0000000..2538cb0 --- /dev/null +++ b/twilight/Gazoon_Noihzog.lua @@ -0,0 +1,66 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("gasps in astonishment. 'Who do you think you are coming to my island? I didn't invite you!"); + elseif(e.message:findi("island")) then + e.self:Say("It's my island and no one else's! This is where I hang out to blow stuff up, well that and they kicked me out of Katta."); + elseif(e.message:findi("blow stuff")) then + e.self:Say("Yeah that's what I usually do here. Why so interested, are ya a fellow wizard?"); + elseif(e.message:findi("wizard")) then + e.self:Say("Oh boy do I have something that you want. A nice set of wizardly armor that you can really waggle yer fingers in."); + elseif(e.message:findi("armor")) then + e.self:Say("It's not free that's for sure. If you want the armor I have the cap, robe, sleeves, pants, shawl, bracer and sandals. My buddy Trizpo has the rest you should go ask him about the armor."); + elseif(e.message:findi("bracer")) then + e.self:Say("For the bracer you'll have to fetch me a cloud jewel, a mark of potency, and book of applied magic."); + elseif(e.message:findi("cap")) then + e.self:Say("For the cap you'll have to fetch me a meteor jewel, some explosive dust, a mark of explosion, and a book of wizardry."); + elseif(e.message:findi("pants")) then + e.self:Say("For the pants you'll have to fetch me a moon jewel, a mark of energy, a gilded branch and some fiery sand."); + elseif(e.message:findi("robe")) then + e.self:Say("For the robe you'll have to fetch me an astral jewel, a mark of sorcery, a book of sorcery, and a globe of power."); + elseif(e.message:findi("sandals")) then + e.self:Say("For the sandals you'll have to fetch me a sky jewel, a mark of intensity, and a sun stained steel rod."); + elseif(e.message:findi("shawl")) then + e.self:Say("For the shawl you'll have to fetch me a star jewel, a mark of force, and some tro jeg toes."); + elseif(e.message:findi("sleeves")) then + e.self:Say("For the sleeves you'll have to fetch me a sun jewel, a mark of implosion, some grub worm guts, and a fiery heart."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4724,item2 = 4491,item3 = 4723},1,text)) then -- bracer + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3715,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4711,item2 = 4709,item3 = 4710,item4 = 4493},1,text)) then -- cap + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3710,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4720,item2 = 4719,item3 = 4718,item4 = 4489},1,text)) then -- pants + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3713,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 4713,item3 = 4714,item4 = 4712},1,text)) then -- robe + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3711,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4725,item2 = 4492,item3 = 4726},1,text)) then -- sandals + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3716,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4721,item2 = 4490,item3 = 4722},1,text)) then -- shawl + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3714,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4717,item2 = 4716,item3 = 4715,item4 = 4488},1,text)) then -- sleeves + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3712,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end diff --git a/twilight/Hafron_Jelnen.lua b/twilight/Hafron_Jelnen.lua new file mode 100644 index 0000000..f8efbfb --- /dev/null +++ b/twilight/Hafron_Jelnen.lua @@ -0,0 +1,55 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail and well met, friend. I'm one of master Vornol's four apprentices. I am being trained to be an expert on all things dealing with the element of fire."); + elseif(e.message:findi("armor")) then + e.self:Say("This armor is indeed mighty if you wish to have it you must do some tasks for me. I have the coif, mail, vambraces, greaves, pauldrons, bracer, and boots. My sister, Sarah, has the rest just ask her about armor and she will help you."); + elseif(e.message:findi("boots")) then + e.self:Say("To get the boots you must fetch for me a moon jewel, a mark of the seer, and a hewed augury stone."); + elseif(e.message:findi("bracer")) then + e.self:Say("To get the bracer you must fetch for me a sun jewel, a mark of soul, and a spirit gem."); + elseif(e.message:findi("coif")) then + e.self:Say("To get the coif you must fetch for me a star jewel, a mark of sight, an ancient sun fetish, and the tablet of spirits."); + elseif(e.message:findi("greaves")) then + e.self:Say("To get the greaves you must fetch for me a meteor jewel, a mark of omens, a pouch of false gems, and an adorned cap"); + elseif(e.message:findi("mail")) then + e.self:Say("To get the mail you must fetch for me a cloud jewel, a mark of vision, a writ of safid, and some throwing bones."); + elseif(e.message:findi("pauldrons")) then + e.self:Say("To get the pauldrons you must fetch for me a astral jewel, a mark of spirit, and Genalan's Chronicle."); + elseif(e.message:findi("vambraces")) then + e.self:Say("To get the vambraces you must fetch for me a sky jewel, a mark of prophecy, a polished stone fetish, and a woven anklet."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4489,item2 = 4936,item3 = 4937},1,text)) then -- moon jewel, a mark of seers, and a hewed augury stone. + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3755,25000); -- Augur's Boots + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4488,item2 = 4934,item3 = 4935},1,text)) then -- sun jewel, a mark of soul, and a spirit gem + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3754,25000); -- Augur's Bracer + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 4898,item3 = 4899,item4 = 4900},1,text)) then -- star jewel, a mark of sight, an ancient sun fetish, and the tablet of spirits. + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3749,25000); -- Augur's Coif + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4493,item2 = 4929,item3 = 4930,item4 = 4931},1,text)) then -- meteor jewel, a mark of omens, a pouch of false gems, and an adorned cap + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3752,25000); -- Augur's Greaves + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 4908,item3 = 4909,item4 = 4910},1,text)) then -- cloud jewel, a mark of vision, a writ of safid, and some throwing bones. + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3750,25000); -- Augur's Mail + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 4932,item3 = 4933},1,text)) then -- astral jewel, a mark of spirit, and Genalan's Chronicle + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3753,25000); -- Augur's Mantle + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 4918,item3 = 4927,item4 = 4928},1,text)) then -- sky jewel, a mark of prophecy, a polished stone fetish, and a woven anklet + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3751,25000); -- Augur's Vambraces + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1547,5); -- Vornol Transon +end diff --git a/twilight/Herald_Shelia_Gransith.lua b/twilight/Herald_Shelia_Gransith.lua new file mode 100644 index 0000000..d7d2c73 --- /dev/null +++ b/twilight/Herald_Shelia_Gransith.lua @@ -0,0 +1,64 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to the Twilight Sea! This is the docking entrance to Katta Castellum. " .. e.other:GetCleanName() .. ". Tell me do you know any songs?"); + elseif(e.message:findi("songs")) then + e.self:Say("Ah you do. You don't happen to be a bard do you?"); + elseif(e.message:findi("bard")) then + e.self:Say("Great. I have just what you need. Would you like to earn some armor?"); + elseif(e.message:findi("armor")) then + e.self:Say("I thought so I have a [helm], [breastplate], [vambraces], [greaves], [pauldrons], [bracer], and [boots]. For the rest speak to Brolan over there about armor."); + elseif(e.message:findi("breastplate")) then + e.self:Say("For the breastplate you must bring me an astral jewel. a mark of music. a diamond studded medal. and a glorious flower."); + elseif(e.message:findi("vambraces")) then + e.self:Say("For the vambraces you must bring me a sun jewel. a mark of entertainment. a sapphire studded medal. and velvet sleeves."); + elseif(e.message:findi("greaves")) then + e.self:Say("For the greaves you must bring me a moon jewel. a mark of the drum. an emerald studded medal. and memory crystal."); + elseif(e.message:findi("pauldrons")) then + e.self:Say("For the pauldrons you must bring me a star jewel. a mark of the mandolin. and an opal studded medal."); + elseif(e.message:findi("bracer")) then + e.self:Say("For the bracer you must bring me a cloud jewel. a mark of song. and a pearl studded medal."); + elseif(e.message:findi("boots")) then + e.self:Say("For the boots you must bring me a sky jewel. a mark of poetry. and a star ruby studded medal."); + elseif(e.message:findi("helm")) then + e.self:Say("For the helm you must bring me a meteor jewel, a mark of rhythm, a ruby studded medal, and a fancy necklace."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5347,item2 = 4492,item3 = 5348},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3909,25000); -- boots + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5346,item2 = 5345,item3 = 4491},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3908,25000); -- bracer + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 5335,item3 = 5336,item4 = 5334},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3898,25000); -- bp + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5341,item2 = 5340,item3 = 5342,item4 = 4489},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3900,25000); -- greaves + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5343,item2 = 5344,item3 = 4490},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3907,25000); -- pauldrons + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5337,item2 = 5338,item3 = 4488,item4 = 5339},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3899,25000); -- vambs + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5330,item2 = 5328,item3 = 4493,item4 = 5329},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3897,25000); -- helm + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end diff --git a/twilight/Jalor_Housip.lua b/twilight/Jalor_Housip.lua new file mode 100644 index 0000000..49d09fe --- /dev/null +++ b/twilight/Jalor_Housip.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail and well met, my friend. If yer a magician I have some spells for ye."); + end +end diff --git a/twilight/Jilan_Tollun.lua b/twilight/Jilan_Tollun.lua new file mode 100644 index 0000000..73c8858 --- /dev/null +++ b/twilight/Jilan_Tollun.lua @@ -0,0 +1,57 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hello there. Please leave me alone I would like some peace and quiet."); + elseif(e.message:findi("armor")) then + e.self:Say("amben must have told you about the old beastlord we came upon. So tell me are you a worthy beastlord?"); + elseif(e.message:findi("beastlord")) then + e.self:Say("Then you must want the armor I have. I have the veil, cape, gloves, talisman, belt, and claws."); + elseif(e.message:findi("belt")) then + e.self:Say("For the belt you must bring me a sky jewel, a mark of the wolf, an embedded steel figurine, and ancient wrappings."); + elseif(e.message:findi("cape")) then + e.self:Say("For the cape you must bring me a moon jewel, a mark of the panther, an iridescent crystal, and an embedded bronze figurine."); + elseif(e.message:findi("claw")) then + e.self:Say("For the claws you must bring me a meteor jewel, a mark of the bestial, an embedded adamantium figurine, and a roaring idol."); + elseif(e.message:findi("glove")) then + e.self:Say("For the gloves you must bring me a star jewel, a mark of the alligator, and embedded electrum figurine."); + elseif(e.message:findi("talisman")) then + e.self:Say("For the talisman you must bring me a cloud jewel, a mark of the shark, and an embedded silver figurine. "); + elseif(e.message:findi("veil")) then + e.self:Say("For the veil you must bring me a sun jewel, a mark of the tiger, and an embedded wooden figurine."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 5949,item3 = 5948,item4 = 5950},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3996,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4489,item2 = 5941,item3 = 5942,item4 = 5943},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3993,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4493,item2 = 5951,item3 = 5952,item4 = 5953},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3997,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 5944,item3 = 5945},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3994,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 5946,item3 = 5947},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3995,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4488,item2 = 5939,item3 = 5940},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3992,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end diff --git a/twilight/Lara_Trueseer.lua b/twilight/Lara_Trueseer.lua new file mode 100644 index 0000000..5a4c052 --- /dev/null +++ b/twilight/Lara_Trueseer.lua @@ -0,0 +1,53 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("grimaces in pain. 'The visions are so strong they hurt...please make them stop.."); + elseif(e.message:findi("vision")) then + e.self:Say("I keep getting these random visions of places unknown to me. Perhaps you could help me with a cure."); + elseif(e.message:findi("help")) then + e.self:Say("Ah my thanks! For doing this I can reward you with pieces of a set of armor for enchanters. Are you an enchanter?"); + elseif(e.message:findi("enchanter")) then + e.self:Say("Very good. I have a cap, robe, sleeves, pants, shawl, and bracer. My friend Xavier has the rest just ask him about armor."); + elseif(e.message:findi("cap")) then + e.self:Say("For the cap I will need an astral jewel, a golden flower, a grail of enchantment, and a mark of beauty."); + elseif(e.message:findi("robe")) then + e.self:Say("For the robe I will need a sun jewel, the eye of the enraptured, a mark of affection, and a book of inspiration."); + elseif(e.message:findi("sleeves")) then + e.self:Say("For the sleeves I will need a moon jewel, a page of prose, a mark of reality, and a truncated ring."); + elseif(e.message:findi("pants")) then + e.self:Say("For the pants I will need a star jewel, a mark of passion, an adamantium quill, and pristine shik-nar claws."); + elseif(e.message:findi("shawl")) then + e.self:Say("For the shawl I will need a cloud jewel, a mark of understanding, and a hope emerald."); + elseif(e.message:findi("bracer")) then + e.self:Say("For the bracer I will need a sky jewel, a mark of elegance, and a hope sapphire."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 4675,item3 = 4676,item4 = 4677},1,text)) then -- cap + e.other:QuestReward(e.self,0,0,0,0,3697,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4488,item2 = 4678,item3 = 4679,item4 = 4680},1,text)) then -- robe + e.other:QuestReward(e.self,0,0,0,0,3698,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4489,item2 = 4681,item3 = 4682,item4 = 4683},1,text)) then -- sleeves + e.other:QuestReward(e.self,0,0,0,0,3699,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 4684,item3 = 4685,item4 = 4686},1,text)) then -- pants + e.other:QuestReward(e.self,0,0,0,0,3700,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 4687,item3 = 4688},1,text)) then -- shawl + e.other:QuestReward(e.self,0,0,0,0,3701,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 4689,item3 = 4690},1,text)) then -- bracer + e.other:QuestReward(e.self,0,0,0,0,3702,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end diff --git a/twilight/Latrag_Darkaxe.lua b/twilight/Latrag_Darkaxe.lua new file mode 100644 index 0000000..6b7938c --- /dev/null +++ b/twilight/Latrag_Darkaxe.lua @@ -0,0 +1,61 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("lets out a resounding belch. 'Har there lad! Ye be sure 'nuff to tell em all that Brewmaster Latrag is retiring.'"); + elseif(e.message:findi("retiring")) then + e.self:Say("Ya got that right. I'm goin' to concentrate more on me devotion to Brell as a holy knight!"); + elseif(e.message:findi("knight")) then + e.self:Say("I be a paladin of Brell thar " .. e.other:GetCleanName() .. ". Might ye be a paladin yerself?"); + elseif(e.message:findi("paladin")) then + e.self:Say("That's good. Ya know I have some armor ye might be interested in."); + elseif(e.message:findi("armor")) then + e.self:Say("Yar! I have me a helm, breastplate, vambraces, greaves, pauldrons, and a bracer. If ye want the rest talk to the mighty holy warrior Trallen over there about armor."); + elseif(e.message:findi("breastplate")) then + e.self:Say("For the breastplate ye gotta bring me a star jewel, a mark of courage, a white marble bowl, and a jagged reed."); + elseif(e.message:findi("vambrace")) then + e.self:Say("For the vambraces ye gotta bring me a cloud jewel, a mark of righteousness, a runed card, and a pristine ebony idol"); + elseif(e.message:findi("greaves")) then + e.self:Say("For the greaves ye gotta bring me a sky jewel, a mark of bravery, a sunflower fruit, and a weathered bundle of wood"); + elseif(e.message:findi("pauldrons")) then + e.self:Say("For the pauldrons ye gotta bring me a meteor jewel, a mark of daring, and a life gem."); + elseif(e.message:findi("bracer")) then + e.self:Say("For the bracer ye gotta bring me an astral jewel, a mark of reliance, and some blessed water"); + elseif(e.message:findi("helm")) then + e.self:Say("For the helm ye gotta bring me a moon jewel, a mark of valor, a withered branch, and a pale pearl."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 5902,item3 = 5903},1,text)) then -- astral jewel, a mark of reliance, and some blessed water + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3977,25000); -- Blessed Knight's Bracer + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 5891,item3 = 5892,item4 = 5893},1,text)) then -- star jewel, a mark of courage, a white marble bowl, and a jagged reed + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3973,25000); -- Blessed Knight's Breastplate + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 5897,item3 = 5898,item4 = 5899},1,text)) then -- sky jewel, a mark of bravery, a sunflower fruit, and a weathered bundle of wood + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3975,25000); -- Blessed Knight's Greaves + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4489,item2 = 5888,item3 = 5889,item4 = 5890},1,text)) then -- moon jewel, a mark of valor, a withered branch, and a pale pearl + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3972,25000); -- Blessed Knight's Helm + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4493,item2 = 5900,item3 = 5901},1,text)) then -- meteor jewel, a mark of daring, and a life gem + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3976,25000); -- Blessed Knight's Pauldrons + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 5894,item3 = 5895,item4 = 5896},1,text)) then -- cloud jewel, a mark of righteousness, a runed card, and a pristine ebony idol + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3974,25000); -- Blessed Knight's Vambraces + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end diff --git a/twilight/Legionnaire_Allise.lua b/twilight/Legionnaire_Allise.lua new file mode 100644 index 0000000..87f5442 --- /dev/null +++ b/twilight/Legionnaire_Allise.lua @@ -0,0 +1,52 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stands stoutly at her post."); + elseif(e.message:findi("armor")) then + e.self:Emote("smiles at " .. e.other:GetCleanName() .. ". 'Valana must have sent you here. Tell me, are you a monk?'"); + elseif(e.message:findi("monk")) then + e.self:Say("Good the pieces I have are the veil, cloak, hand wraps, choker, belt, and a bo stick."); + elseif(e.message:findi("veil")) then + e.self:Say("To receive the veil you must retrieve for me a sun jewel, a mark of discipline, and some oiled scales."); + elseif(e.message:findi("cloak")) then + e.self:Say("To receive the cloak you must retrieve for me a moon jewel, a mark of training, a scorched idol, and a gem of longevity."); + elseif(e.message:findi("hand wraps")) then + e.self:Say("To receive the hand wraps you must retrieve for me a star jewel, a mark of rank, and a golden gem."); + elseif(e.message:findi("choker")) then + e.self:Say("To receive the choker you must retrieve for me a cloud jewel, a mark of aggression, and some sun fiend bones."); + elseif(e.message:findi("belt")) then + e.self:Say("To receive the belt you must retrieve for me a sky jewel, a mark of defense, a protector gem, and an indigo sapphire."); + elseif(e.message:findi("bo stick")) then + e.self:Say("To receive the bo stick you must retrieve for me a meteor jewel, a mark of the dragon, an embedded gravel tablet, and a gilded wrist chain."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4488,item2 = 5254,item3 = 5255},1,text)) then -- veil + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3782,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4489,item2 = 5256,item3 = 5257,item4 = 5258},1,text)) then -- cloak + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3783,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 5259,item3 = 5260},1,text)) then -- hand wraps + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3784,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 5261,item3 = 5262},1,text)) then -- choker + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3785,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 5263,item3 = 5264,item4 = 5266},1,text)) then -- belt + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3786,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4493,item2 = 5265,item3 = 5267,item4 = 5268},1,text)) then -- bo stick + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3787,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1547,5); -- Vornol Transon +end diff --git a/twilight/Legionnaire_Eandalion.lua b/twilight/Legionnaire_Eandalion.lua new file mode 100644 index 0000000..369ab2b --- /dev/null +++ b/twilight/Legionnaire_Eandalion.lua @@ -0,0 +1,55 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Salutations to you and your own. On your way to Katta are ya?"); + elseif(e.message:findi("armor")) then + e.self:Say("Frank must have told ya about the soldier's armor that we both keep to give to those worthy of wearing it. I have the mask, cloak, gauntlets, gorget, girdle, and swords."); + elseif(e.message:findi("cloak")) then + e.self:Say("To get the cloak you will need to get me a meteor jewel, a mark of glory, a ring of wit, and some twilight fish scales."); + elseif(e.message:findi("gauntlets")) then + e.self:Say("To get the gauntlets you will need to get me an astral jewel, a mark of opposition, and a hope quartz."); + elseif(e.message:findi("girdle")) then + e.self:Say("To get the girdle you will need to get me a moon jewel, a mark of contention, a fire scorched stick, and a hope star ruby."); + elseif(e.message:findi("gorget")) then + e.self:Say("To get the gorget you will need to get me a sun jewel, a mark of pride, and some star dust."); + elseif(e.message:findi("mask")) then + e.self:Say("To get the mask you will need to get me a sky jewel, a mark of defiance, and a bag of scarlet sand."); + elseif(e.message:findi("sword")) then + e.self:Say("To get the sword you will need to get me a star jewel, a mark of warfare, a hope fire opal, and some fire powder."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4493,item2 = 5530,item3 = 5584,item4 = 5585},1,text)) then -- meteor jewel, a mark of glory, a ring of wit, and some twilight fish scales + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3941,25000); -- cloak + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 5586,item3 = 5587},1,text)) then -- astral jewel, a mark of opposition, and a hope quartz + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3942,25000); -- guantlets + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4489,item2 = 5590,item3 = 5591,item4 = 5592},1,text)) then -- moon jewel, a mark of contention, a fire scorched stick, and a hope star ruby. + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3944,25000); -- girdle + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4488,item2 = 5588,item3 = 5589},1,text)) then -- sun jewel, a mark of pride, and some star dust. + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3943,25000); -- gorget + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 5528,item3 = 5529},1,text)) then -- sky jewel, a mark of defiance, and a bag of scarlet sand + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3940,25000); -- mask + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 5668,item3 = 5669,item4 = 5677},1,text)) then -- star jewel, a mark of warfare, a hope fire opal, and some fire powder. + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3945,25000); -- sword + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end diff --git a/twilight/Legionnaire_Frankulus.lua b/twilight/Legionnaire_Frankulus.lua new file mode 100644 index 0000000..8e678a7 --- /dev/null +++ b/twilight/Legionnaire_Frankulus.lua @@ -0,0 +1,60 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("sighs and looks at you. 'Another traveler to our fair city of Katta Castellum, you be careful now.'"); + elseif(e.message:findi("armor")) then + e.self:Say("Yes I am one of the keepers of the soldier's armor. The pieces I have are the helm, breastplate, vambraces, greaves, pauldrons, bracer, and boots. Eandalion keeps the other pieces just ask him about armor."); + elseif(e.message:findi("boots")) then + e.self:Say("For the boots you will have to bring to me a cloud jewel, a mark of the martial, and a hope ruby."); + elseif(e.message:findi("bracer")) then + e.self:Say("For the bracer you will have to bring to me a star jewel, a mark of the siege, and a blue egg."); + elseif(e.message:findi("breastplate")) then + e.self:Say("For the breastplate you will have to bring to me a meteor jewel, a mark of war, a weathered yew wand, and some dew of dawn."); + elseif(e.message:findi("greaves")) then + e.self:Say("For the greaves you will have to bring to me a sun jewel, a mark of archery, a golden torch, and a small meteor fragment."); + elseif(e.message:findi("helm")) then + e.self:Say("For the helm you will have to bring to me a sky jewel, a mark of battle, some petrified toes, and a fire blossom."); + elseif(e.message:findi("pauldrons")) then + e.self:Say("For the pauldrons you will have to bring to me a moon jewel, a mark of swordsmanship, and a water blossom."); + elseif(e.message:findi("vambraces")) then + e.self:Say("For the vambraces you will have to bring to me an astral jewel, a mark of arms, a small sponge, and a scorched rock."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 5496,item3 = 5497},1,text)) then -- cloud jewel, a mark of the martial, and a hope ruby + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3939,25000); -- boots + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 5494,item3 = 5495},1,text)) then -- star jewel, a mark of the siege, and a blue egg + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3938,25000); -- bracer + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4493,item2 = 5483,item3 = 5484,item4 = 5485},1,text)) then -- meteor jewel, a mark of war, a weathered yew wand, and some dew of dawn + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3934,25000); -- breastplate + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4488,item2 = 5489,item3 = 5490,item4 = 5491},1,text)) then -- sun jewel, a mark of archery, a golden torch, and a small meteor fragment + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3936,25000); -- Greaves + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 5480,item3 = 5481,item4 = 5482},1,text)) then -- sky jewel, a mark of battle, some petrified toes, and a fire blossom + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3933,25000); -- helm + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4489,item2 = 5492,item3 = 5493},1,text)) then -- moon jewel, a mark of swordsmanship, and a water blossom + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3937,25000); -- pauldrons + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 5486,item3 = 5487,item4 = 5488},1,text)) then -- astral jewel, a mark of arms, a small sponge, and a scorched rock + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3935,25000); -- Vambraces + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end diff --git a/twilight/Legionnaire_Halle.lua b/twilight/Legionnaire_Halle.lua new file mode 100644 index 0000000..270bdb8 --- /dev/null +++ b/twilight/Legionnaire_Halle.lua @@ -0,0 +1,13 @@ +function event_say(e) + if(e.other:GetFaction(e.self) < 5) then + if(e.message:findi("hail")) then + e.self:Emote("coughs a few times and reaches out to you, 'Please help me.'"); + elseif(e.message:findi("help")) then + e.self:Emote("reaches out and puts something in your hand, 'Find Magistrate Phenic, he is the only one that I know I can trust.' With a look of someone who has left unfinished business behind her, Halle lets go and dies."); + e.other:SummonCursorItem(18330); + eq.depop_with_timer(); + end + else + e.self:Emote("considers you for a moment and shakes her head, 'I have information that can only be shared with a trusted member of the Validus Custodus."); + end +end diff --git a/twilight/Legionnaire_Kayn.lua b/twilight/Legionnaire_Kayn.lua new file mode 100644 index 0000000..6598f12 --- /dev/null +++ b/twilight/Legionnaire_Kayn.lua @@ -0,0 +1,52 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("stands still, on watch for danger."); + elseif(e.message:findi("armor")) then + e.self:Say("You must have been speaking to Derron, a mightier cleric ye couldn't find. Except for Donal the Wise of course. So tell me are ye also a cleric like Derron?"); + elseif(e.message:findi("cleric")) then + e.self:Say("Ah then you must want the mask, cloak, gauntlets, talisman, girdle, and hammer that I be holdin'."); + elseif(e.message:findi("cloak")) then + e.self:Say("To get the cloak you must bring me a sky jewel, a mark of credence, a light etched fire opal, and a polished stone statuette."); + elseif(e.message:findi("gauntlets")) then + e.self:Say("To get the gauntlets you must bring me a meteor jewel, a mark of piety, and a light etched opal."); + elseif(e.message:findi("girdle")) then + e.self:Say("To get the girdle you must bring me a sun jewel, a mark of grace, a light etched diamond, and a dark eyed iris."); + elseif(e.message:findi("hammer")) then + e.self:Say("To get the hammer you must bring me a moon jewel, a mark of salvation, a light etched emerald, and the writ of distance."); + elseif(e.message:findi("mask")) then + e.self:Say("To get the mask you must bring me a cloud jewel, a mark of hope, and a light etched star ruby."); + elseif(e.message:findi("talisman")) then + e.self:Say("To get the talisman you must bring me an astral jewel, a mark of affirmation, and a light etched peridot."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 4850,item3 = 4858,item4 = 4859},1,text)) then -- cloak + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3744,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4493,item2 = 4860,item3 = 4868},1,text)) then -- gaunts + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3745,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4488,item2 = 4878,item3 = 4879,item4 = 4880},1,text)) then -- girdle + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3747,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4489,item2 = 4888,item3 = 4889,item4 = 4890},1,text)) then -- hammer + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3748,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 4848,item3 = 4849},1,text)) then -- mask + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3743,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 4869,item3 = 4870},1,text)) then -- talisman + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3746,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1547,5); -- Vornol Transon +end diff --git a/twilight/Liteema_Agner.lua b/twilight/Liteema_Agner.lua new file mode 100644 index 0000000..a62fd41 --- /dev/null +++ b/twilight/Liteema_Agner.lua @@ -0,0 +1,57 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks up and smiles. 'Hiya. I just love fishing, don't you?'"); + elseif(e.message:findi("armor")) then + e.self:Say("Oh! Tolli sent you over here didn't he. If you're a rogue and want some armor just let me know."); + elseif(e.message:findi("rogue")) then + e.self:Say("This stuff isn't free no sir! I have a mask. cloak. gauntlets. gorget. waistband. and a dirk. Just ask and I'll tell ya what ya have to do to get it."); + elseif(e.message:findi("mask")) then + e.self:Say("For the mask of concealment you're going to have to go get me an astral jewel, a mark of deceit, and an engraved fire opal statuette."); + elseif(e.message:findi("cloak")) then + e.self:Say("For the cloak of concealment you're going to have to go get me a sun jewel, a mark of secrecy, an engraved ivory statuette, and a polished gemstone."); + elseif(e.message:findi("gauntlets")) then + e.self:Say("For the gauntlets of concealment you're going to have to go get me a moon jewel, a mark of deception, and an engraved gold statuette."); + elseif(e.message:findi("gorget")) then + e.self:Say("For the gorget of concealment you're going to have to go get me a star jewel, a mark of trickery, and an engraved wooden statuette."); + elseif(e.message:findi("waistband")) then + e.self:Say("For the waistband of concealment you're going to have to go get me a cloud jewel, a mark of silence, an engraved platinum statuette, and a true silver needle."); + elseif(e.message:findi("dirk")) then + e.self:Say("For the dirk of concealment you're going to have to go get me a sky jewel, a mark of greed, an engraved mithril statuette, and a dread hilt."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 5287,item3 = 5288},1,text)) then -- astral jewel. a mark of deceit. and an engraved fire opal statuette + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3795,25000); -- Mask + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4488,item2 = 5289,item3 = 5290,item4 = 5291},1,text)) then -- sun jewel. a mark of secrecy. an engraved ivory statuette. and a polished gemstone. + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3796,25000); -- cloak + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4489,item2 = 5292,item3 = 5293},1,text)) then -- moon jewel. a mark of deception. and an engraved gold statuette + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3797,25000); -- guantlets + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 5294,item3 = 5295},1,text)) then -- star jewel. a mark of trickery. and an engraved wooden statuette + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3798,25000); -- gorget + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 5285,item3 = 5297,item4 = 5298},1,text)) then -- cloud jewel. a mark of silence. an engraved platinum statuette. and a true silver needle + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3799,25000); -- waistband + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 5299,item3 = 5326,item4 = 5327},1,text)) then -- sky jewel. a mark of greed. an engraved mithril statuette. and a dread hilt. + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3800,25000); -- Dirk + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end diff --git a/twilight/Rilla_Quickeyes.lua b/twilight/Rilla_Quickeyes.lua new file mode 100644 index 0000000..48f8a74 --- /dev/null +++ b/twilight/Rilla_Quickeyes.lua @@ -0,0 +1,63 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("OH HI! This is soooo boring, I wish I had something else to do."); + elseif(e.message:findi("to do")) then + e.self:Say("If I had the right materials I could make some armor."); + elseif(e.message:findi("armor")) then + e.self:Say("Oh you want me to make some armor? If you're a druid I could make you some."); + elseif(e.message:findi("druid")) then + e.self:Say("I can make you a cap, tunic, sleeves, leggings, mantle, bracer, and boots. If you want other druid armor you'll have to talk to Edgar."); + elseif(e.message:findi("cap")) then + e.self:Say("For the earth blessed cap you will have to go get me a moon jewel, a mark of the wild, a braided vine bracelet, and an aged dark wood shaft."); + elseif(e.message:findi("tunic")) then + e.self:Say("For the earth blessed tunic you will have to go get me a star jewel, a mark of nature, a primal earth rune, and a growth stone."); + elseif(e.message:findi("sleeves")) then + e.self:Say("For the earth blessed sleeves you will have to go get me a cloud jewel, a mark of vitality, an etched diamond of nature, and a storm filled vial."); + elseif(e.message:findi("leggings")) then + e.self:Say("For the earth blessed leggings you will have to go get me a sky jewel, a mark of life, an etched emerald of nature, and a sack of purified soil."); + elseif(e.message:findi("mantle")) then + e.self:Say("For the earth blessed mantle you will have to go get me a meteor jewel, a mark of regeneration, and an etched sapphire of nature."); + elseif(e.message:findi("bracer")) then + e.self:Say("For the earth blessed bracer you will have to go get me an astral jewel, a mark of growth, and an etched ruby of nature."); + elseif(e.message:findi("boots")) then + e.self:Say("For the earth blessed boots you will have to go get me a sun jewel, a mark of weather, and an etched star ruby of nature."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4489,item2 = 4961,item3 = 4962,item4 = 4992}, 0)) then -- cap + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3762,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 4993,item3 = 4994,item4 = 4995}, 0)) then -- tunic + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3763,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 4996,item3 = 4997,item4 = 4998}, 0)) then -- sleeves + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3764,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 4999,item3 = 5000,item4 = 5068}, 0)) then -- leggings + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3765,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4493,item2 = 5069,item3 = 5079}, 0)) then -- mantle + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3766,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 5089,item3 = 5094}, 0)) then -- bracer + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3767,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4488,item2 = 5095,item3 = 5096}, 0)) then -- boots + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3768,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end diff --git a/twilight/Sarah_Jelnen.lua b/twilight/Sarah_Jelnen.lua new file mode 100644 index 0000000..06ba0d0 --- /dev/null +++ b/twilight/Sarah_Jelnen.lua @@ -0,0 +1,52 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("smiles pleasantly eyes meeting yours then speaks, 'Nice to see someone new, I'm one of master Vornol's apprentices. My specialty is the element of water."); + elseif(e.message:findi("armor")) then + e.self:Emote("closes her eyes and sighs wistfully as if remembering some long forgotten bittersweet memory. 'Hafron must have told you about our dearly missed friend Hadon. Very well, are you a shaman?"); + elseif(e.message:findi("shaman")) then + e.self:Say("Aye you have the look of one who communes with spirits. The pieces that I have are the mask, cloak, gauntlets, talisman, girdle and spear."); + elseif(e.message:findi("cloak")) then + e.self:Say("For the cloak you must get me a cloud jewel, mark of auspice, an avatar's tome, and a rockhopper spirit fetish."); + elseif(e.message:findi("gauntlets")) then + e.self:Say("For the gauntlets you must get me a sky jewel, a mark of guidance, and a vitality gem."); + elseif(e.message:findi("girdle")) then + e.self:Say("For the girdle you must get me an astral jewel, a mark of augury, an aged runic crutch, and a lined towel."); + elseif(e.message:findi("mask")) then + e.self:Say("For the mask you must get me a star jewel, the mark of the oracle, and an aged bone fetish."); + elseif(e.message:findi("spear")) then + e.self:Say("For the spear you must get me a sun jewel, a mark of premonition, a darkened shaft, and an oracle orb."); + elseif(e.message:findi("talisman")) then + e.self:Say("For the talisman you must get me a meteor jewel, a mark of rage, and a spirit marked ornament."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 4940,item3 = 4949,item4 = 4950},1,text)) then -- cloud jewel, mark of auspice, an avatar's tome, and a rockhopper spirit fetish. + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3757,25000); -- Augur's Cloak + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 4951,item3 = 4952},1,text)) then -- sky jewel, a mark of guidance, and a vitality gem + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3758,25000); -- Augur's Gauntlets + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 4955,item3 = 4956,item4 = 4957},1,text)) then -- astral jewel, a mark of augury, an aged runic crutch, and a lined towel + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3760,25000); -- Augur's Waistband + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 4938,item3 = 4939},1,text)) then -- star jewel, the mark of the oracle, and an aged bone fetish + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3756,25000); -- Augur's Mask + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4488,item2 = 4959,item3 = 4960,item4 = 4958},1,text)) then -- sun jewel, a mark of premonition, a darkened shaft, and an oracle orb. + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3761,25000); -- Augur's Spear + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4493,item2 = 4953,item3 = 4954},1,text)) then -- meteor jewel, a mark of rage, and a spirit marked ornament. + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3759,25000); -- Augur's Talisman + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1547,5); -- Vornol Transon +end diff --git a/twilight/Tamben_Prinon.lua b/twilight/Tamben_Prinon.lua new file mode 100644 index 0000000..4ec581c --- /dev/null +++ b/twilight/Tamben_Prinon.lua @@ -0,0 +1,62 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("looks over you examining you from head to toe. 'Ye have the look of an adventurer. I have a tale to tell if you would like to hear it."); + elseif(e.message:findi("tale")) then + e.self:Say("Years ago I and Jilan were traveling around the far reaches of this land. One day we came upon an old vah shir who was injured in the mountains. He implored us to help him. Do you wish me to continue?"); + elseif(e.message:findi("continue")) then + e.self:Say("As I was saying this old vah shir required assistance. We bound his wounds and he asked us to take his armor and give it to a Beastlord worthy of wearing it. Are you a worthy beastlord?"); + elseif(e.message:findi("cap")) then + e.self:Say("For the cap you must prove your worth. Go gather up a sun jewel, a mark of feral spirits, an embedded copper figurine, and a frosted stone."); + elseif(e.message:findi("tunic")) then + e.self:Say("For the tunic you must prove your worth. Go gather up a moon jewel, a mark of animal spirits, a silver gilded bracelet, and an embedded mithril figurine."); + elseif(e.message:findi("sleeves")) then + e.self:Say("For the sleeves you must prove your worth. Go gather a star jewel, a mark of wild spirits, an embedded clay figurine, and a furrowed carving."); + elseif(e.message:findi("leggings")) then + e.self:Say("For the leggings you must prove your worth. Go gather a cloud jewel, a mark of natural spirits, an embedded stone figurine, and a blue moonstone."); + elseif(e.message:findi("mantle")) then + e.self:Say("For the mantle you must prove your worth. Go gather a sky jewel, a mark of wilderness, and an embedded platinum figurine."); + elseif(e.message:findi("bracer")) then + e.self:Say("For the bracer you must prove your worth. Go gather a meteor jewel, a mark of animal training, and an embedded brass figurine."); + elseif(e.message:findi("boots")) then + e.self:Say("For the boots you must prove your worth. Go gather an astral jewel, a mark of beast mastery, and an embedded gold figurine."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4488,item2 = 5921,item3 = 5927,item4 = 5928},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3985,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4489,item2 = 5929,item3 = 5922,item4 = 5923},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3986,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 5925,item3 = 5924,item4 = 5926},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3987,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 5930,item3 = 5931,item4 = 5932},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3988,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 5933,item3 = 5934},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3989,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4493,item2 = 5935,item3 = 5936},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3990,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 5937,item3 = 5938},1,text)) then + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3991,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end diff --git a/twilight/Tergus_Raslin.lua b/twilight/Tergus_Raslin.lua new file mode 100644 index 0000000..97c75f0 --- /dev/null +++ b/twilight/Tergus_Raslin.lua @@ -0,0 +1,8 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("turns to speak to you, you notice his face is very pale. 'You must leave me alone. I must get back to Sanctus Seru immediately. I have much [work] to do.'"); + elseif(e.message:findi("work")) then + e.self:Emote("moves in quick bursts of speed and starts to attack, his screams of torment reveal sharp fangs. 'Argh! I said leave me be!'"); + eq.attack(e.other:GetName()); + end +end diff --git a/twilight/Trallen_Grimhammer.lua b/twilight/Trallen_Grimhammer.lua new file mode 100644 index 0000000..4cbe0b4 --- /dev/null +++ b/twilight/Trallen_Grimhammer.lua @@ -0,0 +1,62 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings and well met " .. e.other:GetCleanName() .. ". Don't listen to ol' Latrag over there he'll never stop brewin' the best durn ale to be found."); + elseif(e.message:findi("boots")) then + e.self:Say("For the boots yer gonna have to get me a sun jewel. a mark of destiny. and a fleshy vine."); + elseif(e.message:findi("armor")) then + e.self:Say("Latrag is goin' on 'bout his armor again isn't he. Well friend be ye a paladin?"); + elseif(e.message:findi("paladin")) then + e.self:Say("Of course ya are " .. e.other:GetCleanName() .. ". Why would have ya asked me about the armor if ye wasn't eh. I have the boots, mask, cloak, gauntlets, gorget, girdle, and a sword. Which do ye want?"); + elseif(e.message:findi("mask")) then + e.self:Say("For the mask yer gonna have to get me a moon jewel, a mark of blessings, and some crystallized dew."); + elseif(e.message:findi("cloak")) then + e.self:Say("For the cloak yer gonna have to get me a star jewel, a mark of the steadfast, a lexicon of the sun, and some glade dew."); + elseif(e.message:findi("gauntlets")) then + e.self:Say("For the gauntlets yer gonna have to get me a cloud jewel, a mark of honor, and some naturally formed quartz."); + elseif(e.message:findi("gorget")) then + e.self:Say("For the gorget yer gonna have to get me a sky jewel, a mark of gallantry, and a lunar marked stone."); + elseif(e.message:findi("girdle")) then + e.self:Say("For the girdle yer gonna have to get me a meteor jewel, a mark of heart, a lexicon of the moon, and a dread leech eye."); + elseif(e.message:findi("sword")) then + e.self:Say("For the sword yer gonna have to get me an astral jewel, a mark of the noble, a hardened clay sculpture, and a runic ear plug."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4488,item2 = 5904,item3 = 5905},1,text)) then -- sun jewel, a mark of destiny, and a fleshy vine + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3978,25000); -- Blessed Knight's Boots + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 5908,item3 = 5909,item4 = 5910},1,text)) then -- star jewel, a mark of the steadfast, a lexicon of the sun, and some glade dew + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3980,25000); -- Blessed Knight's Cloak + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 5911,item3 = 5912},1,text)) then -- cloud jewel, a mark of honor, and some naturally formed quartz + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3981,25000); -- Blessed Knight's Gauntles + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4493,item2 = 5915,item3 = 5916,item4 = 5917},1,text)) then -- meteor jewel, a mark of heart, a lexicon of the moon, and a dread leech eye + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3983,25000); -- Blessed Knight's Girdle + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 5913,item3 = 5914},1,text)) then -- sky jewel, a mark of gallantry, and a lunar marked stone + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3982,25000); -- Blessed Knight's Gorget + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4489,item2 = 5906,item3 = 5907},1,text)) then -- moon jewel, a mark of blessings, and some crystallized dew + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3979,25000); -- Blessed Knight's Mask + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 5918,item3 = 5919,item4 = 5920},1,text)) then -- astral jewel, a mark of the noble, a hardened clay sculpture, and a runic ear plug + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3984,25000); -- Blessed Knight's Defender + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end diff --git a/twilight/Trevor_Nalinson.lua b/twilight/Trevor_Nalinson.lua new file mode 100644 index 0000000..1201b44 --- /dev/null +++ b/twilight/Trevor_Nalinson.lua @@ -0,0 +1,54 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Can't ya see I'm busy working? Leave me be."); + elseif(e.message:findi("armor")) then + e.self:Say("Bah, Brodlan should know better than opening his big mouth. Anyway this looks like armor for a dark knight if ye want to trade for it."); + elseif(e.message:findi("trade")) then + e.self:Say("Good ya want to trade. I have the mask, cloak, gauntlets, gorget, girdle, and mace. Just tell me what piece you want to trade for and I'll tell ya what I want.") + elseif(e.message:findi("cloak")) then + e.self:Say("For the darkened knight's cloak you'll have to bring me a cloud jewel, a mark of twisted souls, a chilled brazier, and a gem of blue skies."); + elseif(e.message:findi("gauntlets")) then + e.self:Say("For the darkened knight's gauntlets you'll have bring me a sky jewel, a mark of fright, and a true silver idol"); + elseif(e.message:findi("girdle")) then + e.self:Say("For the darkened knight's girdle you'll have to bring me an astral jewel, a mark of gloom, some gilded beads, and an etched tablet."); + elseif(e.message:findi("girdle")) then + e.self:Say("For the darkened knigh's gorget you'll have to bring me a meteor jewel, a mark of darkness, a runed stone brazier."); + elseif(e.message:findi("mace")) then + e.self:Say("For the darkened knight's mace you'll have to bring me a sun jewel, a mark of night, a beaded circlet, and a heating stone."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 5875,item3 = 5876,item4 = 5877},1,text)) then -- cloud jewel, a mark of twisted souls, a chilled brazier, and a gem of blue skies + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3967,25000); -- Darkened Knight's Cloak + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4493,item2 = 5880,item3 = 5881},1,text)) then -- meteor jewel, a mark of darkness, a runed stone brazier + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3969,25000); -- Darkened Knight's Gorget + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 5878,item3 = 5879},1,text)) then -- sky jewel, a mark of fright, and a true silver idol + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3968,25000); -- Darkened Knight's Guantlets + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 5882,item3 = 5883,item4 = 5884},1,text)) then -- astral jewel, a mark of gloom, some gilded beads, and an etched tablet + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3970,25000); -- Darkened Knight's Girdle + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4488,item2 = 5885,item3 = 5886,item4 = 5887},1,text)) then -- sun jewel, a mark of night, a beaded circlet, and a heating stone + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3971,25000); -- Darkened Knight's Mace + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end + + diff --git a/twilight/Trizpo_Tobbnokcog.lua b/twilight/Trizpo_Tobbnokcog.lua new file mode 100644 index 0000000..3f109b1 --- /dev/null +++ b/twilight/Trizpo_Tobbnokcog.lua @@ -0,0 +1,52 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hi there, who are you? What are you doing here? Oh I'm one of Vornol's four apprentices. I specialize in the element of earth."); + elseif(e.message:findi("armor")) then + e.self:Say("Oh you've been to see Gazoon on his island. Yep he gave me some of his fancy finger waggler armor, are ya a wizard?"); + elseif(e.message:findi("wizard")) then + e.self:Say("Wonderful, then you'll probably be wanting the mask, cloak, gloves, choker, belt and staff I have"); + elseif(e.message:findi("mask")) then + e.self:Say("For the mask you'll have to get me a meteor jewel, a mark of potential, and an iron tipped wand."); + elseif(e.message:findi("cloak")) then + e.self:Say("For the cloak you'll have to get me an astral jewel, a mark of temper, a vial of firewater, and some iced nectar."); + elseif(e.message:findi("gloves")) then + e.self:Say("For the gloves you'll have to get me a sun jewel, a mark of might, and a book of solutions."); + elseif(e.message:findi("choker")) then + e.self:Say("For the choker you'll have to get me a moon jewel, a mark of destruction, and a stick of mastery."); + elseif(e.message:findi("belt")) then + e.self:Say("For the belt you'll have to get me a star jewel, a mark of thaumaturgy, a loop of energy, and a small magnifying lens."); + elseif(e.message:findi("staff")) then + e.self:Say("For the staff you'll have to get me a cloud jewel, a mark of detonation, opaque glasses, and a pyro wand."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4736,item2 = 4735,item3 = 4738,item4 = 4490},1,text)) then -- belt + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3721,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4734,item2 = 4489,item3 = 4737},1,text)) then -- choker + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3720,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 4731,item3 = 4729,item4 = 4730},1,text)) then -- cloak + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3718,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4733,item2 = 4732,item3 = 4488},1,text)) then -- gloves + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3719,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 4739,item3 = 4740,item4 = 5973},1,text)) then -- staff + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3722,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4728,item2 = 4727,item3 = 4493},1,text)) then -- mask + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3717,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1547,5); -- Vornol Transon +end diff --git a/twilight/Valana_Broms.lua b/twilight/Valana_Broms.lua new file mode 100644 index 0000000..e510452 --- /dev/null +++ b/twilight/Valana_Broms.lua @@ -0,0 +1,55 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("studies you for a moment and then speaks, 'Greetings, I'm Valana. Many come here to speak with those in the tower. What brings you here?"); + elseif(e.message:findi("armor")) then + e.self:Say("The armor that I have to reward you is a headband, gi, arm wraps, leggings, shawl, wrist wraps, and sandals. My friend and guard Allise has the rest if you wish to speak with her, just ask about armor."); + elseif(e.message:findi("headband")) then + e.self:Say("For the headband you must retrieve for me a sun jewel, a mark of peace, an oblong clay bowl, and a great gem."); + elseif(e.message:findi("gi")) then + e.self:Say("For the gi you must retrieve for me a moon jewel, a mark of tranquility, sharpened rock hopper claws, and some etched steel shavings."); + elseif(e.message:findi("arm wraps")) then + e.self:Say("For the arm wraps you must retrieve for me a star jewel, a mark of harmony, a triple beaded circlet, and some fresh spring water."); + elseif(e.message:findi("leggings")) then + e.self:Say("For the leggings you must retrieve for me a cloud jewel, a mark of meditation, Ralcom's Writ, and a jar of ointment."); + elseif(e.message:findi("shawl")) then + e.self:Say("For the shawl you must retrieve for me a sky jewel, a mark of unity and a pewter figurine."); + elseif(e.message:findi("wrist wraps")) then + e.self:Say("For the wrist wraps you must retrieve for me a meteor jewel, a mark of true self, and a coiled steel wire."); + elseif(e.message:findi("sandals")) then + e.self:Say("For the sandals you must retrieve for me an astral jewel, a mark of form, and some spire spirit dust."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 5194,item2 = 5192,item3 = 5193,item4 = 4488},1,text)) then -- headband + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3775,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5197,item2 = 5195,item3 = 4489,item4 = 5196},1,text)) then -- gi + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3776,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5244,item2 = 5198,item3 = 4490,item4 = 5199},1,text)) then -- arm wraps + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3777,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 5247,item3 = 5245,item4 = 5246},1,text)) then -- leggings + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3778,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5248,item2 = 5249,item3 = 4492},1,text)) then -- shawl + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3779,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 5251,item2 = 5250,item3 = 4493},1,text)) then -- wrist wraps + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3780,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 5252,item3 = 5253},1,text)) then -- sandals + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3781,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1547,5); -- Vornol Transon +end diff --git a/twilight/Vornol_Transon.lua b/twilight/Vornol_Transon.lua new file mode 100644 index 0000000..26a8d9f --- /dev/null +++ b/twilight/Vornol_Transon.lua @@ -0,0 +1,50 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("pauses for a second staring off into the distance. 'Ah welcome friend. I am Vornol, a summoner of sorts, and master of this tower.'"); + elseif(e.message:findi("magician")) then + e.self:Say("Most excellent what I have is some armor, if you will do few errands for me it is yours. The pieces I have are the cap, robe, sleeves, pants, shawl, and bracer. My apprentice, the lady Galdara, has the rest. Just ask her about armor and she will tell you what you need to do."); + elseif(e.message:findi("cap")) then + e.self:Say("For the cap you will have to bring back to me a sun jewel, a fire idol, a fire marked scroll and a runed ring of fire."); + elseif(e.message:findi("robe")) then + e.self:Say("For the robe you will have to bring back to me a moon jewel, a vial of purified fire, a vial of purified water, and a vial of purified air."); + elseif(e.message:findi("sleeves")) then + e.self:Say("For the sleeves you will have to bring back to me a star jewel, an air idol, an air marked scroll and a runed ring of air."); + elseif(e.message:findi("pants")) then + e.self:Say("For the pants you will have to bring back to me a cloud jewel, an earth idol, an earth marked scroll, and a runed ring of earth."); + elseif(e.message:findi("shawl")) then + e.self:Say("For the shawl you will have to bring back to me a sky jewel, a talisman of burning earth, and a vial of purified earth."); + elseif(e.message:findi("bracer")) then + e.self:Say("For the bracer you will have to bring back to me a meteor jewel, talisman of moisture, and a vial of aqua waters."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4488,item2 = 4495,item3 = 4496,item4 = 4497},1,text)) then -- cap + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3684,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4489,item2 = 4498,item3 = 4499,item4 = 4506},1,text)) then -- robe + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3685,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 4507,item3 = 4508,item4 = 4509},1,text)) then -- sleeves + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3686,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 4510,item3 = 4511,item4 = 4512},1,text)) then -- pants + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3687,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 4513,item3 = 4514},1,text)) then -- shawl + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3688,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4493,item2 = 4584,item3 = 4585},1,text)) then -- bracer + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3689,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1547,5); -- Vornol Transon +end diff --git a/twilight/Xavier_Sendorn.lua b/twilight/Xavier_Sendorn.lua new file mode 100644 index 0000000..5a2515c --- /dev/null +++ b/twilight/Xavier_Sendorn.lua @@ -0,0 +1,62 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("nods at " .. e.other:GetCleanName() .. ". 'Hey there!"); + elseif(e.message:findi("armor")) then + e.self:Say("Oh, you've decided you're going to help Lara out with her visions? If so, I can reward you with armor if you happen to be an enchanter."); + elseif(e.message:findi("enchanter")) then + e.self:Say("I have the sandals, mask, cloak, gloves, choker, belt, and staff."); + elseif(e.message:findi("sandals")) then + e.self:Say("For the sandals you must get for me a meteor jewel, a mark of refinement, and a hope onyx."); + elseif(e.message:findi("mask")) then + e.self:Say("For the mask you must get for me an astral jewel, a mark of charm, and a hope pearl."); + elseif(e.message:findi("cloak")) then + e.self:Say("For the cloak you must get for me a sun jewel, a mark of desire, a hope diamond, and a tarnished silver nugget."); + elseif(e.message:findi("gloves")) then + e.self:Say("For the gloves you must get for me a moon jewel, a mark of intellect, and a tarnished gold nugget."); + elseif(e.message:findi("choker")) then + e.self:Say("For the choker you must get for me a star jewel, a mark of thought, and a tarnished platinum nugget."); + elseif(e.message:findi("belt")) then + e.self:Say("For the belt you must get for me a cloud jewel, a mark of reason, a tarnished electrum nugget, and a friendship bracelet."); + elseif(e.message:findi("staff")) then + e.self:Say("For the staff you must get for me a sky jewel, a mark of mind, an enchanted bundle of wood, and a shadow crystal."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "You have done well to bring me this, but there is more needed before you get your reward."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 4493,item2 = 4691,item3 = 4692},1,text)) then -- sandals + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3703,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4494,item2 = 4693,item3 = 4694},1,text)) then -- mask + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3704,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4488,item2 = 4695,item3 = 4696,item4 = 4697},1,text)) then -- cloak + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3705,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4489,item2 = 4698,item3 = 4699},1,text)) then -- gloves + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3706,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4490,item2 = 4701,item3 = 4702},1,text)) then -- choker + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3707,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4491,item2 = 4703,item3 = 4704,item4 = 4705},1,text)) then -- belt + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3708,25000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 4492,item2 = 4706,item3 = 4707,item4 = 4708},1,text)) then -- staff + FactionReward(e) + e.other:QuestReward(e.self,0,0,0,0,3709,25000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function FactionReward(e) + e.self:Say("" .. e.other:GetCleanName() .. " take this and use it with pride.") + e.other:Faction(e.self,1502,5); -- Katta Castellum Citizens + e.other:Faction(e.self,1503,1); -- Validus Custodus + e.other:Faction(e.self,1504,1); -- Magus Conlegium + e.other:Faction(e.self,1499,-2); -- Citizens of Seru + e.other:Faction(e.self,1483,-1); -- Seru + e.other:Faction(e.self,1487,-1); -- Shoulders of Seru +end diff --git a/umbral/#Binkl_Dirkwafer.lua b/umbral/#Binkl_Dirkwafer.lua new file mode 100644 index 0000000..efc6d8d --- /dev/null +++ b/umbral/#Binkl_Dirkwafer.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Ey! What're you doin' here! This is my home. Shoo. Look at you. What's wrong with you. Here in the middle of giant rotting flesh beasts, abnormal trees, fanged giant death horselike things and youre worried about pleasantries? GO AWAY! You are insane."); + elseif(e.message:findi("pleasantries")) then + e.self:Emote("blinks and stares at you for a moment. 'Are you daft?'"); + elseif(e.message:findi("home")) then + e.self:Say("Fleh! Don't make fun of my home. It's my home. Go Away."); + end +end \ No newline at end of file diff --git a/umbral/Radir_Fireshower.lua b/umbral/Radir_Fireshower.lua new file mode 100644 index 0000000..f3566ae --- /dev/null +++ b/umbral/Radir_Fireshower.lua @@ -0,0 +1,5 @@ +-- Spawns Spirit of Radir when Radir Fireshower dies. + +function event_death_complete(e) + eq.unique_spawn(176019,0,0,-2037,-765,-17,0); +end \ No newline at end of file diff --git a/umbral/Shak_Dathor.lua b/umbral/Shak_Dathor.lua new file mode 100644 index 0000000..677f267 --- /dev/null +++ b/umbral/Shak_Dathor.lua @@ -0,0 +1,5 @@ +function event_death_complete(e) + if(math.random(100) < 3) then + eq.spawn2(176100,77,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + end +end diff --git a/umbral/Spirit_of_Radir.lua b/umbral/Spirit_of_Radir.lua new file mode 100644 index 0000000..6f0ffc9 --- /dev/null +++ b/umbral/Spirit_of_Radir.lua @@ -0,0 +1,21 @@ +-- despawns Spirit of Radir + +function event_spawn(e) + eq.set_timer("depop", 900000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end diff --git a/umbral/Spirit_of_Tawro.lua b/umbral/Spirit_of_Tawro.lua new file mode 100644 index 0000000..35dd6b3 --- /dev/null +++ b/umbral/Spirit_of_Tawro.lua @@ -0,0 +1,21 @@ +-- despawns Spirit of Tawro + +function event_spawn(e) + eq.set_timer("depop", 900000); +end + +function event_timer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end diff --git a/umbral/Tawro_Icequake.lua b/umbral/Tawro_Icequake.lua new file mode 100644 index 0000000..7c15896 --- /dev/null +++ b/umbral/Tawro_Icequake.lua @@ -0,0 +1,5 @@ +-- Spawns Spirit of Tawro when Tawro_Icequake dies. + +function event_death_complete(e) + eq.unique_spawn(176020,0,0,60,2899,352,128); +end \ No newline at end of file diff --git a/umbral/a_corrupted_elysian_elder.lua b/umbral/a_corrupted_elysian_elder.lua new file mode 100644 index 0000000..b7e12ea --- /dev/null +++ b/umbral/a_corrupted_elysian_elder.lua @@ -0,0 +1,5 @@ +function event_waypoint_arrive(e) + if(e.wp >= 0) then + e.self:SetAppearance(3); + end +end diff --git a/umbral/an_ancient_whisperling.lua b/umbral/an_ancient_whisperling.lua new file mode 100644 index 0000000..804a500 --- /dev/null +++ b/umbral/an_ancient_whisperling.lua @@ -0,0 +1,28 @@ +function event_spawn(e) + eq.set_timer("proxsay",2000); +end + +function event_timer(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 45, xloc + 45, yloc - 45, yloc + 45); + eq.enable_proximity_say(); + eq.stop_timer("proxsay"); +end + +function event_proximity_say(e) + local xloc = e.other:GetX(); + local yloc = e.other:GetY(); + local nxloc = e.self:GetX(); + local nyloc = e.self:GetY(); + local xdiff = xloc - nxloc; + local ydiff = yloc - nyloc; + if(e.message:findi("hail") and e.other:GetGM()) then -- debug only + e.self:Say("Your x is ".. xdiff .." and your y is " .. ydiff .." from me!"); + end + + if(e.message:findi("worthy of vah kerrath")) then + e.self:Say("The squishy mortal has proven itself by releasing Elysian spirits. We greet the Elysian spirits to our realm and rejoice in their freedom. Go on fleshling, ask the bone man to tell you of Vex Thal."); + end +end diff --git a/umbral/disturbed_elysian_remains.lua b/umbral/disturbed_elysian_remains.lua new file mode 100644 index 0000000..b7e12ea --- /dev/null +++ b/umbral/disturbed_elysian_remains.lua @@ -0,0 +1,5 @@ +function event_waypoint_arrive(e) + if(e.wp >= 0) then + e.self:SetAppearance(3); + end +end diff --git a/umbral/encounters/doomshade.lua b/umbral/encounters/doomshade.lua new file mode 100644 index 0000000..50982cb --- /dev/null +++ b/umbral/encounters/doomshade.lua @@ -0,0 +1,115 @@ +local master = 0 +local mastertimer = 0 + +function DoomSpawn(e) + eq.set_timer("start",1000); +end + +function DoomTimer(e) + if(e.timer == "start") then + master = 0; + mastertimer = 0; + eq.signal(176105, 1); + eq.stop_timer("start"); + end +end + +function MasterSignal(e) + if(e.signal == 1) then + eq.zone_emote(0,"an unearthly wail fills the air as the Dark Masters begin chanting for the coming of doom"); + eq.set_timer("hours",10800000); + eq.set_timer("minutes",1800000); + elseif(e.signal == 2) then + eq.stop_timer("minutes"); + elseif(e.signal == 3) then + eq.set_timer("minutes",1800000); + elseif(e.signal == 4) then + eq.set_timer("Timing",1200000); + mastertimer = 1; + elseif(e.signal == 5) then + eq.set_timer("Doomshade",math.random(30000,300000)); + eq.stop_timer("Timing"); + end +end + +function MasterTimer(e) + if(e.timer == "hours") then + eq.zone_emote(0,"an unearthly wail fills the air as the Dark Masters begin chanting for the coming of doom"); + elseif(e.timer == "minutes") then + eq.signal(176042,1); + elseif(e.timer == "Timing") then + eq.stop_timer("Timing"); + mastertimer = 0; + master = 0; + elseif(e.timer == "Doomshade") then + eq.stop_timer("Doomshade"); + eq.stop_timer("hours"); + eq.stop_timer("minutes"); + eq.zone_emote(0,"a tortured scream echoes throughout the plains as a tormented spirit is released upon the land"); + eq.depop_with_timer(176087); + mastertimer = 0; + master = 0; + eq.unique_spawn(176017,0,0,120,-298,5,0); + end +end + +function DarkMasterSignal(e) + if(e.signal == 1) then + e.self:Emote("chants for the coming of doom"); + end +end + +function DarkMasterCombat(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(176087)) then + if(e.joined) then + eq.signal(176105, 2); + else + eq.signal(176105, 3); + end + end +end + +function DarkMasterDeath(e) + if(eq.get_entity_list():IsMobSpawnedByNpcTypeID(176087)) then + master = master + 1; + eq.debug("Number of master count here is ".. master .." and mastertimer is ".. mastertimer .."",1); + if(master == 1) then + eq.signal(176105, 4); + elseif(master == 4 and mastertimer == 1) then + eq.signal(176105, 5); + end + end +end + +function DoomShadeSpawn(e) + eq.set_timer("depop",3600000); +end + +function DoomShadeTimer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function DoomShadeCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("doomshade", Event.spawn, 176087, DoomSpawn); + eq.register_npc_event("doomshade", Event.timer, 176087, DoomTimer); + eq.register_npc_event("doomshade", Event.signal, 176105, MasterSignal); + eq.register_npc_event("doomshade", Event.timer, 176105, MasterTimer); + eq.register_npc_event("doomshade", Event.signal, 176042, DarkMasterSignal); + eq.register_npc_event("doomshade", Event.combat, 176042, DarkMasterCombat); + eq.register_npc_event("doomshade", Event.death, 176042, DarkMasterDeath); + eq.register_npc_event("doomshade", Event.spawn, 176017, DoomShadeSpawn); + eq.register_npc_event("doomshade", Event.timer, 176017, DoomShadeTimer); + eq.register_npc_event("doomshade", Event.combat, 176017, DoomShadeCombat); +end diff --git a/umbral/encounters/swarmcaller.lua b/umbral/encounters/swarmcaller.lua new file mode 100644 index 0000000..ed06000 --- /dev/null +++ b/umbral/encounters/swarmcaller.lua @@ -0,0 +1,147 @@ +local count = 0; + +function CallerDeath(e) + eq.signal(176009,1); +end + +function CallerSignal(e) + if(e.signal == 1) then + eq.set_timer("counting",90000); + end +end + +function CallerTimer(e) + eq.set_timer("counting",300000); + count = count + 1; + if(count == 1) then + eq.spawn2(176001,0,0,487,2281,302,135); + eq.spawn2(176001,0,0,455,2253,305,64); + eq.spawn2(176001,0,0,475,2229,305,14); + eq.spawn2(176001,0,0,504,2258,304,184); + elseif(count == 2) then + eq.spawn2(176001,0,0,487,2281,302,135); + eq.spawn2(176001,0,0,455,2253,305,64); + eq.spawn2(176001,0,0,475,2229,305,14); + eq.spawn2(176001,0,0,504,2258,304,184); + elseif(count == 3) then + eq.spawn2(eq.ChooseRandom(176001,176008,176004),0,0,487,2281,302,135); + eq.spawn2(176001,0,0,455,2253,305,64); + eq.spawn2(eq.ChooseRandom(176001,176008,176004),0,0,475,2229,305,14); + eq.spawn2(176001,0,0,504,2258,304,184); + elseif(count == 4) then + eq.spawn2(eq.ChooseRandom(176001,176008,176004),0,0,487,2281,302,135); + eq.spawn2(176001,0,0,455,2253,305,64); + eq.spawn2(eq.ChooseRandom(176001,176008,176004),0,0,475,2229,305,14); + eq.spawn2(176001,0,0,504,2258,304,184); + elseif(count == 5) then + eq.spawn2(eq.ChooseRandom(176001,176008,176004),0,0,487,2281,302,135); + eq.spawn2(176001,0,0,455,2253,305,64); + eq.spawn2(eq.ChooseRandom(176001,176008,176004),0,0,475,2229,305,14); + eq.spawn2(176001,0,0,504,2258,304,184); + elseif(count == 6) then + eq.spawn2(176000,0,0,482,2254,306,128); + eq.spawn2(176001,0,0,455,2253,305,64); + eq.spawn2(176001,0,0,475,2229,305,14); + eq.spawn2(eq.ChooseRandom(176001,176008,176004),0,0,504,2258,304,184); + count = 0; + eq.stop_timer("counting"); + end +end + +function LordSpawn(e) + eq.set_timer("depop",1800000); +end + +function LordTimer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function LordCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function RavagerSpawn(e) + eq.set_timer("depop",1800000); +end + +function RavagerTimer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function RavagerCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function FleshSpawn(e) + eq.set_timer("depop",1800000); +end + +function FleshTimer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function FleshCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function HiveSpawn(e) + eq.set_timer("depop",1800000); +end + +function HiveTimer(e) + if(e.timer == "depop") then + eq.depop(); + end +end + +function HiveCombat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + eq.register_npc_event("swarmcaller", Event.death_complete, 176007, CallerDeath); + eq.register_npc_event("swarmcaller", Event.signal, 176009, CallerSignal); + eq.register_npc_event("swarmcaller", Event.timer, 176009, CallerTimer); + eq.register_npc_event("swarmcaller", Event.spawn, 176000, LordSpawn); + eq.register_npc_event("swarmcaller", Event.timer, 176000, LordTimer); + eq.register_npc_event("swarmcaller", Event.combat, 176000, LordCombat); + eq.register_npc_event("swarmcaller", Event.spawn, 176001, RavagerSpawn); + eq.register_npc_event("swarmcaller", Event.timer, 176001, RavagerTimer); + eq.register_npc_event("swarmcaller", Event.combat, 176001, RavagerCombat); + eq.register_npc_event("swarmcaller", Event.spawn, 176008, FleshSpawn); + eq.register_npc_event("swarmcaller", Event.timer, 176008, FleshTimer); + eq.register_npc_event("swarmcaller", Event.combat, 176008, FleshCombat); + eq.register_npc_event("swarmcaller", Event.spawn, 176004, HiveSpawn); + eq.register_npc_event("swarmcaller", Event.timer, 176004, HiveTimer); + eq.register_npc_event("swarmcaller", Event.combat, 176004, HiveCombat); +end diff --git a/umbral/remains_of_Vah_Kerrath.lua b/umbral/remains_of_Vah_Kerrath.lua new file mode 100644 index 0000000..3cc4967 --- /dev/null +++ b/umbral/remains_of_Vah_Kerrath.lua @@ -0,0 +1,32 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Fleshy mortal, can you not see that I am cursed to live in eternal anguish? What is it that you seek from me?"); + elseif(e.message:findi("vex thal") or e.message:findi("dark prophet")) then + if(e.other:GetFactionValue(e.self) >= 1000) then + if(e.message:findi("vex thal")) then + e.self:Say("The city of shadow is sealed by powerful magic. Only one that wears the talisman of Akelha Ra can pass through the seals on the gate. I have not been beyond the gates but rumors of dark prophets that possess great power have been heard throughout the ages."); + elseif(e.message:findi("dark prophet")) then + e.self:Say("Only legends and rumors have circulated about the dark prophets in Vex Thal. I suspect that they are the reason for my eternally cursed state. If you could find someway to defeat the dark prophet leading those in Vex Thal and bring me back proof of the deed, I shall reward you with an ancient relic that I possess."); + end + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I will not reveal the secrets I have discovered so easily. Since I am unable to leave the protection of the whisperling circle, I will need you to aid me in releasing the Elysian spirits from their tormented states. Destroy their remains and release their spirits from the grip of the shadow curse. Return four of their skulls to me as proof of your deeds. Only then will I impart my discoveries to you."); + else + e.self:Say("Begone from my sight corruptor of spirits. I will only aid my allies."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 8365}, 0)) then -- Soul Essence of Aten Ha Ra + e.self:Say("" .. e.other:GetCleanName() .. ", you have done more than was ever expected. Take this and my blessing will be with you always."); + e.other:QuestReward(e.self,0,0,0,0,8364,2000); -- Talisman of Vah Kerrath + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 28102,item2 = 28102,item3 = 28102,item4 = 28102})) then + e.self:Say("You have done well. Clear your mind of all distractions and ask the whisperlings if you are worthy of my knowledge."); + e.other:Faction(e.self,1520,5); -- Whisperling + e.other:Faction(e.self,1521,-1); -- Akheva + e.other:QuestReward(e.self,0,0,0,0,0,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/umbral/script_init.lua b/umbral/script_init.lua new file mode 100644 index 0000000..f8e4be6 --- /dev/null +++ b/umbral/script_init.lua @@ -0,0 +1,2 @@ +eq.load_encounter("swarmcaller"); +eq.load_encounter("doomshade"); diff --git a/unrest/Khrix_Fritchoff.lua b/unrest/Khrix_Fritchoff.lua new file mode 100644 index 0000000..0681025 --- /dev/null +++ b/unrest/Khrix_Fritchoff.lua @@ -0,0 +1,20 @@ +function event_say(e) -- no matter what you say, he'll always respond to this text. + e.self:Say('Close the door and be gone fool! You are going to give away my hiding spot!'); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 10400})) then + e.self:Say('At last I may leave this place!! Good luck destroying my abomination, you will surely need it against my most powerful yet uncontrollable creation!'); + e.other:Faction(e.self,238,1); -- Faction: Dark Reflection + e.other:Faction(e.self,245,-1); -- Faction: Eldritch Collective + e.other:Faction(e.self,255,-1); -- Faction: Gem Choppers + e.other:Faction(e.self,240,-1); -- Faction: Deep Muses + eq.unique_spawn(63111,0,0,60,622,20,0); -- spawns Khrixs Abomination + e.other:QuestReward(e.self,0,0,0,0,0,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Khrix_Fritchoff zone - unrest. diff --git a/unrest/Khrixs_Abomination.lua b/unrest/Khrixs_Abomination.lua new file mode 100644 index 0000000..ad4a1e8 --- /dev/null +++ b/unrest/Khrixs_Abomination.lua @@ -0,0 +1,7 @@ +function event_spawn(e) + eq.set_timer("depop",1200000); +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/unrest/Serra.lua b/unrest/Serra.lua new file mode 100644 index 0000000..64a0394 --- /dev/null +++ b/unrest/Serra.lua @@ -0,0 +1,25 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("H..h..hello? Can you help me? I lost [something] and I need it so I can go back home."); + elseif(e.message:findi("something")) then + e.self:Say("I never got my doll for my birthday. Before he could bring it to me I was h..hurt by the bad man. I cannot leave without my doll. Will you please help me?"); + elseif(e.message:findi("doll")) then + e.self:Emote("claps her hands. 'Oh goody! But... I cannot seem to remember his name. He gave me this note before I..."); + elseif(e.message:findi("note")) then + e.self:Say("I hope it will help you out. Please find him so I can leave this place?"); + e.other:SummonCursorItem(20374); -- Item: Ripped Qeynos Bards Guild Flyer + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 20370})) then + e.self:Say("Oh! You have the dolly! Thank you! Thank you! Thank you! I can go home now. Please give this to my father, Baenar. He will understand when he gets it.' Serra begins to fade away. 'Bye bye!"); + e.other:QuestReward(e.self,0,0,0,0,20371); -- Item: Note for Baenar + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:unrest ID:63029 -- Serra \ No newline at end of file diff --git a/veeshan/Phara_Dar.lua b/veeshan/Phara_Dar.lua new file mode 100644 index 0000000..952fc0b --- /dev/null +++ b/veeshan/Phara_Dar.lua @@ -0,0 +1,5 @@ +function event_signal(e) + if ( e.signal == 1 ) then + e.self:Shout("Attend me, members of the Ring. The Sleeper is free of his prison, and will surely be seeking revenge!"); + end +end diff --git a/veeshan/guardian_wurm.lua b/veeshan/guardian_wurm.lua new file mode 100644 index 0000000..e3a2bd1 --- /dev/null +++ b/veeshan/guardian_wurm.lua @@ -0,0 +1,36 @@ +function event_death_complete(event) + -- 5% chance to spawn a wurm or two on death + if ( math.random() < 0.05 ) then + + function getRandomWurm() + local randomWurm = math.random(1, 10); + + if ( randomWurm > 5 ) then + randomWurm = 108506; + + elseif ( randomWurm == 1 ) then + randomWurm = 108520; + + elseif ( randomWurm == 2 ) then + randomWurm = 108521; + + elseif ( randomWurm == 3 ) then + randomWurm = 108522; + + elseif ( randomWurm == 4 ) then + randomWurm = 108523; + + elseif ( randomWurm == 5 ) then + randomWurm = 108524; + end + + return randomWurm; + end + + eq.spawn2(getRandomWurm(), 0, 0, event.self:GetX(), event.self:GetY(), event.self:GetZ(), event.self:GetHeading()); + + if ( math.random() < 0.5 ) then + eq.spawn2(getRandomWurm(), 0, 0, event.self:GetX(), event.self:GetY(), event.self:GetZ(), event.self:GetHeading()); + end + end +end diff --git a/velketor/#Bledrek.lua b/velketor/#Bledrek.lua new file mode 100644 index 0000000..c5cf6cc --- /dev/null +++ b/velketor/#Bledrek.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(112013,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Bled +end diff --git a/velketor/#Kerdelb.lua b/velketor/#Kerdelb.lua new file mode 100644 index 0000000..2fe5750 --- /dev/null +++ b/velketor/#Kerdelb.lua @@ -0,0 +1,3 @@ +function event_death_complete(e) + eq.spawn2(112016,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- Kerd +end diff --git a/velketor/A_chill.lua b/velketor/A_chill.lua new file mode 100644 index 0000000..3f72c1a --- /dev/null +++ b/velketor/A_chill.lua @@ -0,0 +1,7 @@ +function event_combat(e) + if (e.joined == true) then + e.self:Emote("runs down your spine as a beast made of ice fades into existence."); + eq.spawn2(eq.ChooseRandom(112098,112076,112098,112077), 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); -- a_large_crystal_shard (112045) a_crystalline_shard (112047) a_crystal_shard (112046) + eq.depop_with_timer(); + end +end diff --git a/velketor/A_stalagtite.lua b/velketor/A_stalagtite.lua new file mode 100644 index 0000000..3c018e9 --- /dev/null +++ b/velketor/A_stalagtite.lua @@ -0,0 +1,7 @@ +function event_combat(e) + if (e.joined == true) then + e.self:Emote("suddenly comes to life!"); + eq.spawn2(eq.ChooseRandom(112098,112076,112098,112077), 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); -- a_large_crystal_shard (112045) a_crystalline_shard (112047) a_crystal_shard (112046) + eq.depop_with_timer(); + end +end diff --git a/velketor/A_tentacle.lua b/velketor/A_tentacle.lua new file mode 100644 index 0000000..c22aeba --- /dev/null +++ b/velketor/A_tentacle.lua @@ -0,0 +1,7 @@ +function event_combat(e) + if (e.joined == true) then + e.self:Emote("strikes out at you!"); + eq.spawn2(eq.ChooseRandom(112098,112076,112098,112077), 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); -- a_large_crystal_shard (112045) a_crystalline_shard (112047) a_crystal_shard (112046) + eq.depop_with_timer(); + end +end diff --git a/velketor/Bjoron_Axefall.lua b/velketor/Bjoron_Axefall.lua new file mode 100644 index 0000000..6062831 --- /dev/null +++ b/velketor/Bjoron_Axefall.lua @@ -0,0 +1,12 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am not the beginning."); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("A beginning, a"); + eq.signal(112032,1); -- NPC: Khlem_Alestone + end +end \ No newline at end of file diff --git a/velketor/Brumen_Firehammer.lua b/velketor/Brumen_Firehammer.lua new file mode 100644 index 0000000..a371efa --- /dev/null +++ b/velketor/Brumen_Firehammer.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("It is staring at me again! I should pluck its eyeballs out!"); + elseif(e.message:findi("staring")) then + e.self:Say("The cave bear in the corner of course."); + elseif(e.message:findi("bear")) then + e.self:Say("Are you blind " .. e.other:Race() .. "? It's Huge! Look at the claws on it! It is the bear that ate Dlemin.It's hungry too, just waiting for me to sleep."); + elseif(e.message:findi("sleep")) then + e.self:Say("No! I will not sleep! It will eat me! I will stay awake forever! Forever I tell you!"); + elseif(e.message:findi("dlemin")) then + e.self:Say("Dlemin was my best friend! Now he is not here! I will avenge him some day, when the bear stops staring at me."); + elseif(e.message:findi("velketor")) then + e.self:Say("Who is this Velketor! All I know is the bear will eat me if I sleep, so I will never sleep!"); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("The cave bear in the corner of course!"); + end +end \ No newline at end of file diff --git a/velketor/Bryma_Loftaxe.lua b/velketor/Bryma_Loftaxe.lua new file mode 100644 index 0000000..a2d6c36 --- /dev/null +++ b/velketor/Bryma_Loftaxe.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("whispers, 'Speak softly outlander or you may end up like Frekka and some of the others.'"); + elseif(e.message:findi("frekka")) then + e.self:Emote("whispers, 'He... experimented on her because she spoke so loudly in the cell. I fear I will be next. You should leave this place at once and never return...' "); + elseif(e.message:findi("experimented")) then + e.self:Emote("whispers, 'He placed some tiny beast into Frekka's head. I cannot bear to think of the pain she must be in.'"); + eq.signal(112037,1); -- NPC: Frekka_Alebringer + elseif(e.message:findi("leave")) then + e.self:Emote("whispers, 'It is impossible for me to leave here. Velketor has placed an enchantment upon all of us so we cannot leave. My poor husband Glrarm...' Bryma begins to cry softly to herself."); + eq.signal(112034,1); -- NPC: Brumen_Firehammer + elseif(e.message:findi("glrarm")) then + e.self:Emote("wipes a tear from her face. 'He tried to leave... Velketor even left the doors of our cells open. As soon as Glrarm set foot outside the citadel his body pulsed with a sickly green light and he fell dead... Velketors voice... the cruel laughter...' Bryma quietly sobs again. If Velketor were dead, we might be able to escape this horrible place."); + elseif(e.message:findi("velketor")) then + e.self:Emote("whispers, 'He is a twisted storm giant sorcerer who spoke out against Rallos Zek and was cast out of Kael Drakkel, or so the rumor is. He is not far from here, you should go now, while you still can.'"); + end +end \ No newline at end of file diff --git a/velketor/Dlemin_Whiteforge.lua b/velketor/Dlemin_Whiteforge.lua new file mode 100644 index 0000000..af05506 --- /dev/null +++ b/velketor/Dlemin_Whiteforge.lua @@ -0,0 +1,7 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("growls at you like a fierce cave bear."); + elseif(e.message:findi("velketor")) then + e.self:Emote("licks his lips hungrily."); + end +end diff --git a/velketor/Drella_Stonegrinder.lua b/velketor/Drella_Stonegrinder.lua new file mode 100644 index 0000000..fdfa850 --- /dev/null +++ b/velketor/Drella_Stonegrinder.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am the beginning."); + elseif(e.message:findi("beginning")) then + e.self:Say("All things have"); + eq.signal(112031,1); -- NPC: Bjoron_Axefall + elseif(e.message:findi("velketor")) then + e.self:Say("He is the master of this citadel."); + end +end diff --git a/velketor/Frekka_Alebringer.lua b/velketor/Frekka_Alebringer.lua new file mode 100644 index 0000000..e28d8e0 --- /dev/null +++ b/velketor/Frekka_Alebringer.lua @@ -0,0 +1,22 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("lets out a cry of pain as your words reach her ears. 'No! No more noise! No more experiments!'"); + elseif(e.message:findi("experiment")) then + e.self:Emote("screams, 'Stop! I can't stand it leave me alone you beasts!' Frekka clasps her hands to her ears and shakes her head."); + eq.signal(112034,1); -- NPC: Brumen_Firehammer + elseif(e.message:findi("beast")) then + e.self:Emote("howls in pain. 'Get out of my head! Get out of my head! Get them out of my head! Stop eating my mind!' "); + elseif(e.message:findi("eating your mind")) then + e.self:Emote("tenses and trys to ignore you."); + elseif(e.message:findi("velketor")) then + e.self:Emote("screams, 'Sorcerer... in my mind. Get out...' Frekka wails in agony."); + elseif(e.message:findi("help")) then + e.self:Emote("screams, 'No one can help me! Leave before they are in your head as well you fool!' Frekka winces in pain."); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Emote("tenses and trys to ignore you."); + end +end \ No newline at end of file diff --git a/velketor/From_no_where.lua b/velketor/From_no_where.lua new file mode 100644 index 0000000..dcbc759 --- /dev/null +++ b/velketor/From_no_where.lua @@ -0,0 +1,7 @@ +function event_combat(e) + if (e.joined == true) then + e.self:Emote("a terror springs to attack you."); + eq.spawn2(eq.ChooseRandom(112098,112076,112098,112076), 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); -- a_large_crystal_shard (112045) a_crystalline_shard (112047) a_crystal_shard (112046) + eq.depop_with_timer(); + end +end diff --git a/velketor/Ice.lua b/velketor/Ice.lua new file mode 100644 index 0000000..f16dd8b --- /dev/null +++ b/velketor/Ice.lua @@ -0,0 +1,7 @@ +function event_combat(e) + if (e.joined == true) then + e.self:Emote("on the floor shimmers as a beast made of crystalline ice emerges."); + eq.spawn2(eq.ChooseRandom(112098,112076,112098,112077), 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); -- a_large_crystal_shard (112045) a_crystalline_shard (112047) a_crystal_shard (112046) + eq.depop_with_timer(); + end +end diff --git a/velketor/Icy_Guardian.lua b/velketor/Icy_Guardian.lua new file mode 100644 index 0000000..6edb254 --- /dev/null +++ b/velketor/Icy_Guardian.lua @@ -0,0 +1,23 @@ +function event_spawn(e) + eq.set_timer("loot",1000); +end + +function event_timer(e) + eq.stop_timer("loot"); + if(math.random(100) < 36) then + setdrop = math.random(100); + if(setdrop < 15) then + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + elseif(setdrop < 60) then + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + else + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + end + end +end \ No newline at end of file diff --git a/velketor/Khlem_Alestone.lua b/velketor/Khlem_Alestone.lua new file mode 100644 index 0000000..8c762af --- /dev/null +++ b/velketor/Khlem_Alestone.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I am not the begining."); + end +end + +function event_signal(e) + if(e.signal == 1) then + e.self:Say("Middle and end."); + end +end \ No newline at end of file diff --git a/velketor/Something_seems.lua b/velketor/Something_seems.lua new file mode 100644 index 0000000..389081f --- /dev/null +++ b/velketor/Something_seems.lua @@ -0,0 +1,7 @@ +function event_combat(e) + if (e.joined == true) then + e.self:Emote("lunges at you from the shadows!"); + eq.spawn2(eq.ChooseRandom(112098,112076,112098,112077), 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); -- a_large_crystal_shard (112045) a_crystalline_shard (112047) a_crystal_shard (112046) + eq.depop_with_timer(); + end +end diff --git a/velketor/TerrorSpawner.lua b/velketor/TerrorSpawner.lua new file mode 100644 index 0000000..dbd5c92 --- /dev/null +++ b/velketor/TerrorSpawner.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 45, xloc + 45, yloc - 45, yloc + 45, zloc - 3, zloc + 6); +end + +function event_enter(e) + eq.spawn2(eq.ChooseRandom(112076,112076,112076,112077),0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); -- NPC(s): a_crystal_shard (112076), a_crystal_shard (112076), a_crystal_shard (112076), a_large_crystal_shard (112077) + eq.depop_with_timer(); +end diff --git a/velketor/The_Brood_Master.lua b/velketor/The_Brood_Master.lua new file mode 100644 index 0000000..6edb254 --- /dev/null +++ b/velketor/The_Brood_Master.lua @@ -0,0 +1,23 @@ +function event_spawn(e) + eq.set_timer("loot",1000); +end + +function event_timer(e) + eq.stop_timer("loot"); + if(math.random(100) < 36) then + setdrop = math.random(100); + if(setdrop < 15) then + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + elseif(setdrop < 60) then + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + else + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + end + end +end \ No newline at end of file diff --git a/velketor/The_hair.lua b/velketor/The_hair.lua new file mode 100644 index 0000000..9809e81 --- /dev/null +++ b/velketor/The_hair.lua @@ -0,0 +1,7 @@ +function event_combat(e) + if (e.joined == true) then + e.self:Emote("on the back of your neck stands up straight."); + eq.spawn2(eq.ChooseRandom(112098,112076,112098,112077), 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); -- a_large_crystal_shard (112045) a_crystalline_shard (112047) a_crystal_shard (112046) + eq.depop_with_timer(); + end +end diff --git a/velketor/The_walls.lua b/velketor/The_walls.lua new file mode 100644 index 0000000..aeddf90 --- /dev/null +++ b/velketor/The_walls.lua @@ -0,0 +1,7 @@ +function event_combat(e) + if (e.joined == true) then + e.self:Emote("seem to shimmer as a beast lunges from within one."); + eq.spawn2(eq.ChooseRandom(112098,112076,112098,112077), 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); -- a_large_crystal_shard (112045) a_crystalline_shard (112047) a_crystal_shard (112046) + eq.depop_with_timer(); + end +end diff --git a/velketor/You_are.lua b/velketor/You_are.lua new file mode 100644 index 0000000..2c54712 --- /dev/null +++ b/velketor/You_are.lua @@ -0,0 +1,7 @@ +function event_combat(e) + if (e.joined == true) then + e.self:Emote("assaulted by a blast of freezing wind and the sound of hissing."); + eq.spawn2(eq.ChooseRandom(112098,112076,112098,112077), 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), e.self:GetHeading()); -- a_large_crystal_shard (112045) a_crystalline_shard (112047) a_crystal_shard (112046) + eq.depop_with_timer(); + end +end diff --git a/velketor/a_blizzard_spider.lua b/velketor/a_blizzard_spider.lua new file mode 100644 index 0000000..e36f192 --- /dev/null +++ b/velketor/a_blizzard_spider.lua @@ -0,0 +1,23 @@ +function event_spawn(e) + eq.set_timer("loot",1000); +end + +function event_timer(e) + eq.stop_timer("loot"); + if(math.random(100) < 6) then + setdrop = math.random(100); + if(setdrop < 15) then + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + elseif(setdrop < 60) then + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + else + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + end + end +end \ No newline at end of file diff --git a/velketor/a_crystalline_devourer.lua b/velketor/a_crystalline_devourer.lua new file mode 100644 index 0000000..f5abbb9 --- /dev/null +++ b/velketor/a_crystalline_devourer.lua @@ -0,0 +1,23 @@ +function event_spawn(e) + eq.set_timer("loot",1000); +end + +function event_timer(e) + eq.stop_timer("loot"); + if(math.random(100) < 31) then + setdrop = math.random(100); + if(setdrop < 15) then + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + elseif(setdrop < 60) then + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + else + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + end + end +end \ No newline at end of file diff --git a/velketor/a_crystalline_hunter.lua b/velketor/a_crystalline_hunter.lua new file mode 100644 index 0000000..f5abbb9 --- /dev/null +++ b/velketor/a_crystalline_hunter.lua @@ -0,0 +1,23 @@ +function event_spawn(e) + eq.set_timer("loot",1000); +end + +function event_timer(e) + eq.stop_timer("loot"); + if(math.random(100) < 31) then + setdrop = math.random(100); + if(setdrop < 15) then + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + elseif(setdrop < 60) then + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + else + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + end + end +end \ No newline at end of file diff --git a/velketor/a_crystalline_watcher.lua b/velketor/a_crystalline_watcher.lua new file mode 100644 index 0000000..f5abbb9 --- /dev/null +++ b/velketor/a_crystalline_watcher.lua @@ -0,0 +1,23 @@ +function event_spawn(e) + eq.set_timer("loot",1000); +end + +function event_timer(e) + eq.stop_timer("loot"); + if(math.random(100) < 31) then + setdrop = math.random(100); + if(setdrop < 15) then + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + elseif(setdrop < 60) then + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + else + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + end + end +end \ No newline at end of file diff --git a/velketor/a_shimmering_orb.lua b/velketor/a_shimmering_orb.lua new file mode 100644 index 0000000..fea6e93 --- /dev/null +++ b/velketor/a_shimmering_orb.lua @@ -0,0 +1,11 @@ +function event_spawn(e) + local ex = e.self:GetX(); + local ey = e.self:GetY(); + local ez = e.self:GetZ(); + eq.set_proximity(ex - 65, ex + 65, ey - 65, ey + 65, ez - 10, ez + 20); +end + +function event_enter(e) + e.self:CastSpell(2098,e.other:GetID(),0,1); -- Spell: Nulling Void + eq.depop_with_timer(); +end diff --git a/velketor/a_velium_broodling.lua b/velketor/a_velium_broodling.lua new file mode 100644 index 0000000..6edb254 --- /dev/null +++ b/velketor/a_velium_broodling.lua @@ -0,0 +1,23 @@ +function event_spawn(e) + eq.set_timer("loot",1000); +end + +function event_timer(e) + eq.stop_timer("loot"); + if(math.random(100) < 36) then + setdrop = math.random(100); + if(setdrop < 15) then + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + elseif(setdrop < 60) then + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + else + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + end + end +end \ No newline at end of file diff --git a/velketor/a_velium_hunter.lua b/velketor/a_velium_hunter.lua new file mode 100644 index 0000000..6edb254 --- /dev/null +++ b/velketor/a_velium_hunter.lua @@ -0,0 +1,23 @@ +function event_spawn(e) + eq.set_timer("loot",1000); +end + +function event_timer(e) + eq.stop_timer("loot"); + if(math.random(100) < 36) then + setdrop = math.random(100); + if(setdrop < 15) then + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + elseif(setdrop < 60) then + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + else + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + end + end +end \ No newline at end of file diff --git a/velketor/a_velium_stalker.lua b/velketor/a_velium_stalker.lua new file mode 100644 index 0000000..6edb254 --- /dev/null +++ b/velketor/a_velium_stalker.lua @@ -0,0 +1,23 @@ +function event_spawn(e) + eq.set_timer("loot",1000); +end + +function event_timer(e) + eq.stop_timer("loot"); + if(math.random(100) < 36) then + setdrop = math.random(100); + if(setdrop < 15) then + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + elseif(setdrop < 60) then + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + else + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + e.self:AddItem(1829,1); + end + end +end \ No newline at end of file diff --git a/vexthal/Aten_Ha_Ra.lua b/vexthal/Aten_Ha_Ra.lua new file mode 100644 index 0000000..ec88e87 --- /dev/null +++ b/vexthal/Aten_Ha_Ra.lua @@ -0,0 +1,51 @@ +local WARDER_TYPES = { 158418, 158409, 158405, 158399, 158393 }; + +local checks = 0; + +function IsWarderUp() + for _, id in ipairs(WARDER_TYPES) do + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(id) ) then + return true; + end + end + return false; +end + +function Warp(mob) + mob:GMMove(1412, 0, 245.5, 195.8); + mob:BuffFadeAll(); + mob:WipeHateList(); + checks = 0; +end + +function event_timer(e) + + if ( e.self:GetZ() < 229 or e.self:GetZ() > 260 ) then + Warp(e.self); + return; + end + + if ( e.self:IsEngaged() ) then + + if ( IsWarderUp() and e.self:GetTarget().valid and e.self:GetTarget():IsClient() and not e.self:GetTarget():CastToClient():GetGM() ) then + e.self:CastSpell(2859, e.self:GetTarget():GetID()); -- Touch of Vinitras + return; + end + + -- Warp if Aten fails LoS checks with tank target she is meleeing + -- Aten can be pulled into a pillar, or tanked through the wall + if ( e.self:GetTarget():IsWarriorClass() and e.self:CombatRange(e.self:GetTarget()) and not e.self:CheckLoS(e.self:GetTarget()) ) then + + checks = checks + 1; + if ( checks > 3 ) then + Warp(e.self); + end + else + checks = 0; + end + end +end + +function event_spawn(e) + eq.set_timer("sploitcheck", 5000); +end diff --git a/vexthal/Diabo_Xi_Va_Temariel.lua b/vexthal/Diabo_Xi_Va_Temariel.lua new file mode 100644 index 0000000..c9d62bc --- /dev/null +++ b/vexthal/Diabo_Xi_Va_Temariel.lua @@ -0,0 +1,33 @@ +-- This will punish raids that pull the boss under the floor + +local Z_LEVEL = 110; -- if boss is below this Z, cazic touch players + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("cheat_check", 12000); + else + eq.stop_timer("cheat_check"); + eq.stop_timer("kill_player"); + end +end + +function event_timer(e) + if ( e.timer == "cheat_check" ) then + + if ( e.self:GetZ() < Z_LEVEL ) then + eq.stop_timer(e.timer); + eq.set_timer("kill_player", 500); + e.self:CastSpell(1948, e.self:GetID(), 0, 1); -- Destroy + end + + elseif ( e.timer == "kill_player" ) then + + local hl = e.self:GetHateList(); + for ent in hl.entries do + if ( ent.ent:IsClient() ) then + eq.signal(158480, ent.ent:GetID()); -- Stop_Cheating; tell it to Cazic Touch + return; + end + end + end +end diff --git a/vexthal/Diabo_Xi_Xin.lua b/vexthal/Diabo_Xi_Xin.lua new file mode 100644 index 0000000..eca95c1 --- /dev/null +++ b/vexthal/Diabo_Xi_Xin.lua @@ -0,0 +1,33 @@ +-- This will punish raids that pull the boss under the floor + +local Z_LEVEL = 100; -- if boss is above this Z, cazic touch players + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("cheat_check", 120000); + else + eq.stop_timer("cheat_check"); + eq.stop_timer("kill_player"); + end +end + +function event_timer(e) + if ( e.timer == "cheat_check" ) then + + if ( e.self:GetZ() > Z_LEVEL ) then + eq.stop_timer(e.timer); + eq.set_timer("kill_player", 500); + e.self:CastSpell(1948, e.self:GetID(), 0, 1); -- Destroy + end + + elseif ( e.timer == "kill_player" ) then + + local hl = e.self:GetHateList(); + for ent in hl.entries do + if ( ent.ent:IsClient() ) then + eq.signal(158480, ent.ent:GetID()); -- Stop_Cheating; tell it to Cazic Touch + return; + end + end + end +end diff --git a/vexthal/Kaas_Thox_Xi_Aten_Ha_Ra.lua b/vexthal/Kaas_Thox_Xi_Aten_Ha_Ra.lua new file mode 100644 index 0000000..e057f47 --- /dev/null +++ b/vexthal/Kaas_Thox_Xi_Aten_Ha_Ra.lua @@ -0,0 +1,33 @@ +-- This will punish raids that pull the boss under the floor + +local Z_LEVEL = 100; -- if boss is below this Z, cazic touch players + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("cheat_check", 120000); + else + eq.stop_timer("cheat_check"); + eq.stop_timer("kill_player"); + end +end + +function event_timer(e) + if ( e.timer == "cheat_check" ) then + + if ( e.self:GetZ() < Z_LEVEL ) then + eq.stop_timer(e.timer); + eq.set_timer("kill_player", 500); + e.self:CastSpell(1948, e.self:GetID(), 0, 1); -- Destroy + end + + elseif ( e.timer == "kill_player" ) then + + local hl = e.self:GetHateList(); + for ent in hl.entries do + if ( ent.ent:IsClient() ) then + eq.signal(158480, ent.ent:GetID()); -- Stop_Cheating; tell it to Cazic Touch + return; + end + end + end +end diff --git a/vexthal/Stop_Cheating.lua b/vexthal/Stop_Cheating.lua new file mode 100644 index 0000000..fe95cc3 --- /dev/null +++ b/vexthal/Stop_Cheating.lua @@ -0,0 +1,86 @@ +local BAD_COORDS = { + -- top of buildings above blob2 area + { -1000, 670, -- min X, max X + -1000, 1000, -- min Y, max Y + 254, 1000, -- min Z, max Z + }, + -- below front area with water floor + { -166, 900, -- min X, max X + -640, 640, -- min Y, max Y + -200, -1, -- min Z, max Z + }, + -- north end-of-water region + { 375, 750, -- min X, max X + 500, 640, -- min Y, max Y + -1000, 1000, -- min Z, max Z + }, + -- south end-of-water region + { 365, 750, -- min X, max X + -640, -500, -- min Y, max Y + -1000, 1000, -- min Z, max Z + }, +}; + +local cheaters = {}; +local cheatersToSlay = false; + +function event_spawn(e) + eq.set_timer("check", 10000); +end + +function event_signal(e) + table.insert(cheaters, e.signal); + if ( not cheatersToSlay ) then + eq.set_timer("kill_list", 500); + end + cheatersToSlay = true; +eq.debug(tostring(e.signal)); +end + +function event_timer(e) + if ( e.timer == "kill_list" ) then + local i = #cheaters; + local client; + if ( i > 0 ) then + client = eq.get_entity_list():GetClientByID(cheaters[i]); + if ( client and client.valid ) then + + if ( client:GetX() > 1366 and e.self:GetX() < 1000 ) then -- cazic touch has a spell data range of 1000 for some reason; need to move NPC to hit people far away + e.self:GMMove(1092, 0, 235, 64); + return; + end + e.self:CastSpell(982, client:GetID(), 0, 100); -- Cazic Touch + end + table.remove(cheaters, i); + end + + elseif ( e.timer == "check" ) then + local clientList = eq.get_entity_list():GetClientList(); + + if ( clientList ) then + for client in clientList.entries do + + if ( not client:GetGM() ) then + for _, coords in ipairs(BAD_COORDS) do + + if ( client:GetX() > coords[1] and client:GetX() < coords[2] + and client:GetY() > coords[3] and client:GetY() < coords[4] + and client:GetZ() > coords[5] and client:GetZ() < coords[6] + ) then + e.self:CastSpell(982, client:GetID(), 0, 100); -- Cazic Touch + return; + end + end + end + end + end + + if ( cheatersToSlay and #cheaters == 0 ) then + eq.stop_timer("kill_list"); + cheatersToSlay = false; + if ( e.self:GetX() > 500 ) then + e.self:GMMove(500, 0, 255, 0); + end + end + end +end diff --git a/vexthal/Thall_Va_Kelun.lua b/vexthal/Thall_Va_Kelun.lua new file mode 100644 index 0000000..800d660 --- /dev/null +++ b/vexthal/Thall_Va_Kelun.lua @@ -0,0 +1,33 @@ +-- This will punish raids that pull the boss under the floor + +local Z_LEVEL = 100; -- if boss is below this Z, cazic touch players + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("cheat_check", 120000); + else + eq.stop_timer("cheat_check"); + eq.stop_timer("kill_player"); + end +end + +function event_timer(e) + if ( e.timer == "cheat_check" ) then + + if ( e.self:GetZ() < Z_LEVEL ) then + eq.stop_timer(e.timer); + eq.set_timer("kill_player", 500); + e.self:CastSpell(1948, e.self:GetID(), 0, 1); -- Destroy + end + + elseif ( e.timer == "kill_player" ) then + + local hl = e.self:GetHateList(); + for ent in hl.entries do + if ( ent.ent:IsClient() ) then + e.self:CastSpell(982, ent.ent:GetID(), 0, 1); -- Cazic Touch + return; + end + end + end +end diff --git a/vexthal/Thall_Va_Xakra.lua b/vexthal/Thall_Va_Xakra.lua new file mode 100644 index 0000000..c05f925 --- /dev/null +++ b/vexthal/Thall_Va_Xakra.lua @@ -0,0 +1,137 @@ +local NORTH_TVX_TYPE = 158136; +local SOUTH_TVX_TYPE = 158465; +local NORTH_VA_XAKRA1_SPAWNID = 365859; +local NORTH_VA_XAKRA2_SPAWNID = 365582; +local SOUTH_VA_XAKRA1_SPAWNID = 366962; +local SOUTH_VA_XAKRA2_SPAWNID = 366429; + +local LINK_HATE_CAP = 5000; + +local BAD_COORDS = { + -- in water outside, SE + { -270, -157, -- min X, max X + -1000, -181, -- min Y, max Y + -1000, 1000, -- min Z, max Z + }, + -- in water outside, S + { -270, 573, -- min X, max X + -1000, -603, -- min Y, max Y + -1000, 1000, -- min Z, max Z + }, + -- in water outside, NE + { -270, -157, -- min X, max X + 181, 1000, -- min Y, max Y + -1000, 1000, -- min Z, max Z + }, + -- in water outside, N + { -270, 573, -- min X, max X + 603, 1000, -- min Y, max Y + -1000, 1000, -- min Z, max Z + }, + -- above floors + { -500, 1000, -- min X, max X + -1000, 1000, -- min Y, max Y + 100, 1000, -- min Z, max Z + }, +}; + +function BadAreaCheck(self) + + local hl = self:GetHateList(); + local clients = {}; + for ent in hl.entries do + if ( ent.ent:IsClient() ) then + table.insert(clients, ent.ent:CastToClient()); + end + end + + if ( self:GetX() > -260 and self:GetZ() < 0 ) then + self:GMMove(self:GetSpawnPointX(), self:GetSpawnPointY(), self:GetSpawnPointZ(), self:GetSpawnPointH()); + self:WipeHateList(); + end + + for _, client in ipairs(clients) do + if ( not client:GetGM() ) then + for _, coords in ipairs(BAD_COORDS) do + + if ( client:GetX() > coords[1] and client:GetX() < coords[2] + and client:GetY() > coords[3] and client:GetY() < coords[4] + and client:GetZ() > coords[5] and client:GetZ() < coords[6] + ) then + eq.signal(158480, client:GetID()); -- Stop_Cheating; tell it to Cazic Touch + return; + end + end + end + end +end + +function AggroLink(boss, guardId) + local npcList = eq.get_entity_list():GetNPCList(); + local bossTopHater = boss:GetHateTop(); + local bossTopHate = boss:GetHateAmount(bossTopHater, false); + local cappedHate = bossTopHate; + local topHaterGuardHate; + if ( bossTopHate > LINK_HATE_CAP ) then + cappedHate = LINK_HATE_CAP; + end + + if ( npcList ) then + + for npc in npcList.entries do + + if ( npc.valid and npc:GetSpawnPointID() == guardId ) then + + if ( bossTopHater ) then + topHaterGuardHate = npc:GetHateAmount(bossTopHater, false); + + if ( topHaterGuardHate < cappedHate ) then + npc:SetHate(bossTopHater, cappedHate); + end + end + return; + end + end + end + +end + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("aggrocheck", 1000); + + -- players were pulling this NPC through the wall to outside or to 3rd floor to avoid trash. Kill the bastard + if ( e.self:GetX() > -260 ) then + eq.set_timer("cheat_check", 1000); + BadAreaCheck(e.self); + end + else + eq.stop_timer("aggrocheck"); + eq.stop_timer("cheat_check"); + if ( e.self:GetX() < -150 ) then + e.self:GMMove(e.self:GetSpawnPointX(), e.self:GetSpawnPointY(), e.self:GetSpawnPointZ(), e.self:GetSpawnPointH()); + end + end +end + +function event_timer(e) + if ( e.timer == "aggrocheck" ) then + local selfId = e.self:GetNPCTypeID(); + local mob; + + if ( selfId == NORTH_TVX_TYPE ) then + AggroLink(e.self, NORTH_VA_XAKRA1_SPAWNID); + AggroLink(e.self, NORTH_VA_XAKRA2_SPAWNID); + elseif ( selfId == SOUTH_TVX_TYPE ) then + AggroLink(e.self, SOUTH_VA_XAKRA1_SPAWNID); + AggroLink(e.self, SOUTH_VA_XAKRA2_SPAWNID); + end + + elseif ( e.timer == "cheat_check" ) then + if ( e.self:GetX() > -260 and e.self:GetHPRatio() > 95 ) then + BadAreaCheck(e.self); + else + eq.stop_timer(e.timer); + end + end +end diff --git a/vexthal/Thall_Xundraux_Diabo.lua b/vexthal/Thall_Xundraux_Diabo.lua new file mode 100644 index 0000000..c9d62bc --- /dev/null +++ b/vexthal/Thall_Xundraux_Diabo.lua @@ -0,0 +1,33 @@ +-- This will punish raids that pull the boss under the floor + +local Z_LEVEL = 110; -- if boss is below this Z, cazic touch players + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("cheat_check", 12000); + else + eq.stop_timer("cheat_check"); + eq.stop_timer("kill_player"); + end +end + +function event_timer(e) + if ( e.timer == "cheat_check" ) then + + if ( e.self:GetZ() < Z_LEVEL ) then + eq.stop_timer(e.timer); + eq.set_timer("kill_player", 500); + e.self:CastSpell(1948, e.self:GetID(), 0, 1); -- Destroy + end + + elseif ( e.timer == "kill_player" ) then + + local hl = e.self:GetHateList(); + for ent in hl.entries do + if ( ent.ent:IsClient() ) then + eq.signal(158480, ent.ent:GetID()); -- Stop_Cheating; tell it to Cazic Touch + return; + end + end + end +end diff --git a/vexthal/Va_Xi_Aten_Ha_Ra.lua b/vexthal/Va_Xi_Aten_Ha_Ra.lua new file mode 100644 index 0000000..e057f47 --- /dev/null +++ b/vexthal/Va_Xi_Aten_Ha_Ra.lua @@ -0,0 +1,33 @@ +-- This will punish raids that pull the boss under the floor + +local Z_LEVEL = 100; -- if boss is below this Z, cazic touch players + +function event_combat(e) + if ( e.joined ) then + eq.set_timer("cheat_check", 120000); + else + eq.stop_timer("cheat_check"); + eq.stop_timer("kill_player"); + end +end + +function event_timer(e) + if ( e.timer == "cheat_check" ) then + + if ( e.self:GetZ() < Z_LEVEL ) then + eq.stop_timer(e.timer); + eq.set_timer("kill_player", 500); + e.self:CastSpell(1948, e.self:GetID(), 0, 1); -- Destroy + end + + elseif ( e.timer == "kill_player" ) then + + local hl = e.self:GetHateList(); + for ent in hl.entries do + if ( ent.ent:IsClient() ) then + eq.signal(158480, ent.ent:GetID()); -- Stop_Cheating; tell it to Cazic Touch + return; + end + end + end +end diff --git a/vexthal/encounters/TVXadds.lua b/vexthal/encounters/TVXadds.lua new file mode 100644 index 0000000..f802449 --- /dev/null +++ b/vexthal/encounters/TVXadds.lua @@ -0,0 +1,120 @@ +local NORTH_TVX_TYPE = 158136; +local SOUTH_TVX_TYPE = 158465; +local VA_XAKRA_TYPE = 158006; +local NORTH_VA_XAKRA1_SPAWNID = 365859; +local NORTH_VA_XAKRA2_SPAWNID = 365582; +local SOUTH_VA_XAKRA1_SPAWNID = 366962; +local SOUTH_VA_XAKRA2_SPAWNID = 366429; +local ADD_SPAWNIDS = { + ["northWing"] = { + 367401, + 366394, + 365802, + 365441, + 365368, + 366065, + 366195, + 365571, + 365247, + 366513, + 366888, + 365589, + 367220, + 365873, + 365800, + 367095 + }, + ["southWing"] = { + 365946, + 365881, + 366540, + 366257, + 367471, + 365472, + 366972, + 365351, + 365528, + 366213, + 366153, + 366995, + 367490, + 365238, + 365851, + 367481 + } +}; + +function CombatEvent(e) + + if ( not e.joined ) then + eq.stop_timer("addtimer"); + else + eq.set_timer("addtimer", 5000); + MoveAdds(e); + end +end + +function MoveAdds(e) + + local npcList = eq.get_entity_list():GetNPCList(); + local myType = e.self:GetNPCTypeID(); + local mySpawnpointID = e.self:GetSpawnPointID(); + local spawnsList; + + if ( myType == NORTH_TVX_TYPE or mySpawnpointID == NORTH_VA_XAKRA1_SPAWNID or mySpawnpointID == NORTH_VA_XAKRA2_SPAWNID ) then + spawnsList = ADD_SPAWNIDS["northWing"]; + + elseif ( myType == SOUTH_TVX_TYPE or mySpawnpointID == SOUTH_VA_XAKRA1_SPAWNID or mySpawnpointID == SOUTH_VA_XAKRA2_SPAWNID ) then + spawnsList = ADD_SPAWNIDS["southWing"]; + else + return; + end + + if ( myType == VA_XAKRA_TYPE ) then + + if ( mySpawnpointID == 365859 or mySpawnpointID == 365582 ) then + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(NORTH_TVX_TYPE) + and eq.get_entity_list():GetMobByNpcTypeID(NORTH_TVX_TYPE):IsEngaged() + ) then + return; + end + elseif ( mySpawnpointID == 366962 or mySpawnpointID == 366429 ) then + if ( eq.get_entity_list():IsMobSpawnedByNpcTypeID(NORTH_TVX_TYPE) + and eq.get_entity_list():GetMobByNpcTypeID(SOUTH_TVX_TYPE):IsEngaged() + ) then + return; + end + end + end + + if ( npcList ) then + + local addsHashMap = {}; + for _, id in ipairs(spawnsList) do + addsHashMap[id] = true; + end + + for npc in npcList.entries do + + if ( npc.valid and addsHashMap[npc:GetSpawnPointID()] and not npc:IsEngaged() ) then + npc:MoveTo(e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0, false); + end + end + end +end + +function TimerEvent(e) + if ( e.timer == "addtimer" ) then + MoveAdds(e); + end +end + +function event_encounter_load(e) + eq.register_npc_event("TVXadds", Event.combat, NORTH_TVX_TYPE, CombatEvent); + eq.register_npc_event("TVXadds", Event.combat, SOUTH_TVX_TYPE, CombatEvent); + eq.register_npc_event("TVXadds", Event.combat, VA_XAKRA_TYPE, CombatEvent); + + eq.register_npc_event("TVXadds", Event.timer, NORTH_TVX_TYPE, TimerEvent); + eq.register_npc_event("TVXadds", Event.timer, SOUTH_TVX_TYPE, TimerEvent); + eq.register_npc_event("TVXadds", Event.timer, VA_XAKRA_TYPE, TimerEvent); +end diff --git a/vexthal/encounters/deathspawn.lua b/vexthal/encounters/deathspawn.lua new file mode 100644 index 0000000..a0d7e92 --- /dev/null +++ b/vexthal/encounters/deathspawn.lua @@ -0,0 +1,222 @@ +local CENTIEN_XAKRA_TYPES = { + 158008, -- #Qua_Centien_Xakra + 158122, -- #Zov_Centien_Xakra + 158088, -- #Zun_Centien_Xakra + 158113, -- #Pli_Centien_Xakra + 158121, -- #Eom_Centien_Xakra +}; + +local VA_LIAKO_XAKRA_TYPES = { + 158029, -- #Qua_Va_Liako_Xakra + 158014, -- #Zov_Va_Liako_Xakra + 158123, -- #Zun_Va_Liako_Xakra + 158098, -- #Pli_Va_Liako_Xakra + 158069, -- #Eom_Va_Liako_Xakra +}; + +local LIAKO_XAKRA_TYPES = { + 158102, -- #Qua_Liako_Xakra + 158110, -- #Zov_Liako_Xakra + 158012, -- #Zun_Liako_Xakra + 158097, -- #Pli_Liako_Xakra + 158112, -- #Eom_Liako_Xakra +}; + +local SENSHALI_XAKRA_TYPES = { + 158040, -- #Qua_Senshali_Xakra + 158013, -- #Zov_Senshali_Xakra + 158016, -- #Zun_Senshali_Xakra + 158074, -- #Pli_Senshali_Xakra + 158124, -- #Eom_Senshali_Xakra +}; + +local ZETHON_XAKRA_TYPES = { + 158007, -- #Qua_Zethon_Xakra + 158043, -- #Zov_Zethon_Xakra + 158103, -- #Zun_Zethon_Xakra + 158101, -- #Pli_Zethon_Xakra + 158099, -- #Eom_Zethon_Xakra +}; + +local THALL_XAKRA_TYPES = { + 158032, -- #Qua_Thall_Xakra + 158116, -- #Zov_Thall_Xakra + 158087, -- #Zun_Thall_Xakra + 158100, -- #Pli_Thall_Xakra + 158125, -- #Eom_Thall_Xakra +}; + +local CENTIEN_TYPES = { + 158089, -- #Zun_Centien + 158096, -- #Eom_Centien + 158105, -- #Pli_Centien + 158126, -- #Qua_Centien + 158127, -- #Zov_Centien + 158001, -- Eom_Centien + 158000, -- Pli_Centien + 158078, -- Qua_Centien + 158077, -- Zov_Centien + 158030, -- Zun_Centien +}; + +local THALL_TYPES = { + 158009, -- #Qua_Thall + 158011, -- #Zun_Thall + 158015, -- #Zov_Thall + 158128, -- #Eom_Thall + 158129, -- #Pli_Thall + 158047, -- Qua_Thall + 158038, -- Zun_Thall + 158042, -- Zov_Thall + 158039, -- Eom_Thall + 158046, -- Pli_Thall +}; + +local LIAKO_TYPES = { + 158108, -- #Pli_Liako + 158111, -- #Qua_Liako + 158130, -- #Eom_Liako + 158131, -- #Zov_Liako + 158141, -- #Zun_Liako + 158056, -- Eom_Liako + 158054, -- Pli_Liako + 158068, -- Qua_Liako + 158066, -- Zov_Liako + 158140, -- Zun_Liako +}; + +local SENSHALI_TYPES = { + 158104, -- #Qua_Senshali + 158106, -- #Zov_Senshali + 158107, -- #Zun_Senshali + 158132, -- #Eom_Senshali + 158133, -- #Pli_Senshali + 158034, -- Eom_Senshali + 158031, -- Pli_Senshali + 158079, -- Qua_Senshali + 158062, -- Zov_Senshali + 158003, -- Zun_Senshali +}; + +local VA_LIAKO_TYPES = { + 158091, -- #Zov_Va_Liako + 158109, -- #Eom_Va_Liako + 158114, -- #Qua_Va_Liako + 158134, -- #Pli_Va_Liako + 158137, -- #Zun_Va_Liako + 158017, -- Eom_Va_Liako + 158053, -- Pli_Va_Liako + 158067, -- Qua_Va_Liako + 158002, -- Zov_Va_Liako + 158041, -- Zun_Va_Liako +}; + +local ZETHON_TYPES = { + 158090, -- #Qua_Zethon + 158094, -- #Zun_Zethon + 158115, -- #Pli_Zethon + 158138, -- #Eom_Zethon + 158139, -- #Zov_Zethon + 158033, -- Eom_Zethon + 158035, -- Pli_Zethon + 158048, -- Qua_Zethon + 158076, -- Zov_Zethon + 158049, -- Zun_Zethon +}; + +local AKHEVA_TYPES = { CENTIEN_TYPES, THALL_TYPES, LIAKO_TYPES, SENSHALI_TYPES, VA_LIAKO_TYPES, ZETHON_TYPES }; +local SHADE_TYPES = { CENTIEN_XAKRA_TYPES, THALL_XAKRA_TYPES, LIAKO_XAKRA_TYPES, SENSHALI_XAKRA_TYPES, VA_LIAKO_XAKRA_TYPES, ZETHON_XAKRA_TYPES }; + +function DeathEvent(e) + local myType = e.self:GetNPCTypeID(); + local myLevel = e.self:GetLevel(); + local myClass = e.self:GetClass(); + local spawnType = CENTIEN_XAKRA_TYPES[1]; + local minType, maxType = 1, 3; -- default to Qua, Zov, Zun + + if ( myLevel == 66 ) then -- Eom + minType = 3; + maxType = 5; + end + + if ( myClass == 1 ) then + spawnType = CENTIEN_XAKRA_TYPES[math.random(minType, maxType)]; + + elseif ( myClass == 2 ) then + spawnType = THALL_XAKRA_TYPES[math.random(minType, maxType)]; + + elseif ( myClass == 9 ) then + spawnType = SENSHALI_XAKRA_TYPES[math.random(minType, maxType)]; + + elseif ( myClass == 12 ) then + spawnType = ZETHON_XAKRA_TYPES[math.random(minType, maxType)]; + + elseif ( myClass == 3 or myClass == 5 ) then + if ( math.random(100) > 50 ) then + spawnType = LIAKO_XAKRA_TYPES[math.random(minType, maxType)]; + else + spawnType = VA_LIAKO_XAKRA_TYPES[math.random(minType, maxType)]; + end + end + + eq.spawn2(spawnType, 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + + -- if players are killing mobs from a different floor, death touch the raid + if ( (e.self:GetSpawnPointZ() > 100 and e.self:GetZ() < 100) or (e.self:GetSpawnPointZ() < 100 and e.self:GetZ() > 100) ) then + + local x, y = e.self:GetX(), e.self:GetY(); + local clientList = eq.get_entity_list():GetClientList(); + local name, guild = "", ""; + for client in clientList.entries do + if ( not client:GetGM() and math.abs(client:GetX() - x) < 300 and math.abs(client:GetY() - y) < 300 ) then + eq.signal(158480, client:GetID()); -- Stop_Cheating; tell it to Cazic Touch + if ( name == "" ) then + name = client:GetName(); + guild = client:GetGuildName(); + end + end + end + + eq.debug(string.format("VexThal %s's raid death touched for cheating at %i %i %i <%s>", name, x, y, e.self:GetZ(), guild)); + eq.csr_notice(string.format("VexThal %s's raid death touched for cheating at %i %i %i <%s>", name, x, y, e.self:GetZ(), guild)); + end +end + + +function SpawnEvent(e) + eq.set_timer("depop", 2220000); +end + +function TimerEvent(e) + if ( e.timer == "depop" ) then + eq.stop_timer("depop"); + eq.depop(); + end +end + +function CombatEvent(e) + if ( e.joined ) then + if ( not eq.is_paused_timer("depop") ) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + + for _, classTypes in ipairs(AKHEVA_TYPES) do + for _, akhevaType in ipairs(classTypes) do + eq.register_npc_event("deathspawn", Event.death_complete, akhevaType, DeathEvent); + end + end + + for _, classTypes in ipairs(SHADE_TYPES) do + for _, akhevaType in ipairs(classTypes) do + eq.register_npc_event("deathspawn", Event.spawn, akhevaType, SpawnEvent); + eq.register_npc_event("deathspawn", Event.timer, akhevaType, TimerEvent); + eq.register_npc_event("deathspawn", Event.combat, akhevaType, CombatEvent); + end + end +end diff --git a/vexthal/encounters/traps.lua b/vexthal/encounters/traps.lua new file mode 100644 index 0000000..023c187 --- /dev/null +++ b/vexthal/encounters/traps.lua @@ -0,0 +1,196 @@ +local TYPES = { + [158028] = { -- weak shades all classes + 158008, -- #Qua_Centien_Xakra + 158032, -- #Qua_Thall_Xakra + 158007, -- #Qua_Zethon_Xakra + 158040, -- #Qua_Senshali_Xakra + 158102, -- #Qua_Liako_Xakra + 158029, -- #Qua_Va_Liako_Xakra + 158122, -- #Zov_Centien_Xakra + 158116, -- #Zov_Thall_Xakra + 158043, -- #Zov_Zethon_Xakra + 158013, -- #Zov_Senshali_Xakra + 158110, -- #Zov_Liako_Xakra + 158014, -- #Zov_Va_Liako_Xakra + 158088, -- #Zun_Centien_Xakra + 158087, -- #Zun_Thall_Xakra + 158103, -- #Zun_Zethon_Xakra + 158016, -- #Zun_Senshali_Xakra + 158012, -- #Zun_Liako_Xakra + 158123, -- #Zun_Va_Liako_Xakra + }, + [158467] = { -- weak shade warriors + 158008, -- #Qua_Centien_Xakra + 158122, -- #Zov_Centien_Xakra + 158088, -- #Zun_Centien_Xakra + }, + [158468] = { -- weak shade clerics + 158032, -- #Qua_Thall_Xakra + 158116, -- #Zov_Thall_Xakra + 158087, -- #Zun_Thall_Xakra + }, + [158469] = { -- weak shade wizards + 158007, -- #Qua_Zethon_Xakra + 158043, -- #Zov_Zethon_Xakra + 158103, -- #Zun_Zethon_Xakra + }, + [158470] = { -- weak shade rogues + 158040, -- #Qua_Senshali_Xakra + 158013, -- #Zov_Senshali_Xakra + 158016, -- #Zun_Senshali_Xakra + }, + [158080] = { -- strong shades all classes + 158088, -- #Zun_Centien_Xakra + 158087, -- #Zun_Thall_Xakra + 158103, -- #Zun_Zethon_Xakra + 158016, -- #Zun_Senshali_Xakra + 158012, -- #Zun_Liako_Xakra + 158123, -- #Zun_Va_Liako_Xakra + 158113, -- #Pli_Centien_Xakra + 158100, -- #Pli_Thall_Xakra + 158101, -- #Pli_Zethon_Xakra + 158074, -- #Pli_Senshali_Xakra + 158097, -- #Pli_Liako_Xakra + 158098, -- #Pli_Va_Liako_Xakra + 158121, -- #Eom_Centien_Xakra + 158125, -- #Eom_Thall_Xakra + 158099, -- #Eom_Zethon_Xakra + 158124, -- #Eom_Senshali_Xakra + 158112, -- #Eom_Liako_Xakra + 158069, -- #Eom_Va_Liako_Xakra + }, + [158471] = { -- strong shade clerics + 158087, -- #Zun_Thall_Xakra + 158100, -- #Pli_Thall_Xakra + 158125, -- #Eom_Thall_Xakra + }, + [158472] = { -- strong shade wizards + 158103, -- #Zun_Zethon_Xakra + 158101, -- #Pli_Zethon_Xakra + 158099, -- #Eom_Zethon_Xakra + }, + [158473] = { -- strong shade rogues + 158016, -- #Zun_Senshali_Xakra + 158074, -- #Pli_Senshali_Xakra + 158124, -- #Eom_Senshali_Xakra + }, + [158095] = { -- weak akhevan all classes + 158126, -- #Qua_Centien + 158009, -- #Qua_Thall + 158090, -- #Qua_Zethon + 158104, -- #Qua_Senshali + 158111, -- #Qua_Liako + 158114, -- #Qua_Va_Liako + 158127, -- #Zov_Centien + 158015, -- #Zov_Thall + 158139, -- #Zov_Zethon + 158106, -- #Zov_Senshali + 158131, -- #Zov_Liako + 158091, -- #Zov_Va_Liako + 158089, -- #Zun_Centien + 158011, -- #Zun_Thall + 158094, -- #Zun_Zethon + 158107, -- #Zun_Senshali + 158141, -- #Zun_Liako + 158137, -- #Zun_Va_Liako + }, + [158010] = { -- weak akhevan clerics + 158009, -- #Qua_Thall + 158015, -- #Zov_Thall + 158011, -- #Zun_Thall + }, + [158474] = { -- weak akhevan rogues + 158104, -- #Qua_Senshali + 158106, -- #Zov_Senshali + 158107, -- #Zun_Senshali + }, + [158475] = { -- strong akhevan all classes + 158089, -- #Zun_Centien + 158011, -- #Zun_Thall + 158094, -- #Zun_Zethon + 158107, -- #Zun_Senshali + 158141, -- #Zun_Liako + 158137, -- #Zun_Va_Liako + 158105, -- #Pli_Centien + 158129, -- #Pli_Thall + 158115, -- #Pli_Zethon + 158133, -- #Pli_Senshali + 158108, -- #Pli_Liako + 158134, -- #Pli_Va_Liako + 158096, -- #Eom_Centien + 158128, -- #Eom_Thall + 158138, -- #Eom_Zethon + 158132, -- #Eom_Senshali + 158130, -- #Eom_Liako + 158109, -- #Eom_Va_Liako + }, + [158476] = { -- strong akhevan warriors + 158089, -- #Zun_Centien + 158105, -- #Pli_Centien + 158096, -- #Eom_Centien + }, + [158477] = { -- strong akhevan wizards + 158094, -- #Zun_Zethon + 158115, -- #Pli_Zethon + 158138, -- #Eom_Zethon + }, + [158478] = { -- strong akhevan rogues + 158107, -- #Zun_Senshali + 158133, -- #Pli_Senshali + 158132, -- #Eom_Senshali + }, + [158479] = { -- strong akhevan knights + 158141, -- #Zun_Liako + 158137, -- #Zun_Va_Liako + 158108, -- #Pli_Liako + 158134, -- #Pli_Va_Liako + 158130, -- #Eom_Liako + 158109, -- #Eom_Va_Liako + }, +}; + +function TrapCombatEvent(e) + if ( e.joined ) then + local myType = e.self:GetNPCTypeID(); + if ( TYPES[myType] ) then + eq.spawn2(TYPES[myType][math.random(1, #TYPES[myType])], 0, 0, e.self:GetX(), e.self:GetY(), e.self:GetZ(), 0); + end + eq.depop_with_timer(); + end +end + +function SpawnEvent(e) + eq.set_timer("depop", 2220000); +end + +function TimerEvent(e) + if ( e.timer == "depop" ) then + eq.stop_timer("depop"); + eq.depop(); + end +end + +function CombatEvent(e) + if ( e.joined ) then + if ( not eq.is_paused_timer("depop") ) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_encounter_load(e) + for trapType in pairs(TYPES) do + eq.register_npc_event("traps", Event.combat, trapType, TrapCombatEvent); + end + + -- depop timers + for _, trapTypes in ipairs( { TYPES[158028], TYPES[158080], TYPES[158095], TYPES[158475] } ) do + for _, npcType in pairs(trapTypes) do + eq.register_npc_event("traps", Event.combat, npcType, CombatEvent); + eq.register_npc_event("traps", Event.timer, npcType, TimerEvent); + eq.register_npc_event("traps", Event.spawn, npcType, SpawnEvent); + end + end +end diff --git a/vexthal/encounters/warders.lua b/vexthal/encounters/warders.lua new file mode 100644 index 0000000..4b69921 --- /dev/null +++ b/vexthal/encounters/warders.lua @@ -0,0 +1,31 @@ +local WARDER_TYPES = { + [158444] = 158418, -- Kaas_Thox_Xi_Ans_Dyek, _Akhevan_Warder + [158443] = 158409, -- Diabo_Xi_Xin_Thall, __Akhevan_Warder + [158441] = 158405, -- Diabo_Xi_Va_Temariel, ___Akhevan_Warder + [158442] = 158405, -- Thall_Xundraux_Diabo, ___Akhevan_Warder + [158440] = 158399, -- Va_Xi_Aten_Ha_Ra, ____Akhevan_Warder + [158439] = 158393 -- Thall_Va_Kelun, _____Akhevan_Warder +}; + +function BossDeathEvent(e) + + local npcList = eq.get_entity_list():GetNPCList(); + + if ( npcList ) then + + for npc in npcList.entries do + + if ( npc.valid and npc:GetNPCTypeID() == WARDER_TYPES[e.self:GetNPCTypeID()] ) then + npc:Depop(true); -- depop with timer + end + end + end + +end + +function event_encounter_load(e) + + for bossType, warderType in pairs(WARDER_TYPES) do + eq.register_npc_event("warders", Event.death, bossType, BossDeathEvent); + end +end diff --git a/vexthal/script_init.lua b/vexthal/script_init.lua new file mode 100644 index 0000000..394e1e2 --- /dev/null +++ b/vexthal/script_init.lua @@ -0,0 +1,4 @@ +eq.load_encounter("traps"); +eq.load_encounter("deathspawn"); +eq.load_encounter("warders"); +eq.load_encounter("TVXadds"); diff --git a/wakening/#Lieutenant_Krofer.lua b/wakening/#Lieutenant_Krofer.lua new file mode 100644 index 0000000..e839217 --- /dev/null +++ b/wakening/#Lieutenant_Krofer.lua @@ -0,0 +1,18 @@ +function event_spawn(e) + eq.set_timer("depop",1200000); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1708}, 0)) then -- Mission Report + e.self:Say("Failure! Incompetence! The whole squad anihilated! I knew this would happen if left in the hands of a worthless mercenary! Well, you can take this report back to Drioc then. Now get out of my sight, mercenary."); + e.other:QuestReward(e.self,0,0,0,0,1709,1000); -- Report of Failure + eq.depop(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.depop(); +end diff --git a/wakening/#Lord_Gossimerwind.lua b/wakening/#Lord_Gossimerwind.lua new file mode 100644 index 0000000..4944efc --- /dev/null +++ b/wakening/#Lord_Gossimerwind.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("blinks at you a few times then speaks in a strangely musical draconic voice. 'You vish to azzizt ze count of ze Tunarean Faerie Dragons?'"); + elseif(e.message:findi("assist")) then + e.self:Say("I vish to ztop ze Kromzek Foreman from continuing ta deztroy thiz land. Iv you vish to azzizt you can zlay ze Foreman and bring me hiz helm az proof."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 24873}, 0)) then + e.self:Emote("takes the helm in his claws and crushes it with seeming ease. 'Yeez hav eernd ta reezpect ov my peoplez, here iz ze crezt ov ze faerie dragons'"); + e.other:Faction(e.self,449, 20); -- Tunarean Court + e.other:QuestReward(e.self,0,0,0,0,24868,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/wakening/#Lord_Prismwing.lua b/wakening/#Lord_Prismwing.lua new file mode 100644 index 0000000..aa8e833 --- /dev/null +++ b/wakening/#Lord_Prismwing.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("flutters his wings rapidly sending shimmering dust through the air around you. Although he speaks in high pitched chirps you somehow understand his meaning. Hello " .. e.other:GetCleanName() .. ", I am the Count of the Tunarean Drixies. Are you a friend of the Tunarean Court?"); + elseif(e.message:findi("friend")) then + e.self:Say("I am in need of some help. One of my heralds was sent to deliver a message to the Othmir in the Cobalt Scar some time ago and has not returned. I fear for his safety, if your travels should lead you in that direction please attempt to find news of my missing herald."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 24876}, 0)) then + e.self:Say("This is sad news you have returned to the court, but now his body may be laid to rest in the soil of Tunares land."); + e.other:Faction(e.self,449, 10); -- Tunarean Court + e.other:QuestReward(e.self,0,0,0,0,24867,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/wakening/#Rapticor.lua b/wakening/#Rapticor.lua new file mode 100644 index 0000000..b60c71a --- /dev/null +++ b/wakening/#Rapticor.lua @@ -0,0 +1,5 @@ +function event_combat(e) + if(e.joined) then + e.self:Emote("pounces on " .. e.other:GetCleanName() .. " in a flurry of deadly claws and teeth."); + end +end diff --git a/wakening/#a_storm_giant_architect.lua b/wakening/#a_storm_giant_architect.lua new file mode 100644 index 0000000..1ae2dd5 --- /dev/null +++ b/wakening/#a_storm_giant_architect.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hmmm, I didn't know refuse could speak. Are you here to annoy me or are you planning on making yourself useful, if the latter is even possible?"); + elseif(e.message:findi("make myself useful")) then + e.self:Say("A feeble creature like yourself is near worthless. If you must insist on serving the mighty Kromzek then go to the caverns of the geonids and bring me four blocks of living granite so that I may perform some tests on its value as a resource in the expansion of Kael."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 24872,item2 = 24872,item3 = 24872,item4 = 24872}, 0)) then + e.self:Say("So you proved to be of value after all, take this for your work. Don't let it go to your head."); + e.other:Faction(e.self,448,2); -- kromzek + e.other:Faction(e.self,419,1); -- kromrif + e.other:Faction(e.self,429,1); -- king tormax + e.other:Faction(e.self,430,-1); -- CoV + e.other:QuestReward(e.self,0,0,0,0,24877,2500); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/wakening/#a_storm_giant_foreman.lua b/wakening/#a_storm_giant_foreman.lua new file mode 100644 index 0000000..d3fc359 --- /dev/null +++ b/wakening/#a_storm_giant_foreman.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hey there scrawny! I lead the finest team of laborers in all of Kael Drakkel! We've got little use for a weak creature like yourself, but if you want to help us out I've got a task for you."); + elseif(e.message:findi("task")) then + e.self:Say("Those pansy dragon would bees in the Tunarean Court have become quite the nuisance lately. The deaths of Lord Gossimerwind and Lord Prismwing would certainly put an end to the nuisance for a time. Bring me their wings as proof of their deaths."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 24870,item2 = 24871}, 0)) then -- a prismatic wing and a Gossamer Wing + e.self:Say("You've done well. Maybe that foolish court will learn yet that the expansion of Kael cannot be impeded."); + e.other:Faction(e.self,448,10); -- kromzek + e.other:Faction(e.self,419,2); -- kromrif + e.other:Faction(e.self,429,2); -- king tormax + e.other:Faction(e.self,430,-5); -- CoV + e.other:QuestReward(e.self,0,0,0,0,eq.ChooseRandom(24887,24889,24886,24885,24884),1000); -- Holgresh Mojo Sticks, Holgresh Grand Vizier Beads + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/wakening/119296.lua b/wakening/119296.lua new file mode 100644 index 0000000..f2eacd5 --- /dev/null +++ b/wakening/119296.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("This better be good, " .. e.other:Race() .. "! Well? Spit it OUT!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1724}, 0)) then + e.self:Say("It's about time, whelp. Take your payment and leave, you're scaring away my... clients."); + e.other:Faction(e.self,448,3); -- Faction: Kromzek + e.other:Faction(e.self,419,1); -- Faction: Kromrif + e.other:Faction(e.self,429,1); -- Faction: King Tormax + e.other:Faction(e.self,430,-1); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,math.random(10),math.random(10),0,0,0,500); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/wakening/Countess_Silveana.lua b/wakening/Countess_Silveana.lua new file mode 100644 index 0000000..5f46533 --- /dev/null +++ b/wakening/Countess_Silveana.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("curtsies politely 'Welcome to our home! I am the Countess Silveana of the Tunarean Court."); + elseif(e.message:findi("tunarean")) then + e.self:Say("The Tunarean Court consists of several of Tunares most blessed creatures. We Sifaye help defend the wakening land from the invading giants to the east and watch for threats from the dragons to the west."); + elseif(e.message:findi("giant")) then + e.self:Say("There is a giant with a strange metal stick that has been the largest threat as of late. He wanders further into our lands than the other with the stick to his eye and squashes my Sifaye when he finds them. If you eliminate him for us I would like to see that stick he carries."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30221}, 0)) then + e.self:Emote("claps boisterously 'My people are in your debt for putting an end to that monsters murderous squashings! Here is the crest of the Sifaye"); + e.other:Faction(e.self,449, 20); -- Tunarean Court + e.other:QuestReward(e.self,0,0,0,0,24866,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/wakening/Eysa_Florawhisper.lua b/wakening/Eysa_Florawhisper.lua new file mode 100644 index 0000000..995beee --- /dev/null +++ b/wakening/Eysa_Florawhisper.lua @@ -0,0 +1,26 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("A pleasure to meet you. I am Countess Eysa Florawhisper of the Tunarean Court. Are you a friend of the court?"); + elseif(e.message:findi("friend of the court")) then + e.self:Say("You appear to be a creature that has seen many foreign lands. There are a number of fruits and seeds that I desire in order to plant them and preserve their species here in the wakening land. I will provide a bag for you that will preserve the seeds until they can be returned to me. Will you gather seeds for me?"); + elseif(e.message:findi("gather")) then + e.self:Say("I seek the following fruits and seeds. A misty acorn, emerald orange, bag of caynar nuts, vineclinger berries, ripened heartfruit, rathe berries, marr cherries, and flarefire seeds."); + e.other:SummonCursorItem(17864); -- Item: Empty Seed Collection Bag + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29067}, 0)) then + e.self:Say("Ahh, why thank you, friend! We are greatful. I believe if we work together, those children of Zek can be driven back in time. Otherwise, survival hangs in the balance, for both of us. Take this token back to the sentry as a symbol of our acceptance."); + e.other:Faction(e.self,449,10); -- tunarean court + e.other:QuestReward(e.self,0,0,0,0,29623); + eq.depop_with_timer(); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 24863}, 0)) then + e.self:Say("Ohhhh! You're the sweetest, " .. e.other:GetCleanName() .. ". The nymphs of the Tunarean Court recognize you as a friend of our kind and our botanical brethren."); + e.other:Faction(e.self,449, 20); -- Faction: Tunarean Court + e.other:QuestReward(e.self,0,0,0,0,24864,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/wakening/Gnome_Mercenary.lua b/wakening/Gnome_Mercenary.lua new file mode 100644 index 0000000..f2eacd5 --- /dev/null +++ b/wakening/Gnome_Mercenary.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("This better be good, " .. e.other:Race() .. "! Well? Spit it OUT!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1724}, 0)) then + e.self:Say("It's about time, whelp. Take your payment and leave, you're scaring away my... clients."); + e.other:Faction(e.self,448,3); -- Faction: Kromzek + e.other:Faction(e.self,419,1); -- Faction: Kromrif + e.other:Faction(e.self,429,1); -- Faction: King Tormax + e.other:Faction(e.self,430,-1); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,math.random(10),math.random(10),0,0,0,500); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/wakening/Korzak_Stonehammer.lua b/wakening/Korzak_Stonehammer.lua new file mode 100644 index 0000000..a32eaaa --- /dev/null +++ b/wakening/Korzak_Stonehammer.lua @@ -0,0 +1,23 @@ +-- The Supply Run +-- author - robregen +-- date - 4/10/12 + +function event_say(e) + if(e.message:findi("missing helmet") and e.other:GetFaction(e.self) < 6) then + e.self:Say("Recently helmets have been stolen from our workers. One of them reported seeing one of those wreched flying monkey beasts carry one off. Having those helmets back would be very useful. If you come across any of the workers helmets, return them to me and I will bestow a reward totem upon you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 25266}, 0)) then -- Giant Sack of Supplies + e.self:Say("It's about time the supplies got here. Not like it's a long trip from the center of Kael to us out here. Payment? I already paid Wenglawks for the supplies I ordered. Don't give me any trouble, little one. I have enough trouble with the missing helmets."); + e.other:Faction(e.self,419,5); -- Kromrif + e.other:Faction(e.self,448,1); -- Kromzek + e.other:Faction(e.self,406,-2); -- Coldain + e.other:Faction(e.self,430,-1); -- Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,0,250); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/wakening/Lady_Gelistial.lua b/wakening/Lady_Gelistial.lua new file mode 100644 index 0000000..e4c0e6b --- /dev/null +++ b/wakening/Lady_Gelistial.lua @@ -0,0 +1,11 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("nods towards Pharos and a soft gentle voice whispers in your mind as if carried by the breeze passing through the gentle grove. 'You tread upon the sacred ground of Tunare. I am the Lady Gelistial, baroness of the Tunarean Unicorns. Are you a [friend] of the Tunarean Court?'"); + elseif(e.message:findi("friend")) then + e.self:Say("Be wary of the black unicorns then my friend. All unicorns once inspired dreams and fascination in mortals but the lineage of Lithiniath has been twisted and now inspire delusions and madness. If my duties here were not so pressing I would seek the wisdom of [Prince Thirneg] in finding a cure for the cursed bloodline of Lithiniath."); + elseif(e.message:findi("lithiniath")) then + e.self:Say("Lithiniath was once a proud and noble Unicorn until he stumbled upon the realm of Fizzlethorpe Bristlebane. The lord of mischief twisted the magical nature of Lithiniath. The once noble unicorns fur grew blacker as delusions clouded his mind and madness follows where he treads."); + elseif(e.message:findi("prince")) then + e.self:Say("Prince Thirneg is the ruler of the Tunarean Court. He resides in the Plane of Growth where he is constant contact with the all mother herself."); + end +end diff --git a/wakening/Lieutenant_Krofer.lua b/wakening/Lieutenant_Krofer.lua new file mode 100644 index 0000000..f0872ba --- /dev/null +++ b/wakening/Lieutenant_Krofer.lua @@ -0,0 +1,56 @@ +function event_say(e) + if(e.other:GetFaction(e.self) <= 5 and e.message:findi("hail")) then + e.self:Say("Unless you're the new mercenary reinforcements I suggest you remove yourself from my presence before I decorate the bottom of my boot with your intestines."); + elseif(e.other:GetFaction(e.self) < 5) then + if(e.message:findi("next assignment")) then + e.self:Say("Well, ready or not, this must be done now. Out there in the forest are our enemies. For us to be successful, we must know what they are doing and how they are going about it. Our probing attacks have revealed little so we've decided to send you out to gather any info you can. There must be some sort of messenger out there, bring any info you might find."); + elseif(e.message:findi("prepared")) then + e.self:Say("Very well. We've decided to attack the small Sifaye village northeast of here and I want you to coordinate the attack. I will send you into Kael Drakkel with a request for troop assistance. After the squad is assembled you will lead them to the staging point where you will oversee the battle. Here is the request. Take it to Drioc in the city and return here with the troops."); + e.other:SummonCursorItem(1706); -- Krofer's Requisition + elseif(e.message:findi("reinforcement")) then + e.self:Say("Oh? Well then show me your assignment, " .. e.other:Race() .. "."); + end + elseif(e.other:GetFaction(e.self) == 5) then + if(e.message:findi("next assignment") or e.message:findi("prepared")) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + end + elseif(e.other:GetFaction(e.self) > 5) then + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "Where is the rest, manling?"; + + if(e.other:GetFaction(e.self) <= 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1702}, 0)) then -- Mercenary Assignment + e.self:Say("Drioc sent you? I suppose one can't expect much from a mercenary. Well then, " .. e.other:GetCleanName() .. ", your first assignment will be to clear out some of this forest's annoying populace. Bring me the meat of one of the raptors, the meat of two panthers, and the remains of one of those living puddles of black sludge found in the caves. You will then have your payment."); + e.other:Faction(e.self,448,10); -- Faction: Kromzek + e.other:Faction(e.self,419,2); -- Faction: Kromrif + e.other:Faction(e.self,429,2); -- Faction: King Tormax + e.other:Faction(e.self,430,-5); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,0,0,0,0,0,1000); + elseif(e.other:GetFaction(e.self) <= 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 22851,item2 = 22851,item3 = 22852,item4 = 1703},1,text)) then -- 2x panther meat, raptor meat, Tar Goo Strand + e.self:Say("Well, I suppose you may be worth something more than fodder after all. Here is your payment. Speak to me again when you are ready for your next assignment. For now, get some rest, you will need it."); + e.other:Faction(e.self,448,10); -- Faction: Kromzek + e.other:Faction(e.self,419,2); -- Faction: Kromrif + e.other:Faction(e.self,429,2); -- Faction: King Tormax + e.other:Faction(e.self,430,-5); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,1,7,0,12,0,1000); + elseif(e.other:GetFaction(e.self) < 5 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1704}, 0)) then -- Sifaye messenger's report + e.self:Say("Excellent, " .. e.other:GetCleanName() .. ". With this we can plan an attack that might actually accomplish something. Here is your payment. You have also earned this cloak, it should help protect you from the clawing undergrowth of this savage land. Your next mission will be more complex and dangerous, however we may be able to spare a laborer or two to assist you. Rest now, and tell me when you are prepared."); + e.other:Faction(e.self,448,13); -- Faction: Kromzek + e.other:Faction(e.self,419,3); -- Faction: Kromrif + e.other:Faction(e.self,429,3); -- Faction: King Tormax + e.other:Faction(e.self,430,-6); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,0,5,4,11,1705,1000); -- Velium Studded Cloak + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1707}, 0)) then -- Signed Requisition + e.self:Emote("takes the note and looks it over, then sighs and says, 'This will have to be enough. The squad should be here shortly. When they arrive you will march with them to the staging area near the village of those insect Sifaye. When you are satisfied with the formation, give the corporal the order to attack and observe the battle. After the village is destroyed return this report to me and we'll plan our next move.'"); + e.other:QuestReward(e.self,0,0,0,0,1708,1000); -- Mission Report + eq.unique_spawn(119022,0,0,-4975,-699,-182,63); -- Corporal_Hlash + eq.unique_spawn(119025,0,0,-4954,-697,-182,63); -- Berzerker_Dolvad + eq.unique_spawn(119027,0,0,-4954,-671,-182,63); -- Berzerker_Voldak + eq.unique_spawn(119028,0,0,-4976,-672,-182,63); -- Disciple_Atharm + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/wakening/Ogre_Mercenary.lua b/wakening/Ogre_Mercenary.lua new file mode 100644 index 0000000..f2eacd5 --- /dev/null +++ b/wakening/Ogre_Mercenary.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("This better be good, " .. e.other:Race() .. "! Well? Spit it OUT!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1724}, 0)) then + e.self:Say("It's about time, whelp. Take your payment and leave, you're scaring away my... clients."); + e.other:Faction(e.self,448,3); -- Faction: Kromzek + e.other:Faction(e.self,419,1); -- Faction: Kromrif + e.other:Faction(e.self,429,1); -- Faction: King Tormax + e.other:Faction(e.self,430,-1); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,math.random(10),math.random(10),0,0,0,500); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/wakening/Phenocryst.lua b/wakening/Phenocryst.lua new file mode 100644 index 0000000..cf22451 --- /dev/null +++ b/wakening/Phenocryst.lua @@ -0,0 +1,52 @@ +function event_say(e) + if(e.other:GetFaction(e.self) <= 5) then + if(e.message:findi("hail")) then + e.self:Emote("speaks with a soundless voice, as if you are hearing your own thoughts. 'We sense you are attempting communication with us but do not understand what it is you are trying to convey. We are eager to know more. Perhaps there is one who knows the language of the stone and will speak with us'"); + elseif(e.other:HasItem(1693)) then + if(e.message:findi("help you")) then + e.self:Emote("speaks from within your mind as well as conveys a sense of joy empathically. It is said that the harbringer will find all of our people and unite them. When we join we will know all of our experiences and perhaps then be aware of how to proceed with the next step in our asscention. We implore you to find others like us and make them aware of us. You know the language of the stone and can tell them. We await your return with proof that you have spoken to them."); + end + elseif(e.other:HasItem(1701)) then + if(e.message:findi("find what")) then + e.self:Emote("says in the form of thoughts, We must call to it. We must make ourselves heard past these rocks though. A menhir must be constructed to amplify our voice. The stones we will need are not found in this area though. We hear whispers of stones far away that have the ability to channel and amplify our thoughts. We ask you to gather these stones for us harbinger."); + elseif(e.message:findi("gather")) then + e.self:Emote("thoughts flood your mind, 'Thank you Harbinger. We need 3 crystals. One of Beryl, one of Stibnite, and one of the purest Iron. These minerals will only be found deep within the earth where the geology is relatively stable. This Focus will aid you in finding the right crystals. Return it to me with the 3 crystals and we will construct our Menhir. Please hurry Harbinger, our prophecy awaits."); + e.other:SummonCursorItem(1694); -- Elbaite Focus + e.other:NukeItem(1701); + end + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1692}, 0)) then -- Velium Focus V1 + e.self:Emote("speaks to you from within your mind, You know the stone! This is wonderful! The fullfillment of the prophecy is now one step closer. The most ancient of the stone tells us that one not of stone will come forth and act as our harbringer of asscention. We believe you to be our harbringer. Please help us!"); + e.other:Faction(e.self,458,100); -- Faction: Geonid Collective + e.other:QuestReward(e.self,0,0,0,0,1693); -- Velium Focus V2 + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1701}, 0)) then -- Velium Focus V3 + e.self:Emote("sends it's thoughts to you, a feeling of disappointment washes over you, It seems the others are not aware of themselves yet. We are alone..So many questions yet we can find no answers. We have been given a very special gift but without direction we are lost. We must find who has made us aware of ourselves and why it has done so."); + e.other:Faction(e.self,458,100); -- Faction: Geonid Collective + e.other:QuestReward(e.self,{itemid = 1701}); -- Item: Velium Focus + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1698,item2 = 1699,item3 = 1699,item4 = 1699})) then + e.self:Emote("thoughts become your own, a feeling of joy overwhelms you, 'Because of you we can at last speak with our maker. We were once given a gift, and we ask that you accept this gift from us now so that we may come closer to that which we owe our sentience to. Now. ,we must construct the Menhir."); + e.other:Faction(e.self,458,100); -- Faction: Geonid Collective + e.other:QuestReward(e.self,0,0,0,0,1700); -- Phenocryst's Focus + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1694,item2 = 1695,item3 = 1697,item4 = 1696})) then -- Elbaite Focus, The Reddish Crystal, Heavy Metal Crystal, Bent Metallic Crystal + e.self:Emote("makes no sound but it's voice fills your mind. We have always held our memories within the earth and stone but only recently have we become aware of them. We do not know what happened or who gave us this wonderful gift but we can now access those memories and are aware of it's storage. With that knowledge has come questions and desires. When the prophecy comes to be then we will have our answers and fulfill our desires."); + e.other:Faction(e.self,458,100); -- Faction: Geonid Collective + e.other:QuestReward(e.self,0,0,0,0,1698); -- Azurite Focus + eq.spawn2(119032,0,0,408.10, -690.21, -201.55,187); -- accolyte of Zek A + eq.spawn2(119032,0,0,-564.04, -985.80, -191.31,187); -- accolyte of Zek B + eq.spawn2(119034,0,0,303.02, 254.44, -201.54,187); -- Bloodpriest Ioukond C + e.self:Emote("familiar thoughts flood into your mind again, You truly are the Harbinger, take this Focus as a mark of your friendship with us. Now we can construct the Menhir, we need .. the stones speak.. , There is a problem. Ones of flesh are coming, the large ones, 3 of them. They must not disturb us while we construct the Menhir! Please stop them Harbinger! bring us proof of their distruction along with your Focus and then we will begin the calling. Our asscention is at hand!"); + eq.set_timer("depop",3600000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.depop(119034); + eq.depop_all(119032); +end diff --git a/wakening/Rolandal.lua b/wakening/Rolandal.lua new file mode 100644 index 0000000..16e564d --- /dev/null +++ b/wakening/Rolandal.lua @@ -0,0 +1,52 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("Greetings, Traveler. I do not receive many visitors to my quarters here, besides the occasional unfortunate treasure seeker that often will make for a good snack."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("kardakor")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("You are sent from Kardakor are you? Well surely he must have sent you to stand before me for a reason."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("talisman")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("Ah of course, It has been quite a long time sense my powers of identification have been requested. If you are sent from Kardakor then your intent must be well directed. I do have a favor to ask of you before I identify your talisman. I seek some rare treasures to further some studies that I have been working on for a long time."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("rare treasure")) then + if(e.other:GetFactionValue(e.self) >= 750) then + e.self:Say("There are 3 items that I seek to continue my studies of some various and musterious magics. Bring to me the teachings of a high ranking Kromzek that I hear goes by the name of Gkrean, a chipped fang from a beast deep within the Cursed Necropolis. Also for good measure, I require the Head of a Kromzek Staff Sergeant to prove to your dedication to our cause. Present these 3 items to me along with your Talisman that you wish to learn more about and I shall do my best to identify its origin for you."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 750 and (item_lib.check_turn_in(e.self, e.trade, {item1 = 1861,item2 = 1864,item3 = 1865,item4 = 1863}, 0) or item_lib.check_turn_in(e.self, e.trade, {item1 = 1864,item2 = 1865,item3 = 1863}))) then + e.self:Say("So you finally made it ! Head back to Ralgyn to get your reward."); + e.other:Faction(e.self,430,50); -- Faction: Claws of Veeshan + e.other:Faction(e.self,436,12); -- Faction: Yelinak + e.other:Faction(e.self,448,-25); -- Faction: Kromzek + e.other:QuestReward(e.self,0,0,0,0,1866,10000); + eq.depop_with_timer(); + elseif(e.other:GetFactionValue(e.self) >= 500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 1861}, 0)) then + e.self:Say("It would be my guess that you present this to me in hopes of finding out more about the magics it possesses. Before I can do this I require some rare treasures that you must present to me."); + e.other:QuestReward(e.self,0,0,0,0,1861); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/wakening/Shamus_Aghllsews.lua b/wakening/Shamus_Aghllsews.lua new file mode 100644 index 0000000..b70b1f8 --- /dev/null +++ b/wakening/Shamus_Aghllsews.lua @@ -0,0 +1,38 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Welcome to my fiefdom, wayward " .. e.other:Race() .. ". I am Duke Shamus Aghllsews of the Tunarean Court. Only those who pledge friendship or membership to the Court are allowed sanctuary in the Wakening Lands."); + elseif(e.message:findi("pledge friendship")) then + e.self:Say("You must first prove your intentions to the Tunarean Court. I will permit you to participate in an oath of friendship only after you bring me four picks used by the Kromrif Laborers that are attempting to build into our lands."); + elseif(e.message:findi("court")) then + e.self:Say("The Tunarean Court is the name of the hierarchy of Tunares children that inhabit this region of Norrath. We adhere to the old ways of governing our peoples. The Koada'Dal and Feir'Dal have strayed from the old ways since the fall of Takish Hiz and the burning of their once great forest kingdom that has since become the deserts of Ro. As Duke of this court I am the highest ranking Tunarean outside the Plane of Growth."); + end +end + + + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 =30220,item2 =30220,item3 =30220,item4 =30220}, 0)) then + e.self:Emote("grips your hand in his own and recites an oath in an ancient tongue. 'Should you ever seek membership in this court you are required to receive the support of its counts, countesses, barons, and baronesses. Should they deem you worthy you may present their crests to me and with my approval become a citizen of our kingdom. The Kromrif and Kromzek are persistent in their efforts to expand Kael into the forest of Tunare, they are a threat to all houses of the Tunarean Court. A Kromzek architect occasionally visits the building sites. I desire to acquire his blueprints for the expansion of Kael.'"); + e.other:Faction(e.self,449,20); -- tunarean court + if(e.other:HasItem(17865)) then + e.other:QuestReward(e.self,0,0,0,0,0,3500); + else + e.other:QuestReward(e.self,0,0,0,0,17865,3500); + end + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 =30222}, 0)) then + e.self:Say("You have my gratitude, " .. e.other:GetCleanName() .. ". With these blueprints we can better prepare the forests defenses against the giant invaders. I have yet another favor to ask of you as well. Fill this empty bag with crystallized sulfur. When mixed with the crushed herbs in the other bag it will create an explosion strong enough to destroy stone. Take the two full bags into Kael Drakkel and plant it into a crate of the kromzeks building supplies."); + e.other:Faction(e.self,449,30); -- tunarean court + e.other:QuestReward(e.self,{items = {17862,24860},exp = 3500}); -- empty sulfur collection bag, pouch of herbs + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 22855}, 0)) then + e.self:Say("You have proven yourself to the Fauns of the Tunarean Court. The destruction of the Kromzeks building supplies will slow their progress for some time."); + e.other:Faction(e.self,449,20); -- tunarean court + e.other:QuestReward(e.self,0,0,0,0,24865,3500); -- crest of the fauns + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1095}, 0)) then + e.self:Say("Welcome to the Tunarean Court, Thane " .. e.other:GetCleanName() .. "! Here is a signet ring to wear in honor of your status among the Tunareans."); + e.other:Faction(e.self,449,50); -- tunarean court + e.other:QuestReward(e.self,0,0,0,0,8950,5000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/wakening/Teir-Dal_Mercenary.lua b/wakening/Teir-Dal_Mercenary.lua new file mode 100644 index 0000000..f2eacd5 --- /dev/null +++ b/wakening/Teir-Dal_Mercenary.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("This better be good, " .. e.other:Race() .. "! Well? Spit it OUT!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1724}, 0)) then + e.self:Say("It's about time, whelp. Take your payment and leave, you're scaring away my... clients."); + e.other:Faction(e.self,448,3); -- Faction: Kromzek + e.other:Faction(e.self,419,1); -- Faction: Kromrif + e.other:Faction(e.self,429,1); -- Faction: King Tormax + e.other:Faction(e.self,430,-1); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,math.random(10),math.random(10),0,0,0,500); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/wakening/Tomekeeper_Bjordnessin.lua b/wakening/Tomekeeper_Bjordnessin.lua new file mode 100644 index 0000000..8076d39 --- /dev/null +++ b/wakening/Tomekeeper_Bjordnessin.lua @@ -0,0 +1,21 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, weak one. What brings you to me? Are you just here to disturb me or do you have a question? Speak! You are using the King's time now, so spit it out... I have books that weigh more than you!"); + elseif(e.message:findi("herb that harms dragon")) then + e.self:Say("An herb that harms dragons, you say? I do believe that I know of such a thing. I am a Tomekeeper after all... and we are very, very... um, very wise. The giant's brow furrows a bit as he thinks hard. 'Are you speaking of the dragonbane plant?' The giant asks."); + elseif(e.message:findi("dragonbane")) then + e.self:Say("The giant's face reddens as it shifts to a scowl. 'How did you hear about the existence of such an herb? Who sent you?', the giant growls."); + elseif(e.message:findi("sage")) then + e.self:Say("You say the Dragon Sage sent you, wretch? You have come here to mock me with a thousand year old legend? How do you plan to prove this absur... err... wild claim? It may be best that you show me some proof now, before I crush you!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1782}, 0)) then -- a Giant Loyalist Token + e.self:Say("Amazing! Simply Amazing! The legends must be true! This item was said to have been given to the Dragon Sage as a sign of friendship and trust, but I have always considered it to be legend. The discovery of this artifact will work wonders for my status! I have discovered a legend! Oh... Oh yes. You sought information on that herb. Take this back to the sage. Maybe he can decipher it."); + e.other:QuestReward(e.self,0,0,0,0,1783); -- Giant Scalebound Tome + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/wakening/Troll_Mercenary.lua b/wakening/Troll_Mercenary.lua new file mode 100644 index 0000000..f2eacd5 --- /dev/null +++ b/wakening/Troll_Mercenary.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("This better be good, " .. e.other:Race() .. "! Well? Spit it OUT!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1724}, 0)) then + e.self:Say("It's about time, whelp. Take your payment and leave, you're scaring away my... clients."); + e.other:Faction(e.self,448,3); -- Faction: Kromzek + e.other:Faction(e.self,419,1); -- Faction: Kromrif + e.other:Faction(e.self,429,1); -- Faction: King Tormax + e.other:Faction(e.self,430,-1); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,math.random(10),math.random(10),0,0,0,500); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/wakening/Wuoshi.lua b/wakening/Wuoshi.lua new file mode 100644 index 0000000..82ca9e9 --- /dev/null +++ b/wakening/Wuoshi.lua @@ -0,0 +1,11 @@ +function event_signal(e) + if ( e.signal == 1 ) then + e.self:Shout("The Sleeper has been awakened! Shun the Skyshrine if you value your lives, for he shall be here soon!"); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I hope for your sake that you are no friend of the Kromrif or Kromzek and no enemy of the Tunarean Court."); + end +end \ No newline at end of file diff --git a/wakening/a_faun.lua b/wakening/a_faun.lua new file mode 100644 index 0000000..612dcdb --- /dev/null +++ b/wakening/a_faun.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("The rustling of the leaves tells the tale of your passing. Watch your step lest you break the twig that sings the sad tale of your demise. Share in our spirits and rejoice in the land of Tunare, Mother of All."); + end +end \ No newline at end of file diff --git a/wakening/a_faun_outcast.lua b/wakening/a_faun_outcast.lua new file mode 100644 index 0000000..612dcdb --- /dev/null +++ b/wakening/a_faun_outcast.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("The rustling of the leaves tells the tale of your passing. Watch your step lest you break the twig that sings the sad tale of your demise. Share in our spirits and rejoice in the land of Tunare, Mother of All."); + end +end \ No newline at end of file diff --git a/wakening/a_faun_steward.lua b/wakening/a_faun_steward.lua new file mode 100644 index 0000000..612dcdb --- /dev/null +++ b/wakening/a_faun_steward.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("The rustling of the leaves tells the tale of your passing. Watch your step lest you break the twig that sings the sad tale of your demise. Share in our spirits and rejoice in the land of Tunare, Mother of All."); + end +end \ No newline at end of file diff --git a/wakening/a_frost_giant_laborer.lua b/wakening/a_frost_giant_laborer.lua new file mode 100644 index 0000000..ea26345 --- /dev/null +++ b/wakening/a_frost_giant_laborer.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Leave us to our work, small one, your diminutive frame would be crushed beneath the weight of our building stones."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + elseif(e.message:findi("build")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("King Tormax desires to expand his mighty city into these lands, nothing shall stand in the way of the king!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/wakening/a_frost_giant_sentinel.lua b/wakening/a_frost_giant_sentinel.lua new file mode 100644 index 0000000..a910856 --- /dev/null +++ b/wakening/a_frost_giant_sentinel.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("I have not the time to speak with an insignificant creature such as yourself. Tunare's minions and the very forest itself are a constant threat to the gates of mighty Kael Drakkel."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/wakening/a_storm_giant_escort.lua b/wakening/a_storm_giant_escort.lua new file mode 100644 index 0000000..ff6d59b --- /dev/null +++ b/wakening/a_storm_giant_escort.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= -100) then + e.self:Say("Keep your distance unless you are here on official business! Display your intent or be destroyed!"); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.")); + end + end +end diff --git a/wakening/a_tar_goo.lua b/wakening/a_tar_goo.lua new file mode 100644 index 0000000..a8c34f7 --- /dev/null +++ b/wakening/a_tar_goo.lua @@ -0,0 +1,4 @@ +function event_death_complete(e) + eq.spawn2(119035,0,0,e.self:GetX()+5,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.spawn2(119035,0,0,e.self:GetX()-5,e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); +end diff --git a/wakening/a_tigeraptor.lua b/wakening/a_tigeraptor.lua new file mode 100644 index 0000000..b60c71a --- /dev/null +++ b/wakening/a_tigeraptor.lua @@ -0,0 +1,5 @@ +function event_combat(e) + if(e.joined) then + e.self:Emote("pounces on " .. e.other:GetCleanName() .. " in a flurry of deadly claws and teeth."); + end +end diff --git a/wakening/a_tigesaurous.lua b/wakening/a_tigesaurous.lua new file mode 100644 index 0000000..b60c71a --- /dev/null +++ b/wakening/a_tigesaurous.lua @@ -0,0 +1,5 @@ +function event_combat(e) + if(e.joined) then + e.self:Emote("pounces on " .. e.other:GetCleanName() .. " in a flurry of deadly claws and teeth."); + end +end diff --git a/wakening/a_troll_mercenary.lua b/wakening/a_troll_mercenary.lua new file mode 100644 index 0000000..f2eacd5 --- /dev/null +++ b/wakening/a_troll_mercenary.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("This better be good, " .. e.other:Race() .. "! Well? Spit it OUT!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1724}, 0)) then + e.self:Say("It's about time, whelp. Take your payment and leave, you're scaring away my... clients."); + e.other:Faction(e.self,448,3); -- Faction: Kromzek + e.other:Faction(e.self,419,1); -- Faction: Kromrif + e.other:Faction(e.self,429,1); -- Faction: King Tormax + e.other:Faction(e.self,430,-1); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,math.random(10),math.random(10),0,0,0,500); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/wakening/a_wood_nymph.lua b/wakening/a_wood_nymph.lua new file mode 100644 index 0000000..27692cd --- /dev/null +++ b/wakening/a_wood_nymph.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("smiles and giggles timidly at " .. e.other:GetCleanName() .. ". I've heard the fauns sing tales of " .. e.other:Race() .. " before."); + end +end \ No newline at end of file diff --git a/wakening/barbarian_mercenary.lua b/wakening/barbarian_mercenary.lua new file mode 100644 index 0000000..f2eacd5 --- /dev/null +++ b/wakening/barbarian_mercenary.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("This better be good, " .. e.other:Race() .. "! Well? Spit it OUT!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1724}, 0)) then + e.self:Say("It's about time, whelp. Take your payment and leave, you're scaring away my... clients."); + e.other:Faction(e.self,448,3); -- Faction: Kromzek + e.other:Faction(e.self,419,1); -- Faction: Kromrif + e.other:Faction(e.self,429,1); -- Faction: King Tormax + e.other:Faction(e.self,430,-1); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,math.random(10),math.random(10),0,0,0,500); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/wakening/encounters/reinforcement.lua b/wakening/encounters/reinforcement.lua new file mode 100644 index 0000000..e809ba8 --- /dev/null +++ b/wakening/encounters/reinforcement.lua @@ -0,0 +1,77 @@ +function CorporalSpawn(e) + eq.set_timer("onset",60000); +end + +function BerzDolSpawn(e) + eq.set_timer("onset",55000); +end + +function BerzVolSpawn(e) + eq.set_timer("onset",58000); +end + +function CorporalTimer(e) + if(e.timer == "onset")then + e.self:CastToNPC():MoveTo(-4341,-748,-183,-1,true); + eq.stop_timer("onset"); + eq.set_timer("readygo",90000); + elseif(e.timer == "readygo" and e.self:GetX() ==-4341 and e.self:GetY() ==-748) then + e.self:Say("Onward men, the eyes of Zek are upon us."); + eq.stop_timer("readygo"); + e.self:CastToNPC():AssignWaypoints(23); + eq.get_entity_list():GetMobByNpcTypeID(119025):CastToNPC():AssignWaypoints(25); + eq.get_entity_list():GetMobByNpcTypeID(119027):CastToNPC():AssignWaypoints(24); + eq.get_entity_list():GetMobByNpcTypeID(119028):CastToNPC():AssignWaypoints(22); + end +end + +function BerzDolTimer(e) + e.self:CastToNPC():MoveTo(-4310,-741,-183,-1,true); + eq.stop_timer("onset"); +end + +function BerzVolTimer(e) + e.self:CastToNPC():MoveTo(-4311,-720,-183,-1,true); + eq.stop_timer("onset"); +end + +function CorporalWayPoint(e) + if(e.wp == 5) then + e.self:Say("Hold here squad"); + end +end + +function CorporalSay(e) + if(e.message:findi("troop attack") and e.self:GetX() ==-225 and e.self:GetY() ==1725) then + eq.depop_with_timer(119050); + eq.unique_spawn(119030,0,0,-4457,-1288,-115,9); -- NPC: #Lieutenant_Krofer + e.self:Shout("Destroy them!!"); + eq.get_entity_list():GetMobByNpcTypeID(119045):Emote(", all around the Sifaye village, several beings phase into reality. Their eyes glow with the golden light of divinity, obviously sent from a higher plane of existence. The Kromzek assault squad is surely doomed. You decided to withdraw and report what you have found, perhaps the Lieutenant will understand."); + eq.get_entity_list():GetMobByNpcTypeID(119027):Say("Woah! we're being ambushed!!"); + eq.spawn2(119029,0,0,-146,1703,-192,187):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(eq.ChooseRandom(119022,119025,119027,119028)),1); -- a_sifaye_defender + eq.spawn2(119029,0,0,-149,1731,-192,187):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(eq.ChooseRandom(119022,119025,119027,119028)),1); -- a_sifaye_defender + eq.spawn2(119029,0,0,-162,1738,-192,187):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(eq.ChooseRandom(119022,119025,119027,119028)),1); -- a_sifaye_defender + eq.spawn2(119029,0,0,-172,1758,-192,182):AddToHateList(eq.get_entity_list():GetMobByNpcTypeID(eq.ChooseRandom(119022,119025,119027,119028)),1); -- a_sifaye_defender + end +end + +function DefenderSpawn(e) + eq.set_timer("depop",300000); +end + +function DefenderTimer(e) + eq.depop(); +end + +function event_encounter_load(e) + eq.register_npc_event("reinforcement", Event.spawn, 119022, CorporalSpawn); + eq.register_npc_event("reinforcement", Event.spawn, 119025, BerzDolSpawn); + eq.register_npc_event("reinforcement", Event.spawn, 119027, BerzVolSpawn); + eq.register_npc_event("reinforcement", Event.timer, 119022, CorporalTimer); + eq.register_npc_event("reinforcement", Event.timer, 119025, BerzDolTimer); + eq.register_npc_event("reinforcement", Event.timer, 119027, BerzVolTimer); + eq.register_npc_event("reinforcement", Event.waypoint_arrive, 119022, CorporalWayPoint); + eq.register_npc_event("reinforcement", Event.say, 119022, CorporalSay); + eq.register_npc_event("reinforcement", Event.spawn, 119029, DefenderSpawn); + eq.register_npc_event("reinforcement", Event.timer, 119029, DefenderTimer); +end diff --git a/wakening/human_mercenary.lua b/wakening/human_mercenary.lua new file mode 100644 index 0000000..f2eacd5 --- /dev/null +++ b/wakening/human_mercenary.lua @@ -0,0 +1,20 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("This better be good, " .. e.other:Race() .. "! Well? Spit it OUT!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1724}, 0)) then + e.self:Say("It's about time, whelp. Take your payment and leave, you're scaring away my... clients."); + e.other:Faction(e.self,448,3); -- Faction: Kromzek + e.other:Faction(e.self,419,1); -- Faction: Kromrif + e.other:Faction(e.self,429,1); -- Faction: King Tormax + e.other:Faction(e.self,430,-1); -- Faction: Claws of Veeshan + e.other:QuestReward(e.self,math.random(10),math.random(10),0,0,0,500); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/wakening/mist_panther.lua b/wakening/mist_panther.lua new file mode 100644 index 0000000..8e5de75 --- /dev/null +++ b/wakening/mist_panther.lua @@ -0,0 +1,15 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("roars at you and goes back to cleaning itself. A gleam of hunger flashes in its eyes."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 30066,item2 = 30066,item3 = 30066,item4 = 30066}, 0)) then -- Fresh Chunk of Wooly Rhino 4x + e.self:Emote("jumps at you and snatches the meat from your hand. It runs away from you and feasts on the other side of the water. As it runs away you notice a small shiny object fall from its mouth."); + e.other:QuestReward(e.self,0,0,0,0,30057); -- Golden Broken Key + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/wakening/script_init.lua b/wakening/script_init.lua new file mode 100644 index 0000000..1e9cf8e --- /dev/null +++ b/wakening/script_init.lua @@ -0,0 +1 @@ +eq.load_encounter("reinforcement"); diff --git a/warrens/Aderius_Rhenar.lua b/warrens/Aderius_Rhenar.lua new file mode 100644 index 0000000..5fa2fa0 --- /dev/null +++ b/warrens/Aderius_Rhenar.lua @@ -0,0 +1,10 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail, " .. e.other:GetCleanName() .. ", I am Aderius Rhenar, priest of Quellious and assistant to Lady Laraena. I have been fortunate to be imprisoned here with these Kejekan cat men, they are a very wise people. Are you planning on returning to Erudin soon my friend?"); + elseif(e.message:findi("erudin") or e.message:findi("yes")) then + e.self:Say("I have managed to prepare a message on this scrap of cloth for the priestess Laraena. It is a matter of great importance to the High Council of Erudin. Please deliver this message to her promptly. I must stay here for a while longer and converse further with my Kejekan friends."); + e.other:SummonCursorItem(2049); -- Item: rolled up strip of cloth + end +end + +-- END of FILE Zone:warrens ID:101087 -- Aderius_Rhenar \ No newline at end of file diff --git a/warrens/Koajin.lua b/warrens/Koajin.lua new file mode 100644 index 0000000..6afd081 --- /dev/null +++ b/warrens/Koajin.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("slowly looks up at you, his eyes glazed in exhaustion. Obviously the kobolds have worked him near to the point of death. You notice he is strong and his paws are scarred here and there. He must be some sort of craftsman. After gazing at you a few moments he realizes you are not a kobold and says, 'Hurry and leave this place, " .. e.other:Race() .. ". Or you'll end up sharing this cell with us and wishing death upon yourself' "); + elseif(e.message:findi("help")) then + e.self:Say("You need my help to build one? I can help you, but I'll need my tools first. Then maybe when I have my tools I can break out of this rusty cage and run. My tools were taken when they first captured me. They used to force me to use them, show them our craft. I showed them what I could, fearing death, but I haven't seen them since. If you can find them, bring them here along with a suitable plate of metal and a sketch of the tsuba's design. Then I'll see what I can do."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 17062,item2 = 2057,item3 = 2059})) then -- Kejekan Tool Kit, Mandala Sketch, Chronium Plate + e.self:Emote("takes the tools, plate, and sketch wearily and begins carving the tsuba. It takes him many hours to finish it but the wait is worth it. The tsuba is beautifully crafted, matching the complicated sketch perfectly. Koajin says, 'There you go, " .. e.other:GetCleanName() .. ". It's a wonderful piece. I have no idea what the diagram is for, but it was a pleasure to craft it. Now if I can get myself out of here."); + e.other:QuestReward(e.self,0,0,0,0,2055,5000); -- Finished Tsuba + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/warrens/a_captured_erudite.lua b/warrens/a_captured_erudite.lua new file mode 100644 index 0000000..5f493f1 --- /dev/null +++ b/warrens/a_captured_erudite.lua @@ -0,0 +1,16 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("bats her eye lashes seductively. 'I would be immensely pleased if someone would free me from these shackles.'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6923})) then + e.self:Say("I say we round up the Furballs AND the Dog Faces and let them kill each other off! Then we can easily finish off the survivors"); + e.other:QuestReward(e.self,0,0,0,0,0,1000); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/warrens/a_captured_kerran.lua b/warrens/a_captured_kerran.lua new file mode 100644 index 0000000..3d533e5 --- /dev/null +++ b/warrens/a_captured_kerran.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("My spirrrit witherrrrs herrre in this dank, stinking, flea infested hole! I must be set frrree frrrom these shackles!!"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6923})) then + e.self:Say("I thank you for freeing me from my dog faced captors."); + e.other:QuestReward(e.self,0,0,0,0,0,1000); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone:warrens ID:101085 -- a_captured_kerran \ No newline at end of file diff --git a/warrens/a_rabid_kobold.lua b/warrens/a_rabid_kobold.lua new file mode 100644 index 0000000..58c389d --- /dev/null +++ b/warrens/a_rabid_kobold.lua @@ -0,0 +1,9 @@ +function event_death_complete(e) + local spawna = eq.unique_spawn(101006,0,0,-866,713,-33,260); -- NPC: a_kobold_master_blacksmith + local spawnb = eq.unique_spawn(101006,0,0,-473,577,-74,200); -- NPC: a_kobold_master_blacksmith + local spawnc = eq.unique_spawn(101006,0,0,-1019,506,-78,60); -- NPC: a_kobold_master_blacksmith + + if(math.random(100) < 5) then + RandomSpawn = eq.ChooseRandom(spawna,spawnb,spawnc); + end +end \ No newline at end of file diff --git a/warrens/an_erudite_prisoner.lua b/warrens/an_erudite_prisoner.lua new file mode 100644 index 0000000..f4b596e --- /dev/null +++ b/warrens/an_erudite_prisoner.lua @@ -0,0 +1,17 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("angrily rattles his shackles. 'Damned Kobolds!! Some day I will return and these filthy warrens will be littered with their dog faced corpses! You wouldn't happen to have a key for these shackles would you?'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6923})) then + e.self:Say("I thank you for freeing me from my dog faced captors!!"); + e.other:QuestReward(e.self,0,0,0,0,0,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- END of FILE Zone: warrens ID:101068 -- an_erudite_prisoner \ No newline at end of file diff --git a/warrens/river_source.lua b/warrens/river_source.lua new file mode 100644 index 0000000..568979d --- /dev/null +++ b/warrens/river_source.lua @@ -0,0 +1,8 @@ +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1799})) then -- Harbinger of Bertoxxulous + e.other:QuestReward(e.self,0,0,0,0,1892,1000); -- Empty Jar + end + item_lib.return_items(e.self, e.other, e.trade) +end \ No newline at end of file diff --git a/warslikswood/Captain_Gideen.lua b/warslikswood/Captain_Gideen.lua new file mode 100644 index 0000000..a1aae79 --- /dev/null +++ b/warslikswood/Captain_Gideen.lua @@ -0,0 +1,30 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I hope you have come to assist in the defense of the gate. We have had numerous assaults by the goblins. No doubt it is due to those [goblin watchers]."); + elseif(e.message:findi("goblin watchers")) then + e.self:Say("Goblin Watchers are rumored to be the communication link between goblin outposts and patrols. We have found Goblin Watcher Signal Torches on a few of them. You bring me back no less than three and I will reward you."); + end +end + +function event_trade(e) + local item_lib = require("items"); + --Handin: 3x Watcher Signal Torch (12441) + if(e.other:GetFaction(e.self) < 6) then + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12441, item2 = 12441, item3 = 12441})) then + e.self:Say("Good work, " .. e.other:GetCleanName() .. ". You are on your way to becoming a respected ally of the Iksar Empire. Keep up the good work. Take this reward for a job well done."); + e.other:Faction(e.self,441,3); -- +Legion of Cabilis + e.other:Faction(e.self,440,1); -- +Cabilis Residents + e.other:Faction(e.self,445,1); -- +Scaled Mystics + e.other:Faction(e.self,442,1); -- +Crusaders of Greenmist + e.other:Faction(e.self,444,1); -- +Swifttails + e.other:QuestReward(e.self,0,math.random(5),0,0,12357,10); + end + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Scripted By: Fatty Beerbelly +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/warslikswood/Ssolet_Dnaas.lua b/warslikswood/Ssolet_Dnaas.lua new file mode 100644 index 0000000..1eb6ac5 --- /dev/null +++ b/warslikswood/Ssolet_Dnaas.lua @@ -0,0 +1,23 @@ +-- Part of quest for Veeshan's Peak key +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetingss, " .. e.other:GetCleanName() .. ". Unlesss you bring closssure to my ssearch, leave me while I contemplate thingss."); + elseif(e.message:findi("search")) then + e.self:Say("My sssearch. I have been ssent out by my massster to find an item. A burnished wooden sstaff. I know not why and I do not quessstion. I know not where thiss item is found. I musst have one though. Ssssss. If you can find one for me I will give you a trinket."); + end +end + +function event_trade(e) + local item_lib = require("items"); + if(e.other:GetFactionValue(e.self) >= -500 and item_lib.check_turn_in(e.self, e.trade, {item1 = 6353})) then + e.self:Say("Sssss. Thisss is what I need. You have my thanksss. Please, take thiss. I know not what it iss for but maybe you will find a ussse for it."); + e.other:QuestReward(e.self,0,0,0,0,19958,1000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +-- Quest by mystic414 +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/warslikswood/Trooper_Agash.lua b/warslikswood/Trooper_Agash.lua new file mode 100644 index 0000000..d095304 --- /dev/null +++ b/warslikswood/Trooper_Agash.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("sneers at you. 'You watch your step in these woods, broodling. We troopers don't have time to protect all you broodlings from giants and goblins."); + end +end \ No newline at end of file diff --git a/warslikswood/Trooper_Gepwyz.lua b/warslikswood/Trooper_Gepwyz.lua new file mode 100644 index 0000000..822b4da --- /dev/null +++ b/warslikswood/Trooper_Gepwyz.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Among the denizens of the woods there has been babble regarding the crypt of Dalnir. Dalnir was an old Haggle Baron. I am sure there will be many crypt raiders searching for its entrance."); + end +end \ No newline at end of file diff --git a/warslikswood/Trooper_Kroniz.lua b/warslikswood/Trooper_Kroniz.lua new file mode 100644 index 0000000..0979540 --- /dev/null +++ b/warslikswood/Trooper_Kroniz.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I wish I were not committed to this post. I have heard of a great weapon which was made to battle the wurms, a Dragonslayer, if you will. This cannot be mere babble. It surely must exist. With such a weapon I could retake Sebilis from the claws of the wurm."); + end +end \ No newline at end of file diff --git a/warslikswood/Trooper_Lunmiz.lua b/warslikswood/Trooper_Lunmiz.lua new file mode 100644 index 0000000..8049630 --- /dev/null +++ b/warslikswood/Trooper_Lunmiz.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Warsliks Woods is a place best left to the goblins and giants. We have not been able to assault them both in this terrain."); + end +end \ No newline at end of file diff --git a/warslikswood/Trooper_Melzok.lua b/warslikswood/Trooper_Melzok.lua new file mode 100644 index 0000000..977c903 --- /dev/null +++ b/warslikswood/Trooper_Melzok.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Back to Cabilis with you! You won't fare well in these parts. If you are just a broodling, stay close to the gate so we can protect you."); + end +end \ No newline at end of file diff --git a/warslikswood/Trooper_Olon.lua b/warslikswood/Trooper_Olon.lua new file mode 100644 index 0000000..7fc710e --- /dev/null +++ b/warslikswood/Trooper_Olon.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Keep an eye out on all fronts if you plan on venturing into the woods. The Kromdul are said to have an outpost built there."); + end +end \ No newline at end of file diff --git a/warslikswood/Trooper_Roklon.lua b/warslikswood/Trooper_Roklon.lua new file mode 100644 index 0000000..17b2424 --- /dev/null +++ b/warslikswood/Trooper_Roklon.lua @@ -0,0 +1,18 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Hail! Beware the giants of the woods. They have a dwelling somewhere out there. Should you stumble upon it, run! Leave the fighting to us."); + elseif(e.message:findi("sign the restraining order")) then + e.self:Say("I've been ratted out! Very well. I shall sign the order, but first I shall force you to fetch me a set of goblin scout beads. I hear they make fine counters. Bring me the beads and that despicable order and I shall do as instructed."); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "No, NO! I want the goblin scout beads and the legion order."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18247, item2 = 12672},1,text)) then --Legion Order (7 signed), Goblin Scout Beads + e.self:Say("No, NO! I want the goblin scout beads and the legion order."); + e.other:QuestReward(e.self,0,0,0,0,18248,500); --Legion Order (8 signed) + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/warslikswood/Trooper_Syldon.lua b/warslikswood/Trooper_Syldon.lua new file mode 100644 index 0000000..d267992 --- /dev/null +++ b/warslikswood/Trooper_Syldon.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Be very careful if you plan on traveling the roads of Warsliks Woods. The goblins and Kromdul have been assaulting travelers."); + end +end \ No newline at end of file diff --git a/warslikswood/Trooper_Walrun.lua b/warslikswood/Trooper_Walrun.lua new file mode 100644 index 0000000..f265c0c --- /dev/null +++ b/warslikswood/Trooper_Walrun.lua @@ -0,0 +1,5 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("I once bested a Kromdul and found I could use his wristband as a fine belt. Of course, I had to alter it a bit."); + end +end \ No newline at end of file diff --git a/warslikswood/Warlord_Vyzer.lua b/warslikswood/Warlord_Vyzer.lua new file mode 100644 index 0000000..694da6c --- /dev/null +++ b/warslikswood/Warlord_Vyzer.lua @@ -0,0 +1,40 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings, small one! You should not waste your time in the safety of the troopers' patrols. Go forth into the land and earn your stripes in battle. Become a greater asset to the Iksar empire."); + elseif(e.message:findi("thieves")) then + e.self:Say("Never mind how the book was taken, just go find the goblin thieves that did the deed."); --not live text + elseif(e.message:findi("trooper reporting for duty")) then + e.self:Say("Welcome to my garrison, Trooper " .. e.other:GetCleanName() .. ". Lucky for you that you do not serve the inferior swamp garrison. They lose more troopers than any legion unit. You have come just in time. We need you to take this pack and fill it with goblin warlord warbeads. Combine the beads in the pack and return it to me."); + e.other:SummonCursorItem(17042); -- Item: Woods Garrison Pack + end +end + +function event_trade(e) + local item_lib = require("items"); + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 18210})) then + e.self:Say("I am glad to see they have sent a strong new recruit. I have a task for you which will require you to recover a few pages of a certain poem I once wrote. I never should have written of such weak-minded things, but the pages were stolen from me before I could destroy them. Take this poem binder and find the [thieves]. When you combine the pages in the binder, it will magically lock and you may return it to me for your prize, the geozite tool."); + e.other:QuestReward(e.self,0,0,0,0,17995); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12667})) then + e.self:Say("Great work!! You have saved me from disgrace. I reward you with the geozite tool. You may find its purpose within Cabils' warriors guild. A true Iksar warrior should always have one."); + e.other:Faction(e.self,440,5); -- Faction: Cabilis Residents + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:Faction(e.self,445,1); -- Faction: Scaled Mystics + e.other:Faction(e.self,444,1); -- Faction: Swift Tails + e.other:Faction(e.self,442,1); -- Faction: Crusaders of Greenmist + e.other:QuestReward(e.self,0,0,1,0,12657,1000); + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 12912})) then + e.self:Say("Great job, Trooper " .. e.other:GetCleanName() .. ". Such a warrior would serve the empire better as a legionnaire and not a trooper. I shall recommend you for the rank of legionnaire."); + e.other:Faction(e.self,440,2); -- Faction: Cabilis Residents + e.other:Faction(e.self,441,2); -- Faction: Legion of Cabilis + e.other:Faction(e.self,445,2); -- Faction: Scaled Mystics + e.other:Faction(e.self,444,2); -- Faction: Swift Tails + e.other:Faction(e.self,442,2); -- Faction: Crusaders of Greenmist + e.other:QuestReward(e.self,0,0,0,0,18072,2000); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/warslikswood/a_shady_goblin.lua b/warslikswood/a_shady_goblin.lua new file mode 100644 index 0000000..9a7ef14 --- /dev/null +++ b/warslikswood/a_shady_goblin.lua @@ -0,0 +1,24 @@ +-- a Shady Goblin, Warsliks Woods +-- Second part of the chardok quest, initiated by Herald Telcha +-- Regal Band of Bathezid + +function event_say(e) + if(e.other:HasItem(5728)) then -- we handed the Signet of Service yet + if(e.message:findi("hail")) then + e.self:Say("If yer not my contact ya best be movin' on. Got no time to waste on ya."); + elseif(e.message:findi("contact")) then + e.self:Say("Are ya? Hum, let me see yer insignia then, and the note Skargus gave ya."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 6475, item2 = 6471})) then -- forged note & Drogan Warlord's Insignia + e.self:Emote("gapes at the note in puzzlement, obviously a bit concerned by it. The courier looks at the note for more than a minute, then looks at you, and back at the note. 'Errm... welp, dunno what to make of the note. If I know the right of it, Skargus finally got him some girly to do his writin' for him. Ooooh I bet she a tasty one, graarr. If I was warlord I know I'd have me a girly too. Gah, take this report and get outta my sight."); + e.other:QuestReward(e.self,0,0,0,0,6474); -- 6474 Report to Skargus + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/warslikswood/an_Iksar_knight.lua b/warslikswood/an_Iksar_knight.lua new file mode 100644 index 0000000..dd69fd0 --- /dev/null +++ b/warslikswood/an_Iksar_knight.lua @@ -0,0 +1,32 @@ +--This iksar knight is actually Grizzle, for the fourth quest in the Greenmist line, The Test of the Zealot. +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("wipes the sweat from his forehead and spits some flarefire seeds on the ground near your feet. 'Whew!! Good to be back and safe at the Cabilis Gate. The troopers will protect us.'"); + elseif(e.message:findi("chalp diagram")) then --Test of the Zealot (Greenmist Quest 4/8) + e.self:Emote("spits out some flarefire seeds. 'Great!! Sent to retrieve the Chalp diagram. I will give them to you, but I want you to do me a little favor first. I want you to [retrieve some spells] I lost. They are incorrectly scribed and useless, but I yearn for their return nonetheless.'"); + elseif(e.message:findi("retrieve some spells")) then --Test of the Zealot (Greenmist Quest 4/8) + e.self:Emote("spits flarefire seeds on you. 'Oops!! Sorry. Yeah!! You go to Chalp and get two incorrectly scribed spells which they grabbed from me. The third one, I threw in a river crossing by Chalp. It was in a bottle and probably drifted way down the river. Bring me all three and also a shovel and I will make it worth your while.'"); + elseif(e.message:findi("flarefire seeds")) then --Test of the Zealot (Greenmist Quest 4/8) + e.self:Emote("spits some flarefire seeds on your face. 'What? Interested in flarefire seeds? There you go. Ha!!'"); + end +end + +function event_trade(e) + local item_lib = require("items"); + local text = "spits flarefire seeds on your chest. 'Is this all? Listen up!! I asked for the misscribed spells; Fear, Lifetap and Gate, and also, a shovel."; + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 12492, item2 = 12493, item3 = 12494, item4 = 6026},1,nil,text)) then --Test of the Zealot (Greenmist Quest 4/8) + e.self:Emote("accidently swallows a mouthful of flarefire seeds. 'ACCCKK!! I can't believe you did it!! Here is the Chalp diagram.'"); + e.other:Faction(e.self,442,5); -- Faction: Crusaders of Greenmist + e.other:Faction(e.self,441,1); -- Faction: Legion of Cabilis + e.other:QuestReward(e.self,0,0,0,0,12496,1000); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end + +--Submitted by: Jim Mills +------------------------------------------------------------------------------------------------- +-- Converted to .lua using MATLAB converter written by Stryd and manual edits by Speedz +-- Find/replace data for .pl --> .lua conversions provided by Speedz, Stryd, Sorvani and Robregen +------------------------------------------------------------------------------------------------- diff --git a/westwastes/#Scout_Charisa.lua b/westwastes/#Scout_Charisa.lua new file mode 100644 index 0000000..6cb8c71 --- /dev/null +++ b/westwastes/#Scout_Charisa.lua @@ -0,0 +1,28 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("motions you to be silent."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29683}, 0)) then -- Scout Tools + e.self:Say("Great! I was wondering when they would send someone out to give me these. In the haste and excitement of this new assignment I forgot them. This scout business is great I must say. It sure beats sitting in Southern Ro studying ruins. I've been following a patrol of Storm Giants for days. They have been wandering up and down the coast as if they were looking for something."); + e.other:Faction(e.self,430,8); -- Faction: Claws of Veeshan + e.other:Faction(e.self,436,2); -- Faction: Yelinak + e.other:Faction(e.self,448,-4); -- Faction: Kromzek + e.other:QuestReward(e.self,0,0,0,0,0,5000); + eq.unique_spawn(120115,0,0,-3501,-4868,-108); -- a Kromzek Captain + eq.spawn2(120121,0,0,-3507,-4897,-106,0); -- Kromzek Warrior + eq.spawn2(120121,0,0,-3496,-4874,-109,0); -- Kromzek Warrior + eq.spawn2(120121,0,0,-3474,-4863,-114,0); -- Kromzek Warrior + eq.spawn2(120121,0,0,-3463,-4852,-117,0); -- Kromzek Warrior + eq.spawn2(120121,0,0,-3452,-4841,-119,0); -- Kromzek Warrior + eq.spawn2(120121,0,0,-3441,-4830,-122,0); -- Kromzek Warrior + eq.spawn2(120121,0,0,-3430,-4819,-124,0); -- Kromzek Warrior + eq.unique_spawn(120001,0,0,e.self:GetX(),e.self:GetY(),e.self:GetZ(),e.self:GetHeading()); + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/westwastes/#a_Kromzek_Captain.lua b/westwastes/#a_Kromzek_Captain.lua new file mode 100644 index 0000000..f088f7e --- /dev/null +++ b/westwastes/#a_Kromzek_Captain.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop",3600000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file diff --git a/westwastes/A_sentinel-s_voice.lua b/westwastes/A_sentinel-s_voice.lua new file mode 100644 index 0000000..dbcdd4d --- /dev/null +++ b/westwastes/A_sentinel-s_voice.lua @@ -0,0 +1,10 @@ +function event_spawn(e) + local xloc = e.self:GetX(); + local yloc = e.self:GetY(); + local zloc = e.self:GetZ(); + eq.set_proximity(xloc - 45, xloc + 45, yloc - 45, yloc + 45, zloc - 3, zloc + 6); +end + +function event_enter(e) + e.other:CastToClient():Message(0,"A sentinel's voice invades your thoughts: 'Beware mortal! This land is marked by Veeshan, and is sacred to her brood. None but Dragonkin are welcome here. Your life is forteit if you proceed. Ignore this message at your peril!'"); +end diff --git a/westwastes/Derasinal.lua b/westwastes/Derasinal.lua new file mode 100644 index 0000000..f057b35 --- /dev/null +++ b/westwastes/Derasinal.lua @@ -0,0 +1,42 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 500) then + e.self:Say("It is not often that I see strangers in these dangerous lands. Perhaps you are the chosen that Jualicn speaks of that will aid us in our battle against the foul giants. I do not believe you would be here if you were not in need of my sacred rune."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You seem like a decent sort for a snack food, but there is nothing you can do for me this day. Come back when you have done more work for the Claws."); + else + e.self:Say("We do have many living enemies. Let me correct this oversight."); + end + elseif(e.message:findi("rune")) then + if(e.other:GetFactionValue(e.self) >= 500) then + e.self:Say("Although I can see that you would surely put the rune to use in some way, I can only release it to the one that Jualicn speaks of. I am sorry, but I am quite protective to what ties I still have to the great Relinar."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You seem like a decent sort for a snack food, but there is nothing you can do for me this day. Come back when you have done more work for the Claws."); + else + e.self:Say("We do have many living enemies. Let me correct this oversight."); + end + elseif(e.message:findi("jualicn")) then + if(e.other:GetFactionValue(e.self) >= 500) then + e.self:Say("I understand that you may know of Jualicn, but I can only deal with those that he would trust with something dear to him."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You seem like a decent sort for a snack food, but there is nothing you can do for me this day. Come back when you have done more work for the Claws."); + else + e.self:Say("We do have many living enemies. Let me correct this oversight."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + local token = 0; + + if(e.other:HasItem(1895) == false and item_lib.check_turn_in(e.self, e.trade, {item1 = 1908}, 0)) then -- Jualicn's Token + e.self:Say("I have given you the Rune of Bleve, to assist you in your research for the once lost magic against the Kromzek. I hope that you can make good use of it, for it is very sacred to me. May Veeshan guide your path!"); + e.other:Faction(e.self,430,5); -- Claws of Veeshan + e.other:Faction(e.self,436,1); -- Yelinak + e.other:Faction(e.self,448,-2); -- Kromzek + e.other:QuestReward(e.self,{items = {1908,1895},exp = 1000}); -- Rune of Bleve, Jualicn's Token + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/westwastes/Draazak.lua b/westwastes/Draazak.lua new file mode 100644 index 0000000..ae1b8b9 --- /dev/null +++ b/westwastes/Draazak.lua @@ -0,0 +1,41 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 500) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". It cannot be that you would present yourself before me without reason. What brings you to these lands on this day? Please be quick for I have many ancient runes I must study."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I thank you for your inquiry, however you have not earned my trust yet."); + else + e.self:Say("We do have many living enemies. Let me correct this oversight."); + end + elseif(e.message:findi("rune")) then + if(e.other:GetFactionValue(e.self) >= 500) then + e.self:Say("There are many that wish to gain our power through knowledge of the magic that we practice. I am afraid that I cannot simply give this treasure to just anyone. I must wait for the chosen that Jualicn speaks of only then can I release the rune I still carry from the great Relinar."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I thank you for your inquiry, however you have not earned my trust yet."); + else + e.self:Say("We do have many living enemies. Let me correct this oversight."); + end + elseif(e.message:findi("jualicn")) then + if(e.other:GetFactionValue(e.self) >= 500) then + e.self:Say("If you are truly sent from Jualicn then he must have surely given you something to present me."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("I thank you for your inquiry, however you have not earned my trust yet."); + else + e.self:Say("We do have many living enemies. Let me correct this oversight."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:HasItem(1896) == false and item_lib.check_turn_in(e.self, e.trade, {item1 = 1908}, 0)) then -- Jualicn's Token + e.self:Say("" .. e.other:GetCleanName() .. ", whom Relinar found to be necessary for the success of the magic against those foul giants. I present this Rune of Concentration to you with faith that you are trusted amongst us or you would not have been sent to me. Make haste so that no time is wasted in extracting revenge for their past transgressions."); + e.other:Faction(e.self,430,5); -- Claws of Veeshan + e.other:Faction(e.self,436,1); -- Yelinak + e.other:Faction(e.self,448,-2); -- Kromzek + e.other:QuestReward(e.self,{items = {1896,1908},exp = 1000}); -- Rune of Concentration + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/westwastes/Entariz.lua b/westwastes/Entariz.lua new file mode 100644 index 0000000..0c4e1c6 --- /dev/null +++ b/westwastes/Entariz.lua @@ -0,0 +1,41 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 500) then + e.self:Say("Greetings, " .. e.other:GetCleanName() .. ". I have heard that one is amongst us in the lands which will aid us in our cause. If you are the one that seeks my ancient rune for your studies please make sure it is not used in vain. I do not talk to many that pass through here and I feel in my heart that it is you that shall help us."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You seem like a decent sort for a snack food, but there is nothing you can do for me this day. Come back when you have done more work for the Claws."); + else + e.self:Say("We do have many living enemies. Let me correct this oversight."); + end + elseif(e.message:findi("rune")) then + if(e.other:GetFactionValue(e.self) >= 500) then + e.self:Say("This rune is very powerful and I will not release it to just anyone. Are you the one that Jualicn sends?"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You seem like a decent sort for a snack food, but there is nothing you can do for me this day. Come back when you have done more work for the Claws."); + else + e.self:Say("We do have many living enemies. Let me correct this oversight."); + end + elseif(e.message:findi("jualicn")) then + if(e.other:GetFactionValue(e.self) >= 500) then + e.self:Say("That is excellent. Jualicn is very wise indeed however he does not send just anyone on such an important task. If you are the one that he has informed me will come I am sure he must have given you something to present to me."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You seem like a decent sort for a snack food, but there is nothing you can do for me this day. Come back when you have done more work for the Claws."); + else + e.self:Say("We do have many living enemies. Let me correct this oversight."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:HasItem(1893) == false and item_lib.check_turn_in(e.self, e.trade, {item1 = 1908}, 0)) then -- Jualicn's Token + e.self:Say("Ah of course, " .. e.other:GetCleanName() .. ". You will need a Rune of Eradication for your lexicon. We are counting on your loyalty. Remember that you will need to bring the teachings of Relinar to Lawyla for further instructions, as she requires them to pass on the magic to those worthy of it. I bid you farewell, " .. e.other:GetCleanName() .. "."); + e.other:Faction(e.self,430,5); -- Claws of Veeshan + e.other:Faction(e.self,436,1); -- Yelinak + e.other:Faction(e.self,448,-2); -- Kromzek + e.other:QuestReward(e.self,{items = {1908,1893},exp = 1000}); -- Jualicn's Token, Rune of Eradication + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/westwastes/Esorpa_of_the_Ring.lua b/westwastes/Esorpa_of_the_Ring.lua new file mode 100644 index 0000000..77f3ced --- /dev/null +++ b/westwastes/Esorpa_of_the_Ring.lua @@ -0,0 +1,19 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 500) then + e.self:Say("You are truly a blight upon the planet. Here you are in this, the most holy of lands, and you DARE speak to me as if you were some sort of equal! We need to wipe the world clean, it is for the children of Veeshan, no others! I do not know what the Claws are thinking, our Mother would not approve of your kind, this much I know."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You do not smell foul as I would have expected, but I still want nothing to do with you, " .. e.other:GetCleanName() .. ""); + else + e.self:Say("The Ring of Scale shall fly forth and destroy all of you one day. Perhaps I shall start now."); + end + elseif(e.message:findi("claws of veeshan")) then + if(e.other:GetFactionValue(e.self) >= 500) then + e.self:Say("The Claws of Veeshan, the 'wise ones' as my sire and dam refer to them. Sent me here to 'learn' from this tired old collection of fools and dreamers. I have been here ages, and I am still not allowed in the Temple. What is there to learn from those that will not teach? I cannot even get a message to the fools, I think they have forgotten I am here."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You do not smell foul as I would have expected, but I still want nothing to do with you, " .. e.other:GetCleanName() .. ""); + else + e.self:Say("The Ring of Scale shall fly forth and destroy all of you one day. Perhaps I shall start now."); + end + end +end diff --git a/westwastes/Harla_Dar.lua b/westwastes/Harla_Dar.lua new file mode 100644 index 0000000..01cfbf2 --- /dev/null +++ b/westwastes/Harla_Dar.lua @@ -0,0 +1,32 @@ +-- Shroud of the Dar Brood + +function event_say(e) + if(e.other:GetFactionValue(e.self) >= 0) then + if(e.message:findi("hail")) then + e.self:Say("Have you seen him? I must find him, he has been gone far to long! If you have harmed him, I will slay you and all of your race! Tell me where he is!"); + elseif(e.message:findi("Seen who")) then + e.self:Say("My whelp, Frakadar. I was sunning myself and he wandered off. At first I did not worry, for he never went far before. But it has been hours and hours, and no other dragon has seen him. I have flown calling his name, but he does not answer. Klandicar was the last to see him, near the entrance of the Necropolis. I am forbidden to enter the Necropolis as long as this body draws breath, for good reason. But I must know if my son is in there!"); + elseif(e.message:findi("klandicar")) then + e.self:Say("Klandicar is an old old dragon. He has been staying near the Necropolis, but much like the rest of us, he will not enter there until it is his time. A spirit rests uneasy inside, and any dragon who enters risks madness. For me, a fate worse than madness awaits, for the spirit was my first mate, from the days when I flew with the Ring of Scale. It is a long story, but I do not have time to relate it now."); + elseif(e.message:findi("spirit")) then + e.self:Say("Jaled Dar was my mate long ago, proud and mighty leader of the Ring of Scale. We produced a fine daughter, Phara Dar, who inherited Jaled Dar's leadership of the Ring. Due to Trakanon's treachery, he was killed in the war with the Iksar. He was laid to rest inside the Necropolis, mourned by all. Given the finest tomb and all honors yet his spirit will not rest, and he still seeks to enact his revenge upon Trakanon. Powerful even after death, his spirit can rend the minds of dragons, so the Necropolis has been shunned by all but the dying since that day. I have a special fear, for Jaled Dar may have learned that I took a new mate after his passing. I know Jaled Dar like no other, and I feel he would consider that another treachery."); + elseif(e.message:findi("yelinak")) then + e.self:Say("Yelinak resides in the Skyshrine, last of the Servants there. Bitter beyond compare, he is obsessed with the destruction of the Kromzek. Knowing first hand the perils of revenge, I consider him foolish and dangerous to the extreme. I came to this land from the warmth of Skyfire after war and revenge nearly destroyed us all, and will have no part in it now."); + end + else + e.self:Say("I do not have time for you now, " .. e.other:GetCleanName() .. ". My son is lost, and you can not help me."); + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:GetFactionValue(e.self) >= 0 and item_lib.check_turn_in(e.self, e.trade, {item1 = 27260}, 0)) then + e.self:Say("This...this is not what I had hoped for. My whelp is lost, but I take some comfort in knowing that you helped destroy his killer. Zlandicar has been a blight upon our race since the beginning. Here is your reward, as I promised. It will protect you in more ways than are obvious. Leave me now, it is time to mourn."); + e.other:Faction(e.self,430,10); --CoV + e.other:Faction(e.self,436,2); -- Yelinak + e.other:Faction(e.self,448,-5); -- Kromzek + e.other:QuestReward(e.self,0,0,0,0,27261,150000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/westwastes/Ionat.lua b/westwastes/Ionat.lua new file mode 100644 index 0000000..04713da --- /dev/null +++ b/westwastes/Ionat.lua @@ -0,0 +1,41 @@ +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 500) then + e.self:Say("Hello " .. e.other:GetCleanName() .. ". It is good to see that you have traveled so far to be in my presence. I do believe that you are the one chosen to aid us in our fight against the giants. If you are then I am sure that you will need my rune for your research."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You seem like a decent sort for a snack food, but there is nothing you can do for me this day. Come back when you have done more work for the Claws."); + else + e.self:Say("We do have many living enemies. Let me correct this oversight."); + end + elseif(e.message:findi("jualicn")) then + if(e.other:GetFactionValue(e.self) >= 500) then + e.self:Say("You are the one that Jualicn speaks of? Surely you must have something to symbolize your dediciation to our cause."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You seem like a decent sort for a snack food, but there is nothing you can do for me this day. Come back when you have done more work for the Claws."); + else + e.self:Say("We do have many living enemies. Let me correct this oversight."); + end + elseif(e.message:findi("rune")) then + if(e.other:GetFactionValue(e.self) >= 500) then + e.self:Say("I see. Many seek this rune that I keep for whatever magics they practice, however I can only release it to the one that aids Jualicn."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You seem like a decent sort for a snack food, but there is nothing you can do for me this day. Come back when you have done more work for the Claws."); + else + e.self:Say("We do have many living enemies. Let me correct this oversight."); + end + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(e.other:HasItem(1894) == false and item_lib.check_turn_in(e.self, e.trade, {item1 = 1908}, 0)) then + e.self:Say("Take this Rune of Revenge, " .. e.other:GetCleanName() .. ". You will need it to extract retribution in remembrance of our dear Hsagra. I thank you for your contributions to our cause. It is good to have you amongst our ranks."); + e.other:Faction(e.self,430,5); -- Claws of Veeshan + e.other:Faction(e.self,436,1); -- Yelinak + e.other:Faction(e.self,448,-2); -- Kromzek + e.other:QuestReward(e.self,{items = {1908,1894},exp = 1000}); -- Jualicn's Token, Rune of Revenge + eq.depop_with_timer(); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/westwastes/Julius_Oresko.lua b/westwastes/Julius_Oresko.lua new file mode 100644 index 0000000..2da62a9 --- /dev/null +++ b/westwastes/Julius_Oresko.lua @@ -0,0 +1,5 @@ +function event_combat(e) + if(e.joined) then + e.self:Say("My blades have slain dragons! A " .. e.other:Race() .. " like you does not have a chance of survival!"); + end +end diff --git a/westwastes/Klandicar.lua b/westwastes/Klandicar.lua new file mode 100644 index 0000000..aa6442f --- /dev/null +++ b/westwastes/Klandicar.lua @@ -0,0 +1,73 @@ +function event_signal(e) + if ( e.signal == 1 ) then + e.self:Shout("Damnation and doom! Some fool has awakened The Sleeper! Avoid those places where Dragons dwell, for Kerafyrm shall surely seek revenge upon us!"); + end +end + +function event_say(e) + if(e.message:findi("hail")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Oi, what is this? A " .. e.other:Race() .. ", if my tired old eyes are not mistaken. Knew it would happen. Sooner rather than later. No stopping the flood now, eh?"); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("flood")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The flood of beings to Velious. Starts with a trickle, like all floods. Sweeps the old away in the end, leaving a new landscape. Blessing and shame that I will not be around to see it all unfold."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("be around")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I will be leaving this world soon enough, I think. Too tired to continue this existence, too jaded to believe tomorrow would be any different than today. Seeing you here is the most exciting thing that has happened to me in aeons, and even that isn't enough to make me want to continue. Yes, it is the Necropolis for me, and the swift embrace of fire, and then my dust shall fly free as I once did."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("fly") or e.message:findi("free")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("Dragons have never been truly free. The Claws, the Ring, the One Who Sleeps, our very nature, all conspire to keep us enslaved. We cannot grow beyond what we are now, so doomed we all are. Masters of this world we are not. Your very presence here screams this to any who have ears to hear. The Age of Scale is long past."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("long past")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("It proves how weak and static our race has become. Here you stand, in the most sacred of places, fearing nothing, daring to converse with me. If I were to consume you now, a dozen would appear to replace you. As mighty as Dragonkind is, we can never hope to match the power you wield. Dragons have limits set upon themselves, while you and your kind refuse to accept any limits. We cannot compete with that. If only we could throw off these shackles we bind ourselves with."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("shackles")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I do not see this happening. Too proud, too sure of ourselves, as a race we could never concede that we have anything to learn from the likes of you. We need a revelation. Something to open our eye, a poke in the rump. The Iksar almost woke us up, they had us united and striving for something for a brief while, but the Iksar Empire was in many ways as doomed as we are, too inflexible. What does not bend will break. The same could be said of the Kromzek."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("kromzek")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("The Kromzek are also clinging to the old ways, they have changed no more than we have over the generations. We kill some, they kill some, nothing really changes. Now the Coldain, they are a group to admire, the first trickles of that flood I spoke of."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + elseif(e.message:findi("coldain")) then + if(e.other:GetFactionValue(e.self) >= 100) then + e.self:Say("I admire the Coldain They are strong because they adapt. They fought the Kromzek to a standstill, then pushed them back. They have not really crossed Dragons yet, but I feel that if they had a feud with us, they would present quite a challenge. And lo! There is a whole WORLD of peoples such as yourself, hardy and flexible as the Coldain, and here you stand at our doorstep, knocking."); + elseif(e.other:GetFactionValue(e.self) >= 0) then + e.self:Say("You need to prove your dedication to our cause before I can discuss such matters with you."); + else + e.self:Say(eq.ChooseRandom("I didn't know Slime could speak common. Go back to the sewer before I lose my temper.","Is that your BREATH, or did something die in here? Now go away!","I wonder how much I could get for the tongue of a blithering fool? Leave before I decide to find out for myself.","Oh look..a talking lump of refuse..how novel!")); + end + end +end \ No newline at end of file diff --git a/westwastes/Makil_Rargon.lua b/westwastes/Makil_Rargon.lua new file mode 100644 index 0000000..b2d7046 --- /dev/null +++ b/westwastes/Makil_Rargon.lua @@ -0,0 +1,33 @@ +-- Fusibility Research + +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Greetings. I am Makil Rargon, an esteemed assistant to the great wizard [Al'Kabor]. What can I help you with?"); + elseif(e.message:findi("al'kabor")) then + e.self:Say("Al'Kabor is the most powerful wizard on all of Norrath. He is currently back to his Combine Empire research. Being his most trusted assistant, he assigned me to follow up on his fusibility [research] findings. Do you have any information to offer?"); + elseif(e.message:findi("research")) then + e.self:Say("Ah. Yes, his fusibility research. Al'Kabor has been studying the melting point of minerals. Here, take this journal. It explains what fusibility is. Over the last few years, he has conducted several tests on [fusible ores]."); + e.other:SummonCursorItem(18290); -- Item: Fusibility Study: Part 1 + elseif(e.message:findi("fusible ore")) then + e.self:Say("An ore is considered fusible if it can be melted. Now, this book explains the most unique forms of fusible ore that the master has conducted [experiments] on."); + e.other:SummonCursorItem(18293); -- Item: Fusibility Study: Part 2 + elseif(e.message:findi("experiment")) then + e.self:Say("So far his research has been quite successful. This journal explains what he has been able to accomplish. He has managed to create several magical items including an artifactual scepter of great power. While only he can grant permission to a worthy wizard to possess the artifact, if you are willing to help me complete a [fusibility test], I can offer you another item of great strength against the elements."); + e.other:SummonCursorItem(18294); -- Item: Fusibility Study: Part 3 + elseif(e.message:findi("fusibility test")) then + e.self:Say("Very well then . . . Fill this Empty Fusible Ore Crate up with four different fusible ores then seal it. Bring me back the Full Crate of Fusible Ore and I will use the compound to create a magical item that was developed by Master Al'Kabor."); + e.other:SummonCursorItem(17408); -- Item: Empty Fusible Ore Crate + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 24069}, 0)) then + e.self:Emote("begins to examine the contents of the crate and proceeds to conduct an experiment. He then turns toward you and says, 'Excellent job! As promised, here is one of Master Al'Kabor's fusiblity research creations.'"); + e.other:Faction(e.self,415,5); -- Faction: Temple of Sol Ro + e.other:Faction(e.self,416,-5); -- Faction: Shadowed Men + e.other:QuestReward(e.self,math.random(50),math.random(50),math.random(50),math.random(30),24070,5000000); + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/westwastes/Scout_Charisa.lua b/westwastes/Scout_Charisa.lua new file mode 100644 index 0000000..7c7b115 --- /dev/null +++ b/westwastes/Scout_Charisa.lua @@ -0,0 +1,29 @@ +function event_spawn(e) + eq.set_timer("depop",3600000); +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 29684}, 0)) then -- Broken Disk + e.self:Say("Ahhh the artifact, I will return this to Commander Leuz. Please take this updated report to him ahead of me so he knows what to expect on my arrival. Please accept this robe as a reward, I'm not very skilled at judging size so if you have a problem with wearing it please give it back and I will see what else I have for you."); + e.other:Faction(e.self,430,25); -- Faction: Claws of Veeshan + e.other:Faction(e.self,436,6); -- Faction: Yelinak + e.other:Faction(e.self,448,-12); -- Faction: Kromzek + e.other:QuestReward(e.self,{items = {29688,29685},exp = 10000}); -- Scout Report, Robe of Benevolence + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29685}, 0)) then -- Robe of Benevolence + e.self:Say("Didn't like the robe, eh? How about this then. They packed it in my scout kit, and it is of no use to me, though it looks very nice."); + e.other:QuestReward(e.self,0,0,0,0,29686); -- Bracer of Benevolence + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29686}, 0)) then -- Bracer of Benevolence + e.self:Say("Hmm, not the martial type, I take it. Perhaps this will better suit your needs."); + e.other:QuestReward(e.self,0,0,0,0,29687); -- Talisman of Benevolence + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 29687}, 0)) then -- Talisman of Benevolence + e.self:Say("Right back where we started! While this is an interesting game of dress-up, I have to resume my duties. So, make up your mind!"); + e.other:QuestReward(e.self,0,0,0,0,29685); -- Robe of Benevolence + end + item_lib.return_items(e.self, e.other, e.trade) +end + +function event_timer(e) + eq.depop(); +end diff --git a/westwastes/Sontalak.lua b/westwastes/Sontalak.lua new file mode 100644 index 0000000..f40c2f5 --- /dev/null +++ b/westwastes/Sontalak.lua @@ -0,0 +1,9 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Say("Why are you here, " .. e.other:Race() .. "? There is nothing you can gain from this land but an unsung death at the talons of your betters. If you want to prove your worth to Dragonkind, it will take more than slaying a few giants to accomplish it. Far more."); + elseif(e.message:findi("prove worth")) then + e.self:Say("Slaying all the Kromzek would be a good start. But that may be asking too much of such weak creatures."); + elseif(e.message:findi("king is dead")) then + e.self:Say("Yes, " .. e.other:GetCleanName() .. "? You mean to tell me you have accomplished the task I set before you? Then it is proof I shall be having, or it is lunch I shall be having, do you understand?"); + end +end diff --git a/westwastes/The_Dragon_Sage.lua b/westwastes/The_Dragon_Sage.lua new file mode 100644 index 0000000..fc4523e --- /dev/null +++ b/westwastes/The_Dragon_Sage.lua @@ -0,0 +1,33 @@ +function event_say(e) + if(e.message:findi("hail")) then + e.self:Emote("appears to fade in and out. The ghostly figure seems to stare through you, as though he is not aware of your presence. 'Do you know who I am?', he asks, as if he is inquiring for his own benefit."); + elseif(e.message:findi("who are you")) then + e.self:Emote("begins to smile. 'It has come back to me, just now', he says. 'I am the Dragon Sage. I lived in the once great elven city of Takish Hiz, where I studied the dragons of Norrath.' The figure appears to be concentrating on something in the distance. His image begins to fade as he says, 'If I am among the world of the living again, then Norrath must be in great danger.'"); + elseif(e.message:findi("danger")) then + e.self:Say("Thousands of years ago, Veeshan, the mother of all wurms, made her mark upon the face of a young world called Norrath. She struck the planet with her godly might, laying her claim to the world, and created the beings known as dragons. This began the [Age of Scale]."); + elseif(e.message:findi("age of scale")) then + e.self:Say("The Age of Scale was the time when dragons ruled supreme. They controlled the lands, the sea, and the sky for some 3000 years. That was when [other gods] took notice."); + elseif(e.message:findi("other gods")) then + e.self:Say("Tunare, the Mother of All, Prexus, the Oceanlord, and Brell Serilis, the Duke of Below formed a pact in response to Veeshans claim to Norrath. The elves, the dwarves, and the aquatic kedge were all created to help keep the dragons in check. Rallos Zek, the Warlord, learned of this pact and created the giants. This began the [Elder Age]."); + elseif(e.message:findi("elder age")) then + e.self:Say("The Elder Age was the time of the first humanoid races, the oldest on Norath, next to the dragons. The elves prospered, while the giants struggled to survive. The giants on the frozen continent of Velious were in constant skirmishes with the dragons. It was at this point that the [observations] began."); + elseif(e.message:findi("observations")) then + e.self:Say("The giants, smarter than expected, began watching and observing the habits of the dragons. They paid close attention to the things the dragons avoided... certain plants and watering holes. It was determined that a particular type of [plant], when mixed with other reagents, was deadly to the dragons. The giants adapted their technique to specifically harm Yelinaks brood in order to give them an advantage. The ancient Kromzek king, Porlos, used this to aid in his battle with Hsagra, Yelinaks mate. Porlos killed Hsagra, forever bringing Yelinaks vengeance upon his family. Thus began the eternal war between the giants and the dragons."); + elseif(e.message:findi("plant")) then + e.self:Say("The name of the plant eludes me at this time, for my thoughts have grown cold through the ages. The findings of the giants were written in a book of lore by some of our sages. You should seek out one of the giants Tomekeepers. If you find a Tomekeeper, ask him about the herb that harms dragons. Perhaps if you give him this trinket he will assist you. Maybe they will remember my tired soul."); + e.other:SummonCursorItem(1782); -- Giant Loyalist Token + end +end + +function event_trade(e) + local item_lib = require("items"); + + if(item_lib.check_turn_in(e.self, e.trade, {item1 = 1783}, 0)) then -- Giant Scalebound Tome + e.self:Emote("takes the guide and immediately begins to scan through it. He then says, 'Ah... Ah yes... According to this book, the dragonbane herb grows only in one place, deep inside the lair of the sirens. If my memory serves me properly one of the creatures there is very fond of its flavor. I will also need the blood of a dragon, but not just any dragon. The blood must come from a beast of Lord Yelinak's bloodline. Please go now and see if you can find this herb and the dragon blood. No time to waste, child. You will need to take this box to contain and combine the herbs and dragon blood in. Once you have accomplished this, please return the box to me."); + e.other:QuestReward(e.self,0,0,0,0,17059); -- Ornate Reagent Box + elseif(item_lib.check_turn_in(e.self, e.trade, {item1 = 1786}, 0)) then -- Sealed Reagent Box + e.self:Say("Ahhh! With the knowledge that I have gained from the Giant Scalebound Tome and these reagents, I can finish my research and create a most powerful spell for you! If successful, I will call it the Porlos' Fury spell. It will cause near fatal wounds to any dragon or dragon kin in Lord Yelinak's bloodline. Take this and study it. The magiks contained within will aid you in your fight. The Dragon Sage hands you the scroll and says, 'You will need a reagent to channel the magical energies through to enhance the power of the spell. Two peridots will be required to cast this spell. I wish you good fortune in your fight."); + e.other:QuestReward(e.self,0,0,0,0,19469); -- Porlos' Fury + end + item_lib.return_items(e.self, e.other, e.trade) +end diff --git a/westwastes/a_Kromzek_warrior.lua b/westwastes/a_Kromzek_warrior.lua new file mode 100644 index 0000000..f088f7e --- /dev/null +++ b/westwastes/a_Kromzek_warrior.lua @@ -0,0 +1,17 @@ +function event_spawn(e) + eq.set_timer("depop",3600000); +end + +function event_combat(e) + if(e.joined) then + if(not eq.is_paused_timer("depop")) then + eq.pause_timer("depop"); + end + else + eq.resume_timer("depop"); + end +end + +function event_timer(e) + eq.depop(); +end \ No newline at end of file